@foxford/ui 2.30.0-beta-2347bc5-20240605 → 2.30.1-beta-ec5d2c1-20240611
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/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../../src/shared/utils/colors.ts","../../src/theme/colors.ts","../../src/theme/global-styled.ts","../../src/shared/enums/sizeInput.ts","../../src/shared/constants.ts","../../src/theme/colors-dark.ts","../../src/theme/themes.ts","../../src/theme/colors-light.ts","../../src/shared/utils/rel-builder.ts","../../src/mixins/screen.ts","../../src/mixins/shared.ts","../../src/mixins/responsive-property.ts","../../src/mixins/color.ts","../../src/hooks/useClassname.ts","../../src/hooks/useMergedSizes.ts","../../src/hooks/useMergedPalette.ts","../../src/hocs/withMergedProps.tsx","../../src/hooks/useMergedProps.ts","../../src/components/Icon/images/book.module.svg","../../src/components/Icon/images/blackBoard.module.svg","../../src/components/Icon/images/burger.module.svg","../../src/components/Icon/images/eye.module.svg","../../src/components/Icon/images/email.module.svg","../../src/components/Icon/images/sort.module.svg","../../src/components/Icon/images/unsort.module.svg","../../src/components/Icon/images/person.module.svg","../../src/components/Icon/images/diamond.module.svg","../../src/components/Icon/images/diamondFilled.module.svg","../../src/components/Icon/images/diamondSolid.module.svg","../../src/components/Icon/images/infoInverse.module.svg","../../src/components/Icon/images/list.module.svg","../../src/components/Icon/images/login.module.svg","../../src/components/Icon/images/logout.module.svg","../../src/components/Icon/images/fire.module.svg","../../src/components/Icon/images/camps.module.svg","../../src/components/Icon/images/cart.module.svg","../../src/components/Icon/images/clock.module.svg","../../src/components/Icon/images/clockFilled.module.svg","../../src/components/Icon/images/courses.module.svg","../../src/components/Icon/images/discount.module.svg","../../src/components/Icon/images/externat.module.svg","../../src/components/Icon/images/headphones.module.svg","../../src/components/Icon/images/priceTag.module.svg","../../src/components/Icon/images/prof.module.svg","../../src/components/Icon/images/phone.module.svg","../../src/components/Icon/images/star.module.svg","../../src/components/Icon/images/settings.module.svg","../../src/components/Icon/images/student.module.svg","../../src/components/Icon/images/target.module.svg","../../src/components/Icon/images/textbook.module.svg","../../src/components/Icon/images/trophy.module.svg","../../src/components/Icon/images/message.module.svg","../../src/components/Icon/images/wallet.module.svg","../../src/components/Icon/images/edit.module.svg","../../src/components/Icon/images/copy.module.svg","../../src/components/Icon/images/page.module.svg","../../src/components/Icon/images/print.module.svg","../../src/components/Icon/images/objective.module.svg","../../src/components/Icon/images/present.module.svg","../../src/components/Icon/images/coins.module.svg","../../src/components/Icon/icons.tsx","../../src/mixins/create-responsive-props.ts","../../src/shared/regexp.ts","../../src/shared/utils/style.ts","../../src/mixins/responsive-size.ts","../../src/components/Icon/style.ts","../../src/components/Icon/Icon.tsx","../../src/components/Icon/constants.ts","../../src/mixins/display.ts","../../src/components/ActionBtn/style.ts","../../src/components/ActionBtn/ActionBtn.tsx","../../src/hooks/use-config-priority.ts","../../src/components/Text.Heading/Text.Heading.tsx","../../src/components/Spacer/style.ts","../../src/components/Spacer/Spacer.tsx","../../src/components/Text.Ellipse/style.ts","../../src/components/Text.Ellipse/Text.Ellipse.tsx","../../src/components/Text/constants.ts","../../src/components/Text/default-constants.ts","../../src/mixins/responsive-margin.ts","../../src/components/Text/style.ts","../../src/components/Text/Text.tsx","../../src/mixins/focus.ts","../../src/components/Anchor/style.ts","../../src/components/Anchor/Anchor.tsx","../../src/components/Anchor/constants.ts","../../src/components/Button/constants.ts","../../src/components/Button/default-constants.ts","../../src/components/Button/style.ts","../../src/components/Button/Button.tsx","../../src/components/Button/hooks.ts","../../src/components/Progress.Segmented/style.ts","../../src/components/Progress.Segmented/Progress.Segmented.tsx","../../src/components/Progress.Circle/style.ts","../../src/components/Progress.Circle/Progress.Circle.tsx","../../src/components/Progress/style.ts","../../src/components/Progress/Progress.tsx","../../src/components/Alert/style.ts","../../src/components/Alert/CountdownCircle.tsx","../../src/components/Alert/utils.ts","../../src/components/Alert/Alert.tsx","../../src/components/Amount/data/index.ts","../../src/components/Amount/style.ts","../../src/components/Amount/Amount.tsx","../../src/components/Arrow/constants.ts","../../src/components/Arrow/default-constants.ts","../../src/components/Arrow/style.ts","../../src/components/Arrow/Arrow.tsx","../../src/components/ArrowBadge/images/arrow.module.svg","../../src/components/ArrowBadge/images/rectangle.module.svg","../../src/components/ArrowBadge/images/fancy.module.svg","../../src/components/ArrowBadge/style.ts","../../src/components/ArrowBadge/ArrowBadge.tsx","../../src/components/ArrowBadge/constants.ts","../../src/components/Skeleton/style.ts","../../src/components/Skeleton/Skeleton.tsx","../../src/components/Avatar/constants.ts","../../src/components/Avatar/default-constants.ts","../../src/components/Avatar/style.ts","../../src/components/Avatar/Avatar.tsx","../../src/components/Avatar/utils.ts","../../src/components/Badge/style.ts","../../src/components/Badge/constants.ts","../../src/components/Badge/Badge.tsx","../../src/components/Container/style.ts","../../src/components/Container/Container.tsx","../../src/components/Modal/style.ts","../../src/components/Modal/adapter.tsx","../../src/components/Modal/Modal.tsx","../../src/components/Modal/Close.tsx","../../src/components/Paper/style.ts","../../src/components/Paper/Paper.tsx","../../src/components/Scrollable/Scrollable.tsx","../../src/components/Section/style.ts","../../src/components/Section/Section.tsx","../../src/components/Separator/style.ts","../../src/components/Separator/Separator.tsx","../../src/components/Separator/SeparatorText.tsx","../../src/components/Spinner/style.ts","../../src/components/Spinner/Spinner.tsx","../../src/components/Switcher/constants.ts","../../src/components/Switcher/style.ts","../../src/components/Switcher/Switcher.tsx","../../src/components/Tab/constants.ts","../../src/components/Tab/default-constants.ts","../../src/components/Tab/images/arrow.module.svg","../../src/components/Tab/style.ts","../../src/components/Tab/Tab.tsx","../../src/components/Tabs/style.ts","../../src/components/Tabs/Tabs.tsx","../../src/components/TooltipComponent/constants.ts","../../src/components/TooltipComponent/style.ts","../../src/components/TooltipComponent/TooltipComponent.tsx","../../src/components/Tooltip/TooltipWrapper.tsx","../../src/hooks/useKeyboardListener.ts","../../src/components/Tooltip/default-constants.ts","../../src/components/Tooltip/Tooltip.tsx","../../src/components/Tag/style.ts","../../src/components/Tag/Tag.tsx","../../src/components/ContextMenu.Multilevel/style.ts","../../src/components/ContextMenu.Multilevel/Heading.tsx","../../src/components/ContextMenu.Multilevel/SubHeading.tsx","../../src/components/ContextMenu.Multilevel/Controls.tsx","../../src/components/ContextMenu.Multilevel/ContextMenu.Multilevel.tsx","../../src/components/ContextMenu/style.ts","../../src/components/ContextMenu/Item.tsx","../../src/components/ContextMenu/ContextMenu.tsx","../../src/components/ContextMenu/tooltip-styles.ts","../../src/components/Input/helpers.ts","../../src/components/Input/style.ts","../../src/components/Textarea/style.ts","../../src/components/Textarea/Textarea.tsx","../../src/components/FormInputLabel/constants.ts","../../src/components/FormInputLabel/style.ts","../../src/components/FormInputLabel/FormInputLabel.tsx","../../src/components/Input.Phone/constants.ts","../../src/components/Input.Phone/Input.Phone.tsx","../../src/components/Input/Input.tsx","../../src/components/InputRadio/style.ts","../../src/components/InputRadio/InputRadio.tsx","../../src/components/InputRadio/constants.ts","../../src/components/Radio/style.ts","../../src/components/Radio/Radio.tsx","../../src/components/InputCheckbox/images/checked.module.svg","../../src/components/InputCheckbox/images/indeterminate.module.svg","../../src/components/Radio/Group.tsx","../../src/components/InputCheckbox/style.ts","../../src/components/InputCheckbox/InputCheckbox.tsx","../../src/components/InputCheckbox/constants.ts","../../src/components/Checkbox/images/check-default.module.svg","../../src/components/Checkbox/images/check.module.svg","../../src/components/Checkbox/style.ts","../../src/components/Checkbox/Checkbox.tsx","../../src/components/Checkbox/Group.tsx","../../src/components/Select/style.ts","../../src/components/Select/Select.tsx","../../src/components/FormLabel/style.ts","../../src/components/FormLabel/FormLabel.tsx","../../src/components/FormLabel/constants.ts","../../src/components/PopoverComponent/constants.ts","../../src/components/PopoverComponent/style.ts","../../src/components/PopoverComponent/PopoverComponent.tsx","../../src/components/Popover/Popover.tsx","../../src/components/ListItem/style.ts","../../src/components/ListItem/ListItem.tsx","../../src/components/ListItem/constants.ts","../../src/components/Indicator/constants.ts","../../src/components/Indicator/style.ts","../../src/components/Indicator/Indicator.tsx","../../src/theme/theme-provider.tsx","../../src/mixins/vAlign.ts"],"sourcesContent":["const allowedHexColorCodes = /^#?([0-9a-fA-F]{3}){1,2}$/\nconst getHexCodePattern = (groupLength: number) => new RegExp(`([A-Fa-f0-9]){${groupLength}}`, 'g')\n\n/**\n * Converts HEX color code to RGB(A) string\n *\n * @export\n * @param {string} HEX color with length of either 3 or 6 (can be with or without '#' sign)\n * @param {Number} alpha channel which specifies the opacity of the color\n * @returns {String} RGB(A) string\n */\nexport function hexToRgbA(hex: string, alpha?: number): string {\n if (!allowedHexColorCodes.test(hex)) {\n throw new Error(`Provided HEX color code \"${hex}\" is incorrect`)\n }\n\n const codeGroupLength = Math.floor(hex.length / 3)\n const hexCodePattern = getHexCodePattern(codeGroupLength)\n const [r, g, b] = [...hex.matchAll(hexCodePattern)].map(([code]) => parseInt(code.padEnd(2, code), 16))\n\n if (typeof alpha === 'number') {\n return `rgba(${r}, ${g}, ${b}, ${alpha})`\n }\n\n return `rgb(${r}, ${g}, ${b})`\n}\n\n/**\n * Checks if value is HEX color\n *\n * @export\n * @param {string} HEX color with length of either 3 or 6 (can be with or without '#' sign)\n * @returns {boolean}\n */\nexport function isHex(hex: string): boolean {\n return allowedHexColorCodes.test(hex)\n}\n","import type { CSSColor } from 'shared/types'\n\n/* eslint-disable no-unused-vars */\nexport enum DefaultColorNames {\n white = 'white',\n black = 'black',\n tundora = 'tundora',\n paleSky = 'paleSky',\n bostonBlue = 'bostonBlue',\n atlantisBrightly = 'atlantisBrightly',\n cinnabar = 'cinnabar',\n sail = 'sail',\n bittersweet = 'bittersweet',\n turquoise = 'turquoise',\n dodgerBlue = 'dodgerBlue',\n mantis = 'mantis',\n azure = 'azure',\n bahamaBlue = 'bahamaBlue',\n shamrock = 'shamrock',\n olive = 'olive',\n copperRose = 'copperRose',\n cyan = 'cyan',\n plum = 'plum',\n hokeyPokey = 'hokeyPokey',\n monaLisa = 'monaLisa',\n mariner = 'mariner',\n heliotrope = 'heliotrope',\n dandelion = 'dandelion',\n fruitSalad = 'fruitSalad',\n fuchsiaBlue = 'fuchsiaBlue',\n persianGreen = 'persianGreen',\n watermelon = 'watermelon',\n tropaz = 'tropaz',\n lima = 'lima',\n mintTulip = 'mintTulip',\n carnationPink = 'carnationPink',\n paleRose = 'paleRose',\n deYork = 'deYork',\n peppermint = 'peppermint',\n cornflowerBlue = 'cornflowerBlue',\n colonialWhite = 'colonialWhite',\n cherokee = 'cherokee',\n supernova = 'supernova',\n picasso = 'picasso',\n bilobaFlower = 'bilobaFlower',\n linkWater = 'linkWater',\n mineShaft = 'mineShaft',\n silver = 'silver',\n alto = 'alto',\n mercury = 'mercury',\n wildSand = 'wildSand',\n whiteGray = 'whiteGray',\n alabaster = 'alabaster',\n whiteLilac = 'whiteLilac',\n atlantis = 'atlantis',\n yellowOrange = 'yellowOrange',\n mystic = 'mystic',\n pomegranate = 'pomegranate',\n oliveDrab = 'oliveDrab',\n curious = 'curious',\n orangePeel = 'orangePeel',\n nebula = 'nebula',\n seaNymph = 'seaNymph',\n chromeWhite = 'chromeWhite',\n onahau = 'onahau',\n citrineWhite = 'citrineWhite',\n coralReef = 'coralReef',\n creemBrulee = 'creemBrulee',\n frangipani = 'frangipani',\n yourPink = 'yourPink',\n periwinkleGray = 'periwinkleGray',\n baliHai = 'baliHai',\n primary = 'primary',\n accent = 'accent',\n transparent = 'transparent',\n catalinaBlue = 'catalinaBlue',\n danube = 'danube',\n midnightDeep = 'midnightDeep',\n anakiva = 'anakiva',\n azureRadiance = 'azureRadiance',\n blueMarguerite = 'blueMarguerite',\n blueViolet = 'blueViolet',\n bossanova = 'bossanova',\n capeCod = 'capeCod',\n cerulean = 'cerulean',\n congressBlue = 'congressBlue',\n congressBlueLight = 'congressBlueLight',\n creamBrulee = 'creamBrulee',\n denim = 'denim',\n earlyDawn = 'earlyDawn',\n eminence = 'eminence',\n endeavour = 'endeavour',\n fern = 'fern',\n ghost = 'ghost',\n grape = 'grape',\n gunsmoke = 'gunsmoke',\n highland = 'highland',\n honeyFlower = 'honeyFlower',\n honeyFlower2 = 'honeyFlower2',\n honeyFlower3 = 'honeyFlower3',\n jagger = 'jagger',\n jordyBlue = 'jordyBlue',\n jumbo = 'jumbo',\n mediumPurple = 'mediumPurple',\n midnightBlue = 'midnightBlue',\n moodyBlue = 'moodyBlue',\n nandor = 'nandor',\n nevada = 'nevada',\n olivine = 'olivine',\n parsley = 'parsley',\n pattensBlue = 'pattensBlue',\n pattensBlueLight = 'pattensBlueLight',\n scarletGum = 'scarletGum',\n scienceBlue = 'scienceBlue',\n scienceBlue03 = 'scienceBlue03',\n seance = 'seance',\n smalt = 'smalt',\n smaltLight = 'smaltLight',\n tarawera = 'tarawera',\n toryBlue = 'toryBlue',\n toryBlueDark = 'toryBlueDark',\n dodgerBlueDark = 'dodgerBlueDark',\n chambray = 'chambray',\n chambrayDark = 'chambrayDark',\n pomegranateDark = 'pomegranateDark',\n azureRadiance2 = 'azureRadiance2',\n curiousBlue = 'curiousBlue',\n jungleGreen = 'jungleGreen',\n violetDeep = 'violetDeep',\n stormGray = 'stormGray',\n zeus = 'zeus',\n athensGray = 'athensGray',\n marinerLight = 'marinerLight',\n royalBlue = 'royalBlue',\n melrose = 'melrose',\n zircon = 'zircon',\n veniceBlue = 'veniceBlue',\n solitude = 'solitude',\n selago = 'selago',\n coconutCream = 'coconutCream',\n cinderella = 'cinderella',\n royalBlueDark = 'royalBlueDark',\n persianBlue = 'persianBlue',\n ultramarine = 'ultramarine',\n cornflowerBlueDark = 'cornflowerBlueDark',\n jungleGreenDark = 'jungleGreenDark',\n mountainMeadow = 'mountainMeadow',\n dodgerBlueDim = 'dodgerBlueDim',\n zirconDark = 'zirconDark',\n pizazz = 'pizazz',\n madison = 'madison',\n ebony = 'ebony',\n mediumRedViolet = 'mediumRedViolet',\n fruitSaladLight = 'fruitSaladLight',\n shark = 'shark',\n azureRadianceLight = 'azureRadianceLight',\n carnation = 'carnation',\n limaGreen = 'limaGreen',\n mysin = 'mysin',\n studio = 'studio',\n athsSpecial = 'athsSpecial',\n thunderbird = 'thunderbird',\n denimDark = 'denimDark',\n puertoRico = 'puertoRico',\n lochmara = 'lochmara',\n aliceBlue = 'aliceBlue',\n perano = 'perano',\n portage = 'portage',\n royalBlueDim = 'royalBlueDim',\n sailDim = 'sailDim',\n solitaire = 'solitaire',\n capeHoney = 'capeHoney',\n fairPink = 'fairPink',\n romantic = 'romantic',\n polar = 'polar',\n cruise = 'cruise',\n selagoLight = 'selagoLight',\n moonRaker = 'moonRaker',\n pippin = 'pippin',\n yourPinkDark = 'yourPinkDark',\n peppermintLight = 'peppermintLight',\n fringyFlower = 'fringyFlower',\n heliotropeDark = 'heliotropeDark',\n pictonBlue = 'pictonBlue',\n mediumPurpleRed = 'mediumPurpleRed',\n scooter = 'scooter',\n chambrayDim = 'chambrayDim',\n dodgerBlueLight = 'dodgerBlueLight',\n selectiveYellow = 'selectiveYellow',\n scienceBlueDark = 'scienceBlueDark',\n dodgerBlueDeep = 'dodgerBlueDeep',\n kashmirBlue = 'kashmirBlue',\n turbo = 'turbo',\n denimDim = 'denimDim',\n orangeRoughy = 'orangeRoughy',\n selagoDim = 'selagoDim',\n congressBlueNight = 'congressBlueNight',\n azureRadianceMedium = 'azureRadianceMedium',\n honeyFlowerDim = 'honeyFlowerDim',\n jaguar = 'jaguar',\n kournikova = 'kournikova',\n drover = 'drover',\n flamingo = 'flamingo',\n mineShaftDim = 'mineShaftDim',\n periwinkle = 'periwinkle',\n colonialWhiteDim = 'colonialWhiteDim',\n pattensBlueDeep = 'pattensBlueDeep',\n solitudeDim = 'solitudeDim',\n periwinkleDim = 'periwinkleDim',\n rioGrande = 'rioGrande',\n kournikovaDim = 'kournikovaDim',\n}\n\nexport enum BaseColorNames {\n 'content-onmain-primary' = 'content-onmain-primary',\n 'content-onmain-secondary' = 'content-onmain-secondary',\n 'content-onmain-tertiary' = 'content-onmain-tertiary',\n 'content-onmain-inverse' = 'content-onmain-inverse',\n 'content-oncolor-primary' = 'content-oncolor-primary',\n 'content-oncolor-secondary' = 'content-oncolor-secondary',\n 'content-oncolor-tertiary' = 'content-oncolor-tertiary',\n 'content-oncolor-inverse' = 'content-oncolor-inverse',\n 'content-oncolor-constant' = 'content-oncolor-constant',\n 'content-disabled' = 'content-disabled',\n 'content-oncolor-disabled' = 'content-oncolor-disabled',\n 'content-oncolor-hover' = 'content-oncolor-hover',\n 'content-onmain-hover' = 'content-onmain-hover',\n 'content-discount' = 'content-discount',\n 'content-link' = 'content-link',\n 'border-onmain-default-large' = 'border-onmain-default-large',\n 'border-onmain-default-small' = 'border-onmain-default-small',\n 'border-onmain-contrast' = 'border-onmain-contrast',\n 'border-disabled' = 'border-disabled',\n 'border-focus' = 'border-focus',\n 'border-oncolor-disabled' = 'border-oncolor-disabled',\n 'border-oncolor-default' = 'border-oncolor-default',\n 'bg-onmain-main' = 'bg-onmain-main',\n 'bg-onmain-primary' = 'bg-onmain-primary',\n 'bg-onmain-secondary' = 'bg-onmain-secondary',\n 'bg-onmain-tertiary' = 'bg-onmain-tertiary',\n 'bg-onmain-divider' = 'bg-onmain-divider',\n 'bg-onmain-contrast' = 'bg-onmain-contrast',\n 'bg-onmain-inverse' = 'bg-onmain-inverse',\n 'bg-oncolor-primary' = 'bg-oncolor-primary',\n 'bg-oncolor-secondary' = 'bg-oncolor-secondary',\n 'bg-oncolor-tertiary' = 'bg-oncolor-tertiary',\n 'bg-oncolor-hover' = 'bg-oncolor-hover',\n 'bg-disabled-large' = 'bg-disabled-large',\n 'bg-disabled-small' = 'bg-disabled-small',\n 'bg-disabled-active' = 'bg-disabled-active',\n 'bg-oncolor-disabled' = 'bg-oncolor-disabled',\n 'bg-contrast-active' = 'bg-contrast-active',\n 'bg-oncontrast-hover' = 'bg-oncontrast-hover',\n 'alert-bg-success-100' = 'alert-bg-success-100',\n 'alert-bg-success-200' = 'alert-bg-success-200',\n 'alert-bg-success-500' = 'alert-bg-success-500',\n 'alert-bg-warning-100' = 'alert-bg-warning-100',\n 'alert-bg-warning-200' = 'alert-bg-warning-200',\n 'alert-bg-warning-500' = 'alert-bg-warning-500',\n 'alert-bg-error-100' = 'alert-bg-error-100',\n 'alert-bg-error-200' = 'alert-bg-error-200',\n 'alert-bg-error-500' = 'alert-bg-error-500',\n 'alert-success' = 'alert-success',\n 'alert-warning' = 'alert-warning',\n 'alert-error' = 'alert-error',\n 'product-bg-course' = 'product-bg-course',\n 'product-bg-tutor' = 'product-bg-tutor',\n 'product-bg-group' = 'product-bg-group',\n 'product-bg-complect' = 'product-bg-complect',\n 'skeleton-onmain-primary' = 'skeleton-onmain-primary',\n 'skeleton-onmain-secondary' = 'skeleton-onmain-secondary',\n 'skeleton-gradient-from-color-onmain' = 'skeleton-gradient-from-color-onmain',\n 'skeleton-gradient-to-color-onmain' = 'skeleton-gradient-to-color-onmain',\n 'skeleton-oncolor-primary' = 'skeleton-oncolor-primary',\n 'skeleton-oncolor-secondary' = 'skeleton-oncolor-secondary',\n 'skeleton-gradient-from-color-oncolor' = 'skeleton-gradient-from-color-oncolor',\n 'skeleton-gradient-to-color-oncolor' = 'skeleton-gradient-to-color-oncolor',\n}\n\nexport enum BrandColorNames {\n 'content-brand-primary' = 'content-brand-primary',\n 'content-brand-secondary' = 'content-brand-secondary',\n 'border-brand-primary' = 'border-brand-primary',\n 'border-brand-secondary' = 'border-brand-secondary',\n 'border-brand-primary-hover' = 'border-brand-primary-hover',\n 'border-brand-primary-active' = 'border-brand-primary-active',\n 'bg-brand-primary-basic' = 'bg-brand-primary-basic',\n 'bg-brand-primary-100' = 'bg-brand-primary-100',\n 'bg-brand-primary-200' = 'bg-brand-primary-200',\n 'bg-brand-primary-400' = 'bg-brand-primary-400',\n 'bg-brand-primary-500' = 'bg-brand-primary-500',\n 'bg-brand-secondary-basic' = 'bg-brand-secondary-basic',\n 'bg-brand-secondary-100' = 'bg-brand-secondary-100',\n 'bg-brand-secondary-200' = 'bg-brand-secondary-200',\n 'bg-brand-secondary-400' = 'bg-brand-secondary-400',\n 'bg-brand-secondary-500' = 'bg-brand-secondary-500',\n 'bg-brand-tertiary-100' = 'bg-brand-tertiary-100',\n 'bg-brand-tertiary-200' = 'bg-brand-tertiary-200',\n 'bg-brand-quaternary-100' = 'bg-brand-quaternary-100',\n 'bg-brand-quaternary-200' = 'bg-brand-quaternary-200',\n 'bg-brand-quaternary-400' = 'bg-brand-quaternary-400',\n 'bg-brand-quaternary-500' = 'bg-brand-quaternary-500',\n 'bg-brand-primary-basic-active' = 'bg-brand-primary-basic-active',\n 'bg-brand-primary-100-active' = 'bg-brand-primary-100-active',\n 'bg-brand-primary-100-hover' = 'bg-brand-primary-100-hover',\n}\n\nexport enum SocialColorNames {\n facebook = 'facebook',\n twitter = 'twitter',\n youtube = 'youtube',\n instagrammagenta = 'instagrammagenta',\n instagramblue = 'instagramblue',\n instagrampurple = 'instagrampurple',\n instagramorange = 'instagramorange',\n instagramyellow = 'instagramyellow',\n pinterest = 'pinterest',\n googleplus = 'googleplus',\n linkedin = 'linkedin',\n vimeoblue = 'vimeoblue',\n vimeogreen = 'vimeogreen',\n vimeoorange = 'vimeoorange',\n vimeopink = 'vimeopink',\n tumblr = 'tumblr',\n snapchat = 'snapchat',\n whatsappgreen = 'whatsappgreen',\n whatsappteal1 = 'whatsappteal1',\n whatsappteal2 = 'whatsappteal2',\n foursquarepink = 'foursquarepink',\n foursquareblue = 'foursquareblue',\n swarm = 'swarm',\n skypeblue = 'skypeblue',\n skypegreen = 'skypegreen',\n android = 'android',\n stumbleupon = 'stumbleupon',\n flickrpink = 'flickrpink',\n flickrblue = 'flickrblue',\n yahoo = 'yahoo',\n soundcloud = 'soundcloud',\n spotifygreen = 'spotifygreen',\n spotifydarkgreen = 'spotifydarkgreen',\n dribbble = 'dribbble',\n reddit = 'reddit',\n deviantart = 'deviantart',\n pocket = 'pocket',\n quora = 'quora',\n quorablue = 'quorablue',\n slideshareorange = 'slideshareorange',\n slideshareblue = 'slideshareblue',\n telegram = 'telegram',\n fivehundredpx = 'fivehundredpx',\n listlyorange = 'listlyorange',\n listlyblue = 'listlyblue',\n vine = 'vine',\n vk = 'vk',\n ok = 'ok',\n mailru = 'mailru',\n}\n\nexport const socialColors: Record<SocialColorNames, CSSColor> = Object.freeze({\n facebook: '#0561af',\n twitter: '#00bff3',\n youtube: '#ff0000',\n instagrammagenta: '#c32aa3',\n instagramblue: '#4c5fd7',\n instagrampurple: '#7232bd',\n instagramorange: '#f46f30',\n instagramyellow: '#ffdc7d',\n pinterest: '#cb2027',\n googleplus: '#df4a32',\n linkedin: '#007bb6',\n vimeoblue: '#45bbff',\n vimeogreen: '#aad450',\n vimeoorange: '#f7b42c',\n vimeopink: '#f27490',\n tumblr: '#2c4762',\n snapchat: '#fffc00',\n whatsappgreen: '#25d366',\n whatsappteal1: '#075e54',\n whatsappteal2: '#128c7e',\n foursquarepink: '#fc4575',\n foursquareblue: '#2d5be3',\n swarm: '#ffb000',\n skypeblue: '#00aff0',\n skypegreen: '#7fba00',\n android: '#a4c639',\n stumbleupon: '#eb4924',\n flickrpink: '#f40083',\n flickrblue: '#006add',\n yahoo: '#430297',\n soundcloud: '#ff5500',\n spotifygreen: '#1ed760',\n spotifydarkgreen: '#1db954',\n dribbble: '#ea4c89',\n reddit: '#ff5700',\n deviantart: '#4a5d4e',\n pocket: '#ee4056',\n quora: '#aa2200',\n quorablue: '#2b6dad',\n slideshareorange: '#f7941e',\n slideshareblue: '#1191d0',\n telegram: '#0088cc',\n fivehundredpx: '#0099e5',\n listlyorange: '#df6d46',\n listlyblue: '#52b1b3',\n vine: '#00b489',\n vk: '#4d75a2',\n ok: '#ee8208',\n mailru: '#158DE2',\n})\n\nexport const colors: Record<DefaultColorNames, CSSColor> = Object.freeze({\n white: '#ffffff',\n black: '#000000',\n tundora: '#4a4a4a',\n paleSky: '#697389',\n bostonBlue: '#0060d0',\n atlantisBrightly: '#99cc33',\n cinnabar: '#e00000',\n sail: '#a9dbf8',\n bittersweet: '#ff6666',\n turquoise: '#33cccc',\n dodgerBlue: '#33ccff',\n mantis: '#66cc66',\n azure: '#336699',\n bahamaBlue: '#006699',\n shamrock: '#33cc99',\n olive: '#999900',\n copperRose: '#996666',\n cyan: '#3399ff',\n plum: '#993399',\n hokeyPokey: '#cc9933',\n monaLisa: '#ff9999',\n mariner: '#3366cc',\n heliotrope: '#cc33ff',\n dandelion: '#ffce03',\n fruitSalad: '#49a15d',\n fuchsiaBlue: '#8d58bc',\n persianGreen: '#009999',\n watermelon: '#ff4679',\n tropaz: '#2863a8',\n lima: '#5fd0da',\n mintTulip: '#bfecf0',\n carnationPink: '#ffa6ce',\n paleRose: '#ffdcec',\n deYork: '#82d180',\n peppermint: '#cdedcc',\n cornflowerBlue: '#62aee9',\n colonialWhite: '#fdedd2',\n cherokee: '#fbd291',\n supernova: '#ffce03',\n picasso: '#ffeb9a',\n bilobaFlower: '#9fafe9',\n linkWater: '#d8dff6',\n transparent: 'transparent',\n mineShaft: '#333333',\n silver: '#b8b8b8',\n alto: '#d4d4d4',\n mercury: '#e9e9e9',\n wildSand: '#f6f6f6',\n whiteGray: '#eaeaea',\n alabaster: '#f8f8f8',\n whiteLilac: '#F6F7FB',\n atlantis: '#7fc92e',\n yellowOrange: '#ffb334',\n mystic: '#dcdfea',\n pomegranate: '#f94b28',\n oliveDrab: '#6ca82a',\n curious: '#007CEE',\n orangePeel: '#ff9900',\n nebula: '#d8e6e2',\n seaNymph: '#7ca79b',\n chromeWhite: '#daefc9',\n onahau: '#c6e6ff',\n citrineWhite: '#faf3dd',\n coralReef: '#c9c1a6',\n creemBrulee: '#ffe89e',\n frangipani: '#ffdcb5',\n yourPink: '#ffc2c2',\n periwinkleGray: '#d4d9ee',\n baliHai: '#8890b4',\n primary: '#ff732b',\n accent: '#1A96F6',\n catalinaBlue: '#023178',\n danube: '#759BD7',\n midnightDeep: '#00276E',\n anakiva: '#86caff',\n azureRadiance: '#007cee',\n blueMarguerite: '#6c6ace',\n blueViolet: '#5958b4',\n bossanova: '#4c2864',\n capeCod: '#3f4d4d',\n cerulean: '#00a6de',\n congressBlue: '#004484',\n congressBlueLight: '#00498f',\n creamBrulee: '#ffe89e',\n denim: '#117bdc',\n earlyDawn: '#FFFAEA',\n eminence: '#57296F',\n endeavour: '#0055a4',\n fern: '#6fb66e',\n ghost: '#c9C7d8',\n grape: '#4A1E61',\n gunsmoke: '#818f8f',\n highland: '#619b62',\n honeyFlower: '#4f196a',\n honeyFlower2: '#531C70',\n honeyFlower3: '#5F2280',\n jagger: '#3B0F52',\n jordyBlue: '#82beed',\n jumbo: '#88888c',\n mediumPurple: '#8f48e6',\n midnightBlue: '#032b66',\n moodyBlue: '#7a78d7',\n nandor: '#475757',\n nevada: '#657171',\n olivine: '#a4ca8a',\n parsley: '#12522D',\n pattensBlue: '#d4ebfe',\n pattensBlueLight: '#d8eeff',\n scarletGum: '#3e1354',\n scienceBlue: '#0068c9',\n scienceBlue03: 'rgba(0, 104, 201, 0.3)',\n seance: '#68278a',\n smalt: '#00378a',\n smaltLight: '#003b95',\n tarawera: '#0a3859',\n toryBlue: '#1259a6',\n toryBlueDark: '#144da3',\n dodgerBlueDark: '#2787f5',\n chambray: '#3b589e',\n chambrayDark: '#324b86',\n pomegranateDark: '#FC3F1D',\n azureRadiance2: '#0077ff',\n curiousBlue: '#229ed9',\n jungleGreen: '#2db05a',\n violetDeep: '#8950E6',\n stormGray: '#6E707C',\n zeus: '#2C2620',\n athensGray: '#F5F6F9',\n marinerLight: '#297DCB',\n royalBlue: '#5674DF',\n melrose: '#9CAFFD',\n zircon: '#F2F5FF',\n veniceBlue: '#05528E',\n solitude: '#EBF7FF',\n selago: '#E6EBFC',\n coconutCream: '#EDF8DE',\n cinderella: '#FEE8DE',\n royalBlueDark: '#5157ed',\n persianBlue: '#3a11db',\n ultramarine: '#2705ae',\n cornflowerBlueDark: '#6d73ff',\n jungleGreenDark: '#2faa73',\n mountainMeadow: '#17be73',\n dodgerBlueDim: '#1a96f6',\n zirconDark: '#ebefff',\n pizazz: '#FF8A00',\n madison: '#0A2E64',\n ebony: '#120F21',\n mediumRedViolet: '#CC2E8D',\n fruitSaladLight: '#63AB4F',\n shark: '#25262C',\n azureRadianceLight: '#0f90f4',\n carnation: '#F46868',\n limaGreen: '#72BC21',\n mysin: '#FFAB1F',\n studio: '#563FBA',\n athsSpecial: '#EAE2CA',\n thunderbird: '#cf3d17',\n denimDark: '#0b71bf',\n puertoRico: '#36c0b0',\n lochmara: '#087ad3',\n aliceBlue: '#eff7ff',\n perano: '#b4baef',\n portage: '#8785e6',\n royalBlueDim: '#3C75E5',\n sailDim: '#baddf8',\n solitaire: '#fef6e9',\n capeHoney: '#fee2b3',\n fairPink: '#ffeee6',\n romantic: '#ffd5c2',\n polar: '#dff5f7',\n cruise: '#b9eaee',\n selagoLight: '#f3f4fd',\n moonRaker: '#c4cef4',\n pippin: '#ffe0e0',\n yourPinkDark: '#ffbbbb',\n peppermintLight: '#e6f6e5',\n fringyFlower: '#c8ebc7',\n heliotropeDark: '#9C6DFF',\n pictonBlue: '#48A1E6',\n mediumPurpleRed: '#8C7AE8',\n scooter: '#3BC9DC',\n chambrayDim: '#393C9E',\n dodgerBlueLight: '#1C78FF',\n selectiveYellow: '#ffb800',\n scienceBlueDark: '#005dcf',\n dodgerBlueDeep: '#29A2FF',\n kashmirBlue: '#4C7191',\n turbo: '#ffe603',\n denimDim: '#0C71BF',\n orangeRoughy: '#CF4D17',\n selagoDim: '#EFF7FD',\n congressBlueNight: '#01488A',\n azureRadianceMedium: '#0988eb',\n honeyFlowerDim: '#501A6B',\n jaguar: '#160420',\n kournikova: '#fde57e',\n drover: '#FCEBA4',\n flamingo: '#EF5436',\n mineShaftDim: '#252525',\n periwinkle: '#d3ddff',\n colonialWhiteDim: '#feefbb',\n pattensBlueDeep: '#d7edff',\n solitudeDim: '#e8f5ff',\n periwinkleDim: '#ccdaff',\n rioGrande: '#afdb00',\n kournikovaDim: '#ffde7a',\n})\n\nexport enum UnitColorNames {\n profession = 'profession',\n professionDark = 'professionDark',\n camps = 'camps',\n campsDark = 'campsDark',\n courses = 'courses',\n coursesDark = 'coursesDark',\n openLesson = 'openLesson',\n openLessonDark = 'openLessonDark',\n externat = 'externat',\n externatDark = 'externatDark',\n olympiad = 'olympiad',\n olympiadDark = 'olympiadDark',\n textbook = 'textbook',\n textbookDark = 'textbookDark',\n tutors = 'tutors',\n tutorsDark = 'tutorsDark',\n training = 'training',\n trainingDark = 'trainingDark',\n mathematics = 'mathematics',\n physics = 'physics',\n informatics = 'informatics',\n chemistry = 'chemistry',\n biology = 'biology',\n english = 'english',\n russian = 'russian',\n history = 'history',\n society = 'society',\n geography = 'geography',\n developing = 'developing',\n literature = 'literature',\n intersubject = 'intersubject',\n primarySchool = 'primarySchool',\n recommended = 'recommended',\n astronomy = 'astronomy',\n ecology = 'ecology',\n technology = 'technology',\n languages = 'languages',\n art = 'art',\n physicalCulture = 'physicalCulture',\n logic = 'logic',\n businessLogic = 'businessLogic',\n rap = 'rap',\n ikt = 'ikt',\n kids = 'kids',\n fgos = 'fgos',\n blue = 'blue',\n red = 'red',\n green = 'green',\n grey = 'grey',\n darkgrey = 'darkgrey',\n lightgrey = 'lightgrey',\n superlightgrey = 'superlightgrey',\n}\n\nexport const unitColors: Record<UnitColorNames, CSSColor> = Object.freeze({\n profession: colors.mintTulip,\n professionDark: colors.lima,\n camps: colors.chromeWhite,\n campsDark: colors.atlantis,\n courses: colors.onahau,\n coursesDark: colors.cornflowerBlue,\n openLesson: colors.colonialWhite,\n openLessonDark: colors.cherokee,\n externat: colors.paleRose,\n externatDark: colors.carnationPink,\n olympiad: colors.yourPink,\n olympiadDark: colors.bittersweet,\n textbook: colors.picasso,\n textbookDark: colors.supernova,\n tutors: colors.linkWater,\n tutorsDark: colors.bilobaFlower,\n training: colors.peppermint,\n trainingDark: colors.deYork,\n mathematics: colors.orangePeel,\n physics: colors.curious,\n informatics: colors.turquoise,\n chemistry: colors.shamrock,\n biology: colors.mantis,\n english: colors.bittersweet,\n russian: colors.dodgerBlue,\n history: colors.bahamaBlue,\n society: colors.primary,\n geography: colors.copperRose,\n developing: colors.olive,\n literature: colors.cyan,\n intersubject: colors.plum,\n primarySchool: colors.hokeyPokey,\n recommended: colors.monaLisa,\n astronomy: colors.mariner,\n ecology: colors.atlantisBrightly,\n technology: colors.turquoise,\n languages: colors.bittersweet,\n art: colors.heliotrope,\n physicalCulture: colors.olive,\n logic: colors.dandelion,\n businessLogic: colors.fruitSalad,\n rap: colors.fuchsiaBlue,\n ikt: colors.persianGreen,\n kids: colors.watermelon,\n fgos: colors.tropaz,\n blue: colors.accent,\n red: colors.pomegranate,\n green: colors.atlantis,\n grey: colors.silver,\n darkgrey: colors.mineShaft,\n lightgrey: colors.alto,\n superlightgrey: colors.mercury,\n})\n\nexport const ColorNames = {\n ...DefaultColorNames,\n ...SocialColorNames,\n ...UnitColorNames,\n ...BaseColorNames,\n ...BrandColorNames,\n}\n","import { createGlobalStyle, css } from 'styled-components'\nimport { colors, socialColors, unitColors } from './colors'\n\nconst _colors = Object.keys(colors).map((colorName) => css`--${colorName}: ${colors[colorName]};`)\nconst _socialColors = Object.keys(socialColors).map((colorName) => css`--${colorName}: ${socialColors[colorName]};`)\nconst _unitColors = Object.keys(unitColors).map((colorName) => css`--${colorName}: ${unitColors[colorName]};`)\n\nexport const UiGlobalStyles = createGlobalStyle`\n #react-floater-portal {\n position: relative;\n }\n :root {\n ${_colors}\n ${_socialColors}\n ${_unitColors}\n }\n`\n","/* eslint-disable no-unused-vars */\nexport enum SizeInput {\n l = 380,\n m = 300,\n s = 220,\n xs = 140,\n}\n","import type { Breakpoint } from 'shared/types'\n\nexport const BREAKPOINTS: Readonly<Record<Lowercase<Breakpoint>, number>> = {\n xl: 1440,\n l: 1280,\n m: 1024,\n s: 768,\n xs: 374,\n xxs: 320,\n}\n","import type { CSSColor } from 'shared/types'\nimport { BaseColorNames, BrandColorNames } from './colors'\n\nexport const baseColors: Readonly<Record<BaseColorNames, CSSColor>> = {\n 'content-onmain-primary': '#f5f6f9',\n 'content-onmain-secondary': '#9698a6',\n 'content-onmain-tertiary': '#848694',\n 'content-onmain-inverse': '#25262C',\n 'content-oncolor-primary': '#ffffff',\n 'content-oncolor-secondary': '#f5f6f9cc',\n 'content-oncolor-tertiary': '#f5f6f999',\n 'content-oncolor-constant': '#25262c',\n 'content-oncolor-inverse': '#f5f6f9',\n 'content-disabled': '#6e707c',\n 'content-oncolor-disabled': '#f5f6f999',\n 'content-oncolor-hover': '#00000029',\n 'content-onmain-hover': '#ffffff29',\n 'content-discount': '#f16c65',\n 'content-link': '#8aafff',\n 'border-onmain-default-large': '#25262c',\n 'border-onmain-default-small': '#44454b',\n 'border-onmain-contrast': '#f5f6f9',\n 'border-oncolor-default': '#ffffff',\n 'border-disabled': '#494a50',\n 'border-focus': '#8aafff',\n 'border-oncolor-disabled': '#ffffff66',\n 'bg-onmain-main': '#000000',\n 'bg-onmain-primary': '#121316',\n 'bg-onmain-secondary': '#1a1b1f',\n 'bg-onmain-tertiary': '#25262c',\n 'bg-onmain-divider': '#25262c',\n 'bg-onmain-contrast': '#44454b',\n 'bg-onmain-inverse': '#ffffff',\n 'bg-oncolor-primary': '#ffffff',\n 'bg-oncolor-secondary': '#ffffff3d',\n 'bg-oncolor-tertiary': '#ffffff1f',\n 'bg-disabled-large': '#1a1b1f',\n 'bg-disabled-small': '#25262c',\n 'bg-disabled-active': '#494a50',\n 'bg-contrast-active': '#f5f6f9',\n 'bg-oncolor-hover': '#00000014',\n 'bg-oncontrast-hover': '#ffffff14',\n 'bg-oncolor-disabled': '#ffffff1f',\n 'alert-bg-success-100': '#071d02',\n 'alert-bg-success-200': '#0a2603',\n 'alert-bg-success-500': '#63ab4f',\n 'alert-bg-warning-100': '#241500',\n 'alert-bg-warning-200': '#2e1c00',\n 'alert-bg-warning-500': '#f16f04',\n 'alert-bg-error-100': '#2e0100',\n 'alert-bg-error-200': '#3d0004',\n 'alert-bg-error-500': '#e4494e',\n 'alert-success': '#63ab4f',\n 'alert-warning': '#f16f04',\n 'alert-error': '#fd655d',\n 'product-bg-course': '#00222e',\n 'product-bg-tutor': '#232900',\n 'product-bg-group': '#202018',\n 'product-bg-complect': '#241500',\n 'skeleton-onmain-primary': 'rgba(255, 255, 255, 0.1)',\n 'skeleton-onmain-secondary': 'rgba(255, 255, 255, 0.06)',\n 'skeleton-gradient-from-color-onmain': 'rgba(255, 255, 255, 0)',\n 'skeleton-gradient-to-color-onmain': 'rgba(255, 255, 255, 0.07)',\n 'skeleton-oncolor-primary': 'rgba(255, 255, 255, 0.15)',\n 'skeleton-oncolor-secondary': 'rgba(255, 255, 255, 0.2)',\n 'skeleton-gradient-from-color-oncolor': 'rgba(255, 255, 255, 0)',\n 'skeleton-gradient-to-color-oncolor': 'rgba(255, 255, 255, 0.2)',\n}\n\nexport const motherColors: Readonly<Record<BrandColorNames, CSSColor>> = {\n 'content-brand-primary': '#c09eff',\n 'content-brand-secondary': '#ff8800',\n 'border-brand-primary': '#c09eff',\n 'border-brand-secondary': '#ff8800',\n 'border-brand-primary-hover': '#c09eff80',\n 'border-brand-primary-active': '#c09eff',\n 'bg-brand-primary-basic': '#8a51e6',\n 'bg-brand-primary-100': '#1b0042',\n 'bg-brand-primary-200': '#240057',\n 'bg-brand-primary-400': '#2e0066',\n 'bg-brand-primary-500': '#37007a',\n 'bg-brand-secondary-basic': '#ff9900',\n 'bg-brand-secondary-100': '#241500',\n 'bg-brand-secondary-200': '#2e1c00',\n 'bg-brand-secondary-400': '#382300',\n 'bg-brand-secondary-500': '#422900',\n 'bg-brand-tertiary-100': '#202018',\n 'bg-brand-tertiary-200': '#26261c',\n 'bg-brand-quaternary-100': '#00222e',\n 'bg-brand-quaternary-200': '#002733',\n 'bg-brand-quaternary-400': '#054457',\n 'bg-brand-quaternary-500': '#05495c',\n 'bg-brand-primary-basic-active': '#8a51e6',\n 'bg-brand-primary-100-active': '#1b0042',\n 'bg-brand-primary-100-hover': '#1b004280',\n}\n\nexport const babyColors: Readonly<Record<BrandColorNames, CSSColor>> = {\n 'content-brand-primary': '#e594c5',\n 'content-brand-secondary': '#ffd333',\n 'border-brand-primary': '#e594c5',\n 'border-brand-secondary': '#ffd333',\n 'border-brand-primary-hover': '#e594c580',\n 'border-brand-primary-active': '#e594c5',\n 'bg-brand-primary-basic': '#cc2e8d',\n 'bg-brand-primary-100': '#47002d',\n 'bg-brand-primary-200': '#570f3a',\n 'bg-brand-primary-400': '#611a43',\n 'bg-brand-primary-500': '#6b244c',\n 'bg-brand-secondary-basic': '#ffd333',\n 'bg-brand-secondary-100': '#27282a',\n 'bg-brand-secondary-200': '#313235',\n 'bg-brand-secondary-400': '#393a3c',\n 'bg-brand-secondary-500': '#3e4041',\n 'bg-brand-tertiary-100': '#1d1f58',\n 'bg-brand-tertiary-200': '#282c67',\n 'bg-brand-quaternary-100': '#241500',\n 'bg-brand-quaternary-200': '#2e1c00',\n 'bg-brand-quaternary-400': '#382300',\n 'bg-brand-quaternary-500': '#422900',\n 'bg-brand-primary-basic-active': '#cc2e8d',\n 'bg-brand-primary-100-active': '#47002d',\n 'bg-brand-primary-100-hover': '#47002d80',\n}\n\nexport const teenColors: Readonly<Record<BrandColorNames, CSSColor>> = {\n 'content-brand-primary': '#c09eff',\n 'content-brand-secondary': '#d1f00a',\n 'border-brand-primary': '#c09eff',\n 'border-brand-secondary': '#d1f00a',\n 'border-brand-primary-hover': '#c09eff80',\n 'border-brand-primary-active': '#c09eff',\n 'bg-brand-primary-basic': '#8a51e6',\n 'bg-brand-primary-100': '#1b0042',\n 'bg-brand-primary-200': '#240057',\n 'bg-brand-primary-400': '#2e0066',\n 'bg-brand-primary-500': '#37007a',\n 'bg-brand-secondary-basic': '#d1f00a',\n 'bg-brand-secondary-100': '#003309',\n 'bg-brand-secondary-200': '#093910',\n 'bg-brand-secondary-400': '#144318',\n 'bg-brand-secondary-500': '#1c4a20',\n 'bg-brand-tertiary-100': '#00224d',\n 'bg-brand-tertiary-200': '#0c315f',\n 'bg-brand-quaternary-100': '#241500',\n 'bg-brand-quaternary-200': '#2e1c00',\n 'bg-brand-quaternary-400': '#382300',\n 'bg-brand-quaternary-500': '#422900',\n 'bg-brand-primary-basic-active': '#8a51e6',\n 'bg-brand-primary-100-active': '#1b0042',\n 'bg-brand-primary-100-hover': '#1b004280',\n}\n\nexport const adultColors: Readonly<Record<BrandColorNames, CSSColor>> = {\n 'content-brand-primary': '#8fa9ff',\n 'content-brand-secondary': '#c1b8ff',\n 'border-brand-primary': '#8fa9ff',\n 'border-brand-secondary': '#c1b8ff',\n 'border-brand-primary-hover': '#8fa9ff80',\n 'border-brand-primary-active': '#8fa9ff',\n 'bg-brand-primary-basic': '#3d4eeb',\n 'bg-brand-primary-100': '#120075',\n 'bg-brand-primary-200': '#181b86',\n 'bg-brand-primary-400': '#1e2699',\n 'bg-brand-primary-500': '#2b36b6',\n 'bg-brand-secondary-basic': '#6e62bc',\n 'bg-brand-secondary-100': '#2c1461',\n 'bg-brand-secondary-200': '#351e71',\n 'bg-brand-secondary-400': '#402583',\n 'bg-brand-secondary-500': '#1b0047',\n 'bg-brand-tertiary-100': '#232900',\n 'bg-brand-tertiary-200': '#373e14',\n 'bg-brand-quaternary-100': '#241500',\n 'bg-brand-quaternary-200': '#2e1c00',\n 'bg-brand-quaternary-400': '#382300',\n 'bg-brand-quaternary-500': '#422900',\n 'bg-brand-primary-basic-active': '#3d4eeb',\n 'bg-brand-primary-100-active': '#120075',\n 'bg-brand-primary-100-hover': '#12007580',\n}\n","import type { DefaultTheme } from 'styled-components'\nimport { hexToRgbA } from 'shared/utils/colors'\nimport { relBuilder } from 'shared/utils/rel-builder'\nimport { SizeInput } from 'shared/enums/sizeInput'\nimport { BREAKPOINTS } from 'shared/constants'\nimport { colors, socialColors, unitColors } from './colors'\nimport * as ColorsLight from './colors-light'\nimport * as ColorsDark from './colors-dark'\n\nexport const defaultTheme: DefaultTheme = {\n breakpoints: BREAKPOINTS,\n colors: {\n ...colors,\n ...socialColors,\n ...unitColors,\n ...ColorsLight.baseColors,\n ...ColorsLight.motherColors,\n },\n borderRadius: '5px',\n textColor: 'mineShaft',\n fallbackColor: 'mineShaft',\n zIndex: {\n modal: 9000,\n tooltip: 80,\n },\n classNamePrefix: 'fox',\n defaultInputControlsWidth: SizeInput.l,\n utils: {\n relBuilder,\n hexToRgbA,\n },\n mode: 'light',\n preset: 'default',\n name: 'mother',\n components: {\n Arrow: {\n size: 'l',\n },\n Button: {\n size: 'm',\n },\n Checkbox: {\n size: 'm',\n },\n Tooltip: {\n preset: 'default',\n },\n },\n}\n\nexport const motherLightTheme: DefaultTheme = {\n ...defaultTheme,\n preset: 'brand',\n}\n\nexport const motherDarkTheme: DefaultTheme = {\n ...defaultTheme,\n colors: {\n ...defaultTheme.colors,\n ...ColorsDark.baseColors,\n ...ColorsDark.motherColors,\n },\n mode: 'dark',\n preset: 'brand',\n}\n\nexport const babyLightTheme: DefaultTheme = {\n ...defaultTheme,\n colors: {\n ...defaultTheme.colors,\n ...ColorsLight.babyColors,\n },\n preset: 'brand',\n name: 'baby',\n}\n\nexport const babyDarkTheme: DefaultTheme = {\n ...defaultTheme,\n colors: {\n ...defaultTheme.colors,\n ...ColorsDark.baseColors,\n ...ColorsDark.babyColors,\n },\n mode: 'dark',\n preset: 'brand',\n name: 'baby',\n}\n\nexport const teenLightTheme: DefaultTheme = {\n ...defaultTheme,\n colors: {\n ...defaultTheme.colors,\n ...ColorsLight.teenColors,\n },\n preset: 'brand',\n name: 'teen',\n}\n\nexport const teenDarkTheme: DefaultTheme = {\n ...defaultTheme,\n colors: {\n ...defaultTheme.colors,\n ...ColorsDark.baseColors,\n ...ColorsDark.teenColors,\n },\n mode: 'dark',\n preset: 'brand',\n name: 'teen',\n}\n\nexport const adultLightTheme: DefaultTheme = {\n ...defaultTheme,\n colors: {\n ...defaultTheme.colors,\n ...ColorsLight.adultColors,\n },\n preset: 'brand',\n name: 'adult',\n}\n\nexport const adultDarkTheme: DefaultTheme = {\n ...defaultTheme,\n colors: {\n ...defaultTheme.colors,\n ...ColorsDark.baseColors,\n ...ColorsDark.adultColors,\n },\n mode: 'dark',\n preset: 'brand',\n name: 'adult',\n}\n","import type { CSSColor } from 'shared/types'\nimport { BaseColorNames, BrandColorNames } from './colors'\n\nexport const baseColors: Readonly<Record<BaseColorNames, CSSColor>> = {\n 'content-onmain-primary': '#25262c',\n 'content-onmain-secondary': '#25262cb3',\n 'content-onmain-tertiary': '#25262c8c',\n 'content-onmain-inverse': '#FFFFFF',\n 'content-oncolor-primary': '#ffffff',\n 'content-oncolor-secondary': '#ecedf3cc',\n 'content-oncolor-tertiary': '#ecedf399',\n 'content-oncolor-inverse': '#25262c',\n 'content-oncolor-constant': '#25262c',\n 'content-disabled': '#9698a6',\n 'content-oncolor-disabled': '#f5f6f999',\n 'content-oncolor-hover': '#00000029',\n 'content-onmain-hover': '#ffffff29',\n 'content-discount': '#db3339',\n 'content-link': '#376af6',\n 'border-onmain-default-large': '#d5d7e1',\n 'border-onmain-default-small': '#babcc9',\n 'border-onmain-contrast': '#25262c',\n 'border-disabled': '#a6a8b5',\n 'border-focus': '#8aafff',\n 'border-oncolor-disabled': '#ffffff66',\n 'border-oncolor-default': '#ffffff',\n 'bg-onmain-main': '#f5f6f9',\n 'bg-onmain-primary': '#ffffff',\n 'bg-onmain-secondary': '#f5f6f9',\n 'bg-onmain-tertiary': '#ecedf3',\n 'bg-onmain-divider': '#d5d7e1',\n 'bg-onmain-contrast': '#25262c',\n 'bg-onmain-inverse': '#25262c',\n 'bg-oncolor-primary': '#ffffff',\n 'bg-oncolor-secondary': '#ffffff3d',\n 'bg-oncolor-tertiary': '#ffffff1f',\n 'bg-oncolor-hover': '#00000014',\n 'bg-disabled-large': '#ecedf3',\n 'bg-disabled-small': '#d5d7e1',\n 'bg-disabled-active': '#a6a8b5',\n 'bg-oncolor-disabled': '#ffffff1f',\n 'bg-contrast-active': '#25262c',\n 'bg-oncontrast-hover': '#ffffff14',\n 'alert-bg-success-100': '#ddf4cd',\n 'alert-bg-success-200': '#bce4aa',\n 'alert-bg-success-500': '#63ab4f',\n 'alert-bg-warning-100': '#ffebcc',\n 'alert-bg-warning-200': '#ffd294',\n 'alert-bg-warning-500': '#f16f04',\n 'alert-bg-error-100': '#ffe9e5',\n 'alert-bg-error-200': '#ffcbc7',\n 'alert-bg-error-500': '#e4494e',\n 'alert-success': '#488b32',\n 'alert-warning': '#db6300',\n 'alert-error': '#db3339',\n 'product-bg-course': '#e1f5fe',\n 'product-bg-tutor': '#eaf9ae',\n 'product-bg-group': '#feffbd',\n 'product-bg-complect': '#ffebcc',\n 'skeleton-onmain-primary': 'rgba(0, 0, 0, 0.06)',\n 'skeleton-onmain-secondary': 'rgba(0, 0, 0, 0.1)',\n 'skeleton-gradient-from-color-onmain': 'rgba(0, 0, 0, 0)',\n 'skeleton-gradient-to-color-onmain': 'rgba(0, 0, 0, 0.07)',\n 'skeleton-oncolor-primary': 'rgba(255, 255, 255, 0.15)',\n 'skeleton-oncolor-secondary': 'rgba(255, 255, 255, 0.2)',\n 'skeleton-gradient-from-color-oncolor': 'rgba(255, 255, 255, 0)',\n 'skeleton-gradient-to-color-oncolor': 'rgba(255, 255, 255, 0.2)',\n}\n\nexport const motherColors: Readonly<Record<BrandColorNames, CSSColor>> = {\n 'content-brand-primary': '#8a51e6',\n 'content-brand-secondary': '#db6300',\n 'border-brand-primary': '#8a51e6',\n 'border-brand-secondary': '#db6300',\n 'border-brand-primary-hover': '#8a51e680',\n 'border-brand-primary-active': '#8a51e6',\n 'bg-brand-primary-basic': '#8a51e6',\n 'bg-brand-primary-100': '#f1e5ff',\n 'bg-brand-primary-200': '#e1d4f7',\n 'bg-brand-primary-400': '#c09eff',\n 'bg-brand-primary-500': '#8a51e6',\n 'bg-brand-secondary-basic': '#ff9900',\n 'bg-brand-secondary-100': '#ffebcc',\n 'bg-brand-secondary-200': '#ffd294',\n 'bg-brand-secondary-400': '#ff9900',\n 'bg-brand-secondary-500': '#f16f04',\n 'bg-brand-tertiary-100': '#feffbd',\n 'bg-brand-tertiary-200': '#fffb80',\n 'bg-brand-quaternary-100': '#e1f5fe',\n 'bg-brand-quaternary-200': '#bddcea',\n 'bg-brand-quaternary-400': '#89b8cd',\n 'bg-brand-quaternary-500': '#61a3bd',\n 'bg-brand-primary-basic-active': '#8a51e6',\n 'bg-brand-primary-100-active': '#f1e5ff',\n 'bg-brand-primary-100-hover': '#f1e5ff80',\n}\n\nexport const babyColors: Readonly<Record<BrandColorNames, CSSColor>> = {\n 'content-brand-primary': '#cc2e8d',\n 'content-brand-secondary': '#dbac00',\n 'border-brand-primary': '#cc2e8d',\n 'border-brand-secondary': '#dbac00',\n 'border-brand-primary-hover': '#cc2e8d80',\n 'border-brand-primary-active': '#cc2e8d',\n 'bg-brand-primary-basic': '#cc2e8d',\n 'bg-brand-primary-100': '#faebf7',\n 'bg-brand-primary-200': '#efcdea',\n 'bg-brand-primary-400': '#e594c5',\n 'bg-brand-primary-500': '#cc2e8d',\n 'bg-brand-secondary-basic': '#ffd333',\n 'bg-brand-secondary-100': '#fff4d1',\n 'bg-brand-secondary-200': '#ffde7a',\n 'bg-brand-secondary-400': '#ffd333',\n 'bg-brand-secondary-500': '#f4c10b',\n 'bg-brand-tertiary-100': '#ebefff',\n 'bg-brand-tertiary-200': '#cdd4f9',\n 'bg-brand-quaternary-100': '#ffebcc',\n 'bg-brand-quaternary-200': '#ffd294',\n 'bg-brand-quaternary-400': '#ff9900',\n 'bg-brand-quaternary-500': '#f16f04',\n 'bg-brand-primary-basic-active': '#cc2e8d',\n 'bg-brand-primary-100-active': '#faebf7',\n 'bg-brand-primary-100-hover': '#faebf780',\n}\n\nexport const teenColors: Readonly<Record<BrandColorNames, CSSColor>> = {\n 'content-brand-primary': '#8a51e6',\n 'content-brand-secondary': '#83b200',\n 'border-brand-primary': '#8a51e6',\n 'border-brand-secondary': '#83b200',\n 'border-brand-primary-hover': '#8a51e680',\n 'border-brand-primary-active': '#8a51e6',\n 'bg-brand-primary-basic': '#8a51e6',\n 'bg-brand-primary-100': '#f1e5ff',\n 'bg-brand-primary-200': '#e1d4f7',\n 'bg-brand-primary-400': '#c09eff',\n 'bg-brand-primary-500': '#8a51e6',\n 'bg-brand-secondary-basic': '#d1f00a',\n 'bg-brand-secondary-100': '#eefad1',\n 'bg-brand-secondary-200': '#e9ff6b',\n 'bg-brand-secondary-400': '#afdb00',\n 'bg-brand-secondary-500': '#83b200',\n 'bg-brand-tertiary-100': '#e6f7fe',\n 'bg-brand-tertiary-200': '#cdebf9',\n 'bg-brand-quaternary-100': '#ffebcc',\n 'bg-brand-quaternary-200': '#ffd294',\n 'bg-brand-quaternary-400': '#ff9900',\n 'bg-brand-quaternary-500': '#f16f04',\n 'bg-brand-primary-basic-active': '#8a51e6',\n 'bg-brand-primary-100-active': '#f1e5ff',\n 'bg-brand-primary-100-hover': '#f1e5ff80',\n}\n\nexport const adultColors: Readonly<Record<BrandColorNames, CSSColor>> = {\n 'content-brand-primary': '#3d4eeb',\n 'content-brand-secondary': '#1b0047',\n 'border-brand-primary': '#3d4eeb',\n 'border-brand-secondary': '#1b0047',\n 'border-brand-primary-hover': '#3d4eeb80',\n 'border-brand-primary-active': '#3d4eeb',\n 'bg-brand-primary-basic': '#3d4eeb',\n 'bg-brand-primary-100': '#e5ecff',\n 'bg-brand-primary-200': '#ccdaff',\n 'bg-brand-primary-400': '#8fa9ff',\n 'bg-brand-primary-500': '#3d4eeb',\n 'bg-brand-secondary-basic': '#1b0047',\n 'bg-brand-secondary-100': '#e8e5ff',\n 'bg-brand-secondary-200': '#d6d1ff',\n 'bg-brand-secondary-400': '#b1a3ff',\n 'bg-brand-secondary-500': '#1b0047',\n 'bg-brand-tertiary-100': '#eaf9ae',\n 'bg-brand-tertiary-200': '#d8ea8b',\n 'bg-brand-quaternary-100': '#ffebcc',\n 'bg-brand-quaternary-200': '#ffd294',\n 'bg-brand-quaternary-400': '#ff9900',\n 'bg-brand-quaternary-500': '#f16f04',\n 'bg-brand-primary-basic-active': '#3d4eeb',\n 'bg-brand-primary-100-active': '#e5ecff',\n 'bg-brand-primary-100-hover': '#e5ecff80',\n}\n","function isExternalUrl(url = '', hostname: string): boolean {\n return /^((http|https):\\/\\/)/.test(url) && !new URL(url).hostname.endsWith(hostname)\n}\n\nexport function relBuilder(link?: string, target?: string): undefined | string {\n if (!link) return\n\n const relStr = []\n\n if (isExternalUrl(link, window.location.hostname)) {\n if (target === '_blank') relStr.push('noopener')\n relStr.push('nofollow')\n }\n\n if (relStr.length === 0) return\n\n return relStr.join(' ')\n}\n","import { css } from 'styled-components'\nimport type { CSSObject, ThemeProps, DefaultTheme, SimpleInterpolation, Interpolation } from 'styled-components'\nimport { BREAKPOINTS } from 'shared/constants'\n\ntype MediaQueryParams = {\n and?: string\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n condition?: (_props: any) => boolean\n}\n\ntype ThemeBreakpoints = DefaultTheme['breakpoints']\n\ntype BreakpointKey = keyof ThemeBreakpoints\n\nconst CONDITIONS = (() => {\n const maxWidth = (breakpoints: ThemeBreakpoints, point: BreakpointKey) =>\n `(max-width: ${breakpoints[point] - 0.02}px)`\n const minWidth = (breakpoints: ThemeBreakpoints, point: BreakpointKey) => `(min-width: ${breakpoints[point]}px)`\n\n return {\n MAX: maxWidth,\n MIN: minWidth,\n RANGE: (breakpoints: ThemeBreakpoints, point1: BreakpointKey, point2: BreakpointKey) =>\n `${minWidth(breakpoints, point1)} and ${maxWidth(breakpoints, point2)}`,\n }\n})()\n\nexport const createMediaQuery =\n (condition: (_breakpoints: ThemeBreakpoints, ..._points: BreakpointKey[]) => string, ...points: BreakpointKey[]) =>\n (params?: MediaQueryParams) =>\n <T extends object>(...args: [CSSObject | TemplateStringsArray, ...Interpolation<T & ThemeProps<DefaultTheme>>[]]) =>\n (props: ThemeProps<DefaultTheme>) => {\n const contextBreakpoints = props.theme?.breakpoints ?? {}\n const breakpoints: ThemeBreakpoints = { ...BREAKPOINTS, ...contextBreakpoints }\n\n if (params !== undefined && typeof params.condition === 'function' && params.condition(props) === false) {\n return css``\n }\n\n return css<T>`\n @media screen and ${condition(breakpoints, ...points)} ${params !== undefined && typeof params.and === 'string'\n ? `and ${params.and}`\n : ``} {\n ${css<T>(...args)}\n }\n `\n }\n\n/**\n * @return `@media screen and (min-width: 320px) and (max-width: 374px) { ...args }`\n */\nexport const screenXs = createMediaQuery(CONDITIONS.RANGE, 'xxs', 'xs')\n\n/**\n * @return `@media screen and (min-width: 375px) and (max-width: 767px) { ...args }`\n */\nexport const screenS = createMediaQuery(CONDITIONS.RANGE, 'xs', 's')\n\n/**\n * @return `@media screen and (min-width: 768) and (max-width: 1023px) { ...args }`\n */\nexport const screenM = createMediaQuery(CONDITIONS.RANGE, 's', 'm')\n\n/**\n * @return `@media screen and (min-width: 1024px) and (max-width: 1279px) { ...args }`\n */\nexport const screenL = createMediaQuery(CONDITIONS.RANGE, 'm', 'l')\n\n/**\n * @return `@media screen and (min-width: 1280px) and (max-width: 1439px) { ...args }`\n */\nexport const screenXl = createMediaQuery(CONDITIONS.RANGE, 'l', 'xl')\n\n/**\n * @return `@media screen and (max-width: 319px) { ...args }`\n */\nexport const screenMaxXxs = createMediaQuery(CONDITIONS.MAX, 'xxs')\n\n/**\n * @return `@media screen and (max-width: 374px) { ...args }`\n */\nexport const screenMaxXs = createMediaQuery(CONDITIONS.MAX, 'xs')\n\n/**\n * @return `@media screen and (min-width: 375px) { ...args }`\n */\nexport const screenMinXs = createMediaQuery(CONDITIONS.MIN, 'xs')\n\n/**\n * @return `@media screen and (max-width: 767px) { ...args }`\n */\nexport const screenMaxS = createMediaQuery(CONDITIONS.MAX, 's')\n\n/**\n * @return `@media screen and (min-width: 768px) { ...args }`\n */\nexport const screenMinS = createMediaQuery(CONDITIONS.MIN, 's')\n\n/**\n * @return `@media screen and (max-width: 1023px) { ...args }`\n */\nexport const screenMaxM = createMediaQuery(CONDITIONS.MAX, 'm')\n\n/**\n * @return `@media screen and (min-width: 1024px) { ...args }`\n */\nexport const screenMinM = createMediaQuery(CONDITIONS.MIN, 'm')\n\n/**\n * @return `@media screen and (max-width: 1279px) { ...args }`\n */\nexport const screenMaxL = createMediaQuery(CONDITIONS.MAX, 'l')\n\n/**\n * @return `@media screen and (min-width: 1280px) { ...args }`\n */\nexport const screenMinL = createMediaQuery(CONDITIONS.MIN, 'l')\n\n/**\n * @return `@media screen and (max-width: 1439px) { ...args }`\n */\nexport const screenMaxXl = createMediaQuery(CONDITIONS.MAX, 'xl')\n\n/**\n * @return `@media screen and (min-width: 1440px) { ...args }`\n */\nexport const screenMinXl = createMediaQuery(CONDITIONS.MIN, 'xl')\n\n/**\n * @return `@media -webkit-min-device-pixel-ratio: 2 and (min-resolution: 192dpi) { ...args }`\n */\nexport const screenRetina = (...args: [CSSObject | TemplateStringsArray, SimpleInterpolation]) => css`\n @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n ${css(...args)}\n }\n`\n\nexport type MediaQuery = ReturnType<typeof createMediaQuery>\n","import { css, FlattenSimpleInterpolation } from 'styled-components'\nimport type { Size } from 'shared/types'\nimport { screenXs, screenMaxL, screenMaxM, screenMaxS, screenMaxXs, screenMinL, screenMaxXxs } from './screen'\nimport type { MediaQuery } from './screen'\n\nexport const SIZES_LATIN: Readonly<Record<Size, number>> = Object.freeze({\n xxxl: 44,\n xxl: 40,\n xl: 36,\n l: 28,\n m: 24,\n s: 20,\n xs: 16,\n xxs: 8,\n xxxs: 4,\n})\n\n// eslint-disable-next-line no-unused-vars\nexport const FONT_SIZES_LATIN: Readonly<Record<Size, number>> = Object.freeze({\n xxxl: 24,\n xxl: 22,\n xl: 20,\n l: 18,\n m: 16,\n s: 14,\n xs: 12,\n xxs: 10,\n xxxs: 8,\n})\n\nconst DESKTOP_FIRST_KEYS = ['xl', 'l', 'm', 's', 'xs', 'xxs']\nconst MOBILE_FIRST_KEYS = ['xxs', 'xs', 's', 'm', 'l', 'xl']\n\nexport function getLatinSizeMapByCssProperty<T>(cssProperty: T) {\n if (typeof cssProperty === 'string' && cssProperty === 'font-size') return FONT_SIZES_LATIN\n return SIZES_LATIN\n}\n\nexport function buildMediaQuery(\n value: number | Size | 'auto' | 'initial' | 'inherit' | boolean,\n property:\n | string\n | ((\n _size: number | 'auto' | 'initial' | 'inherit' | boolean,\n _sizing?: null | string\n ) => FlattenSimpleInterpolation | null),\n screenQueryFunction: typeof screenXs,\n sizing: null | string,\n sizes?: Record<Size, number>\n): ReturnType<typeof css> {\n const sizeMap = sizes ?? getLatinSizeMapByCssProperty(property)\n\n const size: number | 'auto' | 'initial' | 'inherit' | boolean =\n typeof value === 'string' ? sizeMap[value] ?? value : value\n\n if (typeof property === 'function') {\n const value = property(size, sizing)\n return css`\n ${screenQueryFunction()`\n ${value}\n `}\n `\n }\n\n return css`\n ${screenQueryFunction()`\n ${property}: ${size as string}${typeof size === 'string' ? '' : sizing ?? ''};\n `}\n `\n}\n\nconst getKey = (key: string): 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl' | null => {\n if (key.endsWith('XXS')) return 'xxs'\n if (key.endsWith('XS')) return 'xs'\n if (key.endsWith('S')) return 's'\n if (key.endsWith('M')) return 'm'\n if (key.endsWith('XL')) return 'xl'\n if (key.endsWith('L')) return 'l'\n return null\n}\n\nexport const desktopFirst = (a: string, b: string): number => {\n const aKey = getKey(a)\n const bKey = getKey(b)\n if (!aKey || !bKey) return 0\n\n const aIndex = DESKTOP_FIRST_KEYS.findIndex((el) => el === aKey)\n const bIndex = DESKTOP_FIRST_KEYS.findIndex((el) => el === bKey)\n\n return aIndex < bIndex ? -1 : 1\n}\n\nexport const mobileFirst = (a: string, b: string): number => {\n const aKey = getKey(a)\n const bKey = getKey(b)\n if (!aKey || !bKey) return 0\n\n const aIndex = MOBILE_FIRST_KEYS.findIndex((el) => el === aKey)\n const bIndex = MOBILE_FIRST_KEYS.findIndex((el) => el === bKey)\n\n return aIndex < bIndex ? -1 : 1\n}\n\nexport const getMediaQueryByResponsiveProp = (prop: string): MediaQuery => {\n if (prop.endsWith('XXS')) return screenMaxXxs\n if (prop.endsWith('XS')) return screenMaxXs\n if (prop.endsWith('S')) return screenMaxS\n if (prop.endsWith('M')) return screenMaxM\n if (prop.endsWith('XL')) return screenMinL\n return screenMaxL\n}\n","import { css, FlattenSimpleInterpolation } from 'styled-components'\nimport { screenMaxL, screenMaxM, screenMaxS, screenMaxXs, screenMinL, screenMaxXxs, screenMinM } from 'mixins/screen'\nimport {\n buildMediaQuery,\n getLatinSizeMapByCssProperty,\n desktopFirst,\n getMediaQueryByResponsiveProp,\n} from 'mixins/shared'\nimport type { Size } from 'shared/types'\n\n/**\n * Value for breakpoint\n */\nexport type PossibleValues = number | Size | 'auto' | 'initial' | 'inherit' | boolean\n\ntype PropsProperties =\n | 'size'\n | 'fontSize'\n | 'height'\n | 'width'\n | 'top'\n | 'right'\n | 'bottom'\n | 'left'\n | 'padding'\n | 'paddingTop'\n | 'paddingRight'\n | 'paddingBottom'\n | 'paddingLeft'\n | 'margin'\n | 'marginTop'\n | 'marginRight'\n | 'marginBottom'\n | 'marginLeft'\n | 'fluid'\n\nexport type CalcProperty = (\n _size: number | 'auto' | 'initial' | 'inherit' | boolean,\n _sizing?: null | string\n) => FlattenSimpleInterpolation | null\ntype CssProperty = string | CalcProperty\ntype ResponsiveKeys = '' | 'XXS' | 'XS' | 'S' | 'M' | 'L' | 'XL'\n\nexport type ResponsiveNamedProperty<T extends PropsProperties, V extends PossibleValues = PossibleValues> = {\n /**\n * Size for breakpoint\n */\n [key in `${T}${ResponsiveKeys}`]?: V // eslint-disable-line no-unused-vars\n}\n\nexport type ResponsiveProperty<V = number | Size> =\n | V\n | [desktop: V, tablet: V, mobile: V]\n | [xl: V, l: V, m: V, s: V, xs: V, xxs: V]\n\nexport const property =\n (\n value: PossibleValues,\n cssProperty: CssProperty = 'size',\n sizing: null | string = 'px',\n sizes?: Record<Size, number>\n ) =>\n () =>\n () => {\n if (typeof value === 'boolean') {\n return typeof cssProperty === 'function' ? cssProperty(1) : null\n }\n\n const sizeMap = sizes ?? getLatinSizeMapByCssProperty(cssProperty)\n\n if (typeof cssProperty === 'function') {\n return cssProperty(typeof value === 'number' ? value : sizeMap[value])\n }\n\n if (typeof value === 'string' && ['auto', 'initial', 'inherit'].includes(value))\n return css`\n ${cssProperty}: ${value};\n `\n\n return css`\n ${cssProperty}: ${typeof value === 'string' && sizeMap[value] ? sizeMap[value] : value}${sizing ?? ''};\n `\n }\n\nconst SCREEN_SIZE_MAP: Record<Exclude<ResponsiveKeys, ''>, typeof screenMaxXs> = {\n XXS: screenMaxXxs,\n XS: screenMaxXs,\n S: screenMaxS,\n M: screenMaxM,\n L: screenMaxL,\n XL: screenMinL,\n}\n\nconst SCREEN_SIZE_MAP_BY_DEVICE_ALIAS: Record<'desktop' | 'tablet' | 'mobile', typeof screenMaxXs> = {\n desktop: screenMinM,\n tablet: screenMaxM,\n mobile: screenMaxS,\n}\n\ninterface ResponsiveNamedPropertyPayload<T extends PropsProperties> {\n sizes: ResponsiveNamedProperty<T>\n cssProperty: CssProperty\n sizing?: null | string\n customSizeHandler?: (_value: PossibleValues) => PossibleValues\n sort?: (_a: string, _b: string) => number\n predefinedSizes?: Record<Size, number>\n}\n\n/**\n * Миксин для генерации media запросов\n *\n * @param obj.sizes Объект, в качестве ключей брэйкпоинт, в качестве значений - величина\n * @param obj.cssProperty CSS свойство, может быть функцией, возвращающей css`` из styled-components\n * @param obj.sizing значение величины, по умолчанию `px`\n * @param obj.customSizeHandler функция для вычисления кастомных значений величин\n * @returns строки медиазапросов\n */\nexport const responsiveNamedProperty =\n <T extends PropsProperties>({\n sizes,\n predefinedSizes,\n cssProperty = 'size',\n sizing = 'px',\n customSizeHandler,\n sort = desktopFirst,\n }: ResponsiveNamedPropertyPayload<T>) =>\n () =>\n () => {\n const mediaCssStrArr = Object.keys(sizes)\n .sort(sort)\n .map((size) => {\n if (sizes[size] !== undefined) {\n const _size: PossibleValues =\n typeof customSizeHandler === 'function' ? customSizeHandler(sizes[size]) : sizes[size]\n\n return buildMediaQuery(_size, cssProperty, getMediaQueryByResponsiveProp(size), sizing, predefinedSizes)\n }\n return null\n })\n .filter(Boolean)\n .map(\n (item) =>\n css`\n ${item}\n `\n )\n\n return mediaCssStrArr\n }\n\n/**\n * Миксин для генерации media запросов\n *\n * @param propName имя пропсы\n * @param cssProperty имя css свойства\n * @param sizing значение величины, по умолчанию `px`\n * @returns строки медиазапросов\n */\nexport const responsiveProperty =\n (propName: string, cssProperty: string | null = null, sizing: null | string = 'px') =>\n () =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (props: any) => {\n const prop: ResponsiveProperty | null = props[propName] ?? null\n const _cssProperty = cssProperty ?? propName\n if (!prop) return null\n\n if (Array.isArray(prop) && prop.length === 3) {\n const [desktop, tablet, mobile] = prop\n return css`\n ${SCREEN_SIZE_MAP_BY_DEVICE_ALIAS.desktop()`\n ${_cssProperty}: ${typeof desktop === 'number' ? `${desktop}${sizing ?? ''}` : desktop};\n `}\n ${SCREEN_SIZE_MAP_BY_DEVICE_ALIAS.tablet()`\n ${_cssProperty}: ${typeof tablet === 'number' ? `${tablet}${sizing ?? ''}` : tablet};\n `}\n ${SCREEN_SIZE_MAP_BY_DEVICE_ALIAS.mobile()`\n ${_cssProperty}: ${typeof mobile === 'number' ? `${mobile}${sizing ?? ''}` : mobile};\n `}\n `\n }\n\n if (Array.isArray(prop) && prop.length === 6 && typeof _cssProperty === 'string') {\n const [xl, l, m, s, xs, xxs] = prop\n return css`\n ${SCREEN_SIZE_MAP.XL()`\n ${_cssProperty}: ${typeof xl === 'number' ? `${xl}${sizing ?? ''}` : xl};\n `}\n ${SCREEN_SIZE_MAP.L()`\n ${_cssProperty}: ${typeof l === 'number' ? `${l}${sizing ?? ''}` : l};\n `}\n ${SCREEN_SIZE_MAP.M()`\n ${_cssProperty}: ${typeof m === 'number' ? `${m}${sizing ?? ''}` : m};\n `}\n ${SCREEN_SIZE_MAP.S()`\n ${_cssProperty}: ${typeof s === 'number' ? `${s}${sizing ?? ''}` : s};\n `}\n ${SCREEN_SIZE_MAP.XS()`\n ${_cssProperty}: ${typeof xs === 'number' ? `${xs}${sizing ?? ''}` : xs};\n `}\n ${SCREEN_SIZE_MAP.XXS()`\n ${_cssProperty}: ${typeof xxs === 'number' ? `${xxs}${sizing ?? ''}` : xxs};\n `}\n `\n }\n\n if (typeof prop === 'number') {\n return css`\n ${_cssProperty}: ${prop}${sizing ?? null};\n `\n }\n\n if (typeof prop === 'string') {\n return css`\n ${_cssProperty}: ${prop};\n `\n }\n\n return null\n }\n","import { css, DefaultTheme, FlattenSimpleInterpolation } from 'styled-components'\nimport type { CSSColor, Color } from 'shared/types'\n\ntype ColorPropertyVariants = 'color' | 'fontColor' | `${string}Color` | `color${string}`\ntype ColorCalcProperty = (_color: CSSColor) => FlattenSimpleInterpolation | null\ntype ColorCssProperty = string | ColorCalcProperty\nexport type ColorProperty<T extends ColorPropertyVariants = 'color'> = {\n /**\n * Color name, HEX, rgb or rgba\n */\n [key in `${T}`]?: Color // eslint-disable-line no-unused-vars\n}\n\nexport const getColor = (color: Color, props: { theme: DefaultTheme }) => {\n if (typeof color === 'string' && (color.includes('#') || color.includes('rgb'))) return color\n\n if (props.theme.colors[color]) return props.theme.colors[color]\n\n return color\n}\n\nexport const color =\n (color?: Color | string, cssProperty: ColorCssProperty = 'color') =>\n () =>\n (props: { theme: DefaultTheme }) => {\n const colorVal = color || props?.theme?.textColor || props?.theme?.fallbackColor\n const _color = getColor(colorVal as Color, props)\n\n if (typeof cssProperty === 'function') {\n return cssProperty(_color)\n }\n\n return css`\n ${cssProperty}: ${_color};\n `\n }\n","import { useTheme } from 'styled-components'\nimport cx from 'clsx'\n\nexport function useClassname(componentName: string, originalClassName?: string) {\n const theme = useTheme()\n return cx(`${theme.classNamePrefix}-${componentName}`, originalClassName)\n}\n","import { mergeDeepLeft } from 'ramda'\nimport type { Sizes } from 'shared/types'\n\nconst SIZES_EMPTY: Sizes = { xxxl: {}, xxl: {}, xl: {}, l: {}, m: {}, s: {}, xs: {}, xxs: {}, xxxs: {} }\n\nexport function useMergedSizes<\n T extends {\n sizes?: Partial<Sizes>\n }\n>(componentProps: T, componentSizes: Sizes | ((props: T) => Sizes) = SIZES_EMPTY): Sizes {\n const sizesDefault = typeof componentSizes === 'function' ? componentSizes(componentProps) : componentSizes\n const sizesProp = componentProps.sizes ?? {}\n\n return mergeDeepLeft(sizesProp, sizesDefault) as Sizes\n}\n","import { useTheme } from 'styled-components'\nimport type { ColorPaletteKey, Color, CSSColor } from 'shared/types'\n\nexport function useMergedPalette<\n T extends {\n palette?: Partial<Record<ColorPaletteKey, Color>>\n }\n>(componentProps: T): Record<ColorPaletteKey, CSSColor> {\n const theme = useTheme()\n\n const palette = componentProps.palette ?? {}\n\n return Object.keys(palette).reduce((injected, key) => {\n injected[key] = theme.colors[palette[key]] ?? palette[key]\n return injected\n }, {} as Record<ColorPaletteKey, CSSColor>)\n}\n","import { forwardRef } from 'react'\nimport type { ThemePreset, Sizes, Color, CSSColor, ColorPaletteKey } from 'shared/types'\nimport { useMergedProps } from 'hooks/useMergedProps'\nimport { useMergedSizes } from 'hooks/useMergedSizes'\nimport { useMergedPalette } from 'hooks/useMergedPalette'\n\ntype WrappedComponentProps = {\n preset?: ThemePreset\n sizes?: Partial<Sizes>\n palette?: Partial<Record<ColorPaletteKey, Color>>\n}\n\ntype MergedProps<T> = Omit<T, 'preset' | 'sizes' | 'palette'> & {\n preset: ThemePreset\n sizes: Sizes\n palette: Partial<Record<ColorPaletteKey, CSSColor>>\n}\n\ntype WithMergedPropsOptions<T> = {\n displayName: string\n sizes?: Sizes | ((props: T) => Sizes)\n}\n\nfunction withMergedProps<T extends WrappedComponentProps, R extends HTMLElement = HTMLElement>(\n WrappedComponent: React.FC<MergedProps<T>>,\n options: WithMergedPropsOptions<Omit<T, 'sizes'> & { preset: ThemePreset }>\n) {\n const WithMergedProps = forwardRef<R, T>((wrappedComponentProps, ref) => {\n const props = useMergedProps(wrappedComponentProps, options.displayName)\n const sizes = useMergedSizes(props, options.sizes)\n const palette = useMergedPalette(props)\n\n WrappedComponent.displayName = options.displayName\n\n return <WrappedComponent {...props} sizes={sizes} palette={palette} ref={ref} />\n })\n\n WithMergedProps.displayName = `WithMergedProps${options.displayName}`\n\n return WithMergedProps\n}\n\nexport { withMergedProps }\n","import { useTheme } from 'styled-components'\nimport { mergeDeepLeft } from 'ramda'\nimport type { ThemePreset } from 'shared/types'\n\nexport function useMergedProps<\n T extends {\n preset?: ThemePreset\n }\n>(\n componentProps: T,\n componentName: string\n): T & {\n preset: ThemePreset\n} {\n const theme = useTheme()\n\n const context = theme.components ?? {}\n const contextProps: T = context[componentName] ?? {}\n const mergedProps = mergeDeepLeft(componentProps, contextProps) as T\n\n return {\n ...mergedProps,\n preset: mergedProps.preset ?? theme.preset,\n }\n}\n","<svg viewBox=\"0 0 20 16\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\"><path d=\"M3.275 2.11h-2.4v13.015h18.25v-13.015h-2.4v-1.235h-5.525c-.454 0-.871.163-1.2.433-.329-.27-.746-.433-1.2-.433h-5.525v1.235zm13.45 1.485h.95v10.044h-15.35v-10.044h.95v9.059h5.525c.258 0 .475.218.475.493v.125h1.45v-.125c0-.275.217-.493.475-.493h5.525v-9.059zm-6-.743c0-.275.217-.493.475-.493h4.075v8.809h-4.075c-.164 0-.323.021-.475.061v-8.377zm-6-.493h4.075c.258 0 .475.218.475.493v8.377c-.152-.04-.311-.061-.475-.061h-4.075v-8.809z\" stroke-width=\".25\"/></svg>\n","<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\"><path d=\"M4 4h2v2h-2v-2zM7 4h5v2h-5v-2zM4 7h2v2h-2v-2zM7 7h5v2h-5v-2z\" /><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16 0v13h-5l3 3h-2.828l-2.172-2.172v2.172h-2v-2.172l-2.172 2.172h-2.828l3-3h-5v-13h16zm-2 11v-9h-12v9h12z\" /></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentcolor\"><path d=\"M0 4v-2h16v2h-16zm0 5v-2h16v2h-16zm0 3v2h16v-2h-16z\"/></svg>\n","<svg viewBox=\"0 0 26 16\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\"><path d=\"m0 0h26v16h-26z\" fill=\"none\"/><path d=\"m20.8 4.6c-2.2-2.2-4.7-4.6-7.8-4.6s-5.6 2.4-7.8 4.6c-1.9 1.8-3.5 3.4-5.2 3.4 1.7 0 3.3 1.6 5.2 3.4 2.2 2.2 4.7 4.6 7.8 4.6s5.6-2.4 7.8-4.6c1.9-1.8 3.5-3.4 5.2-3.4-1.7 0-3.3-1.6-5.2-3.4zm-7.8 8.7c-2.9 0-5.2-2.4-5.2-5.3s2.3-5.3 5.2-5.3 5.2 2.4 5.2 5.3-2.3 5.3-5.2 5.3zm1.3-5.3c-.7 0-1.3-.6-1.3-1.3 0-.5.3-1 .8-1.2-.2-.1-.5-.1-.8-.1-1.4 0-2.6 1.2-2.6 2.7s1.2 2.7 2.6 2.7 2.6-1.2 2.6-2.7c0-.3 0-.5-.1-.8-.2.4-.7.7-1.2.7z\" /></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentcolor\"><path d=\"M0 1v14h16v-14h-16zm14 2v1.2l-6 4-6-4v-1.2h12zm-12 10v-6.4l6 4 6-4v6.4h-12z\"/></svg>\n","<svg width=\"14\" height=\"12\" viewBox=\"0 0 14 12\" xmlns=\"http://www.w3.org/2000/svg\" fill='currentcolor'><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0 2.5v-1.75h14v1.75h-14zm0 4.375v-1.75h10.5v1.75h-10.5zm0 2.625v1.75h7v-1.75h-7z\" /></svg>\n","<svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" xmlns=\"http://www.w3.org/2000/svg\" fill='currentcolor'><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0 2v-2h8v2h-8zm0 3v2h12v-2h-12zm0 5v2h10v-2h-10z\" /></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill='currentcolor'><path d=\"M12 9h-.6c.4-.6.6-1.3.6-2v-3c0-2.2-1.8-4-4-4s-4 1.8-4 4v3c0 .7.2 1.4.6 2h-.6c-2.2 0-4 1.8-4 4v3h16v-3c0-2.2-1.8-4-4-4zm-6-2v-3c0-1.1.9-2 2-2s2 .9 2 2v3c0 1.1-.9 2-2 2s-2-.9-2-2zm8 7h-12v-1c0-1.1.9-2 2-2h8c1.1 0 2 .9 2 2v1z\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 14 11\" fill=\"currentcolor\"><path d=\"M3.5.5h7.1l2.8 4.1-6.4 6.3-6.3-6.3 2.8-4.1zm1 2l-1.2 1.9 3.7 3.7 3.7-3.7-1.2-1.9h-5z\"/></svg>\n","<svg viewBox='0 0 19 16' xmlns='http://www.w3.org/2000/svg' fill=\"currentcolor\"><path d='M0 6l3.8-6h11.4l3.8 6-9.5 10-9.5-10z' /></svg>\n","<svg fill=\"currentcolor\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"10\" cy=\"10\" r=\"10\"/><path d=\"m12.5 6.5h-5l-2 3 4.5 4.5 4.5-4.5z\" stroke=\"#fff\" stroke-width=\"2\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentcolor\"><path d=\"M8 0c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 14c-3.3 0-6-2.7-6-6s2.7-6 6-6 6 2.7 6 6-2.7 6-6 6zM7 7h2v5h-2zM7 4h2v2h-2z\"/></svg>\n","<svg viewBox=\"0 0 16 12\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M2 0h-2v2h2v-2zm0 5h-2v2h2v-2zm-2 5h2v2h-2v-2zm16-10h-12v2h12v-2zm-12 5h12v2h-12v-2zm12 5h-12v2h12v-2z\" /></svg>\n","<svg viewBox=\"0 0 17 16\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7.8852 9L5.5018 11.2929L6.97184 12.7071L11.8647 8L6.97184 3.29289L5.5018 4.70711L7.8852 7L-3.0598e-07 7L-3.93402e-07 9L7.8852 9ZM14.5526 14L9.35523 14L9.35523 16L16.6315 16L16.6315 7.26987e-07L9.35523 4.0893e-07L9.35523 2L14.5526 2L14.5526 14Z\" />\n</svg>\n","<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.414 7l2.293-2.293-1.414-1.414-4.707 4.707 4.707 4.707 1.414-1.414-2.293-2.293h7.586v-2h-7.586zm-6.414-5h5v-2h-7v16h7v-2h-5v-12z\" /></svg>\n","<svg viewBox=\"0 0 14 19\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7 19c3.866 0 7-3.224 7-7.2 0-6.792-6.444-5.8-4.5-11.8-2.472.152-5.5 1-6.5 4.5-.491 1.718.107 3.044.27 3.764.163.72-.211 1.343-.761 1.233-.548-.109-.762-.831-.548-2.247-1.96 1.231-1.96 3.518-1.96 4.55 0 3.976 3.134 7.2 7 7.2z\" /></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentcolor\"><path d=\"M15 6v-6h-14v6h-1v3h1v5h1v2h3v-2h6v2h3v-2h1v-5h1v-3h-1zm-2 6h-10v-1h10v1zm0-3h-10v-7h10v7zm-8-6h6v2h-6z\"/></svg>\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0 2h1.236l3 11h8.764v-2h-7.236l-.273-1h8.29l2-8h-9.781v2h7.219l-1 4h-7.274l-2.182-8h-2.764v2zm12 14c.552 0 1-.448 1-1s-.448-1-1-1-1 .448-1 1 .448 1 1 1zm-6-1c0 .552-.448 1-1 1s-1-.448-1-1 .448-1 1-1 1 .448 1 1z\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentcolor\"><path d=\"M8 0c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 14c-3.3 0-6-2.7-6-6s2.7-6 6-6 6 2.7 6 6-2.7 6-6 6zM7.4 7.8h-2.2v2h4.2v-5h-2z\"/></svg>\n","<svg viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\"><path d=\"M10 20c5.5 0 10-4.5 10-10s-4.5-10-10-10-10 4.5-10 10 4.5 10 10 10zm0-15h2v8h-6v-2h4v-6z\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentcolor\"><path d=\"M16 0h-16v16h16v-16zm-14 14v-12h12v12h-12zm4.4-8.3l3.9 2.3-3.9 2.3v-4.6z\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentcolor\"><path d=\"M.08 14.505l14.425-14.425 1.414 1.414-14.425 14.425zM3.2 6.4c1.8 0 3.2-1.4 3.2-3.2 0-1.8-1.4-3.2-3.2-3.2-1.8 0-3.2 1.4-3.2 3.2 0 1.8 1.4 3.2 3.2 3.2zm0-4.4c.7 0 1.2.5 1.2 1.2s-.5 1.2-1.2 1.2-1.2-.5-1.2-1.2.5-1.2 1.2-1.2zM12.8 9.6c-1.8 0-3.2 1.4-3.2 3.2 0 1.8 1.4 3.2 3.2 3.2 1.8 0 3.2-1.4 3.2-3.2 0-1.8-1.4-3.2-3.2-3.2zm0 4.4c-.7 0-1.2-.5-1.2-1.2s.5-1.2 1.2-1.2 1.2.5 1.2 1.2-.5 1.2-1.2 1.2z\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentcolor\"><path d=\"M13 4v-4h-13v6h2v3h-2v7h16v-12h-3zm-11-2h9v2h-9v-2zm3 4v3h-1v-3h1zm6 8h-9v-3h9v3zm3 0h-1v-3h1v3zm0-5h-7v-3h7v3z\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentcolor\"><path d=\"M16 9v-2c0-3.9-3.1-7-7-7h-2c-3.9 0-7 3.1-7 7v9h5v-7h-3v-2c0-2.8 2.2-5 5-5h2c2.8 0 5 2.2 5 5v2h-3v7h5v-7zm-13 2v3h-1v-3h1zm11 3h-1v-3h1v3z\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill='currentcolor'><path d=\"M8.4 0h7.6000000000000005v7.6000000000000005l-.3.3-.2.2c1 2.4.4 5.1-1.3 6.4-1.3 1-2.7 1.2-3.9 1-.6-.1-1.1-.3-1.6-.7l-.4.4-.7.8-.7-.7-6.2-6.2-.7-.7.7-.7 7.4-7.4.3-.3zm2.4 4.2c1.3.4 2.4 1 3.2 1.8v-4h-4.8l-6.4 6.4 4.8 4.8 5.4-5.4c-.5-.6-1.2-1.1-2.2-1.5v.9h-1v-4.1h1v1.1zm2.2 8.7c.7-.5 1.2-1.8.9-3.2l-3.7 3.7c.1.1.3.1.5.2.7.1 1.5 0 2.3-.7z\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill='currentcolor'><path d=\"M14 3.2h-2v-3.2h-8v3.1999999999999997h-4v12.8h16v-12.8h-2zm-8-1.2h4v.8h-4v-.8zm8 12h-12v-4h5v1.2h2v-1.2h5v4zm0-6h-12v-2.8h12v2.8z\"/></svg>\n","<svg viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\" fill='currentcolor'><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 2c4.418 0 8 3.582 8 8h2c0-5.523-4.477-10-10-10v2zm0 4c2.209 0 4 1.791 4 4h2c0-3.314-2.686-6-6-6v2zm2 7.75c.5-.625 1.25-.625 1.875 0 .25.25.486.5.722.75.472.5.944 1 1.528 1.5.625.625.625 1.375 0 2l-1.25 1.25c-.625.625-1.375.75-2.125.75-1.25-.125-2.375-.5-3.375-1-2.375-1.125-4.375-2.625-6-4.625-1.125-1.5-2.25-3.125-2.875-4.875-.375-.875-.5-1.75-.5-2.75 0-.5.25-1 .75-1.5.375-.375.875-.875 1.375-1.25.5-.625 1.25-.625 1.875 0 .375.25.75.625 1.125 1l.269.285c.25.273.484.529.856.715.625.625.625 1.375 0 2l-.481.51c-.291.319-.566.619-.894.865-.125.125-.125.25-.125.375.375.625.75 1.25 1.25 1.875 1 1.25 2 2.25 3.375 3.125.191.191.455.309.68.41l.195.09c.125 0 .25 0 .375-.125l1.375-1.375z\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill='currentcolor'><path d=\"M14.7 5.5h-3.7l-2.1-4.7c-.3-.7-1.4-.7-1.7 0l-2.2 4.7h-3.7c-.8 0-1.3 1-.7 1.6l2.8 2.7-.7 4.8c-.1.8.8 1.4 1.5.9l3.8-2.8 3.8 2.9c.7.5 1.6-.1 1.5-.9l-.7-4.8 2.8-2.7c.6-.7.2-1.7-.7-1.7zm-4.3 3.6l.5 3.3-2.9-2.2-2.9 2.2.5-3.3-1.7-1.6h2.4l1.7-3.7 1.7 3.7h2.4l-1.7 1.6z\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill='currentcolor'><path d=\"M14.4 7.8l1.4-1.7-1.9-3.8-2.4.6-.8-.5-.5-2.4h-4.6l-.6 2.4-.8.5-2.3-.6-1.8 3.8 1.3 1.7v1.2l-1.3 2 1.9 3 2.3-.7.7.4.6 2.3h4.6l.6-2.3.7-.4 2.3.7 2-3-1.4-2c.1 0 .1-1.2 0-1.2zm-.8 3.3l-.4.6-1.7-.5-2.3 1.2-.5 1.6h-1.5l-.4-1.7-2.3-1.2-1.7.5-.3-.6 1-1.4v-2.4l-1-1.3.5-1.2 1.6.4 2.2-1.5.4-1.6h1.4l.4 1.6 2.2 1.5 1.7-.4.6 1.2-1 1.3v2.5l1.1 1.4zM7.9 5c-1.7 0-3 1.3-3 3s1.3 3 3 3 3-1.3 3-3-1.2-3-3-3zm0 4c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.3 1-1 1z\"/></svg>\n","<svg viewBox=\"0 0 25 17\" xmlns=\"http://www.w3.org/2000/svg\" fill='currentcolor'><path d=\"M24.051 6.289l.254-.114-.254-.114-11.515-5.175-.051-.023-.051.023-11.485 5.175-.253.114.253.114 5.363 2.416v3.516c0 1.168.729 2.202 2.01 2.923 1.129.635 2.608.981 4.164.981 1.556 0 3.035-.346 4.164-.981 1.281-.72 2.01-1.755 2.01-2.923v-3.509l2.659-1.195 1.344-.604 1.388-.624zm-11.617 5.175l.051.023.051-.023 4.529-2.035v2.792c0 .228-.107.475-.325.723-.218.248-.54.489-.949.701-.82.423-1.976.718-3.305.718-1.329 0-2.485-.296-3.305-.718-.41-.211-.732-.453-.95-.701-.218-.248-.325-.496-.325-.723v-2.797l4.528 2.04zm.052-1.879l-7.568-3.41 7.568-3.41 7.587 3.41-7.587 3.41z\" stroke-width=\".25\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill='currentcolor'><path d=\"M8 14c3.3 0 6-2.7 6-6 0-.9-.2-1.8-.6-2.6l-1.2.9c.2.5.3 1.1.3 1.7 0 2.5-2 4.5-4.5 4.5s-4.5-2-4.5-4.5 2-4.5 4.5-4.5c1.1 0 2.2.4 3 1.1l1.2-.9c-1.1-1-2.5-1.7-4.2-1.7-3.3 0-6 2.7-6 6s2.7 6 6 6zm1.3-8.1c-.4-.3-.8-.4-1.3-.4-1.4 0-2.5 1.1-2.5 2.5s1.1 2.5 2.5 2.5 2.5-1.1 2.5-2.5c0-.2 0-.4-.1-.5l-1.8 1.3c-.5.3-1.1.2-1.4-.2-.3-.5-.2-1.1.2-1.4l1.9-1.3zm5.7-1.7c.6 1.1 1 2.4 1 3.8 0 4.4-3.6 8-8 8s-8-3.6-8-8 3.6-8 8-8c2.3 0 4.4 1 5.9 2.6l.5-.4c.4-.3 1.1-.2 1.4.2.3.4.2 1.1-.2 1.4l-.6.4z\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill='currentcolor'><path d=\"M13 0h-13v16h16v-16h-3zm-6 2h1v1l-.5-.2-.5.2v-1zm4 12h-9v-12h3v4l2.5-1 2.5 1v-4h1v12zm3 0h-1v-12h1v12z\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill='currentcolor'><path d=\"M14 0h-14v3c0 1.9 1.3 3.4 3 3.9v.1c0 2.4 1.7 4.4 4 4.9v2.1h-4v2h10v-2h-4v-2.1c2.3-.5 4-2.5 4-4.9v-.1c1.7-.4 3-2 3-3.9v-3h-2zm-11 4.7c-.6-.3-1-1-1-1.7v-1h1v2.7zm8 .3v2c0 1.7-1.3 3-3 3s-3-1.3-3-3v-5h6v3zm3-2c0 .7-.4 1.4-1 1.7v-2.7h1v1z\"/></svg>\n","<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\"><path d=\"m8.5 2c-3 0-5.5 2.5-5.5 5.5 0 .8.2 1.5.4 2.2l.2.3-.8 3.1 2.9-.9.3.2c.7.4 1.6.6 2.5.6 3 0 5.5-2.5 5.5-5.5s-2.5-5.5-5.5-5.5zm-7.5 5.5c0-4.1 3.4-7.5 7.5-7.5s7.5 3.4 7.5 7.5-3.4 7.5-7.5 7.5c-1.1 0-2.1-.2-3.1-.7l-5.4 1.7 1.5-5.9c-.3-.8-.5-1.7-.5-2.6z\" /></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill='currentcolor'><path d=\"M11 4v-4h-8c-1.7 0-3 1.3-3 3v13h16v-12h-5zm-8-2h6v2h-6c-.6 0-1-.4-1-1s.4-1 1-1zm11 12h-12v-8.2c.1 0 .2 0 .3.1h.2c.1.1.3.1.5.1h11v8z\"/><circle cx=\"11\" cy=\"10\" r=\"1\"/></svg>\n","<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.5 0l4.243 4.243-11.5 11.757h-4.243v-4.243l11.5-11.757zm0 3l-9.5 9.586v1.414h1.414l9.5-9.586-1.414-1.414zm-2.5 11v2h7v-2h-7z\" /></svg>\n","<svg viewBox=\"0 0 16 16\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5 2V4H3V0H16V13H12V11H14V2H5Z\" />\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M13 3H0V16H13V3ZM2 14V5H11V14H2Z\" />\n</svg>\n","<svg fill='currentcolor' viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><g><path d=\"m0 0v20h20v-20zm18 18h-16v-16h16z\"/><path d=\"m15 5h-10v2h10z\"/><path d=\"m15 9h-10v2h10z\"/><path d=\"m15 13h-10v2h10z\"/></g></svg>\n","<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\" fill='currentcolor'><path d=\"M13 4v-4h-10v4h-3v9h3v3h10v-3h3v-9h-3zm-8-2h6v2h-6v-2zm6 12h-6v-3h6v3zm3-3h-1v-2h-10v2h-1v-5h12v5zm-10.2-2.4c.442 0 .8-.358.8-.8 0-.442-.358-.8-.8-.8-.442 0-.8.358-.8.8 0 .442.358.8.8.8z\" /></svg>\n","<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill='currentcolor'><path fill-rule=\"evenodd\" d=\"M7 0H0v15h15V8h-2v5H2V2h5V0zm0 10.9142l8.7072-8.7071L14.293.7928 7 8.0858l-2.2928-2.293L3.293 7.2071 7 10.9142z\" clip-rule=\"evenodd\"/></svg>\n","<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- Generator: Adobe Illustrator 23.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->\n<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 16 18\" fill='currentcolor' xml:space=\"preserve\">\n<style type=\"text/css\">\n\t.st0{fill-rule:evenodd;clip-rule:evenodd;}\n</style>\n<path class=\"st0\" d=\"M6.1,4.4c-0.4-0.9-1-1.7-1.4-2.1C4.4,2.1,4,2,3.7,2C3.5,2,3.3,2.1,3.2,2.2C3,2.4,3,2.6,3,2.9\n\tc0,0.3,0.2,0.6,0.5,0.9C4,4.1,4.9,4.6,5.8,4.9C6,4.9,6.2,5,6.3,5C6.3,4.8,6.2,4.6,6.1,4.4z M6.9,5C6.9,5,6.9,5,6.9,5\n\tC6.9,5,6.9,5,6.9,5z M6,0.9c0.7,0.6,1.5,1.7,2,2.8c0.5-1.1,1.3-2.2,2-2.8c1.4-1.2,3.4-1.1,4.4,0.1c1,1.1,0.8,2.9-0.3,4.1H16v2v2v2\n\th-1v5v2h-2H3H1v-2v-5H0V9V7V5h1.9C0.8,3.8,0.7,2.1,1.6,0.9C2.7-0.3,4.7-0.3,6,0.9z M9.9,4.4c0.4-0.9,1-1.7,1.4-2.1\n\tC11.6,2.1,12,2,12.3,2c0.3,0,0.5,0.1,0.6,0.2C13,2.4,13,2.6,13,2.9c0,0.3-0.2,0.6-0.5,0.9c-0.4,0.4-1.3,0.8-2.3,1.1\n\tC10,4.9,9.8,5,9.7,5C9.7,4.8,9.8,4.6,9.9,4.4z M9.1,5C9.1,5,9.1,5,9.1,5C9.1,5,9.1,5,9.1,5z M14,7H2v2h1h10h1V7z M3,11h10v5H3V11z\"\n\t/>\n</svg>\n","<svg viewBox=\"0 0 20 20\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\"><path clip-rule=\"evenodd\" d=\"M3 10a4 4 0 1 1 8 0 4 4 0 0 1-8 0Zm4-6a6 6 0 1 0 0 12A6 6 0 0 0 7 4Zm5.333 11.963A8.034 8.034 0 0 0 14 13.873a4.002 4.002 0 0 0 0-7.747 8.034 8.034 0 0 0-1.668-2.09 6 6 0 1 1 0 11.927Z\"/></svg>\n","import * as IconPack from '@foxford/icon-pack'\n\nimport Book from './images/book.module.svg'\nimport BlackBoard from './images/blackBoard.module.svg'\nimport Burger from './images/burger.module.svg'\nimport Eye from './images/eye.module.svg'\nimport Email from './images/email.module.svg'\nimport Sort from './images/sort.module.svg'\nimport Unsort from './images/unsort.module.svg'\nimport Person from './images/person.module.svg'\nimport Diamond from './images/diamond.module.svg'\nimport DiamondFIlled from './images/diamondFilled.module.svg'\nimport DiamondSolid from './images/diamondSolid.module.svg'\nimport InfoInverse from './images/infoInverse.module.svg'\nimport List from './images/list.module.svg'\nimport Login from './images/login.module.svg'\nimport Logout from './images/logout.module.svg'\nimport Fire from './images/fire.module.svg'\nimport Camps from './images/camps.module.svg'\nimport Cart from './images/cart.module.svg'\nimport Clock from './images/clock.module.svg'\nimport ClockFilled from './images/clockFilled.module.svg'\nimport Courses from './images/courses.module.svg'\nimport Discount from './images/discount.module.svg'\nimport Externat from './images/externat.module.svg'\nimport Headphones from './images/headphones.module.svg'\nimport PriceTag from './images/priceTag.module.svg'\nimport Prof from './images/prof.module.svg'\nimport Phone from './images/phone.module.svg'\nimport Star from './images/star.module.svg'\nimport Settings from './images/settings.module.svg'\nimport Student from './images/student.module.svg'\nimport Target from './images/target.module.svg'\nimport Textbook from './images/textbook.module.svg'\nimport Trophy from './images/trophy.module.svg'\nimport Message from './images/message.module.svg'\nimport Wallet from './images/wallet.module.svg'\nimport Edit from './images/edit.module.svg'\nimport Copy from './images/copy.module.svg'\nimport Page from './images/page.module.svg'\nimport Print from './images/print.module.svg'\nimport Objective from './images/objective.module.svg'\nimport Present from './images/present.module.svg'\nimport Coins from './images/coins.module.svg'\n\nimport type { IconPackIconName, IconNameDefault } from './types'\n\nexport const iconPackIcons = Object.keys(IconPack).reduce((icons, name) => {\n const iconName = name[0].toLowerCase() + name.slice(1)\n icons[iconName] = IconPack[name]\n\n return icons\n}, {} as Record<IconPackIconName, React.FC>)\n\nexport const defaultIcons: Record<IconNameDefault, React.FC> = {\n book: Book,\n blackBoard: BlackBoard,\n burger: Burger,\n eye: Eye,\n email: Email,\n sort: Sort,\n unsort: Unsort,\n person: Person,\n diamond: Diamond,\n diamondFilled: DiamondFIlled,\n diamondSolid: DiamondSolid,\n infoInverse: InfoInverse,\n list: List,\n login: Login,\n logout: Logout,\n fire: Fire,\n camps: Camps,\n cart: Cart,\n clock: Clock,\n clockFilled: ClockFilled,\n courses: Courses,\n discount: Discount,\n externat: Externat,\n headphones: Headphones,\n page: Page,\n priceTag: PriceTag,\n phone: Phone,\n prof: Prof,\n star: Star,\n settings: Settings,\n student: Student,\n target: Target,\n textbook: Textbook,\n trophy: Trophy,\n message: Message,\n wallet: Wallet,\n edit: Edit,\n copy: Copy,\n print: Print,\n objective: Objective,\n present: Present,\n coins: Coins,\n calendar: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='21' height='20' viewBox='0 0 21 20' fill='currentcolor'>\n <path d='M.8 19.8h19.4c.4 0 .7-.3.7-.7V2.4a.7.7 0 0 0-.8-.8h-3.7V1A.7.7 0 1 0 15 1v.5H6V1a.7.7 0 1 0-1.4 0v.5H.8a.7.7 0 0 0-.7.8V19c0 .5.4.8.8.8zM1.5 3h3v.5a.7.7 0 1 0 1.5 0V3h9v.5a.7.7 0 1 0 1.5 0V3h3v2h-18V3zm0 3.5h18v12h-18v-12z' />\n <path d='M15.8 10H5.2a.7.7 0 0 0-.7.7c0 .4.3.8.7.8h10.6c.4 0 .7-.4.7-.8a.7.7 0 0 0-.7-.8zm-5.3 3.6H5.2a.7.7 0 0 0-.7.7c0 .5.3.8.7.8h5.3c.4 0 .7-.2.7-.7a.7.7 0 0 0-.7-.7z' />\n </svg>\n ),\n calendar_simple: () => (\n <svg width='16' height='16' viewBox='0 0 16 16' fill='currentcolor' xmlns='http://www.w3.org/2000/svg'>\n <path d='M13 2V0H11V2H5V0H3V2H0V4V5V16H16V5V4V2H13ZM14 14H2V6H14V14Z' />\n </svg>\n ),\n chevronDown: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='21' height='13' viewBox='0 0 21 13' fill='currentcolor'>\n <path d='M10.109 10.604l-7.74-8.297a1.42 1.42 0 0 1 0-1.911 1.201 1.201 0 0 1 1.783 0l6.848 7.342 6.848-7.342a1.202 1.202 0 0 1 1.783 0 1.421 1.421 0 0 1 0 1.911l-7.74 8.297a1.214 1.214 0 0 1-.89.396c-.323 0-.646-.132-.892-.396z' />\n </svg>\n ),\n chevronUp: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='21' height='13' viewBox='0 0 21 13' fill='currentcolor'>\n <path d='M10.109 1.396l-7.74 8.297a1.42 1.42 0 0 0 0 1.911c.493.528 1.29.528 1.783 0l6.848-7.342 6.848 7.342c.492.528 1.29.528 1.783 0a1.421 1.421 0 0 0 0-1.911l-7.74-8.297a1.214 1.214 0 0 0-.89-.396c-.323 0-.646.132-.892.396z' />\n </svg>\n ),\n chevronRight: () => (\n <svg width='8' height='14' viewBox='0 0 8 14' fill='currentcolor' xmlns='http://www.w3.org/2000/svg'>\n <path d='M0 1.87054L1.39309 0.5L8 7L1.39309 13.5L0 12.1295L5.21383 7L0 1.87054Z' />\n </svg>\n ),\n chevronLeft: () => (\n <svg width='8' height='14' viewBox='0 0 8 14' fill='currentcolor' xmlns='http://www.w3.org/2000/svg'>\n <path d='M8 12.1295L6.60691 13.5L0 7L6.60691 0.5L8 1.87054L2.78617 7L8 12.1295Z' />\n </svg>\n ),\n cross: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18' fill='currentcolor'>\n <path d='M17.333.668a1.845 1.845 0 0 0-2.61 0l-5.723 5.722-5.723-5.722a1.845 1.845 0 1 0-2.61 2.61l5.723 5.723-5.723 5.724a1.845 1.845 0 1 0 2.61 2.61l5.723-5.723 5.723 5.723c.36.36.832.54 1.305.54a1.845 1.845 0 0 0 1.305-3.151l-5.723-5.721 5.723-5.724a1.845 1.845 0 0 0 0-2.61z' />\n </svg>\n ),\n dialog: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='25' height='25' viewBox='0 0 25 25' fill='currentcolor'>\n <path d='M3.66 3.664a12.422 12.422 0 0 1 8.84-3.664c3.342 0 6.48 1.303 8.841 3.664 4.556 4.554 4.886 11.83.828 16.761.56 1.146 1.22 1.91 1.969 2.277.455.225.712.717.639 1.22a1.16 1.16 0 0 1-.974.979 5.953 5.953 0 0 1-.886.068c-1.534 0-3.147-.53-4.493-1.456a12.52 12.52 0 0 1-5.923 1.487 12.417 12.417 0 0 1-8.84-3.659 12.414 12.414 0 0 1-3.661-8.836c0-3.334 1.299-6.48 3.66-8.84zm1.001 16.672a11.02 11.02 0 0 0 7.84 3.245c1.98 0 3.922-.528 5.614-1.523.11-.063.236-.1.356-.1.152 0 .31.053.435.147 1.602 1.24 3.215 1.424 3.922 1.44-.843-.628-1.55-1.602-2.142-2.958a.711.711 0 0 1 .12-.753c3.876-4.377 3.672-11.045-.465-15.18a11.02 11.02 0 0 0-7.84-3.246 11.02 11.02 0 0 0-7.84 3.245c-4.326 4.33-4.326 11.365 0 15.683zM7.581 8.125h10.463c.392 0 .706.278.706.625s-.314.625-.706.625h-10.464c-.392 0-.706-.278-.706-.625s.32-.625.706-.625zm0 3.875h10.463c.392 0 .706.278.706.625s-.314.625-.706.625h-10.464c-.392 0-.706-.278-.706-.625s.32-.625.706-.625zm0 4h10.463c.392 0 .706.278.706.625s-.314.625-.706.625h-10.464c-.392 0-.706-.278-.706-.625s.32-.625.706-.625z' />\n </svg>\n ),\n dropDownArrow: () => (\n <svg width='11' height='7' viewBox='0 0 11 7' fill='currentcolor'>\n <path d='M4.288 5.703l.117.139c.393.393.973.441 1.302.112l.009-.009.123-.105.104-.122 4.015-4.015c.38-.38.384-1.017-.007-1.408-.393-.393-1.025-.389-1.417.002l-3.412 3.412-3.419-3.419c-.388-.388-1.016-.388-1.409.005-.391.391-.393 1.021-.005 1.409l3.999 3.999z' />\n </svg>\n ),\n externalLink: () => (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='currentcolor'>\n <path className='st0' d='M0 0h16v16h-16z' fillOpacity='0' />\n <path className='st1' d='M9 0v2h3.6l-7.3 7.3 1.4 1.4 7.3-7.3v3.6h2v-7zM14 14h-12v-12h4v-2h-6v16h16v-6h-2z' />\n </svg>\n ),\n file: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='17' height='20' viewBox='0 0 17 20' fill='currentcolor'>\n <path d='M16.734 5.931c-.176-.416-.388-.745-.636-.988l-4.138-4.059c-.247-.242-.583-.45-1.007-.624-.425-.173-.814-.26-1.167-.26h-8.488a1.24 1.24 0 0 0-.901.364 1.192 1.192 0 0 0-.372.885v17.481c0 .347.124.642.372.885.247.242.548.364.901.364h14.429c.353 0 .654-.122.901-.364.248-.243.371-.538.371-.885v-11.654c0-.347-.088-.729-.265-1.145zm-6.524-4.161c.256.087.437.182.544.286l4.15 4.071c.106.104.204.282.292.534h-4.986v-4.892zm5.092 16.545h-13.58v-16.651h6.79v5.412c0 .347.124.642.372.884.247.243.548.365.901.365h5.517v9.989z' />\n </svg>\n ),\n fileBordered: () => (\n <svg width='16' height='16' viewBox='0 0 16 16' fill='currentcolor' xmlns='http://www.w3.org/2000/svg'>\n <path d='M8.3 0H6H0V16H13H16V0H8.3ZM8 2.5L10.5 5H8V2.5ZM2 14V2H6V7H11V14H2ZM14 14H13V7V4.7L10.3 2H14V14Z' />\n </svg>\n ),\n lessons: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='22' height='16' viewBox='0 0 22 16' fill='currentcolor'>\n <path d='M21.8 8.4a1.8 1.8 0 0 0-.8-.8 2.4 2.4 0 0 0-1-.3h-2.3V5.5c0-.7-.3-1.3-.8-1.8a2.5 2.5 0 0 0-2-.8H9v-.4c0-.7-.2-1.3-.7-1.8A2.5 2.5 0 0 0 6.4 0H2.6C2 0 1.3.3.8.8S0 1.8 0 2.6v10.8c0 .7.3 1.3.8 1.8a2.5 2.5 0 0 0 1.8.8H15c.6 0 1 0 1.7-.4.6-.3 1-.6 1.3-1l3.4-4c.4-.6.6-1 .6-1.5a1.8 1.8 0 0 0-.2-.6zM1.5 2.6c0-.3 0-.6.3-.8.2-.2.5-.3.8-.3h3.7c.3 0 .5 0 .7.3.3.2.4.5.4.8v.7c0 .3 0 .5.3.8.2.3.5.4.8.4H15c.4 0 .7 0 1 .3l.2.8v1.8H7.4c-.6 0-1 0-1.6.4s-1 .6-1.4 1l-3 3.5V2.6zm18.8 7l-3.4 4-1 .7-1 .2H2.7c-.4 0-.6 0-.6-.4l.2-.3 3.4-4c.2-.4.4-.6.8-.7.3-.2.7-.3 1-.3H20c.3 0 .5.2.5.4 0 .3 0 .4-.2.6z' />\n </svg>\n ),\n pencil: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='19' height='19' viewBox='0 0 19 19' fill='currentcolor'>\n <path d='M17.863 5.258l-4.113-4.122.283-.283a2.9 2.9 0 0 1 4.113.005 2.909 2.909 0 0 1 0 4.117l-.283.283zm-5.388-2.847l4.118 4.117-11.553 11.551-5.04.921.92-5.038 11.556-11.551z' />\n </svg>\n ),\n phoneNoFill: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32' fill='currentcolor'>\n <path d='M25.28 19.815c-.655-.682-1.445-1.047-2.282-1.047-.83 0-1.627.358-2.309 1.04l-2.133 2.127-.52-.27a8.579 8.579 0 0 1-.669-.358c-1.998-1.27-3.814-2.923-5.556-5.064-.844-1.066-1.41-1.964-1.822-2.876.553-.506 1.066-1.032 1.566-1.539l.567-.574c1.418-1.417 1.418-3.254 0-4.671l-1.843-1.843c-.21-.21-.425-.426-.628-.642-.405-.418-.83-.85-1.27-1.255-.654-.649-1.437-.993-2.26-.993-.824 0-1.621.344-2.296.993l-.014.013-2.295 2.316a4.94 4.94 0 0 0-1.465 3.138c-.162 1.971.419 3.808.864 5.01 1.094 2.95 2.728 5.684 5.165 8.614 2.957 3.53 6.514 6.319 10.579 8.283 1.552.736 3.625 1.607 5.94 1.755l.426.014c1.56 0 2.87-.56 3.895-1.674l.027-.034c.351-.425.756-.81 1.182-1.222.29-.277.587-.567.877-.87.669-.696 1.02-1.506 1.02-2.337 0-.837-.358-1.64-1.04-2.315l-3.706-3.72zm1.595 6.857c-.227.245-.46.465-.71.71-.377.36-.76.738-1.121 1.163-.588.628-1.28.924-2.187.924l-.267-.006c-1.727-.11-3.378-.572-4.581-1.148-1.565-.757-6.166-3.373-9.24-6.667-3.39-3.633-5.311-8.135-5.772-9.379a8.219 8.219 0 0 1-.51-3.704 2.67 2.67 0 0 1 .802-1.727l1.983-1.983c.285-.268.587-.413.884-.413.366 0 .663.22.849.407.372.349.71.692 1.064 1.058l.552.564 1.589 1.589c.616.616.616 1.186 0 1.802l-.5.5c-.489.5-1.206 1.178-1.712 1.631-.53.53-.436 1.018-.331 1.35.242.596 1.767 3.576 3.98 5.982 1.856 2.017 4.38 3.504 5.231 4.042.239.152.483.274.715.39.21.105.407.203.576.308l.07.04c.198.1.384.146.576.146.482 0 .785-.302.883-.401l2.241-2.2c.198-.198.512-.437.878-.437.361 0 .658.227.838.425l3.215 3.215c.6.593.6 1.204.006 1.82zm-9.589-19.063a8.56 8.56 0 0 1 4.659 2.417 8.606 8.606 0 0 1 2.417 4.658c.074.446.459.756.897.756l.156-.013c.5-.081.83-.554.75-1.054a10.413 10.413 0 0 0-2.924-5.637 10.413 10.413 0 0 0-5.637-2.923.916.916 0 0 0-1.053.743.902.902 0 0 0 .735 1.053zm14.664 6.501a17.13 17.13 0 0 0-4.814-9.283 17.13 17.13 0 0 0-9.282-4.813.908.908 0 0 0-1.047.743c-.08.5.25.965.75 1.053 3.146.533 6.015 2.025 8.297 4.3a15.294 15.294 0 0 1 4.3 8.297c.074.446.46.756.898.756a.894.894 0 0 0 .898-1.053z' />\n </svg>\n ),\n radioChecked: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='currentcolor'>\n <path\n fillRule='evenodd'\n d='M10 5c-2.8 0-5 2.2-5 5s2.2 5 5 5 5-2.2 5-5-2.2-5-5-5zm0-5c-5.5 0-10 4.5-10 10s4.5 10 10 10 10-4.5 10-10-4.5-10-10-10zm0 18c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8z'\n />\n </svg>\n ),\n radioNotChecked: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='currentcolor'>\n <path\n fillRule='evenodd'\n d='M10 0c-5.5 0-10 4.5-10 10s4.5 10 10 10 10-4.5 10-10-4.5-10-10-10zm0 18c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8z'\n />\n </svg>\n ),\n search: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='29' height='30' viewBox='0 0 29 30' fill='currentcolor'>\n <path d='M28.6 27.3l-7-7.4a12.2 12.2 0 0 0 2.7-8c0-6.6-5.3-12-12-12C6 0 .6 5.4.6 12c0 6.8 5.4 12.2 12 12.2 2.4 0 4.7-.7 6.7-2.2l7 7.5a1.5 1.5 0 0 0 2.3 0 1.6 1.6 0 0 0 0-2.2zm-16.2-24c5 0 8.8 4 8.8 8.8 0 5-4 9-8.8 9s-8.8-4-8.8-9c0-4.8 4-8.8 8.8-8.8z' />\n </svg>\n ),\n tasks: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='18' height='20' viewBox='0 0 18 20' fill='currentcolor'>\n <path d='M17.2 2H13V.8c0-.4-.3-.7-.7-.7H5.8c-.5 0-.8.3-.8.7v4c0 .3.3.6.8.6h4.8c.4 0 .7-.3.7-.7 0-.4-.3-.7-.7-.7h-4V1.4h5V3c0 .3.2.6.7.6h4v15H1.7v-15h1.2c.4 0 .8-.3.8-.7 0-.5-.4-1-.8-1h-2C.4 2 0 2.6 0 3v16.3c0 .4.4.7.8.7h16.4c.4 0 .8-.3.8-.8V3c0-.5-.4-1-.8-1z' />\n <path d='M12.6 9a.8.8 0 0 0-1 0l-3.7 3.3L6.4 11a.8.8 0 0 0-1 0 .7.7 0 0 0 0 1l1.8 1.8c.2.2.4.2.6.2 0 0 .3 0 .4-.2l4.2-4a.7.7 0 0 0 0-1z' />\n </svg>\n ),\n tinyCross: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 26 26' fill='currentcolor'>\n <path\n fillRule='evenodd'\n d='M10.7 12.8L1 22.4c-.5.6-.5 1.6 0 2.2.8.6 1.7.6 2.3 0L13 15l9.5 9.6c.6.6 1.6.6 2.2 0 .6-.6.6-1.6 0-2.2L15 12.8l9.6-9.5c.6-.6.6-1.6 0-2.2-.6-.5-1.6-.5-2.2 0L13 10.7 3.3 1C2.8.6 1.8.6 1.2 1c-.6.7-.6 1.7 0 2.3l9.5 9.5z'\n />\n </svg>\n ),\n sharpCross: () => (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='currentcolor'>\n <path d='M8 6.53l6.53-6.53 1.47 1.47-6.53 6.53 6.53 6.53-1.47 1.47-6.53-6.53-6.53 6.53-1.47-1.47 6.53-6.53-6.53-6.53 1.47-1.47z' />\n </svg>\n ),\n plus: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='18' height='19' viewBox='0 0 18 19' fill='currentcolor'>\n <g fillRule='evenodd'>\n <rect width='18' height='3' y='8' rx='1.5' />\n <rect width='18' height='3' y='8' rx='1.5' transform='rotate(90 9 9.5)' />\n </g>\n </svg>\n ),\n plusThin: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='currentcolor'>\n <path fillRule='nonzero' d='M7.875 6.125H14v1.75H7.875V14h-1.75V7.875H0v-1.75h6.125V0h1.75v6.125z' />\n </svg>\n ),\n play: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30' fill='currentcolor'>\n <path d='M28.197 7.501c-4.173-7.173-13.414-9.63-20.64-5.489-7.227 4.141-9.703 13.314-5.53 20.486 4.172 7.174 13.413 9.632 20.639 5.49 7.227-4.142 9.704-13.314 5.53-20.487zm-7.042 17.889c-5.78 3.313-13.173 1.347-16.511-4.392-3.338-5.738-1.357-13.076 4.424-16.388 5.78-3.314 13.174-1.348 16.512 4.39 3.337 5.74 1.356 13.077-4.425 16.39zm-.604-11l-7.911-4.58c-.72-.418-1.302-.084-1.298.744l.04 9.091c.004.828.593 1.165 1.316.75l7.851-4.499c.722-.414.724-1.088.003-1.506z' />\n </svg>\n ),\n reload: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='19' height='20' viewBox='0 0 19 20' fill='currentcolor'>\n <g fillRule='evenodd'>\n <path d='M1.638 8.346c.653 0 1.243-.386 1.495-.978a6.896 6.896 0 0 1 6.351-4.164c1.575 0 3.019.53 4.176 1.412l-.907.138a.702.702 0 0 0-.593.594.694.694 0 0 0 .411.729l4.99 2.208a.72.72 0 0 0 .673-.05.695.695 0 0 0 .325-.582l.026-5.408a.697.697 0 0 0-.501-.669.714.714 0 0 0-.796.28L16.6 2.873A10.202 10.202 0 0 0 9.484 0C5.284 0 1.672 2.523.132 6.109a1.586 1.586 0 0 0 .143 1.516c.303.45.815.72 1.363.72zM18.693 12.344a1.643 1.643 0 0 0-1.364-.721c-.652 0-1.242.385-1.494.977a6.896 6.896 0 0 1-6.351 4.165 6.872 6.872 0 0 1-4.176-1.412l.907-.138a.702.702 0 0 0 .593-.595.694.694 0 0 0-.411-.728l-4.99-2.208a.72.72 0 0 0-.673.05.695.695 0 0 0-.325.582l-.026 5.407a.697.697 0 0 0 .501.67c.3.09.623-.025.796-.28l.688-1.017a10.201 10.201 0 0 0 7.116 2.872c4.2 0 7.812-2.523 9.352-6.109a1.586 1.586 0 0 0-.143-1.515z' />\n </g>\n </svg>\n ),\n checkCircle: () => (\n <svg height='14' viewBox='0 0 14 14' width='14' xmlns='http://www.w3.org/2000/svg' fill='currentcolor'>\n <path d='m4.13 5.67-.98.98 3.15 3.15 7-7-.98-.98-6.02 6.02zm8.47 1.33c0 3.08-2.52 5.6-5.6 5.6s-5.6-2.52-5.6-5.6 2.52-5.6 5.6-5.6c.56 0 1.05.07 1.54.21l1.12-1.12c-.84-.28-1.75-.49-2.66-.49-3.85 0-7 3.15-7 7s3.15 7 7 7 7-3.15 7-7z' />\n </svg>\n ),\n info: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='currentcolor'>\n <path\n fillRule='evenodd'\n d='M10.986 6.995v-2.019h-1.972v2.02h1.972zm0 8.029v-6.01h-1.972v6.01h1.972zm-.986-15.024c1.827 0 3.518.457 5.072 1.37a9.478 9.478 0 0 1 3.558 3.558 9.835 9.835 0 0 1 1.37 5.072 9.835 9.835 0 0 1-1.37 5.072 9.478 9.478 0 0 1-3.558 3.558 9.835 9.835 0 0 1-5.072 1.37 9.835 9.835 0 0 1-5.072-1.37 9.657 9.657 0 0 1-3.558-3.582 9.79 9.79 0 0 1-1.37-5.048 9.79 9.79 0 0 1 1.37-5.048 9.842 9.842 0 0 1 3.582-3.582 9.79 9.79 0 0 1 5.048-1.37z'\n />\n </svg>\n ),\n check: () => (\n <svg width='20px' height='20px' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='currentcolor'>\n <g stroke='none' strokeWidth='1' fillRule='evenodd'>\n <g transform='translate(-675.000000, -7517.000000)'>\n <g transform='translate(675.000000, 7517.000000)'>\n <path d='M10,0 C15.5228475,-1.01453063e-15 20,4.4771525 20,10 C20,15.5228475 15.5228475,20 10,20 C4.4771525,20 6.76353751e-16,15.5228475 0,10 C-6.76353751e-16,4.4771525 4.4771525,1.01453063e-15 10,0 Z M14.2928932,6.29289322 L9,11.5857864 L6.70710678,9.29289322 L5.29289322,10.7071068 L9,14.4142136 L15.7071068,7.70710678 L14.2928932,6.29289322 Z' />\n </g>\n </g>\n </g>\n </svg>\n ),\n home: () => (\n <svg width='16' height='16' viewBox='0 0 16 16' fill='currentcolor' xmlns='http://www.w3.org/2000/svg'>\n <g>\n <rect width='16' height='16' fill='black' fillOpacity='0' />\n <path\n id='house_2'\n fillRule='evenodd'\n clipRule='evenodd'\n d='M7 16V11H9V16H15V5L8 0L1 5V16H7ZM5 14H3V6.02917L8 2.45776L13 6.02917V14H11V9H5V14Z'\n />\n </g>\n </svg>\n ),\n questionFilled: () => (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentcolor'>\n <path className='st0' fillOpacity='0' d='M0 0h20v20h-20z' />\n <path\n className='st1'\n d='M17.1 2.9c-1.9-1.8-4.4-2.9-7.1-2.9-5.5 0-10 4.5-10 10s4.5 10 10 10 10-4.5 10-10c0-2.7-1.1-5.2-2.9-7.1zm-6.1 12.1h-2v-2h2v2zm.5-4.5c-.3.2-.6.6-.5.9v.1h-2v-.1c0-1.1.6-2.2 1.7-2.7.5-.2.8-.8.8-1.3 0-.8-.7-1.4-1.5-1.4s-1.5.6-1.5 1.4h-2c0-1.9 1.6-3.4 3.5-3.4s3.5 1.5 3.5 3.4c0 1.3-.8 2.5-2 3.1z'\n />\n </svg>\n ),\n document: () => (\n <svg width='17' height='17' viewBox='0 0 17 17' fill='currentcolor' xmlns='http://www.w3.org/2000/svg'>\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M16.0004 4.50038L12.4648 0.964844L5.36865 8.06104L5.39378 11.5714L8.90418 11.5966L16.0004 4.50038ZM7.37459 8.88353L12.4648 3.79327L13.172 4.50038L8.08169 9.59063L7.37961 9.58561L7.37459 8.88353Z'\n />\n <path d='M13 15V10H15V17H0V2H7V4H2V15H13Z' />\n </svg>\n ),\n cancel: () => (\n <svg width='16' height='16' viewBox='0 0 16 16' fill='currentcolor' xmlns='http://www.w3.org/2000/svg'>\n <path d='M8 0C3.6 0 0 3.6 0 8C0 12.4 3.6 16 8 16C12.4 16 16 12.4 16 8C16 3.6 12.4 0 8 0ZM8 14C4.7 14 2 11.3 2 8C2 4.7 4.7 2 8 2C11.3 2 14 4.7 14 8C14 11.3 11.3 14 8 14Z' />\n <path d='M9.7998 4.79999L7.9998 6.59999L6.1998 4.79999L4.7998 6.19999L6.5998 7.99999L4.7998 9.79999L6.1998 11.2L7.9998 9.39999L9.7998 11.2L11.1998 9.79999L9.3998 7.99999L11.1998 6.19999L9.7998 4.79999Z' />\n </svg>\n ),\n playPause: () => (\n <svg width='16' height='12' viewBox='0 0 16 12' fill='currentcolor' xmlns='http://www.w3.org/2000/svg'>\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M7 6L5.46341 4.68292L2 1.71429L0 0V2.63416V9.36584V12L2 10.2857L5.46341 7.31708L7 6ZM3.92682 6L2 4.34845V7.65155L3.92682 6ZM14 0H16V12H14V0ZM12 0H10V12H12V0Z'\n />\n </svg>\n ),\n video: () => (\n <svg width='16' height='12' viewBox='0 0 16 12' fill='currentcolor' xmlns='http://www.w3.org/2000/svg'>\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M2 2H9V10H2V2ZM0 0H2H9H11V2V6V10V12H9H2H0V10V2V0ZM11 6L12.6008 4.71938L14 3.6L16 2V4.56125V7.43875V10L14 8.4L12.6008 7.28062L11 6Z'\n />\n </svg>\n ),\n}\n\nexport const ICONS = { ...defaultIcons, ...iconPackIcons }\n\nexport const ICONS_DEFAULT = { ...iconPackIcons, ...defaultIcons }\n","import type { CSSProperties } from 'react'\nimport { css } from 'styled-components'\nimport type { ThemedStyledProps, DefaultTheme, CSSObject, FlattenInterpolation, ThemeProps } from 'styled-components'\nimport { screenMinM, screenMaxM, screenMaxS, screenMinL, screenMaxL, screenMaxXs, screenMaxXxs } from 'mixins/screen'\nimport { getMediaQueryByResponsiveProp, desktopFirst } from 'mixins/shared'\nimport type { MediaQuery } from 'mixins/screen'\nimport type { Breakpoint } from 'shared/types'\n\ntype ResponsivePropKey = 'size' | keyof CSSProperties\n\ntype ResponsiveProps<K extends ResponsivePropKey, V> = {\n [key in K]?: V | [DESKTOP: V, TABLET: V, MOBILE: V] | [XL: V, L: V, M: V, S: V, XS: V, XXS: V]\n} & {\n [key in `${K}${Breakpoint}`]?: V\n}\n\ntype MediaFunction = ReturnType<ReturnType<MediaQuery>>\n\n/**\n *\n * Factory to create mixins to enable responsive interface for any set of props\n */\nfunction createResponsivePropsMixin<K extends ResponsivePropKey, V, P extends ResponsiveProps<K, V>>(\n propsKeys: K[],\n buildCSSObject: (propKey: K, propValue: V, props: ThemedStyledProps<P, DefaultTheme>) => CSSObject\n): (props: ThemedStyledProps<P, DefaultTheme>) => FlattenInterpolation<ThemeProps<DefaultTheme>> {\n const propsRegExp = new RegExp(`^(${propsKeys.join('|')})$`)\n const breakpointsPropsRegExp = new RegExp(`^(${propsKeys.join('|')})(XXS|XS|S|M|L|XL)$`)\n const breakpointsRegExp = /(XXS|XS|S|M|L|XL)$/\n\n const deviceQueries = [screenMinM, screenMaxM, screenMaxS]\n const breakpointsQueries = [screenMinL, screenMaxL, screenMaxM, screenMaxS, screenMaxXs, screenMaxXxs]\n\n return (props) => {\n const propsKeys = Object.keys(props).reduce(\n (groups, propKey) => {\n if (propsRegExp.test(propKey)) groups[0].push(propKey)\n else if (breakpointsPropsRegExp.test(propKey)) groups[1].push(propKey)\n\n return groups\n },\n [[], []] as [string[], string[]]\n )\n\n const interpolations = propsKeys[0].reduce((acc, propKey) => {\n const propValue: V | V[] = props[propKey]\n\n if (!Array.isArray(propValue)) {\n const cssObject = buildCSSObject(propKey as K, propValue, props)\n\n if (Object.keys(cssObject).length > 0) {\n acc.push(cssObject)\n }\n } else if (propValue.length > 0) {\n const mediaFunctions: MediaFunction[] = []\n const queries = propValue.length > deviceQueries.length ? breakpointsQueries : deviceQueries\n\n for (let i = 0; i < propValue.length; i++) {\n if (!queries[i]) break\n\n const cssObject = buildCSSObject(propKey as K, propValue[i], props)\n\n if (Object.keys(cssObject).length > 0) {\n mediaFunctions.push(queries[i]()`${cssObject}`)\n }\n }\n\n acc.push(...mediaFunctions)\n }\n\n return acc\n }, [] as (CSSObject | MediaFunction)[])\n\n const breakpointsInterpolations = propsKeys[1].sort(desktopFirst).reduce((acc, propKey) => {\n const cssObject = buildCSSObject(propKey.replace(breakpointsRegExp, '') as K, props[propKey], props)\n\n if (Object.keys(cssObject).length > 0) {\n acc.push(getMediaQueryByResponsiveProp(propKey)()`${cssObject}`)\n }\n\n return acc\n }, [] as MediaFunction[])\n\n return css`\n ${interpolations}\n ${breakpointsInterpolations}\n `\n }\n}\n\nexport type { ResponsiveProps }\n\nexport { createResponsivePropsMixin }\n","export const commonPropKeyRegExp =\n /^(preset|sizeUnits|sizes|size|dynamicSizeDeclaration|marginUnits|color|backgroundColor|borderColor|fontColor|palette)$/\n\nexport const colorSchemaPropKeyRegExp = /^(primary|secondary|tertiary|quaternary)$/\n\nexport const responsiveSizePropKeyRegExp = /^size(XXS|XS|S|M|L|XL)$/\n\nexport const marginPropKeyRegExp = /^(margin|marginTop|marginRight|marginBottom|marginLeft)$/\n\nexport const responsiveMarginPropKeyRegExp = /^(margin|marginTop|marginRight|marginBottom|marginLeft)(XXS|XS|S|M|L|XL)$/\n\nexport const responsiveFluidPropKeyRegExp = /^(fluid)(XXS|XS|S|M|L|XL)$/\n\nexport const responsiveWidthPropKeyRegExp = /^(width)(XXS|XS|S|M|L|XL)$/\n\nexport const responsivePaddingPropKeyRegExp =\n /^(padding|paddingTop|paddingRight|paddingBottom|paddingLeft)(XXS|XS|S|M|L|XL)$/\n\nexport const responsiveFontSizePropKeyRegExp = /^(fontSize)(XXS|XS|S|M|L|XL)$/\n\nexport const responsiveHeightPropKeyRegExp = /^(height)(XXS|XS|S|M|L|XL)$/\n","import {\n commonPropKeyRegExp,\n colorSchemaPropKeyRegExp,\n responsiveSizePropKeyRegExp,\n marginPropKeyRegExp,\n responsiveMarginPropKeyRegExp,\n} from 'shared/regexp'\nimport type { CSSGlobalValue } from 'shared/types'\n\nexport const createShouldForwardProp = (...predicates: ((propKey: string) => boolean)[]) => {\n const cache: Record<string, boolean> = Object.create(null)\n\n return (propKey: string) => {\n if (cache[propKey] === undefined) {\n cache[propKey] =\n predicates.every((func) => func(propKey)) &&\n [\n commonPropKeyRegExp,\n colorSchemaPropKeyRegExp,\n responsiveSizePropKeyRegExp,\n marginPropKeyRegExp,\n responsiveMarginPropKeyRegExp,\n ].every((regExp) => !regExp.test(propKey))\n }\n\n return cache[propKey]\n }\n}\n\nexport const isCSSGlobalValue = (value: CSSGlobalValue | string): value is CSSGlobalValue =>\n ['initial', 'inherit', 'unset', 'revert', 'revert-layer'].includes(value)\n","import type { CSSObject } from 'styled-components'\nimport { createResponsivePropsMixin } from 'mixins/create-responsive-props'\nimport { isCSSGlobalValue } from 'shared/utils/style'\nimport type { ResponsiveProps } from 'mixins/create-responsive-props'\nimport type { CSSUnit, Size, CSSGlobalValue, Sizes } from 'shared/types'\n\ntype SizeProperty = 'size'\n\ntype SizeValue = Size | CSSGlobalValue | number\n\ntype ResponsiveSizeProps = ResponsiveProps<SizeProperty, SizeValue> & {\n sizeUnits?: CSSUnit\n sizes?: Partial<Sizes>\n}\n\ntype ResponsiveSizeInterpolationProps<T extends ResponsiveSizeProps = ResponsiveSizeProps> = Omit<T, 'size' | 'sizes'> &\n Required<Pick<T, 'size'>> & {\n sizes: Sizes\n dynamicSizeDeclaration?: (size: Exclude<SizeValue, Size>, sizeUnits: CSSUnit) => CSSObject\n }\n\n/**\n *\n * Mixin enables responsive size interface\n */\nconst responsiveSize = createResponsivePropsMixin<SizeProperty, SizeValue | void, ResponsiveSizeInterpolationProps>(\n ['size'],\n (_, sizeValue, props) => {\n if (sizeValue === undefined || sizeValue === null) return {}\n\n if (typeof sizeValue === 'number' || isCSSGlobalValue(sizeValue)) {\n const cssObject =\n typeof props.dynamicSizeDeclaration === 'function'\n ? props.dynamicSizeDeclaration(sizeValue, props.sizeUnits ?? 'px')\n : { fontSize: typeof sizeValue === 'string' ? sizeValue : `${sizeValue}${props.sizeUnits ?? 'px'}` }\n\n return cssObject\n }\n\n return (props.sizes[sizeValue] ?? {}) as CSSObject\n }\n)\n\nexport type { ResponsiveSizeProps, ResponsiveSizeInterpolationProps }\n\nexport { responsiveSize }\n","import styled from 'styled-components'\nimport { getColor } from 'mixins/color'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport type { StyledIconProps } from './types'\n\nconst shouldForwardIconProp = createShouldForwardProp((propKey) => !['vAlign'].includes(propKey))\n\nexport const Root = styled.span.withConfig<StyledIconProps>({\n shouldForwardProp: shouldForwardIconProp,\n})`\n ${(props) => `\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n color: ${props.color ? getColor(props.color, props) : 'inherit'};\n vertical-align: ${props.vAlign ? props.vAlign : 'baseline'};\n & > svg {\n display: block;\n width: 100%;\n height: 100%;\n fill: currentcolor;\n }\n `}\n\n ${responsiveSize}\n`\n","import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { useClassname } from 'hooks/useClassname'\nimport { SIZES } from './constants'\nimport { ICONS, ICONS_DEFAULT } from './icons'\nimport * as Styled from './style'\nimport type { IconProps } from './types'\n\nconst COMPONENT_NAME = 'Icon'\n\n/**\n *\n * Component accepts all \\<span\\> attributes.\n *\n * Responsive \"size\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [IconProps](https://github.com/foxford/ui/blob/master/src/components/Icon/types.ts)\n */\nconst Icon: React.ForwardRefExoticComponent<IconProps> = withMergedProps<IconProps, HTMLSpanElement>(\n forwardRef((props, ref) => {\n const { size = 'inherit', name = 'unknown', icon, ...restProps } = props\n\n const className = useClassname(COMPONENT_NAME, restProps.className)\n\n const Icon: React.FC | undefined = (restProps.preset === 'brand' ? ICONS : ICONS_DEFAULT)[name]\n\n return (\n <Styled.Root {...restProps} size={size} className={className} ref={ref}>\n {Icon ? <Icon /> : icon}\n </Styled.Root>\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: SIZES,\n }\n)\n\nexport { Icon }\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n fontSize: 42,\n },\n xxl: {\n fontSize: 38,\n },\n xl: {\n fontSize: 34,\n },\n l: {\n fontSize: 30,\n },\n m: {\n fontSize: 26,\n },\n s: {\n fontSize: 22,\n },\n xs: {\n fontSize: 18,\n },\n xxs: {\n fontSize: 14,\n },\n xxxs: {\n fontSize: 10,\n },\n}\n","import { css } from 'styled-components'\n\ntype Display = 'block' | 'inline' | 'inline-block' | 'flex' | 'inline-flex' | 'table-cell' | 'inherit' | 'none'\n\nexport interface DisplayProperty {\n display?: Display\n}\n\nexport const display = (display: Display) => () =>\n css`\n display: ${display};\n `\n","import styled, { css } from 'styled-components'\nimport { display } from 'mixins/display'\nimport { ActionBtnProps } from './ActionBtn'\n\nconst active = css`\n background: ${(props) => props.theme.colors.onahau};\n color: ${(props) => props.theme.colors.accent};\n`\n\nconst notDisabled = css`\n &:hover {\n background: ${(props) => props.theme.colors.mercury};\n }\n &:active {\n ${active}\n }\n`\n\nconst disabled = css`\n cursor: default;\n opacity: 0.6;\n`\n\nexport const Root = styled.div<ActionBtnProps>`\n padding: 4px;\n background: transparent;\n color: ${(props) => props.theme.colors.silver};\n transition: background 0.4s ease-out, color 0.6s ease-out;\n line-height: 0;\n cursor: pointer;\n border-radius: 5px;\n & + & {\n margin-left: 16px;\n }\n ${(props) => (props.disabled ? disabled : notDisabled)}\n ${(props) => (props.active ? active : null)}\n ${(props) =>\n props.display\n ? display(props.display)\n : css`\n display: inline-block;\n `}\n`\n","import { DisplayProperty } from 'mixins/display'\nimport { useClassname } from 'hooks/useClassname'\nimport { BaseProps } from 'shared/interfaces'\nimport { Icon } from 'components/Icon'\nimport type { IconName } from 'components/Icon'\nimport * as Styled from './style'\n\nexport interface ActionBtnProps extends BaseProps, DisplayProperty {\n /** Icon name (for inner Icon component) */\n icon?: IconName\n disabled?: boolean\n active?: boolean\n onClick?(): void\n /**\n * Children react node\n */\n children?: React.ReactNode\n}\n\nActionBtn.displayName = 'ActionBtn'\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`Display`](#/Миксины)\n */\nexport function ActionBtn({ icon, disabled = false, onClick, children, className, active, style }: ActionBtnProps) {\n const _className = useClassname(ActionBtn.displayName, className)\n\n return (\n <Styled.Root className={_className} style={style} disabled={disabled} active={active} onClick={onClick}>\n {icon && <Icon size={16} name={icon} />}\n {children}\n </Styled.Root>\n )\n}\n","import { useMemo } from 'react'\n\n/**\n *\n * @deprecated it will be deleted in near future\n */\nexport function useConfigPriority<T extends object>(minor?: Partial<T>, major?: Partial<T>): Partial<T> {\n return useMemo(() => {\n const minorConfig = minor ?? {}\n const majorConfig = major ?? {}\n const uniqueKeys = [...new Set([...Object.keys(minorConfig), ...Object.keys(majorConfig)])]\n\n return uniqueKeys.reduce((prioritized, key) => {\n let finalVal\n\n if (valid(minorConfig[key])) finalVal = minorConfig[key]\n if (valid(majorConfig[key])) finalVal = majorConfig[key]\n\n return valid(finalVal) ? { ...prioritized, [key]: finalVal } : prioritized\n }, {} as Partial<T>)\n }, [minor, major])\n}\n\nfunction valid(value: unknown): boolean {\n return Boolean(value) || typeof value === 'boolean' || typeof value === 'number' || typeof value === 'string'\n}\n","import { useTheme } from 'styled-components'\nimport { useConfigPriority } from 'hooks/use-config-priority'\nimport { Text } from '../Text'\nimport type { TextHeadingProps, H } from './types'\n\nconst PARAMS: Record<H, Partial<TextHeadingProps>> = {\n h1: {\n size: 44,\n sizeM: 32,\n lineHeight: 's',\n weight: 'bold',\n },\n h2: {\n size: 32,\n sizeM: 28,\n lineHeight: 's',\n weight: 'bold',\n },\n h3: {\n size: 28,\n lineHeight: 's',\n weight: 'bold',\n },\n h4: {\n size: 24,\n lineHeight: 's',\n weight: 'bold',\n },\n}\n\nconst COMPONENT_NAME = 'Text.Heading'\n\n/**\n * @visibleName Text.Heading\n */\nconst TextHeading = (props: TextHeadingProps) => {\n const theme = useTheme()\n\n const {\n h = 'h1',\n fontFamily,\n ...configProps\n } = useConfigPriority<TextHeadingProps>(theme.components?.[COMPONENT_NAME], props)\n\n const predefinedParams = PARAMS[h]\n\n return <Text as={h} fontFamily={fontFamily} {...predefinedParams} {...configProps} />\n}\n\nTextHeading.displayName = COMPONENT_NAME\n\nexport { TextHeading, COMPONENT_NAME }\n","import styled from 'styled-components'\nimport { display } from 'mixins/display'\nimport { property, responsiveNamedProperty } from 'mixins/responsive-property'\nimport { SpacerProps } from './Spacer'\n\nexport const Root = styled.div.withConfig<SpacerProps>({\n shouldForwardProp: (prop) => ['children', 'className', 'style', 'onClick'].includes(prop) || prop.includes('data-'),\n})`\n ${(props) => (props.display ? display(props.display) : null)}\n\n /** BEGIN paddings */\n ${(props) => (props.padding ? property(props.padding, 'padding') : null)}\n ${(props) => (props.paddingTop ? property(props.paddingTop, 'padding-top') : null)}\n ${(props) => (props.paddingRight ? property(props.paddingRight, 'padding-right') : null)}\n ${(props) => (props.paddingBottom ? property(props.paddingBottom, 'padding-bottom') : null)}\n ${(props) => (props.paddingLeft ? property(props.paddingLeft, 'padding-left') : null)}\n /** END paddings */ \n\n /** BEGIN margins */\n ${(props) => (props.margin ? property(props.margin, 'margin') : null)}\n ${(props) => (props.marginTop ? property(props.marginTop, 'margin-top') : null)}\n ${(props) => (props.marginRight ? property(props.marginRight, 'margin-right') : null)}\n ${(props) => (props.marginBottom ? property(props.marginBottom, 'margin-bottom') : null)}\n ${(props) => (props.marginLeft ? property(props.marginLeft, 'margin-left') : null)}\n /** END margins */ \n\n /** BEGIN Responsive paddings */\n ${({ paddingXS, paddingS, paddingM, paddingL, paddingXL }) =>\n responsiveNamedProperty({ sizes: { paddingXS, paddingS, paddingM, paddingL, paddingXL }, cssProperty: 'padding' })}\n ${({ paddingTopXS, paddingTopS, paddingTopM, paddingTopL, paddingTopXL }) =>\n responsiveNamedProperty({\n sizes: { paddingTopXS, paddingTopS, paddingTopM, paddingTopL, paddingTopXL },\n cssProperty: 'padding-top',\n })}\n ${({ paddingRightXS, paddingRightS, paddingRightM, paddingRightL, paddingRightXL }) =>\n responsiveNamedProperty({\n sizes: { paddingRightXS, paddingRightS, paddingRightM, paddingRightL, paddingRightXL },\n cssProperty: 'padding-right',\n })}\n ${({ paddingBottomXS, paddingBottomS, paddingBottomM, paddingBottomL, paddingBottomXL }) =>\n responsiveNamedProperty({\n sizes: { paddingBottomXS, paddingBottomS, paddingBottomM, paddingBottomL, paddingBottomXL },\n cssProperty: 'padding-bottom',\n })}\n ${({ paddingLeftXS, paddingLeftS, paddingLeftM, paddingLeftL, paddingLeftXL }) =>\n responsiveNamedProperty({\n sizes: { paddingLeftXS, paddingLeftS, paddingLeftM, paddingLeftL, paddingLeftXL },\n cssProperty: 'padding-left',\n })}\n /** END Responsive paddings */ \n\n /** BEGIN Responsive margins */\n ${({ marginXS, marginS, marginM, marginL, marginXL }) =>\n responsiveNamedProperty({ sizes: { marginXS, marginS, marginM, marginL, marginXL }, cssProperty: 'margin' })}\n ${({ marginTopXS, marginTopS, marginTopM, marginTopL, marginTopXL }) =>\n responsiveNamedProperty({\n sizes: { marginTopXS, marginTopS, marginTopM, marginTopL, marginTopXL },\n cssProperty: 'margin-top',\n })}\n ${({ marginRightXS, marginRightS, marginRightM, marginRightL, marginRightXL }) =>\n responsiveNamedProperty({\n sizes: { marginRightXS, marginRightS, marginRightM, marginRightL, marginRightXL },\n cssProperty: 'margin-right',\n })}\n ${({ marginBottomXS, marginBottomS, marginBottomM, marginBottomL, marginBottomXL }) =>\n responsiveNamedProperty({\n sizes: { marginBottomXS, marginBottomS, marginBottomM, marginBottomL, marginBottomXL },\n cssProperty: 'margin-bottom',\n })}\n ${({ marginLeftXS, marginLeftS, marginLeftM, marginLeftL, marginLeftXL }) =>\n responsiveNamedProperty({\n sizes: { marginLeftXS, marginLeftS, marginLeftM, marginLeftL, marginLeftXL },\n cssProperty: 'margin-left',\n })}\n /** END Responsive margins */\n\n ${(props) => (props.top ? property(props.top, 'padding-top') : null)}\n ${(props) => (props.right ? property(props.right, 'padding-right') : null)}\n ${(props) => (props.bottom ? property(props.bottom, 'padding-bottom') : null)}\n ${(props) => (props.left ? property(props.left, 'padding-left') : null)}\n\n ${({ topXS, topS, topM, topL, topXL }) =>\n responsiveNamedProperty({ sizes: { topXS, topS, topM, topL, topXL }, cssProperty: 'padding-top' })}\n ${({ rightXS, rightS, rightM, rightL, rightXL }) =>\n responsiveNamedProperty({ sizes: { rightXS, rightS, rightM, rightL, rightXL }, cssProperty: 'padding-right' })}\n ${({ bottomXS, bottomS, bottomM, bottomL, bottomXL }) =>\n responsiveNamedProperty({\n sizes: { bottomXS, bottomS, bottomM, bottomL, bottomXL },\n cssProperty: 'padding-bottom',\n })}\n ${({ leftXS, leftS, leftM, leftL, leftXL }) =>\n responsiveNamedProperty({ sizes: { leftXS, leftS, leftM, leftL, leftXL }, cssProperty: 'padding-left' })}\n`\n","import { DisplayProperty } from 'mixins/display'\nimport { ResponsiveNamedProperty } from 'mixins/responsive-property'\nimport { BaseProps } from 'shared/interfaces'\nimport * as Styled from './style'\n\nexport interface SpacerProps\n extends BaseProps,\n DisplayProperty,\n ResponsiveNamedProperty<'top'>,\n ResponsiveNamedProperty<'right'>,\n ResponsiveNamedProperty<'bottom'>,\n ResponsiveNamedProperty<'left'>,\n ResponsiveNamedProperty<'padding'>,\n ResponsiveNamedProperty<'paddingTop'>,\n ResponsiveNamedProperty<'paddingRight'>,\n ResponsiveNamedProperty<'paddingBottom'>,\n ResponsiveNamedProperty<'paddingLeft'>,\n ResponsiveNamedProperty<'margin'>,\n ResponsiveNamedProperty<'marginTop'>,\n ResponsiveNamedProperty<'marginRight'>,\n ResponsiveNamedProperty<'marginBottom'>,\n ResponsiveNamedProperty<'marginLeft'> {\n /**\n * Primary content\n */\n /**\n * Children react node\n */\n children?: React.ReactNode\n onClick?: (_e: React.MouseEvent<HTMLDivElement>) => void\n}\n\nSpacer.displayName = 'Spacer'\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`Display`](#/Миксины)\n * - [`ResponsiveNamedProperty<'top'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'right'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'bottom'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'left'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'padding'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'paddingTop'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'paddingRight'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'paddingBottom'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'paddingLeft'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'margin'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'marginTop'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'marginRight'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'marginBottom'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'marginLeft'>`](#/Миксины)\n */\nexport function Spacer(props: SpacerProps) {\n return <Styled.Root {...props} />\n}\n","import styled from 'styled-components'\n\nexport const Ul = styled.ul`\n padding: 0;\n margin: 0;\n list-style-position: inside;\n`\n\nexport const Li = styled.li`\n & + & {\n margin-top: 4px;\n }\n`\n","import { Component } from 'react'\nimport type { TextProps } from 'components/Text'\nimport { Spacer } from '../Spacer/Spacer'\nimport { Anchor } from '../Anchor/Anchor'\nimport { Text } from '../Text'\nimport * as Styled from './style'\n\nexport interface TextEllipseProps extends Omit<TextProps, 'content'> {\n /** Toggle text for folded state */\n moreText?: string\n /** Toggle text for unfolded state */\n lessText?: string\n /** Classname */\n className?: string\n /** Text content */\n content: string | string[]\n /** Characters quantity for ellipsed text */\n chars?: number\n /** Wrap text in quotes */\n quoted?: boolean\n /** Flag to show toggler */\n showToggler?: boolean\n}\n\ninterface TextEllipseState {\n isUnFolded: boolean\n isEllipsed: boolean\n}\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`Color`](#/Миксины)\n * - [`Display`](#/Миксины)\n * - [`ResponsiveNamedProperty<'size'>`](#/Миксины)\n */\nexport class TextEllipse extends Component<TextEllipseProps, TextEllipseState> {\n static displayName = 'Text.Ellipse'\n\n constructor(props: TextEllipseProps) {\n super(props)\n\n this.state = {\n isUnFolded: false,\n isEllipsed: false,\n }\n }\n\n componentDidUpdate({ content }: TextEllipseProps) {\n if (content !== this.props.content && this.state.isUnFolded) {\n this.toggle()\n }\n }\n\n getContent = (props: Omit<TextEllipseProps, 'className' | 'moreText' | 'lessText' | 'showToggler' | 'content'>) => {\n const { content, chars = 0 } = this.props\n\n if (!content) return ''\n\n let { isEllipsed } = this.state\n let text: string | string[] = typeof content === 'string' ? '' : []\n\n if (!this.state.isUnFolded) {\n if (typeof text === 'string') {\n isEllipsed = chars !== 0 && content.length > chars\n\n text = isEllipsed && chars !== 0 ? `${content.slice(0, chars)}...` : content\n } else {\n let leftChars = chars\n\n for (let index = 0; index < content.length; index++) {\n if (leftChars - content[index].length > 0) {\n leftChars -= content[index].length\n\n text[index] = content[index]\n } else {\n isEllipsed = true\n text[index] = `${content[index].slice(0, leftChars)}...`\n\n break\n }\n }\n }\n } else {\n text = content\n }\n\n if (this.state.isEllipsed !== isEllipsed) setTimeout(() => this.setState({ isEllipsed }))\n\n return typeof text === 'string' ? (\n <Text {...props}>{this.getQuted(text)}</Text>\n ) : (\n <Styled.Ul>\n {text.map((item, index) => (\n <Styled.Li key={index}>\n <Text {...props} display='inline'>\n {item}\n </Text>\n </Styled.Li>\n ))}\n </Styled.Ul>\n )\n }\n\n getQuted = (content: string) => (this.props.quoted ? `«${content}»` : content)\n\n toggle = () => {\n this.setState({ isUnFolded: !this.state.isUnFolded })\n }\n\n render() {\n const {\n className = '',\n style,\n moreText = 'Читать полностью',\n lessText = 'Свернуть',\n showToggler = true,\n ...restProps\n } = this.props\n const { isUnFolded, isEllipsed } = this.state\n\n return (\n <div className={className} style={style}>\n {this.getContent(restProps)}\n {showToggler && isEllipsed && (\n <Spacer marginTop={16} marginBottom={1}>\n <Anchor pseudo onClick={this.toggle}>\n {isUnFolded ? lessText : moreText}\n </Anchor>\n </Spacer>\n )}\n </div>\n )\n }\n}\n","import type { Sizes } from 'shared/types'\nimport type { TypographyAppearance, TextProps } from './types'\n\nexport const APPEARANCE: Record<TypographyAppearance, Partial<Omit<TextProps, 'size' | 'appearance'>>> = {\n display: {\n lineHeight: 1,\n weight: 800,\n fontStyle: 'normal',\n },\n heading: {\n lineHeight: 1.1,\n weight: 800,\n fontStyle: 'normal',\n },\n subheading: {\n lineHeight: 1.1,\n weight: 700,\n fontStyle: 'normal',\n },\n 'subheading-compact': {\n lineHeight: 1.3,\n weight: 800,\n fontStyle: 'normal',\n },\n body: {\n lineHeight: 1.3,\n weight: 400,\n fontStyle: 'normal',\n },\n caption: {\n lineHeight: 1.2,\n weight: 400,\n fontStyle: 'normal',\n },\n}\n\nexport const SIZES: Record<TypographyAppearance, Sizes> = {\n display: {\n xxxl: {\n fontSize: 84,\n },\n xxl: {\n fontSize: 76,\n },\n xl: {\n fontSize: 68,\n },\n l: {\n fontSize: 60,\n },\n m: {\n fontSize: 52,\n },\n s: {\n fontSize: 44,\n },\n xs: {\n fontSize: 36,\n },\n xxs: {\n fontSize: 28,\n },\n xxxs: {\n fontSize: 20,\n },\n },\n heading: {\n xxxl: {\n fontSize: 64,\n },\n xxl: {\n fontSize: 56,\n },\n xl: {\n fontSize: 48,\n },\n l: {\n fontSize: 40,\n },\n m: {\n fontSize: 36,\n },\n s: {\n fontSize: 32,\n },\n xs: {\n fontSize: 28,\n },\n xxs: {\n fontSize: 24,\n },\n xxxs: {\n fontSize: 20,\n },\n },\n subheading: {\n xxxl: {\n fontSize: 52,\n },\n xxl: {\n fontSize: 46,\n },\n xl: {\n fontSize: 40,\n },\n l: {\n fontSize: 34,\n },\n m: {\n fontSize: 28,\n },\n s: {\n fontSize: 24,\n },\n xs: {\n fontSize: 20,\n },\n xxs: {\n fontSize: 16,\n },\n xxxs: {\n fontSize: 12,\n },\n },\n 'subheading-compact': {\n xxxl: {\n fontSize: 36,\n },\n xxl: {\n fontSize: 32,\n },\n xl: {\n fontSize: 28,\n },\n l: {\n fontSize: 24,\n },\n m: {\n fontSize: 20,\n },\n s: {\n fontSize: 18,\n },\n xs: {\n fontSize: 16,\n },\n xxs: {\n fontSize: 14,\n },\n xxxs: {\n fontSize: 12,\n },\n },\n body: {\n xxxl: {\n fontSize: 32,\n },\n xxl: {\n fontSize: 28,\n },\n xl: {\n fontSize: 24,\n },\n l: {\n fontSize: 20,\n },\n m: {\n fontSize: 18,\n },\n s: {\n fontSize: 16,\n },\n xs: {\n fontSize: 14,\n },\n xxs: {\n fontSize: 12,\n },\n xxxs: {\n fontSize: 10,\n },\n },\n caption: {\n xxxl: {\n fontSize: 32,\n },\n xxl: {\n fontSize: 28,\n },\n xl: {\n fontSize: 24,\n },\n l: {\n fontSize: 20,\n },\n m: {\n fontSize: 18,\n },\n s: {\n fontSize: 16,\n },\n xs: {\n fontSize: 14,\n },\n xxs: {\n fontSize: 12,\n },\n xxxs: {\n fontSize: 10,\n },\n },\n}\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES_DEFAULT: Sizes = {\n xxxl: {\n fontSize: 24,\n },\n xxl: {\n fontSize: 22,\n },\n xl: {\n fontSize: 20,\n },\n l: {\n fontSize: 18,\n },\n m: {\n fontSize: 16,\n },\n s: {\n fontSize: 14,\n },\n xs: {\n fontSize: 12,\n },\n xxs: {\n fontSize: 10,\n },\n xxxs: {\n fontSize: 8,\n },\n}\n","import { createResponsivePropsMixin } from 'mixins/create-responsive-props'\nimport type { ResponsiveProps } from 'mixins/create-responsive-props'\nimport type { CSSUnit, CSSGlobalValue } from 'shared/types'\n\ntype MarginProperty = 'margin' | 'marginTop' | 'marginRight' | 'marginBottom' | 'marginLeft'\n\n// eslint-disable-next-line @typescript-eslint/ban-types\ntype MarginValue = CSSGlobalValue | (string & {}) | number\n\ntype ResponsiveMarginProps = ResponsiveProps<MarginProperty, MarginValue> & {\n marginUnits?: CSSUnit\n}\n\n/**\n *\n * Mixin enables responsive margin interface\n */\nconst responsiveMargin = createResponsivePropsMixin<MarginProperty, MarginValue | void, ResponsiveMarginProps>(\n ['margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft'],\n (propKey, propValue, props) => {\n if (propValue === undefined || propValue === null) return {}\n\n return {\n [propKey]: typeof propValue === 'string' ? propValue : `${propValue}${props.marginUnits ?? 'px'}`,\n }\n }\n)\n\nexport type { ResponsiveMarginProps }\n\nexport { responsiveMargin }\n","import styled from 'styled-components'\nimport { display } from 'mixins/display'\nimport { color } from 'mixins/color'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { responsiveMargin } from 'mixins/responsive-margin'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport type { Color } from 'shared/types'\nimport type { StyledTextProps } from './types'\n\nconst WEIGHT_MAP = {\n lighter: 100,\n normal: 400,\n bold: 600,\n bolder: 800,\n}\n\nconst LINE_HEIGHT_MAP = {\n l: 1.5,\n m: 1.3,\n s: 1.15,\n xs: 1,\n}\n\nconst shouldForwardTextProp = createShouldForwardProp(\n (propKey) =>\n ![\n 'appearance',\n 'fontFamily',\n 'weight',\n 'fontStyle',\n 'transform',\n 'underlineLinks',\n 'textAlign',\n 'lineHeight',\n 'content',\n 'display',\n 'chars',\n 'quoted',\n 'showZeroMinorPart',\n 'separator',\n 'underline',\n 'whiteSpace',\n ].includes(propKey)\n)\n\nexport const Root = styled.div.withConfig<StyledTextProps>({\n shouldForwardProp: shouldForwardTextProp,\n})`\n ${(props) => `\n margin: 0;\n ${props.fontFamily ? `font-family: ${props.fontFamily};` : ''}\n ${props.transform ? `text-transform: ${props.transform};` : ''}\n ${props.weight ? `font-weight: ${WEIGHT_MAP[props.weight] ?? props.weight};` : ''}\n ${props.fontStyle ? `font-style: ${props.fontStyle};` : ''}\n ${props.textAlign ? `text-align: ${props.textAlign};` : ''}\n ${props.lineHeight ? `line-height: ${LINE_HEIGHT_MAP[props.lineHeight] ?? props.lineHeight};` : ''}\n ${props.underline ? `border-bottom: 1px ${typeof props.underline === 'string' ? props.underline : 'solid'};` : ''}\n ${props.whiteSpace ? `white-space: ${props.whiteSpace};` : ''}\n a {\n text-decoration: ${props.underlineLinks ? 'underline' : 'none'};\n &:hover {\n text-decoration: none;\n }\n }\n `}\n\n ${responsiveSize}\n ${responsiveMargin}\n\n ${(props) => (props.display ? display(props.display) : null)}\n ${(props) => (props.color ? color(props.color) : color(props.theme.textColor as Color))}\n`\n","import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { useClassname } from 'hooks/useClassname'\nimport { TextHeading } from 'components/Text.Heading'\nimport { TextEllipse } from 'components/Text.Ellipse'\nimport type { TextProps } from './types'\nimport { APPEARANCE, SIZES } from './constants'\nimport { SIZES_DEFAULT } from './default-constants'\nimport * as Styled from './style'\n\nconst COMPONENT_NAME = 'Text'\n\n/**\n *\n * Component accepts all \\<div\\> attributes.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [TextProps](https://github.com/foxford/ui/blob/master/src/components/Text/types.ts)\n */\nconst Text: React.ForwardRefExoticComponent<TextProps> & { Heading: typeof TextHeading; Ellipse: typeof TextEllipse } =\n Object.assign(\n withMergedProps<TextProps, HTMLDivElement>(\n forwardRef((props, ref) => {\n const textProps = props.appearance ? { ...APPEARANCE[props.appearance], ...props } : props\n\n const {\n size = 'm',\n weight = 'normal',\n lineHeight = 'm',\n fontStyle = 'normal',\n className,\n content,\n children,\n ...restProps\n } = textProps\n\n const textClassName = useClassname(COMPONENT_NAME, className)\n\n return (\n <Styled.Root\n {...restProps}\n size={size}\n weight={weight}\n lineHeight={lineHeight}\n fontStyle={fontStyle}\n className={textClassName}\n ref={ref}\n >\n {children || content}\n </Styled.Root>\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: (props) => {\n if (typeof props.appearance === 'string') {\n return SIZES[props.appearance] ?? SIZES_DEFAULT\n }\n\n return SIZES_DEFAULT\n },\n }\n ),\n {\n Heading: TextHeading,\n Ellipse: TextEllipse,\n }\n )\n\nexport { Text, COMPONENT_NAME }\n","import type { ThemedStyledProps, DefaultTheme } from 'styled-components'\n\nconst focus = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n props: ThemedStyledProps<any, DefaultTheme>\n): string => {\n return `\n &:focus-visible {\n box-shadow: 0 0 0 2px ${props.theme.colors.white}, 0 0 0 4px ${props.theme.colors['border-focus']};\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n `\n}\n\nexport { focus }\n","import styled, { css } from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport type { ThemedStyledProps, DefaultTheme } from 'styled-components'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { getColor } from 'mixins/color'\nimport { focus } from 'mixins/focus'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { responsiveMargin } from 'mixins/responsive-margin'\nimport { display } from 'mixins/display'\nimport type { CSSColor } from 'shared/types'\nimport type { StyledAnchorProps, AnchorPalette } from './types'\n\nconst shouldForwardAnchorProp = createShouldForwardProp(\n (propKey) => !['display', 'underline', 'onColored', 'verticalAlign', 'pseudo', 'wrapper'].includes(propKey)\n)\n\nconst template = (palette: AnchorPalette) => `\n color: ${palette.color};\n &:hover {\n color: ${palette.colorHover};\n }\n &:active {\n color: ${palette.color};\n }\n &[data-disabled=\"true\"] {\n color: ${palette.colorDisabled};\n }\n`\n\nconst COLOR_SCHEMA = {\n default: css<StyledAnchorProps>`\n ${(props) =>\n template({\n color: props.wrapper ? 'inherit' : props.theme.colors.accent,\n colorHover: props.wrapper ? 'inherit' : props.theme.colors.primary,\n colorDisabled: props.theme.colors['content-disabled'],\n ...props.palette,\n })}\n `,\n primary: css<StyledAnchorProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-link'],\n colorHover: tinycolor(props.theme.colors['content-link']).lighten(10).toString() as CSSColor,\n colorDisabled: props.theme.colors['content-disabled'],\n ...props.palette,\n })}\n `,\n onColored: css<StyledAnchorProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n colorHover: tinycolor(props.theme.colors['content-oncolor-primary']).darken(10).toString() as CSSColor,\n colorDisabled: props.theme.colors['content-oncolor-disabled'],\n ...props.palette,\n })}\n `,\n}\n\nconst anchorStyles = (props: ThemedStyledProps<StyledAnchorProps, DefaultTheme>) => {\n if (props.onColored) return COLOR_SCHEMA.onColored\n return props.preset === 'brand' ? COLOR_SCHEMA.primary : COLOR_SCHEMA.default\n}\n\nexport const Root = styled.a.withConfig<StyledAnchorProps>({\n shouldForwardProp: shouldForwardAnchorProp,\n})`\n ${(props) => `\n box-sizing: border-box;\n isolation: isolate;\n transition-property: color;\n transition-duration: 150ms;\n transition-timing-function: ease-in;\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n vertical-align: ${\n props.verticalAlign\n ? `${typeof props.verticalAlign === 'string' ? props.verticalAlign : 'text-bottom'}`\n : 'baseline'\n };\n ${\n props.preset === 'brand'\n ? `\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n text-decoration: none;\n `\n : `\n display: ${props.wrapper ? 'block' : 'inline-block'};\n text-decoration-line: ${props.underline === true ? 'underline' : 'none'};\n border-bottom: ${\n props.pseudo || typeof props.underline === 'string'\n ? `1px ${typeof props.underline === 'string' ? props.underline : 'dashed'}`\n : 'none'\n };\n `\n }\n \n `}\n\n ${anchorStyles}\n ${focus}\n ${responsiveSize}\n ${responsiveMargin}\n \n ${(props) => props.display && display(props.display)}\n ${(props) => props.color && `color: ${getColor(props.color, props)};`}\n`\n","import { forwardRef } from 'react'\nimport { Link } from 'react-router-dom'\nimport { useTheme } from 'styled-components'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { useClassname } from 'hooks/useClassname'\nimport { Text } from 'components/Text'\nimport { Icon } from 'components/Icon'\nimport type { TextProps } from 'components/Text'\nimport type { IconProps } from 'components/Icon'\nimport { SIZES } from './constants'\nimport * as Styled from './style'\nimport type { AnchorProps } from './types'\n\nconst COMPONENT_NAME = 'Anchor'\n\n/**\n *\n * Component accepts all \\<a\\> attributes.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [AnchorProps](https://github.com/foxford/ui/blob/master/src/components/Anchor/types.ts)\n */\nconst Anchor: React.ForwardRefExoticComponent<AnchorProps> = withMergedProps<AnchorProps, HTMLAnchorElement>(\n forwardRef((props, ref) => {\n const {\n size = 'inherit',\n autoRel = true,\n textProps = {},\n iconProps = {},\n icon,\n children,\n content,\n ...restProps\n } = props\n\n const theme = useTheme()\n\n const className = useClassname(COMPONENT_NAME, restProps.className)\n const relBuilder = theme.utils?.relBuilder\n const href = restProps.href ?? restProps.to\n\n const rel =\n restProps.rel ??\n (autoRel && relBuilder && typeof href === 'string' ? relBuilder(href, restProps.target) : undefined)\n\n const [before, after] = Array.isArray(icon) ? icon : [icon]\n\n const baseTextProps: TextProps = {\n as: 'span',\n size: 'inherit',\n color: 'inherit',\n underline: restProps.underline,\n marginLeft: before ? '0.25em' : undefined,\n marginRight: after ? '0.25em' : undefined,\n }\n\n const iconBaseProps: IconProps = { as: 'span', color: 'inherit' }\n\n let rootNode\n if (restProps.to) rootNode = Link\n if (restProps.pseudo) rootNode = 'div'\n if (restProps.disabled) rootNode = 'span'\n if (restProps.as) rootNode = restProps.as\n\n return (\n <Styled.Root\n {...restProps}\n ref={ref}\n as={rootNode}\n className={className}\n size={size}\n rel={rel}\n data-disabled={restProps.disabled}\n >\n {typeof children === 'function' ? (\n children({ baseTextProps, textProps, iconBaseProps, iconProps, icon })\n ) : props.preset === 'brand' ? (\n <>\n {before && (\n <Icon\n name={typeof before === 'string' ? before : undefined}\n icon={typeof before !== 'string' ? before : undefined}\n {...iconBaseProps}\n {...iconProps}\n />\n )}\n <Text {...baseTextProps} {...textProps}>\n {children || content}\n </Text>\n {after && (\n <Icon\n name={typeof after === 'string' ? after : undefined}\n icon={typeof after !== 'string' ? after : undefined}\n {...iconBaseProps}\n {...iconProps}\n />\n )}\n </>\n ) : (\n <>{children || content}</>\n )}\n </Styled.Root>\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: SIZES,\n }\n)\n\nexport { Anchor, COMPONENT_NAME }\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n fontSize: 24,\n },\n xxl: {\n fontSize: 22,\n },\n xl: {\n fontSize: 20,\n },\n l: {\n fontSize: 18,\n },\n m: {\n fontSize: 16,\n },\n s: {\n fontSize: 14,\n },\n xs: {\n fontSize: 12,\n },\n xxs: {\n fontSize: 10,\n },\n xxxs: {\n fontSize: 8,\n },\n}\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n fontSize: 22,\n height: 64,\n paddingLeft: 36,\n paddingRight: 36,\n },\n xxl: {\n fontSize: 20,\n height: 60,\n paddingLeft: 34,\n paddingRight: 34,\n },\n xl: {\n fontSize: 18,\n height: 56,\n paddingLeft: 32,\n paddingRight: 32,\n },\n l: {\n fontSize: 16,\n height: 48,\n paddingLeft: 28,\n paddingRight: 28,\n },\n m: {\n fontSize: 16,\n height: 44,\n paddingLeft: 28,\n paddingRight: 28,\n },\n s: {\n fontSize: 14,\n height: 40,\n paddingLeft: 24,\n paddingRight: 24,\n },\n xs: {\n fontSize: 14,\n height: 32,\n paddingLeft: 16,\n paddingRight: 16,\n },\n xxs: {\n fontSize: 12,\n height: 28,\n paddingLeft: 14,\n paddingRight: 14,\n },\n xxxs: {\n fontSize: 10,\n height: 24,\n paddingLeft: 12,\n paddingRight: 12,\n },\n}\n\nexport const SIZES_ROUND: Sizes = {\n xxxl: {\n fontSize: 32,\n height: 64,\n width: 64,\n },\n xxl: {\n fontSize: 28,\n height: 60,\n width: 60,\n },\n xl: {\n fontSize: 24,\n height: 56,\n width: 56,\n },\n l: {\n fontSize: 20,\n height: 48,\n width: 48,\n },\n m: {\n fontSize: 16,\n height: 44,\n width: 44,\n },\n s: {\n fontSize: 16,\n height: 40,\n width: 40,\n },\n xs: {\n fontSize: 16,\n height: 32,\n width: 32,\n },\n xxs: {\n fontSize: 16,\n height: 28,\n width: 28,\n },\n xxxs: {\n fontSize: 14,\n height: 24,\n width: 24,\n },\n}\n","import type { Sizes, Size } from 'shared/types'\nimport type { ButtonProps } from './types'\n\nexport const SIZES_DEFAULT: Sizes = {\n xxxl: {\n fontSize: 24,\n height: 78,\n paddingLeft: 44,\n paddingRight: 44,\n },\n xxl: {\n fontSize: 22,\n height: 72,\n paddingLeft: 40,\n paddingRight: 40,\n },\n xl: {\n fontSize: 20,\n height: 68,\n paddingLeft: 40,\n paddingRight: 40,\n },\n l: {\n fontSize: 18,\n height: 60,\n paddingLeft: 36,\n paddingRight: 36,\n },\n m: {\n fontSize: 16,\n height: 52,\n paddingLeft: 32,\n paddingRight: 32,\n },\n s: {\n fontSize: 14,\n height: 40,\n paddingLeft: 28,\n paddingRight: 28,\n },\n xs: {\n fontSize: 14,\n height: 40,\n paddingLeft: 28,\n paddingRight: 28,\n },\n xxs: {\n fontSize: 12,\n height: 32,\n paddingLeft: 18,\n paddingRight: 18,\n },\n xxxs: {\n fontSize: 10,\n height: 28,\n paddingLeft: 12,\n paddingRight: 12,\n },\n}\n\nexport const SIZES_ROUND_DEFAULT: Sizes = {\n xxxl: {\n fontSize: 32,\n lineHeight: 1,\n padding: '0.28em',\n width: 72,\n height: 72,\n },\n xxl: {\n fontSize: 30,\n lineHeight: 1,\n padding: '0.28em',\n width: 68,\n height: 68,\n },\n xl: {\n fontSize: 26,\n lineHeight: 1,\n padding: '0.28em',\n width: 60,\n height: 60,\n },\n l: {\n fontSize: 23,\n lineHeight: 1,\n padding: '0.28em',\n width: 52,\n height: 52,\n },\n m: {\n fontSize: 21,\n lineHeight: 1,\n padding: '0.28em',\n width: 48,\n height: 48,\n },\n s: {\n fontSize: 18,\n lineHeight: 1,\n padding: '0.28em',\n width: 40,\n height: 40,\n },\n xs: {\n fontSize: 14,\n lineHeight: 1,\n padding: '0.28em',\n width: 32,\n height: 32,\n },\n xxs: {\n fontSize: 12,\n lineHeight: 1,\n padding: '0.28em',\n width: 24,\n height: 24,\n },\n xxxs: {\n fontSize: 8,\n lineHeight: 1,\n padding: '0.28em',\n width: 18,\n height: 18,\n },\n}\n\n// delete in next major version bump\nexport const PROPS_BY_SIZE: Partial<Record<Size, ButtonProps>> = {\n xl: {\n paddingLeftM: 36,\n paddingRightM: 36,\n paddingLeftS: 32,\n paddingRightS: 32,\n },\n l: {\n fontSizeM: 'm',\n heightM: 56,\n heightS: 52,\n paddingLeftM: 28,\n paddingRightM: 28,\n paddingLeftS: 24,\n paddingRightS: 24,\n },\n m: {\n paddingLeftM: 24,\n paddingRightM: 24,\n paddingLeftS: 20,\n paddingRightS: 20,\n },\n s: {\n paddingLeftM: 20,\n paddingRightM: 20,\n paddingLeftS: 16,\n paddingRightS: 16,\n },\n xs: {\n paddingLeftM: 20,\n paddingRightM: 20,\n paddingLeftS: 16,\n paddingRightS: 16,\n },\n}\n","import styled, { css, keyframes } from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport { LoaderFill } from '@foxford/icon-pack'\nimport { property, responsiveNamedProperty } from 'mixins/responsive-property'\nimport { color } from 'mixins/color'\nimport type { PossibleValues, CalcProperty } from 'mixins/responsive-property'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { focus } from 'mixins/focus'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport {\n responsiveFluidPropKeyRegExp,\n responsiveWidthPropKeyRegExp,\n responsivePaddingPropKeyRegExp,\n responsiveFontSizePropKeyRegExp,\n responsiveHeightPropKeyRegExp,\n} from 'shared/regexp'\nimport type { CSSColor } from 'shared/types'\nimport type { StyledButtonProps, ButtonPalette } from './types'\n\nconst shouldForwardButtonProp = createShouldForwardProp(\n (propKey) =>\n ![\n 'fluid',\n 'width',\n 'display',\n 'padding',\n 'paddingTop',\n 'paddingRight',\n 'paddingBottom',\n 'paddingLeft',\n 'fontSize',\n 'height',\n 'inline',\n 'round',\n 'success',\n 'loading',\n 'black',\n 'danger',\n 'onColored',\n 'clear',\n 'base',\n 'outline',\n 'autoRel',\n 'noSpacing',\n 'primary',\n 'secondary',\n 'inverted',\n 'rounded',\n 'basic',\n ].includes(propKey),\n (propKey) =>\n !responsiveFluidPropKeyRegExp.test(propKey) &&\n !responsiveWidthPropKeyRegExp.test(propKey) &&\n !responsivePaddingPropKeyRegExp.test(propKey) &&\n !responsiveFontSizePropKeyRegExp.test(propKey) &&\n !responsiveHeightPropKeyRegExp.test(propKey)\n)\n\nconst WIDTHS: Record<string, number> = {\n xl: 320,\n l: 280,\n m: 245,\n s: 180,\n xs: 140,\n}\n\nconst loadingAnimation = keyframes`\n 0% {\n background-position: 0 0;\n }\n 100% {\n background-position: 50px 50px;\n }\n`\n\nconst spinAnimation = keyframes`\n 100% {\n transform: rotate(360deg);\n }\n`\n\nconst defaultLoadingStyles = css`\n background-image: linear-gradient(\n -45deg,\n rgba(255, 255, 255, 0.2) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.2) 50%,\n rgba(255, 255, 255, 0.2) 75%,\n transparent 75%,\n transparent\n );\n background-size: 25px 25px;\n animation: ${loadingAnimation} 2s linear infinite;\n cursor: progress;\n`\n\nconst getWidth = (width: PossibleValues): PossibleValues => {\n if (width === 'auto') return 'auto'\n if (typeof width === 'number') return width\n if (typeof width === 'boolean') return width\n\n if (width && WIDTHS[width]) return WIDTHS[width]\n\n return 'auto'\n}\n\nconst fluidStyles: CalcProperty = () => css`\n min-width: initial;\n width: 100%;\n`\n\nconst template = (palette: ButtonPalette) => `\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n border-color: ${palette.borderColor};\n &::before {\n box-shadow: inset 0px 4px 0px ${palette.shadowColor};\n }\n &:hover {\n color: ${palette.colorHover};\n background-color: ${palette.backgroundColorHover};\n border-color: ${palette.borderColorHover};\n }\n &:active {\n color: ${palette.colorActive};\n background-color: ${palette.backgroundColorActive};\n border-color: ${palette.borderColorActive};\n }\n &:disabled {\n color: ${palette.colorDisabled};\n background-color: ${palette.backgroundColorDisabled};\n border-color: ${palette.borderColorDisabled};\n }\n`\n\nconst COLOR_SCHEMA = {\n onColored: {\n clear: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors.transparent,\n borderColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.theme.colors['bg-oncontrast-hover'],\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.theme.colors['content-oncolor-primary'],\n backgroundColorActive: props.theme.colors['bg-oncontrast-hover'],\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.loading\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-oncolor-disabled'],\n backgroundColorDisabled: props.theme.colors.transparent,\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncontrast-hover'],\n ...props.palette,\n })}\n `,\n base: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.success ? props.theme.colors['alert-success'] : props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.success\n ? props.theme.colors['bg-oncolor-primary']\n : props.theme.colors['bg-oncolor-secondary'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.success\n ? props.theme.colors['alert-success']\n : props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.success\n ? (tinycolor(props.theme.colors['bg-oncolor-primary']).darken(2).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-oncolor-secondary']).darken(4).toString() as CSSColor),\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.success\n ? props.theme.colors['alert-success']\n : props.theme.colors['content-oncolor-primary'],\n backgroundColorActive: props.success\n ? (tinycolor(props.theme.colors['bg-oncolor-primary']).darken(2).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-oncolor-secondary']).darken(4).toString() as CSSColor),\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.loading\n ? props.theme.colors['content-oncolor-constant']\n : props.theme.colors['content-oncolor-disabled'],\n backgroundColorDisabled: props.loading\n ? props.theme.colors['bg-oncolor-primary']\n : props.theme.colors['bg-oncolor-disabled'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n outline: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.success\n ? props.theme.colors['alert-success']\n : props.loading\n ? props.theme.colors['content-oncolor-constant']\n : props.theme.colors['content-oncolor-primary'],\n backgroundColor:\n props.success || props.loading ? props.theme.colors['bg-oncolor-primary'] : props.theme.colors.transparent,\n borderColor:\n props.success || props.loading\n ? props.theme.colors.transparent\n : props.theme.colors['border-oncolor-default'],\n colorHover: props.success\n ? props.theme.colors['alert-success']\n : props.theme.colors['content-oncolor-constant'],\n backgroundColorHover: props.success\n ? (tinycolor(props.theme.colors['bg-oncolor-primary']).darken(2).toString() as CSSColor)\n : props.theme.colors['bg-oncolor-primary'],\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.success\n ? props.theme.colors['alert-success']\n : props.theme.colors['content-oncolor-constant'],\n backgroundColorActive: props.success\n ? (tinycolor(props.theme.colors['bg-oncolor-primary']).darken(2).toString() as CSSColor)\n : props.theme.colors['bg-oncolor-primary'],\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.loading\n ? props.theme.colors['content-oncolor-constant']\n : props.theme.colors['content-oncolor-disabled'],\n backgroundColorDisabled: props.loading\n ? props.theme.colors['bg-oncolor-primary']\n : props.theme.colors['bg-oncolor-disabled'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n default: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.success ? props.theme.colors['alert-success'] : props.theme.colors['content-oncolor-constant'],\n backgroundColor: props.theme.colors['bg-oncolor-primary'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.success\n ? props.theme.colors['alert-success']\n : props.theme.colors['content-oncolor-constant'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-oncolor-primary']).darken(2).toString() as CSSColor,\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.success\n ? props.theme.colors['alert-success']\n : props.theme.colors['content-oncolor-constant'],\n backgroundColorActive: tinycolor(props.theme.colors['bg-oncolor-primary']).darken(2).toString() as CSSColor,\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.loading\n ? props.theme.colors['content-oncolor-constant']\n : props.theme.colors['content-oncolor-disabled'],\n backgroundColorDisabled: props.loading\n ? props.theme.colors['bg-oncolor-primary']\n : props.theme.colors['bg-oncolor-disabled'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n },\n danger: {\n clear: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.success ? props.theme.colors['alert-success'] : props.theme.colors['alert-error'],\n backgroundColor: props.theme.colors.transparent,\n borderColor: props.theme.colors.transparent,\n colorHover: props.success ? props.theme.colors['alert-success'] : props.theme.colors['alert-error'],\n backgroundColorHover: props.theme.colors['bg-oncolor-hover'],\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.success ? props.theme.colors['alert-success'] : props.theme.colors['alert-error'],\n backgroundColorActive: props.theme.colors['bg-oncolor-hover'],\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.loading ? props.theme.colors['alert-error'] : props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors.transparent,\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n base: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.success ? props.theme.colors['content-oncolor-primary'] : props.theme.colors['alert-error'],\n backgroundColor: props.success\n ? props.theme.colors['alert-bg-success-500']\n : props.theme.colors['bg-onmain-tertiary'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.success ? props.theme.colors['content-oncolor-primary'] : props.theme.colors['alert-error'],\n backgroundColorHover: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).darken(2).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-onmain-tertiary']).darken(2).toString() as CSSColor),\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.success\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['alert-error'],\n backgroundColorActive: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).darken(2).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-onmain-tertiary']).darken(2).toString() as CSSColor),\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.loading ? props.theme.colors['alert-error'] : props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.loading\n ? props.theme.colors['bg-onmain-tertiary']\n : props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n outline: css<StyledButtonProps>`\n ${(props) =>\n template({\n color:\n props.success || props.loading\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['alert-error'],\n backgroundColor: props.success\n ? props.theme.colors['alert-bg-success-500']\n : props.loading\n ? props.theme.colors['alert-bg-error-500']\n : props.theme.colors.transparent,\n borderColor:\n props.success || props.loading ? props.theme.colors.transparent : props.theme.colors['alert-bg-error-500'],\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).darken(2).toString() as CSSColor)\n : props.theme.colors['alert-bg-error-500'],\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.theme.colors['content-oncolor-primary'],\n backgroundColorActive: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).darken(2).toString() as CSSColor)\n : (tinycolor(props.theme.colors['alert-bg-error-500']).darken(2).toString() as CSSColor),\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.loading\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.loading\n ? props.theme.colors['alert-bg-error-500']\n : props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n default: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.success\n ? props.theme.colors['alert-bg-success-500']\n : props.theme.colors['alert-bg-error-500'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).darken(2).toString() as CSSColor)\n : (tinycolor(props.theme.colors['alert-bg-error-500']).darken(2).toString() as CSSColor),\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.theme.colors['content-oncolor-primary'],\n backgroundColorActive: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).darken(2).toString() as CSSColor)\n : (tinycolor(props.theme.colors['alert-bg-error-500']).darken(2).toString() as CSSColor),\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.loading\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.loading\n ? props.theme.colors['alert-bg-error-500']\n : props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n },\n black: {\n clear: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.success ? props.theme.colors['alert-success'] : props.theme.colors['content-oncolor-inverse'],\n backgroundColor: props.theme.colors.transparent,\n borderColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-oncolor-inverse'],\n backgroundColorHover: props.theme.colors['bg-oncolor-hover'],\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.theme.colors['content-oncolor-inverse'],\n backgroundColorActive: props.theme.colors['bg-oncolor-hover'],\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors.transparent,\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n base: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.success\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-oncolor-inverse'],\n backgroundColor: props.success\n ? props.theme.colors['alert-bg-success-500']\n : props.theme.colors['bg-onmain-tertiary'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.success\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-oncolor-inverse'],\n backgroundColorHover: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).lighten(4).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-onmain-tertiary']).darken(4).toString() as CSSColor),\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.success\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-oncolor-inverse'],\n backgroundColorActive: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).lighten(4).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-onmain-tertiary']).darken(4).toString() as CSSColor),\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n outline: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.success\n ? props.theme.colors['content-oncolor-primary']\n : props.loading\n ? props.theme.colors['content-onmain-inverse']\n : props.theme.colors['content-oncolor-inverse'],\n backgroundColor: props.success\n ? props.theme.colors['alert-bg-success-500']\n : props.loading\n ? props.theme.colors['bg-onmain-inverse']\n : props.theme.colors.transparent,\n borderColor:\n props.success || props.loading\n ? props.theme.colors.transparent\n : props.theme.colors['border-onmain-contrast'],\n colorHover: props.success\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-onmain-inverse'],\n backgroundColorHover: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).lighten(4).toString() as CSSColor)\n : props.theme.colors['bg-onmain-inverse'],\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.success\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-onmain-inverse'],\n backgroundColorActive: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).lighten(4).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-onmain-inverse']).lighten(4).toString() as CSSColor),\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n default: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.success\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-onmain-inverse'],\n backgroundColor: props.success\n ? props.theme.colors['alert-bg-success-500']\n : props.theme.colors['bg-onmain-inverse'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.success\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-onmain-inverse'],\n backgroundColorHover: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).lighten(4).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-onmain-inverse']).lighten(4).toString() as CSSColor),\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.success\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-onmain-inverse'],\n backgroundColorActive: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).lighten(4).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-onmain-inverse']).lighten(4).toString() as CSSColor),\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n },\n default: {\n clear: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.success ? props.theme.colors['alert-success'] : props.theme.colors['content-brand-primary'],\n backgroundColor: props.theme.colors.transparent,\n borderColor: props.theme.colors.transparent,\n colorHover: props.success ? props.theme.colors['alert-success'] : props.theme.colors['content-brand-primary'],\n backgroundColorHover: props.theme.colors['bg-oncolor-hover'],\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.success\n ? props.theme.colors['alert-success']\n : props.theme.colors['content-brand-primary'],\n backgroundColorActive: props.theme.colors['bg-oncolor-hover'],\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.loading\n ? props.theme.colors['content-brand-primary']\n : props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors.transparent,\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n base: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.success\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-brand-primary'],\n backgroundColor: props.success\n ? props.theme.colors['alert-bg-success-500']\n : props.theme.colors['bg-onmain-tertiary'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.success\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-brand-primary'],\n backgroundColorHover: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).darken(2).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-onmain-tertiary']).darken(2).toString() as CSSColor),\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.success\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-brand-primary'],\n backgroundColorActive: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).darken(2).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-onmain-tertiary']).darken(2).toString() as CSSColor),\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.loading\n ? props.theme.colors['content-brand-primary']\n : props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.loading\n ? props.theme.colors['bg-onmain-tertiary']\n : props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n outline: css<StyledButtonProps>`\n ${(props) =>\n template({\n color:\n props.success || props.loading\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-brand-primary'],\n backgroundColor: props.success\n ? props.theme.colors['alert-bg-success-500']\n : props.loading\n ? props.theme.colors['bg-brand-primary-basic']\n : props.theme.colors.transparent,\n borderColor:\n props.success || props.loading\n ? props.theme.colors.transparent\n : props.theme.colors['border-brand-primary'],\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).darken(2).toString() as CSSColor)\n : props.theme.colors['bg-brand-primary-basic'],\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.theme.colors['content-oncolor-primary'],\n backgroundColorActive: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).darken(2).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-brand-primary-basic']).darken(2).toString() as CSSColor),\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.loading\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.loading\n ? props.theme.colors['bg-brand-primary-basic']\n : props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n default: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.success\n ? props.theme.colors['alert-bg-success-500']\n : props.theme.colors['bg-brand-primary-basic'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).darken(2).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-brand-primary-basic']).darken(2).toString() as CSSColor),\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.theme.colors['content-oncolor-primary'],\n backgroundColorActive: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).darken(2).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-brand-primary-basic']).darken(2).toString() as CSSColor),\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.loading\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.loading\n ? props.theme.colors['bg-brand-primary-basic']\n : props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n },\n}\n\nconst defaultStyles = css<StyledButtonProps>`\n ${(props) => {\n if (props.disabled || props.loading) return ''\n\n return `\n &:active {\n box-shadow: inset 0 4px 0px 0px rgba(0, 0, 0, 0.14);\n }\n &:hover {\n color: ${props.fontColor};\n background-color: ${tinycolor(props.theme.colors[props.color]).saturate(-5).lighten(-8).toString()};\n }\n ${\n props.inverted || props.basic || props.outline\n ? `\n &:not(:hover) {\n border: 1px solid ${props.theme.colors[props.color]};\n }\n &:hover {\n border: 1px solid ${props.theme.colors[props.color]};\n }\n `\n : ''\n }\n `\n }}\n\n ${(props) => (props.loading ? defaultLoadingStyles : '')}\n\n ${(props) => {\n let cssProperty = 'background-color'\n if (props.inverted || props.basic || props.outline) cssProperty = 'color'\n\n return color(props.color, cssProperty)\n }}\n\n ${(props) => {\n let cssProperty = 'color'\n if (props.inverted || props.basic || props.outline) cssProperty = 'background-color'\n\n return color(props.fontColor, cssProperty)\n }}\n\n ${(props) => {\n if (!props.disabled) return ''\n\n return `\n cursor: not-allowed;\n background-color: ${props.theme.colors.mercury};\n color: ${props.theme.colors.silver};\n `\n }}\n\n ${(props) => (props.basic || props.outline ? 'background-color: transparent;' : '')}\n`\n\nexport const Root = styled.button\n .withConfig<StyledButtonProps>({\n shouldForwardProp: shouldForwardButtonProp,\n })\n .attrs<StyledButtonProps>(\n (props): Required<Pick<StyledButtonProps, 'dynamicSizeDeclaration'>> => ({\n dynamicSizeDeclaration: (size, sizeUnits) => {\n return {\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n height: '2.8em',\n width: props.round ? '2.8em' : undefined,\n paddingRight: props.round ? undefined : '1.6em',\n paddingLeft: props.round ? undefined : '1.6em',\n }\n },\n })\n )`\n ${(props) => {\n let display = props.inline ? 'inline-flex' : 'flex'\n if (props.display) display = props.display\n\n let borderRadius = '0px'\n if (props.rounded) borderRadius = props.preset === 'brand' ? '48px' : '5px'\n if (props.round) borderRadius = '50%'\n\n let cursor = 'pointer'\n if (props.disabled) cursor = 'not-allowed'\n if (props.loading) cursor = 'wait'\n\n return `\n display: ${display};\n border-radius: ${borderRadius};\n cursor: ${cursor};\n box-sizing: border-box;\n position: relative;\n isolation: isolate;\n justify-content: center;\n align-items: center;\n user-select: none;\n border: none;\n text-decoration: none;\n appearance: none;\n white-space: nowrap;\n text-align: center;\n vertical-align: top;\n ${\n props.preset === 'brand'\n ? `\n border: 1px solid transparent;\n transition-property: background-color; \n transition-duration: 250ms;\n &::before {\n transition-property: opacity; \n transition-duration: 150ms;\n transition-timing-function: ease-in;\n }\n &::before {\n content: '';\n position: absolute;\n top: -1px;\n left: -1px;\n width: calc(100% + 2px);\n height: calc(100% + 2px);\n border-radius: inherit;\n opacity: 0;\n }\n &:active:not(:disabled)::before {\n opacity: 1;\n }`\n : `\n border: none;\n overflow: hidden;\n transition-property: background-color, color;\n transition-duration: 200ms;`\n }\n `\n }}\n\n ${(props) => {\n if (props.preset === 'default') return defaultStyles\n\n let schema = COLOR_SCHEMA.default\n\n if (props.black) schema = COLOR_SCHEMA.black\n if (props.danger) schema = COLOR_SCHEMA.danger\n if (props.onColored) schema = COLOR_SCHEMA.onColored\n\n if (props.clear) return schema.clear\n if (props.base) return schema.base\n if (props.outline) return schema.outline\n\n return schema.default\n }}\n\n ${focus}\n ${responsiveSize}\n\n ${(props) => (props.padding ? property(props.padding, 'padding') : null)}\n ${(props) => (props.paddingTop ? property(props.paddingTop, 'padding-top') : null)}\n ${(props) => (props.paddingRight ? property(props.paddingRight, 'padding-right') : null)}\n ${(props) => (props.paddingBottom ? property(props.paddingBottom, 'padding-bottom') : null)}\n ${(props) => (props.paddingLeft ? property(props.paddingLeft, 'padding-left') : null)}\n\n ${(props) => (props.margin ? property(props.margin, 'margin') : null)}\n ${(props) => (props.marginTop ? property(props.marginTop, 'margin-top') : null)}\n ${(props) => (props.marginRight ? property(props.marginRight, 'margin-right') : null)}\n ${(props) => (props.marginBottom ? property(props.marginBottom, 'margin-bottom') : null)}\n ${(props) => (props.marginLeft ? property(props.marginLeft, 'margin-left') : null)}\n\n ${(props) => (props.fontSize ? property(props.fontSize, 'font-size') : null)}\n\n ${(props) => (props.height ? property(props.height, 'height') : null)}\n\n ${(props) => {\n const cssProperty = props.fluid && props.width !== 'auto' ? 'max-width' : 'width'\n return props.width ? property(getWidth(props.width), cssProperty) : null\n }}\n\n ${({ paddingXS, paddingS, paddingM, paddingL, paddingXL }) => {\n return responsiveNamedProperty({\n sizes: { paddingXS, paddingS, paddingM, paddingL, paddingXL },\n cssProperty: 'padding',\n })\n }}\n ${({ paddingTopXS, paddingTopS, paddingTopM, paddingTopL, paddingTopXL }) => {\n return responsiveNamedProperty({\n sizes: { paddingTopXS, paddingTopS, paddingTopM, paddingTopL, paddingTopXL },\n cssProperty: 'padding-top',\n })\n }}\n ${({ paddingRightXS, paddingRightS, paddingRightM, paddingRightL, paddingRightXL }) => {\n return responsiveNamedProperty({\n sizes: { paddingRightXS, paddingRightS, paddingRightM, paddingRightL, paddingRightXL },\n cssProperty: 'padding-right',\n })\n }}\n ${({ paddingBottomXS, paddingBottomS, paddingBottomM, paddingBottomL, paddingBottomXL }) => {\n return responsiveNamedProperty({\n sizes: { paddingBottomXS, paddingBottomS, paddingBottomM, paddingBottomL, paddingBottomXL },\n cssProperty: 'padding-bottom',\n })\n }}\n ${({ paddingLeftXS, paddingLeftS, paddingLeftM, paddingLeftL, paddingLeftXL }) => {\n return responsiveNamedProperty({\n sizes: { paddingLeftXS, paddingLeftS, paddingLeftM, paddingLeftL, paddingLeftXL },\n cssProperty: 'padding-left',\n })\n }}\n\n ${({ marginXS, marginS, marginM, marginL, marginXL }) => {\n return responsiveNamedProperty({ sizes: { marginXS, marginS, marginM, marginL, marginXL }, cssProperty: 'margin' })\n }}\n ${({ marginTopXS, marginTopS, marginTopM, marginTopL, marginTopXL }) => {\n return responsiveNamedProperty({\n sizes: { marginTopXS, marginTopS, marginTopM, marginTopL, marginTopXL },\n cssProperty: 'margin-top',\n })\n }}\n ${({ marginRightXS, marginRightS, marginRightM, marginRightL, marginRightXL }) => {\n return responsiveNamedProperty({\n sizes: { marginRightXS, marginRightS, marginRightM, marginRightL, marginRightXL },\n cssProperty: 'margin-right',\n })\n }}\n ${({ marginBottomXS, marginBottomS, marginBottomM, marginBottomL, marginBottomXL }) => {\n return responsiveNamedProperty({\n sizes: { marginBottomXS, marginBottomS, marginBottomM, marginBottomL, marginBottomXL },\n cssProperty: 'margin-bottom',\n })\n }}\n ${({ marginLeftXS, marginLeftS, marginLeftM, marginLeftL, marginLeftXL }) => {\n return responsiveNamedProperty({\n sizes: { marginLeftXS, marginLeftS, marginLeftM, marginLeftL, marginLeftXL },\n cssProperty: 'margin-left',\n })\n }}\n\n ${({ fontSizeXS, fontSizeS, fontSizeM, fontSizeL, fontSizeXL }) => {\n return responsiveNamedProperty({\n sizes: { fontSizeXS, fontSizeS, fontSizeM, fontSizeL, fontSizeXL },\n cssProperty: 'font-size',\n })\n }}\n\n ${({ heightXS, heightS, heightM, heightL, heightXL }) => {\n return responsiveNamedProperty({\n sizes: { heightXS, heightS, heightM, heightL, heightXL },\n cssProperty: 'height',\n })\n }}\n\n ${({ widthXS, widthS, widthM, widthL, widthXL, fluid, width }) => {\n return responsiveNamedProperty({\n sizes: { widthXS, widthS, widthM, widthL, widthXL },\n cssProperty: fluid && width !== 'auto' ? 'max-width' : 'width',\n customSizeHandler: getWidth,\n })\n }}\n\n ${(props) => (props.fluid ? property(props.fluid, fluidStyles) : null)}\n ${({ fluidXS, fluidS, fluidM, fluidL, fluidXL }) => {\n return responsiveNamedProperty({\n sizes: { fluidXS, fluidS, fluidM, fluidL, fluidXL },\n cssProperty: fluidStyles,\n })\n }}\n`\n\nexport const LoaderIcon = styled(LoaderFill)`\n transform-origin: center;\n animation: ${spinAnimation} 1600ms infinite linear;\n`\n","import { forwardRef } from 'react'\nimport { useTheme } from 'styled-components'\nimport { Link } from 'react-router-dom'\nimport { useClassname } from 'hooks/useClassname'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { Icon } from 'components/Icon'\nimport { Text } from 'components/Text'\nimport type { IconProps } from 'components/Icon'\nimport type { TextProps } from 'components/Text'\nimport { useComputedRel, useComputedLinkProps } from './hooks'\nimport { SIZES, SIZES_ROUND } from './constants'\nimport { SIZES_DEFAULT, SIZES_ROUND_DEFAULT, PROPS_BY_SIZE } from './default-constants'\nimport type { ButtonProps } from './types'\nimport * as Styled from './style'\n\nconst COMPONENT_NAME = 'Button'\n\n/**\n *\n * Component accepts all \\<button\\> attributes.\n *\n * Responsive \"size\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [ButtonProps](https://github.com/foxford/ui/blob/master/src/components/Button/types.ts)\n */\nconst Button: React.ForwardRefExoticComponent<ButtonProps> = withMergedProps<ButtonProps, HTMLButtonElement>(\n forwardRef((props, ref) => {\n let {\n size = 'm',\n inline = true,\n rounded = true,\n color = 'accent',\n fontColor = 'white',\n textProps = {},\n iconProps = {},\n as: _as,\n className,\n children,\n content,\n fontWeight,\n icon,\n innerRef,\n ...restProps\n } = props\n\n const theme = useTheme()\n\n if (restProps.preset === 'default' && typeof size === 'string' && !restProps.round) {\n const propsBySize = PROPS_BY_SIZE[size] ?? {}\n restProps = { ...propsBySize, ...restProps }\n }\n\n if (restProps.href) _as = 'a'\n if (restProps.to) _as = Link\n\n if (restProps.primary) color = 'primary'\n if (restProps.secondary) color = 'atlantis'\n\n const rootClassName = useClassname(COMPONENT_NAME, className)\n const textClassName = useClassname(COMPONENT_NAME)\n const rel = useComputedRel(theme, restProps)\n const linkProps = useComputedLinkProps(_as, restProps)\n\n let [before, after] = Array.isArray(icon) ? icon : [icon]\n\n if (restProps.success) {\n before = 'checkFill'\n after = null\n }\n\n if (restProps.preset === 'brand' && restProps.loading) {\n before = <Styled.LoaderIcon />\n after = null\n }\n\n const baseTextProps: TextProps = {\n as: 'span',\n size: 'inherit',\n color: 'inherit',\n weight: fontWeight ?? (restProps.preset === 'brand' ? 800 : 600),\n lineHeight: restProps.preset === 'brand' ? 1.2 : 1,\n marginLeft: before ? '0.25em' : undefined,\n marginRight: after ? '0.25em' : undefined,\n }\n\n const iconBaseProps: IconProps = { as: 'span', color: 'inherit' }\n\n return (\n <Styled.Root\n {...restProps}\n {...linkProps}\n size={size}\n inline={inline}\n color={color}\n fontColor={fontColor}\n rounded={rounded}\n rel={rel}\n as={_as}\n className={rootClassName}\n ref={ref ?? innerRef}\n >\n {typeof children === 'function' ? (\n children({\n baseTextProps,\n textProps,\n iconBaseProps,\n iconProps,\n icon: [before, after],\n })\n ) : (\n <>\n {before && (\n <Icon\n className='icon'\n name={typeof before === 'string' ? before : undefined}\n icon={typeof before !== 'string' ? before : undefined}\n {...iconBaseProps}\n {...iconProps}\n />\n )}\n {(children || content) && (\n <Text className={`${textClassName}__content`} {...baseTextProps} {...textProps}>\n {children || content}\n </Text>\n )}\n {after && (\n <Icon\n className='icon'\n name={typeof after === 'string' ? after : undefined}\n icon={typeof after !== 'string' ? after : undefined}\n {...iconBaseProps}\n {...iconProps}\n />\n )}\n </>\n )}\n </Styled.Root>\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: (props) => {\n let sizes = props.preset === 'brand' ? SIZES : SIZES_DEFAULT\n if (props.round) sizes = props.preset === 'brand' ? SIZES_ROUND : SIZES_ROUND_DEFAULT\n\n return sizes\n },\n }\n)\n\nexport { Button, COMPONENT_NAME }\n\nexport type { ButtonProps }\n","import { DefaultTheme } from 'styled-components'\nimport type { ButtonProps } from './types'\n\nexport function useComputedRel(theme: DefaultTheme, config: ButtonProps) {\n const relBuilder = theme.utils?.relBuilder\n\n let rel\n\n if (config.href) {\n rel = config.rel\n\n if (!rel && relBuilder && config.autoRel && (config.href || config.to)) {\n rel = relBuilder(config.href ?? config.to, config.target)\n }\n }\n\n return rel\n}\n\nexport function useComputedLinkProps(_as: ButtonProps['as'], config: ButtonProps) {\n let props = {}\n\n if (_as === undefined || config.disabled) return props\n\n if (_as === 'a') {\n props = { href: config.href || config.to, target: config.target }\n } else if (typeof _as !== 'string') {\n props = { to: config.to || config.href }\n }\n\n return props\n}\n","import styled, { css, DefaultTheme } from 'styled-components'\nimport { color, getColor } from 'mixins/color'\nimport { DefaultColorNames } from 'theme/colors'\nimport { ProgressSegmentedProps } from './Progress.Segmented'\n\nexport const Progress = styled.div<Pick<ProgressSegmentedProps, 'percent' | 'percentColor'>>`\n height: 100%;\n border-radius: 10px;\n width: ${(props) => `${props.percent || 0}%`};\n ${(props) =>\n props.percentColor ? color(props.percentColor, 'background') : color(DefaultColorNames.atlantis, 'background')};\n`\n\nexport const Separators = styled.div`\n position: absolute;\n top: 0;\n display: flex;\n justify-content: space-between;\n width: 100%;\n height: 4px;\n z-index: 3;\n`\n\nexport const Separator = styled.div<Pick<ProgressSegmentedProps, 'separatorColor'>>`\n width: 2px;\n height: 100%;\n &:first-child,\n &:last-child {\n width: 0;\n }\n ${(props) =>\n props.separatorColor ? color(props.separatorColor, 'background') : color(DefaultColorNames.white, 'background')}\n`\n\nconst haveCircle = (props: Pick<ProgressSegmentedProps, 'percentColor'> & { theme: DefaultTheme }) => css`\n margin-left: 8px;\n border-radius: 0 10px 10px 0;\n & ${Progress} {\n border-radius: 0 10px 10px 0;\n }\n & ${Separator} {\n &:first-child {\n position: relative;\n &:before {\n position: absolute;\n display: block;\n content: '';\n left: -8px;\n top: -2px;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: ${getColor(props.percentColor || DefaultColorNames.atlantis, props)};\n }\n }\n }\n`\n\nconst isDone = (props: Pick<ProgressSegmentedProps, 'percentColor'> & { theme: DefaultTheme }) => css`\n & ${Separator} {\n &:last-child {\n position: relative;\n &:before {\n position: absolute;\n top: -6px;\n right: -6px;\n display: block;\n content: '';\n background: ${getColor(props.percentColor || DefaultColorNames.atlantis, props)}\n url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5IiBoZWlnaHQ9IjciIHZpZXdCb3g9IjAgMCA5IDciPgogICAgPHBhdGggZmlsbD0iI0ZGRiIgZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNNi45MTQgMEw4IDEuMDQ1IDIuODQ4IDYgMCAzLjI2MWwxLjA4Ni0xLjA0NUwyLjg0OCAzLjkxeiIvPgo8L3N2Zz4K')\n center no-repeat;\n width: 16px;\n height: 16px;\n border-radius: 50%;\n }\n }\n }\n`\n\nconst isEmpty = css`\n & ${Separator} {\n &:first-child {\n &:before {\n background: rgba(0, 0, 0, 0.1);\n }\n }\n }\n`\n\nexport const Root = styled.div<Pick<ProgressSegmentedProps, 'percent' | 'haveCircle' | 'isActive' | 'percentColor'>>`\n position: relative;\n height: 4px;\n background: rgba(0, 0, 0, 0.1);\n border-radius: 10px;\n ${(props) => (props.haveCircle ? haveCircle(props) : null)}\n ${(props) => (props.percent === 100 ? isDone(props) : null)}\n ${(props) => (props.percent === 0 ? isEmpty : null)}\n`\n","import { ColorProperty } from 'mixins/color'\nimport { BaseProps } from 'shared/interfaces'\nimport * as Styled from './style'\n\nexport interface ProgressSegmentedProps\n extends BaseProps,\n ColorProperty<'separatorColor'>,\n ColorProperty<'percentColor'> {\n /**\n * Current percent complete\n */\n percent?: number\n /**\n * segments count\n */\n segments?: number\n /**\n * custom class\n */\n className?: string\n /**\n * circle in begin progress\n */\n haveCircle?: boolean\n /**\n * active state\n */\n isActive?: boolean\n}\n\nProgressSegmented.defaultProps = {\n percent: 0,\n percentColor: '#7fc92e',\n separatorColor: '#ffffff',\n segments: 9,\n haveCircle: true,\n}\n\nProgressSegmented.displayName = 'Progress.Segmented'\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`Color<'separatorColor'>`](#/Миксины)\n * - [`Color<'percentColor'>`](#/Миксины)\n */\nexport function ProgressSegmented(props: typeof ProgressSegmented.defaultProps & ProgressSegmentedProps) {\n const { percent, segments, className, style, percentColor, separatorColor, haveCircle, isActive } = props\n\n return (\n <Styled.Root\n className={className}\n style={style}\n percent={percent}\n haveCircle={haveCircle}\n percentColor={percentColor}\n isActive={isActive}\n >\n <Styled.Progress percent={percent} percentColor={percentColor} />\n <Styled.Separators>\n {Array.from(new Array(segments + 1).keys()).map((item, key) => (\n <Styled.Separator separatorColor={separatorColor} key={key} />\n ))}\n </Styled.Separators>\n </Styled.Root>\n )\n}\n","import styled from 'styled-components'\nimport { color, getColor } from 'mixins/color'\nimport { ProgressCircleProps } from './Progress.Circle'\n\nexport const Root = styled.div.withConfig({\n shouldForwardProp: (prop) => prop === 'children',\n})<Pick<ProgressCircleProps, 'size' | 'resultColor' | 'strokeBGColor' | 'status'>>`\n position: relative;\n width: ${(props) => (props.size ? `${props.size}px` : '84px')};\n height: ${(props) => (props.size ? `${props.size}px` : '84px')};\n flex-shrink: 0;\n svg {\n width: 100%;\n height: 100%;\n font-size: 0px;\n }\n .line {\n fill: none;\n display: block;\n ${(props) => (props.resultColor ? color(props.resultColor, 'stroke') : null)}\n }\n .bg {\n stroke: ${(props) => (props.strokeBGColor ? getColor(props.strokeBGColor, props) : `rgba(0, 0, 0, 0.12)`)};\n fill: rgba(255, 255, 255, 0);\n &.fail {\n stroke: #f1512c;\n }\n &.success {\n stroke: #7bb909;\n }\n &.started {\n stroke: #459ff3;\n }\n }\n`\n\nexport const Content = styled.div`\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n img {\n border-radius: 50%;\n }\n`\n","/* eslint-disable no-use-before-define */\nimport { PureComponent } from 'react'\nimport { ColorProperty } from 'mixins/color'\nimport { BaseProps } from 'shared/interfaces'\nimport * as Styled from './style'\n\nfunction polarToCartesian(centerX: number, centerY: number, radius: number, angleInDegrees: number) {\n const angleInRadians = ((angleInDegrees - 90) * Math.PI) / 180.0\n\n return {\n x: centerX + radius * Math.cos(angleInRadians),\n y: centerY + radius * Math.sin(angleInRadians),\n }\n}\n\nfunction describeArc(x: number, y: number, radius: number, startAngle: number, endAngle: number, reverse = false) {\n const start = polarToCartesian(x, y, radius, endAngle)\n const end = polarToCartesian(x, y, radius, startAngle)\n\n const diff = endAngle - startAngle\n const angleDiff = diff < 0 ? -diff : diff\n\n const sweep = angleDiff <= 180 ? '1' : '0'\n const arcSweep = reverse ? +!+sweep : sweep\n\n return ['M', start.x, start.y, 'A', radius, radius, 0, arcSweep, 0, end.x, end.y].join(' ')\n}\n\nexport interface ProgressCircleProps extends BaseProps, ColorProperty<'resultColor'>, ColorProperty<'strokeBGColor'> {\n /**\n * status ['fail', 'success', 'started']\n */\n status?: 'fail' | 'success' | 'started'\n /**\n * progress percent\n */\n progress?: number\n /**\n * width and height\n */\n size?: number\n /**\n * React children\n */\n children?: React.ReactNode\n /**\n * width progress line\n */\n strokeLineWidth?: number\n /**\n * width background line\n */\n strokeBGWidth?: number\n /**\n * start angle of progress\n */\n progressStartAngle?: number\n /**\n * @ignore @deprecated Use children\n */\n content?: string | number\n}\n\ninterface ProgressCircleState {\n bgAngleDiff: number\n describeArcProgress: string | null\n describeArcBg: string | null\n}\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`Color<'resultColor'>`](#/Миксины)\n * - [`Color<'strokeBGColor'>`](#/Миксины)\n */\nexport class ProgressCircle extends PureComponent<\n typeof ProgressCircle.defaultProps & ProgressCircleProps,\n ProgressCircleState\n> {\n static displayName = 'Progress.Circle'\n static defaultProps = {\n size: 84,\n progress: 0,\n strokeLineWidth: 2,\n strokeBGWidth: 2,\n resultColor: 'accent',\n progressStartAngle: 180,\n }\n\n constructor(props: typeof ProgressCircle.defaultProps & ProgressCircleProps) {\n super(props)\n this.state = {\n bgAngleDiff: 0,\n describeArcProgress: null,\n describeArcBg: null,\n }\n }\n\n componentDidMount() {\n this.renderSvg()\n }\n\n componentDidUpdate(prevProps: ProgressCircleProps) {\n const { progress, size } = this.props\n const { progress: prevProgress, size: prevSize } = prevProps\n\n if (progress !== prevProgress || size !== prevSize) {\n this.renderSvg()\n }\n }\n\n renderSvg = () => {\n const { size, progress, strokeLineWidth, strokeBGWidth, progressStartAngle } = this.props\n\n const thickness = strokeLineWidth > strokeBGWidth ? strokeLineWidth : strokeBGWidth\n\n const center = size / 2 + thickness / 2\n const progressGap = 0.5\n const progressEndAngle = progressStartAngle - progressGap + (+progress / 100) * 360\n const bgStartAngle = progressStartAngle\n const bgEndAngle = bgStartAngle - progressGap\n\n const centerX = center - thickness / 2\n const centerY = center - thickness / 2\n const radius = center - thickness\n const diff = bgStartAngle - bgEndAngle\n\n const describeArcProgress = describeArc(centerX, centerY, radius, progressStartAngle, progressEndAngle, true)\n\n const describeArcBg = describeArc(centerX, centerY, radius, bgStartAngle, bgEndAngle)\n\n const bgAngleDiff = diff < 0 ? -diff : diff\n\n this.setState({\n describeArcProgress,\n describeArcBg,\n bgAngleDiff,\n })\n }\n\n render() {\n const {\n size,\n children,\n content,\n strokeLineWidth,\n strokeBGWidth,\n resultColor,\n strokeBGColor,\n status,\n progress,\n className,\n style,\n } = this.props\n\n const { bgAngleDiff, describeArcProgress, describeArcBg } = this.state\n\n return (\n <Styled.Root\n className={className}\n style={style}\n size={size}\n strokeBGColor={strokeBGColor}\n resultColor={resultColor}\n status={status}\n >\n <svg width={size} height={size} viewBox={`0 0 ${size} ${size}`}>\n <g className={'pathBox'}>\n <path\n className='bg'\n d={bgAngleDiff < 360 && describeArcBg ? describeArcBg : ''}\n fill='none'\n strokeWidth={strokeBGWidth}\n strokeLinecap='round'\n />\n <path\n className='line'\n d={Boolean(+progress) && describeArcProgress ? describeArcProgress : ''}\n strokeWidth={strokeLineWidth}\n strokeLinecap='round'\n />\n </g>\n </svg>\n {(children || content) && <Styled.Content>{children || content}</Styled.Content>}\n </Styled.Root>\n )\n }\n}\n","import styled, { css, keyframes } from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport { color } from 'mixins/color'\nimport { ProgressProps } from './Progress'\n\nconst move = keyframes`\n 0% {\n background-position: 0 0;\n }\n 100% {\n background-position: 50px 50px;\n }\n`\n\nconst bgColor = (color: string) => css`\n background-color: ${tinycolor(color).setAlpha(0.6).toString()};\n`\n\nconst isLoading = css`\n background-image: linear-gradient(\n -45deg,\n rgba(255, 255, 255, 0.4) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.4) 50%,\n rgba(255, 255, 255, 0.4) 75%,\n transparent 75%,\n transparent\n );\n background-size: 25px 25px;\n animation: ${move} 2s linear infinite;\n`\n\nexport const Root = styled.div<Pick<ProgressProps, 'backgroundColor' | 'color'>>`\n display: block;\n height: 4px;\n border-radius: 40px;\n overflow: hidden;\n ${(props) => (props.backgroundColor ? color(props.backgroundColor, bgColor) : null)}\n ${(props) => (props.color ? color(props.color) : null)}\n`\n\nexport const Bar = styled.div.withConfig<{ width: number; isLoading: boolean }>({\n shouldForwardProp: () => false,\n})`\n width: 0;\n transition: width 1s ease-in-out;\n height: 100%;\n border-radius: inherit;\n color: inherit;\n background-color: currentColor;\n ${(props) => (props.isLoading ? isLoading : null)}\n ${(props) =>\n props.width\n ? css`\n width: ${props.width}%;\n `\n : css`\n width: 0%;\n `}\n`\n","import { ColorProperty } from 'mixins/color'\nimport { BaseProps } from 'shared/interfaces'\nimport { ProgressSegmented } from 'components/Progress.Segmented'\nimport { ProgressCircle } from 'components/Progress.Circle'\nimport * as Styled from './style'\n\nexport interface ProgressProps extends BaseProps, ColorProperty, ColorProperty<'backgroundColor'> {\n /**\n * Current percent complete\n */\n percent?: number\n isLoading?: boolean\n}\n\nProgress.defaultProps = {\n percent: 0,\n color: 'green',\n backgroundColor: 'alto',\n isLoading: false,\n}\n\nProgress.Circle = ProgressCircle\nProgress.Segmented = ProgressSegmented\nProgress.displayName = 'Progress'\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`Color`](#/Миксины)\n * - [`Color<'backgroundColor'>`](#/Миксины)\n */\nexport function Progress(props: ProgressProps) {\n const { className, isLoading, backgroundColor, color, percent } = props\n\n let _percent: number = typeof percent === 'string' ? parseInt(percent, 10) : percent || 0\n\n if (_percent > 100) _percent = 100\n if (_percent < 0) _percent = 0\n\n return (\n <Styled.Root className={className} backgroundColor={backgroundColor} color={color}>\n <Styled.Bar width={_percent} isLoading={Boolean(isLoading)} />\n </Styled.Root>\n )\n}\n","import styled from 'styled-components'\nimport type { DefaultTheme } from 'styled-components'\nimport { focus } from 'mixins/focus'\n\nimport { responsiveProperty } from 'mixins/responsive-property'\n\nimport { Button } from '../Button'\nimport { Text } from '../Text'\n\nimport { CountdownCircle } from './CountdownCircle'\n\nimport type {\n ActionsProps,\n AlertType,\n CancelTimerProps,\n CloseIconProps,\n ContentProps,\n ContentWrapperProps,\n CountdownCircleProps,\n IconWrapperProps,\n LinkProps,\n RootAlertProps,\n TitleProps,\n} from './types'\n\nconst bgColor = (theme: DefaultTheme, clear: boolean, type?: AlertType) => {\n if (clear) {\n return theme.colors['bg-onmain-primary']\n }\n\n switch (type) {\n case 'error':\n return theme.colors['alert-bg-error-200']\n case 'info':\n return theme.colors['bg-brand-primary-200']\n case 'success':\n return theme.colors['alert-bg-success-200']\n case 'warning':\n return theme.colors['alert-bg-warning-200']\n default:\n return theme.colors['bg-oncolor-primary']\n }\n}\n\nconst getPaddingY = ({\n column,\n isCompact,\n withImage,\n withTimer,\n}: Pick<RootAlertProps, 'column' | 'isCompact' | 'withImage' | 'withTimer'>) => {\n if (column) return '16px'\n\n if (isCompact) {\n return withTimer ? '5px' : '12px'\n }\n\n return withImage ? '8px' : withTimer ? '2px' : '12px'\n}\n\nconst paddingLeft = ({\n isCompact,\n noIcon,\n size,\n withAction,\n withImage,\n withTitle,\n}: Pick<RootAlertProps, 'isCompact' | 'noIcon' | 'size' | 'withAction' | 'withImage' | 'withTitle'>) => {\n if (isCompact) {\n if (withTitle || size === 'l') {\n return withImage || !noIcon ? '16px' : '20px'\n }\n\n return withImage ? '12px' : withAction && noIcon ? '20px' : '16px'\n }\n\n if (withTitle || size === 'l') {\n return withImage || !noIcon ? '16px' : '24px'\n }\n\n return withImage ? '16px' : '20px'\n}\n\nconst paddingRight = ({\n isCompact,\n withCloseIcon,\n withTimer,\n}: Pick<RootAlertProps, 'isCompact' | 'withCloseIcon' | 'withTimer'>) => {\n if (withCloseIcon) {\n return isCompact ? '12px' : '16px'\n }\n\n return withTimer ? '8px' : '20px'\n}\n\nconst getMarginRightIconWrapper = ({\n column,\n isCompact,\n withImage,\n}: {\n column: boolean\n isCompact?: boolean\n withImage: boolean\n}) => {\n if (isCompact) return '8px'\n\n return column ? (withImage ? '8px' : '12px') : '8px'\n}\n\nconst getImageSize = ({ column, isCompact }: { column: boolean; isCompact?: boolean }) => {\n if (isCompact) return '20px'\n\n return column ? '28px' : '32px'\n}\n\nconst getActionsMarginTop = ({\n column,\n isCompact,\n withTitle,\n}: {\n column: boolean\n isCompact?: boolean\n withTitle: boolean\n}) => {\n if (column) {\n return isCompact ? (withTitle ? '16px' : '8px') : '16px'\n }\n\n return 0\n}\n\nexport const Root = styled.div.withConfig<RootAlertProps>({\n shouldForwardProp: (prop) => ['children', 'className', 'onMouseEnter', 'onMouseLeave', 'style'].includes(prop),\n})`\n ${(props) => `\n display: flex;\n align-items: ${props.column || (props.isCompact ? !props.withTimer : props.textWrap) ? 'flex-start' : 'center'};\n justify-content: ${props.withTimer ? 'space-between' : 'flex-start'};\n padding-top: ${getPaddingY(props)};\n padding-right: ${paddingRight(props)};\n padding-bottom: ${getPaddingY(props)};\n padding-left: ${paddingLeft(props)};\n height: ${props.isCompact || props.column || props.textWrap ? 'auto' : '48px'};\n min-width: ${props.isCompact ? '304px' : 'auto'};\n max-width: ${props.isCompact ? '351px' : '100%'};\n border-radius: ${props.column ? (props.isCompact ? '20px' : '12px') : '30px'};\n background-color: ${bgColor(props.theme, !!props.clear, props.type)};\n box-shadow: ${props.clear ? '0 6px 20px 0 rgba(0, 0, 0, 0.1)' : 'none'};\n box-sizing: border-box;\n `}\n ${responsiveProperty('width', 'width')}\n`\n\nexport const IconWrapper = styled.div<IconWrapperProps>`\n ${(props) => `\n display: flex;\n margin-right: ${getMarginRightIconWrapper(props)};\n `}\n\n ${(props) =>\n props.withImage\n ? `\n img,\n svg {\n height: ${getImageSize(props)};\n width: ${getImageSize(props)};\n }\n `\n : null};\n`\n\nexport const ContentWrapper = styled.div<ContentWrapperProps>`\n ${(props) => `\n display: flex;\n margin-right: auto;\n flex-direction: ${props.column ? 'column' : 'row'};\n align-items: ${props.column ? 'flex-start' : 'center'};\n align-self: center;\n max-width: ${props.column ? '260px' : 'initial'};\n white-space: ${props.column || props.isCompact ? 'normal' : 'nowrap'};\n overflow: hidden;\n `}\n`\n\nexport const Title = styled(Text)<TitleProps>`\n ${(props) => `\n display: inline-block;\n margin-top: ${props.isCompact ? '0' : '2px'};\n margin-bottom: 8px;\n max-width: 100%;\n vertical-align: middle;\n white-space: nowrap;\n text-overflow: ellipsis;\n font-weight: 700;\n overflow: hidden;\n `}\n`\n\nexport const Content = styled(Text)<ContentProps>`\n ${(props) => `\n text-overflow: ${props.column || props.isCompact ? 'clip' : 'ellipsis'};\n white-space: ${props.column || props.isCompact || props.textWrap ? 'pre-wrap' : 'inherit'};\n overflow: hidden;\n `}\n`\n\nexport const Link = styled.div<LinkProps>`\n ${(props) => `\n display: flex;\n margin-top: ${props.column ? (props.isCompact && !props.withTitle ? '4px' : '12px') : 0};\n margin-left: ${props.column ? 0 : '60px'};\n color: ${props.clear ? props.theme.colors['content-link'] : props.theme.colors['content-onmain-primary']};\n `}\n`\n\nexport const Actions = styled.div<ActionsProps>`\n ${(props) => `\n margin-top: ${getActionsMarginTop(props)};\n margin-left: ${props.column ? 0 : '60px'};\n `}\n`\n\nexport const CloseIcon = styled.button<CloseIconProps>`\n ${(props) => `\n appearance: none;\n display: flex;\n margin-left: ${props.withTimer ? '0' : '16px'};\n border-radius: 0;\n background: none;\n box-shadow: none;\n padding: 0;\n border: none;\n cursor: pointer;\n border-radius: 50%;\n `}\n ${focus}\n`\n\nexport const CancelTimer = styled(Button)<CancelTimerProps>`\n ${(props) => `\n margin-left: ${props.isCompact ? '28px' : '60px'};\n padding-right: ${props.isCompact ? '16px' : '28px'};\n padding-left: ${props.isCompact ? '16px' : '28px'};\n `}\n`\n\nexport const Timer = styled(CountdownCircle)<CountdownCircleProps>`\n ${(props) => `\n line-height: ${props.isCompact ? '12px' : '18px'};\n font-weight: ${props.isCompact ? '700' : '400'};\n font-size: ${props.isCompact ? '11px' : '14px'};\n color: ${props.color};\n\n svg {\n transform: rotateY(180deg);\n }\n `}\n`\n","import { useEffect, useRef, useState } from 'react'\n\nimport { DefaultColorNames } from 'theme/colors'\nimport { Progress } from '../Progress'\n\nimport type { CountdownCircleProps } from './types'\n\nconst progressRate = 0.05\n\nconst CountdownCircle = ({ className, color, isCompact, paused, timer }: CountdownCircleProps) => {\n const [countdown, setCountdown] = useState(timer)\n const intervalId = useRef<ReturnType<typeof setInterval>>()\n\n useEffect(() => {\n return () => {\n if (intervalId.current) {\n clearInterval(intervalId.current)\n }\n }\n }, [])\n\n useEffect(() => {\n if (paused) {\n clearInterval(intervalId.current)\n } else {\n intervalId.current = setInterval(() => {\n setCountdown((prevCountdown) => {\n if (prevCountdown <= progressRate) {\n clearInterval(intervalId.current)\n return prevCountdown\n }\n\n return prevCountdown - progressRate\n })\n }, progressRate * 1000)\n }\n }, [paused])\n\n const progress = (countdown / timer) * 100\n\n return (\n <Progress.Circle\n className={className}\n progress={progress}\n progressStartAngle={0}\n resultColor={color}\n size={isCompact ? 16 : 20}\n strokeBGColor={DefaultColorNames.transparent}\n strokeLineWidth={1.5}\n >\n {Math.ceil(countdown)}\n </Progress.Circle>\n )\n}\n\nexport { CountdownCircle }\n","import type { DefaultTheme } from 'styled-components'\n\nimport type { CSSColor } from 'shared/types'\n\nimport type { AlertProps } from './types'\n\nexport const countdownColor = ({ theme, type }: Pick<AlertProps, 'type'> & { theme: DefaultTheme }): CSSColor => {\n switch (type) {\n case 'error':\n return theme.colors['alert-bg-error-500']\n case 'info':\n return theme.colors['content-brand-primary']\n case 'success':\n return theme.colors['alert-success']\n case 'warning':\n return theme.colors['alert-warning']\n default:\n return theme.colors['content-brand-primary']\n }\n}\n","import { forwardRef, useState } from 'react'\nimport { useTheme } from 'styled-components'\nimport { CheckCircleFill, Close, CloseCirlceFill, NotifFill, WarningTriangleFill } from '@foxford/icon-pack'\nimport type { DefaultTheme } from 'styled-components'\n\nimport { useClassname } from 'hooks/useClassname'\nimport { useConfigPriority } from 'hooks/use-config-priority'\n\nimport { Anchor } from '../Anchor'\nimport { Button } from '../Button'\nimport { Icon } from '../Icon'\n\nimport * as Styled from './style'\n\nimport type { AlertProps } from './types'\nimport { countdownColor } from './utils'\n\nconst getDefaultIcon = ({\n isCompact,\n theme,\n type,\n}: Pick<AlertProps, 'isCompact' | 'type'> & { theme: DefaultTheme }) => {\n const size = isCompact ? 16 : 24\n\n switch (type) {\n case 'error':\n return <CloseCirlceFill color={theme.colors['alert-bg-error-500']} size={size} />\n case 'info':\n return <NotifFill color={theme.colors['content-brand-primary']} size={size} />\n case 'success':\n return <CheckCircleFill color={theme.colors['alert-success']} size={size} />\n case 'warning':\n return <WarningTriangleFill color={theme.colors['alert-warning']} size={size} />\n default:\n return null\n }\n}\n\nconst COMPONENT_NAME = 'Alert'\n\nconst Alert = forwardRef<HTMLDivElement, AlertProps>((props, ref) => {\n const theme = useTheme()\n\n const {\n cancelTimerText = 'Отменить',\n primaryAction,\n primaryActionProps = {},\n secondaryAction,\n secondaryActionProps = {},\n children,\n className,\n clear,\n customIcon,\n image,\n isCompact,\n link,\n linkProps = {},\n noIcon,\n onClickCancelTimer,\n closeToast,\n size = 's',\n style,\n textProps = {},\n textWrap,\n timer,\n title,\n titleProps = {},\n type,\n width = ['fit-content', 'fit-content', 'fit-content', '351px', '304px', '304px'],\n } = useConfigPriority<AlertProps>(theme.components?.Alert, props)\n const _className = useClassname(COMPONENT_NAME, className)\n const [timerOnPause, setTimerOnPause] = useState(false)\n\n const column = Boolean(size === 'l' || !!title || (isCompact && (title || link || primaryAction || secondaryAction)))\n\n const handleMouseEnter = () => {\n if (timer) {\n setTimerOnPause(true)\n }\n }\n\n const handleMouseLeave = () => {\n if (timer) {\n setTimerOnPause(false)\n }\n }\n\n return (\n <Styled.Root\n className={_className}\n clear={clear}\n column={column}\n isCompact={isCompact}\n noIcon={noIcon}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n ref={ref}\n size={size}\n style={style}\n textWrap={textWrap}\n type={type}\n width={width}\n withAction={!!primaryAction || !!secondaryAction}\n withCloseIcon={!!closeToast}\n withImage={!!image}\n withLink={!!link}\n withTimer={!!timer}\n withTitle={!!title}\n >\n {(!noIcon || customIcon) && (\n <Styled.IconWrapper column={column} isCompact={isCompact} withImage={!!image}>\n {!noIcon && !timer && !customIcon && !image && getDefaultIcon({ isCompact, theme, type })}\n {customIcon && <Icon name={customIcon} size={isCompact ? 16 : 24} />}\n {image}\n {timer && (\n <Styled.Timer\n isCompact={isCompact}\n paused={timerOnPause}\n timer={timer}\n color={countdownColor({ theme, type })}\n />\n )}\n </Styled.IconWrapper>\n )}\n\n <Styled.ContentWrapper column={column} isCompact={isCompact}>\n {title && (\n <Styled.Title\n color={theme.colors['content-onmain-primary']}\n isCompact={isCompact}\n size={isCompact ? 14 : 16}\n lineHeight='m'\n {...titleProps}\n >\n {title}\n </Styled.Title>\n )}\n\n <Styled.Content\n appearance='body'\n color={theme.colors['content-onmain-primary']}\n column={column}\n isCompact={isCompact}\n size={isCompact ? 'xs' : 's'}\n textWrap={textWrap}\n {...textProps}\n >\n {children}\n </Styled.Content>\n\n {link && (\n <Styled.Link clear={clear} column={column} isCompact={isCompact} withTitle={!!title}>\n <Anchor\n color={props.clear ? theme.colors['content-link'] : theme.colors['content-onmain-primary']}\n onClick={link.onClick}\n preset='default'\n pseudo\n size={isCompact ? 's' : 'm'}\n {...linkProps}\n >\n {link.content}\n </Anchor>\n </Styled.Link>\n )}\n\n {(primaryAction || secondaryAction) && (\n <Styled.Actions column={column} isCompact={isCompact} withTitle={!!title}>\n {secondaryAction && (\n <Button\n black\n fontWeight='normal'\n onClick={secondaryAction.onClick}\n outline\n preset='brand'\n size={isCompact ? 'xs' : 's'}\n margin={4}\n {...secondaryActionProps}\n >\n {secondaryAction.content}\n </Button>\n )}\n\n {primaryAction && (\n <Button\n black\n fontWeight='normal'\n onClick={primaryAction.onClick}\n preset='brand'\n size={isCompact ? 'xs' : 's'}\n margin={4}\n {...primaryActionProps}\n >\n {primaryAction.content}\n </Button>\n )}\n </Styled.Actions>\n )}\n </Styled.ContentWrapper>\n\n {onClickCancelTimer && (\n <Styled.CancelTimer\n black\n clear\n fontWeight='normal'\n isCompact={isCompact}\n onClick={onClickCancelTimer}\n preset='brand'\n size={isCompact ? 'xs' : 's'}\n margin={4}\n >\n {cancelTimerText}\n </Styled.CancelTimer>\n )}\n\n {closeToast && (isCompact ? !timer : true) && (\n <Styled.CloseIcon aria-label='close' onClick={closeToast} type='button' withTimer={!!timer}>\n <Close color={theme.colors['content-onmain-primary']} size={isCompact ? 18 : 24} />\n </Styled.CloseIcon>\n )}\n </Styled.Root>\n )\n})\n\nAlert.displayName = COMPONENT_NAME\n\nexport { Alert, COMPONENT_NAME }\n\nexport type { AlertProps }\n","/* eslint-disable no-unused-vars */\nexport enum CurrencyCodes {\n ALL = 'ALL',\n AFN = 'AFN',\n ARS = 'ARS',\n AWG = 'AWG',\n AUD = 'AUD',\n AZN = 'AZN',\n BSD = 'BSD',\n BBD = 'BBD',\n BYR = 'BYR',\n BZD = 'BZD',\n BMD = 'BMD',\n BOB = 'BOB',\n BAM = 'BAM',\n BWP = 'BWP',\n BGN = 'BGN',\n BRL = 'BRL',\n BND = 'BND',\n KHR = 'KHR',\n CAD = 'CAD',\n KYD = 'KYD',\n CLP = 'CLP',\n CNY = 'CNY',\n COP = 'COP',\n CRC = 'CRC',\n HRK = 'HRK',\n CUP = 'CUP',\n CZK = 'CZK',\n DKK = 'DKK',\n DOP = 'DOP',\n XCD = 'XCD',\n EGP = 'EGP',\n SVC = 'SVC',\n EEK = 'EEK',\n EUR = 'EUR',\n FKP = 'FKP',\n FJD = 'FJD',\n FRF = 'FRF',\n GHC = 'GHC',\n GIP = 'GIP',\n GTQ = 'GTQ',\n GGP = 'GGP',\n GYD = 'GYD',\n HNL = 'HNL',\n HKD = 'HKD',\n HUF = 'HUF',\n ISK = 'ISK',\n INR = 'INR',\n IDR = 'IDR',\n IRR = 'IRR',\n IMP = 'IMP',\n ILS = 'ILS',\n JMD = 'JMD',\n JPY = 'JPY',\n JEP = 'JEP',\n KZT = 'KZT',\n KGS = 'KGS',\n LAK = 'LAK',\n LVL = 'LVL',\n LBP = 'LBP',\n LRD = 'LRD',\n LTL = 'LTL',\n MKD = 'MKD',\n MYR = 'MYR',\n MUR = 'MUR',\n MXN = 'MXN',\n MNT = 'MNT',\n MZN = 'MZN',\n NAD = 'NAD',\n NPR = 'NPR',\n ANG = 'ANG',\n NZD = 'NZD',\n NIO = 'NIO',\n NGN = 'NGN',\n KPW = 'KPW',\n NOK = 'NOK',\n OMR = 'OMR',\n PKR = 'PKR',\n PAB = 'PAB',\n PYG = 'PYG',\n PEN = 'PEN',\n PHP = 'PHP',\n PLN = 'PLN',\n QAR = 'QAR',\n RON = 'RON',\n RUR = 'RUR',\n RUB = 'RUB',\n SHP = 'SHP',\n SAR = 'SAR',\n RSD = 'RSD',\n SCR = 'SCR',\n SGD = 'SGD',\n SBD = 'SBD',\n SOS = 'SOS',\n ZAR = 'ZAR',\n KRW = 'KRW',\n LKR = 'LKR',\n SEK = 'SEK',\n CHF = 'CHF',\n SRD = 'SRD',\n SYP = 'SYP',\n TWD = 'TWD',\n THB = 'THB',\n TTD = 'TTD',\n TRY = 'TRY',\n TRL = 'TRL',\n TVD = 'TVD',\n UAH = 'UAH',\n GBP = 'GBP',\n USD = 'USD',\n UYU = 'UYU',\n UZS = 'UZS',\n VEF = 'VEF',\n VND = 'VND',\n YER = 'YER',\n ZWD = 'ZWD',\n}\n\nexport const CURRENCY_MAP: Readonly<Record<CurrencyCodes, string>> = Object.freeze({\n ALL: '\\u004C\\u0065\\u006b',\n AFN: '\\u060B',\n ARS: '\\u0024',\n AWG: '\\u0192',\n AUD: '\\u0024',\n AZN: '\\u20BC',\n BSD: '\\u0024',\n BBD: '\\u0024',\n BYR: '\\u0042\\u0072',\n BZD: '\\u0042\\u005a\\u0024',\n BMD: '\\u0024',\n BOB: '\\u0024\\u0062',\n BAM: '\\u004B\\u004d',\n BWP: '\\u0050',\n BGN: '\\u043B\\u0432',\n BRL: '\\u0052\\u0024',\n BND: '\\u0024',\n KHR: '\\u17DB',\n CAD: '\\u0043\\u0024',\n KYD: '\\u0024',\n CLP: '\\u0024',\n CNY: '\\u00A5',\n COP: '\\u0024',\n CRC: '\\u20A1',\n HRK: '\\u006B\\u006e',\n CUP: '\\u20B1',\n CZK: '\\u004B\\u010d',\n DKK: '\\u006B\\u0072',\n DOP: '\\u0052\\u0044\\u0024',\n XCD: '\\u0024',\n EGP: '\\u00A3',\n SVC: '\\u0024',\n EEK: '\\u006B\\u0072',\n EUR: '\\u20AC',\n FKP: '\\u00A3',\n FJD: '\\u0024',\n FRF: '\\u20A3',\n GHC: '\\u00A2',\n GIP: '\\u00A3',\n GTQ: '\\u0051',\n GGP: '\\u00A3',\n GYD: '\\u0024',\n HNL: '\\u004C',\n HKD: '\\u0024',\n HUF: '\\u0046\\u0074',\n ISK: '\\u006B\\u0072',\n INR: '\\u20A8',\n IDR: '\\u0052\\u0070',\n IRR: '\\uFDFC',\n IMP: '\\u00A3',\n ILS: '\\u20AA',\n JMD: '\\u004A\\u0024',\n JPY: '\\u00A5',\n JEP: '\\u00A3',\n KZT: '\\u20B8',\n KGS: '\\u004B\\u0047\\u0053',\n LAK: '\\u20AD',\n LVL: '\\u004C\\u0073',\n LBP: '\\u00A3',\n LRD: '\\u0024',\n LTL: '\\u004C\\u0074',\n MKD: '\\u0434\\u0435\\u043d',\n MYR: '\\u0052\\u004d',\n MUR: '\\u20A8',\n MXN: '\\u0024',\n MNT: '\\u20AE',\n MZN: '\\u004D\\u0054',\n NAD: '\\u0024',\n NPR: '\\u20A8',\n ANG: '\\u0192',\n NZD: '\\u0024',\n NIO: '\\u0043\\u0024',\n NGN: '\\u20A6',\n KPW: '\\u20A9',\n NOK: '\\u006B\\u0072',\n OMR: '\\uFDFC',\n PKR: '\\u20A8',\n PAB: '\\u0042\\u002f\\u002e',\n PYG: '\\u0047\\u0073',\n PEN: '\\u0053\\u002f\\u002e',\n PHP: '\\u20B1',\n PLN: '\\u007A\\u0142',\n QAR: '\\uFDFC',\n RON: '\\u006C\\u0065\\u0069',\n RUR: '\\u20BD',\n RUB: '\\u20BD',\n SHP: '\\u00A3',\n SAR: '\\uFDFC',\n RSD: '\\u0414\\u0438\\u043d\\u002e',\n SCR: '\\u20A8',\n SGD: '\\u0024',\n SBD: '\\u0024',\n SOS: '\\u0053',\n ZAR: '\\u0052',\n KRW: '\\u20A9',\n LKR: '\\u20A8',\n SEK: '\\u006B\\u0072',\n CHF: '\\u0043\\u0048\\u0046',\n SRD: '\\u0024',\n SYP: '\\u00A3',\n TWD: '\\u004E\\u0054\\u0024',\n THB: '\\u0E3F',\n TTD: '\\u0054\\u0054\\u0024',\n TRY: '\\u20A4',\n TRL: '\\u20A4',\n TVD: '\\u0024',\n UAH: '\\u20B4',\n GBP: '\\u00A3',\n USD: '\\u0024',\n UYU: '\\u0024\\u0055',\n UZS: '\\u043B\\u0432',\n VEF: '\\u0042\\u0073',\n VND: '\\u20AB',\n YER: '\\uFDFC',\n ZWD: '\\u005A\\u0024',\n})\n","import styled, { css } from 'styled-components'\nimport { AmountProps } from './Amount'\n\nconst crossedOut = css`\n text-decoration: line-through;\n`\n\nexport const Root = styled.span.withConfig<AmountProps>({\n shouldForwardProp: (prop) => ['children', 'className', 'style'].includes(prop),\n})`\n color: inherit;\n white-space: nowrap;\n ${(props) => (props.crossedOut ? crossedOut : null)}\n`\n","import { PureComponent } from 'react'\nimport cx from 'clsx'\nimport { Text } from 'components/Text'\nimport type { TextProps } from 'components/Text'\nimport { CurrencyCodes, CURRENCY_MAP } from './data'\nimport * as Styled from './style'\n\nexport interface AmountProps extends TextProps {\n /**\n * Value for amount\n */\n value?: number\n /**\n * Digits after point\n */\n digitsAfterPoint?: number\n /**\n * Show zero minor part\n */\n showZeroMinorPart?: boolean\n /**\n * Separator of major and minor part of amount\n */\n separator?: string\n /**\n * International code of currency.\n */\n currency?: keyof typeof CurrencyCodes | string\n /**\n * Use Header component for display amount\n */\n isHeader?: boolean\n /**\n * Amount is not valid and will be crossed out with ```text-decoration: line-through```\n */\n crossedOut?: boolean\n /**\n * If need only currency symbol\n */\n onlyCurrency?: boolean\n}\n\nconst AMOUNT_MAJOR_PART_SIZE = 3\nconst ZERO_MINOR_PART_REGEXP = /^0+$/\nconst MINUS_SIGN_HTML_CODE = '\\u2212'\n\nfunction createSplitter(partSize: number): (_s: string) => string[] {\n const parts = (str: string): string[] => {\n const { length } = str\n\n if (length <= partSize) {\n return [str]\n }\n\n const from = length - partSize\n const to = length\n\n return [str.slice(from, to)].concat(parts(str.slice(0, from)))\n }\n\n return parts\n}\n\nfunction formatAmount(\n value: AmountProps['value'] = 0,\n digitsAfterPoint: AmountProps['digitsAfterPoint'],\n currencyCode: AmountProps['currency']\n) {\n const isNegative = value < 0\n\n const valueAbs = Math.abs(value)\n const valueAbsStr = valueAbs.toFixed(digitsAfterPoint)\n\n const numberParts = valueAbsStr.split('.')\n const majorPart = numberParts[0]\n const minorPart = numberParts[1]\n\n const amountSplitter = createSplitter(AMOUNT_MAJOR_PART_SIZE)\n\n const majorPartFormatted = amountSplitter(majorPart).reverse().join(' ')\n\n const formattedValueStr = majorPartFormatted + (minorPart ? `,${minorPart}` : '')\n\n return {\n majorPart: majorPartFormatted,\n minorPart,\n value: formattedValueStr,\n isNegative,\n currencySymbol: currencyCode ? Amount.getCurrencySymbol(currencyCode) : '',\n }\n}\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`Color`](#/Миксины)\n * - [`ResponsiveNamedProperty<'size'>`](#/Миксины)\n */\nexport class Amount extends PureComponent<AmountProps> {\n static displayName = 'Amount'\n static defaultProps = {\n isHeader: false,\n showZeroMinorPart: false,\n crossedOut: false,\n digitsAfterPoint: 2,\n separator: ',',\n onlyCurrency: false,\n }\n\n static getCurrencySymbol(currencyCode: keyof typeof CurrencyCodes | string) {\n return CURRENCY_MAP[currencyCode] || currencyCode\n }\n\n renderMinorPart(minorPart: string) {\n const { showZeroMinorPart, separator } = this.props\n\n let needMinorPart = false\n\n if (minorPart) {\n needMinorPart = true\n\n if (!showZeroMinorPart && ZERO_MINOR_PART_REGEXP.test(minorPart)) {\n needMinorPart = false\n }\n }\n\n if (needMinorPart) {\n return (\n <span className='minor-container'>\n <span className='separator'>{separator}</span>\n <span className='minor'>{minorPart}</span>\n </span>\n )\n }\n\n return null\n }\n\n renderCurrencySymbol = (currencySymbol: string) => (\n <span style={{ position: 'relative' }}>\n {this.props.currency === 'RUR' ? (\n <span\n style={{\n position: 'absolute',\n width: 0,\n opacity: 0,\n visibility: 'hidden',\n }}\n >\n руб.\n </span>\n ) : null}\n <span>{` ${currencySymbol}`}</span>\n </span>\n )\n\n render() {\n const { value, digitsAfterPoint, currency, isHeader, className, style, crossedOut, onlyCurrency, ...rest } =\n this.props\n\n const { majorPart, minorPart, isNegative, currencySymbol } = formatAmount(value, digitsAfterPoint, currency)\n\n const classNames = cx('amount', className)\n\n const amountInner = (\n <Styled.Root className={classNames} style={style} crossedOut={crossedOut}>\n {!onlyCurrency ? (\n <>\n <span className='major'>\n {isNegative && MINUS_SIGN_HTML_CODE}\n {majorPart}\n </span>\n {this.renderMinorPart(minorPart)}\n </>\n ) : null}\n {currency && this.renderCurrencySymbol(currencySymbol)}\n </Styled.Root>\n )\n\n const Element = isHeader ? Text.Heading : Text\n\n return (\n <Element {...rest} as='span'>\n {amountInner}\n </Element>\n )\n }\n}\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n width: 60,\n height: 60,\n fontSize: 28,\n },\n xxl: {\n width: 56,\n height: 56,\n fontSize: 28,\n },\n xl: {\n width: 52,\n height: 52,\n fontSize: 28,\n },\n l: {\n width: 48,\n height: 48,\n fontSize: 24,\n },\n m: {\n width: 44,\n height: 44,\n fontSize: 24,\n },\n s: {\n width: 40,\n height: 40,\n fontSize: 24,\n },\n xs: {\n width: 36,\n height: 36,\n fontSize: 20,\n },\n xxs: {\n width: 32,\n height: 32,\n fontSize: 20,\n },\n xxxs: {\n width: 28,\n height: 28,\n fontSize: 20,\n },\n}\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES_DEFAULT: Sizes = {\n xxxl: {\n width: 52,\n height: 52,\n fontSize: 18,\n },\n xxl: {\n width: 48,\n height: 48,\n fontSize: 18,\n },\n xl: {\n width: 44,\n height: 44,\n fontSize: 18,\n },\n l: {\n width: 40,\n height: 40,\n fontSize: 16,\n },\n m: {\n width: 28,\n height: 28,\n fontSize: 16,\n },\n s: {\n width: 24,\n height: 24,\n fontSize: 16,\n },\n xs: {\n width: 20,\n height: 20,\n fontSize: 16,\n },\n xxs: {\n width: 16,\n height: 16,\n fontSize: 12,\n },\n xxxs: {\n width: 14,\n height: 14,\n fontSize: 10,\n },\n}\n","import styled, { css } from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { responsiveMargin } from 'mixins/responsive-margin'\nimport { focus } from 'mixins/focus'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport type { CSSColor } from 'shared/types'\nimport type { StyledArrowProps, ArrowPalette } from './types'\n\nconst shouldForwardArrowProp = createShouldForwardProp((propKey) => {\n return !['square', 'top', 'right', 'bottom', 'left', 'onColored', 'outline', 'inverse'].includes(propKey)\n})\n\nconst template = (palette: ArrowPalette) => `\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n border-color: ${palette.borderColor};\n &::before {\n box-shadow: inset 0px 4px 0px ${palette.shadowColor};\n }\n &:hover {\n color: ${palette.colorHover};\n background-color: ${palette.backgroundColorHover};\n border-color: ${palette.borderColorHover};\n }\n &:active {\n color: ${palette.colorActive};\n background-color: ${palette.backgroundColorActive};\n border-color: ${palette.borderColorActive};\n }\n &:disabled {\n color: ${palette.colorDisabled};\n background-color: ${palette.backgroundColorDisabled};\n border-color: ${palette.borderColorDisabled};\n }\n`\n\nconst defaultDisabledStyles = `\n -webkit-filter: grayscale(100%);\n -moz-filter: grayscale(100%);\n -ms-filter: grayscale(100%);\n -o-filter: grayscale(100%);\n filter: grayscale(100%);\n`\n\nconst COLOR_SCHEMA = {\n onColored: {\n outline: css<StyledArrowProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors.transparent,\n borderColor: props.theme.colors['border-oncolor-default'],\n colorHover: props.theme.colors['content-oncolor-constant'],\n backgroundColorHover: props.theme.colors['bg-oncolor-primary'],\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.theme.colors['content-oncolor-constant'],\n backgroundColorActive: tinycolor(props.theme.colors['bg-oncolor-primary']).darken(6).toString() as CSSColor,\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.theme.colors['content-oncolor-disabled'],\n backgroundColorDisabled: props.theme.colors.transparent,\n borderColorDisabled: props.theme.colors['border-oncolor-disabled'],\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n default: css<StyledArrowProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-constant'],\n backgroundColor: props.theme.colors['bg-oncolor-primary'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-oncolor-constant'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-oncolor-primary']).darken(6).toString() as CSSColor,\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.theme.colors['content-oncolor-constant'],\n backgroundColorActive: tinycolor(props.theme.colors['bg-oncolor-primary']).darken(8).toString() as CSSColor,\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors['bg-oncolor-primary'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n },\n default: {\n outline: css<StyledArrowProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors.transparent,\n borderColor: props.theme.colors['border-onmain-contrast'],\n colorHover: props.theme.colors['content-onmain-primary'],\n backgroundColorHover: props.theme.colors['bg-onmain-tertiary'],\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.theme.colors['content-oncolor-primary'],\n backgroundColorActive: props.theme.colors['bg-brand-primary-basic-active'],\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors.transparent,\n borderColorDisabled: props.theme.colors['border-disabled'],\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n default: css<StyledArrowProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-onmain-tertiary'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-onmain-primary'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-onmain-tertiary']).darken(4).toString() as CSSColor,\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.theme.colors['content-oncolor-primary'],\n backgroundColorActive: props.theme.colors['bg-brand-primary-basic-active'],\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n },\n}\n\nconst DEFAULT_STYLES = {\n filled: css<StyledArrowProps>`\n ${({ theme, disabled }) => `\n background-color: ${theme.colors.white};\n box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);\n & svg {\n fill: ${theme.colors.accent};\n }\n &:hover {\n background-color: ${theme.colors.accent};\n box-shadow: none;\n svg {\n fill: ${theme.colors.white};\n }\n }\n &:active {\n box-shadow: inset 0 4px 0 rgba(5, 108, 188, 0.5);\n }\n ${disabled ? defaultDisabledStyles : ''}\n `}\n `,\n outline: css<StyledArrowProps>`\n ${({ theme, disabled }) => `\n background-color: transparent;\n box-shadow: inset 0 0 0 2px ${theme.colors.alto};\n & svg {\n fill: ${theme.colors.alto};\n }\n &:hover {\n background-color: ${theme.colors.accent};\n box-shadow: none;\n svg {\n fill: ${theme.colors.white};\n }\n }\n &:active {\n box-shadow: inset 0 4px 0 rgba(5, 108, 188, 0.5);\n }\n ${disabled ? defaultDisabledStyles : ''}\n `}\n `,\n inverse: css<StyledArrowProps>`\n ${({ theme, disabled }) => `\n background-color: transparent;\n box-shadow: inset 0 0 0 2px ${theme.colors.white};\n & svg {\n fill: ${theme.colors.white};\n }\n &:hover {\n background-color: ${theme.colors.white};\n box-shadow: none;\n svg {\n fill: ${theme.colors.accent};\n }\n }\n &:active {\n box-shadow: inset 0 4px 0 #eaecf3;\n }\n ${disabled ? defaultDisabledStyles : ''}\n `}\n `,\n}\n\nexport const Root = styled.button\n .withConfig<StyledArrowProps>({\n shouldForwardProp: shouldForwardArrowProp,\n })\n .attrs<StyledArrowProps>(<Required<Pick<StyledArrowProps, 'dynamicSizeDeclaration'>>>{\n dynamicSizeDeclaration: (size, sizeUnits) => {\n return {\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n width: '1.8em',\n height: '1.8em',\n }\n },\n })`\n ${(props) => {\n let transform = 'rotate(0deg)'\n\n if (props.right) transform = 'rotate(90deg)'\n if (props.bottom) transform = 'rotate(180deg)'\n if (props.left) transform = 'rotate(270deg)'\n\n return `\n box-sizing: border-box;\n position: relative;\n isolation: isolate;\n appearance: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n padding: 0;\n border-radius: ${props.square ? '8px' : '50%'};\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n & svg {\n transform: ${transform};\n transform-origin: center;\n }\n ${\n props.preset === 'brand'\n ? `\n border: 1px solid transparent;\n transition-property: background-color; \n transition-duration: 250ms;\n &::before {\n content: '';\n position: absolute;\n top: -1px;\n left: -1px;\n width: calc(100% + 2px);\n height: calc(100% + 2px);\n border-radius: inherit;\n opacity: 0;\n transition-property: opacity; \n transition-duration: 150ms;\n transition-timing-function: ease-in;\n }\n &:active:not(:disabled)::before {\n opacity: 1;\n }`\n : `\n border: none;\n transition-property: background-color, box-shadow;\n transition-duration: 200ms;`\n }\n `\n }}\n\n ${(props) => {\n if (props.preset === 'brand') {\n const schema = props.onColored ? COLOR_SCHEMA.onColored : COLOR_SCHEMA.default\n\n return props.outline ? schema.outline : schema.default\n }\n\n const defaultStyles = DEFAULT_STYLES\n\n if (props.inverse) return defaultStyles.inverse\n if (props.outline) return defaultStyles.outline\n\n return defaultStyles.filled\n }}\n\n ${focus}\n ${responsiveSize}\n ${responsiveMargin}\n`\n","import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { Icon } from 'components/Icon'\nimport type { IconProps } from 'components/Icon'\nimport { SIZES } from './constants'\nimport { SIZES_DEFAULT } from './default-constants'\nimport type { ArrowProps } from './types'\n\nimport * as Styled from './style'\n\nconst COMPONENT_NAME = 'Arrow'\n\n/**\n *\n * Component accepts all \\<button\\> attributes.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [ArrowProps](https://github.com/foxford/ui/blob/master/src/components/Arrow/types.ts)\n */\nconst Arrow: React.ForwardRefExoticComponent<ArrowProps> = withMergedProps<ArrowProps, HTMLButtonElement>(\n forwardRef((props, ref) => {\n const { type = 'button', size = 'l', iconProps = {}, ...restProps } = props\n\n const iconBaseProps: IconProps = { as: 'span', color: 'inherit' }\n\n return (\n <Styled.Root {...restProps} type={type} size={size} ref={ref}>\n <Icon name={restProps.preset === 'brand' ? 'arrowUp' : 'chevronUp'} {...iconBaseProps} {...iconProps} />\n </Styled.Root>\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: (props) => (props.preset === 'brand' ? SIZES : SIZES_DEFAULT),\n }\n)\n\nexport { Arrow, COMPONENT_NAME }\n\nexport type { ArrowProps }\n","<svg viewBox=\"0 0 20 40\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 20 18 0h2v40h-2z\" fill=\"currentColor\"/></svg>","<svg viewBox=\"0 0 20 40\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 0h20v40H0z\" fill=\"currentColor\"/></svg>","<svg viewBox=\"0 0 28 40\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2 0h26v40H2l18-20z\" fill=\"currentColor\"/></svg>","import styled, { css } from 'styled-components'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { responsiveMargin } from 'mixins/responsive-margin'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { getColor } from 'mixins/color'\nimport { focus } from 'mixins/focus'\nimport type { StyledArrowBadgeProps, StyledArrowBadgeEdgeProps, ArrowBadgePalette } from './types'\nimport Arrow from './images/arrow.module.svg'\nimport Rectangle from './images/rectangle.module.svg'\nimport Fancy from './images/fancy.module.svg'\n\nconst shouldForwardArrowBadgeProp = createShouldForwardProp((propKey) => !['left', 'right', 'fancy'].includes(propKey))\n\nexport const Content = styled.div`\n flex-shrink: 0;\n display: flex;\n align-items: center;\n height: 100%;\n margin: 0 -1px;\n`\n\nexport const Edge = styled.svg\n .withConfig({ shouldForwardProp: () => false })\n .attrs((props: StyledArrowBadgeEdgeProps) => {\n let Shape = Rectangle\n\n if (props.fancy) Shape = Fancy\n if (props.left || props.right) Shape = Arrow\n\n return { as: Shape }\n })<StyledArrowBadgeEdgeProps>`\n flex-shrink: 0;\n height: 100%;\n ${(props) => props.after && 'transform: rotate(180deg);'}\n`\n\nconst template = (palette: ArrowBadgePalette) => `\n & > ${Content} {\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n }\n & > ${Edge} {\n color: ${palette.backgroundColor};\n }\n`\n\nconst COLOR_SCHEMA = {\n primary: css<StyledArrowBadgeProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-brand-primary-200'],\n ...props.palette,\n })}\n `,\n secondary: css<StyledArrowBadgeProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-brand-secondary-200'],\n ...props.palette,\n })}\n `,\n tertiary: css<StyledArrowBadgeProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-brand-tertiary-200'],\n ...props.palette,\n })}\n `,\n quaternary: css<StyledArrowBadgeProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-brand-quaternary-200'],\n ...props.palette,\n })}\n `,\n}\n\nexport const Root = styled.div\n .withConfig<StyledArrowBadgeProps>({\n shouldForwardProp: shouldForwardArrowBadgeProp,\n })\n .attrs(<Required<Pick<StyledArrowBadgeProps, 'dynamicSizeDeclaration'>>>{\n dynamicSizeDeclaration: (size, sizeUnits) => {\n return {\n height: '1.8em',\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n }\n },\n })`\n ${(props) => {\n let paddingRight = 0\n let paddingLeft = 0\n\n if (props.fancy || props.right) paddingRight = 0.4\n if (props.fancy || props.left) paddingLeft = 0.4\n\n return `\n box-sizing: border-box;\n isolation: isolate;\n display: inline-flex;\n width: max-content;\n flex-shrink: 0;\n cursor: default;\n & > ${Content} {\n padding-right: ${paddingRight}em;\n padding-left: ${paddingLeft}em;\n }\n `\n }}\n\n ${(props) => {\n if (props.quaternary) return COLOR_SCHEMA.quaternary\n if (props.tertiary) return COLOR_SCHEMA.tertiary\n if (props.secondary) return COLOR_SCHEMA.secondary\n\n return COLOR_SCHEMA.primary\n }}\n\n ${focus}\n ${responsiveSize}\n ${responsiveMargin}\n\n ${(props) =>\n props.color &&\n `& > ${Content} {\n color: ${getColor(props.color, props)};\n }`}\n ${(props) =>\n props.backgroundColor &&\n `& > ${Content} {\n background-color: ${getColor(props.backgroundColor, props)};\n }\n & > ${Edge} {\n color: ${getColor(props.backgroundColor, props)};\n }`}\n`\n","import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { Text } from 'components/Text'\nimport type { TextProps } from 'components/Text'\nimport * as Styled from './style'\nimport type { ArrowBadgeProps } from './types'\nimport { SIZES } from './constants'\n\nconst COMPONENT_NAME = 'ArrowBadge'\n\n/**\n *\n * Component accepts all \\<div\\> attributes.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [ArrowBadgeProps](https://github.com/foxford/ui/blob/master/src/components/ArrowBadge/types.ts)\n */\nconst ArrowBadge: React.ForwardRefExoticComponent<ArrowBadgeProps> = withMergedProps<ArrowBadgeProps, HTMLDivElement>(\n forwardRef((props, ref) => {\n const { size = 'm', textProps = {}, children, left, right, fancy, ...restProps } = props\n\n const baseTextProps: TextProps = { as: 'div', size: 'inherit', color: 'inherit' }\n\n return (\n <Styled.Root {...restProps} size={size} left={left} right={right} fancy={fancy} ref={ref}>\n <Styled.Edge left={left} fancy={fancy} />\n <Styled.Content>\n {typeof children === 'function' ? (\n children({ baseTextProps, textProps })\n ) : (\n <Text {...baseTextProps} {...textProps}>\n {children}\n </Text>\n )}\n </Styled.Content>\n <Styled.Edge right={right} fancy={fancy} after />\n </Styled.Root>\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: SIZES,\n }\n)\n\nexport { ArrowBadge, COMPONENT_NAME }\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n height: 64,\n fontSize: 36,\n },\n xxl: {\n height: 60,\n fontSize: 34,\n },\n xl: {\n height: 54,\n fontSize: 32,\n },\n l: {\n height: 48,\n fontSize: 28,\n },\n m: {\n height: 40,\n fontSize: 22,\n },\n s: {\n height: 32,\n fontSize: 16,\n },\n xs: {\n height: 24,\n fontSize: 14,\n },\n xxs: {\n height: 20,\n fontSize: 10,\n },\n xxxs: {\n height: 16,\n fontSize: 10,\n },\n}\n","import styled, { keyframes, css } from 'styled-components'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { responsiveMargin } from 'mixins/responsive-margin'\nimport type { StyledSkeletonProps, SkeletonPalette } from './types'\n\nconst shouldForwardSkeletonProp = createShouldForwardProp(\n (propKey) =>\n ![\n 'inline',\n 'round',\n 'borderRadius',\n 'width',\n 'height',\n 'animationDuration',\n 'animationDelay',\n 'onColored',\n ].includes(propKey)\n)\n\nconst shiftAnimation = keyframes`\n 0% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n`\n\nconst template = (palette: SkeletonPalette) => `\n background-color: ${palette.color};\n background-image: linear-gradient(90deg, ${palette.gradientColor} 25%, ${palette.gradientHighlightColor} 45%, ${palette.gradientColor} 65%);\n`\n\nconst COLOR_SCHEMA = {\n onColored: {\n secondary: css<StyledSkeletonProps>`\n ${(props) =>\n template({\n color: props.theme.colors['skeleton-oncolor-secondary'],\n gradientColor: props.theme.colors['skeleton-gradient-from-color-oncolor'],\n gradientHighlightColor: props.theme.colors['skeleton-gradient-to-color-oncolor'],\n ...props.palette,\n })}\n `,\n primary: css<StyledSkeletonProps>`\n ${(props) =>\n template({\n color: props.theme.colors['skeleton-oncolor-primary'],\n gradientColor: props.theme.colors['skeleton-gradient-from-color-oncolor'],\n gradientHighlightColor: props.theme.colors['skeleton-gradient-to-color-oncolor'],\n ...props.palette,\n })}\n `,\n },\n default: {\n secondary: css<StyledSkeletonProps>`\n ${(props) =>\n template({\n color: props.theme.colors['skeleton-onmain-secondary'],\n gradientColor: props.theme.colors['skeleton-gradient-from-color-onmain'],\n gradientHighlightColor: props.theme.colors['skeleton-gradient-to-color-onmain'],\n ...props.palette,\n })}\n `,\n primary: css<StyledSkeletonProps>`\n ${(props) =>\n template({\n color: props.theme.colors['skeleton-onmain-primary'],\n gradientColor: props.theme.colors['skeleton-gradient-from-color-onmain'],\n gradientHighlightColor: props.theme.colors['skeleton-gradient-to-color-onmain'],\n ...props.palette,\n })}\n `,\n },\n}\n\nexport const Root = styled.div.withConfig<StyledSkeletonProps>({\n shouldForwardProp: shouldForwardSkeletonProp,\n})`\n ${(props) => {\n let borderRadius = props.round ? '50%' : 8\n if (typeof props.borderRadius === 'string' || typeof props.borderRadius === 'number') {\n borderRadius = props.borderRadius\n }\n\n const width = props.width ? props.width : 'auto'\n const height = props.height ? props.height : 'auto'\n\n return css`\n box-sizing: border-box;\n display: ${props.inline ? 'inline-block' : 'block'};\n width: ${typeof width === 'string' ? width : `${width}px`};\n height: ${typeof height === 'string' ? height : `${height}px`};\n border-radius: ${typeof borderRadius === 'string' ? borderRadius : `${borderRadius}px`};\n flex-shrink: 0;\n margin: 0;\n background-origin: border-box;\n background-size: 400% 100%;\n background-repeat: no-repeat;\n animation-name: ${shiftAnimation};\n animation-duration: ${props.animationDuration ?? 2000}ms;\n animation-delay: ${props.animationDelay ?? 500}ms;\n animation-iteration-count: infinite;\n\n & > * {\n visibility: hidden;\n }\n `\n }}\n\n ${(props) => {\n const schema = props.onColored ? COLOR_SCHEMA.onColored : COLOR_SCHEMA.default\n\n return props.secondary ? schema.secondary : schema.primary\n }}\n\n ${responsiveMargin}\n`\n","import { forwardRef, isValidElement, cloneElement } from 'react'\nimport { useMergedPalette } from 'hooks/useMergedPalette'\nimport * as Styled from './style'\nimport type { SkeletonProps } from './types'\n\n/**\n *\n * Component accepts all \\<div\\> attributes.\n *\n * Responsive \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [SkeletonProps](https://github.com/foxford/ui/blob/master/src/components/Skeleton/types.ts)\n */\nconst Skeleton: React.ForwardRefExoticComponent<SkeletonProps> = forwardRef<HTMLDivElement, SkeletonProps>(\n (props, ref) => {\n const palette = useMergedPalette(props)\n\n return (\n <Styled.Root {...props} palette={palette} ref={ref}>\n {!props.children ? (\n <> </>\n ) : isValidElement(props.children) &&\n typeof props.children.props === 'object' &&\n props.children.props !== null &&\n !props.children.props.children ? (\n cloneElement(props.children, {}, <> </>)\n ) : (\n props.children\n )}\n </Styled.Root>\n )\n }\n)\n\nexport { Skeleton }\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n width: 120,\n height: 120,\n fontSize: 36,\n },\n xxl: {\n width: 68,\n height: 68,\n fontSize: 24,\n },\n xl: {\n width: 52,\n height: 52,\n fontSize: 18,\n },\n l: {\n width: 48,\n height: 48,\n fontSize: 16,\n },\n m: {\n width: 40,\n height: 40,\n fontSize: 14,\n },\n s: {\n width: 32,\n height: 32,\n fontSize: 12,\n },\n xs: {\n width: 24,\n height: 24,\n fontSize: 10,\n },\n xxs: {\n width: 20,\n height: 20,\n fontSize: 8,\n },\n xxxs: {\n width: 16,\n height: 16,\n fontSize: 6,\n },\n}\n","import type { Size, Sizes } from 'shared/types'\n\nexport const SIZES_MAPPING_RULES: Record<string, Size> = { l: 'xl', m: 'l', sm: 'm' }\n\nexport const SIZES_DEFAULT: Sizes = {\n xxxl: {\n width: 120,\n height: 120,\n fontSize: 36,\n },\n xxl: {\n width: 120,\n height: 120,\n fontSize: 36,\n },\n xl: {\n width: 120,\n height: 120,\n fontSize: 36,\n },\n l: {\n width: 68,\n height: 68,\n fontSize: 24,\n },\n m: {\n width: 52,\n height: 52,\n fontSize: 12,\n },\n s: {\n width: 40,\n height: 40,\n fontSize: 12,\n },\n xs: {\n width: 32,\n height: 32,\n fontSize: 12,\n },\n xxs: {\n width: 32,\n height: 32,\n fontSize: 12,\n },\n xxxs: {\n width: 32,\n height: 32,\n fontSize: 12,\n },\n}\n","import styled, { css } from 'styled-components'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { responsiveMargin } from 'mixins/responsive-margin'\nimport { getColor } from 'mixins/color'\nimport type { StyledAvatarProps, AvatarPalette } from './types'\n\nconst shouldForwardAvatarProp = createShouldForwardProp(\n (propKey) => !['src', 'shadow', 'borderRadius', 'square', 'loading'].includes(propKey)\n)\n\nconst template = (palette: AvatarPalette) => `\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n filter: drop-shadow(0 6px 10px ${palette.shadowColor});\n`\n\nconst COLOR_SCHEMA = {\n default: css<StyledAvatarProps>`\n ${(props) =>\n template({\n color: props.theme.colors.white,\n backgroundColor: props.loading ? props.theme.colors.transparent : props.theme.colors.mercury,\n shadowColor: props.shadow ? props.theme.colors['bg-oncolor-hover'] : props.theme.colors.transparent,\n ...props.palette,\n })}\n `,\n primary: css<StyledAvatarProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-brand-primary'],\n backgroundColor: props.loading ? props.theme.colors.transparent : props.theme.colors['bg-brand-primary-100'],\n shadowColor: props.shadow ? props.theme.colors['bg-oncolor-hover'] : props.theme.colors.transparent,\n ...props.palette,\n })}\n `,\n}\n\nexport const Root = styled.span\n .withConfig<StyledAvatarProps>({\n shouldForwardProp: shouldForwardAvatarProp,\n })\n .attrs<StyledAvatarProps>(<Required<Pick<StyledAvatarProps, 'dynamicSizeDeclaration'>>>{\n dynamicSizeDeclaration: (size, sizeUnits) => ({\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n width: '1em',\n height: '1em',\n }),\n })`\n ${(props) => `\n box-sizing: border-box;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n vertical-align: middle;\n flex-shrink: 0;\n cursor: default;\n border-radius: ${props.square ? '6px' : props.borderRadius};\n ${\n props.src && !props.loading\n ? `\n background-image: url(${props.src});\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover; \n `\n : ''\n }\n `}\n\n ${(props) => (props.preset === 'brand' ? COLOR_SCHEMA.primary : COLOR_SCHEMA.default)}\n\n ${(props) => props.color && !props.loading && `background-color: ${getColor(props.color, props)};`}\n\n ${responsiveSize}\n ${responsiveMargin}\n`\n","import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { Skeleton } from 'components/Skeleton'\nimport { Text } from 'components/Text'\nimport { abbreviateCaption } from './utils'\nimport { SIZES } from './constants'\nimport { SIZES_MAPPING_RULES, SIZES_DEFAULT } from './default-constants'\nimport type { AvatarProps } from './types'\nimport * as Styled from './style'\n\nconst COMPONENT_NAME = 'Avatar'\n\n/**\n *\n * Component accepts all \\<span\\> attributes.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [AvatarProps](https://github.com/foxford/ui/blob/master/src/components/AvatarProps/types.ts)\n */\nconst Avatar: React.ForwardRefExoticComponent<AvatarProps> = withMergedProps<AvatarProps, HTMLSpanElement>(\n forwardRef((props, ref) => {\n const { size = 'm', textProps = {}, borderRadius = '50%', children, text, ...restProps } = props\n\n const sizeMapped =\n typeof size === 'string' && (restProps.preset === 'default' || size === 'sm')\n ? SIZES_MAPPING_RULES[size] ?? size\n : size\n\n return (\n <Styled.Root {...restProps} size={sizeMapped} borderRadius={borderRadius} ref={ref}>\n {restProps.loading ? (\n <Skeleton as='span' width='100%' height='100%' borderRadius='inherit' />\n ) : (\n <>\n {children ??\n (!restProps.src && (\n <Text\n as='span'\n appearance='caption'\n size='inherit'\n color='inherit'\n lineHeight={1}\n marginTop={1}\n transform='uppercase'\n {...textProps}\n >\n {abbreviateCaption(text || restProps.title || '')}\n </Text>\n ))}\n </>\n )}\n </Styled.Root>\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: (props) => (props.preset === 'brand' ? SIZES : SIZES_DEFAULT),\n }\n)\n\nexport { Avatar }\n","export const abbreviateCaption = (caption: string): string =>\n caption\n .split(' ')\n .map((seq) => seq.trim())\n .filter((seq) => seq.length !== 0)\n .slice(0, 2)\n .reduce((abbreviation, seq) => {\n if (typeof seq === 'string') {\n const symbolCodePoint = seq.codePointAt(0)\n\n if (typeof symbolCodePoint === 'number') {\n abbreviation += String.fromCodePoint(symbolCodePoint)\n }\n }\n\n return abbreviation\n }, '') || '#'\n","import styled, { css } from 'styled-components'\nimport type { ThemedStyledProps, DefaultTheme } from 'styled-components'\nimport { color } from 'mixins/color'\nimport { display } from 'mixins/display'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { responsiveMargin } from 'mixins/responsive-margin'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { focus } from 'mixins/focus'\nimport type { StyledBadgeProps, BadgePalette } from './types'\n\nconst shouldForwardBadgeProp = createShouldForwardProp(\n (propKey) => !['round', 'content', 'borderRadius', 'resetDefaultMargin', 'display'].includes(propKey)\n)\n\nconst template = (palette: BadgePalette) => `\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n`\n\nconst COLOR_SCHEMA = {\n primary: css<StyledBadgeProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-brand-primary-100'],\n ...props.palette,\n })}\n `,\n secondary: css<StyledBadgeProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-brand-secondary-100'],\n ...props.palette,\n })}\n `,\n tertiary: css<StyledBadgeProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-brand-tertiary-100'],\n ...props.palette,\n })}\n `,\n quaternary: css<StyledBadgeProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-brand-quaternary-100'],\n ...props.palette,\n })}\n `,\n}\n\nconst badgeStyles = (props: ThemedStyledProps<StyledBadgeProps, DefaultTheme>) => {\n if (props.quaternary) return COLOR_SCHEMA.quaternary\n if (props.tertiary) return COLOR_SCHEMA.tertiary\n if (props.secondary) return COLOR_SCHEMA.secondary\n\n return COLOR_SCHEMA.primary\n}\n\nexport const Root = styled.div\n .withConfig<StyledBadgeProps>({\n shouldForwardProp: shouldForwardBadgeProp,\n })\n .attrs<StyledBadgeProps>(\n (props): Required<Pick<StyledBadgeProps, 'dynamicSizeDeclaration'>> => ({\n dynamicSizeDeclaration: (size, sizeUnits) => {\n return {\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n height: '1.8em',\n width: props.round ? '1.8em' : undefined,\n paddingRight: props.round ? undefined : '0.6em',\n paddingLeft: props.round ? undefined : '0.6em',\n }\n },\n })\n )`\n ${(props) => {\n const borderRadius = typeof props.borderRadius === 'number' ? `${props.borderRadius}px` : props.borderRadius\n\n return `\n box-sizing: border-box;\n isolation: isolate;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: max-content;\n flex-shrink: 0;\n border-radius: ${props.round ? '50%' : borderRadius};\n cursor: default;\n `\n }}\n\n ${badgeStyles}\n ${focus}\n ${responsiveSize}\n ${responsiveMargin}\n\n ${(props) => props.color && color(props.color, 'background-color')}\n ${(props) => props.display && display(props.display)}\n ${(props) => !props.resetDefaultMargin && '&:not(:last-child) { margin-right: 8px; }'}\n`\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n height: 34,\n fontSize: 22,\n paddingRight: 10,\n paddingLeft: 10,\n },\n xxl: {\n height: 32,\n fontSize: 20,\n paddingRight: 10,\n paddingLeft: 10,\n },\n xl: {\n height: 30,\n fontSize: 18,\n paddingRight: 10,\n paddingLeft: 10,\n },\n l: {\n height: 28,\n fontSize: 16,\n paddingRight: 8,\n paddingLeft: 8,\n },\n m: {\n height: 26,\n fontSize: 14,\n paddingRight: 8,\n paddingLeft: 8,\n },\n s: {\n height: 24,\n fontSize: 12,\n paddingRight: 8,\n paddingLeft: 8,\n },\n xs: {\n height: 22,\n fontSize: 10,\n paddingRight: 6,\n paddingLeft: 6,\n },\n xxs: {\n height: 20,\n fontSize: 10,\n paddingRight: 6,\n paddingLeft: 6,\n },\n xxxs: {\n height: 18,\n fontSize: 10,\n paddingRight: 6,\n paddingLeft: 6,\n },\n}\n\nexport const SIZES_ROUND: Sizes = {\n xxxl: {\n height: 34,\n width: 34,\n fontSize: 22,\n },\n xxl: {\n height: 32,\n width: 32,\n fontSize: 20,\n },\n xl: {\n height: 30,\n width: 30,\n fontSize: 18,\n },\n l: {\n height: 28,\n width: 28,\n fontSize: 16,\n },\n m: {\n height: 26,\n width: 26,\n fontSize: 14,\n },\n s: {\n height: 24,\n width: 24,\n fontSize: 12,\n },\n xs: {\n height: 22,\n width: 22,\n fontSize: 10,\n },\n xxs: {\n height: 20,\n width: 20,\n fontSize: 10,\n },\n xxxs: {\n height: 18,\n width: 18,\n fontSize: 10,\n },\n}\n","import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { Text } from 'components/Text'\nimport { Icon } from 'components/Icon'\nimport type { TextProps } from 'components/Text'\nimport type { IconProps } from 'components/Icon'\nimport * as Styled from './style'\nimport { SIZES, SIZES_ROUND } from './constants'\nimport type { BadgeProps } from './types'\n\nconst COMPONENT_NAME = 'Badge'\n\n/**\n *\n * Component accepts all \\<div\\> attributes.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [BadgeProps](https://github.com/foxford/ui/blob/master/src/components/Badge/types.ts)\n */\nexport const Badge: React.ForwardRefExoticComponent<BadgeProps> = withMergedProps<BadgeProps, HTMLDivElement>(\n forwardRef((props, ref) => {\n const {\n size = 's',\n borderRadius = 3,\n textProps = {},\n iconProps = {},\n children,\n content,\n icon,\n ...restProps\n } = props\n\n const [before, after] = Array.isArray(icon) ? icon : [icon]\n\n const baseTextProps: TextProps = {\n as: 'span',\n size: 'inherit',\n color: 'inherit',\n marginLeft: before ? '0.25em' : undefined,\n marginRight: after ? '0.25em' : undefined,\n }\n const iconBaseProps: IconProps = { color: 'inherit' }\n\n return (\n <Styled.Root {...restProps} size={size} borderRadius={borderRadius} ref={ref}>\n {typeof children === 'function' ? (\n children({ baseTextProps, textProps, iconBaseProps, iconProps, icon })\n ) : (\n <>\n {before && (\n <Icon\n name={typeof before === 'string' ? before : undefined}\n icon={typeof before !== 'string' ? before : undefined}\n {...iconBaseProps}\n {...iconProps}\n />\n )}\n {(children || content) && (\n <Text {...baseTextProps} {...textProps}>\n {children || content}\n </Text>\n )}\n {after && (\n <Icon\n name={typeof after === 'string' ? after : undefined}\n icon={typeof after !== 'string' ? after : undefined}\n {...iconBaseProps}\n {...iconProps}\n />\n )}\n </>\n )}\n </Styled.Root>\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: (props) => (props.round ? SIZES_ROUND : SIZES),\n }\n)\n","import styled, { css } from 'styled-components'\nimport { display } from 'mixins/display'\nimport { color } from 'mixins/color'\nimport { screenL, screenM, screenMaxS } from 'mixins/screen'\nimport { ContainerProps } from './Container'\n\nexport const Root = styled.div.withConfig<ContainerProps>({\n shouldForwardProp: (prop) => ['children', 'className', 'style'].includes(prop),\n})`\n display: block;\n width: 100%;\n max-width: ${(props) => props.theme.breakpoints.l - 100 + 2 * 50}px;\n margin: 0 auto;\n padding: 0 50px;\n box-sizing: border-box;\n ${(props) => (props.display ? display(props.display) : null)}\n ${(props) => (props.color ? color(props.color, 'background-color') : null)}\n ${(props) =>\n props.textAlign\n ? css`\n text-align: ${props.textAlign};\n `\n : null}\n ${(props) =>\n props.fluid\n ? css`\n max-width: 100%;\n `\n : null}\n ${screenL()`\n padding: 0 42px;\n `}\n ${screenM()`\n padding: 0 28px;\n `}\n ${screenMaxS()`\n padding: 0 20px;\n `}\n`\n","import { ColorProperty } from 'mixins/color'\nimport { DisplayProperty } from 'mixins/display'\nimport { BaseProps } from 'shared/interfaces'\nimport * as Styled from './style'\n\nexport interface ContainerProps extends BaseProps, DisplayProperty, ColorProperty {\n /**\n * Primary content\n */\n /**\n * Children react node\n */\n children?: React.ReactNode\n /**\n * Container has no maximum width.\n */\n fluid?: boolean\n /**\n * Align container text.\n */\n textAlign?: 'left' | 'center' | 'right' | 'justified'\n}\n\nContainer.displayName = 'Container'\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`Color`](#/Миксины)\n * - [`Display`](#/Миксины)\n */\nexport function Container(props: ContainerProps) {\n return <Styled.Root {...props} />\n}\n","import styled, { createGlobalStyle, css } from 'styled-components'\nimport ReactModal from 'react-modal'\nimport { property, PossibleValues } from 'mixins/responsive-property'\nimport { ModalProps } from './Modal'\nimport { ReactModalAdapter } from './adapter'\n\ninterface ReactModalProps extends ReactModal.Props {\n zIndex?: ModalProps['zIndex']\n valign?: ModalProps['valign']\n}\n\nconst WIDTHS = {\n xxxs: 100,\n xxs: 200,\n xs: 300,\n s: 400,\n m: 500,\n l: 600,\n xl: 740,\n xxl: 800,\n xxxl: 900,\n}\n\nconst chooseWidthValue = (props: ModalProps): PossibleValues => {\n if (typeof props.width === 'number') return props.width\n\n if (props.width && typeof props.width === 'string' && WIDTHS[props.width]) return WIDTHS[props.width]\n\n return 'auto'\n}\n\nconst getPosition = (valign: ModalProps['valign']) => {\n switch (valign) {\n case 'top':\n return 'flex-start'\n case 'bottom':\n return 'flex-end'\n case 'center':\n return 'center'\n default:\n return 'center'\n }\n}\n\nexport const Modal = styled(ReactModalAdapter)<ReactModalProps>`\n &__overlay {\n z-index: ${(props) => props.zIndex || props.theme.zIndex.modal};\n display: flex;\n flex-direction: row;\n justify-content: center;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n overflow-x: none;\n overflow-y: auto;\n ${(props) =>\n props.valign\n ? css`\n align-items: ${getPosition(props.valign)};\n `\n : null}\n &.ReactModal__Overlay--after-open {\n ${(props) => {\n if (props.overlayClassName) return null\n\n if (props.blurredOverlay) {\n return css`\n background: rgba(246, 247, 251, 0.3);\n backdrop-filter: blur(3.5px);\n `\n }\n\n return css`\n background: rgba(246, 247, 251, 0.9);\n `\n }}\n }\n &.ReactModal__Overlay--before-close {\n }\n }\n\n &__content {\n width: 100%;\n max-height: 100%;\n position: relative;\n &:focus {\n outline: 0;\n }\n ${(props) => (props.width ? property(chooseWidthValue(props), 'max-width') : null)}\n &.ReactModal__Content--after-open {\n }\n &.ReactModal__Content--before-close {\n }\n }\n`\n\nexport const ModalClose = styled.span`\n opacity: 1;\n transition: 0.3s;\n position: absolute;\n right: 20px;\n top: 20px;\n cursor: pointer;\n z-index: 10;\n svg {\n width: 18px;\n height: 18px;\n }\n &:hover {\n opacity: 0.5;\n }\n`\n\nexport const GlobalRoot = createGlobalStyle`\n .bodyOpen {\n overflow: hidden;\n }\n`\n","import ReactModal from 'react-modal'\nimport cx from 'clsx'\nimport { ModalProps } from './Modal'\n\nexport const ReactModalAdapter: React.FC<ModalProps> = ({\n className,\n isOpen,\n overlayClassName,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n style: _style,\n ...props\n}: ModalProps) => {\n const contentClassName = `${className}__content`\n const overlayClassNameLocal = `${className}__overlay`\n\n return (\n <ReactModal\n portalClassName={className}\n className={contentClassName}\n isOpen={Boolean(isOpen)}\n overlayClassName={cx(overlayClassNameLocal, overlayClassName)}\n {...props}\n />\n )\n}\n","import ReactModal, { Classes } from 'react-modal'\nimport { ResponsiveNamedProperty } from 'mixins/responsive-property'\nimport { BaseProps } from 'shared/interfaces'\nimport { ModalClose } from './Close'\nimport * as Styled from './style'\n\nfunction setAppModalElement() {\n const appElement = document.body\n\n if (appElement && appElement instanceof HTMLElement) ReactModal.setAppElement(appElement)\n}\n\n// eslint-disable-next-line prettier/prettier\nif (typeof window !== 'undefined') {\n setAppModalElement()\n}\n\nexport interface ModalProps extends BaseProps, ResponsiveNamedProperty<'width'> {\n /**\n * Primary content.\n */\n /**\n * Boolean indicating if the overlay background should be blurred\n */\n blurredOverlay?: boolean\n /**\n * Children react node\n */\n children?: React.ReactNode\n /**\n * Modal class name\n */\n className?: string\n /**\n * Number indicating the milliseconds to wait before closing the modal.\n */\n closeTimeoutMS?: number\n /**\n * String indicating how the content container should be announced to screenreaders\n */\n contentLabel?: string\n /**\n * Boolean describing if the modal should be shown or not.\n */\n isOpen?: boolean\n /**\n * Function that will be run after the modal has opened.\n */\n onAfterOpen?(): void\n /**\n * Function that will be run when the modal is requested to be closed, prior to actually closing.\n */\n onRequestClose?(): void\n /**\n * Custom overlay CSS class name\n */\n overlayClassName?: string | Classes\n /**\n * String indicating the role of the modal, allowing the 'dialog' role to be applied if desired.\n */\n role?: string\n /**\n * Boolean indicating if the overlay should close the modal\n */\n shouldCloseOnOverlayClick?: boolean\n /**\n * Vertical align\n */\n valign?: 'top' | 'center' | 'bottom'\n /**\n * z-index\n */\n zIndex?: number\n}\n\nModal.defaultProps = {\n blurredOverlay: false,\n closeTimeoutMS: 0,\n zIndex: 9000,\n contentLabel: '',\n isOpen: false,\n role: 'dialog',\n shouldCloseOnOverlayClick: true,\n width: 'm',\n valign: 'center',\n className: 'modal',\n}\n\nModal.Close = ModalClose\nModal.displayName = 'Modal'\n\n/**\n * Основан на [react-modal](https://github.com/reactjs/react-modal).\n *\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`ResponsiveNamedProperty<'width'>`](#/Миксины)\n */\nexport function Modal(props: ModalProps) {\n const {\n blurredOverlay,\n children,\n closeTimeoutMS,\n contentLabel,\n isOpen,\n onAfterOpen,\n onRequestClose,\n overlayClassName,\n role,\n shouldCloseOnOverlayClick,\n width,\n valign,\n className,\n style,\n zIndex,\n } = props\n\n return (\n <Styled.Modal\n blurredOverlay={blurredOverlay}\n closeTimeoutMS={closeTimeoutMS}\n contentLabel={contentLabel}\n isOpen={Boolean(isOpen)}\n onAfterOpen={onAfterOpen}\n onRequestClose={onRequestClose}\n portalClassName={className}\n overlayClassName={overlayClassName}\n bodyOpenClassName='modal--open'\n role={role}\n zIndex={zIndex}\n valign={valign}\n width={width}\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n >\n <div style={style}>{children}</div>\n </Styled.Modal>\n )\n}\n","import { Icon } from 'components/Icon'\nimport * as Styled from './style'\n\nexport interface ModalCloseProps {\n className?: string\n onClick?: () => void\n}\n\nexport function ModalClose({ className, onClick }: ModalCloseProps) {\n return (\n <Styled.ModalClose className={className} onClick={onClick}>\n <Icon name='tinyCross' color='#D9D9D9' />\n </Styled.ModalClose>\n )\n}\n","import styled, { css } from 'styled-components'\nimport { color } from 'mixins/color'\nimport { Spacer } from 'components/Spacer'\nimport { PaperProps } from './Paper'\n\nconst zDepth = {\n 0: css`\n box-shadow: 0 2px 0 0 rgba(0, 0, 0, 0.11);\n `,\n 1: css`\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.08);\n `,\n 2: css`\n box-shadow: 0 6px 20px 0 rgba(0, 0, 0, 0.1);\n `,\n 3: css`\n box-shadow: 0 10px 20px 0 rgba(0, 0, 0, 0.08);\n `,\n 4: css`\n box-shadow: 0 10px 40px 0 rgba(0, 0, 0, 0.14);\n `,\n}\n\nconst circle = css`\n border-radius: 50%;\n justify-content: center;\n display: flex;\n align-items: center;\n min-width: 100px;\n min-height: 100px;\n`\n\nconst rounded = css`\n border-radius: ${(props) => props.theme.borderRadius};\n`\n\nexport const Root = styled(Spacer)<PaperProps>`\n box-sizing: border-box;\n background-color: ${(props) => props.theme.colors.white};\n ${(props) =>\n props.textAlign\n ? css`\n text-align: ${props.textAlign};\n `\n : null}\n ${(props) => (props.color ? color(props.color, 'background-color') : null)}\n ${(props) => (typeof props.zDepth === 'number' && props.shadow ? zDepth[props.zDepth] : null)}\n ${(props) => (props.rounded ? rounded : null)}\n ${(props) => (props.circle ? circle : null)}\n`\n","import { ResponsiveNamedProperty } from 'mixins/responsive-property'\nimport { ColorProperty } from 'mixins/color'\nimport { useClassname } from 'hooks/useClassname'\nimport { SpacerProps } from 'components/Spacer'\nimport * as Styled from './style'\n\nexport interface PaperProps extends SpacerProps, ColorProperty, ResponsiveNamedProperty<'padding'> {\n /**\n * Set to true to generate a circlular paper container\n */\n circle?: boolean\n /**\n * Paper with rounded corners\n */\n rounded?: boolean\n /**\n * Paper with shadow\n */\n shadow?: boolean\n /**\n * This number represents the zDepth of the paper shadow\n */\n zDepth?: false | 0 | 1 | 2 | 3 | 4\n /**\n * Text align\n */\n textAlign?: 'left' | 'center' | 'right'\n}\n\nPaper.displayName = 'Paper'\n\n/**\n * Расширен:\n * - [`SpacerProps`](#/Разметка%20и%20позиционирование/Spacer)\n * - [`Color`](#/Миксины)\n * - [`ResponsiveNamedProperty<'padding'>`](#/Миксины)\n */\nexport function Paper({ padding = 'm', rounded = true, shadow = true, className, ...props }: PaperProps) {\n const _className = useClassname(Paper.displayName, className)\n\n return <Styled.Root padding={padding} rounded={rounded} shadow={shadow} className={_className} {...props} />\n}\n","import { PureComponent } from 'react'\nimport { Scrollbars, ScrollbarsProps } from 'rc-scrollbars'\nimport { DefaultTheme, withTheme } from 'styled-components'\n\nexport interface ScrollableProps extends Partial<ScrollbarsProps> {\n /**\n * Children react node\n */\n children: React.ReactNode[] | React.ReactNode\n /**\n * Enable auto-hide mode\n * @see See [github docs](https://github.com/sakhnyuk/rc-scrollbars) for description\n */\n autoHide?: boolean\n /**\n * Hide delay in ms.\n */\n autoHideTimeout?: number\n /**\n * Duration for hide animation in ms.\n */\n autoHideDuration?: number\n /**\n * Enable auto-height mode.\n */\n autoHeight?: boolean\n /**\n * Set a minimum height for auto-height mode\n */\n autoHeightMin?: number\n /**\n * Set a maximum height for auto-height mode\n */\n autoHeightMax?: number\n /**\n * Event handler\n */\n onScroll?(): void\n /**\n * Runs inside the animation frame.\n */\n onScrollFrame?(): void\n /**\n * Called when scrolling starts\n */\n onScrollStart?(): void\n /**\n * Called when scrolling stops\n */\n onScrollStop?(): void\n /**\n * Height of shadow\n */\n shadowHeight?: number\n /**\n * Show shadow in scrollable component\n */\n withShadow?: boolean\n /**\n * Color of shadow from #Colors\n */\n shadowColor?: string\n /**\n * Opacity of shadow\n */\n shadowOpacity?: number\n /**\n * Color of thumb\n */\n thumbColor?: string\n /**\n * Opacity of thumb\n */\n thumbOpacity?: number\n /**\n * Border radius of thumb (px)\n */\n thumbBorderRadius?: number\n /**\n /**\n * Border radius of thumb (px)\n */\n thumbWidth?: number\n /**\n * Color of track (HEX)\n */\n trackColor?: string\n /**\n * Opacity of track\n */\n trackOpacity?: number\n /**\n * Border radius of track (px)\n */\n trackBorderRadius?: number\n /**\n /**\n * Border radius of track (px)\n */\n trackWidth?: number\n /**\n * Style for scrollable container\n */\n style?: object\n /**\n * Classname of scrollable container\n */\n className?: string\n /**\n * Disable scrollbar and return div\n */\n disabled?: boolean\n /**\n * Prevent body scrolling when start|end touched\n */\n isolate?: boolean\n\n theme?: DefaultTheme\n}\n\ntype ScrollableState = {\n scrollTop: number\n scrollHeight: number\n clientHeight: number\n}\n\n// eslint-disable-next-line no-use-before-define\nclass Scrollable extends PureComponent<typeof Scrollable.defaultProps & ScrollableProps, ScrollableState> {\n static displayName = 'Scrollable'\n static defaultProps = {\n autoHide: false,\n autoHideTimeout: 1000,\n autoHideDuration: 200,\n autoHeight: false,\n withShadow: false,\n shadowHeight: 50,\n shadowOpacity: 0.15,\n shadowColor: 'mineShaft',\n thumbColor: 'mineShaft',\n thumbOpacity: 0.15,\n thumbBorderRadius: 1,\n thumbWidth: 4,\n trackColor: '#333333',\n trackOpacity: 0.15,\n trackBorderRadius: 1,\n trackWidth: 4,\n disabled: false,\n isolate: true,\n }\n\n scrollable: HTMLDivElement | null = null\n ts = 0\n\n state = {\n scrollTop: 0,\n scrollHeight: 0,\n clientHeight: 0,\n }\n\n componentDidMount() {\n if (!this.scrollable || !this.scrollable.parentNode) return\n ;(this.scrollable.parentNode as HTMLDivElement).addEventListener('touchstart', this.handleTouchStart, false)\n ;(this.scrollable.parentNode as HTMLDivElement).addEventListener('touchmove', this.handleTouchMove, false)\n ;(this.scrollable.parentNode as HTMLDivElement).addEventListener('wheel', this.handleScroll, false)\n ;(this.scrollable.parentNode as HTMLDivElement).addEventListener(\n 'scroll',\n this.handleScroll as (_e: Event) => void,\n false\n )\n }\n\n componentWillUnmount() {\n if (!this.scrollable || !this.scrollable.parentNode) return\n ;(this.scrollable.parentNode as HTMLDivElement).removeEventListener('touchstart', this.handleTouchStart)\n ;(this.scrollable.parentNode as HTMLDivElement).removeEventListener('touchmove', this.handleTouchMove)\n ;(this.scrollable.parentNode as HTMLDivElement).removeEventListener('wheel', this.handleScroll)\n ;(this.scrollable.parentNode as HTMLDivElement).removeEventListener(\n 'scroll',\n this.handleScroll as (_e: Event) => void\n )\n }\n\n handleTouchStart = (e: TouchEvent) => {\n this.ts = e.touches[0].clientY\n }\n\n handleTouchMove = (e: TouchEvent) => {\n if (!this.props.isolate || !this.scrollable) return true\n\n const scrollarea = this.scrollable.parentNode\n\n if (!scrollarea) return\n\n const te = e.changedTouches[0].clientY\n const dir = this.ts > te ? -1 : 1\n\n const upTouch = dir === 1 && (scrollarea as HTMLDivElement).scrollTop === 0\n const endTouch =\n dir === -1 &&\n Math.floor((scrollarea as HTMLDivElement).scrollTop) ===\n (scrollarea as HTMLDivElement).scrollHeight - (scrollarea as HTMLDivElement).clientHeight\n\n if (upTouch || endTouch) {\n e.preventDefault()\n this.ts = te\n }\n\n return true\n }\n\n handleScroll = (e: WheelEvent) => {\n if (!this.props.isolate || !this.scrollable) return true\n\n const delta = e.deltaY || e.detail\n\n const scrollarea = this.scrollable.parentNode\n\n if (!scrollarea) return\n\n const dir = delta < 0 ? 1 : -1\n\n const upTouch = dir === 1 && (scrollarea as HTMLDivElement).scrollTop === 0\n const endTouch =\n dir === -1 &&\n (scrollarea as HTMLDivElement).scrollTop ===\n (scrollarea as HTMLDivElement).scrollHeight - (scrollarea as HTMLDivElement).clientHeight\n\n if (upTouch || endTouch) {\n e.preventDefault()\n }\n\n return true\n }\n\n handleUpdate = (values: ScrollableState) => {\n const { scrollTop, scrollHeight, clientHeight } = values\n\n this.setState({\n scrollTop,\n scrollHeight,\n clientHeight,\n })\n }\n\n calculateShadowOffset() {\n const { scrollTop, scrollHeight, clientHeight } = this.state\n const { shadowHeight = 50 } = this.props\n\n const diffH = scrollHeight - clientHeight || 0\n\n const a = (scrollTop * 100) / (diffH <= 0 ? 1 : diffH)\n const b = (shadowHeight * a) / 100\n\n return Math.floor(-shadowHeight + b)\n }\n\n hexToRgb = (hex: string) => {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex)\n\n return result\n ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16),\n }\n : null\n }\n\n renderTrack = ({ style, ...props }: { style: React.CSSProperties }, dir: 'vertical' | 'horizontal') => {\n const { trackColor, trackOpacity, trackBorderRadius, trackWidth } = this.props\n\n const hex = trackColor ? this.hexToRgb(trackColor) : null\n\n const trackStyle = {\n background: hex ? `rgba(${hex.r}, ${hex.g}, ${hex.b}, ${trackOpacity})` : `rgba(255,255,255,0)`,\n borderRadius: `${trackBorderRadius}px`,\n zIndex: 14,\n ...(dir === 'vertical'\n ? {\n right: 4,\n top: 2,\n bottom: 2,\n width: `${trackWidth}px`,\n }\n : {\n bottom: 4,\n left: 2,\n right: 2,\n height: `${trackWidth}px`,\n }),\n }\n\n return (\n <div\n style={{\n ...style,\n ...trackStyle,\n }}\n {...props}\n />\n )\n }\n\n renderThumb = ({ style, ...scrollableProps }: { style: React.CSSProperties }) => {\n const { thumbColor, thumbOpacity, thumbBorderRadius, thumbWidth } = this.props\n\n const thumbStyle = {\n opacity: thumbOpacity,\n backgroundColor:\n (this.props.theme as DefaultTheme).colors[thumbColor] || (this.props.theme as DefaultTheme).colors[thumbColor],\n borderRadius: `${thumbBorderRadius}px`,\n width: `${thumbWidth}px`,\n }\n\n return <div style={{ ...style, ...thumbStyle }} {...scrollableProps} />\n }\n\n render() {\n const {\n children,\n withShadow,\n shadowHeight,\n shadowColor,\n shadowOpacity,\n className,\n thumbColor, // eslint-disable-line\n thumbOpacity, // eslint-disable-line\n thumbBorderRadius, // eslint-disable-line\n thumbWidth, // eslint-disable-line\n trackColor, // eslint-disable-line\n trackOpacity, // eslint-disable-line\n trackBorderRadius, // eslint-disable-line\n trackWidth, // eslint-disable-line\n isolate, // eslint-disable-line\n style,\n disabled,\n ...props\n } = this.props\n\n if (disabled) return <div>{children}</div>\n\n const { scrollHeight, clientHeight } = this.state\n\n const shadowOffset = this.calculateShadowOffset()\n\n return (\n <div\n style={{\n ...style,\n position: 'relative',\n }}\n className={className}\n >\n {withShadow && scrollHeight > clientHeight && shadowOffset !== -shadowHeight && (\n <div\n style={{\n position: 'absolute',\n display: 'block',\n height: `${shadowHeight}px`,\n left: 0,\n right: 0,\n top: `-${shadowHeight}px`,\n opacity: shadowOpacity,\n backgroundImage: `linear-gradient(to bottom, ${\n (this.props.theme as DefaultTheme).colors[shadowColor]\n } 20%, rgba(255, 255, 255, 0) 100%)`,\n transform: `translateY(${shadowHeight + shadowOffset}px)`,\n zIndex: 10,\n }}\n />\n )}\n\n {withShadow && scrollHeight > clientHeight && shadowOffset < 0 && (\n <div\n style={{\n position: 'absolute',\n display: 'block',\n height: `${shadowHeight}px`,\n left: 0,\n right: 0,\n bottom: 0,\n opacity: shadowOpacity,\n backgroundImage: `linear-gradient(to top, ${\n (this.props.theme as DefaultTheme).colors[shadowColor]\n } 20%, rgba(255, 255, 255, 0) 100%)`,\n transform: `translateY(${shadowHeight + shadowOffset}px)`,\n zIndex: 10,\n }}\n />\n )}\n\n <Scrollbars\n renderTrackVertical={(nodeProps) => this.renderTrack({ ...nodeProps }, 'vertical')}\n renderTrackHorizontal={(nodeProps) => this.renderTrack({ ...nodeProps }, 'horizontal')}\n renderThumbHorizontal={this.renderThumb}\n renderThumbVertical={this.renderThumb}\n onUpdate={this.handleUpdate}\n hideTracksWhenNotNeeded\n {...props}\n >\n <div\n ref={(node) => {\n this.scrollable = node\n }}\n >\n {children}\n </div>\n </Scrollbars>\n </div>\n )\n }\n}\n\n/**\n * Scrollable component for create custom scrollable content\n *\n * Based on https://github.com/sakhnyuk/rc-scrollbars\n */\nconst withThemeScrollable = withTheme(Scrollable)\n\nwithThemeScrollable.displayName = 'Scrollable'\n\nexport { withThemeScrollable as Scrollable }\n","import styled, { css } from 'styled-components'\nimport { color } from 'mixins/color'\nimport { Spacer } from 'components/Spacer'\nimport { SectionProps } from './Section'\n\nconst zDepth = {\n 1: css`\n box-shadow: 0 15px 20px 0 rgba(27, 55, 147, 0.06);\n `,\n 2: css`\n box-shadow: rgba(0, 0, 0, 0.156863) 0px 3px 10px, rgba(0, 0, 0, 0.227451) 0px 3px 10px;\n `,\n 3: css`\n box-shadow: rgba(0, 0, 0, 0.188235) 0px 10px 30px, rgba(0, 0, 0, 0.227451) 0px 6px 10px;\n `,\n 4: css`\n box-shadow: rgba(0, 0, 0, 0.247059) 0px 14px 45px, rgba(0, 0, 0, 0.219608) 0px 10px 18px;\n `,\n 5: css`\n box-shadow: rgba(0, 0, 0, 0.298039) 0px 19px 60px, rgba(0, 0, 0, 0.219608) 0px 15px 20px;\n `,\n}\n\nexport const Root = styled(Spacer)<SectionProps>`\n display: block;\n color: #000;\n background-color: ${(props) => props.theme.colors.white};\n ${(props) =>\n props.textAlign\n ? css`\n text-align: ${props.textAlign};\n `\n : null}\n ${(props) => (typeof props.zDepth === 'number' ? zDepth[props.zDepth] : null)}\n ${(props) => (props.color ? color(props.color, 'background-color') : null)}\n`\n","import { ColorProperty } from 'mixins/color'\nimport { DisplayProperty } from 'mixins/display'\nimport { ResponsiveNamedProperty } from 'mixins/responsive-property'\nimport { BaseProps } from 'shared/interfaces'\nimport * as Styled from './style'\n\nexport interface SectionProps extends BaseProps, DisplayProperty, ColorProperty, ResponsiveNamedProperty<'padding'> {\n /**\n * Paper with shadow\n */\n shadow?: boolean\n /**\n * This number represents the zDepth of the paper shadow\n */\n zDepth?: 1 | 2 | 3 | 4 | 5\n /**\n * Section content\n */\n /**\n * Children react node\n */\n children?: React.ReactNode\n /**\n * Text align\n */\n textAlign?: 'left' | 'right' | 'center'\n}\n\nSection.displayName = 'Section'\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`Color`](#/Миксины)\n * - [`Display`](#/Миксины)\n * - [`ResponsiveNamedProperty<'padding'>`](#/Миксины)\n */\nexport function Section(props: SectionProps) {\n return <Styled.Root {...props} />\n}\n","import styled, { css } from 'styled-components'\nimport { color } from 'mixins/color'\nimport { property, responsiveNamedProperty } from 'mixins/responsive-property'\nimport { Text as UiText } from '../Text'\nimport { SeparatorProps } from './Separator'\n\nconst WEIGHT_MAP = {\n 1: '0.05em',\n 2: '0.1em',\n 3: '0.15em',\n 4: '0.25em',\n 5: '0.3em',\n}\n\nexport const Text = styled(UiText)`\n position: absolute;\n z-index: 1;\n display: inline-block;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n padding: 0 12px;\n background-color: ${(props) => props.theme.colors.white};\n`\n\nexport const TextRoot = styled.div`\n display: block;\n width: auto;\n position: relative;\n z-index: 0;\n text-align: center;\n`\n\nexport const Root = styled.div.withConfig<SeparatorProps>({\n shouldForwardProp: (prop) => ['children', 'className', 'style'].includes(prop),\n})`\n display: block;\n width: auto;\n background-color: currentColor;\n ${(props) => css`\n height: ${WEIGHT_MAP[props.weight || 1]};\n `}\n ${(props) => (props.color ? color(props.color, 'color') : null)}\n\n /** BEGIN paddings */\n ${(props) => (props.padding ? property(props.padding, 'padding') : null)}\n ${(props) => (props.paddingTop ? property(props.paddingTop, 'padding-top') : null)}\n ${(props) => (props.paddingRight ? property(props.paddingRight, 'padding-right') : null)}\n ${(props) => (props.paddingBottom ? property(props.paddingBottom, 'padding-bottom') : null)}\n ${(props) => (props.paddingLeft ? property(props.paddingLeft, 'padding-left') : null)}\n /** END paddings */ \n\n /** BEGIN margins */\n ${(props) => (props.margin ? property(props.margin, 'margin') : null)}\n ${(props) => (props.marginTop ? property(props.marginTop, 'margin-top') : null)}\n ${(props) => (props.marginRight ? property(props.marginRight, 'margin-right') : null)}\n ${(props) => (props.marginBottom ? property(props.marginBottom, 'margin-bottom') : null)}\n ${(props) => (props.marginLeft ? property(props.marginLeft, 'margin-left') : null)}\n /** END margins */ \n\n /** BEGIN Responsive paddings */\n ${({ paddingXS, paddingS, paddingM, paddingL, paddingXL }) =>\n responsiveNamedProperty({ sizes: { paddingXS, paddingS, paddingM, paddingL, paddingXL }, cssProperty: 'padding' })}\n ${({ paddingTopXS, paddingTopS, paddingTopM, paddingTopL, paddingTopXL }) =>\n responsiveNamedProperty({\n sizes: { paddingTopXS, paddingTopS, paddingTopM, paddingTopL, paddingTopXL },\n cssProperty: 'padding-top',\n })}\n ${({ paddingRightXS, paddingRightS, paddingRightM, paddingRightL, paddingRightXL }) =>\n responsiveNamedProperty({\n sizes: { paddingRightXS, paddingRightS, paddingRightM, paddingRightL, paddingRightXL },\n cssProperty: 'padding-right',\n })}\n ${({ paddingBottomXS, paddingBottomS, paddingBottomM, paddingBottomL, paddingBottomXL }) =>\n responsiveNamedProperty({\n sizes: { paddingBottomXS, paddingBottomS, paddingBottomM, paddingBottomL, paddingBottomXL },\n cssProperty: 'padding-bottom',\n })}\n ${({ paddingLeftXS, paddingLeftS, paddingLeftM, paddingLeftL, paddingLeftXL }) =>\n responsiveNamedProperty({\n sizes: { paddingLeftXS, paddingLeftS, paddingLeftM, paddingLeftL, paddingLeftXL },\n cssProperty: 'padding-left',\n })}\n /** END Responsive paddings */ \n\n /** BEGIN Responsive margins */\n ${({ marginXS, marginS, marginM, marginL, marginXL }) =>\n responsiveNamedProperty({ sizes: { marginXS, marginS, marginM, marginL, marginXL }, cssProperty: 'margin' })}\n ${({ marginTopXS, marginTopS, marginTopM, marginTopL, marginTopXL }) =>\n responsiveNamedProperty({\n sizes: { marginTopXS, marginTopS, marginTopM, marginTopL, marginTopXL },\n cssProperty: 'margin-top',\n })}\n ${({ marginRightXS, marginRightS, marginRightM, marginRightL, marginRightXL }) =>\n responsiveNamedProperty({\n sizes: { marginRightXS, marginRightS, marginRightM, marginRightL, marginRightXL },\n cssProperty: 'margin-right',\n })}\n ${({ marginBottomXS, marginBottomS, marginBottomM, marginBottomL, marginBottomXL }) =>\n responsiveNamedProperty({\n sizes: { marginBottomXS, marginBottomS, marginBottomM, marginBottomL, marginBottomXL },\n cssProperty: 'margin-bottom',\n })}\n ${({ marginLeftXS, marginLeftS, marginLeftM, marginLeftL, marginLeftXL }) =>\n responsiveNamedProperty({\n sizes: { marginLeftXS, marginLeftS, marginLeftM, marginLeftL, marginLeftXL },\n cssProperty: 'margin-left',\n })}\n /** END Responsive margins */\n\n ${(props) => (props.top ? property(props.top, 'padding-top') : null)}\n ${(props) => (props.right ? property(props.right, 'padding-right') : null)}\n ${(props) => (props.bottom ? property(props.bottom, 'padding-bottom') : null)}\n ${(props) => (props.left ? property(props.left, 'padding-left') : null)}\n\n ${({ topXS, topS, topM, topL, topXL }) =>\n responsiveNamedProperty({ sizes: { topXS, topS, topM, topL, topXL }, cssProperty: 'padding-top' })}\n ${({ rightXS, rightS, rightM, rightL, rightXL }) =>\n responsiveNamedProperty({ sizes: { rightXS, rightS, rightM, rightL, rightXL }, cssProperty: 'padding-right' })}\n ${({ bottomXS, bottomS, bottomM, bottomL, bottomXL }) =>\n responsiveNamedProperty({\n sizes: { bottomXS, bottomS, bottomM, bottomL, bottomXL },\n cssProperty: 'padding-bottom',\n })}\n ${({ leftXS, leftS, leftM, leftL, leftXL }) =>\n responsiveNamedProperty({ sizes: { leftXS, leftS, leftM, leftL, leftXL }, cssProperty: 'padding-left' })}\n`\n","import { ColorProperty } from 'mixins/color'\nimport { ResponsiveNamedProperty } from 'mixins/responsive-property'\nimport { BaseProps } from 'shared/interfaces'\nimport { SeparatorText } from './SeparatorText'\nimport * as Styled from './style'\n\nexport interface SeparatorProps\n extends BaseProps,\n ColorProperty,\n ResponsiveNamedProperty<'top'>,\n ResponsiveNamedProperty<'right'>,\n ResponsiveNamedProperty<'bottom'>,\n ResponsiveNamedProperty<'left'>,\n ResponsiveNamedProperty<'padding'>,\n ResponsiveNamedProperty<'paddingTop'>,\n ResponsiveNamedProperty<'paddingRight'>,\n ResponsiveNamedProperty<'paddingBottom'>,\n ResponsiveNamedProperty<'paddingLeft'>,\n ResponsiveNamedProperty<'margin'>,\n ResponsiveNamedProperty<'marginTop'>,\n ResponsiveNamedProperty<'marginRight'>,\n ResponsiveNamedProperty<'marginBottom'>,\n ResponsiveNamedProperty<'marginLeft'> {\n /**\n * Separator weight\n */\n weight?: 1 | 2 | 3 | 4 | 5\n}\n\nSeparator.defaultProps = {\n margin: 's',\n color: 'grey',\n weight: 1,\n}\n\nSeparator.Text = SeparatorText\nSeparator.displayName = 'Separator'\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`Color`](#/Миксины)\n * - [`Color<'fontColor'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'top'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'right'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'bottom'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'left'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'padding'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'paddingTop'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'paddingRight'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'paddingBottom'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'paddingLeft'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'margin'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'marginTop'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'marginRight'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'marginBottom'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'marginLeft'>`](#/Миксины)\n */\nexport function Separator(props: typeof Separator.defaultProps & SeparatorProps) {\n return <Styled.Root {...props} />\n}\n","import { ColorProperty } from 'mixins/color'\nimport { BaseProps } from 'shared/interfaces'\nimport { Separator } from './Separator'\nimport * as Styled from './style'\n\nexport interface SeparatorTextProps extends BaseProps, ColorProperty {\n /**\n * Children react node\n */\n children?: React.ReactNode\n}\n\nexport function SeparatorText({ children, className, color, ...restProps }: SeparatorTextProps) {\n return (\n <Styled.TextRoot>\n <Separator className={className} color={color} {...restProps} />\n <Styled.Text color={color}>{children}</Styled.Text>\n </Styled.TextRoot>\n )\n}\n","import styled, { css, keyframes } from 'styled-components'\nimport { responsiveNamedProperty, property, ResponsiveNamedProperty, CalcProperty } from 'mixins/responsive-property'\nimport { SpinnerProps } from './Spinner'\n\nconst SIZES = {\n l: 60,\n m: 40,\n s: 20,\n}\n\nconst spinner = keyframes`\n to {\n transform: rotate(360deg);\n }\n`\n\nconst fullscreen = css`\n height: 100vh;\n margin: 0 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n`\n\nconst inline = css`\n display: inline-block;\n vertical-align: middle;\n margin: 0;\n`\n\nconst sizeBuilder: CalcProperty = (size, sizing = 'px') => {\n if (size === 0) return null\n return css`\n width: ${size as number}${sizing};\n height: ${size as number}${sizing};\n &:before {\n width: ${size as number}${sizing};\n height: ${size as number}${sizing};\n margin-top: -${(size as number) / 2}${sizing};\n margin-left: -${(size as number) / 2}${sizing};\n }\n `\n}\n\nconst getSize = (size: ResponsiveNamedProperty<'size'>['size']): number => {\n if (!size || typeof size === 'boolean') return 0\n if (typeof size === 'number') return size\n if (SIZES[size]) return SIZES[size]\n return 0\n}\n\nexport const Root = styled.div.withConfig<SpinnerProps>({\n shouldForwardProp: (prop) => ['className', 'style'].includes(prop),\n})`\n display: block;\n position: relative;\n display: block;\n margin: 30px auto;\n &:before {\n content: '';\n box-sizing: border-box;\n position: absolute;\n top: 50%;\n left: 50%;\n border-radius: 50%;\n border: 2px solid #eee;\n border-top-color: #459ff3;\n animation: ${spinner} 0.6s linear infinite;\n }\n ${(props) => (props.inline ? inline : null)}\n\n ${(props) => (props.size ? property(SIZES[props.size] || props.size, sizeBuilder) : null)}\n ${({ sizeXS, sizeS, sizeM, sizeL, sizeXL }) => {\n return responsiveNamedProperty({\n sizes: {\n sizeXS: getSize(sizeXS),\n sizeS: getSize(sizeS),\n sizeM: getSize(sizeM),\n sizeL: getSize(sizeL),\n sizeXL: getSize(sizeXL),\n },\n cssProperty: sizeBuilder,\n })\n }}\n\n ${(props) => (props.fullscreen ? fullscreen : null)}\n`\n","import { ResponsiveNamedProperty } from 'mixins/responsive-property'\nimport { useClassname } from 'hooks/useClassname'\nimport { BaseProps } from 'shared/interfaces'\nimport * as Styled from './style'\n\nexport interface SpinnerProps extends BaseProps, ResponsiveNamedProperty<'size'> {\n /**\n * Size of spinner\n */\n size?: 'l' | 's' | 'm' | number\n /**\n * Vertically center the spinner inside 100vh container\n */\n fullscreen?: boolean\n /**\n * Inline. Has no top/bottom margins\n */\n inline?: boolean\n}\n\nSpinner.defaultProps = {\n size: 'm',\n}\n\nSpinner.displayName = 'Spinner'\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`ResponsiveNamedProperty<'size'>`](#/Миксины)\n */\nexport function Spinner({ className, ...props }: typeof Spinner.defaultProps & SpinnerProps) {\n const _className = useClassname(Spinner.displayName, className)\n\n return <Styled.Root className={_className} {...props} />\n}\n","import type { SwitcherPropsByPreset } from './types'\n\nexport const DEFAULT_PROPS: SwitcherPropsByPreset = {\n switcherWidth: 60,\n switcherHeight: 32,\n borderRadius: 40,\n dotSize: 24,\n}\n\nexport const BRAND_PROPS: SwitcherPropsByPreset = {\n switcherWidth: 44,\n switcherHeight: 24,\n borderRadius: 48,\n dotSize: 16,\n}\n","import styled, { css } from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport { getColor } from 'mixins/color'\nimport type { StyledSwitcherProps, SwitcherPropsByPreset } from './types'\n\nexport const Input = styled.input`\n position: absolute;\n overflow: visible;\n z-index: -1;\n opacity: 0;\n width: 0;\n height: 0;\n margin: 0;\n`\n\nexport const Label = styled.label`\n display: inline;\n padding-left: 14px;\n cursor: pointer;\n user-select: none;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n`\n\nexport const Switcher = styled.label<SwitcherPropsByPreset>`\n position: relative;\n display: block;\n box-sizing: border-box;\n width: ${(props) => props.switcherWidth}px;\n height: ${(props) => props.switcherHeight}px;\n cursor: pointer;\n user-select: none;\n transition: background 0.3s ease, background-image 0.3s ease;\n border-radius: ${(props) => props.borderRadius}px;\n flex: 0 0 auto;\n\n &::before {\n position: absolute;\n top: ${({ switcherHeight, dotSize }) => (switcherHeight - dotSize) / 2}px;\n left: ${({ switcherHeight, dotSize }) => (switcherHeight - dotSize) / 2}px;\n display: block;\n width: ${(props) => props.dotSize}px;\n height: ${(props) => props.dotSize}px;\n content: '';\n transition: background 0.3s ease, left 0.3s ease;\n transform: translateZ(0);\n border-radius: 50%;\n }\n`\n\nconst disabledStyles = `\n cursor: not-allowed;\n opacity: 0.7;\n\n & ${Switcher} {\n cursor: not-allowed;\n box-shadow: none;\n\n &::before {\n box-shadow: none;\n }\n }\n\n & ${Label} {\n cursor: not-allowed;\n }\n`\n\nconst checkedStyles = css<StyledSwitcherProps>`\n & ${Switcher} {\n &::before {\n left: ${({ switcherWidth, switcherHeight, dotSize }) =>\n switcherWidth - dotSize - (switcherHeight - dotSize) / 2}px;\n }\n }\n`\n\nconst baseStyles = css<StyledSwitcherProps>`\n ${(props) => `\n position: relative;\n display: inline-flex;\n flex-direction: row;\n box-sizing: border-box;\n height: ${props.switcherHeight}px;\n line-height: ${props.switcherHeight}px;\n vertical-align: middle;\n justify-content: flex-start;\n align-content: center;\n align-items: center;\n max-width: 100%;\n color: inherit;\n `}\n`\n\nconst defaultPresetStyle = css<StyledSwitcherProps>`\n ${(props) => {\n const color = props.color || 'atlantis'\n\n return `\n & ${Switcher} {\n box-shadow: inset 0 2px 2px 0 rgba(0, 0, 0, 0.08);\n background-color: #eaecf3;\n\n &::before {\n background-color: ${props.theme.colors.white};\n box-shadow: ${props.disabled ? 'none' : '0 0 6px 0 rgba(0, 0, 0, 0.16)'};\n }\n\n ${\n props.inactiveColor\n ? `\n background-image: linear-gradient(\n to right,\n ${tinycolor(getColor(props.inactiveColor, props)).lighten(10).toString()},\n ${getColor(props.inactiveColor, props)}\n );\n `\n : ''\n }\n\n ${\n props.checked\n ? `\n background-image: linear-gradient(\n to right,\n ${tinycolor(getColor(color, props)).lighten(10).toString()},\n ${getColor(color, props)}\n );\n `\n : ''\n }\n }\n\n & ${Input}:focus-visible + ${Switcher} {\n outline: 1px solid ${getColor(color, props)};\n outline-offset: 2px;\n }\n `\n }}\n`\n\nconst brandPresetStyles = css<StyledSwitcherProps>`\n ${(props) => `\n & ${Switcher} {\n background-color: ${\n props.disabled\n ? props.theme.colors[props.checked ? 'bg-disabled-active' : 'bg-disabled-small']\n : props.theme.colors[props.checked ? 'bg-brand-primary-basic' : 'bg-onmain-tertiary']\n };\n\n &::before {\n background-color: ${props.theme.colors['bg-oncolor-primary']};\n box-shadow: ${props.disabled ? 'none' : '0px 2px 4px rgba(0, 0, 0, 0.08)'};\n }\n\n ${!props.checked && props.inactiveColor ? `background-color: ${getColor(props.inactiveColor, props)};` : ''}\n ${props.checked && props.color ? `background-color: ${getColor(props.color, props)};` : ''}\n }\n\n & ${Input}:focus-visible + ${Switcher} {\n box-shadow: 0 0 0 2px ${props.theme.colors.white}, 0 0 0 4px ${props.theme.colors['border-focus']};\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n `}\n`\n\nexport const Root = styled.div.withConfig<StyledSwitcherProps>({\n shouldForwardProp: (prop) => ['children', 'className', 'style'].includes(prop),\n})`\n ${baseStyles}\n\n ${(props) => (props.checked ? checkedStyles : '')}\n ${(props) => (props.disabled ? disabledStyles : '')}\n ${({ brandPresetUsed }) => (brandPresetUsed ? brandPresetStyles : defaultPresetStyle)}\n`\n","import { forwardRef } from 'react'\nimport { useTheme } from 'styled-components'\nimport { useConfigPriority } from 'hooks/use-config-priority'\nimport type { SwitcherProps } from './types'\nimport { DEFAULT_PROPS, BRAND_PROPS } from './constants'\nimport * as Styled from './style'\n\nconst COMPONENT_NAME = 'Switcher'\n\nconst Switcher = forwardRef<HTMLDivElement, SwitcherProps>((props, ref) => {\n const theme = useTheme()\n\n const {\n value = false,\n disabled = false,\n tabIndex,\n id,\n name,\n children,\n onChange,\n ...config\n } = useConfigPriority<SwitcherProps>(theme.components?.Switcher, props)\n\n let brandPresetUsed = theme.preset === 'brand'\n if (typeof config.preset === 'string') brandPresetUsed = config.preset === 'brand'\n\n const propsByPreset = brandPresetUsed ? BRAND_PROPS : DEFAULT_PROPS\n\n const handleChange: React.ChangeEventHandler<HTMLInputElement> = (event) => {\n if (!disabled && typeof onChange === 'function') onChange(event.target.checked, event)\n }\n\n return (\n <Styled.Root\n {...config}\n {...propsByPreset}\n ref={ref}\n checked={value}\n disabled={disabled}\n brandPresetUsed={brandPresetUsed}\n >\n <Styled.Input\n id={id}\n name={name}\n checked={value}\n type='checkbox'\n tabIndex={tabIndex}\n onChange={handleChange}\n disabled={disabled}\n />\n <Styled.Switcher htmlFor={id} {...propsByPreset} />\n {children ? <Styled.Label htmlFor={id}>{children}</Styled.Label> : null}\n </Styled.Root>\n )\n})\n\nSwitcher.displayName = COMPONENT_NAME\n\nexport { Switcher, COMPONENT_NAME }\n\nexport type { SwitcherProps }\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n height: 60,\n fontSize: 20,\n },\n xxl: {\n height: 56,\n fontSize: 20,\n },\n xl: {\n height: 52,\n fontSize: 18,\n },\n l: {\n height: 48,\n fontSize: 18,\n },\n m: {\n height: 44,\n fontSize: 16,\n },\n s: {\n height: 40,\n fontSize: 16,\n },\n xs: {\n height: 36,\n fontSize: 14,\n },\n xxs: {\n height: 32,\n fontSize: 14,\n },\n xxxs: {\n height: 28,\n fontSize: 12,\n },\n}\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES_DEFAULT: Sizes = {\n xxxl: {},\n xxl: {},\n xl: {},\n l: {},\n m: {},\n s: {},\n xs: {},\n xxs: {},\n xxxs: {},\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 21 48\" fill=\"none\" preserveAspectRatio=\"none\"><path d=\"M22 0h-3L1 24l18 24h3\" fill=\"currentcolor\"/></svg>","import styled, { css } from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport { getColor } from 'mixins/color'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { responsiveMargin } from 'mixins/responsive-margin'\nimport { focus } from 'mixins/focus'\nimport type { CSSColor } from 'shared/types'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport type { StyledTabProps, StyledTabEdgeProps, TabPalette } from './types'\nimport Arrow from './images/arrow.module.svg'\n\nconst shouldForwardTabProp = createShouldForwardProp(\n (propKey) =>\n ![\n 'active',\n 'compact',\n 'crispy',\n 'crispyCompact',\n 'tabTheme',\n 'left',\n 'right',\n 'rounded',\n 'outline',\n 'onColored',\n 'black',\n ].includes(propKey)\n)\n\nconst DEFAULT_STYLES = {\n default: css<StyledTabProps>`\n ${(props) => `\n font-size: 16px;\n font-weight: bold;\n padding-bottom: 12px;\n color: ${props.active ? props.theme.colors.primary : props.theme.colors.mineShaft};\n border-bottom: 2px solid ${props.active ? 'currentcolor' : 'transparent'};\n &:hover {\n color: ${props.theme.colors.primary};\n }\n &.active {\n color: ${props.theme.colors.primary};\n border-bottom-color: currentcolor;\n }\n & + & {\n margin-left: 60px;\n }\n `}\n `,\n compact: css<StyledTabProps>`\n ${(props) => `\n font-size: 16px;\n font-weight: normal;\n padding-bottom: 10px;\n color: ${props.active ? props.theme.colors.primary : props.theme.colors.mineShaft};\n border-bottom: 2px solid ${props.active ? 'currentcolor' : 'transparent'};\n &:hover {\n color: ${props.theme.colors.primary};\n }\n &.active {\n color: ${props.theme.colors.primary};\n border-bottom-color: currentcolor;\n }\n & + & {\n margin-left: 20px;\n }\n `}\n `,\n crispyCompact: css<StyledTabProps>`\n ${(props) => `\n font-size: 12px;\n font-weight: bold;\n padding-bottom: 6px;\n text-transform: uppercase;\n color: ${props.active ? props.theme.colors.primary : props.theme.colors.mineShaft};\n border-bottom: 2px solid ${props.active ? 'currentcolor' : 'transparent'};\n &:hover {\n color: ${props.theme.colors.primary};\n }\n &.active {\n color: ${props.theme.colors.primary};\n border-bottom-color: currentcolor;\n }\n & + & {\n margin-left: 18px;\n }\n `}\n `,\n crispy: css<StyledTabProps>`\n ${(props) => `\n font-size: 12px;\n font-weight: bold;\n padding-bottom: 14px;\n text-transform: uppercase;\n color: ${props.active ? props.theme.colors.primary : props.theme.colors.mineShaft};\n border-bottom: 2px solid ${props.active ? 'currentcolor' : 'transparent'};\n &:hover {\n color: ${props.theme.colors.primary};\n }\n &.active {\n color: ${props.theme.colors.primary};\n border-bottom-color: currentcolor;\n }\n & + & {\n margin-left: 32px;\n }\n `}\n `,\n}\n\nexport const Content = styled.span`\n box-sizing: border-box;\n position: relative;\n z-index: 1;\n display: flex;\n align-items: center;\n flex-grow: 1;\n flex-shrink: 0;\n height: 100%;\n padding: 0 1em;\n border: 1px solid transparent;\n transition-property: background-color, border-color;\n`\n\nexport const Edge = styled(Arrow).withConfig({\n shouldForwardProp: () => false,\n})<StyledTabEdgeProps>`\n box-sizing: border-box;\n flex-shrink: 0;\n height: 100%;\n transition-property: color, stroke;\n ${(props) => props.after && 'transform: rotate(180deg);'}\n`\n\nconst template = (palette: TabPalette) => `\n & > ${Content} {\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n border-color: ${palette.borderColor};\n }\n & > ${Edge} {\n color: ${palette.backgroundColor};\n stroke: ${palette.borderColor};\n }\n &:hover > ${Content} {\n color: ${palette.colorHover};\n background-color: ${palette.backgroundColorHover};\n border-color: ${palette.borderColorHover};\n }\n &:hover > ${Edge} {\n color: ${palette.backgroundColorHover};\n stroke: ${palette.borderColorHover};\n }\n &:disabled > ${Content} {\n color: ${palette.colorDisabled};\n background-color: ${palette.backgroundColorDisabled};\n border-color: ${palette.borderColorDisabled};\n }\n &:disabled > ${Edge} {\n color: ${palette.backgroundColorDisabled};\n stroke: ${palette.borderColorDisabled};\n }\n`\n\nconst COLOR_SCHEMA = {\n default: {\n default: css<StyledTabProps>`\n ${(props) =>\n template({\n color: props.active\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-onmain-primary'],\n backgroundColor: props.active\n ? props.theme.colors['bg-brand-primary-500']\n : props.theme.colors['bg-onmain-tertiary'],\n borderColor: props.active\n ? props.theme.colors['bg-brand-primary-500']\n : props.theme.colors['bg-onmain-tertiary'],\n colorHover: props.active\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-onmain-primary'],\n backgroundColorHover: props.active\n ? props.theme.colors['bg-brand-primary-500']\n : (tinycolor(props.theme.colors['bg-onmain-tertiary']).darken(6).toString() as CSSColor),\n borderColorHover: props.active\n ? props.theme.colors['bg-brand-primary-500']\n : (tinycolor(props.theme.colors['bg-onmain-tertiary']).darken(6).toString() as CSSColor),\n colorDisabled: props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors['bg-disabled-large'],\n ...props.palette,\n })}\n `,\n outline: css<StyledTabProps>`\n ${(props) =>\n template({\n color: props.active\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-onmain-primary'],\n backgroundColor: props.active\n ? props.theme.colors['bg-brand-primary-500']\n : props.theme.colors['bg-onmain-primary'],\n borderColor: props.active\n ? props.theme.colors['bg-brand-primary-500']\n : props.theme.colors['border-onmain-default-large'],\n colorHover: props.active\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-onmain-primary'],\n backgroundColorHover: props.active\n ? props.theme.colors['bg-brand-primary-500']\n : (tinycolor(props.theme.colors['bg-onmain-primary']).darken(6).toString() as CSSColor),\n borderColorHover: props.active\n ? props.theme.colors['bg-brand-primary-500']\n : props.theme.colors['border-onmain-default-large'],\n colorDisabled: props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors['bg-disabled-large'],\n ...props.palette,\n })}\n `,\n },\n onColored: {\n default: css<StyledTabProps>`\n ${(props) =>\n template({\n color: props.active\n ? props.theme.colors['content-brand-primary']\n : props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.active\n ? props.theme.colors['bg-onmain-primary']\n : (tinycolor(props.theme.colors['bg-brand-primary-500']).lighten(10).toString() as CSSColor),\n borderColor: props.active\n ? props.theme.colors['bg-onmain-primary']\n : (tinycolor(props.theme.colors['bg-brand-primary-500']).lighten(10).toString() as CSSColor),\n colorHover: props.active\n ? props.theme.colors['content-brand-primary']\n : props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.active\n ? props.theme.colors['bg-onmain-primary']\n : (tinycolor(props.theme.colors['bg-brand-primary-500']).lighten(5).toString() as CSSColor),\n borderColorHover: props.active\n ? props.theme.colors['bg-onmain-primary']\n : (tinycolor(props.theme.colors['bg-brand-primary-500']).lighten(5).toString() as CSSColor),\n colorDisabled: props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-small'],\n borderColorDisabled: props.theme.colors['bg-disabled-small'],\n ...props.palette,\n })}\n `,\n outline: css<StyledTabProps>`\n ${(props) =>\n template({\n color: props.active\n ? props.theme.colors['content-brand-primary']\n : props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.active\n ? props.theme.colors['bg-onmain-primary']\n : props.theme.colors['bg-brand-primary-500'],\n borderColor: props.theme.colors['bg-onmain-primary'],\n colorHover: props.active\n ? props.theme.colors['content-brand-primary']\n : props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.active\n ? props.theme.colors['bg-onmain-primary']\n : (tinycolor(props.theme.colors['bg-brand-primary-500']).darken(3).toString() as CSSColor),\n borderColorHover: props.theme.colors['bg-onmain-primary'],\n colorDisabled: props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-small'],\n borderColorDisabled: props.theme.colors['bg-disabled-small'],\n ...props.palette,\n })}\n `,\n },\n black: {\n default: css<StyledTabProps>`\n ${(props) =>\n template({\n color: props.active\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-onmain-primary'],\n backgroundColor: props.active\n ? props.theme.colors['bg-onmain-contrast']\n : props.theme.colors['bg-onmain-tertiary'],\n borderColor: props.active\n ? props.theme.colors['bg-onmain-contrast']\n : props.theme.colors['bg-onmain-tertiary'],\n colorHover: props.active\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-onmain-primary'],\n backgroundColorHover: props.active\n ? props.theme.colors['bg-onmain-contrast']\n : (tinycolor(props.theme.colors['bg-onmain-tertiary']).darken(6).toString() as CSSColor),\n borderColorHover: props.active\n ? props.theme.colors['bg-onmain-contrast']\n : (tinycolor(props.theme.colors['bg-onmain-tertiary']).darken(6).toString() as CSSColor),\n colorDisabled: props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors['bg-disabled-large'],\n ...props.palette,\n })}\n `,\n outline: css<StyledTabProps>`\n ${(props) =>\n template({\n color: props.active\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-onmain-primary'],\n backgroundColor: props.active\n ? props.theme.colors['bg-onmain-contrast']\n : props.theme.colors['bg-onmain-primary'],\n borderColor: props.active\n ? props.theme.colors['bg-onmain-contrast']\n : props.theme.colors['border-onmain-default-large'],\n colorHover: props.active\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-onmain-primary'],\n backgroundColorHover: props.active\n ? props.theme.colors['bg-onmain-contrast']\n : (tinycolor(props.theme.colors['bg-onmain-primary']).darken(6).toString() as CSSColor),\n borderColorHover: props.active\n ? props.theme.colors['bg-onmain-contrast']\n : props.theme.colors['border-onmain-default-large'],\n colorDisabled: props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors['bg-disabled-large'],\n ...props.palette,\n })}\n `,\n },\n}\n\nexport const Root = styled.button\n .withConfig<StyledTabProps>({\n shouldForwardProp: shouldForwardTabProp,\n })\n .attrs(<Required<Pick<StyledTabProps, 'dynamicSizeDeclaration'>>>{\n dynamicSizeDeclaration: (size, sizeUnits) => {\n return {\n height: '2.8em',\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n }\n },\n })`\n ${(props) => {\n const radius = props.rounded ? 8 : 0\n const leftRadius = props.left ? 0 : radius\n const rightRadius = props.right ? 0 : radius\n\n return `\n box-sizing: border-box;\n display: ${props.preset === 'brand' ? 'inline-flex' : 'inline-block'};\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n isolation: isolate;\n flex-shrink: 0;\n appearance: none;\n padding: 0;\n border: none;\n background-color: transparent;\n text-decoration: none;\n width: max-content;\n & > ${Content}, \n & > ${Edge} {\n transition-duration: 250ms;\n }\n & > ${Content} {\n border-radius: ${leftRadius}px ${rightRadius}px ${rightRadius}px ${leftRadius}px;\n border-left-style: ${props.left ? 'none' : 'solid'};\n border-right-style: ${props.right ? 'none' : 'solid'};\n margin-left: ${props.left ? -2 : 0}px;\n margin-right: ${props.right ? -2 : 0}px;\n }\n `\n }}\n\n ${(props) => {\n if (props.preset === 'brand') {\n let schema = COLOR_SCHEMA.default\n\n if (props.black) schema = COLOR_SCHEMA.black\n if (props.onColored) schema = COLOR_SCHEMA.onColored\n\n return props.outline ? schema.outline : schema.default\n }\n\n if (props.compact || props.tabTheme === 'compact') return DEFAULT_STYLES.compact\n if (props.crispyCompact || props.tabTheme === 'crispyCompact') return DEFAULT_STYLES.crispyCompact\n if (props.crispy || props.tabTheme === 'crispy') return DEFAULT_STYLES.crispy\n\n return DEFAULT_STYLES.default\n }}\n\n ${focus}\n ${responsiveSize}\n ${responsiveMargin}\n\n ${(props) => props.color && `color: ${getColor(props.color, props)};`}\n ${(props) => props.borderColor && `border-color: ${getColor(props.borderColor, props)};`}\n`\n","import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { Text } from 'components/Text'\nimport type { TextProps } from 'components/Text'\nimport { SIZES } from './constants'\nimport { SIZES_DEFAULT } from './default-constants'\nimport * as Styled from './style'\nimport type { TabProps } from './types'\n\nconst COMPONENT_NAME = 'Tab'\n\n/**\n *\n * Component accepts all \\<button\\> attributes.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [TabProps](https://github.com/foxford/ui/blob/master/src/components/Tab/types.ts)\n */\nconst Tab: React.ForwardRefExoticComponent<TabProps> = withMergedProps<TabProps, HTMLButtonElement>(\n forwardRef((props, ref) => {\n const { size = 'm', type = 'button', textProps = {}, children, theme, ...restProps } = props\n\n const baseTextProps: TextProps = { as: 'span', size: 'inherit', color: 'inherit', weight: 'inherit' }\n\n return (\n <Styled.Root\n {...restProps}\n size={size}\n tabTheme={theme}\n type={restProps.as === undefined ? type : undefined}\n ref={ref}\n >\n {restProps.preset === 'brand' ? (\n <>\n {restProps.left && <Styled.Edge />}\n <Styled.Content>\n {typeof children === 'function' ? (\n children({ baseTextProps, textProps })\n ) : (\n <Text {...baseTextProps} {...textProps}>\n {children}\n </Text>\n )}\n </Styled.Content>\n {restProps.right && <Styled.Edge after />}\n </>\n ) : (\n <>\n {typeof children === 'function' ? (\n children({ baseTextProps, textProps })\n ) : (\n <Text {...baseTextProps} {...textProps}>\n {children}\n </Text>\n )}\n </>\n )}\n </Styled.Root>\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: (props) => {\n return props.preset === 'brand' ? SIZES : SIZES_DEFAULT\n },\n }\n)\n\nexport { Tab, COMPONENT_NAME }\n","import styled, { css } from 'styled-components'\nimport { color } from 'mixins/color'\nimport { responsiveProperty } from 'mixins/responsive-property'\nimport { TabsProps } from './Tabs'\n\nconst BEFORE_AFTER_SHADOW_WIDTH = 20\n\nconst borderColor = (color: string) => css`\n border-bottom: 1px solid ${color};\n`\n\nexport const Root = styled.div.withConfig({\n shouldForwardProp: (prop) => prop === 'children',\n})<Pick<TabsProps, 'noBorder' | 'borderColor' | 'color' | 'width'>>`\n color: rgba(247, 247, 247, 1);\n display: flex;\n align-items: flex-end;\n justify-content: center;\n flex-direction: row;\n ${(props) => (props.borderColor && !props.noBorder ? color(props.borderColor, borderColor) : null)}\n ${(props) => (props.color ? color(props.color) : null)}\n ${responsiveProperty('width')}\n`\n\nexport const Inner = styled.div`\n position: relative;\n display: block;\n width: auto;\n height: auto;\n padding: 0;\n margin: 0 -20px;\n box-sizing: border-box;\n background: transparent;\n overflow: visible;\n max-width: 100%;\n width: 100%;\n &::before,\n &::after {\n position: absolute;\n top: 0;\n bottom: 0;\n display: block;\n content: '';\n width: ${BEFORE_AFTER_SHADOW_WIDTH}px;\n height: 100%;\n }\n\n &::before {\n left: 0;\n background: linear-gradient(-90deg, rgba(247, 247, 247, 0) 0%, currentColor 100%);\n }\n\n &::after {\n right: 0;\n background: linear-gradient(90deg, rgba(247, 247, 247, 0) 0%, currentColor 100%);\n }\n`\n\nexport const Content = styled.div<Pick<TabsProps, 'noBorder'>>`\n position: relative;\n z-index: 1;\n display: block;\n padding: 0;\n margin: 0 auto;\n white-space: nowrap;\n box-sizing: border-box;\n overflow-x: auto;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n color: ${(props) => props.theme.colors.mineShaft};\n scrollbar-width: none;\n\n &::-webkit-scrollbar {\n height: 0;\n background: transparent;\n visibility: hidden;\n }\n\n &::-webkit-scrollbar-thumb {\n height: 0px;\n background: transparent;\n visibility: hidden;\n }\n\n ${(props) =>\n props.noBorder\n ? css`\n display: flex;\n justify-content: space-between;\n width: 100%;\n `\n : null}\n`\n","import { ResponsiveProperty } from 'mixins/responsive-property'\nimport { ColorProperty } from 'mixins/color'\nimport { BaseProps } from 'shared/interfaces'\nimport { Tab } from 'components/Tab'\nimport * as Styled from './style'\n\nexport interface TabsProps extends BaseProps, ColorProperty, ColorProperty<'borderColor'> {\n /**\n * Primary content.\n */\n /**\n * Children react node\n */\n children?: React.ReactNode\n className?: string\n classNameInner?: string\n classNameContent?: string\n noBorder?: boolean\n width?: ResponsiveProperty<number>\n}\n\nTabs.defaultProps = {\n borderColor: 'alto',\n color: 'rgba(247, 247, 247, 1)',\n}\n\nTabs.Tab = Tab\n\n/**\n *\n * Use only with default preset\n *\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`Color`](#/Миксины)\n * - [`Color<'borderColor'>`](#/Миксины)\n */\nexport function Tabs(props: TabsProps) {\n const { children, className, classNameInner, classNameContent, borderColor, color, noBorder, style, width } = props\n\n return (\n <Styled.Root\n className={className}\n style={style}\n width={width}\n borderColor={borderColor}\n color={color}\n noBorder={noBorder}\n >\n <Styled.Inner className={classNameInner}>\n <Styled.Content noBorder={noBorder} className={classNameContent}>\n {children}\n </Styled.Content>\n </Styled.Inner>\n </Styled.Root>\n )\n}\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n fontSize: 16,\n minWidth: 80,\n maxWidth: 380,\n paddingTop: 14,\n paddingRight: 18,\n paddingBottom: 14,\n paddingLeft: 18,\n borderRadius: 8,\n },\n xxl: {\n fontSize: 16,\n minWidth: 80,\n maxWidth: 380,\n paddingTop: 14,\n paddingRight: 18,\n paddingBottom: 14,\n paddingLeft: 18,\n borderRadius: 8,\n },\n xl: {\n fontSize: 16,\n minWidth: 80,\n maxWidth: 380,\n paddingTop: 14,\n paddingRight: 18,\n paddingBottom: 14,\n paddingLeft: 18,\n borderRadius: 8,\n },\n l: {\n fontSize: 16,\n minWidth: 80,\n maxWidth: 380,\n paddingTop: 14,\n paddingRight: 18,\n paddingBottom: 14,\n paddingLeft: 18,\n borderRadius: 8,\n },\n m: {\n fontSize: 14,\n minWidth: 64,\n maxWidth: 340,\n paddingTop: 12,\n paddingRight: 16,\n paddingBottom: 12,\n paddingLeft: 16,\n borderRadius: 8,\n },\n s: {\n fontSize: 14,\n minWidth: 45,\n maxWidth: 200,\n paddingTop: 8,\n paddingRight: 8,\n paddingBottom: 8,\n paddingLeft: 8,\n borderRadius: 8,\n },\n xs: {\n fontSize: 14,\n minWidth: 45,\n maxWidth: 200,\n paddingTop: 8,\n paddingRight: 8,\n paddingBottom: 8,\n paddingLeft: 8,\n borderRadius: 8,\n },\n xxs: {\n fontSize: 14,\n minWidth: 45,\n maxWidth: 200,\n paddingTop: 8,\n paddingRight: 8,\n paddingBottom: 8,\n paddingLeft: 8,\n borderRadius: 8,\n },\n xxxs: {\n fontSize: 14,\n minWidth: 45,\n maxWidth: 200,\n paddingTop: 8,\n paddingRight: 8,\n paddingBottom: 8,\n paddingLeft: 8,\n borderRadius: 8,\n },\n}\n","import styled, { css } from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { focus } from 'mixins/focus'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport type { CSSColor } from 'shared/types'\nimport type { StyledTooltipComponentProps, TooltipComponentPalette } from './types'\n\nconst shouldForwardTooltipComponentProp = createShouldForwardProp(\n (propKey) => !['black', 'contrast', 'elevated'].includes(propKey)\n)\n\nexport const CloseButton = styled.button`\n box-sizing: border-box;\n appearance: none;\n position: absolute;\n top: 0;\n right: 0;\n padding: 4px;\n margin: 0;\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n background-color: transparent;\n cursor: pointer;\n &:disabled {\n cursor: not-allowed;\n }\n\n ${focus}\n`\n\nconst template = (palette: TooltipComponentPalette) => `\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n filter: drop-shadow(0 6px 10px ${palette.shadowColor});\n\n & > ${CloseButton} {\n color: ${palette.closeColor};\n }\n & > ${CloseButton}:hover {\n color: ${palette.closeColorHover};\n }\n & > ${CloseButton}:active {\n color: ${palette.closeColorActive};\n }\n & > ${CloseButton}:disabled {\n color: ${palette.closeColorDisabled};\n }\n\n`\n\nconst COLOR_SCHEMA = {\n contrast: css<StyledTooltipComponentProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['bg-brand-primary-basic'],\n shadowColor: props.elevated ? props.theme.colors['bg-oncolor-hover'] : props.theme.colors.transparent,\n closeColor: props.theme.colors['content-oncolor-tertiary'],\n closeColorHover: props.theme.colors['content-oncolor-primary'],\n closeColorActive: props.theme.colors['content-oncolor-primary'],\n closeColorDisabled: props.theme.colors['content-oncolor-disabled'],\n ...props.palette,\n })}\n `,\n black: css<StyledTooltipComponentProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-inverse'],\n backgroundColor: props.theme.colors['bg-onmain-inverse'],\n shadowColor: props.elevated ? props.theme.colors['bg-oncolor-hover'] : props.theme.colors.transparent,\n closeColor: props.theme.colors['content-onmain-inverse'],\n closeColorHover: tinycolor(props.theme.colors['content-onmain-inverse']).darken(20).toString() as CSSColor,\n closeColorActive: tinycolor(props.theme.colors['content-onmain-inverse']).darken(20).toString() as CSSColor,\n closeColorDisabled: props.theme.colors['content-disabled'],\n ...props.palette,\n })}\n `,\n primary: css<StyledTooltipComponentProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-onmain-primary'],\n shadowColor: props.elevated ? props.theme.colors['bg-oncolor-hover'] : props.theme.colors.transparent,\n closeColor: props.theme.colors['content-onmain-tertiary'],\n closeColorHover: props.theme.colors['content-onmain-primary'],\n closeColorActive: props.theme.colors['content-onmain-primary'],\n closeColorDisabled: props.theme.colors['content-disabled'],\n ...props.palette,\n })}\n `,\n}\n\nexport const Root = styled.div\n .withConfig<StyledTooltipComponentProps>({\n shouldForwardProp: shouldForwardTooltipComponentProp,\n })\n .attrs<StyledTooltipComponentProps>(<Required<Pick<StyledTooltipComponentProps, 'dynamicSizeDeclaration'>>>{\n dynamicSizeDeclaration: (size, sizeUnits) => ({\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n minWidth: '4.6em',\n maxWidth: '24em',\n padding: '0.8em',\n borderRadius: 8,\n }),\n })`\n box-sizing: border-box;\n display: inline-block;\n isolation: isolate;\n position: relative;\n cursor: default;\n word-break: break-word;\n\n ${(props) => {\n let schema = COLOR_SCHEMA.primary\n\n if (props.black) schema = COLOR_SCHEMA.black\n if (props.contrast) schema = COLOR_SCHEMA.contrast\n\n return schema\n }}\n\n ${responsiveSize}\n`\n","import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { Text } from 'components/Text'\nimport { Icon } from 'components/Icon'\nimport type { TextProps } from 'components/Text'\nimport { SIZES } from './constants'\nimport type { TooltipComponentProps } from './types'\nimport * as Styled from './style'\n\nconst COMPONENT_NAME = 'TooltipComponent'\n\n/**\n *\n * Component accepts all \\<div\\> attributes.\n *\n * Responsive \"size\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [TooltipComponentProps](https://github.com/foxford/ui/blob/master/src/components/TooltipComponent/types.ts)\n */\nconst TooltipComponent: React.ForwardRefExoticComponent<TooltipComponentProps> = withMergedProps<\n TooltipComponentProps,\n HTMLDivElement\n>(\n forwardRef((props, ref) => {\n const {\n size = 's',\n titleProps = {},\n contentProps = {},\n closeButtonProps = {},\n title,\n content,\n footer,\n closeFn,\n showCloseButton,\n ...restProps\n } = props\n\n const textProps: TextProps = { appearance: 'body', size: 'inherit', color: 'inherit' }\n\n return (\n <Styled.Root {...restProps} size={size} ref={ref}>\n {showCloseButton && (\n <Styled.CloseButton\n {...closeButtonProps}\n type='button'\n onClick={(evt) => {\n if (typeof closeFn === 'function') closeFn()\n if (closeButtonProps.onClick) closeButtonProps.onClick(evt)\n }}\n >\n <Icon as='span' name='close' size={16} />\n </Styled.CloseButton>\n )}\n {title && (\n <Text\n weight={700}\n marginRight={showCloseButton ? 16 : undefined}\n marginBottom={content || footer ? '0.3em' : undefined}\n {...textProps}\n {...titleProps}\n >\n {title}\n </Text>\n )}\n {content && (\n <Text\n marginRight={!title && showCloseButton ? 16 : undefined}\n marginBottom={footer ? '0.2em' : undefined}\n {...textProps}\n {...contentProps}\n >\n {content}\n </Text>\n )}\n {footer}\n </Styled.Root>\n )\n }),\n {\n sizes: SIZES,\n displayName: COMPONENT_NAME,\n }\n)\n\nexport { TooltipComponent }\n\nexport { COMPONENT_NAME, SIZES }\n","import { forwardRef, isValidElement, cloneElement } from 'react'\nimport { useKeyboardListener } from 'hooks/useKeyboardListener'\nimport { TooltipComponent } from 'components/TooltipComponent'\nimport type { TooltipWrapperProps } from './types'\n\nconst closeFnNoop = () => undefined\n\nconst ESC_KEYS = ['Escape', 'Esc']\n\nconst TooltipWrapper = forwardRef<HTMLDivElement, TooltipWrapperProps>((props, ref) => {\n const {\n size,\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n black,\n contrast,\n showCloseButton,\n closeButtonProps,\n id,\n role,\n closeFn = closeFnNoop,\n component,\n ...restProps\n } = props\n\n useKeyboardListener('keyup', ESC_KEYS, closeFn)\n\n const injectionProps = {\n size,\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n black,\n contrast,\n showCloseButton,\n closeButtonProps,\n id,\n role,\n closeFn,\n }\n\n if (isValidElement(component)) {\n const elementProps = typeof component.props === 'object' && component.props !== null ? component.props : {}\n\n return cloneElement(component, { ref, ...injectionProps, ...elementProps })\n }\n\n if (typeof component === 'function') {\n return component(injectionProps)\n }\n\n return <TooltipComponent ref={ref} {...injectionProps} {...restProps} />\n})\n\nexport { TooltipWrapper }\n","import { useEffect } from 'react'\n\nexport const useKeyboardListener = (\n keyboardEvtType: 'keydown' | 'keyup',\n keyboardKeys: string[],\n keyboardEvtHandler: (evt: KeyboardEvent) => void\n) => {\n useEffect(() => {\n const handleKeyboardEvt = (evt: KeyboardEvent) => {\n if (keyboardKeys.includes(evt.key)) keyboardEvtHandler(evt)\n }\n\n document.addEventListener(keyboardEvtType, handleKeyboardEvt)\n\n return () => {\n document.removeEventListener(keyboardEvtType, handleKeyboardEvt)\n }\n }, [keyboardEvtType, keyboardEvtHandler, keyboardKeys])\n}\n","import type { Styles } from 'react-floater/lib/types'\n\nexport const TOOLTIP_STYLES_DEFAULT: Partial<Styles> = {\n wrapper: {\n display: 'inline-flex',\n flexDirection: 'column',\n zIndex: 100,\n },\n wrapperPosition: {\n left: -1000,\n position: 'absolute',\n top: -1000,\n visibility: 'hidden',\n },\n floater: {\n display: 'inline-block',\n filter: 'drop-shadow(0 6px 6px rgba(0, 0, 0, 0.2))',\n WebkitFilter: 'drop-shadow(0 6px 6px rgba(0, 0, 0, 0.2))',\n maxWidth: 300,\n opacity: 0,\n position: 'relative',\n transition: 'opacity 0.2s',\n visibility: 'hidden',\n zIndex: 100,\n },\n floaterOpening: {\n opacity: 1,\n visibility: 'visible',\n },\n floaterWithAnimation: {\n opacity: 1,\n transition: 'opacity 0.2s, transform 0.2s',\n visibility: 'visible',\n },\n floaterClosing: {\n opacity: 0,\n visibility: 'visible',\n },\n floaterCentered: {\n left: '50%',\n position: 'fixed',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n },\n container: {\n boxSizing: 'border-box',\n borderRadius: 3,\n backgroundColor: '#fff',\n color: 'var(--mineShaft)',\n minHeight: 32,\n minWidth: 180,\n padding: '16px',\n position: 'relative',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n },\n title: {\n borderBottom: '1px solid var(--mineShaft)',\n color: 'var(--mineShaft)',\n fontWeight: 'bold',\n fontSize: 18,\n marginBottom: 5,\n paddingBottom: 6,\n paddingRight: 18,\n },\n content: {\n fontSize: 12,\n lineHeight: '16px',\n },\n close: {\n backgroundColor: 'transparent',\n border: 0,\n borderRadius: 0,\n color: 'var(--mineShaft)',\n fontSize: 14,\n height: 10,\n lineHeight: '16px',\n outline: 'none',\n padding: 0,\n position: 'absolute',\n right: '4px',\n textAlign: 'center',\n top: '4px',\n WebkitAppearance: 'none',\n width: 10,\n },\n footer: {\n borderTop: '1px solid var(--mineShaft)',\n fontSize: 13,\n marginTop: 10,\n paddingTop: 5,\n },\n arrow: {\n color: '#fff',\n display: 'inline-flex',\n length: 6,\n position: 'absolute',\n spread: 12,\n },\n options: {\n zIndex: 100,\n },\n}\n","import { forwardRef } from 'react'\nimport { useTheme } from 'styled-components'\nimport Floater from 'react-floater'\nimport { mergeDeepLeft } from 'ramda'\nimport type { Props as FloaterProps } from 'react-floater/lib/types'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { SIZES, TooltipComponent } from 'components/TooltipComponent'\nimport { TooltipWrapper } from './TooltipWrapper'\nimport { TOOLTIP_STYLES_DEFAULT } from './default-constants'\nimport type { TooltipProps } from './types'\n\nconst COMPONENT_NAME = 'Tooltip'\n\n/**\n *\n * Component accepts [\"react-floater\"](https://www.npmjs.com/package/react-floater/v/0.8.2) v0.8.2 props.\n *\n * Responsive \"size\" props are supported.\n *\n * Exposed \"ref\" attached to tooltip component root.\n *\n * See full [TooltipProps](https://github.com/foxford/ui/blob/master/src/components/Tooltip/types.ts)\n */\nconst Tooltip: React.ForwardRefExoticComponent<TooltipProps> & { Component: typeof TooltipComponent } = Object.assign(\n withMergedProps<TooltipProps, HTMLDivElement>(\n forwardRef((props, ref) => {\n const {\n preset,\n size = 's',\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n sizeUnits,\n sizes,\n palette,\n black,\n contrast,\n titleProps,\n contentProps,\n closeButtonProps,\n ...restProps\n } = props\n\n const theme = useTheme()\n\n if (preset !== 'brand') {\n const tooltipProps = {\n ...restProps,\n styles: mergeDeepLeft(restProps.styles ?? {}, TOOLTIP_STYLES_DEFAULT),\n } as FloaterProps\n\n return (\n <Floater {...tooltipProps}>\n <span>{tooltipProps.children}</span>\n </Floater>\n )\n }\n\n let color = theme.colors['bg-onmain-primary']\n\n if (black) color = theme.colors['bg-onmain-inverse']\n if (contrast) color = theme.colors['bg-brand-primary-basic']\n if (palette?.backgroundColor) color = theme.colors[palette.backgroundColor] ?? palette.backgroundColor\n\n const tooltipProps = {\n ...restProps,\n offset: restProps.offset ?? 8,\n styles: mergeDeepLeft(restProps.styles ?? {}, {\n arrow: {\n color,\n spread: 16,\n length: 8,\n },\n floater: {\n filter: `drop-shadow(0 6px 10px ${theme.colors['bg-oncolor-hover']})`,\n },\n }),\n component: (\n <TooltipWrapper\n ref={ref}\n size={size}\n sizeXXS={sizeXXS}\n sizeXS={sizeXS}\n sizeS={sizeS}\n sizeM={sizeM}\n sizeL={sizeL}\n sizeXL={sizeXL}\n sizeUnits={sizeUnits}\n sizes={sizes}\n palette={palette}\n black={black}\n contrast={contrast}\n title={restProps.title}\n titleProps={titleProps}\n content={restProps.content}\n contentProps={contentProps}\n footer={restProps.footer}\n showCloseButton={restProps.showCloseButton}\n closeButtonProps={closeButtonProps}\n component={restProps.component}\n />\n ),\n } as FloaterProps\n\n return (\n <Floater\n {...tooltipProps}\n modifiers={{\n flip: {\n enabled: !tooltipProps.disableFlip,\n },\n }}\n />\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: SIZES,\n }\n ),\n {\n Component: TooltipComponent,\n }\n)\n\nexport { Tooltip }\n\nexport { COMPONENT_NAME }\n","import styled, { css } from 'styled-components'\nimport { display } from 'mixins/display'\nimport { property, PossibleValues, responsiveNamedProperty } from 'mixins/responsive-property'\nimport { color } from 'mixins/color'\nimport { Text as UiText } from 'components/Text'\nimport type { TextProps } from 'components/Text'\nimport { TagProps } from './Tag'\n\nconst WIDTHS: Record<Partial<Exclude<TagProps['size'], 'auto' | undefined>>, number> = {\n l: 220,\n m: 182,\n s: 100,\n xs: 60,\n}\n\nconst chooseWidthValue = (props: TagProps): PossibleValues => {\n if (props.width === 'auto') return 'auto'\n if (typeof props.width === 'number') return props.width\n\n if (props.size && WIDTHS[props.size]) return WIDTHS[props.size]\n\n return 'auto'\n}\n\nconst active = css`\n border-color: transparent;\n background-color: currentColor;\n`\n\nexport const Text = styled(UiText)<TextProps>`\n display: inline-block;\n vertical-align: middle;\n white-space: nowrap;\n text-overflow: ellipsis;\n max-width: 100%;\n overflow: hidden;\n vertical-align: middle;\n transition: color 0.25s ease;\n`\n\nconst disabled = css`\n cursor: not-allowed;\n background-color: rgba(0, 0, 0, 0.04);\n ${Text} {\n color: rgba(0, 0, 0, 0.16);\n }\n`\n\nexport const Root = styled.button.withConfig<TagProps>({\n shouldForwardProp: (prop) => ['children', 'htmlFor', 'className', 'style', 'onClick'].includes(prop),\n})`\n padding: 0px 16px;\n margin-bottom: 10px;\n border-radius: 3px;\n background-color: ${(props) => props.theme.colors.white};\n border: 1px solid ${(props) => props.theme.colors.whiteGray};\n box-sizing: border-box;\n vertical-align: middle;\n transition: color 0.25s ease, background 0.25s ease, border-color 0.25s ease;\n cursor: pointer;\n text-align: center;\n touch-action: manipulation;\n min-width: 60px;\n\n ${(props) => (props.size ? property(chooseWidthValue(props), 'width') : null)}\n ${(props) => (props.height ? property(props.height, 'line-height') : null)}\n ${(props) => (props.height ? property(props.height, 'height') : null)}\n ${({ heightXS, heightS, heightM, heightL, heightXL }) =>\n responsiveNamedProperty({ sizes: { heightXS, heightS, heightM, heightL, heightXL }, cssProperty: 'height' })}\n\n ${(props) => (props.width ? property(props.width, 'width') : null)}\n ${({ widthXS, widthS, widthM, widthL, widthXL }) =>\n responsiveNamedProperty({ sizes: { widthXS, widthS, widthM, widthL, widthXL }, cssProperty: 'width' })}\n\n ${(props) => (props.display ? display(props.display) : null)}\n ${(props) => (props.color ? color(props.color) : null)}\n\n &:not(:last-child) {\n margin-right: 20px;\n }\n\n ${(props) =>\n !props.disabled\n ? css`\n &:hover:not(:disabled) {\n border-color: currentColor;\n }\n &:active:not(:disabled) {\n ${active}\n ${Text} {\n color: ${(props) => props.theme.colors.white};\n }\n }\n `\n : null}\n\n ${(props) => (props.inverse || props.checked ? active : null)}\n\n &:disabled {\n ${disabled}\n }\n ${(props) => (props.disabled ? disabled : null)}\n`\n","import { ResponsiveNamedProperty } from 'mixins/responsive-property'\nimport { ColorProperty } from 'mixins/color'\nimport { DisplayProperty } from 'mixins/display'\nimport type { BaseProps } from 'shared/interfaces'\nimport type { TextProps } from 'components/Text'\nimport { DefaultColorNames } from 'theme/colors'\nimport * as Styled from './style'\n\nexport interface TagProps\n extends BaseProps,\n DisplayProperty,\n ColorProperty,\n ResponsiveNamedProperty<'height'>,\n ResponsiveNamedProperty<'width'> {\n as?: 'button' | 'div' | 'input' | 'label'\n /**\n * Field id\n */\n id?: string\n /**\n * Field name\n */\n name?: string\n /**\n * Input type\n */\n inputType?: 'checkbox' | 'radio'\n /**\n * On change handler\n */\n onChange?(_e: React.ChangeEvent<HTMLInputElement>): void\n /**\n * On click handler\n */\n onClick?(_e: React.MouseEvent<HTMLInputElement>): void\n /**\n * Whether or not Radio is checked\n */\n defaultChecked?: boolean\n /**\n * Value\n */\n value?: string | number\n /** Children are placed before Text */\n /**\n * Children react node\n */\n children?: React.ReactNode\n /** Inner Text content */\n content?: React.ReactNode\n /** Inner Text component props */\n textProps?: TextProps\n /** Checked state */\n checked?: boolean\n /** Disabled state */\n disabled?: boolean\n /** Error state */\n error?: boolean\n /** If as = 'label' could provide for */\n htmlFor?: string\n /**\n * inverse\n */\n inverse?: boolean\n /**\n * Size\n */\n size?: 'l' | 'm' | 's' | 'xs'\n}\n\nTag.defaultProps = {\n display: 'inline-block',\n as: 'button',\n height: 40,\n}\n\nTagInput.defaultProps = {\n display: 'inline-block',\n height: 40,\n}\n\n// Prevent brakechanges\nTag.Input = TagInput\n\nTag.displayName = 'Tag'\n\nfunction TagInput(props: typeof TagInput.defaultProps & TagProps) {\n return <Tag as='input' {...props} />\n}\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`Display`](#/Миксины)\n * - [`Color`](#/Миксины)\n * - [`ResponsiveNamedProperty<'width'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'height'>`](#/Миксины)\n */\nexport function Tag(props: typeof Tag.defaultProps & TagProps) {\n const {\n as,\n textProps,\n content,\n children,\n htmlFor,\n id,\n name,\n inputType,\n value,\n disabled,\n onChange,\n onClick,\n inverse,\n checked,\n ...restProps\n } = props\n\n const buttonProps = as === 'button' ? { type: 'button' } : {}\n const labelProps = as === 'label' ? { htmlFor } : {}\n const inputProps = as === 'input' ? { htmlFor: id || name } : {}\n\n return (\n <Styled.Root\n as={as === 'input' ? 'label' : as}\n inverse={inverse}\n checked={checked}\n disabled={disabled}\n onClick={as !== 'input' ? onClick : undefined}\n {...labelProps}\n {...buttonProps}\n {...inputProps}\n {...restProps}\n >\n {as === 'input' ? (\n <input\n id={id || name}\n name={name}\n type={inputType || 'checkbox'}\n tabIndex={0}\n onChange={(e) => {\n e.persist()\n\n return onChange && onChange(e)\n }}\n onClick={(e) => {\n e.persist()\n\n return onClick && onClick(e)\n }}\n defaultChecked={props.defaultChecked}\n checked={checked}\n value={value}\n disabled={disabled}\n hidden\n />\n ) : null}\n {children}\n <Styled.Text\n size={14}\n forwardedAs='span'\n color={checked && !inverse ? DefaultColorNames.white : DefaultColorNames.mineShaft}\n {...textProps}\n >\n {content}\n </Styled.Text>\n </Styled.Root>\n )\n}\n","import styled from 'styled-components'\n\nexport const HeadingRoot = styled.div`\n display: block;\n padding: 9px 20px 16px;\n user-select: none;\n text-transform: uppercase;\n`\n\nexport const SubHeadingRoot = styled.div`\n display: block;\n padding: 9px 20px 16px;\n user-select: none;\n`\n\nexport const ControlsRoot = styled.div`\n display: flex;\n justify-content: space-between;\n border-top: 1px solid ${(props) => props.theme.colors.mercury};\n user-select: none;\n`\n\nexport const ControlsItem = styled.div`\n padding: 12px 20px;\n cursor: pointer;\n`\n\nexport const MultilevelItems = styled.div`\n max-height: 170px;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n`\n","import { DefaultColorNames } from 'theme/colors'\nimport { Text } from '../Text'\nimport * as Styled from './style'\n\nexport interface HeadingProps {\n /**\n * Children react node\n */\n children?: React.ReactNode\n content?: React.ReactNode\n}\n\nexport function Heading({ children, content }: HeadingProps) {\n return (\n <Styled.HeadingRoot>\n {children}\n <Text size='s' lineHeight='s' weight='bold' color={DefaultColorNames.mineShaft}>\n {content}\n </Text>\n </Styled.HeadingRoot>\n )\n}\n","import { DefaultColorNames } from 'theme/colors'\nimport { Text } from '../Text'\nimport * as Styled from './style'\n\nexport interface SubHeadingProps {\n /**\n * Children react node\n */\n children?: React.ReactNode\n content?: React.ReactNode\n}\n\nexport function SubHeading({ children, content }: SubHeadingProps) {\n return (\n <Styled.SubHeadingRoot>\n {children}\n <Text size='s' lineHeight='s' color={DefaultColorNames.mineShaft}>\n {content}\n </Text>\n </Styled.SubHeadingRoot>\n )\n}\n","import { BaseProps } from 'shared/interfaces'\nimport { DefaultColorNames } from 'theme/colors'\nimport { Text } from '../Text'\nimport { MultiLevelControls } from './ContextMenu.Multilevel'\nimport * as Styled from './style'\n\nexport interface ControlsProps extends BaseProps {\n /** Cancel Text element props */\n cancel?: MultiLevelControls['cancel']\n /** Confirm Text element props */\n confirm?: MultiLevelControls['confirm']\n}\n\nexport function Controls({ cancel, confirm, className, style }: ControlsProps) {\n return (\n <Styled.ControlsRoot className={className} style={style}>\n {cancel ? (\n <Styled.ControlsItem className='cancel' role='button' onClick={cancel.onClick}>\n <Text size='m' lineHeight='s' color={cancel.color || DefaultColorNames.silver}>\n {cancel.content}\n </Text>\n </Styled.ControlsItem>\n ) : null}\n {confirm ? (\n <Styled.ControlsItem className='confirm' role='button' onClick={confirm.onClick}>\n <Text size='m' lineHeight='s' color={confirm.color || DefaultColorNames.accent}>\n {confirm.content}\n </Text>\n </Styled.ControlsItem>\n ) : null}\n </Styled.ControlsRoot>\n )\n}\n","import { PureComponent } from 'react'\nimport type { BaseProps } from 'shared/interfaces'\nimport type { Color } from 'shared/types'\nimport { Spacer } from 'components/Spacer'\nimport { ContextMenu, ContextMenuProps } from '../ContextMenu/ContextMenu'\nimport { Heading } from './Heading'\nimport { SubHeading } from './SubHeading'\nimport { Controls } from './Controls'\nimport * as Styled from './style'\n\nexport interface MultiLevelControls {\n cancel?: {\n content?: string\n onClick?(): void\n color?: Color\n }\n confirm?: {\n content?: string\n onClick?(): void\n color?: Color\n }\n}\n\nexport interface MultiLevelItem {\n id: string | number\n heading?: string\n subheading?: string\n content?: string\n preventClosing?: boolean\n // eslint-disable-next-line no-use-before-define\n config?: MultiLevelConfig\n items?: MultiLevelItem[]\n controls?: MultiLevelControls\n level?: number\n active?: boolean\n onClick?(_item: MultiLevelItem): void\n}\n\nexport interface MultiLevelConfig {\n items?: MultiLevelItem[]\n heading?: string\n subheading?: string\n controls?: MultiLevelControls\n}\n\nexport interface ContextMenuMultiLevelProps extends ContextMenuProps, BaseProps {\n /** Menu config */\n config?: MultiLevelConfig\n /** On select item callback */\n onSelectItem?(_item: MultiLevelItem, _level: MultiLevelItem['level']): void\n}\n\ninterface ContextMenuMultiLevelState {\n selectedItems: (number | string)[]\n}\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n */\nexport class ContextMenuMultiLevel extends PureComponent<ContextMenuMultiLevelProps, ContextMenuMultiLevelState> {\n resetTimeout?: ReturnType<typeof setTimeout>\n static displayName = 'ContextMenu.MultiLevel'\n static defaultProps = {\n config: {},\n }\n\n constructor(props: ContextMenuMultiLevelProps) {\n super(props)\n\n this.state = {\n selectedItems: [],\n }\n }\n\n componentWillUnmount() {\n clearTimeout(this.resetTimeout)\n }\n\n onSelectItem = (selectedItem: MultiLevelItem) => {\n const { id, level } = selectedItem\n\n const { selectedItems } = this.state\n const newSelectedItems = [...selectedItems.slice(0, level), id]\n\n this.setState({ selectedItems: newSelectedItems })\n\n if (typeof this.props.onSelectItem === 'function') this.props.onSelectItem(selectedItem, level)\n }\n\n getCurrentConfig = (): MultiLevelConfig | null => {\n const { config } = this.props\n const { selectedItems } = this.state\n\n if (!config) return null\n\n if (!selectedItems.length) return config\n\n try {\n const currentConfig = selectedItems.reduce((acc, levelId) => {\n return acc.items ? acc.items.find((item) => item.id === levelId)?.config || {} : {}\n }, config)\n\n return currentConfig\n } catch (error) {\n return null\n }\n }\n\n reset = () => {\n /* Reset timeout to prevent state switch due to slow tooltip closing animation */\n this.resetTimeout = setTimeout(() => this.setState({ selectedItems: [] }), 200)\n }\n\n itemOnClickHandler: React.MouseEventHandler<HTMLDivElement> = (e) => {\n const config = this.getCurrentConfig()\n if (!config) throw new Error('Config not found')\n\n const { items = [] } = config\n const { currentTarget } = e\n\n const { id = null } = currentTarget.dataset\n\n if (id === null) throw new Error('Data-id for item not found')\n\n const item = items.find((item) => `${item.id}` === id)\n\n if (!item) throw new Error('Item not found')\n\n if (item.config || item.preventClosing) {\n e.preventDefault()\n e.stopPropagation()\n }\n\n if (item.config) {\n /* If menu item has config - select item to show inner level */\n this.onSelectItem(item)\n }\n\n if (typeof item.onClick === 'function') {\n item.onClick(item)\n }\n }\n\n render() {\n const { children, className, tooltipProps, isOpen, trigger, ...anotherProps } = this.props\n const { selectedItems } = this.state\n const config = this.getCurrentConfig()\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { config: _config, onSelectItem: _onSelectItem, ...restProps } = anotherProps\n\n return (\n <ContextMenu\n className={className}\n tooltipProps={tooltipProps}\n isOpen={isOpen}\n onClose={this.reset}\n trigger={trigger}\n {...restProps}\n >\n {children}\n <>\n <Spacer top={9} />\n {config?.heading ? <Heading content={config.heading} /> : null}\n {config?.subheading ? <SubHeading content={config.subheading} /> : null}\n {config?.items ? (\n <Styled.MultilevelItems>\n {config.items.map((item) => (\n <ContextMenu.Item\n key={item.id}\n id={item.id}\n content={item.content}\n active={(item.level && Boolean(selectedItems[item.level] === item.id)) || item.active}\n onClick={this.itemOnClickHandler}\n />\n ))}\n </Styled.MultilevelItems>\n ) : null}\n {config?.controls ? <Controls {...config.controls} /> : <Spacer top={9} />}\n </>\n </ContextMenu>\n )\n }\n}\n","import styled, { css } from 'styled-components'\nimport { ContextMenuProps } from './ContextMenu'\nimport { ContextMenuItemProps } from './Item'\n\nconst isOpen = css`\n &:after {\n cursor: default;\n user-select: none;\n content: '';\n display: block;\n position: fixed;\n width: 100%;\n height: 100%;\n z-index: ${(props) => props.theme.zIndex.tooltip};\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n }\n`\n\nconst disabledItem = css`\n background-color: ${(props) => props.theme.colors.alabaster};\n opacity: 0.6;\n cursor: default;\n`\n\nconst notDisabledItem = css`\n &:hover {\n background-color: ${(props) => props.theme.colors.onahau};\n }\n`\n\nexport const Root = styled.div.withConfig({\n shouldForwardProp: (prop) => ['className', 'onClick', 'children', 'style'].includes(prop),\n})<Pick<ContextMenuProps, 'isOpen' | 'hideOverlay'>>`\n display: inline-block;\n position: relative;\n [style*='cursor'] {\n cursor: default !important;\n }\n & + & {\n margin-left: 16px;\n }\n ${(props) => (props.isOpen && Boolean(props.hideOverlay) === false ? isOpen : null)}\n`\n\nexport const RootItem = styled.div.withConfig({\n shouldForwardProp: (prop) => ['className', 'onClick', 'children', 'data-id'].includes(prop),\n})<Pick<ContextMenuItemProps, 'active' | 'disabled'>>`\n display: block;\n padding: 8px 20px 7px;\n transition: background-color 0.4s ease-out;\n cursor: pointer;\n user-select: none;\n ${(props) =>\n props.active\n ? css`\n background-color: ${props.theme.colors.onahau};\n `\n : null}\n ${(props) => (props.disabled ? disabledItem : notDisabledItem)}\n`\n","import { BaseProps } from 'shared/interfaces'\nimport { DefaultColorNames } from 'theme/colors'\nimport { Text } from '../Text'\nimport * as Styled from './style'\n\nconst disabledHandler = (e: React.MouseEvent<HTMLDivElement>) => {\n e.preventDefault()\n e.preventDefault()\n e.stopPropagation()\n\n return false\n}\n\nexport interface ContextMenuItemProps extends BaseProps {\n /**\n * Children react node\n */\n children?: React.ReactNode\n content?: string\n active?: boolean\n disabled?: boolean\n onClick?: React.MouseEventHandler<HTMLDivElement>\n id?: string | number\n}\n\nContextMenuItem.displayName = 'ContextMenu.Item'\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n */\nexport function ContextMenuItem({\n children,\n id,\n content,\n active,\n disabled,\n onClick,\n className,\n style,\n}: ContextMenuItemProps) {\n return (\n <Styled.RootItem\n style={style}\n className={className}\n active={active}\n disabled={disabled}\n onClick={disabled ? disabledHandler : onClick}\n data-id={id}\n >\n {children}\n <Text size='s' lineHeight='s' color={DefaultColorNames.mineShaft}>\n {content}\n </Text>\n </Styled.RootItem>\n )\n}\n","/* eslint-disable no-use-before-define */\nimport { cloneElement, PureComponent } from 'react'\nimport { BaseProps } from 'shared/interfaces'\nimport { ContextMenuMultiLevel } from 'components/ContextMenu.Multilevel'\nimport { Tooltip } from './../Tooltip'\nimport { ContextMenuItem } from './Item'\nimport * as Styled from './style'\nimport { tooltipStyles } from './tooltip-styles'\n\nexport interface ContextMenuProps extends BaseProps {\n /**\n * Children react node\n */\n children: React.ReactNode\n /** Indicates if button is active (e.g. when context menu is open) */\n onClick?: (_e: React.MouseEvent<HTMLDivElement>) => void\n /** Manually controled state */\n isOpen?: boolean\n /** On open menu callback */\n onOpen?: (_e: React.MouseEvent<HTMLDivElement>) => void\n /** On close menu callback */\n onClose?: (_e: React.MouseEvent<HTMLDivElement>) => void\n /** Content */\n trigger?: React.ReactNode\n /** Properties for inner Tooltip component */\n tooltipProps?: Partial<Parameters<typeof Tooltip>[0]>\n /** Hide overlay for debug */\n hideOverlay?: boolean\n}\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n */\nexport class ContextMenu extends PureComponent<ContextMenuProps, { isOpen: boolean }> {\n static Item = ContextMenuItem\n static MultiLevel = ContextMenuMultiLevel\n static displayName = 'ContextMenu'\n\n static defaultProps = {\n tooltipProps: {\n event: 'click',\n placement: 'left-start',\n offset: 2,\n showCloseButton: false,\n styles: tooltipStyles,\n },\n hideOverlay: false,\n }\n\n constructor(props: ContextMenuProps) {\n super(props)\n\n this.state = {\n isOpen: this.props.isOpen || false,\n }\n }\n\n getOpen = () => {\n const { isOpen } = this.props\n\n if (isOpen !== undefined) return isOpen\n\n return this.state.isOpen || false\n }\n\n openMenu = (e: React.MouseEvent<HTMLDivElement>) => {\n this.setState({ isOpen: true })\n\n const { onOpen } = this.props\n\n onOpen && onOpen(e)\n }\n\n closeMenu = (e: React.MouseEvent<HTMLDivElement>) => {\n this.setState({ isOpen: false })\n\n const { onClose } = this.props\n\n onClose && onClose(e)\n }\n\n toggleMenu = (e: React.MouseEvent<HTMLDivElement>) => {\n const { openMenu, closeMenu } = this\n const isOpen = this.getOpen()\n\n e.persist()\n e.preventDefault()\n e.stopPropagation()\n\n isOpen ? closeMenu(e) : openMenu(e)\n\n return false\n }\n\n render() {\n const { className, tooltipProps = {}, trigger, children, hideOverlay } = this.props\n const isOpen = this.getOpen()\n\n if (children) tooltipProps.content = children\n\n return (\n <Styled.Root className={className} isOpen={isOpen} onClick={this.toggleMenu} hideOverlay={hideOverlay}>\n <Tooltip {...tooltipProps} open={isOpen}>\n {/* eslint-disable-next-line @typescript-eslint/no-explicit-any */}\n <div onClick={this.closeMenu}>{trigger && cloneElement(trigger as any, { active: isOpen })}</div>\n </Tooltip>\n </Styled.Root>\n )\n }\n}\n","const zIndex = 100\n\nexport const tooltipStyles = {\n wrapper: {\n display: 'inline-block',\n zIndex,\n },\n wrapperPosition: {\n left: -1000,\n position: 'absolute',\n top: -1000,\n visibility: 'hidden',\n },\n floater: {\n display: 'inline-block',\n filter: 'drop-shadow(0px 2px 4px rgba(0, 0, 0, 0.08))',\n WebkitFilter: 'drop-shadow(0px 2px 4px rgba(0, 0, 0, 0.08))',\n maxWidth: 300,\n minWidth: 200,\n opacity: 0,\n position: 'relative',\n transition: 'opacity 0.2s',\n visibility: 'hidden',\n zIndex: 99,\n },\n floaterOpening: {\n opacity: 1,\n visibility: 'visible',\n },\n floaterWithAnimation: {\n opacity: 1,\n transition: 'opacity 0.2s, transform 0.2s',\n visibility: 'visible',\n },\n floaterClosing: {\n opacity: 0,\n visibility: 'visible',\n },\n floaterCentered: {\n left: '50%',\n position: 'fixed',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n },\n container: {\n boxSizing: 'border-box',\n borderRadius: 4,\n border: '1px solid #E9E9E9',\n color: '#333',\n backgroundColor: '#fff',\n minHeight: 32,\n minWidth: 180,\n padding: '0',\n position: 'relative',\n display: 'block',\n overflow: 'hidden',\n },\n content: {\n display: 'block',\n },\n arrow: {\n display: 'none',\n },\n}\n","import { PossibleValues } from 'mixins/responsive-property'\nimport { SizeInput } from 'shared/enums/sizeInput'\n\nexport const chooseWidthValue = (width: PossibleValues): PossibleValues => {\n if (width === 'auto') return 'auto'\n if (typeof width === 'number') return width\n if (typeof width === 'boolean') return width\n\n if (width && SizeInput[width]) return SizeInput[width]\n\n return 'auto'\n}\n","import styled, { css } from 'styled-components'\nimport InputMask from 'react-input-mask'\nimport tinycolor from 'tinycolor2'\nimport type { StyledProps } from 'styled-components'\nimport { color } from 'mixins/color'\nimport { property, responsiveNamedProperty } from 'mixins/responsive-property'\nimport { chooseWidthValue } from 'components/Input/helpers'\nimport { focus } from 'mixins/focus'\nimport type { CSSColor } from 'shared/types'\nimport type { StyledBaseInputProps, StyledInputProps, StyledInputControlsProps, InputPalette } from './types'\n\nconst template = (\n palette: Pick<\n InputPalette,\n 'inputColor' | 'inputPlaceholderColor' | 'inputColorDisabled' | 'inputPlaceholderColorDisabled'\n >\n) => `\n color: ${palette.inputColor};\n &::placeholder {\n color: ${palette.inputPlaceholderColor};\n }\n &:disabled {\n color: ${palette.inputColorDisabled};\n }\n &:disabled::placeholder {\n color: ${palette.inputPlaceholderColorDisabled};\n }\n`\n\nconst controlsTemplate = (\n palette: Pick<\n InputPalette,\n | 'controlsColor'\n | 'controlsBackgroundColor'\n | 'controlsColorHover'\n | 'controlsBackgroundColorHover'\n | 'controlsColorActive'\n | 'controlsBackgroundColorActive'\n | 'controlsColorDisabled'\n | 'controlsBackgroundColorDisabled'\n | 'controlsSeparatorColor'\n >\n) => `\n color: ${palette.controlsColor};\n background-color: ${palette.controlsBackgroundColor};\n &:hover {\n color: ${palette.controlsColorHover};\n background-color: ${palette.controlsBackgroundColorHover};\n }\n &:active {\n color: ${palette.controlsColorActive};\n background-color: ${palette.controlsBackgroundColorActive};\n }\n &:disabled {\n color: ${palette.controlsColorDisabled};\n background-color: ${palette.controlsBackgroundColorDisabled};\n }\n &:not(:first-child)::before {\n background-color: ${palette.controlsSeparatorColor};\n }\n`\n\nexport const errorStyle = css`\n border: 1px solid ${(props) => props.theme.colors.pomegranate};\n background-color: ${(props) => tinycolor(props.theme.colors.pomegranate).setAlpha(0.1).toString()};\n`\n\nexport const disabledStyle = css`\n background-color: rgba(0, 0, 0, 0.04);\n border-color: rgba(0, 0, 0, 0.04);\n color: rgba(0, 0, 0, 0.16);\n cursor: not-allowed;\n &:disabled {\n background-color: rgba(0, 0, 0, 0.04);\n border-color: rgba(0, 0, 0, 0.04);\n color: rgba(0, 0, 0, 0.16);\n cursor: not-allowed;\n }\n`\n\nexport const focusStyle = css`\n &:focus {\n border: 1px solid ${(props) => props.theme.colors.accent};\n outline: none;\n }\n`\n\nexport const roundedStyle = css`\n border-radius: ${(props) => props.theme.borderRadius};\n`\n\nexport const baseInputStyle = (\n props: StyledProps<\n Pick<\n StyledBaseInputProps,\n | 'color'\n | 'placeholderColor'\n | 'disabled'\n | 'rounded'\n | 'width'\n | 'widthXS'\n | 'widthS'\n | 'widthM'\n | 'widthL'\n | 'widthXL'\n | 'fluid'\n | 'error'\n >\n >\n) => css`\n box-sizing: border-box;\n display: block;\n background-color: ${props.theme.colors.white};\n border: solid 1px ${props.theme.colors.alto};\n width: auto;\n appearance: none;\n font-size: 16px;\n ${props.color ? color(props.color) : null};\n &::placeholder {\n ${props.placeholderColor ? color(props.placeholderColor) : null}\n }\n ${focusStyle}\n ${props.disabled ? disabledStyle : null}\n ${props.rounded ? roundedStyle : null}\n\n ${props.width\n ? property(chooseWidthValue(props.width), props.fluid && props.width !== 'auto' ? 'max-width' : 'width')\n : null}\n ${responsiveNamedProperty({\n sizes: {\n widthXS: props.widthXS,\n widthS: props.widthS,\n widthM: props.widthM,\n widthL: props.widthL,\n widthXL: props.widthXL,\n },\n cssProperty: props.fluid && props.width !== 'auto' ? 'max-width' : 'width',\n customSizeHandler: chooseWidthValue,\n })}\n ${props.fluid\n ? css`\n width: 100%;\n `\n : null}\n ${props.error ? errorStyle : null}\n`\n\nexport const Root: React.ComponentType<StyledBaseInputProps> = styled(InputMask).withConfig<StyledBaseInputProps>({\n shouldForwardProp: (prop) =>\n !['color', 'placeholderColor', 'rounded', 'fluid', 'error'].includes(prop) && !prop.includes('width'),\n})`\n line-height: 24px;\n padding: 15px 20px 11px;\n ${(props) => baseInputStyle(props)}\n`\n\nexport const Input: React.ComponentType<StyledInputProps> = styled(InputMask).withConfig<StyledInputProps>({\n shouldForwardProp: (propKey) => !['palette', 'label', 'labelPosition', 'active'].includes(propKey),\n})`\n ${(props) => {\n let opacity = '1'\n let paddingTop = '0px'\n\n if (props.label && props.labelPosition === 'dynamic') {\n opacity = `${props.active ? 1 : 0}`\n paddingTop = '0.8em'\n }\n\n if (props.label && props.labelPosition === 'top') {\n paddingTop = '0.8em'\n }\n\n if (props.label && props.labelPosition === 'center') {\n opacity = `${props.active ? 1 : 0}`\n }\n\n return `\n box-sizing: border-box;\n appearance: textfield;\n border: none;\n padding: 0;\n margin: 0;\n font-size: inherit;\n line-height: inherit;\n background-color: transparent;\n width: 100%;\n align-self: stretch;\n opacity: ${opacity};\n padding-top: ${paddingTop};\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n\n &[type=\"number\"]::-webkit-outer-spin-button,\n &[type=\"number\"]::-webkit-inner-spin-button {\n appearance: none;\n margin: 0;\n }\n\n &:focus {\n cursor: text;\n outline: none;\n }\n `\n }}\n ${(props) =>\n template({\n inputColor: props.theme.colors['content-onmain-primary'],\n inputPlaceholderColor: props.theme.colors['content-onmain-secondary'],\n inputColorDisabled: props.theme.colors['content-disabled'],\n inputPlaceholderColorDisabled: props.theme.colors['content-disabled'],\n ...props.palette,\n })}\n`\n\nexport const InputControl = styled.button.withConfig<StyledInputControlsProps>({\n shouldForwardProp: (propKey) => !['palette'].includes(propKey),\n})`\n box-sizing: border-box;\n appearance: none;\n position: relative;\n padding: 5px;\n margin: 0;\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n border-radius: 8px;\n cursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')};\n &:first-child {\n margin-left: 4px;\n }\n &:not(:first-child) {\n margin-left: 9px;\n }\n &:not(:first-child)::before {\n content: '';\n position: absolute;\n width: 1px;\n height: 60%;\n top: 50%;\n left: -5px;\n transform: translateY(-50%);\n }\n ${(props) =>\n controlsTemplate({\n controlsColor: props.theme.colors['content-onmain-tertiary'],\n controlsColorHover: props.theme.colors['content-onmain-primary'],\n controlsColorActive: props.theme.colors['content-onmain-primary'],\n controlsColorDisabled: props.theme.colors['content-disabled'],\n controlsBackgroundColor: props.theme.colors.transparent,\n controlsBackgroundColorHover: tinycolor(props.theme.colors['bg-oncolor-hover'])\n .lighten(20)\n .toString() as CSSColor,\n controlsBackgroundColorActive: props.theme.colors['bg-oncolor-hover'],\n controlsBackgroundColorDisabled: props.theme.colors.transparent,\n controlsSeparatorColor: props.theme.colors['border-onmain-default-large'],\n ...props.palette,\n })}\n\n ${focus}\n`\n","import styled, { css } from 'styled-components'\nimport { property, responsiveNamedProperty } from 'mixins/responsive-property'\nimport { chooseWidthValue } from 'components/Input/helpers'\nimport { baseInputStyle } from 'components/Input/style'\nimport { focus } from 'mixins/focus'\nimport type { StyledTextareaProps } from './types'\n\nconst brandTextareaStyle = css<StyledTextareaProps>`\n ${({ theme, disabled }) => `\n display: block;\n box-sizing: border-box;\n appearance: none;\n width: auto;\n resize: none;\n cursor: ${disabled ? 'not-allowed' : 'text'};\n\n background: ${theme.colors['bg-onmain-secondary']};\n border: 1px solid ${theme.colors['border-onmain-default-large']};\n border-radius: 12px;\n padding: 12px 16px;\n\n font-style: normal;\n font-weight: 400;\n font-size: 18px;\n line-height: 24px;\n color: ${theme.colors['content-onmain-primary']};\n\n transition-property: background-color, border-color, color, caret-color;\n transition-duration: 200ms;\n transition-timing-function: ease-in;\n\n &::placeholder {\n color: ${theme.colors['content-onmain-secondary']};\n }\n\n &:disabled {\n background-color: ${theme.colors['bg-disabled-large']};\n border-color: ${theme.colors['border-disabled']};\n color: ${theme.colors['content-disabled']};\n }\n `};\n\n ${(props) =>\n props.width\n ? property(chooseWidthValue(props.width), props.fluid && props.width !== 'auto' ? 'max-width' : 'width')\n : null}\n\n ${(props) =>\n responsiveNamedProperty({\n sizes: {\n widthXS: props.widthXS,\n widthS: props.widthS,\n widthM: props.widthM,\n widthL: props.widthL,\n widthXL: props.widthXL,\n },\n cssProperty: props.fluid && props.width !== 'auto' ? 'max-width' : 'width',\n customSizeHandler: chooseWidthValue,\n })}\n\n ${({ fluid }) => fluid && 'width: 100%;'}\n\n ${({ error, theme }) =>\n error &&\n `\n background-color: ${theme.colors['alert-bg-error-100']};\n border: 1px solid ${theme.colors['alert-bg-error-500']};\n `}\n\n ${focus}\n`\n\nconst baseTextareaStyle = css`\n resize: none;\n line-height: 23px;\n padding: 16px 20px 11px;\n ${baseInputStyle}\n`\n\nexport const Root = styled.textarea.withConfig<StyledTextareaProps>({\n shouldForwardProp: (prop) =>\n !['color', 'placeholderColor', 'rounded', 'fluid', 'error', 'brandPresetUsed', 'theme'].includes(prop) &&\n !prop.includes('width'),\n})`\n ${({ brandPresetUsed }) => (brandPresetUsed ? brandTextareaStyle : baseTextareaStyle)}\n`\n","import { useCallback, useEffect, useRef, useState } from 'react'\nimport { useTheme } from 'styled-components'\nimport { omit } from 'ramda'\nimport { useConfigPriority } from 'hooks/use-config-priority'\nimport * as Styled from './style'\nimport type { TextareaProps } from './types'\n\nconst COMPONENT_NAME = 'Textarea'\n\nconst Textarea = (props: TextareaProps) => {\n const theme = useTheme()\n\n const {\n preset,\n disabled,\n error,\n fluid,\n name,\n onChange,\n maxLength,\n placeholder,\n required,\n tabIndex,\n value,\n className,\n style,\n autosize = true,\n rounded = true,\n cols = 20,\n rows = 2,\n maxRows = 30,\n color = 'mineShaft',\n placeholderColor = 'silver',\n width = theme.defaultInputControlsWidth,\n ...configProps\n } = useConfigPriority<TextareaProps>(theme.components?.[COMPONENT_NAME], omit(['children'], props))\n\n const textarea = useRef() as React.MutableRefObject<HTMLTextAreaElement>\n\n const [tRows, setRows] = useState(rows)\n\n const onChangeHandler = useCallback(\n (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n const { target } = event\n\n if (target instanceof HTMLTextAreaElement && autosize) {\n const rect = target.getBoundingClientRect()\n\n if (target.scrollHeight > rect.height && tRows < maxRows) {\n setRows(tRows + 1)\n } else if (!target.value || target.value === '') {\n setRows(rows)\n }\n }\n\n if (typeof onChange === 'function') {\n onChange(event)\n }\n },\n [onChange, tRows, maxRows, autosize]\n )\n\n useEffect(() => {\n if (!textarea || !textarea.current) return\n\n const el = textarea.current\n const rect = el.getBoundingClientRect()\n if (el.scrollHeight > rect.height) {\n const lh = parseInt(getComputedStyle(el).lineHeight, 10)\n const numberOfLines = Math.floor(el.scrollHeight / lh)\n if (numberOfLines <= maxRows && numberOfLines > rows) {\n setRows(numberOfLines)\n }\n }\n }, [])\n\n let brandPresetUsed = theme.preset === 'brand'\n if (typeof preset === 'string') brandPresetUsed = preset === 'brand'\n\n return (\n <Styled.Root\n {...configProps}\n ref={textarea}\n className={className}\n style={style}\n onChange={onChangeHandler}\n cols={cols}\n disabled={disabled}\n maxLength={maxLength}\n name={name}\n placeholder={placeholder}\n required={required}\n rows={tRows}\n tabIndex={tabIndex}\n value={value}\n color={color}\n rounded={rounded}\n placeholderColor={placeholderColor}\n fluid={fluid}\n error={error}\n width={width}\n brandPresetUsed={brandPresetUsed}\n />\n )\n}\n\nTextarea.displayName = COMPONENT_NAME\n\nexport { Textarea, COMPONENT_NAME }\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n fontSize: 22,\n paddingTop: 4,\n paddingRight: 8,\n paddingBottom: 4,\n paddingLeft: 16,\n minHeight: 72,\n borderRadius: 15,\n },\n xxl: {\n fontSize: 22,\n paddingTop: 4,\n paddingRight: 8,\n paddingBottom: 4,\n paddingLeft: 16,\n minHeight: 72,\n borderRadius: 15,\n },\n xl: {\n fontSize: 20,\n paddingTop: 4,\n paddingRight: 8,\n paddingBottom: 4,\n paddingLeft: 16,\n minHeight: 64,\n borderRadius: 13,\n },\n l: {\n fontSize: 18,\n paddingTop: 4,\n paddingRight: 8,\n paddingBottom: 4,\n paddingLeft: 16,\n minHeight: 56,\n borderRadius: 12,\n },\n m: {\n fontSize: 16,\n paddingTop: 4,\n paddingRight: 8,\n paddingBottom: 4,\n paddingLeft: 16,\n minHeight: 48,\n borderRadius: 10,\n },\n s: {\n fontSize: 14,\n paddingTop: 4,\n paddingRight: 6,\n paddingBottom: 4,\n paddingLeft: 14,\n minHeight: 40,\n borderRadius: 8,\n },\n xs: {\n fontSize: 12,\n paddingTop: 4,\n paddingRight: 6,\n paddingBottom: 4,\n paddingLeft: 14,\n minHeight: 40,\n borderRadius: 8,\n },\n xxs: {\n fontSize: 12,\n paddingTop: 4,\n paddingRight: 6,\n paddingBottom: 4,\n paddingLeft: 14,\n minHeight: 40,\n borderRadius: 8,\n },\n xxxs: {\n fontSize: 12,\n paddingTop: 4,\n paddingRight: 6,\n paddingBottom: 4,\n paddingLeft: 14,\n minHeight: 40,\n borderRadius: 8,\n },\n}\n","import styled, { css } from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport { Text } from 'components/Text'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { responsiveMargin } from 'mixins/responsive-margin'\nimport type { CSSColor } from 'shared/types'\nimport type { StyledFormInputLabelProps, FormInputLabelPalette } from './types'\n\nconst shouldForwardFormInputLabelProp = createShouldForwardProp(\n (propKey) =>\n ![\n 'primary',\n 'secondary',\n 'active',\n 'error',\n 'success',\n 'disabled',\n 'onColored',\n 'labelPosition',\n 'inline',\n ].includes(propKey)\n)\n\nexport const Label = styled(Text).attrs({ forwardedAs: 'label' })`\n box-sizing: border-box;\n position: relative;\n display: flex;\n flex-grow: 1;\n align-self: stretch;\n cursor: inherit;\n &::after {\n content: '';\n position: absolute;\n bottom: 0;\n right: 0;\n width: 40px;\n height: 100%;\n pointer-events: none;\n opacity: 1;\n background-image: linear-gradient(90deg, transparent, currentColor);\n transition-property: color, opacity;\n }\n`\n\nexport const Caption = styled.span`\n box-sizing: border-box;\n position: absolute;\n left: 0;\n top: 50%;\n width: 100%;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n pointer-events: none;\n transition-property: transform;\n`\n\nconst template = (palette: FormInputLabelPalette) => `\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n border-color: ${palette.borderColor};\n &:hover {\n color: ${palette.colorHover};\n background-color: ${palette.backgroundColorHover};\n border-color: ${palette.borderColorHover};\n }\n &:focus-within {\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n border-color: ${palette.borderColor};\n }\n & > ${Label}::after {\n color: ${palette.backgroundColor};\n }\n`\n\nconst COLOR_SCHEMA = {\n onColored: {\n disabled: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors['bg-disabled-large'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-disabled'],\n backgroundColorHover: props.theme.colors['bg-disabled-large'],\n borderColorHover: props.theme.colors.transparent,\n ...props.palette,\n })}\n `,\n error: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-error-200'],\n borderColor: props.theme.colors['alert-bg-error-500'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: props.theme.colors['alert-bg-error-200'],\n borderColorHover: props.theme.colors['alert-bg-error-500'],\n ...props.palette,\n })}\n `,\n success: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-success-200'],\n borderColor: props.theme.colors['alert-bg-success-500'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: props.theme.colors['alert-bg-success-200'],\n borderColorHover: props.theme.colors['alert-bg-success-500'],\n ...props.palette,\n })}\n `,\n default: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['bg-onmain-primary'],\n borderColor: props.theme.colors['border-onmain-default-large'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-onmain-primary']).darken(4).toString() as CSSColor,\n borderColorHover: props.theme.colors['border-onmain-default-large'],\n ...props.palette,\n })}\n `,\n },\n secondary: {\n disabled: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors['bg-disabled-large'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-disabled'],\n backgroundColorHover: props.theme.colors['bg-disabled-large'],\n borderColorHover: props.theme.colors.transparent,\n ...props.palette,\n })}\n `,\n error: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-error-100'],\n borderColor: props.theme.colors['alert-bg-error-500'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: props.theme.colors['alert-bg-error-100'],\n borderColorHover: props.theme.colors['alert-bg-error-500'],\n ...props.palette,\n })}\n `,\n success: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-success-100'],\n borderColor: props.theme.colors['alert-bg-success-500'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: props.theme.colors['alert-bg-success-100'],\n borderColorHover: props.theme.colors['alert-bg-success-500'],\n ...props.palette,\n })}\n `,\n default: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['bg-onmain-secondary'],\n borderColor: props.theme.colors['border-onmain-default-large'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-onmain-secondary']).darken(4).toString() as CSSColor,\n borderColorHover: props.theme.colors['border-onmain-default-large'],\n ...props.palette,\n })}\n `,\n },\n primary: {\n disabled: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors['bg-disabled-large'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-disabled'],\n backgroundColorHover: props.theme.colors['bg-disabled-large'],\n borderColorHover: props.theme.colors.transparent,\n ...props.palette,\n })}\n `,\n error: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-error-100'],\n borderColor: props.theme.colors['alert-bg-error-500'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: props.theme.colors['alert-bg-error-100'],\n borderColorHover: props.theme.colors['alert-bg-error-500'],\n ...props.palette,\n })}\n `,\n success: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-success-100'],\n borderColor: props.theme.colors['alert-bg-success-500'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: props.theme.colors['alert-bg-success-100'],\n borderColorHover: props.theme.colors['alert-bg-success-500'],\n ...props.palette,\n })}\n `,\n default: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['bg-onmain-primary'],\n borderColor: props.theme.colors['border-onmain-default-large'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-onmain-primary']).darken(4).toString() as CSSColor,\n borderColorHover: props.theme.colors['border-onmain-default-large'],\n ...props.palette,\n })}\n `,\n },\n}\n\nexport const Root = styled.div\n .withConfig<StyledFormInputLabelProps>({\n shouldForwardProp: shouldForwardFormInputLabelProp,\n })\n .attrs<StyledFormInputLabelProps>(<Required<Pick<StyledFormInputLabelProps, 'dynamicSizeDeclaration'>>>{\n dynamicSizeDeclaration: (size, sizeUnits) => ({\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n padding: '0.25em 0.6em 0.25em 1em',\n minHeight: '3em',\n borderRadius: '0.6em',\n }),\n })`\n ${(props) => {\n let transform = props.active ? 'scale(0.7) translateX(-21.5%) translateY(-145%)' : 'translateY(-50%)'\n let opacity = '1'\n let zIndex = 'auto'\n\n if (props.labelPosition === 'top') {\n transform = 'scale(0.7) translateX(-21.5%) translateY(-145%)'\n }\n if (props.labelPosition === 'center') {\n transform = `translateY(-50%)`\n opacity = props.active ? '0' : '1'\n zIndex = props.active ? '-1' : 'auto'\n }\n\n return `\n box-sizing: border-box;\n position: relative;\n isolation: isolate;\n display: ${props.inline ? 'inline-flex' : 'flex'};\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n align-items: center;\n min-width: min-content;\n border: 1px solid transparent;\n transition-property: background-color;\n\n &,\n & > ${Label}::after,\n & > ${Label} > ${Caption} {\n transition-duration: 150ms;\n transition-timing-function: ease;\n }\n\n & > ${Label} > ${Caption} {\n transform: ${transform};\n opacity: ${opacity};\n z-index: ${zIndex};\n }\n\n &:focus-within {\n box-shadow: 0 0 0 2px ${props.theme.colors.white}, 0 0 0 4px ${props.theme.colors['border-focus']};\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n\n &:hover > ${Label}::after,\n &:focus-within > ${Label}::after {\n opacity: 0;\n }\n `\n }}\n ${(props) => {\n let schema = COLOR_SCHEMA.primary\n\n if (props.secondary) schema = COLOR_SCHEMA.secondary\n if (props.onColored) schema = COLOR_SCHEMA.onColored\n\n if (props.disabled) return schema.disabled\n if (props.error) return schema.error\n if (props.success) return schema.success\n\n return schema.default\n }}\n\n ${responsiveSize}\n ${responsiveMargin}\n`\n","import { forwardRef } from 'react'\nimport { Text } from 'components/Text'\nimport { Icon } from 'components/Icon'\nimport { Spacer } from 'components/Spacer'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { SIZES } from './constants'\nimport * as Styled from './style'\nimport type { FormInputLabelProps } from './types'\n\nconst COMPONENT_NAME = 'FormInputLabel'\n\nconst FormInputLabel: React.ForwardRefExoticComponent<FormInputLabelProps> = withMergedProps<\n FormInputLabelProps,\n HTMLDivElement\n>(\n forwardRef((props, ref) => {\n const {\n size = 'm',\n labelPosition = 'dynamic',\n textProps = {},\n iconProps = {},\n icon,\n input,\n label,\n text,\n controls,\n ...restProps\n } = props\n\n return (\n <Styled.Root {...restProps} size={size} labelPosition={labelPosition} ref={ref}>\n {icon && (\n <Spacer display='flex' marginRight={12}>\n <Icon\n as='span'\n color='inherit'\n name={typeof icon === 'string' ? icon : undefined}\n icon={typeof icon !== 'string' ? icon : undefined}\n {...iconProps}\n />\n </Spacer>\n )}\n <Styled.Label size='inherit' color='inherit' {...textProps}>\n {input}\n {label && <Styled.Caption>{label}</Styled.Caption>}\n </Styled.Label>\n {text && (\n <Text\n size='inherit'\n color='inherit'\n whiteSpace='nowrap'\n marginLeft={12}\n marginRight={!controls ? 6 : undefined}\n {...textProps}\n >\n {text}\n </Text>\n )}\n {controls && (\n <Spacer display='flex' marginLeft={4}>\n {controls}\n </Spacer>\n )}\n </Styled.Root>\n )\n }),\n {\n sizes: SIZES,\n displayName: COMPONENT_NAME,\n }\n)\n\nexport { FormInputLabel, COMPONENT_NAME }\n","export const INITIAL_MASK = '99999999999999999999'\n\nexport const DEFAULT_MASK = `+${INITIAL_MASK}`\n\nexport const RUSSIAN_PHONE_WITHOUT_COUNTY_CODE_LENGTH = 10\n\nexport const COUNTRY_DATA: [string, string, string, RegExp][] = [\n ['Россия', '7', '+9 (999) 999-99-99', /^(\\+?7|8)([0-9()\\-\\s]{8,20})$/],\n ['Россия', '8', '+9 (999) 999-99-99', /^(\\+?7|8)([0-9()\\-\\s]{8,20})$/],\n ['Украина', '380', '+999 (99) 999-99-99', /^(\\+?380)([0-9()\\-\\s]{8,20})$/],\n ['Беларусь', '375', '+999 (999) 99-99-99', /^(\\+?375)([0-9()\\-\\s]{8,20})$/],\n ['Узбекистан', '998', '+999 (99) 999-99-99', /^(\\+?998)([0-9()\\-\\s]{8,20})$/],\n ['Молдова', '373', '+999 (99) 99-99-99', /^(\\+?373)([0-9()\\-\\s]{8,20})$/],\n ['Азербайджан', '994', '+999 (99) 999-99-99', /^(\\+?994)([0-9()\\-\\s]{8,20})$/],\n ['Киргизия', '996', '+999 (999) 99-99-99', /^(\\+?996)([0-9()\\-\\s]{8,20})$/],\n ['Болгария', '359', '+999 (999) 99-99-99', /^(\\+?359)([0-9()\\-\\s]{8,20})$/],\n ['Германия', '49', '+99 (999) 99999999', /^(\\+?49)([0-9()\\-\\s]{8,20})$/],\n ['США', '1', '+9 (999) 999-99-99', /^(\\+?1)([0-9()\\-\\s]{8,20})$/],\n ['Армения', '374', '+999 (99) 99-99-99', /^(\\+?374)([0-9()\\-\\s]{8,20})$/],\n ['Израиль', '972', '+999 (99) 999-99-99', /^(\\+?972)([0-9()\\-\\s]{8,20})$/],\n ['Испания', '34', '+99 (999) 99-99-99', /^(\\+?34)([0-9()\\-\\s]{8,20})$/],\n ['Латвия', '371', '+999 (99) 999-999', /^(\\+?371)([0-9()\\-\\s]{8,20})$/],\n ['Бахрейн', '973', '+999 (99) 999-999', /^(\\+?973)([0-9()\\-\\s]{8,20})$/],\n ['Турция', '90', '+99 (999) 999-9999', /^(\\+?90)([0-9()\\-\\s]{8,20})$/],\n ['Литва', '370', '+999 (999) 99999', /^(\\+?370)([0-9()\\-\\s]{8,20})$/],\n ['Великобритания', '44', '+99 (99) 9999-9999', /^(\\+?44)([0-9()\\-\\s]{8,20})$/],\n ['Индия', '91', '+99 (99) 99-999999', /^(\\+?91)([0-9()\\-\\s]{8,20})$/],\n ['Черногория', '382', '+999 (99) 999-999', /^(\\+?382)([0-9()\\-\\s]{8,20})$/],\n ['Мексика', '52', '+99 (999) 999-99-99', /^(\\+?52)([0-9()\\-\\s]{8,20})$/],\n ['Польша', '48', '+99 999999999', /^(\\+?48)([0-9()\\-\\s]{8,20})$/],\n ['Италия', '39', '+99 (999) 999-99-99', /^(\\+?39)([0-9()\\-\\s]{8,20})$/],\n ['Таиланд', '66', '+99 999-999-999', /^(\\+?66)([0-9()\\-\\s]{8,20})$/],\n ['Грузия', '995', '+999 (999) 999-999', /^(\\+?995)([0-9()\\-\\s]{8,20})$/],\n ['Шри-Ланка', '94', '+99 (99) 9999999', /^(\\+?94)([0-9()\\-\\s]{8,20})$/],\n ['Китай', '86', '+99 (999) 9999-9999', /^(\\+?86)([0-9()\\-\\s]{8,20})$/],\n ['Кипр', '357', '+999 (99) 999999', /^(\\+?357)([0-9()\\-\\s]{8,20})$/],\n ['ОАЭ', '971', '+999 99-999-9999', /^(\\+?971)([0-9()\\-\\s]{8,20})$/],\n ['Франция', '33', '+33(999)999-999', /^(\\+?33)([0-9()\\-\\s]{8,20})$/],\n ['Германия', '49', '+99(9999)999-9999', /^(\\+?49)([0-9()\\-\\s]{8,20})$/],\n ['Япония', '81', '+99 99-9999-9999', /^(\\+?81)([0-9()\\-\\s]{8,20})$/],\n ['Австрия', '43', '+99(999)999-99999', /^(\\+?43)([0-9()\\-\\s]{8,20})$/],\n ['Южная Корея', '82', '+99(999)999-9999', /^(\\+?82)([0-9()\\-\\s]{8,20})$/],\n]\n\nexport const REGEXPS = {\n FILLED: /^\\+\\d.*$/,\n FROM_8: /^\\+?8(.*)$/,\n FROM_9: /^\\+?9(.*)$/,\n NOT_NUMBERS: /\\D/gim,\n}\n","/* eslint-disable no-use-before-define */\nimport { PureComponent } from 'react'\nimport type { InputState } from 'react-input-mask'\nimport { Input } from '../Input/Input'\nimport type { InputProps } from '../Input'\nimport {\n COUNTRY_DATA,\n DEFAULT_MASK,\n INITIAL_MASK,\n REGEXPS,\n RUSSIAN_PHONE_WITHOUT_COUNTY_CODE_LENGTH,\n} from './constants'\n\nconst onlyNumbers = (value = ''): string => value.replace(REGEXPS.NOT_NUMBERS, '')\n\nexport interface InputPhoneProps extends InputProps {\n /**\n * Settings for different country codes\n */\n countryData?: string[][]\n /**\n * Default field mask that is set when none of the countryData prop matches\n */\n defaultMask?: string\n /**\n * The default field mask when the phone field is empty is required to enable autocomplete in\n * the browser\n */\n initialMask?: string\n /** If event should return stripped phone value (not for redux forms) */\n stripValue?: boolean\n}\n\ninterface InputPhoneState {\n mask: string\n regexp?: RegExp | null\n}\n\n/**\n * Расширен:\n * - `InputProps`\n */\nexport class InputPhone extends PureComponent<typeof InputPhone.defaultProps & InputPhoneProps, InputPhoneState> {\n static displayName = 'Input.Phone'\n static defaultProps = {\n countryData: COUNTRY_DATA,\n defaultMask: DEFAULT_MASK,\n initialMask: INITIAL_MASK,\n placeholder: '+9 (999) 999-99-99',\n rounded: true,\n type: 'text',\n color: 'mineShaft',\n mask: '',\n placeholderColor: 'silver',\n }\n\n autocorrectOf8: boolean\n autocorrectOf9: boolean\n\n constructor(props: typeof InputPhone.defaultProps & InputPhoneProps) {\n super(props)\n\n this.autocorrectOf8 = true\n this.autocorrectOf9 = true\n\n const { mask } = this.getUpdates(props.value || '')\n\n this.state = { mask, regexp: null }\n }\n\n componentDidUpdate(nextProps: InputPhoneProps) {\n const { value } = this.props\n\n if (value !== nextProps.value) {\n this.change(value)\n }\n }\n\n getUpdates = (\n value: InputPhoneProps['value'],\n prevValue: InputPhoneProps['value'] = undefined\n ): {\n mask: string\n numbers: string\n startsFrom8: boolean\n startsFrom9: boolean\n regexp: RegExp | null\n } => {\n const { countryData, defaultMask, initialMask } = this.props\n const numbers = onlyNumbers(value as string)\n\n let mask = initialMask\n let regexp = null\n let startsFrom8 = false\n let startsFrom9 = false\n\n if (!numbers)\n return {\n mask,\n numbers,\n startsFrom8,\n startsFrom9,\n regexp,\n }\n\n let isRussian = false\n\n for (let i = 0; i < countryData.length; i++) {\n if (numbers.startsWith(countryData[i][1])) {\n ;[, , mask, regexp] = countryData[i]\n isRussian = i === 0 || i === 1\n }\n }\n\n startsFrom8 = isRussian && REGEXPS.FROM_8.test(numbers) && this.autocorrectOf8\n startsFrom9 =\n (!mask || (numbers.length === RUSSIAN_PHONE_WITHOUT_COUNTY_CODE_LENGTH && prevValue === '')) &&\n this.autocorrectOf9 &&\n REGEXPS.FROM_9.test(numbers)\n\n if (startsFrom8) {\n // RUSSIAN_MASK\n mask = COUNTRY_DATA[0][2]\n\n this.autocorrectOf8 = false\n }\n\n if (startsFrom9) {\n // RUSSIAN_MASK\n mask = COUNTRY_DATA[0][2]\n\n this.autocorrectOf9 = false\n }\n\n if (!mask) {\n mask = defaultMask\n }\n\n return {\n mask,\n numbers,\n startsFrom8,\n startsFrom9,\n regexp,\n }\n }\n\n change = (phone: InputPhoneProps['value']) => {\n const { mask } = this.getUpdates(phone)\n\n this.setState({ mask })\n }\n\n handleChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n e.persist()\n\n const { onChange, stripValue } = this.props\n\n if (onChange) {\n const _e = e\n if (stripValue) _e.target.value = onlyNumbers(e.target.value)\n onChange(_e)\n }\n }\n\n beforeMaskedValueChange = (newState: InputState, oldState: InputState) => {\n const { mask, numbers, startsFrom8, startsFrom9, regexp } = this.getUpdates(newState.value, oldState.value)\n\n this.setState({ mask, regexp })\n\n /**\n * For the correct caret position, when the user enters 9 in the phone field and it's replaced\n * by '+7 (9'\n */\n if (startsFrom9) {\n return {\n selection: numbers.length === 1 ? { start: 5, end: 5 } : newState.selection,\n value: newState.value.replace(REGEXPS.FROM_9, '+79$1'),\n }\n }\n\n if (startsFrom8) {\n return { selection: { start: 2, end: 2 }, value: newState.value.replace(REGEXPS.FROM_8, '+7$1') }\n }\n\n if (REGEXPS.FILLED.test(oldState.value) && numbers.length === 1) {\n return { selection: { start: 2, end: 2 }, value: newState.value }\n }\n\n if (!REGEXPS.FILLED.test(oldState.value) && REGEXPS.FILLED.test(newState.value)) {\n return {\n ...newState,\n selection: newState.selection ? { start: newState.selection.start + 1, end: newState.selection.end + 1 } : null,\n }\n }\n\n return newState\n }\n\n render() {\n const {\n /* eslint-disable no-unused-vars, @typescript-eslint/no-unused-vars */\n countryData,\n defaultMask,\n initialMask,\n stripValue,\n /* eslint-enable no-unused-vars, @typescript-eslint/no-unused-vars */\n ...props\n } = this.props\n const { mask, regexp } = this.state\n\n return (\n <Input\n {...props}\n beforeMaskedValueChange={this.beforeMaskedValueChange}\n mask={mask}\n data-regexp={regexp instanceof RegExp ? regexp.toString() : undefined}\n onChange={this.handleChange}\n />\n )\n }\n}\n","import { forwardRef, useState, useImperativeHandle, useRef } from 'react'\nimport { useTheme } from 'styled-components'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { FormInputLabel, SIZES } from 'components/FormInputLabel'\nimport { Icon } from 'components/Icon'\nimport { InputPhone } from 'components/Input.Phone'\nimport { Spacer } from 'components/Spacer'\nimport * as Styled from './style'\nimport type { InputProps } from './types'\n\nconst COMPONENT_NAME = 'Input'\n\n/**\n *\n * Component accepts all \\<input\\> attributes and \"react-input-mask\" v2.0.4 props.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to \\<input\\>.\n *\n * See full [InputProps](https://github.com/foxford/ui/blob/master/src/components/Input/types.ts)\n */\nconst Input: React.ForwardRefExoticComponent<InputProps> & { Phone: typeof InputPhone } = Object.assign(\n withMergedProps<InputProps, HTMLInputElement>(\n forwardRef((props, forwardedRef) => {\n const theme = useTheme()\n\n const {\n size = 'm',\n mask = '',\n rounded = true,\n color = 'mineShaft',\n placeholderColor = 'silver',\n width = theme.defaultInputControlsWidth,\n type = 'text',\n labelPosition = 'dynamic',\n textProps = {},\n iconProps = {},\n controls = {},\n preset,\n className,\n style,\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n sizeUnits,\n sizes,\n margin,\n marginXXS,\n marginXS,\n marginS,\n marginM,\n marginL,\n marginXL,\n marginTop,\n marginTopXXS,\n marginTopXS,\n marginTopS,\n marginTopM,\n marginTopL,\n marginTopXL,\n marginRight,\n marginRightXXS,\n marginRightXS,\n marginRightS,\n marginRightM,\n marginRightL,\n marginRightXL,\n marginBottom,\n marginBottomXXS,\n marginBottomXS,\n marginBottomS,\n marginBottomM,\n marginBottomL,\n marginBottomXL,\n marginLeft,\n marginLeftXXS,\n marginLeftXS,\n marginLeftS,\n marginLeftM,\n marginLeftL,\n marginLeftXL,\n marginUnits,\n palette,\n widthXXS,\n widthXS,\n widthS,\n widthM,\n widthL,\n widthXL,\n error,\n success,\n label,\n icon,\n text,\n primary,\n secondary,\n onColored,\n fluid,\n disabled,\n inline,\n inputRef,\n ...inputProps\n } = props\n\n const {\n icon: additionalControlIcon,\n iconProps: additionalControlIconProps = {},\n buttonProps: additionalControlButtonProps = {},\n } = controls.additional ?? {}\n\n const {\n icon: numberControlIcon,\n iconProps: numberControlIconProps = {},\n buttonProps: numberControlButtonProps = [],\n } = controls.number ?? {}\n\n const [minus, plus] = Array.isArray(numberControlIcon) ? numberControlIcon : [numberControlIcon]\n\n const minusButtonProps =\n (Array.isArray(numberControlButtonProps) ? numberControlButtonProps[0] : numberControlButtonProps) ?? {}\n\n const plusButtonProps = (Array.isArray(numberControlButtonProps) ? numberControlButtonProps[1] : {}) ?? {}\n\n const ref = useRef<HTMLInputElement | null>(null)\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(forwardedRef, () => ref.current, [])\n\n const hasInitValue =\n typeof inputProps.value === 'string' ||\n typeof inputProps.value === 'number' ||\n typeof inputProps.defaultValue === 'string' ||\n typeof inputProps.defaultValue === 'number'\n\n const [active, setActive] = useState(hasInitValue)\n const [hasValue, setHasValue] = useState(hasInitValue)\n\n const [minusDisabled, setMinusDisabled] = useState(() => {\n if (type !== 'number' || inputProps.min === undefined) return false\n\n const { value = Infinity, defaultValue = Infinity } = inputProps\n\n const initValue = typeof value === 'number' ? value : parseFloat(value)\n const initDefaultValue = typeof defaultValue === 'number' ? defaultValue : parseFloat(defaultValue)\n const minValue = typeof inputProps.min === 'number' ? inputProps.min : parseFloat(inputProps.min)\n\n return Math.min(initValue, initDefaultValue) <= minValue\n })\n\n const [plusDisabled, setPlusDisabled] = useState(() => {\n if (type !== 'number' || inputProps.max === undefined) return false\n\n const { value = -Infinity, defaultValue = -Infinity } = inputProps\n\n const initValue = typeof value === 'number' ? value : parseFloat(value)\n const initDefaultValue = typeof defaultValue === 'number' ? defaultValue : parseFloat(defaultValue)\n const maxValue = typeof inputProps.max === 'number' ? inputProps.max : parseFloat(inputProps.max)\n\n return Math.max(initValue, initDefaultValue) >= maxValue\n })\n\n if (preset !== 'brand') {\n return (\n <Styled.Root\n {...inputProps}\n inputRef={\n inputRef ??\n ((input) => {\n ref.current = input\n })\n }\n className={className}\n style={style}\n size={typeof size === 'number' ? size : undefined}\n mask={mask}\n rounded={rounded}\n color={color}\n placeholderColor={placeholderColor}\n width={width}\n widthXXS={widthXXS}\n widthXS={widthXS}\n widthS={widthS}\n widthM={widthM}\n widthL={widthL}\n widthXL={widthXL}\n error={error}\n type={type}\n fluid={fluid}\n disabled={disabled}\n />\n )\n }\n\n return (\n <FormInputLabel\n className={className}\n style={style}\n size={size}\n sizeXXS={sizeXXS}\n sizeXS={sizeXS}\n sizeS={sizeS}\n sizeM={sizeM}\n sizeL={sizeL}\n sizeXL={sizeXL}\n sizeUnits={sizeUnits}\n sizes={sizes}\n margin={margin}\n marginXXS={marginXXS}\n marginXS={marginXS}\n marginS={marginS}\n marginM={marginM}\n marginL={marginL}\n marginXL={marginXL}\n marginTop={marginTop}\n marginTopXXS={marginTopXXS}\n marginTopXS={marginTopXS}\n marginTopS={marginTopS}\n marginTopM={marginTopM}\n marginTopL={marginTopL}\n marginTopXL={marginTopXL}\n marginRight={marginRight}\n marginRightXXS={marginRightXXS}\n marginRightXS={marginRightXS}\n marginRightS={marginRightS}\n marginRightM={marginRightM}\n marginRightL={marginRightL}\n marginRightXL={marginRightXL}\n marginBottom={marginBottom}\n marginBottomXXS={marginBottomXXS}\n marginBottomXS={marginBottomXS}\n marginBottomS={marginBottomS}\n marginBottomM={marginBottomM}\n marginBottomL={marginBottomL}\n marginBottomXL={marginBottomXL}\n marginLeft={marginLeft}\n marginLeftXXS={marginLeftXXS}\n marginLeftXS={marginLeftXS}\n marginLeftS={marginLeftS}\n marginLeftM={marginLeftM}\n marginLeftL={marginLeftL}\n marginLeftXL={marginLeftXL}\n marginUnits={marginUnits}\n palette={palette}\n error={error}\n success={success}\n label={label}\n labelPosition={labelPosition}\n icon={icon}\n text={text}\n primary={primary}\n secondary={secondary}\n onColored={onColored}\n disabled={disabled}\n inline={inline}\n active={active}\n textProps={textProps}\n iconProps={{\n size: 24,\n color: disabled ? 'content-disabled' : 'content-onmain-tertiary',\n ...iconProps,\n }}\n onClick={() => {\n if (ref.current) {\n ref.current.focus()\n }\n }}\n onFocus={(evt) => {\n if (evt.target !== evt.currentTarget) {\n setActive(true)\n }\n }}\n onBlur={(evt) => {\n if (evt.target !== evt.currentTarget && !hasValue) {\n setActive(false)\n }\n }}\n input={\n <Styled.Input\n {...inputProps}\n inputRef={(input) => {\n ref.current = input\n }}\n mask={mask}\n palette={palette}\n type={type}\n label={label}\n labelPosition={labelPosition}\n disabled={disabled}\n active={active}\n onChange={(evt) => {\n if (inputProps.onChange) {\n inputProps.onChange(evt)\n }\n\n if (type === 'number') {\n const currentValue = parseFloat(evt.currentTarget.value)\n\n const minValueReached = currentValue <= parseFloat(evt.currentTarget.min)\n const maxValueReached = currentValue >= parseFloat(evt.currentTarget.max)\n\n setMinusDisabled(minValueReached)\n setPlusDisabled(maxValueReached)\n\n if (minValueReached || maxValueReached) {\n evt.currentTarget.focus()\n }\n }\n }}\n onBlur={(evt) => {\n evt.stopPropagation()\n if (inputProps.onBlur) {\n inputProps.onBlur(evt)\n }\n\n setHasValue(Boolean(evt.currentTarget.value))\n setActive(Boolean(evt.currentTarget.value))\n }}\n />\n }\n controls={\n additionalControlIcon || type === 'number' ? (\n <>\n {additionalControlIcon && (\n <Styled.InputControl\n {...additionalControlButtonProps}\n type='button'\n palette={palette}\n disabled={disabled}\n onClick={(evt) => {\n evt.stopPropagation()\n if (additionalControlButtonProps.onClick) {\n additionalControlButtonProps.onClick(evt)\n }\n }}\n >\n <Icon\n as='span'\n size={24}\n color='inherit'\n name={typeof additionalControlIcon === 'string' ? additionalControlIcon : undefined}\n icon={typeof additionalControlIcon !== 'string' ? additionalControlIcon : undefined}\n {...additionalControlIconProps}\n />\n </Styled.InputControl>\n )}\n {type === 'number' && (\n <Spacer display='flex' marginLeft={4}>\n <Styled.InputControl\n {...minusButtonProps}\n type='button'\n palette={palette}\n disabled={disabled || minusDisabled}\n onClick={(evt) => {\n evt.stopPropagation()\n if (minusButtonProps.onClick) {\n minusButtonProps.onClick(evt)\n }\n\n try {\n if (ref.current) {\n const prev = ref.current.value\n ref.current.stepDown()\n\n const decremented = ref.current.value\n if (prev !== decremented) {\n const event = new Event('input', { bubbles: true })\n ref.current.dispatchEvent(event)\n }\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error(err)\n }\n }}\n >\n {minus === undefined ? (\n <Icon\n as='span'\n size={24}\n color='inherit'\n name='minus'\n preset='brand'\n {...numberControlIconProps}\n />\n ) : (\n <Icon\n as='span'\n size={24}\n color='inherit'\n name={typeof minus === 'string' ? minus : undefined}\n icon={typeof minus !== 'string' ? minus : undefined}\n {...numberControlIconProps}\n />\n )}\n </Styled.InputControl>\n <Styled.InputControl\n {...plusButtonProps}\n type='button'\n palette={palette}\n disabled={disabled || plusDisabled}\n onClick={(evt) => {\n evt.stopPropagation()\n if (plusButtonProps.onClick) {\n plusButtonProps.onClick(evt)\n }\n\n try {\n if (ref.current) {\n const prev = ref.current.value\n ref.current.stepUp()\n\n const incremented = ref.current.value\n if (prev !== incremented) {\n const event = new Event('input', { bubbles: true })\n ref.current.dispatchEvent(event)\n }\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error(err)\n }\n }}\n >\n {plus === undefined ? (\n <Icon\n as='span'\n size={24}\n color='inherit'\n name='plus'\n preset='brand'\n {...numberControlIconProps}\n />\n ) : (\n <Icon\n as='span'\n size={24}\n color='inherit'\n name={typeof plus === 'string' ? plus : undefined}\n icon={typeof plus !== 'string' ? plus : undefined}\n {...numberControlIconProps}\n />\n )}\n </Styled.InputControl>\n </Spacer>\n )}\n </>\n ) : undefined\n }\n />\n )\n }),\n {\n sizes: SIZES,\n displayName: COMPONENT_NAME,\n }\n ),\n {\n Phone: InputPhone,\n }\n)\n\nexport { Input, COMPONENT_NAME }\n","import styled, { css } from 'styled-components'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport type { StyledInputRadioProps, InputRadioPalette } from './types'\n\nconst shouldForwardInputRadioProp = createShouldForwardProp(\n (propKey) => !['inline', 'error', 'success', 'onColored', 'disabled'].includes(propKey)\n)\n\nexport const Input = styled.input`\n box-sizing: border-box;\n position: absolute;\n top: 0;\n left: 0;\n margin: 0;\n border: none;\n opacity: 0;\n width: 100%;\n height: 100%;\n z-index: 1;\n &:focus {\n outline: none;\n }\n`\n\nexport const InputMask = styled.span`\n box-sizing: border-box;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border-radius: inherit;\n border: 1px solid transparent;\n transition-property: border-color;\n transition-duration: 150ms;\n transition-timing-function: ease-in;\n &::before {\n content: '';\n position: absolute;\n width: 40%;\n height: 40%;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n border-radius: 50%;\n opacity: 0;\n }\n`\n\nconst template = (palette: InputRadioPalette) => `\n & > ${InputMask} {\n background-color: ${palette.backgroundColor};\n border-color: ${palette.borderColor};\n }\n & > ${InputMask}::before {\n background-color: ${palette.color};\n }\n &:hover > ${InputMask} {\n background-color: ${palette.backgroundColorHover};\n border-color: ${palette.borderColorHover};\n }\n &:hover > ${InputMask}::before {\n background-color: ${palette.colorHover};\n }\n & > ${Input}:checked:not(:disabled) + ${InputMask} {\n background-color: ${palette.backgroundColorChecked};\n border-color: ${palette.borderColorChecked};\n }\n & > ${Input}:checked:not(:disabled) + ${InputMask}::before {\n background-color: ${palette.colorChecked};\n }\n & > ${Input}:disabled:not(:checked) + ${InputMask} {\n background-color: ${palette.backgroundColorDisabled};\n border-color: ${palette.borderColorDisabled};\n }\n & > ${Input}:disabled:not(:checked) + ${InputMask}::before {\n background-color: ${palette.colorDisabled};\n }\n & > ${Input}:disabled:checked + ${InputMask} {\n background-color: ${palette.backgroundColorDisabledChecked};\n border-color: ${palette.borderColorDisabledChecked};\n }\n & > ${Input}:disabled:checked + ${InputMask}::before {\n background-color: ${palette.colorDisabledChecked};\n }\n`\n\nconst COLOR_SCHEMA = {\n default: {\n error: css<StyledInputRadioProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['bg-onmain-primary'],\n borderColor: props.theme.colors['alert-bg-error-500'],\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.theme.colors['bg-onmain-primary'],\n borderColorHover: props.theme.colors['alert-bg-error-500'],\n colorChecked: props.theme.colors['content-oncolor-primary'],\n backgroundColorChecked: props.theme.colors['alert-bg-error-500'],\n borderColorChecked: props.theme.colors['alert-bg-error-500'],\n colorDisabled: props.theme.colors['bg-onmain-secondary'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors['border-disabled'],\n colorDisabledChecked: props.theme.colors['bg-onmain-secondary'],\n backgroundColorDisabledChecked: props.theme.colors['bg-disabled-active'],\n borderColorDisabledChecked: props.theme.colors['bg-disabled-active'],\n ...props.palette,\n })}\n `,\n success: css<StyledInputRadioProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['bg-onmain-primary'],\n borderColor: props.theme.colors['alert-bg-success-500'],\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.theme.colors['bg-onmain-primary'],\n borderColorHover: props.theme.colors['alert-bg-success-500'],\n colorChecked: props.theme.colors['content-oncolor-primary'],\n backgroundColorChecked: props.theme.colors['alert-bg-success-500'],\n borderColorChecked: props.theme.colors['alert-bg-success-500'],\n colorDisabled: props.theme.colors['bg-onmain-secondary'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors['border-disabled'],\n colorDisabledChecked: props.theme.colors['bg-onmain-secondary'],\n backgroundColorDisabledChecked: props.theme.colors['bg-disabled-active'],\n borderColorDisabledChecked: props.theme.colors['bg-disabled-active'],\n ...props.palette,\n })}\n `,\n default: css<StyledInputRadioProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['bg-onmain-primary'],\n borderColor: props.theme.colors['border-onmain-default-small'],\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.theme.colors['bg-onmain-primary'],\n borderColorHover: props.theme.colors['border-brand-primary'],\n colorChecked: props.theme.colors['content-oncolor-primary'],\n backgroundColorChecked: props.theme.colors['bg-brand-primary-basic'],\n borderColorChecked: props.theme.colors['bg-brand-primary-basic'],\n colorDisabled: props.theme.colors['bg-onmain-secondary'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors['border-disabled'],\n colorDisabledChecked: props.theme.colors['bg-onmain-secondary'],\n backgroundColorDisabledChecked: props.theme.colors['bg-disabled-active'],\n borderColorDisabledChecked: props.theme.colors['bg-disabled-active'],\n ...props.palette,\n })}\n `,\n },\n onColored: {\n error: css<StyledInputRadioProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['bg-onmain-secondary'],\n borderColor: props.theme.colors['alert-error'],\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.theme.colors['bg-onmain-secondary'],\n borderColorHover: props.theme.colors['alert-error'],\n colorChecked: props.theme.colors['content-oncolor-primary'],\n backgroundColorChecked: props.theme.colors['alert-bg-error-500'],\n borderColorChecked: props.theme.colors['alert-bg-error-500'],\n colorDisabled: props.theme.colors['bg-onmain-secondary'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-small'],\n borderColorDisabled: props.theme.colors['border-disabled'],\n colorDisabledChecked: props.theme.colors['bg-onmain-secondary'],\n backgroundColorDisabledChecked: props.theme.colors['bg-disabled-active'],\n borderColorDisabledChecked: props.theme.colors['bg-disabled-active'],\n ...props.palette,\n })}\n `,\n success: css<StyledInputRadioProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['bg-onmain-secondary'],\n borderColor: props.theme.colors['alert-success'],\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.theme.colors['bg-onmain-secondary'],\n borderColorHover: props.theme.colors['alert-success'],\n colorChecked: props.theme.colors['content-oncolor-primary'],\n backgroundColorChecked: props.theme.colors['alert-bg-success-500'],\n borderColorChecked: props.theme.colors['alert-bg-success-500'],\n colorDisabled: props.theme.colors['bg-onmain-secondary'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-small'],\n borderColorDisabled: props.theme.colors['border-disabled'],\n colorDisabledChecked: props.theme.colors['bg-onmain-secondary'],\n backgroundColorDisabledChecked: props.theme.colors['bg-disabled-active'],\n borderColorDisabledChecked: props.theme.colors['bg-disabled-active'],\n ...props.palette,\n })}\n `,\n default: css<StyledInputRadioProps>`\n ${(props) =>\n template({\n color: props.theme.colors['bg-brand-primary-basic'],\n backgroundColor: props.theme.colors['bg-onmain-primary'],\n borderColor: props.theme.colors['border-onmain-default-small'],\n colorHover: props.theme.colors['bg-brand-primary-basic'],\n backgroundColorHover: props.theme.colors['bg-onmain-primary'],\n borderColorHover: props.theme.colors['border-brand-primary'],\n colorChecked: props.theme.colors['bg-brand-primary-basic'],\n backgroundColorChecked: props.theme.colors['bg-oncolor-primary'],\n borderColorChecked: props.theme.colors['bg-oncolor-primary'],\n colorDisabled: props.theme.colors['bg-onmain-secondary'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-small'],\n borderColorDisabled: props.theme.colors['border-disabled'],\n colorDisabledChecked: props.theme.colors['bg-onmain-secondary'],\n backgroundColorDisabledChecked: props.theme.colors['bg-disabled-active'],\n borderColorDisabledChecked: props.theme.colors['bg-disabled-active'],\n ...props.palette,\n })}\n `,\n },\n}\n\nexport const Root = styled.span\n .withConfig<StyledInputRadioProps>({\n shouldForwardProp: shouldForwardInputRadioProp,\n })\n .attrs(<Required<Pick<StyledInputRadioProps, 'dynamicSizeDeclaration'>>>{\n dynamicSizeDeclaration: (size, sizeUnits) => {\n return {\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n height: '1em',\n width: '1em',\n }\n },\n })`\n ${(props) => `\n box-sizing: border-box;\n isolation: isolate;\n position: relative;\n display: ${props.inline ? 'inline-flex' : 'flex'};\n border-radius: 50%;\n flex-shrink: 0;\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n & > ${Input} {\n cursor: inherit;\n }\n & > ${Input}:checked + ${InputMask}::before {\n opacity: 1;\n }\n & > ${Input}:focus-visible + ${InputMask} {\n box-shadow: 0 0 0 2px ${props.theme.colors.white}, 0 0 0 4px ${props.theme.colors['border-focus']};\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n `}\n ${(props) => {\n const schema = props.onColored ? COLOR_SCHEMA.onColored : COLOR_SCHEMA.default\n\n if (props.error) return schema.error\n if (props.success) return schema.success\n\n return schema.default\n }}\n\n ${responsiveSize}\n`\n","import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { SIZES } from './constants'\nimport * as Styled from './style'\nimport type { InputRadioProps } from './types'\n\nconst COMPONENT_NAME = 'InputRadio'\n\n/**\n *\n * Component accepts all \\<input\\> attributes.\n *\n * Responsive \"size\" props are supported.\n *\n * Exposed \"ref\" attached to \\<input\\>.\n *\n * See full [InputRadioProps](https://github.com/foxford/ui/blob/master/src/components/InputRadio/types.ts)\n *\n * @visibleName Radio\n */\nconst InputRadio: React.ForwardRefExoticComponent<InputRadioProps> = withMergedProps<InputRadioProps, HTMLInputElement>(\n forwardRef(\n (\n {\n size = 'm',\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n sizes,\n sizeUnits,\n inline,\n error,\n success,\n onColored,\n palette,\n style,\n className,\n disabled,\n ...inputProps\n },\n ref\n ) => {\n return (\n <Styled.Root\n size={size}\n sizeXXS={sizeXXS}\n sizeXS={sizeXS}\n sizeS={sizeS}\n sizeM={sizeM}\n sizeL={sizeL}\n sizeXL={sizeXL}\n sizes={sizes}\n sizeUnits={sizeUnits}\n inline={inline}\n error={error}\n success={success}\n onColored={onColored}\n palette={palette}\n style={style}\n className={className}\n disabled={disabled}\n >\n <Styled.Input {...inputProps} disabled={disabled} type='radio' ref={ref} />\n <Styled.InputMask />\n </Styled.Root>\n )\n }\n ),\n {\n displayName: COMPONENT_NAME,\n sizes: SIZES,\n }\n)\n\nexport { InputRadio, COMPONENT_NAME }\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n width: 40,\n height: 40,\n },\n xxl: {\n width: 36,\n height: 36,\n },\n xl: {\n width: 32,\n height: 32,\n },\n l: {\n width: 28,\n height: 28,\n },\n m: {\n width: 24,\n height: 24,\n },\n s: {\n width: 20,\n height: 20,\n },\n xs: {\n width: 18,\n height: 18,\n },\n xxs: {\n width: 16,\n height: 16,\n },\n xxxs: {\n width: 14,\n height: 14,\n },\n}\n","import styled, { css } from 'styled-components'\nimport { screenMaxS } from 'mixins/screen'\nimport { responsiveProperty } from 'mixins/responsive-property'\nimport { display } from 'mixins/display'\nimport { RadioGroupProps } from './Group'\nimport { RadioProps } from './Radio'\n\nconst sizeRadio = (size = 14) => css`\n font-size: ${size}px;\n svg {\n width: ${size}px;\n height: ${size}px;\n }\n`\n\nconst disabled = css`\n cursor: not-allowed;\n color: #d4d4d4;\n svg {\n circle:nth-child(1) {\n stroke: #d4d4d4;\n }\n circle:nth-child(2) {\n fill: #d4d4d4;\n }\n }\n & > span {\n cursor: not-allowed;\n }\n`\n\nconst error = css`\n svg {\n circle {\n fill: #ffeef0;\n stroke: #ffa3a3;\n }\n circle:nth-child(2) {\n fill: #ffa3a3;\n }\n }\n`\n\nexport const Root = styled.label.withConfig<RadioProps>({\n shouldForwardProp: (prop) => ['children', 'htmlFor'].includes(prop),\n})`\n align-items: baseline;\n user-select: none;\n cursor: pointer;\n width: auto;\n svg {\n position: relative;\n top: 2px;\n flex-shrink: 0;\n circle:nth-child(2) {\n opacity: 0;\n transition: all 0.2s ease;\n }\n }\n & + & {\n margin-left: 15px;\n }\n input {\n display: none;\n appearance: none;\n &:checked + svg {\n circle:nth-child(2) {\n opacity: 1;\n transform: scale(1);\n }\n ${(props) =>\n !props.error\n ? css`\n circle:not(:disabled) {\n stroke: #48a1e6;\n }\n circle:not(:disabled):last-child {\n fill: #48a1e6;\n }\n `\n : null}\n }\n }\n > span {\n margin-left: 10px;\n cursor: pointer;\n }\n ${(props) => (props.size === 'small' ? sizeRadio(14) : null)}\n ${(props) => (props.size === 'medium' ? sizeRadio(16) : null)}\n ${(props) => (props.size === 'large' ? sizeRadio(18) : null)}\n ${(props) => (props.disabled ? disabled : null)}\n ${(props) => (props.error ? error : null)}\n ${(props) => (props.display ? display(props.display) : null)}\n ${(props) =>\n responsiveProperty(\n 'width',\n props.fluid && props.width !== 'auto' && !Array.isArray(props.width) ? 'max-width' : 'width'\n )}\n ${(props) =>\n props.fluid\n ? css`\n width: 100%;\n `\n : null}\n`\n\nexport const Group = styled.div.withConfig<RadioGroupProps>({\n shouldForwardProp: (prop) => prop !== 'inline',\n})`\n display: flex;\n flex-direction: column;\n line-height: normal;\n > ${Root} {\n margin-left: 0;\n &:not(:first-child) {\n margin-top: 15px;\n }\n }\n ${(props) =>\n props.inline\n ? css`\n flex-direction: row;\n &&& > ${Root} {\n margin-top: 0;\n }\n > ${Root} + ${Root} {\n margin-left: 15px;\n }\n ${screenMaxS()`\n flex-direction: column;\n > &{Root} {\n margin-top: 0;\n }\n > ${Root} + ${Root} {\n margin-left: 0;\n margin-top: 15px;\n }\n `}\n `\n : null}\n`\n","import cx from 'clsx'\nimport { useTheme } from 'styled-components'\nimport { ResponsiveProperty } from 'mixins/responsive-property'\nimport { DisplayProperty } from 'mixins/display'\nimport { useClassname } from 'hooks/useClassname'\nimport { BaseProps } from 'shared/interfaces'\nimport { SizeInput } from 'shared/enums/sizeInput'\nimport { InputRadio } from 'components/InputRadio'\nimport { RadioGroup } from './Group'\nimport * as Styled from './style'\n\ntype RadioInputHtmlAttributes = Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'width'>\n\nexport interface RadioProps extends BaseProps, DisplayProperty, RadioInputHtmlAttributes {\n /**\n * Field id\n */\n id?: string\n /**\n * Field name\n */\n name?: string\n /**\n * Radio label\n */\n label?: string\n /**\n * On change handler\n */\n onChange?(_e: React.ChangeEvent<HTMLInputElement>): void\n /**\n * Children react node\n */\n children?: React.ReactNode\n /**\n * A Radio can appear disabled and be unable to change states\n */\n disabled?: boolean\n /**\n * Field can show the data contains errors\n */\n error?: boolean\n /**\n * Whether or not Radio is checked\n */\n checked?: boolean\n defaultChecked?: boolean\n /**\n * Checkbox size\n */\n size?: 'small' | 'medium' | 'large'\n /**\n * Value\n */\n value?: string | number\n fluid?: boolean\n /**\n * Width of label. Default is `Theme.defaultInputControlsWidth`\n */\n width?: ResponsiveProperty<'auto' | number | keyof typeof SizeInput>\n}\n\nRadio.defaultProps = {\n disabled: false,\n size: 'medium',\n display: 'inline-flex',\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => console.log(e, e.target.value), // eslint-disable-line no-console\n}\n\nRadio.Input = InputRadio\nRadio.Group = RadioGroup\nRadio.displayName = 'Radio'\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - `React.InputHTMLAttributes<HTMLInputElement>`\n */\nexport function Radio(props: typeof Radio.defaultProps & RadioProps) {\n const uncontrolled = props.checked === undefined\n const theme = useTheme()\n\n const {\n children,\n disabled,\n error,\n id,\n name,\n size,\n value,\n label,\n className,\n width = theme.defaultInputControlsWidth,\n style,\n fluid,\n display,\n ...anotherProps\n } = props\n\n const baseClassName = useClassname(Radio.displayName)\n const _className = cx(baseClassName, className, props.checked && !uncontrolled ? `${baseClassName}--checked` : null)\n const _labelClassName = `${baseClassName}__label`\n\n const inputProps = uncontrolled ? { defaultChecked: props.defaultChecked } : { checked: props.checked }\n\n return (\n <Styled.Root\n className={_className}\n style={style}\n disabled={disabled}\n error={error}\n htmlFor={id || name}\n size={size}\n width={width}\n display={display}\n fluid={fluid}\n >\n <input\n {...anotherProps}\n id={id || name}\n name={name}\n type='radio'\n value={value}\n disabled={disabled}\n {...inputProps}\n />\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'>\n <circle cx='10' cy='10' r='9' stroke='#727D8A' strokeWidth='2' fill='#fff' />\n <circle cx='10' cy='10' r='5' fill='#727D8A' />\n </svg>\n {(label || children) && <span className={_labelClassName}>{label || children}</span>}\n </Styled.Root>\n )\n}\n","<svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12.5 4.5 6.312 11 3.5 8.045\" stroke=\"currentcolor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>","<svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path clip-rule=\"evenodd\" d=\"M3.5 8a.5.5 0 0 1 .5-.5h8a.5.5 0 0 1 0 1H4a.5.5 0 0 1-.5-.5z\" stroke=\"currentcolor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>","import { BaseProps } from 'shared/interfaces'\nimport * as Styled from './style'\n\nexport interface RadioGroupProps extends BaseProps {\n inline?: boolean\n children?: React.ReactNode\n}\n\nexport function RadioGroup({ children, ...props }: RadioGroupProps) {\n return <Styled.Group {...props}>{children}</Styled.Group>\n}\n","import styled, { css } from 'styled-components'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport Checked from './images/checked.module.svg'\nimport Indeterminate from './images/indeterminate.module.svg'\nimport type { StyledInputCheckboxProps, InputCheckboxPalette } from './types'\n\nconst shouldForwardInputCheckboxProp = createShouldForwardProp(\n (propKey) => !['inline', 'error', 'success', 'onColored', 'indeterminate', 'disabled'].includes(propKey)\n)\n\nexport const Input = styled.input`\n box-sizing: border-box;\n position: absolute;\n top: 0;\n left: 0;\n margin: 0;\n border: none;\n opacity: 0;\n width: 100%;\n height: 100%;\n z-index: 1;\n &:focus {\n outline: none;\n }\n`\n\nexport const InputMask = styled.span`\n box-sizing: border-box;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border-radius: inherit;\n border: 1px solid transparent;\n transition-property: border-color;\n transition-duration: 150ms;\n transition-timing-function: ease-in;\n`\n\nexport const InputChecked = styled(Checked)`\n box-sizing: border-box;\n width: 90%;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n opacity: 0;\n`\n\nexport const InputIndeterminate = styled(Indeterminate)`\n box-sizing: border-box;\n width: 90%;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n`\n\nconst template = (palette: InputCheckboxPalette) => `\n & > ${InputMask} {\n background-color: ${palette.backgroundColor};\n border-color: ${palette.borderColor};\n color: ${palette.color};\n }\n &:hover > ${InputMask} {\n background-color: ${palette.backgroundColorHover};\n border-color: ${palette.borderColorHover};\n color: ${palette.colorHover};\n }\n & > ${Input}:checked:not(:disabled) + ${InputMask} {\n background-color: ${palette.backgroundColorChecked};\n border-color: ${palette.borderColorChecked};\n color: ${palette.colorChecked};\n }\n & > ${Input}:disabled:not(:checked) + ${InputMask} {\n background-color: ${palette.backgroundColorDisabled};\n border-color: ${palette.borderColorDisabled};\n color: ${palette.colorDisabled};\n }\n & > ${Input}:disabled:checked + ${InputMask} {\n background-color: ${palette.backgroundColorDisabledChecked};\n border-color: ${palette.borderColorDisabledChecked};\n color: ${palette.colorDisabledChecked};\n }\n`\n\nconst COLOR_SCHEMA = {\n default: {\n error: css<StyledInputCheckboxProps>`\n ${({ theme, palette, indeterminate }) =>\n template({\n color: theme.colors['content-oncolor-primary'],\n backgroundColor: indeterminate ? theme.colors['alert-bg-error-500'] : theme.colors['bg-onmain-primary'],\n borderColor: theme.colors['alert-bg-error-500'],\n colorHover: theme.colors['content-oncolor-primary'],\n backgroundColorHover: indeterminate ? theme.colors['alert-bg-error-500'] : theme.colors['bg-onmain-primary'],\n borderColorHover: theme.colors['alert-bg-error-500'],\n colorChecked: theme.colors['content-oncolor-primary'],\n backgroundColorChecked: theme.colors['alert-bg-error-500'],\n borderColorChecked: theme.colors['alert-bg-error-500'],\n colorDisabled: theme.colors['bg-onmain-secondary'],\n backgroundColorDisabled: indeterminate\n ? theme.colors['bg-disabled-active']\n : theme.colors['bg-disabled-large'],\n borderColorDisabled: indeterminate ? theme.colors['bg-disabled-active'] : theme.colors['border-disabled'],\n colorDisabledChecked: theme.colors['bg-onmain-secondary'],\n backgroundColorDisabledChecked: theme.colors['bg-disabled-active'],\n borderColorDisabledChecked: theme.colors['bg-disabled-active'],\n ...palette,\n })}\n `,\n success: css<StyledInputCheckboxProps>`\n ${({ theme, palette, indeterminate }) =>\n template({\n color: theme.colors['content-oncolor-primary'],\n backgroundColor: indeterminate ? theme.colors['alert-bg-success-500'] : theme.colors['bg-onmain-primary'],\n borderColor: theme.colors['alert-bg-success-500'],\n colorHover: theme.colors['content-oncolor-primary'],\n backgroundColorHover: indeterminate\n ? theme.colors['alert-bg-success-500']\n : theme.colors['bg-onmain-primary'],\n borderColorHover: theme.colors['alert-bg-success-500'],\n colorChecked: theme.colors['content-oncolor-primary'],\n backgroundColorChecked: theme.colors['alert-bg-success-500'],\n borderColorChecked: theme.colors['alert-bg-success-500'],\n colorDisabled: theme.colors['bg-onmain-secondary'],\n backgroundColorDisabled: indeterminate\n ? theme.colors['bg-disabled-active']\n : theme.colors['bg-disabled-large'],\n borderColorDisabled: indeterminate ? theme.colors['bg-disabled-active'] : theme.colors['border-disabled'],\n colorDisabledChecked: theme.colors['bg-onmain-secondary'],\n backgroundColorDisabledChecked: theme.colors['bg-disabled-active'],\n borderColorDisabledChecked: theme.colors['bg-disabled-active'],\n ...palette,\n })}\n `,\n default: css<StyledInputCheckboxProps>`\n ${({ theme, palette, indeterminate }) =>\n template({\n color: theme.colors['content-oncolor-primary'],\n backgroundColor: indeterminate ? theme.colors['bg-brand-primary-basic'] : theme.colors['bg-onmain-primary'],\n borderColor: indeterminate\n ? theme.colors['bg-brand-primary-basic']\n : theme.colors['border-onmain-default-small'],\n colorHover: theme.colors['content-oncolor-primary'],\n backgroundColorHover: indeterminate\n ? theme.colors['bg-brand-primary-basic']\n : theme.colors['bg-onmain-primary'],\n borderColorHover: indeterminate\n ? theme.colors['bg-brand-primary-basic']\n : theme.colors['border-brand-primary'],\n colorChecked: theme.colors['content-oncolor-primary'],\n backgroundColorChecked: theme.colors['bg-brand-primary-basic'],\n borderColorChecked: theme.colors['bg-brand-primary-basic'],\n colorDisabled: theme.colors['bg-onmain-secondary'],\n backgroundColorDisabled: indeterminate\n ? theme.colors['bg-disabled-active']\n : theme.colors['bg-disabled-large'],\n borderColorDisabled: indeterminate ? theme.colors['bg-disabled-active'] : theme.colors['border-disabled'],\n colorDisabledChecked: theme.colors['bg-onmain-secondary'],\n backgroundColorDisabledChecked: theme.colors['bg-disabled-active'],\n borderColorDisabledChecked: theme.colors['bg-disabled-active'],\n ...palette,\n })}\n `,\n },\n onColored: {\n error: css<StyledInputCheckboxProps>`\n ${({ theme, palette, indeterminate }) =>\n template({\n color: theme.colors['content-oncolor-primary'],\n backgroundColor: indeterminate ? theme.colors['alert-bg-error-500'] : theme.colors['bg-onmain-secondary'],\n borderColor: indeterminate ? theme.colors['alert-bg-error-500'] : theme.colors['alert-error'],\n colorHover: theme.colors['content-oncolor-primary'],\n backgroundColorHover: indeterminate\n ? theme.colors['alert-bg-error-500']\n : theme.colors['bg-onmain-secondary'],\n borderColorHover: indeterminate ? theme.colors['alert-bg-error-500'] : theme.colors['alert-error'],\n colorChecked: theme.colors['content-oncolor-primary'],\n backgroundColorChecked: theme.colors['alert-bg-error-500'],\n borderColorChecked: theme.colors['alert-bg-error-500'],\n colorDisabled: theme.colors['bg-onmain-secondary'],\n backgroundColorDisabled: indeterminate\n ? theme.colors['bg-disabled-active']\n : theme.colors['bg-disabled-small'],\n borderColorDisabled: indeterminate ? theme.colors['bg-disabled-active'] : theme.colors['border-disabled'],\n colorDisabledChecked: theme.colors['bg-onmain-secondary'],\n backgroundColorDisabledChecked: theme.colors['bg-disabled-active'],\n borderColorDisabledChecked: theme.colors['bg-disabled-active'],\n ...palette,\n })}\n `,\n success: css<StyledInputCheckboxProps>`\n ${({ theme, palette, indeterminate }) =>\n template({\n color: theme.colors['content-oncolor-primary'],\n backgroundColor: indeterminate ? theme.colors['alert-bg-success-500'] : theme.colors['bg-onmain-secondary'],\n borderColor: indeterminate ? theme.colors['alert-bg-success-500'] : theme.colors['alert-success'],\n colorHover: theme.colors['content-oncolor-primary'],\n backgroundColorHover: indeterminate\n ? theme.colors['alert-bg-success-500']\n : theme.colors['bg-onmain-secondary'],\n borderColorHover: indeterminate ? theme.colors['alert-bg-success-500'] : theme.colors['alert-success'],\n colorChecked: theme.colors['content-oncolor-primary'],\n backgroundColorChecked: theme.colors['alert-bg-success-500'],\n borderColorChecked: theme.colors['alert-bg-success-500'],\n colorDisabled: theme.colors['bg-onmain-secondary'],\n backgroundColorDisabled: indeterminate\n ? theme.colors['bg-disabled-active']\n : theme.colors['bg-disabled-small'],\n borderColorDisabled: indeterminate ? theme.colors['bg-disabled-active'] : theme.colors['border-disabled'],\n colorDisabledChecked: theme.colors['bg-onmain-secondary'],\n backgroundColorDisabledChecked: theme.colors['bg-disabled-active'],\n borderColorDisabledChecked: theme.colors['bg-disabled-active'],\n ...palette,\n })}\n `,\n default: css<StyledInputCheckboxProps>`\n ${({ theme, palette, indeterminate }) =>\n template({\n color: theme.colors['bg-brand-primary-basic'],\n backgroundColor: indeterminate ? theme.colors['bg-oncolor-primary'] : theme.colors['bg-onmain-primary'],\n borderColor: indeterminate ? theme.colors['bg-oncolor-primary'] : theme.colors['border-onmain-default-small'],\n colorHover: theme.colors['bg-brand-primary-basic'],\n backgroundColorHover: indeterminate ? theme.colors['bg-oncolor-primary'] : theme.colors['bg-onmain-primary'],\n borderColorHover: indeterminate ? theme.colors['bg-oncolor-primary'] : theme.colors['border-brand-primary'],\n colorChecked: theme.colors['bg-brand-primary-basic'],\n backgroundColorChecked: theme.colors['bg-oncolor-primary'],\n borderColorChecked: theme.colors['bg-oncolor-primary'],\n colorDisabled: theme.colors['bg-onmain-secondary'],\n backgroundColorDisabled: indeterminate\n ? theme.colors['bg-disabled-active']\n : theme.colors['bg-disabled-small'],\n borderColorDisabled: indeterminate ? theme.colors['bg-disabled-active'] : theme.colors['border-disabled'],\n colorDisabledChecked: theme.colors['bg-onmain-secondary'],\n backgroundColorDisabledChecked: theme.colors['bg-disabled-active'],\n borderColorDisabledChecked: theme.colors['bg-disabled-active'],\n ...palette,\n })}\n `,\n },\n}\n\nexport const Root = styled.span\n .withConfig<StyledInputCheckboxProps>({\n shouldForwardProp: shouldForwardInputCheckboxProp,\n })\n .attrs(<Required<Pick<StyledInputCheckboxProps, 'dynamicSizeDeclaration'>>>{\n dynamicSizeDeclaration: (size, sizeUnits) => {\n return {\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n height: '1em',\n width: '1em',\n borderRadius: '0.2em',\n }\n },\n })`\n ${(props) => `\n box-sizing: border-box;\n isolation: isolate;\n position: relative;\n display: ${props.inline ? 'inline-flex' : 'flex'};\n flex-shrink: 0;\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n & > ${Input} {\n cursor: inherit;\n }\n & > ${Input}:checked + ${InputMask} > ${InputChecked} {\n opacity: 1;\n }\n & > ${Input}:focus-visible + ${InputMask} {\n box-shadow: 0 0 0 2px ${props.theme.colors.white}, 0 0 0 4px ${props.theme.colors['border-focus']};\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n `}\n ${(props) => {\n const schema = props.onColored ? COLOR_SCHEMA.onColored : COLOR_SCHEMA.default\n\n if (props.error) return schema.error\n if (props.success) return schema.success\n\n return schema.default\n }}\n\n ${responsiveSize}\n`\n","import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { SIZES } from './constants'\nimport * as Styled from './style'\nimport type { InputCheckboxProps } from './types'\n\nconst COMPONENT_NAME = 'InputCheckbox'\n\n/**\n *\n * Component accepts all \\<input\\> attributes.\n *\n * Responsive \"size\" props are supported.\n *\n * Exposed \"ref\" attached to \\<input\\>.\n *\n * See full [InputCheckboxProps](https://github.com/foxford/ui/blob/master/src/components/InputCheckbox/types.ts)\n *\n * @visibleName Checkbox\n */\nconst InputCheckbox: React.ForwardRefExoticComponent<InputCheckboxProps> = withMergedProps<\n InputCheckboxProps,\n HTMLInputElement\n>(\n forwardRef(\n (\n {\n size = 'm',\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n sizes,\n sizeUnits,\n inline,\n error,\n success,\n onColored,\n palette,\n style,\n indeterminate,\n className,\n disabled,\n ...inputProps\n },\n ref\n ) => {\n return (\n <Styled.Root\n size={size}\n sizeXXS={sizeXXS}\n sizeXS={sizeXS}\n sizeS={sizeS}\n sizeM={sizeM}\n sizeL={sizeL}\n sizeXL={sizeXL}\n sizes={sizes}\n sizeUnits={sizeUnits}\n inline={inline}\n error={error}\n success={success}\n onColored={onColored}\n palette={palette}\n style={style}\n indeterminate={indeterminate}\n className={className}\n disabled={disabled}\n >\n <Styled.Input {...inputProps} disabled={disabled} type='checkbox' ref={ref} />\n <Styled.InputMask>\n {indeterminate === true ? <Styled.InputIndeterminate /> : <Styled.InputChecked />}\n </Styled.InputMask>\n </Styled.Root>\n )\n }\n ),\n {\n displayName: COMPONENT_NAME,\n sizes: SIZES,\n }\n)\n\nexport { InputCheckbox, COMPONENT_NAME }\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n width: 40,\n height: 40,\n borderRadius: 8,\n },\n xxl: {\n width: 36,\n height: 36,\n borderRadius: 8,\n },\n xl: {\n width: 32,\n height: 32,\n borderRadius: 7,\n },\n l: {\n width: 28,\n height: 28,\n borderRadius: 6,\n },\n m: {\n width: 24,\n height: 24,\n borderRadius: 5,\n },\n s: {\n width: 20,\n height: 20,\n borderRadius: 4,\n },\n xs: {\n width: 18,\n height: 18,\n borderRadius: 4,\n },\n xxs: {\n width: 16,\n height: 16,\n borderRadius: 4,\n },\n xxxs: {\n width: 14,\n height: 14,\n borderRadius: 3,\n },\n}\n","<svg viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><rect x=\".455\" y=\".455\" width=\"19.091\" height=\"19.091\" rx=\"5\" fill=\"#fff\" stroke=\"#B8B8B8\"/><g fill=\"none\"><rect fill=\"#1A96F6\" width=\"20\" height=\"20\" rx=\"5\"/><path stroke=\"#fff\" stroke-width=\"2\" d=\"M6 9.99 9 13l6-6\"/></g></svg>","<svg viewBox=\"0 0 12 9\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.5 1.5 4.312 8 1.5 5.045\" stroke=\"currentcolor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>","import styled, { css } from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport { screenMaxS } from 'mixins/screen'\nimport { responsiveProperty } from 'mixins/responsive-property'\nimport DefaultCheck from './images/check-default.module.svg'\nimport Check from './images/check.module.svg'\nimport type { StyledCheckboxProps, CheckboxStaticSize, CheckboxGroupProps, CheckboxPalette } from './types'\n\nconst DEFAULT_SIZES: Record<CheckboxStaticSize, number> = {\n extraSmall: 12,\n xs: 12,\n small: 14,\n s: 14,\n medium: 16,\n m: 16,\n large: 18,\n l: 18,\n extraLarge: 20,\n xl: 20,\n}\n\nconst BRAND_SIZES: Record<CheckboxStaticSize, number> = {\n extraSmall: 16,\n xs: 16,\n small: 20,\n s: 20,\n medium: 24,\n m: 24,\n large: 28,\n l: 28,\n extraLarge: 32,\n xl: 32,\n}\n\nconst STATIC_SIZES: CheckboxStaticSize[] = [\n 'extraSmall',\n 'xs',\n 'small',\n 's',\n 'medium',\n 'm',\n 'large',\n 'l',\n 'extraLarge',\n 'xl',\n]\n\nconst baseStyles = css<StyledCheckboxProps>`\n ${(props) => `\n &,\n & * {\n box-sizing: border-box;\n }\n position: relative;\n cursor: pointer;\n padding: ${props.background ? 12 : 0}px;\n display: ${props.inline ? 'inline-flex' : 'flex'};\n align-items: baseline;\n isolation: isolate;\n & + & {\n margin-left: 15px;\n }\n `}\n`\n\nexport const Input = styled.input`\n position: absolute;\n opacity: 0;\n z-index: -1;\n &:focus {\n outline: none;\n }\n`\n\nexport const Background = styled.span`\n border-radius: 8px;\n border: 1px solid;\n border-color: transparent;\n overflow: hidden;\n &::before {\n content: '';\n opacity: 0;\n }\n &,\n &::before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n transition-property: border-color, background-color, opacity;\n transition-duration: 150ms;\n transition-timing-function: ease-in;\n }\n`\n\nexport const DefaultMask = styled(DefaultCheck)`\n position: relative;\n top: 2px;\n width: 1em;\n height: 1em;\n flex-shrink: 0;\n g {\n opacity: 0;\n transition: opacity 200ms ease;\n }\n`\n\nexport const BrandMask = styled.div`\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n border-radius: 4px;\n border: 1px solid;\n border-color: transparent;\n transition-property: border-color;\n transition-duration: 150ms;\n transition-timing-function: ease-in;\n`\n\nexport const CheckIcon = styled(Check)`\n width: 50%;\n opacity: 0;\n`\n\nexport const Content = styled.span`\n position: relative;\n margin-left: 10px;\n`\n\nconst template = (palette: CheckboxPalette) => `\n & > ${Content} {\n color: ${palette.fontColor};\n }\n & > ${BrandMask} {\n background-color: ${palette.bg};\n color: ${palette.color};\n border-color: ${palette.border};\n }\n & > ${Input}:checked ~ ${BrandMask} {\n border-color: transparent;\n background-color: ${palette.bgChecked};\n }\n & > ${Input}:checked ~ ${BrandMask} > ${CheckIcon} {\n opacity: 1;\n }\n & > ${Input}:disabled ~ ${Content} {\n color: ${palette.colorDisabled};\n }\n &:hover > ${BrandMask} {\n border-color: ${palette.borderHover};\n }\n &:focus {\n outline: none;\n }\n & > ${Input}:focus-visible ~ ${BrandMask} {\n outline: 1px solid ${palette.outlineFocus};\n outline-offset: 2px;\n }\n`\n\nconst templateBackground = (palette: CheckboxPalette) => `\n & > ${Background} {\n background-color: ${palette.bg};\n border-color: ${palette.border};\n }\n & > ${Input}:checked ~ ${Background} {\n background-color: ${palette.bgChecked};\n border-color: ${palette.borderChecked};\n }\n &:hover > ${Background} {\n background-color: ${palette.bgHover};\n border-color: ${palette.borderHover};\n }\n &:hover > ${Background}::before {\n background-color: ${palette.beforeBgHover};\n opacity: 1;\n }\n`\n\nconst PRESET = {\n default: {\n regular: css<StyledCheckboxProps>`\n ${(props) =>\n template({\n fontColor: props.theme.colors['content-onmain-primary'],\n bg: props.theme.colors['bg-onmain-primary'],\n color: props.theme.colors['content-oncolor-primary'],\n border: props.theme.colors['border-onmain-default-small'],\n bgChecked: props.theme.colors['bg-brand-primary-basic'],\n borderHover: props.theme.colors['border-brand-primary'],\n outlineFocus: props.theme.colors['border-brand-primary'],\n colorDisabled: props.theme.colors['content-disabled'],\n })}\n ${(props) =>\n props.background\n ? templateBackground({\n bg: props.theme.colors['bg-onmain-secondary'],\n border: props.theme.colors['border-onmain-default-small'],\n bgChecked: props.theme.colors['bg-brand-primary-100'],\n borderChecked: props.theme.colors['border-brand-primary'],\n bgHover: props.theme.colors['bg-oncolor-hover'],\n borderHover: props.theme.colors['border-onmain-default-large'],\n beforeBgHover: 'transparent',\n })\n : null}\n `,\n error: css<StyledCheckboxProps>`\n ${(props) =>\n template({\n fontColor: props.theme.colors['content-onmain-primary'],\n bg: props.theme.colors['alert-bg-error-100'],\n color: props.theme.colors['content-oncolor-primary'],\n border: props.theme.colors['alert-bg-error-500'],\n bgChecked: props.theme.colors['alert-bg-error-500'],\n borderHover: props.theme.colors['alert-error'],\n outlineFocus: props.theme.colors['alert-error'],\n colorDisabled: props.theme.colors['content-disabled'],\n })}\n ${(props) =>\n props.background\n ? templateBackground({\n bg: props.theme.colors['alert-bg-error-100'],\n border: props.theme.colors['alert-error'],\n bgChecked: props.theme.colors['alert-bg-error-100'],\n borderChecked: props.theme.colors['alert-error'],\n bgHover: props.theme.colors['alert-bg-error-100'],\n borderHover: props.theme.colors['alert-error'],\n beforeBgHover: 'transparent',\n })\n : null}\n `,\n success: css<StyledCheckboxProps>`\n ${(props) =>\n template({\n fontColor: props.theme.colors['content-onmain-primary'],\n bg: props.theme.colors['alert-bg-success-100'],\n color: props.theme.colors['content-oncolor-primary'],\n border: props.theme.colors['alert-bg-success-500'],\n bgChecked: props.theme.colors['alert-bg-success-500'],\n borderHover: props.theme.colors['alert-success'],\n outlineFocus: props.theme.colors['alert-success'],\n colorDisabled: props.theme.colors['content-disabled'],\n })}\n ${(props) =>\n props.background\n ? templateBackground({\n bg: props.theme.colors['alert-bg-success-100'],\n border: props.theme.colors['alert-success'],\n bgChecked: props.theme.colors['alert-bg-success-100'],\n borderChecked: props.theme.colors['alert-success'],\n bgHover: props.theme.colors['alert-bg-success-100'],\n borderHover: props.theme.colors['alert-success'],\n beforeBgHover: 'transparent',\n })\n : null}\n `,\n disabled: css<StyledCheckboxProps>`\n cursor: auto;\n ${(props) =>\n template({\n fontColor: props.theme.colors['content-onmain-primary'],\n bg: props.theme.colors['bg-disabled-large'],\n color: props.theme.colors['content-oncolor-primary'],\n border: props.theme.colors['border-disabled'],\n bgChecked: props.theme.colors['bg-disabled-active'],\n borderHover: props.theme.colors['border-disabled'],\n outlineFocus: props.theme.colors['border-disabled'],\n colorDisabled: props.theme.colors['content-disabled'],\n })}\n ${(props) =>\n props.background\n ? templateBackground({\n bg: props.theme.colors['bg-disabled-large'],\n border: props.theme.colors['border-disabled'],\n bgChecked: props.theme.colors['bg-disabled-large'],\n borderChecked: props.theme.colors['bg-disabled-active'],\n bgHover: props.theme.colors['bg-disabled-large'],\n borderHover: props.theme.colors['border-disabled'],\n beforeBgHover: 'transparent',\n })\n : null}\n `,\n },\n onColored: {\n regular: css<StyledCheckboxProps>`\n ${(props) =>\n props.background\n ? template({\n fontColor: props.theme.colors['content-onmain-primary'],\n bg: props.theme.colors['bg-onmain-primary'],\n color: props.theme.colors['content-oncolor-primary'],\n border: props.theme.colors['border-onmain-default-small'],\n bgChecked: props.theme.colors['bg-brand-primary-basic'],\n borderHover: props.theme.colors['border-brand-primary'],\n outlineFocus: props.theme.colors['border-brand-primary'],\n colorDisabled: props.theme.colors['content-oncolor-disabled'],\n })\n : template({\n fontColor: props.theme.colors['content-oncolor-primary'],\n bg: props.theme.colors['bg-onmain-primary'],\n color: props.theme.colors['content-brand-primary'],\n border: props.theme.colors['border-onmain-default-small'],\n bgChecked: props.theme.colors['bg-oncolor-primary'],\n borderHover: props.theme.colors['border-brand-primary'],\n outlineFocus: props.theme.colors['content-oncolor-primary'],\n colorDisabled: props.theme.colors['content-oncolor-disabled'],\n })}\n ${(props) =>\n props.background\n ? templateBackground({\n bg: props.theme.colors['bg-onmain-secondary'],\n border: props.theme.colors['border-onmain-default-large'],\n bgChecked: props.theme.colors['bg-onmain-primary'],\n borderChecked: props.theme.colors['border-onmain-default-large'],\n bgHover: props.theme.colors['bg-onmain-secondary'],\n borderHover: props.theme.colors['border-onmain-default-large'],\n beforeBgHover: props.theme.colors['bg-oncolor-hover'],\n })\n : null}\n `,\n error: css<StyledCheckboxProps>`\n ${(props) =>\n props.background\n ? template({\n fontColor: props.theme.colors['content-onmain-primary'],\n bg: props.theme.colors['alert-bg-error-100'],\n color: props.theme.colors['content-oncolor-primary'],\n border: props.theme.colors['alert-bg-error-500'],\n bgChecked: props.theme.colors['alert-bg-error-500'],\n borderHover: props.theme.colors['alert-error'],\n outlineFocus: props.theme.colors['alert-error'],\n colorDisabled: props.theme.colors['content-oncolor-disabled'],\n })\n : template({\n fontColor: props.theme.colors['content-oncolor-primary'],\n bg: props.theme.colors['alert-bg-error-100'],\n color: props.theme.colors['content-oncolor-primary'],\n border: props.theme.colors['alert-bg-error-500'],\n bgChecked: props.theme.colors['alert-bg-error-500'],\n borderHover: props.theme.colors['alert-error'],\n outlineFocus: props.theme.colors['alert-error'],\n colorDisabled: props.theme.colors['content-oncolor-disabled'],\n })}\n ${(props) =>\n props.background\n ? templateBackground({\n bg: props.theme.colors['alert-bg-error-100'],\n border: props.theme.colors['alert-bg-error-500'],\n bgChecked: props.theme.colors['alert-bg-error-100'],\n borderChecked: props.theme.colors['alert-error'],\n bgHover: props.theme.colors['alert-bg-error-100'],\n borderHover: props.theme.colors['alert-error'],\n beforeBgHover: props.theme.colors['bg-oncolor-hover'],\n })\n : null}\n `,\n success: css<StyledCheckboxProps>`\n ${(props) =>\n props.background\n ? template({\n fontColor: props.theme.colors['content-onmain-primary'],\n bg: props.theme.colors['alert-bg-success-100'],\n color: props.theme.colors['content-oncolor-primary'],\n border: props.theme.colors['alert-bg-success-500'],\n bgChecked: props.theme.colors['alert-bg-success-500'],\n borderHover: props.theme.colors['alert-success'],\n outlineFocus: props.theme.colors['alert-success'],\n colorDisabled: props.theme.colors['content-oncolor-disabled'],\n })\n : template({\n fontColor: props.theme.colors['content-oncolor-primary'],\n bg: props.theme.colors['alert-bg-success-100'],\n color: props.theme.colors['content-oncolor-primary'],\n border: props.theme.colors['alert-bg-success-500'],\n bgChecked: props.theme.colors['alert-bg-success-500'],\n borderHover: props.theme.colors['alert-success'],\n outlineFocus: props.theme.colors['alert-success'],\n colorDisabled: props.theme.colors['content-oncolor-disabled'],\n })}\n ${(props) =>\n props.background\n ? templateBackground({\n bg: props.theme.colors['alert-bg-success-100'],\n border: props.theme.colors['alert-bg-success-500'],\n bgChecked: props.theme.colors['alert-bg-success-100'],\n borderChecked: props.theme.colors['alert-success'],\n bgHover: props.theme.colors['alert-bg-success-100'],\n borderHover: props.theme.colors['alert-success'],\n beforeBgHover: props.theme.colors['bg-oncolor-hover'],\n })\n : null}\n `,\n disabled: css<StyledCheckboxProps>`\n cursor: auto;\n ${(props) =>\n props.background\n ? template({\n fontColor: props.theme.colors['content-onmain-primary'],\n bg: props.theme.colors['bg-disabled-large'],\n color: props.theme.colors['content-oncolor-primary'],\n border: props.theme.colors['border-disabled'],\n bgChecked: props.theme.colors['bg-disabled-active'],\n borderHover: props.theme.colors['border-disabled'],\n outlineFocus: props.theme.colors['border-disabled'],\n colorDisabled: props.theme.colors['content-disabled'],\n })\n : template({\n fontColor: props.theme.colors['content-oncolor-primary'],\n bg: props.theme.colors['bg-disabled-large'],\n color: props.theme.colors['content-oncolor-primary'],\n border: props.theme.colors['border-disabled'],\n bgChecked: props.theme.colors['bg-disabled-active'],\n borderHover: props.theme.colors['border-disabled'],\n outlineFocus: props.theme.colors['border-disabled'],\n colorDisabled: props.theme.colors['content-oncolor-disabled'],\n })}\n ${(props) =>\n props.background\n ? templateBackground({\n bg: props.theme.colors['bg-onmain-secondary'],\n border: props.theme.colors['border-oncolor-disabled'],\n bgChecked: props.theme.colors['bg-onmain-secondary'],\n borderChecked: props.theme.colors['border-oncolor-disabled'],\n bgHover: props.theme.colors['bg-onmain-secondary'],\n borderHover: props.theme.colors['border-oncolor-disabled'],\n beforeBgHover: 'transparent',\n })\n : null}\n `,\n },\n}\n\nconst PRESET_DEFAULT = {\n default: css<StyledCheckboxProps>`\n ${(props) =>\n props.error\n ? `\n & > ${DefaultMask} > rect { \n fill: ${tinycolor(props.theme.colors.pomegranate).setAlpha(0.1).toString()};\n stroke: ${props.theme.colors.pomegranate};\n } \n & > ${DefaultMask} g > rect {\n fill: ${props.theme.colors.pomegranate};\n }\n `\n : null}\n\n ${(props) => `\n color: ${props.disabled ? props.theme.colors.alto : props.theme.colors.mineShaft};\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n\n & > ${Input}:checked ~ ${DefaultMask} g {\n opacity: 1;\n }\n & > ${Input}:disabled ~ ${DefaultMask} > rect {\n fill: ${props.theme.colors.white};\n stroke: ${props.theme.colors.grey};\n }\n & > ${Input}:checked:disabled ~ ${DefaultMask} g > rect {\n fill: ${props.theme.colors.alto};\n }\n &:focus {\n outline: none;\n }\n & > ${Input}:focus-visible ~ ${DefaultMask} {\n outline: 1px solid ${props.theme.colors.accent};\n outline-offset: 2px;\n }\n `}\n `,\n}\n\nconst extractStyles = (props: StyledCheckboxProps) => {\n if (props.brandPresetUsed) {\n if (props.disabled && !props.onColored) return PRESET.default.disabled\n if (props.disabled && props.onColored) return PRESET.onColored.disabled\n\n if (props.error && !props.success && !props.onColored) return PRESET.default.error\n if (props.error && !props.success && props.onColored) return PRESET.onColored.error\n\n if (props.success && !props.error && !props.onColored) return PRESET.default.success\n if (props.success && !props.error && props.onColored) return PRESET.onColored.success\n\n return props.onColored ? PRESET.onColored.regular : PRESET.default.regular\n }\n\n return PRESET_DEFAULT.default\n}\n\nconst extractSizes = (props: StyledCheckboxProps) => {\n const SIZES = props.brandPresetUsed ? BRAND_SIZES : DEFAULT_SIZES\n\n return STATIC_SIZES.includes(<CheckboxStaticSize>props.size)\n ? `font-size: ${SIZES[<CheckboxStaticSize>props.size]}px;`\n : responsiveProperty('size', 'font-size')\n}\n\nexport const Root = styled.label.withConfig<StyledCheckboxProps>({\n shouldForwardProp: (prop) => ['children', 'htmlFor', 'style'].includes(prop),\n})`\n ${baseStyles}\n ${extractStyles}\n ${extractSizes}\n\n ${(props) =>\n responsiveProperty(\n 'width',\n props.fluid && props.width !== 'auto' && !Array.isArray(props.width) ? 'max-width' : 'width'\n )}\n ${(props) => (props.fluid ? 'width: 100%;' : null)}\n`\n\nexport const Group = styled.div.withConfig<CheckboxGroupProps>({\n shouldForwardProp: (prop) => prop !== 'inline',\n})`\n ${(props) =>\n props.inline\n ? css`\n display: flex;\n flex-direction: row;\n > ${Root}:first-child {\n margin-left: 0;\n }\n > ${Root}:not(:first-child) {\n margin-left: 15px;\n }\n ${screenMaxS()`\n flex-direction: column;\n > ${Root}:first-child {\n margin-top: 0;\n }\n > ${Root}:not(:first-child) {\n margin-top: 15px;\n margin-left: 0;\n }\n `}\n `\n : `\n display: flex;\n flex-direction: column;\n > ${Root}:first-child {\n margin-top: 0;\n margin-left: 0;\n }\n > ${Root}:not(:first-child) {\n margin-top: 15px;\n margin-left: 0;\n }\n `}\n`\n","import { forwardRef } from 'react'\nimport { useTheme } from 'styled-components'\nimport cx from 'clsx'\nimport { useClassname } from 'hooks/useClassname'\nimport { useConfigPriority } from 'hooks/use-config-priority'\nimport { InputCheckbox } from 'components/InputCheckbox'\nimport { CheckboxGroup } from './Group'\nimport type { CheckboxComponent, CheckboxProps } from './types'\n\nimport * as Styled from './style'\n\nconst COMPONENT_NAME = 'Checkbox'\n\nconst Checkbox = forwardRef<HTMLLabelElement, CheckboxProps>((props, ref) => {\n const theme = useTheme()\n const baseClassName = useClassname(COMPONENT_NAME)\n\n const {\n preset,\n style,\n id,\n name,\n value,\n disabled,\n error,\n success,\n fluid,\n children,\n label,\n checked,\n defaultChecked,\n background,\n onColored,\n size = 'm',\n inline = true,\n width = theme.defaultInputControlsWidth,\n className: _className,\n onChange = () => undefined,\n ...configProps\n } = useConfigPriority<CheckboxProps>(theme.components?.Checkbox, props)\n\n let brandPresetUsed = theme.preset === 'brand'\n if (typeof preset === 'string') brandPresetUsed = preset === 'brand'\n\n const className = cx(baseClassName, _className, checked && `${baseClassName}--checked`)\n const labelClassName = `${baseClassName}__label`\n const inputProps = checked === undefined ? { defaultChecked } : { checked }\n\n return (\n <Styled.Root\n ref={ref}\n className={className}\n style={style}\n fluid={fluid}\n disabled={disabled}\n htmlFor={id || name}\n size={size}\n inline={inline}\n width={width}\n error={error}\n success={success}\n background={background}\n onColored={onColored}\n brandPresetUsed={brandPresetUsed}\n >\n <Styled.Input\n {...configProps}\n {...inputProps}\n id={id || name}\n name={name}\n type='checkbox'\n value={value}\n disabled={disabled}\n onChange={onChange}\n />\n {brandPresetUsed ? (\n <>\n {background && <Styled.Background />}\n <Styled.BrandMask>\n <Styled.CheckIcon />\n </Styled.BrandMask>\n </>\n ) : (\n <Styled.DefaultMask />\n )}\n {(label || children) && <Styled.Content className={labelClassName}>{label || children}</Styled.Content>}\n </Styled.Root>\n )\n}) as CheckboxComponent\n\nCheckbox.Input = InputCheckbox\nCheckbox.Group = CheckboxGroup\n\nCheckbox.displayName = COMPONENT_NAME\n\nexport { Checkbox, COMPONENT_NAME }\n\nexport type { CheckboxProps }\n","import * as Styled from './style'\nimport type { CheckboxGroupProps } from './types'\n\nconst CheckboxGroup = ({ children, ...props }: CheckboxGroupProps) => {\n return <Styled.Group {...props}>{children}</Styled.Group>\n}\n\nexport { CheckboxGroup }\n","import styled, { css, keyframes } from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport { display } from 'mixins/display'\nimport { responsiveProperty } from 'mixins/responsive-property'\nimport { errorStyle } from 'components/Input/style'\nimport { SelectProps } from './Select'\n\nconst fadeIn = keyframes`\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n`\n\nconst spin = keyframes`\n to {\n transform: rotate(1turn);\n }\n`\n\nconst fluid = css`\n width: 100%;\n .Select {\n max-width: 100%;\n width: 100%;\n }\n`\n\nconst error = css`\n .Select-control {\n ${errorStyle}\n }\n`\n\nexport const Root = styled.span.withConfig<SelectProps>({\n shouldForwardProp: (prop) => ['children'].includes(prop),\n})`\n .Select {\n position: relative;\n }\n .Select,\n .Select div,\n .Select input,\n .Select span {\n box-sizing: border-box;\n }\n .Select.is-disabled > .Select-control {\n cursor: not-allowed;\n background-color: #f5f5f5;\n }\n .Select.is-disabled .Select-value-label {\n color: rgba(0, 0, 0, 0.16) !important;\n }\n .Select.is-disabled > .Select-control:hover {\n box-shadow: none;\n }\n .Select.is-disabled .Select-arrow-zone {\n cursor: default;\n pointer-events: none;\n opacity: 0.35;\n }\n .Select.is-clearable {\n .Select-placeholder,\n &.Select--single > .Select-control .Select-value {\n padding-right: 70px;\n }\n }\n .Select-control {\n background-color: ${(props) => props.theme.colors.white};\n border: solid 1px ${(props) => props.theme.colors.alto};\n border-radius: 4px;\n color: ${(props) => props.theme.colors.mineShaft};\n cursor: default;\n display: table;\n border-spacing: 0;\n border-collapse: separate;\n height: 50px;\n outline: none;\n overflow: hidden;\n position: relative;\n width: 100%;\n }\n .Select-control .Select-input:focus {\n outline: none;\n }\n .is-searchable.is-open > .Select-control {\n cursor: text;\n }\n .is-open > .Select-control {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n border: 1px solid ${(props) => props.theme.colors.accent};\n outline: none;\n }\n .is-open > .Select-control .Select-arrow {\n transform: rotate(180deg);\n }\n .is-searchable.is-focused:not(.is-open) > .Select-control {\n cursor: text;\n }\n .is-focused:not(.is-open) > .Select-control {\n border: 1px solid ${(props) => props.theme.colors.accent};\n }\n .Select-placeholder,\n .Select--single > .Select-control .Select-value {\n bottom: 0;\n color: ${(props) => props.theme.colors.silver};\n left: 0;\n font-size: 16px;\n line-height: 50px;\n padding-left: 20px;\n padding-right: 35px;\n position: absolute;\n right: 0;\n top: 0;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .has-value.Select--single > .Select-control .Select-value .Select-value-label,\n .has-value.is-pseudo-focused.Select--single > .Select-control .Select-value .Select-value-label {\n color: ${(props) => props.theme.colors.mineShaft};\n }\n .has-value.Select--single > .Select-control .Select-value a.Select-value-label,\n .has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label {\n cursor: pointer;\n text-decoration: none;\n }\n .has-value.Select--single > .Select-control .Select-value a.Select-value-label:hover,\n .has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label:hover,\n .has-value.Select--single > .Select-control .Select-value a.Select-value-label:focus,\n .has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label:focus {\n color: #007eff;\n outline: none;\n text-decoration: underline;\n }\n .Select-input {\n height: 50px;\n padding-left: 20px;\n padding-right: 15px;\n vertical-align: middle;\n }\n .Select-input > input {\n width: 100%;\n background: none transparent;\n border: 0 none;\n box-shadow: none;\n cursor: default;\n display: inline-block;\n font-family: inherit;\n font-size: 16px;\n margin: 0;\n outline: none;\n line-height: 30px;\n padding: 10px 0;\n -webkit-appearance: none;\n }\n .is-focused .Select-input > input {\n cursor: text;\n }\n .is-focused .Select-arrow,\n .Select-arrow-zone:hover > .Select-arrow {\n background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTEiIHZpZXdCb3g9IjAgMCAxOCAxMSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj48ZGVmcz48cG9seWdvbiBpZD0icGF0aC0xIiBwb2ludHM9IjAgMC4zMjg1NDI4NTcgMCAxMiAxOS45MDY5MTY3IDEyIDE5LjkwNjkxNjcgMC4zMjg1NDI4NTcgNy4yMjgwMTQ0OGUtMjAgMC4zMjg1NDI4NTciLz48L2RlZnM+PGcgaWQ9IlR1dG9yaWFsIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBvcGFjaXR5PSIuNzMyIj48ZyBpZD0i0YDQtdCz0LAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NzYuMDAwMDAwLCAtNzA4LjAwMDAwMCkiPjxnIGlkPSJhcnJvdy1kb3duLXNpZ24tdG8tbmF2aWdhdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDY3NC4wMDAwMDAsIDcwOC4wMDAwMDApIj48bWFzayBpZD0ibWFzay0yIiBmaWxsPSIjZmZmIj48dXNlIHhsaW5rOmhyZWY9IiNwYXRoLTEiLz48L21hc2s+PHBhdGggZD0iTTEwLjk1MzE1ODUsMTAuODI3MjY0OSBDMTAuNjMyMzI5MywxMC44MjcyNjQ5IDEwLjMxMTUwMDEsMTAuNzAwODE4IDEwLjA2NzcyOTksMTAuNDUwMDgyOSBMMi4zNjgxMjkwMSwyLjUzMDQ5MzQzIEMxLjg3NzI5MDMzLDIuMDI1NjMwNzkgMS44NzcyOTAzMywxLjIwODY2MDAxIDIuMzY4MTI5MDEsMC43MDUzMzk0IEMyLjg1NzQ2ODUsMC4yMDI5NDQwMSAzLjY1MTc0NTY0LDAuMjAyOTQ0MDEgNC4xNDEzODQ5NiwwLjcwNTMzOTQgTDEwLjk1MzE1ODUsNy43MTI5Njg2NiBMMTcuNzY2NDMxMiwwLjcwNjU3MzAyOSBDMTguMjU2MDcwNSwwLjIwMjk0NDAxIDE5LjA1MDA0NzgsMC4yMDI5NDQwMSAxOS41Mzk2ODcyLDAuNzA2NTczMDI5IEMyMC4wMjkzMjY1LDEuMjA5ODkzNjQgMjAuMDI5MzI2NSwyLjAyNjg2NDQxIDE5LjUzOTY4NzIsMi41MzA0OTM0MyBMMTEuODM5Nzg2NSwxMC40NTAwODI5IEMxMS41OTYzMTYxLDEwLjcwMjA1MTYgMTEuMjc0Mjg3NSwxMC44MjcyNjQ5IDEwLjk1MzE1ODUsMTAuODI3MjY0OSBMMTAuOTUzMTU4NSwxMC44MjcyNjQ5IFoiIGlkPSJGaWxsLTEiIGZpbGw9IiM0OGExZTYiIG1hc2s9InVybCgjbWFzay0yKSIvPjwvZz48L2c+PC9nPjwvc3ZnPgo=');\n }\n .has-value.is-pseudo-focused .Select-input {\n opacity: 0;\n }\n .Select-control:not(.is-searchable) > .Select-input {\n outline: none;\n }\n .Select-loading-zone {\n cursor: pointer;\n display: table-cell;\n position: relative;\n text-align: center;\n vertical-align: middle;\n width: 16px;\n }\n .Select-loading {\n animation: ${spin} 400ms infinite linear;\n width: 16px;\n height: 16px;\n box-sizing: border-box;\n border-radius: 50%;\n border: 2px solid ${(props) => props.theme.colors.alto};\n border-right-color: ${(props) => props.theme.colors.mineShaft};\n display: inline-block;\n position: relative;\n vertical-align: middle;\n }\n .Select-clear-zone {\n animation: ${fadeIn} 200ms;\n color: ${(props) => props.theme.colors.alto};\n cursor: pointer;\n display: table-cell;\n position: relative;\n text-align: center;\n vertical-align: middle;\n width: 35px;\n line-height: 0;\n\n .Select-clear {\n position: relative;\n top: -1px;\n }\n }\n .Select-clear-zone:hover {\n color: #d0021b;\n }\n .Select-clear {\n display: inline-block;\n font-size: 0px;\n line-height: 1;\n color: transparent;\n overflow: hidden;\n width: 12px;\n height: 12px;\n background: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0nMjAnIGhlaWdodD0nMjAnIHZpZXdCb3g9JzAgMCAyMCAyMCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJz4KICA8cGF0aAogICAgZD0nTTExLjYgOS41TDE5LjIgMmMuNC0uNi40LTEuMyAwLTEuNy0uNC0uNC0xLjItLjQtMS42IDBMMTAgOCAyLjQuMkMyIDAgMS4yIDAgLjguMy40LjcuNCAxLjMuOCAybDcuNiA3LjUtOCA4Yy0uNS41LS41IDEuMiAwIDEuNy4yLjIuNC4zLjcuMy40IDAgLjcgMCAxLS4zbDgtOCA4IDhjLjMuMi42LjMgMSAuMy4yIDAgLjQgMCAuNy0uMy40LS41LjQtMS4yIDAtMS42bC04LTh6JwogICAgZmlsbD0nI0Q5RDlEOScKICAgIGZpbGxSdWxlPSdldmVub2RkJwogIC8+Cjwvc3ZnPgo=')\n no-repeat;\n background-size: cover;\n }\n .Select--multi .Select-clear-zone {\n width: 17px;\n }\n .Select-arrow-zone {\n cursor: pointer;\n display: table-cell;\n position: relative;\n text-align: center;\n vertical-align: middle;\n width: 35px;\n line-height: 0;\n }\n .Select-arrow {\n background: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTEiIHZpZXdCb3g9IjAgMCAxOCAxMSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj48ZGVmcz48cG9seWdvbiBpZD0icGF0aC0xIiBwb2ludHM9IjAgMC4zMjg1NDI4NTcgMCAxMiAxOS45MDY5MTY3IDEyIDE5LjkwNjkxNjcgMC4zMjg1NDI4NTcgNy4yMjgwMTQ0OGUtMjAgMC4zMjg1NDI4NTciLz48L2RlZnM+PGcgaWQ9IlR1dG9yaWFsIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBvcGFjaXR5PSIuNzMyIj48ZyBpZD0i0YDQtdCz0LAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NzYuMDAwMDAwLCAtNzA4LjAwMDAwMCkiPjxnIGlkPSJhcnJvdy1kb3duLXNpZ24tdG8tbmF2aWdhdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDY3NC4wMDAwMDAsIDcwOC4wMDAwMDApIj48bWFzayBpZD0ibWFzay0yIiBmaWxsPSIjZmZmIj48dXNlIHhsaW5rOmhyZWY9IiNwYXRoLTEiLz48L21hc2s+PHBhdGggZD0iTTEwLjk1MzE1ODUsMTAuODI3MjY0OSBDMTAuNjMyMzI5MywxMC44MjcyNjQ5IDEwLjMxMTUwMDEsMTAuNzAwODE4IDEwLjA2NzcyOTksMTAuNDUwMDgyOSBMMi4zNjgxMjkwMSwyLjUzMDQ5MzQzIEMxLjg3NzI5MDMzLDIuMDI1NjMwNzkgMS44NzcyOTAzMywxLjIwODY2MDAxIDIuMzY4MTI5MDEsMC43MDUzMzk0IEMyLjg1NzQ2ODUsMC4yMDI5NDQwMSAzLjY1MTc0NTY0LDAuMjAyOTQ0MDEgNC4xNDEzODQ5NiwwLjcwNTMzOTQgTDEwLjk1MzE1ODUsNy43MTI5Njg2NiBMMTcuNzY2NDMxMiwwLjcwNjU3MzAyOSBDMTguMjU2MDcwNSwwLjIwMjk0NDAxIDE5LjA1MDA0NzgsMC4yMDI5NDQwMSAxOS41Mzk2ODcyLDAuNzA2NTczMDI5IEMyMC4wMjkzMjY1LDEuMjA5ODkzNjQgMjAuMDI5MzI2NSwyLjAyNjg2NDQxIDE5LjUzOTY4NzIsMi41MzA0OTM0MyBMMTEuODM5Nzg2NSwxMC40NTAwODI5IEMxMS41OTYzMTYxLDEwLjcwMjA1MTYgMTEuMjc0Mjg3NSwxMC44MjcyNjQ5IDEwLjk1MzE1ODUsMTAuODI3MjY0OSBMMTAuOTUzMTU4NSwxMC44MjcyNjQ5IFoiIGlkPSJGaWxsLTEiIGZpbGw9IiNiOGI4YjgiIG1hc2s9InVybCgjbWFzay0yKSIvPjwvZz48L2c+PC9nPjwvc3ZnPgo=')\n no-repeat;\n display: inline-block;\n background-size: 12px;\n height: 7px;\n width: 12px;\n position: relative;\n transition: 0.3s;\n transform: rotate(0deg);\n }\n .is-open .Select-arrow,\n .Select-arrow-zone:hover > .Select-arrow {\n background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTEiIHZpZXdCb3g9IjAgMCAxOCAxMSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj48ZGVmcz48cG9seWdvbiBpZD0icGF0aC0xIiBwb2ludHM9IjAgMC4zMjg1NDI4NTcgMCAxMiAxOS45MDY5MTY3IDEyIDE5LjkwNjkxNjcgMC4zMjg1NDI4NTcgNy4yMjgwMTQ0OGUtMjAgMC4zMjg1NDI4NTciLz48L2RlZnM+PGcgaWQ9IlR1dG9yaWFsIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBvcGFjaXR5PSIuNzMyIj48ZyBpZD0i0YDQtdCz0LAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NzYuMDAwMDAwLCAtNzA4LjAwMDAwMCkiPjxnIGlkPSJhcnJvdy1kb3duLXNpZ24tdG8tbmF2aWdhdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDY3NC4wMDAwMDAsIDcwOC4wMDAwMDApIj48bWFzayBpZD0ibWFzay0yIiBmaWxsPSIjZmZmIj48dXNlIHhsaW5rOmhyZWY9IiNwYXRoLTEiLz48L21hc2s+PHBhdGggZD0iTTEwLjk1MzE1ODUsMTAuODI3MjY0OSBDMTAuNjMyMzI5MywxMC44MjcyNjQ5IDEwLjMxMTUwMDEsMTAuNzAwODE4IDEwLjA2NzcyOTksMTAuNDUwMDgyOSBMMi4zNjgxMjkwMSwyLjUzMDQ5MzQzIEMxLjg3NzI5MDMzLDIuMDI1NjMwNzkgMS44NzcyOTAzMywxLjIwODY2MDAxIDIuMzY4MTI5MDEsMC43MDUzMzk0IEMyLjg1NzQ2ODUsMC4yMDI5NDQwMSAzLjY1MTc0NTY0LDAuMjAyOTQ0MDEgNC4xNDEzODQ5NiwwLjcwNTMzOTQgTDEwLjk1MzE1ODUsNy43MTI5Njg2NiBMMTcuNzY2NDMxMiwwLjcwNjU3MzAyOSBDMTguMjU2MDcwNSwwLjIwMjk0NDAxIDE5LjA1MDA0NzgsMC4yMDI5NDQwMSAxOS41Mzk2ODcyLDAuNzA2NTczMDI5IEMyMC4wMjkzMjY1LDEuMjA5ODkzNjQgMjAuMDI5MzI2NSwyLjAyNjg2NDQxIDE5LjUzOTY4NzIsMi41MzA0OTM0MyBMMTEuODM5Nzg2NSwxMC40NTAwODI5IEMxMS41OTYzMTYxLDEwLjcwMjA1MTYgMTEuMjc0Mjg3NSwxMC44MjcyNjQ5IDEwLjk1MzE1ODUsMTAuODI3MjY0OSBMMTAuOTUzMTU4NSwxMC44MjcyNjQ5IFoiIGlkPSJGaWxsLTEiIGZpbGw9IiM0OGExZTYiIG1hc2s9InVybCgjbWFzay0yKSIvPjwvZz48L2c+PC9nPjwvc3ZnPgo=');\n }\n .Select--multi .Select-multi-value-wrapper {\n display: inline-block;\n padding-left: 20px;\n }\n .Select--multi .Select-multi-value-wrapper {\n .Select-placeholder + .Select-input {\n margin-left: 0;\n }\n }\n .Select--single {\n .Select-multi-value-wrapper {\n display: block;\n width: 100%;\n }\n .Select-input .react-select-2--value {\n display: block;\n width: 100%;\n }\n }\n .Select .Select-aria-only {\n display: inline-block;\n height: 1px;\n width: 1px;\n margin: -1px;\n clip: rect(0, 0, 0, 0);\n overflow: hidden;\n float: left;\n }\n .Select-menu-outer {\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n background-color: ${(props) => props.theme.colors.white};\n border: 1px solid ${(props) => props.theme.colors.onahau};\n box-shadow: 0 3px 10px 0 rgba(0, 0, 0, 0.2);\n box-sizing: border-box;\n margin-top: -1px;\n max-height: 270px;\n position: absolute;\n top: 100%;\n width: 100%;\n z-index: 1;\n -webkit-overflow-scrolling: touch;\n }\n .Select-menu {\n max-height: 226px;\n overflow-x: auto;\n overflow-y: auto;\n font-size: 16px;\n }\n .Select-option {\n box-sizing: border-box;\n background-color: ${(props) => props.theme.colors.white};\n line-height: 30px;\n color: ${(props) => props.theme.colors.mineShaft};\n cursor: pointer;\n display: block;\n padding: 10px 15px 10px 20px;\n transition: background 0.2s ease;\n }\n .Select-option:last-child {\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n }\n .Select-option.is-selected {\n background-color: ${(props) => props.theme.colors.onahau};\n }\n .Select-option.is-focused {\n background-color: ${(props) => props.theme.colors.onahau};\n }\n .Select-option.is-disabled {\n color: rgba(0, 0, 0, 0.16);\n cursor: not-allowed;\n }\n .Select-noresults {\n box-sizing: border-box;\n color: ${(props) => props.theme.colors.silver};\n cursor: default;\n display: block;\n padding: 10px 20px;\n }\n .Select--multi .Select-input {\n vertical-align: middle;\n margin-left: 10px;\n padding: 0;\n }\n .Select--multi.has-value .Select-input {\n margin-left: 5px;\n }\n .Select--multi .Select-value {\n background-color: ${(props) => props.theme.colors.nebula};\n background-color: ${(props) => tinycolor(props.theme.colors.nebula).setAlpha(0.1).toString()};\n border-radius: 4px;\n border: 1px solid ${(props) => props.theme.colors.onahau};\n border: 1px solid rgba(0, 126, 255, 0.24);\n color: ${(props) => props.theme.colors.mineShaft};\n display: inline-block;\n font-size: 0.9em;\n line-height: 1.4;\n margin-left: 4px;\n margin-top: 4px;\n vertical-align: top;\n }\n .Select--multi .Select-value-icon,\n .Select--multi .Select-value-label {\n display: inline-block;\n vertical-align: middle;\n }\n .Select--multi .Select-value-icon {\n font-size: 1.5em;\n line-height: 100%;\n vertical-align: middle;\n box-sizing: border-box;\n padding: 5px 4px 2px;\n color: ${(props) => props.theme.colors.accent};\n }\n\n .Select--multi .Select-value-label {\n border-bottom-right-radius: 4px;\n border-top-right-radius: 4px;\n cursor: default;\n padding: 2px 4px;\n line-height: 1;\n max-width: 90%;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n .Select--multi a.Select-value-label {\n color: ${(props) => props.theme.colors.accent};\n cursor: pointer;\n text-decoration: none;\n }\n .Select--multi a.Select-value-label:hover {\n text-decoration: underline;\n }\n .Select--multi .Select-value-icon {\n cursor: pointer;\n border-bottom-left-radius: 4px;\n border-top-left-radius: 4px;\n border-right: 1px solid ${(props) => props.theme.colors.onahau};\n border-right: 1px solid rgba(0, 126, 255, 0.24);\n font-size: 1.5em;\n line-height: 100%;\n box-sizing: border-box;\n padding: 5px 4px 2px;\n color: ${(props) => props.theme.colors.accent};\n }\n .Select--multi .Select-value-icon:hover,\n .Select--multi .Select-value-icon:focus {\n background-color: #d8eafd;\n background-color: rgba(0, 113, 230, 0.08);\n color: ${(props) => props.theme.colors.accent};\n }\n .Select--multi .Select-value-icon:active {\n background-color: #c2e0ff;\n background-color: rgba(0, 126, 255, 0.24);\n }\n .Select--multi.is-disabled .Select-value {\n background-color: #fcfcfc;\n border: 1px solid #e3e3e3;\n color: ${(props) => props.theme.colors.mineShaft};\n }\n .Select--multi.is-disabled .Select-value-icon {\n cursor: not-allowed;\n border-right: 1px solid #e3e3e3;\n }\n .Select--multi.is-disabled .Select-value-icon:hover,\n .Select--multi.is-disabled .Select-value-icon:focus,\n .Select--multi.is-disabled .Select-value-icon:active {\n background-color: #fcfcfc;\n }\n\n width: auto;\n ${(props) => (props.error ? error : null)}\n ${(props) => (props.display ? display(props.display) : null)}\n ${(props) =>\n responsiveProperty(\n 'width',\n props.fluid && props.width !== 'auto' && !Array.isArray(props.width) ? 'max-width' : 'width'\n )}\n ${(props) => (props.fluid ? fluid : null)}\n`\n","import ReactSelect, { Async, AsyncCreatable, Creatable, ReactSelectProps } from 'react-select'\nimport { useTheme } from 'styled-components'\nimport { DisplayProperty } from 'mixins/display'\nimport { ResponsiveProperty } from 'mixins/responsive-property'\nimport { useClassname } from 'hooks/useClassname'\nimport { SizeInput } from 'shared/enums/sizeInput'\nimport { BaseProps } from 'shared/interfaces'\nimport * as Styled from './style'\n\nexport interface SelectProps extends BaseProps, ReactSelectProps, DisplayProperty {\n fluid?: boolean\n error?: boolean\n /**\n * Width of select. Default is `Theme.defaultInputControlsWidth`\n */\n width?: ResponsiveProperty<'auto' | number | keyof typeof SizeInput>\n}\n\nSelect.defaultProps = {\n allowCreate: false,\n searchable: true,\n clearable: false,\n addLabelText: 'Добавить \"{label}\"?',\n backspaceToRemoveMessage: 'Нажмите клавишу Backspace, чтобы удалить {last label}',\n clearAllText: 'Очистить все',\n clearValueText: 'Очистить значение',\n noResultsText: 'Результатов не найдено',\n placeholder: 'Выбрать ...',\n searchPromptText: 'Введите поисковый запрос',\n loadingPlaceholder: 'Загрузка...',\n autoload: true,\n loadOptions: false,\n display: 'inline-block',\n}\n\nSelect.displayName = 'Select'\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - `ReactSelectProps`\n */\nexport function Select(props: SelectProps) {\n const theme = useTheme()\n const {\n fluid,\n error,\n className,\n style,\n display,\n width = theme.defaultInputControlsWidth,\n ...reactSelectProps\n } = props\n const _className = useClassname(Select.displayName, className)\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const SelectElement: typeof ReactSelect & typeof Creatable = props.loadOptions\n ? props.allowCreate\n ? AsyncCreatable\n : Async\n : props.allowCreate\n ? Creatable\n : ReactSelect\n\n return (\n <Styled.Root className={_className} style={style} error={error} fluid={fluid} width={width} display={display}>\n <SelectElement {...reactSelectProps} promptTextCreator={(label: string) => `Добавить \"${label}\"`} />\n </Styled.Root>\n )\n}\n","import styled, { css } from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { responsiveMargin } from 'mixins/responsive-margin'\nimport { focus } from 'mixins/focus'\nimport type { CSSColor } from 'shared/types'\nimport type { StyledFormLabelProps, FormLabelPalette, StyledFormLabelHintProps } from './types'\n\nconst shouldForwardFormLabelProp = createShouldForwardProp(\n (propKey) => !['inline', 'clear', 'disabled', 'error', 'success', 'checked', 'onColored'].includes(propKey)\n)\n\nconst template = (\n palette: Pick<\n FormLabelPalette,\n 'color' | 'backgroundColor' | 'borderColor' | 'colorHover' | 'backgroundColorHover' | 'borderColorHover'\n >\n) => `\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n border-color: ${palette.borderColor};\n &:hover {\n color: ${palette.colorHover};\n background-color: ${palette.backgroundColorHover};\n border-color: ${palette.borderColorHover};\n }\n`\n\nconst hintTemplate = (\n palette: Pick<\n FormLabelPalette,\n | 'hintColor'\n | 'hintBackgroundColor'\n | 'hintColorHover'\n | 'hintBackgroundColorHover'\n | 'hintColorActive'\n | 'hintBackgroundColorActive'\n | 'hintColorDisabled'\n | 'hintBackgroundColorDisabled'\n >\n) => `\n color: ${palette.hintColor};\n background-color: ${palette.hintBackgroundColor};\n &:hover {\n color: ${palette.hintColorHover};\n background-color: ${palette.hintBackgroundColorHover};\n }\n &:active {\n color: ${palette.hintColorActive};\n background-color: ${palette.hintBackgroundColorActive};\n }\n &:disabled {\n color: ${palette.hintColorDisabled};\n background-color: ${palette.hintBackgroundColorDisabled};\n }\n`\n\nconst COLOR_SCHEMA = {\n default: {\n disabled: css<StyledFormLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors['bg-disabled-large'],\n borderColor: props.theme.colors['border-disabled'],\n colorHover: props.theme.colors['content-disabled'],\n backgroundColorHover: props.theme.colors['bg-disabled-large'],\n borderColorHover: props.theme.colors['border-disabled'],\n ...props.palette,\n })}\n `,\n error: css<StyledFormLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['alert-bg-error-100'],\n borderColor: props.theme.colors['alert-bg-error-500'],\n colorHover: props.theme.colors['content-onmain-primary'],\n backgroundColorHover: props.theme.colors['alert-bg-error-100'],\n borderColorHover: props.theme.colors['alert-bg-error-500'],\n ...props.palette,\n })}\n `,\n success: css<StyledFormLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['alert-bg-success-100'],\n borderColor: props.theme.colors['alert-success'],\n colorHover: props.theme.colors['content-onmain-primary'],\n backgroundColorHover: props.theme.colors['alert-bg-success-100'],\n borderColorHover: props.theme.colors['alert-success'],\n ...props.palette,\n })}\n `,\n checked: css<StyledFormLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-brand-primary-100'],\n borderColor: props.theme.colors['border-brand-primary-active'],\n colorHover: props.theme.colors['content-onmain-primary'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-brand-primary-100']).darken(3).toString() as CSSColor,\n borderColorHover: props.theme.colors['border-brand-primary-active'],\n ...props.palette,\n })}\n `,\n default: css<StyledFormLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-onmain-secondary'],\n borderColor: props.theme.colors['border-onmain-default-large'],\n colorHover: props.theme.colors['content-onmain-primary'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-onmain-secondary']).darken(3).toString() as CSSColor,\n borderColorHover: props.theme.colors['border-onmain-default-large'],\n ...props.palette,\n })}\n `,\n },\n onColored: {\n disabled: css<StyledFormLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors['bg-onmain-secondary'],\n borderColor: props.theme.colors['border-onmain-default-large'],\n colorHover: props.theme.colors['content-disabled'],\n backgroundColorHover: props.theme.colors['bg-onmain-secondary'],\n borderColorHover: props.theme.colors['border-onmain-default-large'],\n ...props.palette,\n })}\n `,\n error: css<StyledFormLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['alert-bg-error-200'],\n borderColor: props.theme.colors['alert-bg-error-500'],\n colorHover: props.theme.colors['content-onmain-primary'],\n backgroundColorHover: props.theme.colors['alert-bg-error-200'],\n borderColorHover: props.theme.colors['alert-bg-error-500'],\n ...props.palette,\n })}\n `,\n success: css<StyledFormLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['alert-bg-success-200'],\n borderColor: props.theme.colors['alert-success'],\n colorHover: props.theme.colors['content-onmain-primary'],\n backgroundColorHover: props.theme.colors['alert-bg-success-200'],\n borderColorHover: props.theme.colors['alert-success'],\n ...props.palette,\n })}\n `,\n checked: css<StyledFormLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-onmain-primary'],\n borderColor: props.theme.colors['border-onmain-default-large'],\n colorHover: props.theme.colors['content-onmain-primary'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-onmain-primary']).darken(3).toString() as CSSColor,\n borderColorHover: props.theme.colors['border-onmain-default-large'],\n ...props.palette,\n })}\n `,\n default: css<StyledFormLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-onmain-secondary'],\n borderColor: props.theme.colors['border-onmain-default-large'],\n colorHover: props.theme.colors['content-onmain-primary'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-onmain-secondary']).darken(3).toString() as CSSColor,\n borderColorHover: props.theme.colors['border-onmain-default-large'],\n ...props.palette,\n })}\n `,\n },\n}\n\nexport const Root = styled.label.withConfig<StyledFormLabelProps>({\n shouldForwardProp: shouldForwardFormLabelProp,\n})`\n ${(props) => `\n box-sizing: border-box;\n isolation: isolate;\n display: ${props.inline ? 'inline-flex' : 'flex'};\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n border-radius: 8px;\n padding: 12px;\n min-width: min-content;\n border: 1px solid transparent;\n background-color: transparent;\n transition-property: background-color;\n transition-duration: 150ms;\n transition-timing-function: ease-in;\n `}\n ${(props) => {\n if (props.clear) return ''\n\n const schema = props.onColored ? COLOR_SCHEMA.onColored : COLOR_SCHEMA.default\n\n if (props.disabled) return schema.disabled\n if (props.error) return schema.error\n if (props.success) return schema.success\n if (props.checked) return schema.checked\n\n return schema.default\n }}\n\n ${responsiveSize}\n ${responsiveMargin}\n`\n\nexport const Content = styled.span`\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n margin-left: 12px;\n`\n\nexport const HintButton = styled.button.withConfig<StyledFormLabelHintProps>({\n shouldForwardProp: (propKey) => !['palette'].includes(propKey),\n})`\n box-sizing: border-box;\n appearance: none;\n padding: 2px;\n margin: 0;\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n align-self: start;\n border-radius: 50%;\n background-color: transparent;\n margin-left: 6px;\n cursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')};\n\n ${(props) =>\n hintTemplate({\n hintColor: props.theme.colors['content-onmain-tertiary'],\n hintBackgroundColor: props.theme.colors.transparent,\n hintColorHover: props.theme.colors['content-onmain-primary'],\n hintBackgroundColorHover: tinycolor(props.theme.colors['bg-oncolor-hover']).lighten(20).toString() as CSSColor,\n hintColorActive: props.theme.colors['content-onmain-primary'],\n hintBackgroundColorActive: props.theme.colors['bg-oncolor-hover'],\n hintColorDisabled: props.theme.colors['content-disabled'],\n hintBackgroundColorDisabled: props.theme.colors.transparent,\n ...props.palette,\n })}\n\n ${focus}\n`\n","import { forwardRef, cloneElement } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { Text } from 'components/Text'\nimport { Icon } from 'components/Icon'\nimport * as Styled from './style'\nimport { SIZES } from './constants'\nimport type { FormLabelProps } from './types'\n\nconst COMPONENT_NAME = 'FormLabel'\n\n/**\n *\n * Component accepts all \\<label\\> attributes.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [FormLabelProps](https://github.com/foxford/ui/blob/master/src/components/FormLabel/types.ts)\n */\nconst FormLabel: React.ForwardRefExoticComponent<FormLabelProps> = withMergedProps<FormLabelProps, HTMLLabelElement>(\n forwardRef(\n (\n {\n size = 'm',\n textProps = {},\n hint = {},\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n disabled,\n error,\n success,\n checked,\n onColored,\n children,\n control,\n label,\n palette,\n ...props\n },\n ref\n ) => {\n const sizeProps = {\n size,\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n }\n\n const stateProps = {\n disabled,\n error,\n success,\n checked,\n onColored,\n }\n\n const elementProps =\n typeof control === 'object' && typeof control.props === 'object' && control.props !== null ? control.props : {}\n\n const { textProps: hintTextProps = {}, iconProps: hintIconProps = {} } = hint\n\n return (\n <Styled.Root {...props} {...sizeProps} {...stateProps} palette={palette} ref={ref}>\n {typeof control === 'function'\n ? control({\n ...sizeProps,\n ...stateProps,\n })\n : cloneElement(control, {\n ...sizeProps,\n ...stateProps,\n ...elementProps,\n })}\n <Styled.Content>\n <Text as='span' appearance='body' size='inherit' color='inherit' {...textProps}>\n {label ?? children}\n </Text>\n {hint.text && (\n <Text\n as='span'\n appearance='caption'\n color={stateProps.disabled ? 'content-disabled' : 'content-onmain-secondary'}\n size={0.8}\n sizeUnits='em'\n marginTop={2}\n {...hintTextProps}\n >\n {hint.text}\n </Text>\n )}\n </Styled.Content>\n {hint.buttonProps && (\n <Styled.HintButton\n {...hint.buttonProps}\n disabled={stateProps.disabled || hint.buttonProps.disabled}\n palette={palette}\n type='button'\n >\n {hint.icon === undefined ? (\n <Icon as='span' size={20} name='helpCircle' {...hintIconProps} />\n ) : (\n <Icon\n as='span'\n size={20}\n name={typeof hint.icon === 'string' ? hint.icon : undefined}\n icon={typeof hint.icon !== 'string' ? hint.icon : undefined}\n {...hintIconProps}\n />\n )}\n </Styled.HintButton>\n )}\n </Styled.Root>\n )\n }\n ),\n {\n displayName: COMPONENT_NAME,\n sizes: SIZES,\n }\n)\n\nexport { FormLabel, COMPONENT_NAME }\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n fontSize: 26,\n },\n xxl: {\n fontSize: 24,\n },\n xl: {\n fontSize: 22,\n },\n l: {\n fontSize: 20,\n },\n m: {\n fontSize: 18,\n },\n s: {\n fontSize: 16,\n },\n xs: {\n fontSize: 14,\n },\n xxs: {\n fontSize: 12,\n },\n xxxs: {\n fontSize: 10,\n },\n}\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n width: 600,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 22,\n },\n xxl: {\n width: 600,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 22,\n },\n xl: {\n width: 600,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 22,\n },\n l: {\n width: 560,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 20,\n },\n m: {\n width: 356,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 16,\n },\n s: {\n width: 280,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 14,\n },\n xs: {\n width: 260,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 12,\n },\n xxs: {\n width: 260,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 12,\n },\n xxxs: {\n width: 260,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 12,\n },\n}\n\nexport const SIZES_LANDSCAPE: Sizes = {\n xxxl: {\n width: 900,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 22,\n },\n xxl: {\n width: 900,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 22,\n },\n xl: {\n width: 900,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 22,\n },\n l: {\n width: 792,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 20,\n },\n m: {\n width: 600,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 16,\n },\n s: {\n width: 520,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 14,\n },\n xs: {\n width: 375,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 12,\n },\n xxs: {\n width: 375,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 12,\n },\n xxxs: {\n width: 375,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 12,\n },\n}\n","import styled from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { focus } from 'mixins/focus'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport type { CSSColor } from 'shared/types'\nimport type {\n PopoverComponentPalette,\n StyledPopoverComponentProps,\n StyledPopoverComponentCloseProps,\n StyledPopoverComponentMediaProps,\n} from './types'\n\nconst shouldForwardPopoverComponentProp = createShouldForwardProp(\n (propKey) => !['orientation', 'controlsDirection', 'black', 'contrast', 'elevated'].includes(propKey)\n)\n\nexport const MediaLandscape = styled.div`\n box-sizing: border-box;\n flex-shrink: 0;\n width: 45%;\n margin-right: 1.6em;\n`\n\nexport const Media = styled.div.withConfig<StyledPopoverComponentMediaProps>({\n shouldForwardProp: (propKey) => propKey !== 'aspectRatio',\n})`\n ${(props) => `\n box-sizing: border-box;\n position: relative;\n height: 0;\n padding-bottom: ${props.aspectRatio === '16:9' ? '56.25%' : '100%'};\n border-radius: 8px;\n\n & > * {\n box-sizing: border-box;\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n }\n\n & img,\n & video {\n border-radius: inherit;\n object-fit: contain;\n height: 100%;\n width: 100%;\n } \n `}\n`\n\nexport const Footer = styled.div`\n display: flex;\n flex-wrap: wrap;\n margin-top: 1.6em;\n`\n\nconst template = (\n palette: Pick<PopoverComponentPalette, 'color' | 'backgroundColor' | 'shadowColor' | 'mediaPlaceholderColor'>\n) => `\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n filter: drop-shadow(0 6px 10px ${palette.shadowColor});\n\n & ${Media} img,\n & ${Media} video {\n background-color: ${palette.mediaPlaceholderColor};\n }\n`\n\nconst closeTemplate = (\n palette: Pick<\n PopoverComponentPalette,\n | 'closeColor'\n | 'closeBackgroundColor'\n | 'closeColorHover'\n | 'closeBackgroundColorHover'\n | 'closeColorActive'\n | 'closeBackgroundColorActive'\n | 'closeColorDisabled'\n | 'closeBackgroundColorDisabled'\n >\n) => `\n color: ${palette.closeColor};\n background-color: ${palette.closeBackgroundColor};\n &:hover {\n color: ${palette.closeColorHover};\n background-color: ${palette.closeBackgroundColorHover};\n }\n &:active {\n color: ${palette.closeColorActive};\n background-color: ${palette.closeBackgroundColorActive};\n }\n &:disabled {\n color: ${palette.closeColorDisabled};\n background-color: ${palette.closeBackgroundColorDisabled};\n }\n`\n\nexport const Root = styled.div\n .withConfig<StyledPopoverComponentProps>({\n shouldForwardProp: shouldForwardPopoverComponentProp,\n })\n .attrs<StyledPopoverComponentProps>(\n (props): Required<Pick<StyledPopoverComponentProps, 'dynamicSizeDeclaration'>> => ({\n dynamicSizeDeclaration: (size, sizeUnits) => ({\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n width: props.orientation === 'portrait' ? '28em' : '40em',\n padding: '1.6em',\n borderRadius: 16,\n }),\n })\n )`\n box-sizing: border-box;\n display: inline-flex;\n isolation: isolate;\n position: relative;\n\n ${(props) => `\n flex-direction: ${props.orientation === 'landscape' ? 'row' : 'column'};\n & ${Footer} {\n flex-direction: ${props.controlsDirection};\n }\n `}\n\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-onmain-primary'],\n shadowColor: props.elevated ? props.theme.colors['bg-oncolor-hover'] : props.theme.colors.transparent,\n mediaPlaceholderColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n\n ${responsiveSize}\n`\n\nexport const Container = styled.div`\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n flex-grow: 1;\n`\n\nexport const Header = styled.div`\n box-sizing: border-box;\n display: flex;\n align-items: center;\n margin-right: 20px;\n`\n\nexport const Content = styled.div`\n box-sizing: border-box;\n word-break: break-word;\n\n & > *:not(:last-child) {\n margin-bottom: 1.6em;\n }\n`\n\nexport const Video = styled.video`\n ${focus}\n`\n\nexport const CloseButton = styled.button.withConfig<StyledPopoverComponentCloseProps>({\n shouldForwardProp: (propKey) => !['palette'].includes(propKey),\n})`\n box-sizing: border-box;\n position: absolute;\n top: 10px;\n right: 10px;\n appearance: none;\n padding: 2px;\n margin: 0;\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n cursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')};\n\n ${(props) =>\n closeTemplate({\n closeColor: props.theme.colors['content-onmain-tertiary'],\n closeBackgroundColor: props.theme.colors.transparent,\n closeColorHover: props.theme.colors['content-onmain-primary'],\n closeBackgroundColorHover: tinycolor(props.theme.colors['bg-oncolor-hover']).lighten(20).toString() as CSSColor,\n closeColorActive: props.theme.colors['content-onmain-primary'],\n closeBackgroundColorActive: props.theme.colors['bg-oncolor-hover'],\n closeColorDisabled: props.theme.colors['content-disabled'],\n closeBackgroundColorDisabled: props.theme.colors.transparent,\n ...props.palette,\n })}\n\n ${focus}\n`\n","import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { Badge } from 'components/Badge'\nimport { Text } from 'components/Text'\nimport { Button } from 'components/Button'\nimport { Icon } from 'components/Icon'\nimport { Skeleton } from 'components/Skeleton'\nimport { SIZES, SIZES_LANDSCAPE } from './constants'\nimport * as Styled from './style'\nimport type { PopoverComponentProps } from './types'\n\nconst COMPONENT_NAME = 'PopoverComponent'\n\n/**\n *\n * Component accepts all \\<div\\> attributes.\n *\n * Responsive \"size\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [PopoverComponentProps](https://github.com/foxford/ui/blob/master/src/components/PopoverComponent/types.ts)\n *\n */\nconst PopoverComponent: React.ForwardRefExoticComponent<PopoverComponentProps> = withMergedProps<\n PopoverComponentProps,\n HTMLDivElement\n>(\n forwardRef((props, ref) => {\n const {\n size = 's',\n orientation = 'portrait',\n controlsDirection = 'row',\n badge = {},\n captionProps = {},\n titleProps = {},\n contentProps = {},\n closeButtonProps = {},\n media = {},\n controls = {},\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n loading,\n caption,\n title,\n content,\n closeFn,\n palette,\n showCloseButton,\n ...restProps\n } = props\n\n const sizeProps = {\n size,\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n }\n\n const { badgeProps = {} } = badge\n\n const { imgProps = {}, videoProps = {} } = media\n\n const { text: secondaryButtonText, buttonProps: secondaryButtonProps = {} } = controls.secondary ?? {}\n\n const { text: primaryButtonText, buttonProps: primaryButtonProps = {} } = controls.primary ?? {}\n\n return (\n <Styled.Root\n {...restProps}\n {...sizeProps}\n palette={palette}\n orientation={orientation}\n controlsDirection={controlsDirection}\n ref={ref}\n >\n {showCloseButton && (\n <Styled.CloseButton\n {...closeButtonProps}\n onClick={(evt) => {\n if (typeof closeFn === 'function') closeFn()\n if (typeof closeButtonProps.onClick === 'function') closeButtonProps.onClick(evt)\n }}\n palette={palette}\n type='button'\n >\n <Icon as='span' name='close' size={24} />\n </Styled.CloseButton>\n )}\n {orientation === 'landscape' && (\n <>\n {loading && (\n <Styled.MediaLandscape>\n <Styled.Media aspectRatio='1:1'>\n <Skeleton />\n </Styled.Media>\n </Styled.MediaLandscape>\n )}\n {!loading && (imgProps.src || videoProps.src) && (\n <Styled.MediaLandscape>\n <Styled.Media aspectRatio='1:1'>\n {imgProps.src ? (\n <img alt='' {...imgProps} />\n ) : (\n <Styled.Video controls controlsList='nofullscreen' disablePictureInPicture {...videoProps} />\n )}\n </Styled.Media>\n </Styled.MediaLandscape>\n )}\n </>\n )}\n <Styled.Container>\n <Styled.Content>\n {(badge.text || caption || loading || showCloseButton) && (\n <Styled.Header>\n {loading ? (\n <Skeleton width='20%'>\n <Badge {...sizeProps} resetDefaultMargin {...badgeProps} />\n </Skeleton>\n ) : (\n <>\n {badge.text && (\n <Badge {...sizeProps} borderRadius={8} marginRight={12} resetDefaultMargin {...badgeProps}>\n {badge.text}\n </Badge>\n )}\n {caption && (\n <Text\n as='span'\n appearance='caption'\n size={0.9}\n sizeUnits='em'\n color='content-onmain-tertiary'\n weight={700}\n {...captionProps}\n >\n {caption}\n </Text>\n )}\n </>\n )}\n </Styled.Header>\n )}\n {orientation === 'portrait' && (\n <>\n {loading && (\n <Styled.Media aspectRatio='16:9'>\n <Skeleton />\n </Styled.Media>\n )}\n {!loading && (imgProps.src || videoProps.src) && (\n <Styled.Media aspectRatio='16:9'>\n {imgProps.src ? (\n <img alt='' {...imgProps} />\n ) : (\n <Styled.Video controls controlsList='nofullscreen' disablePictureInPicture {...videoProps} />\n )}\n </Styled.Media>\n )}\n </>\n )}\n {(title || content || loading) && (\n <div>\n {loading ? (\n <>\n <Skeleton borderRadius={4} marginBottom={0.6} marginUnits='em'>\n <Text appearance='subheading' size={1.4} sizeUnits='em' {...titleProps} />\n </Skeleton>\n <Skeleton borderRadius={4} width='70%' marginBottom={0.4} marginUnits='em'>\n <Text appearance='body' size='inherit' {...contentProps} />\n </Skeleton>\n <Skeleton borderRadius={4} width='50%'>\n <Text appearance='body' size='inherit' {...contentProps} />\n </Skeleton>\n </>\n ) : (\n <>\n {title && (\n <Text\n as='h2'\n appearance='subheading'\n size={1.4}\n color='inherit'\n marginBottom={content ? 0.4 : undefined}\n sizeUnits='em'\n marginUnits='em'\n {...titleProps}\n >\n {title}\n </Text>\n )}\n {content && (\n <Text as='p' appearance='body' size='inherit' color='inherit' {...contentProps}>\n {content}\n </Text>\n )}\n </>\n )}\n </div>\n )}\n </Styled.Content>\n {(secondaryButtonText || primaryButtonText || loading) && (\n <Styled.Footer>\n {loading ? (\n <Skeleton width='100%'>\n <Button preset='brand' {...sizeProps} />\n </Skeleton>\n ) : (\n <>\n {secondaryButtonText && (\n <Button\n preset='brand'\n black\n outline\n type='button'\n marginRight={controlsDirection === 'row' ? 6 : undefined}\n marginBottom={controlsDirection === 'column' ? 6 : undefined}\n {...sizeProps}\n {...secondaryButtonProps}\n >\n {secondaryButtonText}\n </Button>\n )}\n {primaryButtonText && (\n <Button preset='brand' black type='button' {...sizeProps} {...primaryButtonProps}>\n {primaryButtonText}\n </Button>\n )}\n </>\n )}\n </Styled.Footer>\n )}\n </Styled.Container>\n </Styled.Root>\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: (props) => {\n return props.orientation === 'landscape' ? SIZES_LANDSCAPE : SIZES\n },\n }\n)\n\nexport { PopoverComponent }\n\nexport { COMPONENT_NAME, SIZES_LANDSCAPE, SIZES }\n","import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { Tooltip } from 'components/Tooltip'\nimport { PopoverComponent, SIZES_LANDSCAPE, SIZES } from 'components/PopoverComponent'\nimport type { PopoverProps } from './types'\n\nconst COMPONENT_NAME = 'Popover'\n\n/**\n *\n * Component accepts [\"react-floater\"](https://www.npmjs.com/package/react-floater/v/0.8.2) v0.8.2 props.\n *\n * Responsive \"size\" props are supported.\n *\n * Exposed \"ref\" attached to popover component root.\n *\n * See full [PopoverProps](https://github.com/foxford/ui/blob/master/src/components/Popover/types.ts)\n */\nconst Popover: React.ForwardRefExoticComponent<PopoverProps> & { Component: typeof PopoverComponent } = Object.assign(\n withMergedProps<PopoverProps, HTMLDivElement>(\n forwardRef((props, ref) => {\n const {\n size = 's',\n sizes,\n sizeUnits,\n palette,\n orientation,\n loading,\n badge,\n caption,\n captionProps,\n titleProps,\n contentProps,\n controlsDirection,\n media,\n controls,\n ...restProps\n } = props\n\n return (\n <Tooltip\n {...restProps}\n preset='brand'\n size={size}\n ref={ref}\n styles={{\n arrow: {\n spread: 20,\n length: 12,\n },\n }}\n component={\n restProps.component ?? (\n <PopoverComponent\n sizes={sizes}\n sizeUnits={sizeUnits}\n palette={palette}\n orientation={orientation}\n loading={loading}\n badge={badge}\n caption={caption}\n captionProps={captionProps}\n title={restProps.title}\n titleProps={titleProps}\n content={restProps.content}\n contentProps={contentProps}\n controlsDirection={controlsDirection}\n media={media}\n controls={controls}\n />\n )\n }\n />\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: (props) => {\n return props.orientation === 'landscape' ? SIZES_LANDSCAPE : SIZES\n },\n }\n ),\n {\n Component: PopoverComponent,\n }\n)\n\nexport { Popover }\n\nexport { COMPONENT_NAME }\n","import styled, { css } from 'styled-components'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { responsiveMargin } from 'mixins/responsive-margin'\nimport { focus } from 'mixins/focus'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { Text } from 'components/Text'\nimport type { StyledListItemProps, ListItemPalette } from './types'\n\nconst shouldForwardListItemProp = createShouldForwardProp(\n (propKey) => !['danger', 'active', 'onColored', 'mediaBorderRadius', 'borderRadius'].includes(propKey)\n)\n\nexport const Media = styled.span`\n box-sizing: border-box;\n flex-shrink: 0;\n width: 2.2em;\n height: 2.2em;\n\n & > * {\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n }\n`\n\nconst template = (palette: ListItemPalette) => `\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n &:hover {\n color: ${palette.colorHover};\n background-color: ${palette.backgroundColorHover};\n }\n\n & ${Media} img {\n background-color: ${palette.mediaPlaceholderColor};\n }\n`\n\nconst COLOR_SCHEMA = {\n onColored: {\n danger: {\n disabled: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-disabled'],\n backgroundColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-oncolor-disabled'],\n backgroundColorHover: props.theme.colors.transparent,\n mediaPlaceholderColor: props.theme.colors['bg-oncontrast-hover'],\n ...props.palette,\n })}\n `,\n active: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['alert-error'],\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.theme.colors['alert-error'],\n mediaPlaceholderColor: props.theme.colors['bg-oncontrast-hover'],\n ...props.palette,\n })}\n `,\n default: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.theme.colors['bg-oncontrast-hover'],\n mediaPlaceholderColor: props.theme.colors['bg-oncontrast-hover'],\n ...props.palette,\n })}\n `,\n },\n secondary: {\n disabled: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-disabled'],\n backgroundColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-oncolor-disabled'],\n backgroundColorHover: props.theme.colors.transparent,\n mediaPlaceholderColor: props.theme.colors['bg-oncontrast-hover'],\n ...props.palette,\n })}\n `,\n active: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-brand-primary'],\n backgroundColor: props.theme.colors['bg-brand-primary-100-active'],\n colorHover: props.theme.colors['content-brand-primary'],\n backgroundColorHover: props.theme.colors['bg-brand-primary-100-active'],\n mediaPlaceholderColor: props.theme.colors['bg-oncontrast-hover'],\n ...props.palette,\n })}\n `,\n default: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.theme.colors['bg-oncontrast-hover'],\n mediaPlaceholderColor: props.theme.colors['bg-oncontrast-hover'],\n ...props.palette,\n })}\n `,\n },\n primary: {\n disabled: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-disabled'],\n backgroundColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-oncolor-disabled'],\n backgroundColorHover: props.theme.colors.transparent,\n mediaPlaceholderColor: props.theme.colors['bg-oncontrast-hover'],\n ...props.palette,\n })}\n `,\n active: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-brand-primary'],\n backgroundColor: props.theme.colors['bg-brand-primary-100-active'],\n colorHover: props.theme.colors['content-brand-primary'],\n backgroundColorHover: props.theme.colors['bg-brand-primary-100-active'],\n mediaPlaceholderColor: props.theme.colors['bg-oncontrast-hover'],\n ...props.palette,\n })}\n `,\n default: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.theme.colors['bg-oncontrast-hover'],\n mediaPlaceholderColor: props.theme.colors['bg-oncontrast-hover'],\n ...props.palette,\n })}\n `,\n },\n },\n default: {\n danger: {\n disabled: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-disabled'],\n backgroundColorHover: props.theme.colors.transparent,\n mediaPlaceholderColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n active: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['alert-error'],\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.theme.colors['alert-error'],\n mediaPlaceholderColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n default: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['alert-error'],\n backgroundColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['alert-error'],\n backgroundColorHover: props.theme.colors['bg-oncolor-hover'],\n mediaPlaceholderColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n },\n secondary: {\n disabled: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-disabled'],\n backgroundColorHover: props.theme.colors.transparent,\n mediaPlaceholderColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n active: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-brand-primary'],\n backgroundColor: props.theme.colors['bg-brand-primary-100-active'],\n colorHover: props.theme.colors['content-brand-primary'],\n backgroundColorHover: props.theme.colors['bg-brand-primary-100-active'],\n mediaPlaceholderColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n default: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-brand-primary'],\n backgroundColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-brand-primary'],\n backgroundColorHover: props.theme.colors['bg-oncolor-hover'],\n mediaPlaceholderColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n },\n primary: {\n disabled: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-disabled'],\n backgroundColorHover: props.theme.colors.transparent,\n mediaPlaceholderColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n active: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-brand-primary'],\n backgroundColor: props.theme.colors['bg-brand-primary-100-active'],\n colorHover: props.theme.colors['content-brand-primary'],\n backgroundColorHover: props.theme.colors['bg-brand-primary-100-active'],\n mediaPlaceholderColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n default: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-onmain-primary'],\n backgroundColorHover: props.theme.colors['bg-oncolor-hover'],\n mediaPlaceholderColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n },\n },\n}\n\nexport const Root = styled.button\n .withConfig<StyledListItemProps>({\n shouldForwardProp: shouldForwardListItemProp,\n })\n .attrs<StyledListItemProps>(<Required<Pick<StyledListItemProps, 'dynamicSizeDeclaration'>>>{\n dynamicSizeDeclaration: (size, sizeUnits) => ({\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n padding: '0.4em 0.8em',\n }),\n })`\n ${(props) => `\n box-sizing: border-box;\n display: flex;\n align-items: center;\n isolation: isolate;\n position: relative;\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n border-radius: ${typeof props.borderRadius === 'string' ? props.borderRadius : `${props.borderRadius}px`};\n border: none;\n text-decoration: none;\n appearance: none;\n text-align: start;\n width: 100%;\n min-width: min-content;\n transition-property: background-color;\n transition-duration: 150ms;\n transition-timing-function: ease-in;\n\n & ${Media} {\n border-radius: ${\n typeof props.mediaBorderRadius === 'string' ? props.mediaBorderRadius : `${props.mediaBorderRadius}px`\n };\n }\n\n & > *:not(:last-child) {\n margin-right: 12px;\n }\n `}\n\n ${(props) => {\n const schema = props.onColored ? COLOR_SCHEMA.onColored : COLOR_SCHEMA.default\n let schemaVariant = schema.primary\n\n if (props.secondary) schemaVariant = schema.secondary\n if (props.danger) schemaVariant = schema.danger\n\n if (props.disabled) return schemaVariant.disabled\n if (props.active) return schemaVariant.active\n\n return schemaVariant.default\n }}\n\n ${focus}\n ${responsiveSize}\n ${responsiveMargin}\n`\n\nexport const Content = styled.span`\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n`\n\nexport const Img = styled.img`\n box-sizing: border-box;\n border-radius: inherit;\n object-fit: contain;\n`\n\nexport const Ellipsis = styled(Text)`\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n min-width: 100%;\n width: 5ch;\n`\n","import { forwardRef, cloneElement, isValidElement } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { Icon } from 'components/Icon'\nimport { Skeleton } from 'components/Skeleton'\nimport { Text } from 'components/Text'\nimport type { TextProps } from 'components/Text'\nimport { SIZES } from './constants'\nimport * as Styled from './style'\nimport type { ListItemProps } from './types'\n\nconst COMPONENT_NAME = 'ListItem'\n\n/**\n *\n * Component accepts all root HTML attributes.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [ListItemProps](https://github.com/foxford/ui/blob/master/src/components/ListItem/types.ts)\n */\nconst ListItem: React.ForwardRefExoticComponent<ListItemProps> = withMergedProps<ListItemProps>(\n forwardRef((props, ref) => {\n const {\n size = 's',\n borderRadius = 0,\n mediaBorderRadius = '50%',\n controlPosition = 'left',\n captionPosition = 'bottom',\n iconProps = {},\n textProps = {},\n captionProps = {},\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n text,\n children,\n control,\n icon,\n media,\n caption,\n addon,\n onColored,\n disabled,\n loading,\n ...restProps\n } = props\n\n let rootNode: ListItemProps['as']\n\n if (control) rootNode = 'label'\n if (restProps.href) rootNode = 'a'\n if (restProps.as) rootNode = restProps.as\n\n let rootType: ListItemProps['type']\n\n if (!rootNode) rootType = 'button'\n if (restProps.type) rootType = restProps.type\n\n const sizeProps = {\n size,\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n }\n\n const stateProps = {\n onColored,\n disabled,\n }\n\n const controlProps =\n typeof control === 'object' && typeof control.props === 'object' && control.props !== null ? control.props : {}\n\n const [before, after] = Array.isArray(icon) ? icon : [icon]\n\n const textBaseProps: TextProps = { appearance: 'body', size: 'inherit', color: 'inherit' }\n\n const captionBaseProps: TextProps = { appearance: 'body', size: 0.9, sizeUnits: 'em', color: 'inherit' }\n\n return (\n <Styled.Root\n {...sizeProps}\n {...stateProps}\n {...restProps}\n as={rootNode}\n type={rootType}\n borderRadius={borderRadius}\n mediaBorderRadius={mediaBorderRadius}\n ref={ref}\n >\n {typeof children === 'function' ? (\n children({\n textProps: textBaseProps,\n captionProps: captionBaseProps,\n })\n ) : (\n <>\n {loading ? (\n <>\n {media && (\n <Styled.Media>\n <Skeleton width='100%' height='100%' borderRadius='inherit' />\n </Styled.Media>\n )}\n <Styled.Content>\n <Skeleton width='100%' borderRadius={4}>\n <Text {...textBaseProps} {...textProps} />\n </Skeleton>\n </Styled.Content>\n </>\n ) : (\n <>\n {control &&\n controlPosition === 'left' &&\n (typeof control === 'function'\n ? control({ ...sizeProps, ...stateProps })\n : cloneElement(control, { ...sizeProps, ...stateProps, ...controlProps }))}\n {before && (\n <Icon\n preset='brand'\n name={typeof before === 'string' ? before : undefined}\n icon={typeof before !== 'string' ? before : undefined}\n {...iconProps}\n />\n )}\n {media && (\n <Styled.Media>{isValidElement(media) ? media : <Styled.Img alt='' {...media} />}</Styled.Media>\n )}\n <Styled.Content>\n {caption && captionPosition === 'top' && (\n <Styled.Ellipsis forwardedAs='span' {...captionBaseProps} {...captionProps}>\n {caption}\n </Styled.Ellipsis>\n )}\n <Styled.Ellipsis forwardedAs='span' {...textBaseProps} {...textProps}>\n {children ?? text}\n </Styled.Ellipsis>\n {caption && captionPosition === 'bottom' && (\n <Styled.Ellipsis forwardedAs='span' {...captionBaseProps} {...captionProps}>\n {caption}\n </Styled.Ellipsis>\n )}\n </Styled.Content>\n {addon}\n {after && (\n <Icon\n preset='brand'\n name={typeof after === 'string' ? after : undefined}\n icon={typeof after !== 'string' ? after : undefined}\n {...iconProps}\n />\n )}\n {control &&\n controlPosition === 'right' &&\n (typeof control === 'function'\n ? control({ ...sizeProps, ...stateProps })\n : cloneElement(control, { ...sizeProps, ...stateProps, ...controlProps }))}\n </>\n )}\n </>\n )}\n </Styled.Root>\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: SIZES,\n }\n)\n\nexport { ListItem }\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n fontSize: 20,\n paddingTop: 16,\n paddingRight: 20,\n paddingBottom: 16,\n paddingLeft: 20,\n },\n xxl: {\n fontSize: 20,\n paddingTop: 16,\n paddingRight: 20,\n paddingBottom: 16,\n paddingLeft: 20,\n },\n xl: {\n fontSize: 20,\n paddingTop: 16,\n paddingRight: 20,\n paddingBottom: 16,\n paddingLeft: 20,\n },\n l: {\n fontSize: 18,\n paddingTop: 10,\n paddingRight: 16,\n paddingBottom: 10,\n paddingLeft: 16,\n },\n m: {\n fontSize: 16,\n paddingTop: 8,\n paddingRight: 12,\n paddingBottom: 8,\n paddingLeft: 12,\n },\n s: {\n fontSize: 14,\n paddingTop: 6,\n paddingRight: 10,\n paddingBottom: 6,\n paddingLeft: 10,\n },\n xs: {\n fontSize: 14,\n paddingTop: 6,\n paddingRight: 10,\n paddingBottom: 6,\n paddingLeft: 10,\n },\n xxs: {\n fontSize: 14,\n paddingTop: 6,\n paddingRight: 10,\n paddingBottom: 6,\n paddingLeft: 10,\n },\n xxxs: {\n fontSize: 14,\n paddingTop: 6,\n paddingRight: 10,\n paddingBottom: 6,\n paddingLeft: 10,\n },\n}\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n width: 10,\n height: 10,\n borderRadius: '50%',\n },\n xxl: {\n width: 10,\n height: 10,\n borderRadius: '50%',\n },\n xl: {\n width: 10,\n height: 10,\n borderRadius: '50%',\n },\n l: {\n width: 10,\n height: 10,\n borderRadius: '50%',\n },\n m: {\n width: 6,\n height: 6,\n borderRadius: '50%',\n },\n s: {\n width: 4,\n height: 4,\n borderRadius: '50%',\n },\n xs: {\n width: 4,\n height: 4,\n borderRadius: '50%',\n },\n xxs: {\n width: 4,\n height: 4,\n borderRadius: '50%',\n },\n xxxs: {\n width: 4,\n height: 4,\n borderRadius: '50%',\n },\n}\n\nexport const SIZES_SQUARE: Sizes = {\n xxxl: {\n width: 'min-content',\n minWidth: 22,\n height: 22,\n borderRadius: 5,\n fontSize: 14,\n },\n xxl: {\n width: 'min-content',\n minWidth: 22,\n height: 22,\n borderRadius: 5,\n fontSize: 14,\n },\n xl: {\n width: 'min-content',\n minWidth: 22,\n height: 22,\n borderRadius: 5,\n fontSize: 14,\n },\n l: {\n width: 'min-content',\n minWidth: 22,\n height: 22,\n borderRadius: 5,\n fontSize: 14,\n },\n m: {\n width: 'min-content',\n minWidth: 18,\n height: 18,\n borderRadius: 4,\n fontSize: 12,\n },\n s: {\n width: 'min-content',\n minWidth: 16,\n height: 16,\n borderRadius: 4,\n fontSize: 10,\n },\n xs: {\n width: 'min-content',\n minWidth: 16,\n height: 16,\n borderRadius: 4,\n fontSize: 10,\n },\n xxs: {\n width: 'min-content',\n minWidth: 16,\n height: 16,\n borderRadius: 4,\n fontSize: 10,\n },\n xxxs: {\n width: 'min-content',\n minWidth: 16,\n height: 16,\n borderRadius: 4,\n fontSize: 10,\n },\n}\n","import styled, { keyframes, css } from 'styled-components'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport type { StyledIndicatorProps, IndicatorPalette } from './types'\n\nconst shouldForwardIndicatorProp = createShouldForwardProp((propKey) => {\n return !['square', 'black', 'grey', 'onColored', 'pulse', 'pulseIterationCount', 'frame'].includes(propKey)\n})\n\nconst pulseAnimation = keyframes`\n 0% {\n opacity: 1;\n transform: scale(1);\n }\n 75% {\n opacity: 0;\n }\n 100% {\n transform: scale(4);\n }\n`\n\nexport const Foreground = styled.span`\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n z-index: 1;\n border-radius: inherit;\n background-color: inherit;\n`\n\nconst template = (palette: IndicatorPalette) => `\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n\n & > ${Foreground} {\n box-shadow: 0 0 0 1px ${palette.shadowColor};\n }\n`\n\nconst COLOR_SCHEMA = {\n onColored: {\n primary: css<StyledIndicatorProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-brand-primary'],\n backgroundColor: props.theme.colors['bg-oncolor-primary'],\n shadowColor: props.theme.colors['bg-oncolor-primary'],\n ...props.palette,\n })}\n `,\n secondary: css<StyledIndicatorProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['bg-brand-secondary-500'],\n shadowColor: props.theme.colors['bg-oncolor-primary'],\n ...props.palette,\n })}\n `,\n black: css<StyledIndicatorProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['bg-onmain-contrast'],\n shadowColor: props.theme.colors['bg-oncolor-primary'],\n ...props.palette,\n })}\n `,\n grey: css<StyledIndicatorProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['bg-oncolor-secondary'],\n shadowColor: props.theme.colors['bg-oncolor-primary'],\n ...props.palette,\n })}\n `,\n },\n default: {\n primary: css<StyledIndicatorProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['bg-brand-primary-500'],\n shadowColor: props.theme.colors['bg-onmain-primary'],\n ...props.palette,\n })}\n `,\n secondary: css<StyledIndicatorProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['bg-brand-secondary-500'],\n shadowColor: props.theme.colors['bg-onmain-primary'],\n ...props.palette,\n })}\n `,\n black: css<StyledIndicatorProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['bg-onmain-contrast'],\n shadowColor: props.theme.colors['bg-onmain-primary'],\n ...props.palette,\n })}\n `,\n grey: css<StyledIndicatorProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-onmain-divider'],\n shadowColor: props.theme.colors['bg-onmain-primary'],\n ...props.palette,\n })}\n `,\n },\n}\n\nexport const Root = styled.span\n .withConfig<StyledIndicatorProps>({\n shouldForwardProp: shouldForwardIndicatorProp,\n })\n .attrs<StyledIndicatorProps>(\n (props): Required<Pick<StyledIndicatorProps, 'dynamicSizeDeclaration'>> => ({\n dynamicSizeDeclaration: (size, sizeUnits) => ({\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n width: props.square ? 'min-content' : '1em',\n minWidth: props.square ? '1.6em' : undefined,\n height: props.square ? '1.6em' : '1em',\n borderRadius: props.square ? '0.2em' : '50%',\n }),\n })\n )`\n box-sizing: border-box;\n position: relative;\n isolation: isolate;\n cursor: default;\n display: inline-block;\n flex-shrink: 0;\n\n ${(props) => {\n const schema = props.onColored ? COLOR_SCHEMA.onColored : COLOR_SCHEMA.default\n\n if (props.grey) return schema.grey\n if (props.black) return schema.black\n if (props.secondary) return schema.secondary\n\n return schema.primary\n }}\n\n ${(props) =>\n !props.frame &&\n `\n & > ${Foreground} {\n box-shadow: none;\n }\n `}\n\n ${(props) =>\n props.pulse &&\n css`\n &::before,\n &::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n opacity: 0;\n background-color: inherit;\n border-radius: inherit;\n animation-name: ${pulseAnimation};\n animation-duration: 3200ms;\n animation-iteration-count: ${typeof props.pulseIterationCount === 'number'\n ? props.pulseIterationCount\n : 'infinite'};\n }\n\n &::after {\n animation-delay: 800ms;\n }\n `}\n\n ${responsiveSize}\n`\n","import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { Text } from 'components/Text'\nimport { SIZES, SIZES_SQUARE } from './constants'\nimport * as Styled from './style'\nimport type { IndicatorProps } from './types'\n\nconst COMPONENT_NAME = 'Indicator'\n\nconst indicatorPropsWithContent = (props: IndicatorProps): boolean =>\n (props.children !== undefined && props.children !== null) || (props.text !== undefined && props.text !== null)\n\n/**\n *\n * Component accepts all \\<span\\> attributes.\n *\n * Responsive \"size\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [IndicatorProps](https://github.com/foxford/ui/blob/master/src/components/Indicator/types.ts)\n */\nconst Indicator: React.ForwardRefExoticComponent<IndicatorProps> = withMergedProps<IndicatorProps, HTMLSpanElement>(\n forwardRef((props, ref) => {\n const { size = 'm', textProps = {}, children, text, ...restProps } = props\n\n const hasContent = indicatorPropsWithContent(props)\n\n return (\n <Styled.Root {...restProps} size={size} square={hasContent} ref={ref}>\n <Styled.Foreground>\n {hasContent && (\n <Text\n as='span'\n appearance='body'\n size='inherit'\n color='inherit'\n whiteSpace='nowrap'\n weight={700}\n lineHeight={1}\n marginTop={1}\n marginRight='0.3em'\n marginLeft='0.3em'\n {...textProps}\n >\n {children ?? text}\n </Text>\n )}\n </Styled.Foreground>\n </Styled.Root>\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: (props) => (indicatorPropsWithContent(props) ? SIZES_SQUARE : SIZES),\n }\n)\n\nexport { Indicator }\n","/* eslint-disable no-unused-vars */\nimport { useCallback } from 'react'\nimport { DefaultTheme, ThemeProvider as StyledThemeProvider } from 'styled-components'\nimport { mergeDeepLeft } from 'ramda'\nimport { UiGlobalStyles } from './global-styled'\nimport { defaultTheme } from './themes'\n\ninterface ThemeProviderProps {\n theme: Partial<DefaultTheme> | ((topLevelTheme: DefaultTheme) => DefaultTheme)\n children: React.ReactNode\n}\n\nexport function ThemeProvider(props: ThemeProviderProps) {\n const mergeTheme = useCallback(\n (topLevelTheme: DefaultTheme = defaultTheme): DefaultTheme => {\n const mergingTheme = props.theme\n\n if (typeof mergingTheme === 'function') {\n return mergingTheme(topLevelTheme)\n }\n\n if (typeof mergingTheme === 'object' && !Array.isArray(mergingTheme) && mergingTheme !== null) {\n return mergeDeepLeft(mergingTheme, topLevelTheme) as DefaultTheme\n }\n\n return topLevelTheme\n },\n [props.theme]\n )\n\n return (\n <StyledThemeProvider theme={mergeTheme}>\n <UiGlobalStyles />\n {props.children}\n </StyledThemeProvider>\n )\n}\n","import { css } from 'styled-components'\n\nexport interface VAlign {\n vAlign?: 'top' | 'middle' | 'bottom' | 'text-top' | 'text-bottom' | 'baseline'\n}\n\nexport const vAlign = (vAlign: 'top' | 'middle' | 'bottom' | 'text-top' | 'text-bottom' | 'baseline') => css`\n vertical-align: ${vAlign};\n`\n"],"names":["allowedHexColorCodes","hexToRgbA","hex","alpha","test","Error","codeGroupLength","Math","floor","length","hexCodePattern","RegExp","groupLength","r","g","b","matchAll","map","_ref","code","parseInt","padEnd","concat","DefaultColorNames","BaseColorNames","BrandColorNames","SocialColorNames","socialColors","Object","freeze","facebook","twitter","youtube","instagrammagenta","instagramblue","instagrampurple","instagramorange","instagramyellow","pinterest","googleplus","linkedin","vimeoblue","vimeogreen","vimeoorange","vimeopink","tumblr","snapchat","whatsappgreen","whatsappteal1","whatsappteal2","foursquarepink","foursquareblue","swarm","skypeblue","skypegreen","android","stumbleupon","flickrpink","flickrblue","yahoo","soundcloud","spotifygreen","spotifydarkgreen","dribbble","reddit","deviantart","pocket","quora","quorablue","slideshareorange","slideshareblue","telegram","fivehundredpx","listlyorange","listlyblue","vine","vk","ok","mailru","colors","white","black","tundora","paleSky","bostonBlue","atlantisBrightly","cinnabar","sail","bittersweet","turquoise","dodgerBlue","mantis","azure","bahamaBlue","shamrock","olive","copperRose","cyan","plum","hokeyPokey","monaLisa","mariner","heliotrope","dandelion","fruitSalad","fuchsiaBlue","persianGreen","watermelon","tropaz","lima","mintTulip","carnationPink","paleRose","deYork","peppermint","cornflowerBlue","colonialWhite","cherokee","supernova","picasso","bilobaFlower","linkWater","transparent","mineShaft","silver","alto","mercury","wildSand","whiteGray","alabaster","whiteLilac","atlantis","yellowOrange","mystic","pomegranate","oliveDrab","curious","orangePeel","nebula","seaNymph","chromeWhite","onahau","citrineWhite","coralReef","creemBrulee","frangipani","yourPink","periwinkleGray","baliHai","primary","accent","catalinaBlue","danube","midnightDeep","anakiva","azureRadiance","blueMarguerite","blueViolet","bossanova","capeCod","cerulean","congressBlue","congressBlueLight","creamBrulee","denim","earlyDawn","eminence","endeavour","fern","ghost","grape","gunsmoke","highland","honeyFlower","honeyFlower2","honeyFlower3","jagger","jordyBlue","jumbo","mediumPurple","midnightBlue","moodyBlue","nandor","nevada","olivine","parsley","pattensBlue","pattensBlueLight","scarletGum","scienceBlue","scienceBlue03","seance","smalt","smaltLight","tarawera","toryBlue","toryBlueDark","dodgerBlueDark","chambray","chambrayDark","pomegranateDark","azureRadiance2","curiousBlue","jungleGreen","violetDeep","stormGray","zeus","athensGray","marinerLight","royalBlue","melrose","zircon","veniceBlue","solitude","selago","coconutCream","cinderella","royalBlueDark","persianBlue","ultramarine","cornflowerBlueDark","jungleGreenDark","mountainMeadow","dodgerBlueDim","zirconDark","pizazz","madison","ebony","mediumRedViolet","fruitSaladLight","shark","azureRadianceLight","carnation","limaGreen","mysin","studio","athsSpecial","thunderbird","denimDark","puertoRico","lochmara","aliceBlue","perano","portage","royalBlueDim","sailDim","solitaire","capeHoney","fairPink","romantic","polar","cruise","selagoLight","moonRaker","pippin","yourPinkDark","peppermintLight","fringyFlower","heliotropeDark","pictonBlue","mediumPurpleRed","scooter","chambrayDim","dodgerBlueLight","selectiveYellow","scienceBlueDark","dodgerBlueDeep","kashmirBlue","turbo","denimDim","orangeRoughy","selagoDim","congressBlueNight","azureRadianceMedium","honeyFlowerDim","jaguar","kournikova","drover","flamingo","mineShaftDim","periwinkle","colonialWhiteDim","pattensBlueDeep","solitudeDim","periwinkleDim","rioGrande","kournikovaDim","UnitColorNames","unitColors","profession","professionDark","camps","campsDark","courses","coursesDark","openLesson","openLessonDark","externat","externatDark","olympiad","olympiadDark","textbook","textbookDark","tutors","tutorsDark","training","trainingDark","mathematics","physics","informatics","chemistry","biology","english","russian","history","society","geography","developing","literature","intersubject","primarySchool","recommended","astronomy","ecology","technology","languages","art","physicalCulture","logic","businessLogic","rap","ikt","kids","fgos","blue","red","green","grey","darkgrey","lightgrey","superlightgrey","ColorNames","_colors","keys","colorName","css","_socialColors","_unitColors","UiGlobalStyles","createGlobalStyle","SizeInput","BREAKPOINTS","xl","l","m","s","xs","xxs","baseColors","defaultTheme","breakpoints","borderRadius","textColor","fallbackColor","zIndex","modal","tooltip","classNamePrefix","defaultInputControlsWidth","utils","relBuilder","link","target","relStr","e","o","url","hostname","arguments","URL","endsWith","window","location","push","join","mode","preset","name","components","Arrow","size","Button","Checkbox","Tooltip","motherLightTheme","_objectSpread","default","motherDarkTheme","ColorsDark","babyLightTheme","babyDarkTheme","teenLightTheme","teenDarkTheme","adultLightTheme","adultDarkTheme","CONDITIONS","MAX","maxWidth","point","MIN","minWidth","RANGE","point1","point2","createMediaQuery","condition","_len","points","Array","_key","params","_len2","args","_key2","props","_props$theme$breakpoi","_props$theme","contextBreakpoints","theme","and","screenXs","screenS","screenM","screenL","screenXl","screenMaxXxs","screenMaxXs","screenMinXs","screenMaxS","screenMinS","screenMaxM","screenMinM","screenMaxL","screenMinL","screenMaxXl","screenMinXl","SIZES_LATIN","xxxl","xxl","xxxs","FONT_SIZES_LATIN","DESKTOP_FIRST_KEYS","MOBILE_FIRST_KEYS","getLatinSizeMapByCssProperty","cssProperty","buildMediaQuery","value","property","screenQueryFunction","sizing","sizes","_sizeMap$value","sizeMap","getKey","key","desktopFirst","a","aKey","bKey","findIndex","el","getMediaQueryByResponsiveProp","prop","t","n","includes","SCREEN_SIZE_MAP","XXS","XS","S","M","L","XL","SCREEN_SIZE_MAP_BY_DEVICE_ALIAS","desktop","tablet","mobile","responsiveNamedProperty","predefinedSizes","customSizeHandler","sort","filter","Boolean","item","responsiveProperty","propName","_props$propName","_cssProperty","isArray","_templateObject","_taggedTemplateLiteral","_templateObject2","_templateObject3","_templateObject4","_templateObject6","_templateObject9","getColor","color","_props$theme2","colorVal","_color","useClassname","componentName","originalClassName","useTheme","cx","SIZES_EMPTY","useMergedPalette","componentProps","_componentProps$palet","palette","reduce","injected","_theme$colors$palette","withMergedProps","WrappedComponent","options","WithMergedProps","forwardRef","wrappedComponentProps","ref","displayName","contextProps","context","mergedProps","mergeDeepLeft","_mergedProps$preset","_theme$components","_context$componentNam","_componentProps$sizes","componentSizes","sizesDefault","sizesProp","_jsx","_path","_extends","assign","i","source","hasOwnProperty","call","apply","this","_path2","_circle","iconPackIcons","IconPack","icons","toLowerCase","slice","defaultIcons","book","React","createElement","viewBox","xmlns","fill","d","blackBoard","fillRule","clipRule","burger","eye","email","width","height","unsort","person","diamond","diamondFilled","diamondSolid","cy","stroke","strokeWidth","infoInverse","list","login","logout","fire","cart","clock","clockFilled","discount","headphones","page","priceTag","phone","prof","star","settings","student","trophy","message","wallet","edit","copy","print","objective","present","xmlSpace","style","coins","calendar","_jsxs","jsxs","children","jsx","calendar_simple","chevronDown","chevronUp","chevronRight","chevronLeft","cross","dialog","dropDownArrow","externalLink","className","fillOpacity","file","fileBordered","lessons","pencil","phoneNoFill","radioChecked","radioNotChecked","search","tasks","tinyCross","sharpCross","plus","y","rx","transform","plusThin","play","reload","checkCircle","info","check","home","id","questionFilled","document","cancel","playPause","video","ICONS","ICONS_DEFAULT","createResponsivePropsMixin","propsKeys","buildCSSObject","propsRegExp","breakpointsPropsRegExp","breakpointsRegExp","deviceQueries","breakpointsQueries","groups","propKey","interpolations","acc","propValue","mediaFunctions","queries","cssObject","breakpointsInterpolations","replace","commonPropKeyRegExp","colorSchemaPropKeyRegExp","responsiveSizePropKeyRegExp","marginPropKeyRegExp","responsiveMarginPropKeyRegExp","responsiveFluidPropKeyRegExp","responsiveWidthPropKeyRegExp","responsivePaddingPropKeyRegExp","responsiveFontSizePropKeyRegExp","responsiveHeightPropKeyRegExp","createShouldForwardProp","predicates","cache","create","every","func","regExp","responsiveSize","_","sizeValue","_props$sizes$sizeValu","dynamicSizeDeclaration","sizeUnits","_props$sizeUnits","fontSize","_props$sizeUnits2","shouldForwardIconProp","Root","styled","span","withConfig","shouldForwardProp","componentId","vAlign","Icon","icon","restProps","_excluded","Styled.Root","display","active","notDisabled","disabled","div","ActionBtn","onClick","_className","useConfigPriority","minor","major","useMemo","minorConfig","majorConfig","Set","prioritized","finalVal","valid","PARAMS","h1","sizeM","lineHeight","weight","h2","h3","h4","TextHeading","h","fontFamily","_useConfigPriority","configProps","_objectWithoutProperties","Text","as","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","margin","marginTop","marginRight","marginBottom","marginLeft","paddingXS","paddingS","paddingM","paddingL","paddingXL","_ref2","paddingTopXS","paddingTopS","paddingTopM","paddingTopL","paddingTopXL","_ref3","paddingRightXS","paddingRightS","paddingRightM","paddingRightL","paddingRightXL","_ref4","paddingBottomXS","paddingBottomS","paddingBottomM","paddingBottomL","paddingBottomXL","_ref5","paddingLeftXS","paddingLeftS","paddingLeftM","paddingLeftL","paddingLeftXL","_ref6","marginXS","marginS","marginM","marginL","marginXL","_ref7","marginTopXS","marginTopS","marginTopM","marginTopL","marginTopXL","_ref8","marginRightXS","marginRightS","marginRightM","marginRightL","marginRightXL","_ref9","marginBottomXS","marginBottomS","marginBottomM","marginBottomL","marginBottomXL","_ref10","marginLeftXS","marginLeftS","marginLeftM","marginLeftL","marginLeftXL","top","right","bottom","left","_ref11","topXS","topS","topM","topL","topXL","_ref12","rightXS","rightS","rightM","rightL","rightXL","_ref13","bottomXS","bottomS","bottomM","bottomL","bottomXL","_ref14","leftXS","leftS","leftM","leftL","leftXL","Spacer","Ul","ul","Li","li","TextEllipse","Component","constructor","super","getContent","content","chars","isEllipsed","state","text","isUnFolded","leftChars","index","setTimeout","setState","getQuted","Styled.Ul","Styled.Li","quoted","toggle","componentDidUpdate","render","_this$props","moreText","lessText","showToggler","Anchor","pseudo","APPEARANCE","fontStyle","heading","subheading","body","caption","SIZES","SIZES_DEFAULT","responsiveMargin","_props$marginUnits","marginUnits","WEIGHT_MAP","lighter","normal","bold","bolder","LINE_HEIGHT_MAP","shouldForwardTextProp","_WEIGHT_MAP$props$wei","_LINE_HEIGHT_MAP$prop","textAlign","underline","whiteSpace","underlineLinks","textProps","appearance","textClassName","_SIZES$props$appearan","Heading","Ellipse","focus","shouldForwardAnchorProp","template","colorHover","colorDisabled","COLOR_SCHEMA","wrapper","tinycolor","lighten","toString","onColored","darken","verticalAlign","_theme$utils","_restProps$href","_restProps$rel","autoRel","iconProps","href","to","rel","before","after","baseTextProps","iconBaseProps","rootNode","Link","_Fragment","undefined","SIZES_ROUND","SIZES_ROUND_DEFAULT","PROPS_BY_SIZE","fontSizeM","heightM","heightS","shouldForwardButtonProp","WIDTHS","loadingAnimation","keyframes","spinAnimation","defaultLoadingStyles","getWidth","fluidStyles","backgroundColor","borderColor","shadowColor","backgroundColorHover","borderColorHover","colorActive","backgroundColorActive","borderColorActive","backgroundColorDisabled","borderColorDisabled","clear","loading","base","success","outline","danger","defaultStyles","fontColor","saturate","inverted","basic","button","attrs","round","inline","rounded","cursor","schema","fluid","fontSizeXS","fontSizeS","fontSizeL","fontSizeXL","heightXS","heightL","heightXL","widthXS","widthS","widthM","widthL","widthXL","fluidXS","fluidS","fluidM","fluidL","fluidXL","LoaderIcon","LoaderFill","_as","fontWeight","innerRef","_PROPS_BY_SIZE$size","propsBySize","secondary","rootClassName","config","_config$href","linkProps","Styled.LoaderIcon","Progress","percent","percentColor","Separators","Separator","separatorColor","isEmpty","haveCircle","ProgressSegmented","segments","isActive","Styled.Progress","Styled.Separators","from","Styled.Separator","defaultProps","resultColor","strokeBGColor","Content","polarToCartesian","centerX","centerY","radius","angleInDegrees","angleInRadians","PI","x","cos","sin","describeArc","startAngle","endAngle","reverse","start","end","diff","angleDiff","sweep","arcSweep","ProgressCircle","PureComponent","renderSvg","progress","strokeLineWidth","strokeBGWidth","progressStartAngle","thickness","center","bgStartAngle","bgEndAngle","describeArcProgress","describeArcBg","bgAngleDiff","componentDidMount","prevProps","prevProgress","prevSize","status","strokeLinecap","Styled.Content","move","bgColor","setAlpha","isLoading","Bar","_percent","Styled.Bar","Circle","Segmented","getPaddingY","column","isCompact","withImage","withTimer","getImageSize","textWrap","withCloseIcon","noIcon","withAction","withTitle","type","IconWrapper","getMarginRightIconWrapper","ContentWrapper","Title","Actions","CloseIcon","CancelTimer","Timer","paused","timer","countdown","setCountdown","useState","intervalId","useRef","useEffect","current","clearInterval","setInterval","prevCountdown","progressRate","ceil","countdownColor","getDefaultIcon","CloseCirlceFill","NotifFill","CheckCircleFill","WarningTriangleFill","Alert","cancelTimerText","primaryAction","primaryActionProps","secondaryAction","secondaryActionProps","customIcon","image","onClickCancelTimer","closeToast","title","titleProps","timerOnPause","setTimerOnPause","onMouseEnter","onMouseLeave","withLink","Styled.IconWrapper","Styled.Timer","Styled.ContentWrapper","Styled.Title","Styled.Link","Styled.Actions","Styled.CancelTimer","Styled.CloseIcon","Close","CurrencyCodes","CURRENCY_MAP","ALL","AFN","ARS","AWG","AUD","AZN","BSD","BBD","BYR","BZD","BMD","BOB","BAM","BWP","BGN","BRL","BND","KHR","CAD","KYD","CLP","CNY","COP","CRC","HRK","CUP","CZK","DKK","DOP","XCD","EGP","SVC","EEK","EUR","FKP","FJD","FRF","GHC","GIP","GTQ","GGP","GYD","HNL","HKD","HUF","ISK","INR","IDR","IRR","IMP","ILS","JMD","JPY","JEP","KZT","KGS","LAK","LVL","LBP","LRD","LTL","MKD","MYR","MUR","MXN","MNT","MZN","NAD","NPR","ANG","NZD","NIO","NGN","KPW","NOK","OMR","PKR","PAB","PYG","PEN","PHP","PLN","QAR","RON","RUR","RUB","SHP","SAR","RSD","SCR","SGD","SBD","SOS","ZAR","KRW","LKR","SEK","CHF","SRD","SYP","TWD","THB","TTD","TRY","TRL","TVD","UAH","GBP","USD","UYU","UZS","VEF","VND","YER","ZWD","crossedOut","ZERO_MINOR_PART_REGEXP","createSplitter","partSize","parts","str","Amount","renderCurrencySymbol","currencySymbol","position","currency","opacity","visibility","static","currencyCode","renderMinorPart","minorPart","showZeroMinorPart","separator","needMinorPart","digitsAfterPoint","isHeader","onlyCurrency","rest","majorPart","isNegative","numberParts","abs","toFixed","split","majorPartFormatted","formattedValueStr","getCurrencySymbol","classNames","amountInner","shouldForwardArrowProp","defaultDisabledStyles","DEFAULT_STYLES","filled","inverse","square","SvgArrowmodule","SvgRectanglemodule","SvgFancymodule","shouldForwardArrowBadgeProp","Edge","svg","Shape","Rectangle","fancy","Fancy","tertiary","quaternary","ArrowBadge","Styled.Edge","shouldForwardSkeletonProp","shiftAnimation","gradientColor","gradientHighlightColor","_props$animationDurat","_props$animationDelay","animationDuration","animationDelay","Skeleton","isValidElement","cloneElement","SIZES_MAPPING_RULES","sm","shouldForwardAvatarProp","shadow","src","Avatar","_SIZES_MAPPING_RULES$","sizeMapped","seq","trim","abbreviation","symbolCodePoint","codePointAt","String","fromCodePoint","shouldForwardBadgeProp","resetDefaultMargin","Badge","Container","Modal","isOpen","overlayClassName","contentClassName","overlayClassNameLocal","ReactModal","portalClassName","valign","blurredOverlay","ModalClose","appElement","closeTimeoutMS","contentLabel","onAfterOpen","onRequestClose","role","shouldCloseOnOverlayClick","Styled.Modal","bodyOpenClassName","HTMLElement","setAppElement","Styled.ModalClose","zDepth","circle","Paper","Scrollable","scrollable","ts","scrollTop","scrollHeight","clientHeight","handleTouchStart","touches","clientY","handleTouchMove","isolate","scrollarea","parentNode","te","changedTouches","dir","upTouch","endTouch","preventDefault","handleScroll","deltaY","detail","handleUpdate","values","hexToRgb","result","exec","renderTrack","trackColor","trackOpacity","trackBorderRadius","trackWidth","trackStyle","background","renderThumb","scrollableProps","_excluded2","thumbColor","thumbOpacity","thumbBorderRadius","thumbWidth","thumbStyle","addEventListener","componentWillUnmount","removeEventListener","calculateShadowOffset","shadowHeight","diffH","withShadow","shadowOpacity","_excluded3","shadowOffset","backgroundImage","Scrollbars","renderTrackVertical","nodeProps","renderTrackHorizontal","renderThumbHorizontal","renderThumbVertical","onUpdate","hideTracksWhenNotNeeded","node","autoHide","autoHideTimeout","autoHideDuration","autoHeight","withThemeScrollable","withTheme","Section","UiText","TextRoot","Styled.TextRoot","Styled.Text","spinner","fullscreen","sizeBuilder","getSize","sizeXS","sizeS","sizeL","sizeXL","Spinner","DEFAULT_PROPS","switcherWidth","switcherHeight","dotSize","BRAND_PROPS","Input","input","Label","label","Switcher","disabledStyles","checkedStyles","baseStyles","defaultPresetStyle","inactiveColor","checked","brandPresetStyles","brandPresetUsed","tabIndex","onChange","propsByPreset","Styled.Input","event","Styled.Switcher","htmlFor","Styled.Label","shouldForwardTabProp","compact","crispyCompact","crispy","preserveAspectRatio","leftRadius","rightRadius","tabTheme","Tab","noBorder","Inner","Tabs","classNameInner","classNameContent","Styled.Inner","shouldForwardTooltipComponentProp","CloseButton","closeColor","closeColorHover","closeColorActive","closeColorDisabled","contrast","elevated","TooltipComponent","contentProps","closeButtonProps","footer","closeFn","showCloseButton","Styled.CloseButton","evt","closeFnNoop","ESC_KEYS","TooltipWrapper","sizeXXS","component","keyboardEvtType","keyboardKeys","keyboardEvtHandler","handleKeyboardEvt","injectionProps","elementProps","TOOLTIP_STYLES_DEFAULT","flexDirection","wrapperPosition","floater","WebkitFilter","transition","floaterOpening","floaterWithAnimation","floaterClosing","floaterCentered","container","boxSizing","minHeight","justifyContent","borderBottom","close","border","WebkitAppearance","borderTop","arrow","spread","_restProps$offset","_restProps$styles2","_restProps$styles","tooltipProps","styles","Floater","offset","modifiers","flip","enabled","disableFlip","TagInput","Tag","inputType","buttonProps","inputProps","_onChange","_x","persist","_onClick","_x2","defaultChecked","hidden","forwardedAs","HeadingRoot","SubHeadingRoot","ControlsRoot","ControlsItem","MultilevelItems","Styled.HeadingRoot","SubHeading","Styled.SubHeadingRoot","Controls","confirm","Styled.ControlsRoot","Styled.ControlsItem","ContextMenuMultiLevel","resetTimeout","onSelectItem","selectedItem","level","selectedItems","newSelectedItems","getCurrentConfig","levelId","_acc$items$find","items","find","error","reset","itemOnClickHandler","currentTarget","dataset","preventClosing","stopPropagation","clearTimeout","trigger","anotherProps","ContextMenu","onClose","Styled.MultilevelItems","Item","controls","disabledItem","notDisabledItem","hideOverlay","RootItem","disabledHandler","ContextMenuItem","Styled.RootItem","getOpen","openMenu","onOpen","closeMenu","toggleMenu","open","MultiLevel","placement","overflow","chooseWidthValue","errorStyle","disabledStyle","focusStyle","roundedStyle","baseInputStyle","placeholderColor","InputMask","labelPosition","inputColor","inputPlaceholderColor","inputColorDisabled","inputPlaceholderColorDisabled","InputControl","controlsTemplate","controlsColor","controlsColorHover","controlsColorActive","controlsColorDisabled","controlsBackgroundColor","controlsBackgroundColorHover","controlsBackgroundColorActive","controlsBackgroundColorDisabled","controlsSeparatorColor","brandTextareaStyle","baseTextareaStyle","textarea","Textarea","omit","maxLength","placeholder","required","autosize","cols","rows","maxRows","tRows","setRows","onChangeHandler","useCallback","HTMLTextAreaElement","rect","getBoundingClientRect","lh","getComputedStyle","numberOfLines","shouldForwardFormInputLabelProp","Caption","FormInputLabel","Styled.Caption","DEFAULT_MASK","INITIAL_MASK","COUNTRY_DATA","REGEXPS","FILLED","FROM_8","FROM_9","NOT_NUMBERS","onlyNumbers","InputPhone","_this","autocorrectOf8","autocorrectOf9","getUpdates","prevValue","countryData","defaultMask","initialMask","numbers","mask","regexp","startsFrom8","startsFrom9","isRussian","startsWith","change","handleChange","stripValue","_e","beforeMaskedValueChange","newState","oldState","selection","nextProps","forwardedRef","_controls$additional","_controls$number","marginXXS","marginTopXXS","marginRightXXS","marginBottomXXS","marginLeftXXS","widthXXS","inputRef","additionalControlIcon","additionalControlIconProps","additionalControlButtonProps","additional","numberControlIcon","numberControlIconProps","numberControlButtonProps","number","minus","minusButtonProps","plusButtonProps","useImperativeHandle","hasInitValue","defaultValue","setActive","hasValue","setHasValue","minusDisabled","setMinusDisabled","min","Infinity","initValue","parseFloat","initDefaultValue","minValue","plusDisabled","setPlusDisabled","max","maxValue","onFocus","onBlur","currentValue","minValueReached","maxValueReached","Styled.InputControl","prev","stepDown","Event","bubbles","dispatchEvent","err","console","stepUp","Phone","shouldForwardInputRadioProp","backgroundColorChecked","borderColorChecked","colorChecked","backgroundColorDisabledChecked","borderColorDisabledChecked","colorDisabledChecked","InputRadio","Styled.InputMask","sizeRadio","Group","Radio","uncontrolled","baseClassName","_labelClassName","log","Styled.Group","shouldForwardInputCheckboxProp","InputChecked","strokeLinejoin","InputIndeterminate","indeterminate","InputCheckbox","Styled.InputIndeterminate","Styled.InputChecked","_rect","_g","DEFAULT_SIZES","extraSmall","small","medium","large","extraLarge","BRAND_SIZES","STATIC_SIZES","Background","DefaultMask","BrandMask","CheckIcon","bg","bgChecked","borderHover","outlineFocus","templateBackground","borderChecked","bgHover","beforeBgHover","PRESET","regular","PRESET_DEFAULT","labelClassName","Styled.Background","Styled.BrandMask","Styled.CheckIcon","Styled.DefaultMask","fadeIn","spin","Select","reactSelectProps","loadOptions","allowCreate","AsyncCreatable","Async","Creatable","ReactSelect","promptTextCreator","searchable","clearable","addLabelText","backspaceToRemoveMessage","clearAllText","clearValueText","noResultsText","searchPromptText","loadingPlaceholder","autoload","shouldForwardFormLabelProp","HintButton","hintTemplate","hintColor","hintBackgroundColor","hintColorHover","hintBackgroundColorHover","hintColorActive","hintBackgroundColorActive","hintColorDisabled","hintBackgroundColorDisabled","FormLabel","hint","control","sizeProps","stateProps","hintTextProps","hintIconProps","Styled.HintButton","SIZES_LANDSCAPE","shouldForwardPopoverComponentProp","MediaLandscape","Media","aspectRatio","Footer","orientation","controlsDirection","mediaPlaceholderColor","Header","Video","closeTemplate","closeBackgroundColor","closeBackgroundColorHover","closeBackgroundColorActive","closeBackgroundColorDisabled","PopoverComponent","_controls$secondary","_controls$primary","badge","captionProps","media","badgeProps","imgProps","videoProps","secondaryButtonText","secondaryButtonProps","primaryButtonText","primaryButtonProps","Styled.MediaLandscape","Styled.Media","alt","Styled.Video","controlsList","disablePictureInPicture","Styled.Container","Styled.Header","Styled.Footer","Popover","_restProps$component","shouldForwardListItemProp","mediaBorderRadius","schemaVariant","Img","img","Ellipsis","ListItem","controlPosition","captionPosition","addon","rootType","controlProps","textBaseProps","captionBaseProps","Styled.Img","Styled.Ellipsis","SIZES_SQUARE","shouldForwardIndicatorProp","pulseAnimation","Foreground","frame","pulse","pulseIterationCount","indicatorPropsWithContent","Indicator","hasContent","Styled.Foreground","mergeTheme","topLevelTheme","mergingTheme","StyledThemeProvider"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../../src/shared/utils/colors.ts","../../src/theme/colors.ts","../../src/theme/global-styled.ts","../../src/shared/enums/sizeInput.ts","../../src/shared/constants.ts","../../src/theme/colors-dark.ts","../../src/theme/themes.ts","../../src/theme/colors-light.ts","../../src/shared/utils/rel-builder.ts","../../src/mixins/screen.ts","../../src/mixins/shared.ts","../../src/mixins/responsive-property.ts","../../src/mixins/color.ts","../../src/hooks/useClassname.ts","../../src/hooks/useMergedSizes.ts","../../src/hooks/useMergedPalette.ts","../../src/hocs/withMergedProps.tsx","../../src/hooks/useMergedProps.ts","../../src/components/Icon/images/book.module.svg","../../src/components/Icon/images/blackBoard.module.svg","../../src/components/Icon/images/burger.module.svg","../../src/components/Icon/images/eye.module.svg","../../src/components/Icon/images/email.module.svg","../../src/components/Icon/images/sort.module.svg","../../src/components/Icon/images/unsort.module.svg","../../src/components/Icon/images/person.module.svg","../../src/components/Icon/images/diamond.module.svg","../../src/components/Icon/images/diamondFilled.module.svg","../../src/components/Icon/images/diamondSolid.module.svg","../../src/components/Icon/images/infoInverse.module.svg","../../src/components/Icon/images/list.module.svg","../../src/components/Icon/images/login.module.svg","../../src/components/Icon/images/logout.module.svg","../../src/components/Icon/images/fire.module.svg","../../src/components/Icon/images/camps.module.svg","../../src/components/Icon/images/cart.module.svg","../../src/components/Icon/images/clock.module.svg","../../src/components/Icon/images/clockFilled.module.svg","../../src/components/Icon/images/courses.module.svg","../../src/components/Icon/images/discount.module.svg","../../src/components/Icon/images/externat.module.svg","../../src/components/Icon/images/headphones.module.svg","../../src/components/Icon/images/priceTag.module.svg","../../src/components/Icon/images/prof.module.svg","../../src/components/Icon/images/phone.module.svg","../../src/components/Icon/images/star.module.svg","../../src/components/Icon/images/settings.module.svg","../../src/components/Icon/images/student.module.svg","../../src/components/Icon/images/target.module.svg","../../src/components/Icon/images/textbook.module.svg","../../src/components/Icon/images/trophy.module.svg","../../src/components/Icon/images/message.module.svg","../../src/components/Icon/images/wallet.module.svg","../../src/components/Icon/images/edit.module.svg","../../src/components/Icon/images/copy.module.svg","../../src/components/Icon/images/page.module.svg","../../src/components/Icon/images/print.module.svg","../../src/components/Icon/images/objective.module.svg","../../src/components/Icon/images/present.module.svg","../../src/components/Icon/images/coins.module.svg","../../src/components/Icon/icons.tsx","../../src/mixins/create-responsive-props.ts","../../src/shared/regexp.ts","../../src/shared/utils/style.ts","../../src/mixins/responsive-size.ts","../../src/components/Icon/style.ts","../../src/components/Icon/Icon.tsx","../../src/components/Icon/constants.ts","../../src/mixins/display.ts","../../src/components/ActionBtn/style.ts","../../src/components/ActionBtn/ActionBtn.tsx","../../src/hooks/use-config-priority.ts","../../src/components/Text.Heading/Text.Heading.tsx","../../src/components/Spacer/style.ts","../../src/components/Spacer/Spacer.tsx","../../src/components/Text.Ellipse/style.ts","../../src/components/Text.Ellipse/Text.Ellipse.tsx","../../src/components/Text/constants.ts","../../src/components/Text/default-constants.ts","../../src/mixins/responsive-margin.ts","../../src/components/Text/style.ts","../../src/components/Text/Text.tsx","../../src/mixins/focus.ts","../../src/components/Anchor/style.ts","../../src/components/Anchor/Anchor.tsx","../../src/components/Anchor/constants.ts","../../src/components/Button/constants.ts","../../src/components/Button/default-constants.ts","../../src/components/Button/style.ts","../../src/components/Button/Button.tsx","../../src/components/Button/hooks.ts","../../src/components/Progress.Segmented/style.ts","../../src/components/Progress.Segmented/Progress.Segmented.tsx","../../src/components/Progress.Circle/style.ts","../../src/components/Progress.Circle/Progress.Circle.tsx","../../src/components/Progress/style.ts","../../src/components/Progress/Progress.tsx","../../src/components/Alert/style.ts","../../src/components/Alert/CountdownCircle.tsx","../../src/components/Alert/utils.ts","../../src/components/Alert/Alert.tsx","../../src/components/Amount/data/index.ts","../../src/components/Amount/style.ts","../../src/components/Amount/Amount.tsx","../../src/components/Arrow/constants.ts","../../src/components/Arrow/default-constants.ts","../../src/components/Arrow/style.ts","../../src/components/Arrow/Arrow.tsx","../../src/components/ArrowBadge/images/arrow.module.svg","../../src/components/ArrowBadge/images/rectangle.module.svg","../../src/components/ArrowBadge/images/fancy.module.svg","../../src/components/ArrowBadge/style.ts","../../src/components/ArrowBadge/ArrowBadge.tsx","../../src/components/ArrowBadge/constants.ts","../../src/components/Skeleton/style.ts","../../src/components/Skeleton/Skeleton.tsx","../../src/components/Avatar/constants.ts","../../src/components/Avatar/default-constants.ts","../../src/components/Avatar/style.ts","../../src/components/Avatar/Avatar.tsx","../../src/components/Avatar/utils.ts","../../src/components/Badge/style.ts","../../src/components/Badge/constants.ts","../../src/components/Badge/Badge.tsx","../../src/components/Container/style.ts","../../src/components/Container/Container.tsx","../../src/components/Modal/style.ts","../../src/components/Modal/adapter.tsx","../../src/components/Modal/Modal.tsx","../../src/components/Modal/Close.tsx","../../src/components/Paper/style.ts","../../src/components/Paper/Paper.tsx","../../src/components/Scrollable/Scrollable.tsx","../../src/components/Section/style.ts","../../src/components/Section/Section.tsx","../../src/components/Separator/style.ts","../../src/components/Separator/Separator.tsx","../../src/components/Separator/SeparatorText.tsx","../../src/components/Spinner/style.ts","../../src/components/Spinner/Spinner.tsx","../../src/components/Switcher/constants.ts","../../src/components/Switcher/style.ts","../../src/components/Switcher/Switcher.tsx","../../src/components/Tab/constants.ts","../../src/components/Tab/default-constants.ts","../../src/components/Tab/images/arrow.module.svg","../../src/components/Tab/style.ts","../../src/components/Tab/Tab.tsx","../../src/components/Tabs/style.ts","../../src/components/Tabs/Tabs.tsx","../../src/components/TooltipComponent/constants.ts","../../src/components/TooltipComponent/style.ts","../../src/components/TooltipComponent/TooltipComponent.tsx","../../src/components/Tooltip/TooltipWrapper.tsx","../../src/hooks/useKeyboardListener.ts","../../src/components/Tooltip/default-constants.ts","../../src/components/Tooltip/Tooltip.tsx","../../src/components/Tag/style.ts","../../src/components/Tag/Tag.tsx","../../src/components/ContextMenu.Multilevel/style.ts","../../src/components/ContextMenu.Multilevel/Heading.tsx","../../src/components/ContextMenu.Multilevel/SubHeading.tsx","../../src/components/ContextMenu.Multilevel/Controls.tsx","../../src/components/ContextMenu.Multilevel/ContextMenu.Multilevel.tsx","../../src/components/ContextMenu/style.ts","../../src/components/ContextMenu/Item.tsx","../../src/components/ContextMenu/ContextMenu.tsx","../../src/components/ContextMenu/tooltip-styles.ts","../../src/components/Input/helpers.ts","../../src/components/Input/style.ts","../../src/components/Textarea/style.ts","../../src/components/Textarea/Textarea.tsx","../../src/components/FormInputLabel/constants.ts","../../src/components/FormInputLabel/style.ts","../../src/components/FormInputLabel/FormInputLabel.tsx","../../src/components/Input.Phone/constants.ts","../../src/components/Input.Phone/Input.Phone.tsx","../../src/components/Input/Input.tsx","../../src/components/InputRadio/style.ts","../../src/components/InputRadio/InputRadio.tsx","../../src/components/InputRadio/constants.ts","../../src/components/Radio/style.ts","../../src/components/Radio/Radio.tsx","../../src/components/InputCheckbox/images/checked.module.svg","../../src/components/InputCheckbox/images/indeterminate.module.svg","../../src/components/Radio/Group.tsx","../../src/components/InputCheckbox/style.ts","../../src/components/InputCheckbox/InputCheckbox.tsx","../../src/components/InputCheckbox/constants.ts","../../src/components/Checkbox/images/check-default.module.svg","../../src/components/Checkbox/images/check.module.svg","../../src/components/Checkbox/style.ts","../../src/components/Checkbox/Checkbox.tsx","../../src/components/Checkbox/Group.tsx","../../src/components/Select/style.ts","../../src/components/Select/Select.tsx","../../src/components/FormLabel/style.ts","../../src/components/FormLabel/FormLabel.tsx","../../src/components/FormLabel/constants.ts","../../src/components/PopoverComponent/constants.ts","../../src/components/PopoverComponent/style.ts","../../src/components/PopoverComponent/PopoverComponent.tsx","../../src/components/Popover/Popover.tsx","../../src/components/ListItem/style.ts","../../src/components/ListItem/ListItem.tsx","../../src/components/ListItem/constants.ts","../../src/components/Indicator/constants.ts","../../src/components/Indicator/style.ts","../../src/components/Indicator/Indicator.tsx","../../src/theme/theme-provider.tsx","../../src/mixins/vAlign.ts"],"sourcesContent":["const allowedHexColorCodes = /^#?([0-9a-fA-F]{3}){1,2}$/\nconst getHexCodePattern = (groupLength: number) => new RegExp(`([A-Fa-f0-9]){${groupLength}}`, 'g')\n\n/**\n * Converts HEX color code to RGB(A) string\n *\n * @export\n * @param {string} HEX color with length of either 3 or 6 (can be with or without '#' sign)\n * @param {Number} alpha channel which specifies the opacity of the color\n * @returns {String} RGB(A) string\n */\nexport function hexToRgbA(hex: string, alpha?: number): string {\n if (!allowedHexColorCodes.test(hex)) {\n throw new Error(`Provided HEX color code \"${hex}\" is incorrect`)\n }\n\n const codeGroupLength = Math.floor(hex.length / 3)\n const hexCodePattern = getHexCodePattern(codeGroupLength)\n const [r, g, b] = [...hex.matchAll(hexCodePattern)].map(([code]) => parseInt(code.padEnd(2, code), 16))\n\n if (typeof alpha === 'number') {\n return `rgba(${r}, ${g}, ${b}, ${alpha})`\n }\n\n return `rgb(${r}, ${g}, ${b})`\n}\n\n/**\n * Checks if value is HEX color\n *\n * @export\n * @param {string} HEX color with length of either 3 or 6 (can be with or without '#' sign)\n * @returns {boolean}\n */\nexport function isHex(hex: string): boolean {\n return allowedHexColorCodes.test(hex)\n}\n","import type { CSSColor } from 'shared/types'\n\n/* eslint-disable no-unused-vars */\nexport enum DefaultColorNames {\n white = 'white',\n black = 'black',\n tundora = 'tundora',\n paleSky = 'paleSky',\n bostonBlue = 'bostonBlue',\n atlantisBrightly = 'atlantisBrightly',\n cinnabar = 'cinnabar',\n sail = 'sail',\n bittersweet = 'bittersweet',\n turquoise = 'turquoise',\n dodgerBlue = 'dodgerBlue',\n mantis = 'mantis',\n azure = 'azure',\n bahamaBlue = 'bahamaBlue',\n shamrock = 'shamrock',\n olive = 'olive',\n copperRose = 'copperRose',\n cyan = 'cyan',\n plum = 'plum',\n hokeyPokey = 'hokeyPokey',\n monaLisa = 'monaLisa',\n mariner = 'mariner',\n heliotrope = 'heliotrope',\n dandelion = 'dandelion',\n fruitSalad = 'fruitSalad',\n fuchsiaBlue = 'fuchsiaBlue',\n persianGreen = 'persianGreen',\n watermelon = 'watermelon',\n tropaz = 'tropaz',\n lima = 'lima',\n mintTulip = 'mintTulip',\n carnationPink = 'carnationPink',\n paleRose = 'paleRose',\n deYork = 'deYork',\n peppermint = 'peppermint',\n cornflowerBlue = 'cornflowerBlue',\n colonialWhite = 'colonialWhite',\n cherokee = 'cherokee',\n supernova = 'supernova',\n picasso = 'picasso',\n bilobaFlower = 'bilobaFlower',\n linkWater = 'linkWater',\n mineShaft = 'mineShaft',\n silver = 'silver',\n alto = 'alto',\n mercury = 'mercury',\n wildSand = 'wildSand',\n whiteGray = 'whiteGray',\n alabaster = 'alabaster',\n whiteLilac = 'whiteLilac',\n atlantis = 'atlantis',\n yellowOrange = 'yellowOrange',\n mystic = 'mystic',\n pomegranate = 'pomegranate',\n oliveDrab = 'oliveDrab',\n curious = 'curious',\n orangePeel = 'orangePeel',\n nebula = 'nebula',\n seaNymph = 'seaNymph',\n chromeWhite = 'chromeWhite',\n onahau = 'onahau',\n citrineWhite = 'citrineWhite',\n coralReef = 'coralReef',\n creemBrulee = 'creemBrulee',\n frangipani = 'frangipani',\n yourPink = 'yourPink',\n periwinkleGray = 'periwinkleGray',\n baliHai = 'baliHai',\n primary = 'primary',\n accent = 'accent',\n transparent = 'transparent',\n catalinaBlue = 'catalinaBlue',\n danube = 'danube',\n midnightDeep = 'midnightDeep',\n anakiva = 'anakiva',\n azureRadiance = 'azureRadiance',\n blueMarguerite = 'blueMarguerite',\n blueViolet = 'blueViolet',\n bossanova = 'bossanova',\n capeCod = 'capeCod',\n cerulean = 'cerulean',\n congressBlue = 'congressBlue',\n congressBlueLight = 'congressBlueLight',\n creamBrulee = 'creamBrulee',\n denim = 'denim',\n earlyDawn = 'earlyDawn',\n eminence = 'eminence',\n endeavour = 'endeavour',\n fern = 'fern',\n ghost = 'ghost',\n grape = 'grape',\n gunsmoke = 'gunsmoke',\n highland = 'highland',\n honeyFlower = 'honeyFlower',\n honeyFlower2 = 'honeyFlower2',\n honeyFlower3 = 'honeyFlower3',\n jagger = 'jagger',\n jordyBlue = 'jordyBlue',\n jumbo = 'jumbo',\n mediumPurple = 'mediumPurple',\n midnightBlue = 'midnightBlue',\n moodyBlue = 'moodyBlue',\n nandor = 'nandor',\n nevada = 'nevada',\n olivine = 'olivine',\n parsley = 'parsley',\n pattensBlue = 'pattensBlue',\n pattensBlueLight = 'pattensBlueLight',\n scarletGum = 'scarletGum',\n scienceBlue = 'scienceBlue',\n scienceBlue03 = 'scienceBlue03',\n seance = 'seance',\n smalt = 'smalt',\n smaltLight = 'smaltLight',\n tarawera = 'tarawera',\n toryBlue = 'toryBlue',\n toryBlueDark = 'toryBlueDark',\n dodgerBlueDark = 'dodgerBlueDark',\n chambray = 'chambray',\n chambrayDark = 'chambrayDark',\n pomegranateDark = 'pomegranateDark',\n azureRadiance2 = 'azureRadiance2',\n curiousBlue = 'curiousBlue',\n jungleGreen = 'jungleGreen',\n violetDeep = 'violetDeep',\n stormGray = 'stormGray',\n zeus = 'zeus',\n athensGray = 'athensGray',\n marinerLight = 'marinerLight',\n royalBlue = 'royalBlue',\n melrose = 'melrose',\n zircon = 'zircon',\n veniceBlue = 'veniceBlue',\n solitude = 'solitude',\n selago = 'selago',\n coconutCream = 'coconutCream',\n cinderella = 'cinderella',\n royalBlueDark = 'royalBlueDark',\n persianBlue = 'persianBlue',\n ultramarine = 'ultramarine',\n cornflowerBlueDark = 'cornflowerBlueDark',\n jungleGreenDark = 'jungleGreenDark',\n mountainMeadow = 'mountainMeadow',\n dodgerBlueDim = 'dodgerBlueDim',\n zirconDark = 'zirconDark',\n pizazz = 'pizazz',\n madison = 'madison',\n ebony = 'ebony',\n mediumRedViolet = 'mediumRedViolet',\n fruitSaladLight = 'fruitSaladLight',\n shark = 'shark',\n azureRadianceLight = 'azureRadianceLight',\n carnation = 'carnation',\n limaGreen = 'limaGreen',\n mysin = 'mysin',\n studio = 'studio',\n athsSpecial = 'athsSpecial',\n thunderbird = 'thunderbird',\n denimDark = 'denimDark',\n puertoRico = 'puertoRico',\n lochmara = 'lochmara',\n aliceBlue = 'aliceBlue',\n perano = 'perano',\n portage = 'portage',\n royalBlueDim = 'royalBlueDim',\n sailDim = 'sailDim',\n solitaire = 'solitaire',\n capeHoney = 'capeHoney',\n fairPink = 'fairPink',\n romantic = 'romantic',\n polar = 'polar',\n cruise = 'cruise',\n selagoLight = 'selagoLight',\n moonRaker = 'moonRaker',\n pippin = 'pippin',\n yourPinkDark = 'yourPinkDark',\n peppermintLight = 'peppermintLight',\n fringyFlower = 'fringyFlower',\n heliotropeDark = 'heliotropeDark',\n pictonBlue = 'pictonBlue',\n mediumPurpleRed = 'mediumPurpleRed',\n scooter = 'scooter',\n chambrayDim = 'chambrayDim',\n dodgerBlueLight = 'dodgerBlueLight',\n selectiveYellow = 'selectiveYellow',\n scienceBlueDark = 'scienceBlueDark',\n dodgerBlueDeep = 'dodgerBlueDeep',\n kashmirBlue = 'kashmirBlue',\n turbo = 'turbo',\n denimDim = 'denimDim',\n orangeRoughy = 'orangeRoughy',\n selagoDim = 'selagoDim',\n congressBlueNight = 'congressBlueNight',\n azureRadianceMedium = 'azureRadianceMedium',\n honeyFlowerDim = 'honeyFlowerDim',\n jaguar = 'jaguar',\n kournikova = 'kournikova',\n drover = 'drover',\n flamingo = 'flamingo',\n mineShaftDim = 'mineShaftDim',\n periwinkle = 'periwinkle',\n colonialWhiteDim = 'colonialWhiteDim',\n pattensBlueDeep = 'pattensBlueDeep',\n solitudeDim = 'solitudeDim',\n periwinkleDim = 'periwinkleDim',\n rioGrande = 'rioGrande',\n kournikovaDim = 'kournikovaDim',\n}\n\nexport enum BaseColorNames {\n 'content-onmain-primary' = 'content-onmain-primary',\n 'content-onmain-secondary' = 'content-onmain-secondary',\n 'content-onmain-tertiary' = 'content-onmain-tertiary',\n 'content-onmain-inverse' = 'content-onmain-inverse',\n 'content-oncolor-primary' = 'content-oncolor-primary',\n 'content-oncolor-secondary' = 'content-oncolor-secondary',\n 'content-oncolor-tertiary' = 'content-oncolor-tertiary',\n 'content-oncolor-inverse' = 'content-oncolor-inverse',\n 'content-oncolor-constant' = 'content-oncolor-constant',\n 'content-disabled' = 'content-disabled',\n 'content-oncolor-disabled' = 'content-oncolor-disabled',\n 'content-oncolor-hover' = 'content-oncolor-hover',\n 'content-onmain-hover' = 'content-onmain-hover',\n 'content-discount' = 'content-discount',\n 'content-link' = 'content-link',\n 'border-onmain-default-large' = 'border-onmain-default-large',\n 'border-onmain-default-small' = 'border-onmain-default-small',\n 'border-onmain-contrast' = 'border-onmain-contrast',\n 'border-disabled' = 'border-disabled',\n 'border-focus' = 'border-focus',\n 'border-oncolor-disabled' = 'border-oncolor-disabled',\n 'border-oncolor-default' = 'border-oncolor-default',\n 'bg-onmain-main' = 'bg-onmain-main',\n 'bg-onmain-primary' = 'bg-onmain-primary',\n 'bg-onmain-secondary' = 'bg-onmain-secondary',\n 'bg-onmain-tertiary' = 'bg-onmain-tertiary',\n 'bg-onmain-divider' = 'bg-onmain-divider',\n 'bg-onmain-contrast' = 'bg-onmain-contrast',\n 'bg-onmain-inverse' = 'bg-onmain-inverse',\n 'bg-oncolor-primary' = 'bg-oncolor-primary',\n 'bg-oncolor-secondary' = 'bg-oncolor-secondary',\n 'bg-oncolor-tertiary' = 'bg-oncolor-tertiary',\n 'bg-oncolor-hover' = 'bg-oncolor-hover',\n 'bg-disabled-large' = 'bg-disabled-large',\n 'bg-disabled-small' = 'bg-disabled-small',\n 'bg-disabled-active' = 'bg-disabled-active',\n 'bg-oncolor-disabled' = 'bg-oncolor-disabled',\n 'bg-contrast-active' = 'bg-contrast-active',\n 'bg-oncontrast-hover' = 'bg-oncontrast-hover',\n 'alert-bg-success-100' = 'alert-bg-success-100',\n 'alert-bg-success-200' = 'alert-bg-success-200',\n 'alert-bg-success-500' = 'alert-bg-success-500',\n 'alert-bg-warning-100' = 'alert-bg-warning-100',\n 'alert-bg-warning-200' = 'alert-bg-warning-200',\n 'alert-bg-warning-500' = 'alert-bg-warning-500',\n 'alert-bg-error-100' = 'alert-bg-error-100',\n 'alert-bg-error-200' = 'alert-bg-error-200',\n 'alert-bg-error-500' = 'alert-bg-error-500',\n 'alert-success' = 'alert-success',\n 'alert-warning' = 'alert-warning',\n 'alert-error' = 'alert-error',\n 'product-bg-course' = 'product-bg-course',\n 'product-bg-tutor' = 'product-bg-tutor',\n 'product-bg-group' = 'product-bg-group',\n 'product-bg-complect' = 'product-bg-complect',\n 'skeleton-onmain-primary' = 'skeleton-onmain-primary',\n 'skeleton-onmain-secondary' = 'skeleton-onmain-secondary',\n 'skeleton-gradient-from-color-onmain' = 'skeleton-gradient-from-color-onmain',\n 'skeleton-gradient-to-color-onmain' = 'skeleton-gradient-to-color-onmain',\n 'skeleton-oncolor-primary' = 'skeleton-oncolor-primary',\n 'skeleton-oncolor-secondary' = 'skeleton-oncolor-secondary',\n 'skeleton-gradient-from-color-oncolor' = 'skeleton-gradient-from-color-oncolor',\n 'skeleton-gradient-to-color-oncolor' = 'skeleton-gradient-to-color-oncolor',\n}\n\nexport enum BrandColorNames {\n 'content-brand-primary' = 'content-brand-primary',\n 'content-brand-secondary' = 'content-brand-secondary',\n 'border-brand-primary' = 'border-brand-primary',\n 'border-brand-secondary' = 'border-brand-secondary',\n 'border-brand-primary-hover' = 'border-brand-primary-hover',\n 'border-brand-primary-active' = 'border-brand-primary-active',\n 'bg-brand-primary-basic' = 'bg-brand-primary-basic',\n 'bg-brand-primary-100' = 'bg-brand-primary-100',\n 'bg-brand-primary-200' = 'bg-brand-primary-200',\n 'bg-brand-primary-400' = 'bg-brand-primary-400',\n 'bg-brand-primary-500' = 'bg-brand-primary-500',\n 'bg-brand-secondary-basic' = 'bg-brand-secondary-basic',\n 'bg-brand-secondary-100' = 'bg-brand-secondary-100',\n 'bg-brand-secondary-200' = 'bg-brand-secondary-200',\n 'bg-brand-secondary-400' = 'bg-brand-secondary-400',\n 'bg-brand-secondary-500' = 'bg-brand-secondary-500',\n 'bg-brand-tertiary-100' = 'bg-brand-tertiary-100',\n 'bg-brand-tertiary-200' = 'bg-brand-tertiary-200',\n 'bg-brand-quaternary-100' = 'bg-brand-quaternary-100',\n 'bg-brand-quaternary-200' = 'bg-brand-quaternary-200',\n 'bg-brand-quaternary-400' = 'bg-brand-quaternary-400',\n 'bg-brand-quaternary-500' = 'bg-brand-quaternary-500',\n 'bg-brand-primary-basic-active' = 'bg-brand-primary-basic-active',\n 'bg-brand-primary-100-active' = 'bg-brand-primary-100-active',\n 'bg-brand-primary-100-hover' = 'bg-brand-primary-100-hover',\n}\n\nexport enum SocialColorNames {\n facebook = 'facebook',\n twitter = 'twitter',\n youtube = 'youtube',\n instagrammagenta = 'instagrammagenta',\n instagramblue = 'instagramblue',\n instagrampurple = 'instagrampurple',\n instagramorange = 'instagramorange',\n instagramyellow = 'instagramyellow',\n pinterest = 'pinterest',\n googleplus = 'googleplus',\n linkedin = 'linkedin',\n vimeoblue = 'vimeoblue',\n vimeogreen = 'vimeogreen',\n vimeoorange = 'vimeoorange',\n vimeopink = 'vimeopink',\n tumblr = 'tumblr',\n snapchat = 'snapchat',\n whatsappgreen = 'whatsappgreen',\n whatsappteal1 = 'whatsappteal1',\n whatsappteal2 = 'whatsappteal2',\n foursquarepink = 'foursquarepink',\n foursquareblue = 'foursquareblue',\n swarm = 'swarm',\n skypeblue = 'skypeblue',\n skypegreen = 'skypegreen',\n android = 'android',\n stumbleupon = 'stumbleupon',\n flickrpink = 'flickrpink',\n flickrblue = 'flickrblue',\n yahoo = 'yahoo',\n soundcloud = 'soundcloud',\n spotifygreen = 'spotifygreen',\n spotifydarkgreen = 'spotifydarkgreen',\n dribbble = 'dribbble',\n reddit = 'reddit',\n deviantart = 'deviantart',\n pocket = 'pocket',\n quora = 'quora',\n quorablue = 'quorablue',\n slideshareorange = 'slideshareorange',\n slideshareblue = 'slideshareblue',\n telegram = 'telegram',\n fivehundredpx = 'fivehundredpx',\n listlyorange = 'listlyorange',\n listlyblue = 'listlyblue',\n vine = 'vine',\n vk = 'vk',\n ok = 'ok',\n mailru = 'mailru',\n}\n\nexport const socialColors: Record<SocialColorNames, CSSColor> = Object.freeze({\n facebook: '#0561af',\n twitter: '#00bff3',\n youtube: '#ff0000',\n instagrammagenta: '#c32aa3',\n instagramblue: '#4c5fd7',\n instagrampurple: '#7232bd',\n instagramorange: '#f46f30',\n instagramyellow: '#ffdc7d',\n pinterest: '#cb2027',\n googleplus: '#df4a32',\n linkedin: '#007bb6',\n vimeoblue: '#45bbff',\n vimeogreen: '#aad450',\n vimeoorange: '#f7b42c',\n vimeopink: '#f27490',\n tumblr: '#2c4762',\n snapchat: '#fffc00',\n whatsappgreen: '#25d366',\n whatsappteal1: '#075e54',\n whatsappteal2: '#128c7e',\n foursquarepink: '#fc4575',\n foursquareblue: '#2d5be3',\n swarm: '#ffb000',\n skypeblue: '#00aff0',\n skypegreen: '#7fba00',\n android: '#a4c639',\n stumbleupon: '#eb4924',\n flickrpink: '#f40083',\n flickrblue: '#006add',\n yahoo: '#430297',\n soundcloud: '#ff5500',\n spotifygreen: '#1ed760',\n spotifydarkgreen: '#1db954',\n dribbble: '#ea4c89',\n reddit: '#ff5700',\n deviantart: '#4a5d4e',\n pocket: '#ee4056',\n quora: '#aa2200',\n quorablue: '#2b6dad',\n slideshareorange: '#f7941e',\n slideshareblue: '#1191d0',\n telegram: '#0088cc',\n fivehundredpx: '#0099e5',\n listlyorange: '#df6d46',\n listlyblue: '#52b1b3',\n vine: '#00b489',\n vk: '#4d75a2',\n ok: '#ee8208',\n mailru: '#158DE2',\n})\n\nexport const colors: Record<DefaultColorNames, CSSColor> = Object.freeze({\n white: '#ffffff',\n black: '#000000',\n tundora: '#4a4a4a',\n paleSky: '#697389',\n bostonBlue: '#0060d0',\n atlantisBrightly: '#99cc33',\n cinnabar: '#e00000',\n sail: '#a9dbf8',\n bittersweet: '#ff6666',\n turquoise: '#33cccc',\n dodgerBlue: '#33ccff',\n mantis: '#66cc66',\n azure: '#336699',\n bahamaBlue: '#006699',\n shamrock: '#33cc99',\n olive: '#999900',\n copperRose: '#996666',\n cyan: '#3399ff',\n plum: '#993399',\n hokeyPokey: '#cc9933',\n monaLisa: '#ff9999',\n mariner: '#3366cc',\n heliotrope: '#cc33ff',\n dandelion: '#ffce03',\n fruitSalad: '#49a15d',\n fuchsiaBlue: '#8d58bc',\n persianGreen: '#009999',\n watermelon: '#ff4679',\n tropaz: '#2863a8',\n lima: '#5fd0da',\n mintTulip: '#bfecf0',\n carnationPink: '#ffa6ce',\n paleRose: '#ffdcec',\n deYork: '#82d180',\n peppermint: '#cdedcc',\n cornflowerBlue: '#62aee9',\n colonialWhite: '#fdedd2',\n cherokee: '#fbd291',\n supernova: '#ffce03',\n picasso: '#ffeb9a',\n bilobaFlower: '#9fafe9',\n linkWater: '#d8dff6',\n transparent: 'transparent',\n mineShaft: '#333333',\n silver: '#b8b8b8',\n alto: '#d4d4d4',\n mercury: '#e9e9e9',\n wildSand: '#f6f6f6',\n whiteGray: '#eaeaea',\n alabaster: '#f8f8f8',\n whiteLilac: '#F6F7FB',\n atlantis: '#7fc92e',\n yellowOrange: '#ffb334',\n mystic: '#dcdfea',\n pomegranate: '#f94b28',\n oliveDrab: '#6ca82a',\n curious: '#007CEE',\n orangePeel: '#ff9900',\n nebula: '#d8e6e2',\n seaNymph: '#7ca79b',\n chromeWhite: '#daefc9',\n onahau: '#c6e6ff',\n citrineWhite: '#faf3dd',\n coralReef: '#c9c1a6',\n creemBrulee: '#ffe89e',\n frangipani: '#ffdcb5',\n yourPink: '#ffc2c2',\n periwinkleGray: '#d4d9ee',\n baliHai: '#8890b4',\n primary: '#ff732b',\n accent: '#1A96F6',\n catalinaBlue: '#023178',\n danube: '#759BD7',\n midnightDeep: '#00276E',\n anakiva: '#86caff',\n azureRadiance: '#007cee',\n blueMarguerite: '#6c6ace',\n blueViolet: '#5958b4',\n bossanova: '#4c2864',\n capeCod: '#3f4d4d',\n cerulean: '#00a6de',\n congressBlue: '#004484',\n congressBlueLight: '#00498f',\n creamBrulee: '#ffe89e',\n denim: '#117bdc',\n earlyDawn: '#FFFAEA',\n eminence: '#57296F',\n endeavour: '#0055a4',\n fern: '#6fb66e',\n ghost: '#c9C7d8',\n grape: '#4A1E61',\n gunsmoke: '#818f8f',\n highland: '#619b62',\n honeyFlower: '#4f196a',\n honeyFlower2: '#531C70',\n honeyFlower3: '#5F2280',\n jagger: '#3B0F52',\n jordyBlue: '#82beed',\n jumbo: '#88888c',\n mediumPurple: '#8f48e6',\n midnightBlue: '#032b66',\n moodyBlue: '#7a78d7',\n nandor: '#475757',\n nevada: '#657171',\n olivine: '#a4ca8a',\n parsley: '#12522D',\n pattensBlue: '#d4ebfe',\n pattensBlueLight: '#d8eeff',\n scarletGum: '#3e1354',\n scienceBlue: '#0068c9',\n scienceBlue03: 'rgba(0, 104, 201, 0.3)',\n seance: '#68278a',\n smalt: '#00378a',\n smaltLight: '#003b95',\n tarawera: '#0a3859',\n toryBlue: '#1259a6',\n toryBlueDark: '#144da3',\n dodgerBlueDark: '#2787f5',\n chambray: '#3b589e',\n chambrayDark: '#324b86',\n pomegranateDark: '#FC3F1D',\n azureRadiance2: '#0077ff',\n curiousBlue: '#229ed9',\n jungleGreen: '#2db05a',\n violetDeep: '#8950E6',\n stormGray: '#6E707C',\n zeus: '#2C2620',\n athensGray: '#F5F6F9',\n marinerLight: '#297DCB',\n royalBlue: '#5674DF',\n melrose: '#9CAFFD',\n zircon: '#F2F5FF',\n veniceBlue: '#05528E',\n solitude: '#EBF7FF',\n selago: '#E6EBFC',\n coconutCream: '#EDF8DE',\n cinderella: '#FEE8DE',\n royalBlueDark: '#5157ed',\n persianBlue: '#3a11db',\n ultramarine: '#2705ae',\n cornflowerBlueDark: '#6d73ff',\n jungleGreenDark: '#2faa73',\n mountainMeadow: '#17be73',\n dodgerBlueDim: '#1a96f6',\n zirconDark: '#ebefff',\n pizazz: '#FF8A00',\n madison: '#0A2E64',\n ebony: '#120F21',\n mediumRedViolet: '#CC2E8D',\n fruitSaladLight: '#63AB4F',\n shark: '#25262C',\n azureRadianceLight: '#0f90f4',\n carnation: '#F46868',\n limaGreen: '#72BC21',\n mysin: '#FFAB1F',\n studio: '#563FBA',\n athsSpecial: '#EAE2CA',\n thunderbird: '#cf3d17',\n denimDark: '#0b71bf',\n puertoRico: '#36c0b0',\n lochmara: '#087ad3',\n aliceBlue: '#eff7ff',\n perano: '#b4baef',\n portage: '#8785e6',\n royalBlueDim: '#3C75E5',\n sailDim: '#baddf8',\n solitaire: '#fef6e9',\n capeHoney: '#fee2b3',\n fairPink: '#ffeee6',\n romantic: '#ffd5c2',\n polar: '#dff5f7',\n cruise: '#b9eaee',\n selagoLight: '#f3f4fd',\n moonRaker: '#c4cef4',\n pippin: '#ffe0e0',\n yourPinkDark: '#ffbbbb',\n peppermintLight: '#e6f6e5',\n fringyFlower: '#c8ebc7',\n heliotropeDark: '#9C6DFF',\n pictonBlue: '#48A1E6',\n mediumPurpleRed: '#8C7AE8',\n scooter: '#3BC9DC',\n chambrayDim: '#393C9E',\n dodgerBlueLight: '#1C78FF',\n selectiveYellow: '#ffb800',\n scienceBlueDark: '#005dcf',\n dodgerBlueDeep: '#29A2FF',\n kashmirBlue: '#4C7191',\n turbo: '#ffe603',\n denimDim: '#0C71BF',\n orangeRoughy: '#CF4D17',\n selagoDim: '#EFF7FD',\n congressBlueNight: '#01488A',\n azureRadianceMedium: '#0988eb',\n honeyFlowerDim: '#501A6B',\n jaguar: '#160420',\n kournikova: '#fde57e',\n drover: '#FCEBA4',\n flamingo: '#EF5436',\n mineShaftDim: '#252525',\n periwinkle: '#d3ddff',\n colonialWhiteDim: '#feefbb',\n pattensBlueDeep: '#d7edff',\n solitudeDim: '#e8f5ff',\n periwinkleDim: '#ccdaff',\n rioGrande: '#afdb00',\n kournikovaDim: '#ffde7a',\n})\n\nexport enum UnitColorNames {\n profession = 'profession',\n professionDark = 'professionDark',\n camps = 'camps',\n campsDark = 'campsDark',\n courses = 'courses',\n coursesDark = 'coursesDark',\n openLesson = 'openLesson',\n openLessonDark = 'openLessonDark',\n externat = 'externat',\n externatDark = 'externatDark',\n olympiad = 'olympiad',\n olympiadDark = 'olympiadDark',\n textbook = 'textbook',\n textbookDark = 'textbookDark',\n tutors = 'tutors',\n tutorsDark = 'tutorsDark',\n training = 'training',\n trainingDark = 'trainingDark',\n mathematics = 'mathematics',\n physics = 'physics',\n informatics = 'informatics',\n chemistry = 'chemistry',\n biology = 'biology',\n english = 'english',\n russian = 'russian',\n history = 'history',\n society = 'society',\n geography = 'geography',\n developing = 'developing',\n literature = 'literature',\n intersubject = 'intersubject',\n primarySchool = 'primarySchool',\n recommended = 'recommended',\n astronomy = 'astronomy',\n ecology = 'ecology',\n technology = 'technology',\n languages = 'languages',\n art = 'art',\n physicalCulture = 'physicalCulture',\n logic = 'logic',\n businessLogic = 'businessLogic',\n rap = 'rap',\n ikt = 'ikt',\n kids = 'kids',\n fgos = 'fgos',\n blue = 'blue',\n red = 'red',\n green = 'green',\n grey = 'grey',\n darkgrey = 'darkgrey',\n lightgrey = 'lightgrey',\n superlightgrey = 'superlightgrey',\n}\n\nexport const unitColors: Record<UnitColorNames, CSSColor> = Object.freeze({\n profession: colors.mintTulip,\n professionDark: colors.lima,\n camps: colors.chromeWhite,\n campsDark: colors.atlantis,\n courses: colors.onahau,\n coursesDark: colors.cornflowerBlue,\n openLesson: colors.colonialWhite,\n openLessonDark: colors.cherokee,\n externat: colors.paleRose,\n externatDark: colors.carnationPink,\n olympiad: colors.yourPink,\n olympiadDark: colors.bittersweet,\n textbook: colors.picasso,\n textbookDark: colors.supernova,\n tutors: colors.linkWater,\n tutorsDark: colors.bilobaFlower,\n training: colors.peppermint,\n trainingDark: colors.deYork,\n mathematics: colors.orangePeel,\n physics: colors.curious,\n informatics: colors.turquoise,\n chemistry: colors.shamrock,\n biology: colors.mantis,\n english: colors.bittersweet,\n russian: colors.dodgerBlue,\n history: colors.bahamaBlue,\n society: colors.primary,\n geography: colors.copperRose,\n developing: colors.olive,\n literature: colors.cyan,\n intersubject: colors.plum,\n primarySchool: colors.hokeyPokey,\n recommended: colors.monaLisa,\n astronomy: colors.mariner,\n ecology: colors.atlantisBrightly,\n technology: colors.turquoise,\n languages: colors.bittersweet,\n art: colors.heliotrope,\n physicalCulture: colors.olive,\n logic: colors.dandelion,\n businessLogic: colors.fruitSalad,\n rap: colors.fuchsiaBlue,\n ikt: colors.persianGreen,\n kids: colors.watermelon,\n fgos: colors.tropaz,\n blue: colors.accent,\n red: colors.pomegranate,\n green: colors.atlantis,\n grey: colors.silver,\n darkgrey: colors.mineShaft,\n lightgrey: colors.alto,\n superlightgrey: colors.mercury,\n})\n\nexport const ColorNames = {\n ...DefaultColorNames,\n ...SocialColorNames,\n ...UnitColorNames,\n ...BaseColorNames,\n ...BrandColorNames,\n}\n","import { createGlobalStyle, css } from 'styled-components'\nimport { colors, socialColors, unitColors } from './colors'\n\nconst _colors = Object.keys(colors).map((colorName) => css`--${colorName}: ${colors[colorName]};`)\nconst _socialColors = Object.keys(socialColors).map((colorName) => css`--${colorName}: ${socialColors[colorName]};`)\nconst _unitColors = Object.keys(unitColors).map((colorName) => css`--${colorName}: ${unitColors[colorName]};`)\n\nexport const UiGlobalStyles = createGlobalStyle`\n #react-floater-portal {\n position: relative;\n }\n :root {\n ${_colors}\n ${_socialColors}\n ${_unitColors}\n }\n`\n","/* eslint-disable no-unused-vars */\nexport enum SizeInput {\n l = 380,\n m = 300,\n s = 220,\n xs = 140,\n}\n","import type { Breakpoint } from 'shared/types'\n\nexport const BREAKPOINTS: Readonly<Record<Lowercase<Breakpoint>, number>> = {\n xl: 1440,\n l: 1280,\n m: 1024,\n s: 768,\n xs: 374,\n xxs: 320,\n}\n","import type { CSSColor } from 'shared/types'\nimport { BaseColorNames, BrandColorNames } from './colors'\n\nexport const baseColors: Readonly<Record<BaseColorNames, CSSColor>> = {\n 'content-onmain-primary': '#f5f6f9',\n 'content-onmain-secondary': '#9698a6',\n 'content-onmain-tertiary': '#848694',\n 'content-onmain-inverse': '#25262C',\n 'content-oncolor-primary': '#ffffff',\n 'content-oncolor-secondary': '#f5f6f9cc',\n 'content-oncolor-tertiary': '#f5f6f999',\n 'content-oncolor-constant': '#25262c',\n 'content-oncolor-inverse': '#f5f6f9',\n 'content-disabled': '#6e707c',\n 'content-oncolor-disabled': '#f5f6f999',\n 'content-oncolor-hover': '#00000029',\n 'content-onmain-hover': '#ffffff29',\n 'content-discount': '#f16c65',\n 'content-link': '#8aafff',\n 'border-onmain-default-large': '#25262c',\n 'border-onmain-default-small': '#44454b',\n 'border-onmain-contrast': '#f5f6f9',\n 'border-oncolor-default': '#ffffff',\n 'border-disabled': '#494a50',\n 'border-focus': '#8aafff',\n 'border-oncolor-disabled': '#ffffff66',\n 'bg-onmain-main': '#000000',\n 'bg-onmain-primary': '#121316',\n 'bg-onmain-secondary': '#1a1b1f',\n 'bg-onmain-tertiary': '#25262c',\n 'bg-onmain-divider': '#25262c',\n 'bg-onmain-contrast': '#44454b',\n 'bg-onmain-inverse': '#ffffff',\n 'bg-oncolor-primary': '#ffffff',\n 'bg-oncolor-secondary': '#ffffff3d',\n 'bg-oncolor-tertiary': '#ffffff1f',\n 'bg-disabled-large': '#1a1b1f',\n 'bg-disabled-small': '#25262c',\n 'bg-disabled-active': '#494a50',\n 'bg-contrast-active': '#f5f6f9',\n 'bg-oncolor-hover': '#00000014',\n 'bg-oncontrast-hover': '#ffffff14',\n 'bg-oncolor-disabled': '#ffffff1f',\n 'alert-bg-success-100': '#071d02',\n 'alert-bg-success-200': '#0a2603',\n 'alert-bg-success-500': '#63ab4f',\n 'alert-bg-warning-100': '#241500',\n 'alert-bg-warning-200': '#2e1c00',\n 'alert-bg-warning-500': '#f16f04',\n 'alert-bg-error-100': '#2e0100',\n 'alert-bg-error-200': '#3d0004',\n 'alert-bg-error-500': '#e4494e',\n 'alert-success': '#63ab4f',\n 'alert-warning': '#f16f04',\n 'alert-error': '#fd655d',\n 'product-bg-course': '#00222e',\n 'product-bg-tutor': '#232900',\n 'product-bg-group': '#202018',\n 'product-bg-complect': '#241500',\n 'skeleton-onmain-primary': 'rgba(255, 255, 255, 0.1)',\n 'skeleton-onmain-secondary': 'rgba(255, 255, 255, 0.06)',\n 'skeleton-gradient-from-color-onmain': 'rgba(255, 255, 255, 0)',\n 'skeleton-gradient-to-color-onmain': 'rgba(255, 255, 255, 0.07)',\n 'skeleton-oncolor-primary': 'rgba(255, 255, 255, 0.15)',\n 'skeleton-oncolor-secondary': 'rgba(255, 255, 255, 0.2)',\n 'skeleton-gradient-from-color-oncolor': 'rgba(255, 255, 255, 0)',\n 'skeleton-gradient-to-color-oncolor': 'rgba(255, 255, 255, 0.2)',\n}\n\nexport const motherColors: Readonly<Record<BrandColorNames, CSSColor>> = {\n 'content-brand-primary': '#c09eff',\n 'content-brand-secondary': '#ff8800',\n 'border-brand-primary': '#c09eff',\n 'border-brand-secondary': '#ff8800',\n 'border-brand-primary-hover': '#c09eff80',\n 'border-brand-primary-active': '#c09eff',\n 'bg-brand-primary-basic': '#8a51e6',\n 'bg-brand-primary-100': '#1b0042',\n 'bg-brand-primary-200': '#240057',\n 'bg-brand-primary-400': '#2e0066',\n 'bg-brand-primary-500': '#37007a',\n 'bg-brand-secondary-basic': '#ff9900',\n 'bg-brand-secondary-100': '#241500',\n 'bg-brand-secondary-200': '#2e1c00',\n 'bg-brand-secondary-400': '#382300',\n 'bg-brand-secondary-500': '#422900',\n 'bg-brand-tertiary-100': '#202018',\n 'bg-brand-tertiary-200': '#26261c',\n 'bg-brand-quaternary-100': '#00222e',\n 'bg-brand-quaternary-200': '#002733',\n 'bg-brand-quaternary-400': '#054457',\n 'bg-brand-quaternary-500': '#05495c',\n 'bg-brand-primary-basic-active': '#8a51e6',\n 'bg-brand-primary-100-active': '#1b0042',\n 'bg-brand-primary-100-hover': '#1b004280',\n}\n\nexport const babyColors: Readonly<Record<BrandColorNames, CSSColor>> = {\n 'content-brand-primary': '#e594c5',\n 'content-brand-secondary': '#ffd333',\n 'border-brand-primary': '#e594c5',\n 'border-brand-secondary': '#ffd333',\n 'border-brand-primary-hover': '#e594c580',\n 'border-brand-primary-active': '#e594c5',\n 'bg-brand-primary-basic': '#cc2e8d',\n 'bg-brand-primary-100': '#47002d',\n 'bg-brand-primary-200': '#570f3a',\n 'bg-brand-primary-400': '#611a43',\n 'bg-brand-primary-500': '#6b244c',\n 'bg-brand-secondary-basic': '#ffd333',\n 'bg-brand-secondary-100': '#27282a',\n 'bg-brand-secondary-200': '#313235',\n 'bg-brand-secondary-400': '#393a3c',\n 'bg-brand-secondary-500': '#3e4041',\n 'bg-brand-tertiary-100': '#1d1f58',\n 'bg-brand-tertiary-200': '#282c67',\n 'bg-brand-quaternary-100': '#241500',\n 'bg-brand-quaternary-200': '#2e1c00',\n 'bg-brand-quaternary-400': '#382300',\n 'bg-brand-quaternary-500': '#422900',\n 'bg-brand-primary-basic-active': '#cc2e8d',\n 'bg-brand-primary-100-active': '#47002d',\n 'bg-brand-primary-100-hover': '#47002d80',\n}\n\nexport const teenColors: Readonly<Record<BrandColorNames, CSSColor>> = {\n 'content-brand-primary': '#c09eff',\n 'content-brand-secondary': '#d1f00a',\n 'border-brand-primary': '#c09eff',\n 'border-brand-secondary': '#d1f00a',\n 'border-brand-primary-hover': '#c09eff80',\n 'border-brand-primary-active': '#c09eff',\n 'bg-brand-primary-basic': '#8a51e6',\n 'bg-brand-primary-100': '#1b0042',\n 'bg-brand-primary-200': '#240057',\n 'bg-brand-primary-400': '#2e0066',\n 'bg-brand-primary-500': '#37007a',\n 'bg-brand-secondary-basic': '#d1f00a',\n 'bg-brand-secondary-100': '#003309',\n 'bg-brand-secondary-200': '#093910',\n 'bg-brand-secondary-400': '#144318',\n 'bg-brand-secondary-500': '#1c4a20',\n 'bg-brand-tertiary-100': '#00224d',\n 'bg-brand-tertiary-200': '#0c315f',\n 'bg-brand-quaternary-100': '#241500',\n 'bg-brand-quaternary-200': '#2e1c00',\n 'bg-brand-quaternary-400': '#382300',\n 'bg-brand-quaternary-500': '#422900',\n 'bg-brand-primary-basic-active': '#8a51e6',\n 'bg-brand-primary-100-active': '#1b0042',\n 'bg-brand-primary-100-hover': '#1b004280',\n}\n\nexport const adultColors: Readonly<Record<BrandColorNames, CSSColor>> = {\n 'content-brand-primary': '#8fa9ff',\n 'content-brand-secondary': '#c1b8ff',\n 'border-brand-primary': '#8fa9ff',\n 'border-brand-secondary': '#c1b8ff',\n 'border-brand-primary-hover': '#8fa9ff80',\n 'border-brand-primary-active': '#8fa9ff',\n 'bg-brand-primary-basic': '#3d4eeb',\n 'bg-brand-primary-100': '#120075',\n 'bg-brand-primary-200': '#181b86',\n 'bg-brand-primary-400': '#1e2699',\n 'bg-brand-primary-500': '#2b36b6',\n 'bg-brand-secondary-basic': '#6e62bc',\n 'bg-brand-secondary-100': '#2c1461',\n 'bg-brand-secondary-200': '#351e71',\n 'bg-brand-secondary-400': '#402583',\n 'bg-brand-secondary-500': '#1b0047',\n 'bg-brand-tertiary-100': '#232900',\n 'bg-brand-tertiary-200': '#373e14',\n 'bg-brand-quaternary-100': '#241500',\n 'bg-brand-quaternary-200': '#2e1c00',\n 'bg-brand-quaternary-400': '#382300',\n 'bg-brand-quaternary-500': '#422900',\n 'bg-brand-primary-basic-active': '#3d4eeb',\n 'bg-brand-primary-100-active': '#120075',\n 'bg-brand-primary-100-hover': '#12007580',\n}\n","import type { DefaultTheme } from 'styled-components'\nimport { hexToRgbA } from 'shared/utils/colors'\nimport { relBuilder } from 'shared/utils/rel-builder'\nimport { SizeInput } from 'shared/enums/sizeInput'\nimport { BREAKPOINTS } from 'shared/constants'\nimport { colors, socialColors, unitColors } from './colors'\nimport * as ColorsLight from './colors-light'\nimport * as ColorsDark from './colors-dark'\n\nexport const defaultTheme: DefaultTheme = {\n breakpoints: BREAKPOINTS,\n colors: {\n ...colors,\n ...socialColors,\n ...unitColors,\n ...ColorsLight.baseColors,\n ...ColorsLight.motherColors,\n },\n borderRadius: '5px',\n textColor: 'mineShaft',\n fallbackColor: 'mineShaft',\n zIndex: {\n modal: 9000,\n tooltip: 80,\n },\n classNamePrefix: 'fox',\n defaultInputControlsWidth: SizeInput.l,\n utils: {\n relBuilder,\n hexToRgbA,\n },\n mode: 'light',\n preset: 'default',\n name: 'mother',\n components: {\n Arrow: {\n size: 'l',\n },\n Button: {\n size: 'm',\n },\n Checkbox: {\n size: 'm',\n },\n Tooltip: {\n preset: 'default',\n },\n },\n}\n\nexport const motherLightTheme: DefaultTheme = {\n ...defaultTheme,\n preset: 'brand',\n}\n\nexport const motherDarkTheme: DefaultTheme = {\n ...defaultTheme,\n colors: {\n ...defaultTheme.colors,\n ...ColorsDark.baseColors,\n ...ColorsDark.motherColors,\n },\n mode: 'dark',\n preset: 'brand',\n}\n\nexport const babyLightTheme: DefaultTheme = {\n ...defaultTheme,\n colors: {\n ...defaultTheme.colors,\n ...ColorsLight.babyColors,\n },\n preset: 'brand',\n name: 'baby',\n}\n\nexport const babyDarkTheme: DefaultTheme = {\n ...defaultTheme,\n colors: {\n ...defaultTheme.colors,\n ...ColorsDark.baseColors,\n ...ColorsDark.babyColors,\n },\n mode: 'dark',\n preset: 'brand',\n name: 'baby',\n}\n\nexport const teenLightTheme: DefaultTheme = {\n ...defaultTheme,\n colors: {\n ...defaultTheme.colors,\n ...ColorsLight.teenColors,\n },\n preset: 'brand',\n name: 'teen',\n}\n\nexport const teenDarkTheme: DefaultTheme = {\n ...defaultTheme,\n colors: {\n ...defaultTheme.colors,\n ...ColorsDark.baseColors,\n ...ColorsDark.teenColors,\n },\n mode: 'dark',\n preset: 'brand',\n name: 'teen',\n}\n\nexport const adultLightTheme: DefaultTheme = {\n ...defaultTheme,\n colors: {\n ...defaultTheme.colors,\n ...ColorsLight.adultColors,\n },\n preset: 'brand',\n name: 'adult',\n}\n\nexport const adultDarkTheme: DefaultTheme = {\n ...defaultTheme,\n colors: {\n ...defaultTheme.colors,\n ...ColorsDark.baseColors,\n ...ColorsDark.adultColors,\n },\n mode: 'dark',\n preset: 'brand',\n name: 'adult',\n}\n","import type { CSSColor } from 'shared/types'\nimport { BaseColorNames, BrandColorNames } from './colors'\n\nexport const baseColors: Readonly<Record<BaseColorNames, CSSColor>> = {\n 'content-onmain-primary': '#25262c',\n 'content-onmain-secondary': '#25262cb3',\n 'content-onmain-tertiary': '#25262c8c',\n 'content-onmain-inverse': '#FFFFFF',\n 'content-oncolor-primary': '#ffffff',\n 'content-oncolor-secondary': '#ecedf3cc',\n 'content-oncolor-tertiary': '#ecedf399',\n 'content-oncolor-inverse': '#25262c',\n 'content-oncolor-constant': '#25262c',\n 'content-disabled': '#9698a6',\n 'content-oncolor-disabled': '#f5f6f999',\n 'content-oncolor-hover': '#00000029',\n 'content-onmain-hover': '#ffffff29',\n 'content-discount': '#db3339',\n 'content-link': '#376af6',\n 'border-onmain-default-large': '#d5d7e1',\n 'border-onmain-default-small': '#babcc9',\n 'border-onmain-contrast': '#25262c',\n 'border-disabled': '#a6a8b5',\n 'border-focus': '#8aafff',\n 'border-oncolor-disabled': '#ffffff66',\n 'border-oncolor-default': '#ffffff',\n 'bg-onmain-main': '#f5f6f9',\n 'bg-onmain-primary': '#ffffff',\n 'bg-onmain-secondary': '#f5f6f9',\n 'bg-onmain-tertiary': '#ecedf3',\n 'bg-onmain-divider': '#d5d7e1',\n 'bg-onmain-contrast': '#25262c',\n 'bg-onmain-inverse': '#25262c',\n 'bg-oncolor-primary': '#ffffff',\n 'bg-oncolor-secondary': '#ffffff3d',\n 'bg-oncolor-tertiary': '#ffffff1f',\n 'bg-oncolor-hover': '#00000014',\n 'bg-disabled-large': '#ecedf3',\n 'bg-disabled-small': '#d5d7e1',\n 'bg-disabled-active': '#a6a8b5',\n 'bg-oncolor-disabled': '#ffffff1f',\n 'bg-contrast-active': '#25262c',\n 'bg-oncontrast-hover': '#ffffff14',\n 'alert-bg-success-100': '#ddf4cd',\n 'alert-bg-success-200': '#bce4aa',\n 'alert-bg-success-500': '#63ab4f',\n 'alert-bg-warning-100': '#ffebcc',\n 'alert-bg-warning-200': '#ffd294',\n 'alert-bg-warning-500': '#f16f04',\n 'alert-bg-error-100': '#ffe9e5',\n 'alert-bg-error-200': '#ffcbc7',\n 'alert-bg-error-500': '#e4494e',\n 'alert-success': '#488b32',\n 'alert-warning': '#db6300',\n 'alert-error': '#db3339',\n 'product-bg-course': '#e1f5fe',\n 'product-bg-tutor': '#eaf9ae',\n 'product-bg-group': '#feffbd',\n 'product-bg-complect': '#ffebcc',\n 'skeleton-onmain-primary': 'rgba(0, 0, 0, 0.06)',\n 'skeleton-onmain-secondary': 'rgba(0, 0, 0, 0.1)',\n 'skeleton-gradient-from-color-onmain': 'rgba(0, 0, 0, 0)',\n 'skeleton-gradient-to-color-onmain': 'rgba(0, 0, 0, 0.07)',\n 'skeleton-oncolor-primary': 'rgba(255, 255, 255, 0.15)',\n 'skeleton-oncolor-secondary': 'rgba(255, 255, 255, 0.2)',\n 'skeleton-gradient-from-color-oncolor': 'rgba(255, 255, 255, 0)',\n 'skeleton-gradient-to-color-oncolor': 'rgba(255, 255, 255, 0.2)',\n}\n\nexport const motherColors: Readonly<Record<BrandColorNames, CSSColor>> = {\n 'content-brand-primary': '#8a51e6',\n 'content-brand-secondary': '#db6300',\n 'border-brand-primary': '#8a51e6',\n 'border-brand-secondary': '#db6300',\n 'border-brand-primary-hover': '#8a51e680',\n 'border-brand-primary-active': '#8a51e6',\n 'bg-brand-primary-basic': '#8a51e6',\n 'bg-brand-primary-100': '#f1e5ff',\n 'bg-brand-primary-200': '#e1d4f7',\n 'bg-brand-primary-400': '#c09eff',\n 'bg-brand-primary-500': '#8a51e6',\n 'bg-brand-secondary-basic': '#ff9900',\n 'bg-brand-secondary-100': '#ffebcc',\n 'bg-brand-secondary-200': '#ffd294',\n 'bg-brand-secondary-400': '#ff9900',\n 'bg-brand-secondary-500': '#f16f04',\n 'bg-brand-tertiary-100': '#feffbd',\n 'bg-brand-tertiary-200': '#fffb80',\n 'bg-brand-quaternary-100': '#e1f5fe',\n 'bg-brand-quaternary-200': '#bddcea',\n 'bg-brand-quaternary-400': '#89b8cd',\n 'bg-brand-quaternary-500': '#61a3bd',\n 'bg-brand-primary-basic-active': '#8a51e6',\n 'bg-brand-primary-100-active': '#f1e5ff',\n 'bg-brand-primary-100-hover': '#f1e5ff80',\n}\n\nexport const babyColors: Readonly<Record<BrandColorNames, CSSColor>> = {\n 'content-brand-primary': '#cc2e8d',\n 'content-brand-secondary': '#dbac00',\n 'border-brand-primary': '#cc2e8d',\n 'border-brand-secondary': '#dbac00',\n 'border-brand-primary-hover': '#cc2e8d80',\n 'border-brand-primary-active': '#cc2e8d',\n 'bg-brand-primary-basic': '#cc2e8d',\n 'bg-brand-primary-100': '#faebf7',\n 'bg-brand-primary-200': '#efcdea',\n 'bg-brand-primary-400': '#e594c5',\n 'bg-brand-primary-500': '#cc2e8d',\n 'bg-brand-secondary-basic': '#ffd333',\n 'bg-brand-secondary-100': '#fff4d1',\n 'bg-brand-secondary-200': '#ffde7a',\n 'bg-brand-secondary-400': '#ffd333',\n 'bg-brand-secondary-500': '#f4c10b',\n 'bg-brand-tertiary-100': '#ebefff',\n 'bg-brand-tertiary-200': '#cdd4f9',\n 'bg-brand-quaternary-100': '#ffebcc',\n 'bg-brand-quaternary-200': '#ffd294',\n 'bg-brand-quaternary-400': '#ff9900',\n 'bg-brand-quaternary-500': '#f16f04',\n 'bg-brand-primary-basic-active': '#cc2e8d',\n 'bg-brand-primary-100-active': '#faebf7',\n 'bg-brand-primary-100-hover': '#faebf780',\n}\n\nexport const teenColors: Readonly<Record<BrandColorNames, CSSColor>> = {\n 'content-brand-primary': '#8a51e6',\n 'content-brand-secondary': '#83b200',\n 'border-brand-primary': '#8a51e6',\n 'border-brand-secondary': '#83b200',\n 'border-brand-primary-hover': '#8a51e680',\n 'border-brand-primary-active': '#8a51e6',\n 'bg-brand-primary-basic': '#8a51e6',\n 'bg-brand-primary-100': '#f1e5ff',\n 'bg-brand-primary-200': '#e1d4f7',\n 'bg-brand-primary-400': '#c09eff',\n 'bg-brand-primary-500': '#8a51e6',\n 'bg-brand-secondary-basic': '#d1f00a',\n 'bg-brand-secondary-100': '#eefad1',\n 'bg-brand-secondary-200': '#e9ff6b',\n 'bg-brand-secondary-400': '#afdb00',\n 'bg-brand-secondary-500': '#83b200',\n 'bg-brand-tertiary-100': '#e6f7fe',\n 'bg-brand-tertiary-200': '#cdebf9',\n 'bg-brand-quaternary-100': '#ffebcc',\n 'bg-brand-quaternary-200': '#ffd294',\n 'bg-brand-quaternary-400': '#ff9900',\n 'bg-brand-quaternary-500': '#f16f04',\n 'bg-brand-primary-basic-active': '#8a51e6',\n 'bg-brand-primary-100-active': '#f1e5ff',\n 'bg-brand-primary-100-hover': '#f1e5ff80',\n}\n\nexport const adultColors: Readonly<Record<BrandColorNames, CSSColor>> = {\n 'content-brand-primary': '#3d4eeb',\n 'content-brand-secondary': '#1b0047',\n 'border-brand-primary': '#3d4eeb',\n 'border-brand-secondary': '#1b0047',\n 'border-brand-primary-hover': '#3d4eeb80',\n 'border-brand-primary-active': '#3d4eeb',\n 'bg-brand-primary-basic': '#3d4eeb',\n 'bg-brand-primary-100': '#e5ecff',\n 'bg-brand-primary-200': '#ccdaff',\n 'bg-brand-primary-400': '#8fa9ff',\n 'bg-brand-primary-500': '#3d4eeb',\n 'bg-brand-secondary-basic': '#1b0047',\n 'bg-brand-secondary-100': '#e8e5ff',\n 'bg-brand-secondary-200': '#d6d1ff',\n 'bg-brand-secondary-400': '#b1a3ff',\n 'bg-brand-secondary-500': '#1b0047',\n 'bg-brand-tertiary-100': '#eaf9ae',\n 'bg-brand-tertiary-200': '#d8ea8b',\n 'bg-brand-quaternary-100': '#ffebcc',\n 'bg-brand-quaternary-200': '#ffd294',\n 'bg-brand-quaternary-400': '#ff9900',\n 'bg-brand-quaternary-500': '#f16f04',\n 'bg-brand-primary-basic-active': '#3d4eeb',\n 'bg-brand-primary-100-active': '#e5ecff',\n 'bg-brand-primary-100-hover': '#e5ecff80',\n}\n","function isExternalUrl(url = '', hostname: string): boolean {\n return /^((http|https):\\/\\/)/.test(url) && !new URL(url).hostname.endsWith(hostname)\n}\n\nexport function relBuilder(link?: string, target?: string): undefined | string {\n if (!link) return\n\n const relStr = []\n\n if (isExternalUrl(link, window.location.hostname)) {\n if (target === '_blank') relStr.push('noopener')\n relStr.push('nofollow')\n }\n\n if (relStr.length === 0) return\n\n return relStr.join(' ')\n}\n","import { css } from 'styled-components'\nimport type { CSSObject, ThemeProps, DefaultTheme, SimpleInterpolation, Interpolation } from 'styled-components'\nimport { BREAKPOINTS } from 'shared/constants'\n\ntype MediaQueryParams = {\n and?: string\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n condition?: (_props: any) => boolean\n}\n\ntype ThemeBreakpoints = DefaultTheme['breakpoints']\n\ntype BreakpointKey = keyof ThemeBreakpoints\n\nconst CONDITIONS = (() => {\n const maxWidth = (breakpoints: ThemeBreakpoints, point: BreakpointKey) =>\n `(max-width: ${breakpoints[point] - 0.02}px)`\n const minWidth = (breakpoints: ThemeBreakpoints, point: BreakpointKey) => `(min-width: ${breakpoints[point]}px)`\n\n return {\n MAX: maxWidth,\n MIN: minWidth,\n RANGE: (breakpoints: ThemeBreakpoints, point1: BreakpointKey, point2: BreakpointKey) =>\n `${minWidth(breakpoints, point1)} and ${maxWidth(breakpoints, point2)}`,\n }\n})()\n\nexport const createMediaQuery =\n (condition: (_breakpoints: ThemeBreakpoints, ..._points: BreakpointKey[]) => string, ...points: BreakpointKey[]) =>\n (params?: MediaQueryParams) =>\n <T extends object>(...args: [CSSObject | TemplateStringsArray, ...Interpolation<T & ThemeProps<DefaultTheme>>[]]) =>\n (props: ThemeProps<DefaultTheme>) => {\n const contextBreakpoints = props.theme?.breakpoints ?? {}\n const breakpoints: ThemeBreakpoints = { ...BREAKPOINTS, ...contextBreakpoints }\n\n if (params !== undefined && typeof params.condition === 'function' && params.condition(props) === false) {\n return css``\n }\n\n return css<T>`\n @media screen and ${condition(breakpoints, ...points)} ${params !== undefined && typeof params.and === 'string'\n ? `and ${params.and}`\n : ``} {\n ${css<T>(...args)}\n }\n `\n }\n\n/**\n * @return `@media screen and (min-width: 320px) and (max-width: 374px) { ...args }`\n */\nexport const screenXs = createMediaQuery(CONDITIONS.RANGE, 'xxs', 'xs')\n\n/**\n * @return `@media screen and (min-width: 375px) and (max-width: 767px) { ...args }`\n */\nexport const screenS = createMediaQuery(CONDITIONS.RANGE, 'xs', 's')\n\n/**\n * @return `@media screen and (min-width: 768) and (max-width: 1023px) { ...args }`\n */\nexport const screenM = createMediaQuery(CONDITIONS.RANGE, 's', 'm')\n\n/**\n * @return `@media screen and (min-width: 1024px) and (max-width: 1279px) { ...args }`\n */\nexport const screenL = createMediaQuery(CONDITIONS.RANGE, 'm', 'l')\n\n/**\n * @return `@media screen and (min-width: 1280px) and (max-width: 1439px) { ...args }`\n */\nexport const screenXl = createMediaQuery(CONDITIONS.RANGE, 'l', 'xl')\n\n/**\n * @return `@media screen and (max-width: 319px) { ...args }`\n */\nexport const screenMaxXxs = createMediaQuery(CONDITIONS.MAX, 'xxs')\n\n/**\n * @return `@media screen and (max-width: 374px) { ...args }`\n */\nexport const screenMaxXs = createMediaQuery(CONDITIONS.MAX, 'xs')\n\n/**\n * @return `@media screen and (min-width: 375px) { ...args }`\n */\nexport const screenMinXs = createMediaQuery(CONDITIONS.MIN, 'xs')\n\n/**\n * @return `@media screen and (max-width: 767px) { ...args }`\n */\nexport const screenMaxS = createMediaQuery(CONDITIONS.MAX, 's')\n\n/**\n * @return `@media screen and (min-width: 768px) { ...args }`\n */\nexport const screenMinS = createMediaQuery(CONDITIONS.MIN, 's')\n\n/**\n * @return `@media screen and (max-width: 1023px) { ...args }`\n */\nexport const screenMaxM = createMediaQuery(CONDITIONS.MAX, 'm')\n\n/**\n * @return `@media screen and (min-width: 1024px) { ...args }`\n */\nexport const screenMinM = createMediaQuery(CONDITIONS.MIN, 'm')\n\n/**\n * @return `@media screen and (max-width: 1279px) { ...args }`\n */\nexport const screenMaxL = createMediaQuery(CONDITIONS.MAX, 'l')\n\n/**\n * @return `@media screen and (min-width: 1280px) { ...args }`\n */\nexport const screenMinL = createMediaQuery(CONDITIONS.MIN, 'l')\n\n/**\n * @return `@media screen and (max-width: 1439px) { ...args }`\n */\nexport const screenMaxXl = createMediaQuery(CONDITIONS.MAX, 'xl')\n\n/**\n * @return `@media screen and (min-width: 1440px) { ...args }`\n */\nexport const screenMinXl = createMediaQuery(CONDITIONS.MIN, 'xl')\n\n/**\n * @return `@media -webkit-min-device-pixel-ratio: 2 and (min-resolution: 192dpi) { ...args }`\n */\nexport const screenRetina = (...args: [CSSObject | TemplateStringsArray, SimpleInterpolation]) => css`\n @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n ${css(...args)}\n }\n`\n\nexport type MediaQuery = ReturnType<typeof createMediaQuery>\n","import { css, FlattenSimpleInterpolation } from 'styled-components'\nimport type { Size } from 'shared/types'\nimport { screenXs, screenMaxL, screenMaxM, screenMaxS, screenMaxXs, screenMinL, screenMaxXxs } from './screen'\nimport type { MediaQuery } from './screen'\n\nexport const SIZES_LATIN: Readonly<Record<Size, number>> = Object.freeze({\n xxxl: 44,\n xxl: 40,\n xl: 36,\n l: 28,\n m: 24,\n s: 20,\n xs: 16,\n xxs: 8,\n xxxs: 4,\n})\n\n// eslint-disable-next-line no-unused-vars\nexport const FONT_SIZES_LATIN: Readonly<Record<Size, number>> = Object.freeze({\n xxxl: 24,\n xxl: 22,\n xl: 20,\n l: 18,\n m: 16,\n s: 14,\n xs: 12,\n xxs: 10,\n xxxs: 8,\n})\n\nconst DESKTOP_FIRST_KEYS = ['xl', 'l', 'm', 's', 'xs', 'xxs']\nconst MOBILE_FIRST_KEYS = ['xxs', 'xs', 's', 'm', 'l', 'xl']\n\nexport function getLatinSizeMapByCssProperty<T>(cssProperty: T) {\n if (typeof cssProperty === 'string' && cssProperty === 'font-size') return FONT_SIZES_LATIN\n return SIZES_LATIN\n}\n\nexport function buildMediaQuery(\n value: number | Size | 'auto' | 'initial' | 'inherit' | boolean,\n property:\n | string\n | ((\n _size: number | 'auto' | 'initial' | 'inherit' | boolean,\n _sizing?: null | string\n ) => FlattenSimpleInterpolation | null),\n screenQueryFunction: typeof screenXs,\n sizing: null | string,\n sizes?: Record<Size, number>\n): ReturnType<typeof css> {\n const sizeMap = sizes ?? getLatinSizeMapByCssProperty(property)\n\n const size: number | 'auto' | 'initial' | 'inherit' | boolean =\n typeof value === 'string' ? sizeMap[value] ?? value : value\n\n if (typeof property === 'function') {\n const value = property(size, sizing)\n return css`\n ${screenQueryFunction()`\n ${value}\n `}\n `\n }\n\n return css`\n ${screenQueryFunction()`\n ${property}: ${size as string}${typeof size === 'string' ? '' : sizing ?? ''};\n `}\n `\n}\n\nconst getKey = (key: string): 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl' | null => {\n if (key.endsWith('XXS')) return 'xxs'\n if (key.endsWith('XS')) return 'xs'\n if (key.endsWith('S')) return 's'\n if (key.endsWith('M')) return 'm'\n if (key.endsWith('XL')) return 'xl'\n if (key.endsWith('L')) return 'l'\n return null\n}\n\nexport const desktopFirst = (a: string, b: string): number => {\n const aKey = getKey(a)\n const bKey = getKey(b)\n if (!aKey || !bKey) return 0\n\n const aIndex = DESKTOP_FIRST_KEYS.findIndex((el) => el === aKey)\n const bIndex = DESKTOP_FIRST_KEYS.findIndex((el) => el === bKey)\n\n return aIndex < bIndex ? -1 : 1\n}\n\nexport const mobileFirst = (a: string, b: string): number => {\n const aKey = getKey(a)\n const bKey = getKey(b)\n if (!aKey || !bKey) return 0\n\n const aIndex = MOBILE_FIRST_KEYS.findIndex((el) => el === aKey)\n const bIndex = MOBILE_FIRST_KEYS.findIndex((el) => el === bKey)\n\n return aIndex < bIndex ? -1 : 1\n}\n\nexport const getMediaQueryByResponsiveProp = (prop: string): MediaQuery => {\n if (prop.endsWith('XXS')) return screenMaxXxs\n if (prop.endsWith('XS')) return screenMaxXs\n if (prop.endsWith('S')) return screenMaxS\n if (prop.endsWith('M')) return screenMaxM\n if (prop.endsWith('XL')) return screenMinL\n return screenMaxL\n}\n","import { css, FlattenSimpleInterpolation } from 'styled-components'\nimport { screenMaxL, screenMaxM, screenMaxS, screenMaxXs, screenMinL, screenMaxXxs, screenMinM } from 'mixins/screen'\nimport {\n buildMediaQuery,\n getLatinSizeMapByCssProperty,\n desktopFirst,\n getMediaQueryByResponsiveProp,\n} from 'mixins/shared'\nimport type { Size } from 'shared/types'\n\n/**\n * Value for breakpoint\n */\nexport type PossibleValues = number | Size | 'auto' | 'initial' | 'inherit' | boolean\n\ntype PropsProperties =\n | 'size'\n | 'fontSize'\n | 'height'\n | 'width'\n | 'top'\n | 'right'\n | 'bottom'\n | 'left'\n | 'padding'\n | 'paddingTop'\n | 'paddingRight'\n | 'paddingBottom'\n | 'paddingLeft'\n | 'margin'\n | 'marginTop'\n | 'marginRight'\n | 'marginBottom'\n | 'marginLeft'\n | 'fluid'\n\nexport type CalcProperty = (\n _size: number | 'auto' | 'initial' | 'inherit' | boolean,\n _sizing?: null | string\n) => FlattenSimpleInterpolation | null\ntype CssProperty = string | CalcProperty\ntype ResponsiveKeys = '' | 'XXS' | 'XS' | 'S' | 'M' | 'L' | 'XL'\n\nexport type ResponsiveNamedProperty<T extends PropsProperties, V extends PossibleValues = PossibleValues> = {\n /**\n * Size for breakpoint\n */\n [key in `${T}${ResponsiveKeys}`]?: V // eslint-disable-line no-unused-vars\n}\n\nexport type ResponsiveProperty<V = number | Size> =\n | V\n | [desktop: V, tablet: V, mobile: V]\n | [xl: V, l: V, m: V, s: V, xs: V, xxs: V]\n\nexport const property =\n (\n value: PossibleValues,\n cssProperty: CssProperty = 'size',\n sizing: null | string = 'px',\n sizes?: Record<Size, number>\n ) =>\n () =>\n () => {\n if (typeof value === 'boolean') {\n return typeof cssProperty === 'function' ? cssProperty(1) : null\n }\n\n const sizeMap = sizes ?? getLatinSizeMapByCssProperty(cssProperty)\n\n if (typeof cssProperty === 'function') {\n return cssProperty(typeof value === 'number' ? value : sizeMap[value])\n }\n\n if (typeof value === 'string' && ['auto', 'initial', 'inherit'].includes(value))\n return css`\n ${cssProperty}: ${value};\n `\n\n return css`\n ${cssProperty}: ${typeof value === 'string' && sizeMap[value] ? sizeMap[value] : value}${sizing ?? ''};\n `\n }\n\nconst SCREEN_SIZE_MAP: Record<Exclude<ResponsiveKeys, ''>, typeof screenMaxXs> = {\n XXS: screenMaxXxs,\n XS: screenMaxXs,\n S: screenMaxS,\n M: screenMaxM,\n L: screenMaxL,\n XL: screenMinL,\n}\n\nconst SCREEN_SIZE_MAP_BY_DEVICE_ALIAS: Record<'desktop' | 'tablet' | 'mobile', typeof screenMaxXs> = {\n desktop: screenMinM,\n tablet: screenMaxM,\n mobile: screenMaxS,\n}\n\ninterface ResponsiveNamedPropertyPayload<T extends PropsProperties> {\n sizes: ResponsiveNamedProperty<T>\n cssProperty: CssProperty\n sizing?: null | string\n customSizeHandler?: (_value: PossibleValues) => PossibleValues\n sort?: (_a: string, _b: string) => number\n predefinedSizes?: Record<Size, number>\n}\n\n/**\n * Миксин для генерации media запросов\n *\n * @param obj.sizes Объект, в качестве ключей брэйкпоинт, в качестве значений - величина\n * @param obj.cssProperty CSS свойство, может быть функцией, возвращающей css`` из styled-components\n * @param obj.sizing значение величины, по умолчанию `px`\n * @param obj.customSizeHandler функция для вычисления кастомных значений величин\n * @returns строки медиазапросов\n */\nexport const responsiveNamedProperty =\n <T extends PropsProperties>({\n sizes,\n predefinedSizes,\n cssProperty = 'size',\n sizing = 'px',\n customSizeHandler,\n sort = desktopFirst,\n }: ResponsiveNamedPropertyPayload<T>) =>\n () =>\n () => {\n const mediaCssStrArr = Object.keys(sizes)\n .sort(sort)\n .map((size) => {\n if (sizes[size] !== undefined) {\n const _size: PossibleValues =\n typeof customSizeHandler === 'function' ? customSizeHandler(sizes[size]) : sizes[size]\n\n return buildMediaQuery(_size, cssProperty, getMediaQueryByResponsiveProp(size), sizing, predefinedSizes)\n }\n return null\n })\n .filter(Boolean)\n .map(\n (item) =>\n css`\n ${item}\n `\n )\n\n return mediaCssStrArr\n }\n\n/**\n * Миксин для генерации media запросов\n *\n * @param propName имя пропсы\n * @param cssProperty имя css свойства\n * @param sizing значение величины, по умолчанию `px`\n * @returns строки медиазапросов\n */\nexport const responsiveProperty =\n (propName: string, cssProperty: string | null = null, sizing: null | string = 'px') =>\n () =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (props: any) => {\n const prop: ResponsiveProperty | null = props[propName] ?? null\n const _cssProperty = cssProperty ?? propName\n if (!prop) return null\n\n if (Array.isArray(prop) && prop.length === 3) {\n const [desktop, tablet, mobile] = prop\n return css`\n ${SCREEN_SIZE_MAP_BY_DEVICE_ALIAS.desktop()`\n ${_cssProperty}: ${typeof desktop === 'number' ? `${desktop}${sizing ?? ''}` : desktop};\n `}\n ${SCREEN_SIZE_MAP_BY_DEVICE_ALIAS.tablet()`\n ${_cssProperty}: ${typeof tablet === 'number' ? `${tablet}${sizing ?? ''}` : tablet};\n `}\n ${SCREEN_SIZE_MAP_BY_DEVICE_ALIAS.mobile()`\n ${_cssProperty}: ${typeof mobile === 'number' ? `${mobile}${sizing ?? ''}` : mobile};\n `}\n `\n }\n\n if (Array.isArray(prop) && prop.length === 6 && typeof _cssProperty === 'string') {\n const [xl, l, m, s, xs, xxs] = prop\n return css`\n ${SCREEN_SIZE_MAP.XL()`\n ${_cssProperty}: ${typeof xl === 'number' ? `${xl}${sizing ?? ''}` : xl};\n `}\n ${SCREEN_SIZE_MAP.L()`\n ${_cssProperty}: ${typeof l === 'number' ? `${l}${sizing ?? ''}` : l};\n `}\n ${SCREEN_SIZE_MAP.M()`\n ${_cssProperty}: ${typeof m === 'number' ? `${m}${sizing ?? ''}` : m};\n `}\n ${SCREEN_SIZE_MAP.S()`\n ${_cssProperty}: ${typeof s === 'number' ? `${s}${sizing ?? ''}` : s};\n `}\n ${SCREEN_SIZE_MAP.XS()`\n ${_cssProperty}: ${typeof xs === 'number' ? `${xs}${sizing ?? ''}` : xs};\n `}\n ${SCREEN_SIZE_MAP.XXS()`\n ${_cssProperty}: ${typeof xxs === 'number' ? `${xxs}${sizing ?? ''}` : xxs};\n `}\n `\n }\n\n if (typeof prop === 'number') {\n return css`\n ${_cssProperty}: ${prop}${sizing ?? null};\n `\n }\n\n if (typeof prop === 'string') {\n return css`\n ${_cssProperty}: ${prop};\n `\n }\n\n return null\n }\n","import { css, DefaultTheme, FlattenSimpleInterpolation } from 'styled-components'\nimport type { CSSColor, Color } from 'shared/types'\n\ntype ColorPropertyVariants = 'color' | 'fontColor' | `${string}Color` | `color${string}`\ntype ColorCalcProperty = (_color: CSSColor) => FlattenSimpleInterpolation | null\ntype ColorCssProperty = string | ColorCalcProperty\nexport type ColorProperty<T extends ColorPropertyVariants = 'color'> = {\n /**\n * Color name, HEX, rgb or rgba\n */\n [key in `${T}`]?: Color // eslint-disable-line no-unused-vars\n}\n\nexport const getColor = (color: Color, props: { theme: DefaultTheme }) => {\n if (typeof color === 'string' && (color.includes('#') || color.includes('rgb'))) return color\n\n if (props.theme.colors[color]) return props.theme.colors[color]\n\n return color\n}\n\nexport const color =\n (color?: Color | string, cssProperty: ColorCssProperty = 'color') =>\n () =>\n (props: { theme: DefaultTheme }) => {\n const colorVal = color || props?.theme?.textColor || props?.theme?.fallbackColor\n const _color = getColor(colorVal as Color, props)\n\n if (typeof cssProperty === 'function') {\n return cssProperty(_color)\n }\n\n return css`\n ${cssProperty}: ${_color};\n `\n }\n","import { useTheme } from 'styled-components'\nimport cx from 'clsx'\n\nexport function useClassname(componentName: string, originalClassName?: string) {\n const theme = useTheme()\n return cx(`${theme.classNamePrefix}-${componentName}`, originalClassName)\n}\n","import { mergeDeepLeft } from 'ramda'\nimport type { Sizes } from 'shared/types'\n\nconst SIZES_EMPTY: Sizes = { xxxl: {}, xxl: {}, xl: {}, l: {}, m: {}, s: {}, xs: {}, xxs: {}, xxxs: {} }\n\nexport function useMergedSizes<\n T extends {\n sizes?: Partial<Sizes>\n }\n>(componentProps: T, componentSizes: Sizes | ((props: T) => Sizes) = SIZES_EMPTY): Sizes {\n const sizesDefault = typeof componentSizes === 'function' ? componentSizes(componentProps) : componentSizes\n const sizesProp = componentProps.sizes ?? {}\n\n return mergeDeepLeft(sizesProp, sizesDefault) as Sizes\n}\n","import { useTheme } from 'styled-components'\nimport type { ColorPaletteKey, Color, CSSColor } from 'shared/types'\n\nexport function useMergedPalette<\n T extends {\n palette?: Partial<Record<ColorPaletteKey, Color>>\n }\n>(componentProps: T): Record<ColorPaletteKey, CSSColor> {\n const theme = useTheme()\n\n const palette = componentProps.palette ?? {}\n\n return Object.keys(palette).reduce((injected, key) => {\n injected[key] = theme.colors[palette[key]] ?? palette[key]\n return injected\n }, {} as Record<ColorPaletteKey, CSSColor>)\n}\n","import { forwardRef } from 'react'\nimport type { ThemePreset, Sizes, Color, CSSColor, ColorPaletteKey } from 'shared/types'\nimport { useMergedProps } from 'hooks/useMergedProps'\nimport { useMergedSizes } from 'hooks/useMergedSizes'\nimport { useMergedPalette } from 'hooks/useMergedPalette'\n\ntype WrappedComponentProps = {\n preset?: ThemePreset\n sizes?: Partial<Sizes>\n palette?: Partial<Record<ColorPaletteKey, Color>>\n}\n\ntype MergedProps<T> = Omit<T, 'preset' | 'sizes' | 'palette'> & {\n preset: ThemePreset\n sizes: Sizes\n palette: Partial<Record<ColorPaletteKey, CSSColor>>\n}\n\ntype WithMergedPropsOptions<T> = {\n displayName: string\n sizes?: Sizes | ((props: T) => Sizes)\n}\n\nfunction withMergedProps<T extends WrappedComponentProps, R extends HTMLElement = HTMLElement>(\n WrappedComponent: React.FC<MergedProps<T>>,\n options: WithMergedPropsOptions<Omit<T, 'sizes'> & { preset: ThemePreset }>\n) {\n const WithMergedProps = forwardRef<R, T>((wrappedComponentProps, ref) => {\n const props = useMergedProps(wrappedComponentProps, options.displayName)\n const sizes = useMergedSizes(props, options.sizes)\n const palette = useMergedPalette(props)\n\n WrappedComponent.displayName = options.displayName\n\n return <WrappedComponent {...props} sizes={sizes} palette={palette} ref={ref} />\n })\n\n WithMergedProps.displayName = `WithMergedProps${options.displayName}`\n\n return WithMergedProps\n}\n\nexport { withMergedProps }\n","import { useTheme } from 'styled-components'\nimport { mergeDeepLeft } from 'ramda'\nimport type { ThemePreset } from 'shared/types'\n\nexport function useMergedProps<\n T extends {\n preset?: ThemePreset\n }\n>(\n componentProps: T,\n componentName: string\n): T & {\n preset: ThemePreset\n} {\n const theme = useTheme()\n\n const context = theme.components ?? {}\n const contextProps: T = context[componentName] ?? {}\n const mergedProps = mergeDeepLeft(componentProps, contextProps) as T\n\n return {\n ...mergedProps,\n preset: mergedProps.preset ?? theme.preset,\n }\n}\n","<svg viewBox=\"0 0 20 16\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\"><path d=\"M3.275 2.11h-2.4v13.015h18.25v-13.015h-2.4v-1.235h-5.525c-.454 0-.871.163-1.2.433-.329-.27-.746-.433-1.2-.433h-5.525v1.235zm13.45 1.485h.95v10.044h-15.35v-10.044h.95v9.059h5.525c.258 0 .475.218.475.493v.125h1.45v-.125c0-.275.217-.493.475-.493h5.525v-9.059zm-6-.743c0-.275.217-.493.475-.493h4.075v8.809h-4.075c-.164 0-.323.021-.475.061v-8.377zm-6-.493h4.075c.258 0 .475.218.475.493v8.377c-.152-.04-.311-.061-.475-.061h-4.075v-8.809z\" stroke-width=\".25\"/></svg>\n","<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\"><path d=\"M4 4h2v2h-2v-2zM7 4h5v2h-5v-2zM4 7h2v2h-2v-2zM7 7h5v2h-5v-2z\" /><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16 0v13h-5l3 3h-2.828l-2.172-2.172v2.172h-2v-2.172l-2.172 2.172h-2.828l3-3h-5v-13h16zm-2 11v-9h-12v9h12z\" /></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentcolor\"><path d=\"M0 4v-2h16v2h-16zm0 5v-2h16v2h-16zm0 3v2h16v-2h-16z\"/></svg>\n","<svg viewBox=\"0 0 26 16\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\"><path d=\"m0 0h26v16h-26z\" fill=\"none\"/><path d=\"m20.8 4.6c-2.2-2.2-4.7-4.6-7.8-4.6s-5.6 2.4-7.8 4.6c-1.9 1.8-3.5 3.4-5.2 3.4 1.7 0 3.3 1.6 5.2 3.4 2.2 2.2 4.7 4.6 7.8 4.6s5.6-2.4 7.8-4.6c1.9-1.8 3.5-3.4 5.2-3.4-1.7 0-3.3-1.6-5.2-3.4zm-7.8 8.7c-2.9 0-5.2-2.4-5.2-5.3s2.3-5.3 5.2-5.3 5.2 2.4 5.2 5.3-2.3 5.3-5.2 5.3zm1.3-5.3c-.7 0-1.3-.6-1.3-1.3 0-.5.3-1 .8-1.2-.2-.1-.5-.1-.8-.1-1.4 0-2.6 1.2-2.6 2.7s1.2 2.7 2.6 2.7 2.6-1.2 2.6-2.7c0-.3 0-.5-.1-.8-.2.4-.7.7-1.2.7z\" /></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentcolor\"><path d=\"M0 1v14h16v-14h-16zm14 2v1.2l-6 4-6-4v-1.2h12zm-12 10v-6.4l6 4 6-4v6.4h-12z\"/></svg>\n","<svg width=\"14\" height=\"12\" viewBox=\"0 0 14 12\" xmlns=\"http://www.w3.org/2000/svg\" fill='currentcolor'><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0 2.5v-1.75h14v1.75h-14zm0 4.375v-1.75h10.5v1.75h-10.5zm0 2.625v1.75h7v-1.75h-7z\" /></svg>\n","<svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" xmlns=\"http://www.w3.org/2000/svg\" fill='currentcolor'><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0 2v-2h8v2h-8zm0 3v2h12v-2h-12zm0 5v2h10v-2h-10z\" /></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill='currentcolor'><path d=\"M12 9h-.6c.4-.6.6-1.3.6-2v-3c0-2.2-1.8-4-4-4s-4 1.8-4 4v3c0 .7.2 1.4.6 2h-.6c-2.2 0-4 1.8-4 4v3h16v-3c0-2.2-1.8-4-4-4zm-6-2v-3c0-1.1.9-2 2-2s2 .9 2 2v3c0 1.1-.9 2-2 2s-2-.9-2-2zm8 7h-12v-1c0-1.1.9-2 2-2h8c1.1 0 2 .9 2 2v1z\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 14 11\" fill=\"currentcolor\"><path d=\"M3.5.5h7.1l2.8 4.1-6.4 6.3-6.3-6.3 2.8-4.1zm1 2l-1.2 1.9 3.7 3.7 3.7-3.7-1.2-1.9h-5z\"/></svg>\n","<svg viewBox='0 0 19 16' xmlns='http://www.w3.org/2000/svg' fill=\"currentcolor\"><path d='M0 6l3.8-6h11.4l3.8 6-9.5 10-9.5-10z' /></svg>\n","<svg fill=\"currentcolor\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"10\" cy=\"10\" r=\"10\"/><path d=\"m12.5 6.5h-5l-2 3 4.5 4.5 4.5-4.5z\" stroke=\"#fff\" stroke-width=\"2\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentcolor\"><path d=\"M8 0c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 14c-3.3 0-6-2.7-6-6s2.7-6 6-6 6 2.7 6 6-2.7 6-6 6zM7 7h2v5h-2zM7 4h2v2h-2z\"/></svg>\n","<svg viewBox=\"0 0 16 12\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M2 0h-2v2h2v-2zm0 5h-2v2h2v-2zm-2 5h2v2h-2v-2zm16-10h-12v2h12v-2zm-12 5h12v2h-12v-2zm12 5h-12v2h12v-2z\" /></svg>\n","<svg viewBox=\"0 0 17 16\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7.8852 9L5.5018 11.2929L6.97184 12.7071L11.8647 8L6.97184 3.29289L5.5018 4.70711L7.8852 7L-3.0598e-07 7L-3.93402e-07 9L7.8852 9ZM14.5526 14L9.35523 14L9.35523 16L16.6315 16L16.6315 7.26987e-07L9.35523 4.0893e-07L9.35523 2L14.5526 2L14.5526 14Z\" />\n</svg>\n","<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.414 7l2.293-2.293-1.414-1.414-4.707 4.707 4.707 4.707 1.414-1.414-2.293-2.293h7.586v-2h-7.586zm-6.414-5h5v-2h-7v16h7v-2h-5v-12z\" /></svg>\n","<svg viewBox=\"0 0 14 19\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7 19c3.866 0 7-3.224 7-7.2 0-6.792-6.444-5.8-4.5-11.8-2.472.152-5.5 1-6.5 4.5-.491 1.718.107 3.044.27 3.764.163.72-.211 1.343-.761 1.233-.548-.109-.762-.831-.548-2.247-1.96 1.231-1.96 3.518-1.96 4.55 0 3.976 3.134 7.2 7 7.2z\" /></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentcolor\"><path d=\"M15 6v-6h-14v6h-1v3h1v5h1v2h3v-2h6v2h3v-2h1v-5h1v-3h-1zm-2 6h-10v-1h10v1zm0-3h-10v-7h10v7zm-8-6h6v2h-6z\"/></svg>\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0 2h1.236l3 11h8.764v-2h-7.236l-.273-1h8.29l2-8h-9.781v2h7.219l-1 4h-7.274l-2.182-8h-2.764v2zm12 14c.552 0 1-.448 1-1s-.448-1-1-1-1 .448-1 1 .448 1 1 1zm-6-1c0 .552-.448 1-1 1s-1-.448-1-1 .448-1 1-1 1 .448 1 1z\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentcolor\"><path d=\"M8 0c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 14c-3.3 0-6-2.7-6-6s2.7-6 6-6 6 2.7 6 6-2.7 6-6 6zM7.4 7.8h-2.2v2h4.2v-5h-2z\"/></svg>\n","<svg viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\"><path d=\"M10 20c5.5 0 10-4.5 10-10s-4.5-10-10-10-10 4.5-10 10 4.5 10 10 10zm0-15h2v8h-6v-2h4v-6z\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentcolor\"><path d=\"M16 0h-16v16h16v-16zm-14 14v-12h12v12h-12zm4.4-8.3l3.9 2.3-3.9 2.3v-4.6z\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentcolor\"><path d=\"M.08 14.505l14.425-14.425 1.414 1.414-14.425 14.425zM3.2 6.4c1.8 0 3.2-1.4 3.2-3.2 0-1.8-1.4-3.2-3.2-3.2-1.8 0-3.2 1.4-3.2 3.2 0 1.8 1.4 3.2 3.2 3.2zm0-4.4c.7 0 1.2.5 1.2 1.2s-.5 1.2-1.2 1.2-1.2-.5-1.2-1.2.5-1.2 1.2-1.2zM12.8 9.6c-1.8 0-3.2 1.4-3.2 3.2 0 1.8 1.4 3.2 3.2 3.2 1.8 0 3.2-1.4 3.2-3.2 0-1.8-1.4-3.2-3.2-3.2zm0 4.4c-.7 0-1.2-.5-1.2-1.2s.5-1.2 1.2-1.2 1.2.5 1.2 1.2-.5 1.2-1.2 1.2z\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentcolor\"><path d=\"M13 4v-4h-13v6h2v3h-2v7h16v-12h-3zm-11-2h9v2h-9v-2zm3 4v3h-1v-3h1zm6 8h-9v-3h9v3zm3 0h-1v-3h1v3zm0-5h-7v-3h7v3z\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentcolor\"><path d=\"M16 9v-2c0-3.9-3.1-7-7-7h-2c-3.9 0-7 3.1-7 7v9h5v-7h-3v-2c0-2.8 2.2-5 5-5h2c2.8 0 5 2.2 5 5v2h-3v7h5v-7zm-13 2v3h-1v-3h1zm11 3h-1v-3h1v3z\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill='currentcolor'><path d=\"M8.4 0h7.6000000000000005v7.6000000000000005l-.3.3-.2.2c1 2.4.4 5.1-1.3 6.4-1.3 1-2.7 1.2-3.9 1-.6-.1-1.1-.3-1.6-.7l-.4.4-.7.8-.7-.7-6.2-6.2-.7-.7.7-.7 7.4-7.4.3-.3zm2.4 4.2c1.3.4 2.4 1 3.2 1.8v-4h-4.8l-6.4 6.4 4.8 4.8 5.4-5.4c-.5-.6-1.2-1.1-2.2-1.5v.9h-1v-4.1h1v1.1zm2.2 8.7c.7-.5 1.2-1.8.9-3.2l-3.7 3.7c.1.1.3.1.5.2.7.1 1.5 0 2.3-.7z\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill='currentcolor'><path d=\"M14 3.2h-2v-3.2h-8v3.1999999999999997h-4v12.8h16v-12.8h-2zm-8-1.2h4v.8h-4v-.8zm8 12h-12v-4h5v1.2h2v-1.2h5v4zm0-6h-12v-2.8h12v2.8z\"/></svg>\n","<svg viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\" fill='currentcolor'><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 2c4.418 0 8 3.582 8 8h2c0-5.523-4.477-10-10-10v2zm0 4c2.209 0 4 1.791 4 4h2c0-3.314-2.686-6-6-6v2zm2 7.75c.5-.625 1.25-.625 1.875 0 .25.25.486.5.722.75.472.5.944 1 1.528 1.5.625.625.625 1.375 0 2l-1.25 1.25c-.625.625-1.375.75-2.125.75-1.25-.125-2.375-.5-3.375-1-2.375-1.125-4.375-2.625-6-4.625-1.125-1.5-2.25-3.125-2.875-4.875-.375-.875-.5-1.75-.5-2.75 0-.5.25-1 .75-1.5.375-.375.875-.875 1.375-1.25.5-.625 1.25-.625 1.875 0 .375.25.75.625 1.125 1l.269.285c.25.273.484.529.856.715.625.625.625 1.375 0 2l-.481.51c-.291.319-.566.619-.894.865-.125.125-.125.25-.125.375.375.625.75 1.25 1.25 1.875 1 1.25 2 2.25 3.375 3.125.191.191.455.309.68.41l.195.09c.125 0 .25 0 .375-.125l1.375-1.375z\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill='currentcolor'><path d=\"M14.7 5.5h-3.7l-2.1-4.7c-.3-.7-1.4-.7-1.7 0l-2.2 4.7h-3.7c-.8 0-1.3 1-.7 1.6l2.8 2.7-.7 4.8c-.1.8.8 1.4 1.5.9l3.8-2.8 3.8 2.9c.7.5 1.6-.1 1.5-.9l-.7-4.8 2.8-2.7c.6-.7.2-1.7-.7-1.7zm-4.3 3.6l.5 3.3-2.9-2.2-2.9 2.2.5-3.3-1.7-1.6h2.4l1.7-3.7 1.7 3.7h2.4l-1.7 1.6z\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill='currentcolor'><path d=\"M14.4 7.8l1.4-1.7-1.9-3.8-2.4.6-.8-.5-.5-2.4h-4.6l-.6 2.4-.8.5-2.3-.6-1.8 3.8 1.3 1.7v1.2l-1.3 2 1.9 3 2.3-.7.7.4.6 2.3h4.6l.6-2.3.7-.4 2.3.7 2-3-1.4-2c.1 0 .1-1.2 0-1.2zm-.8 3.3l-.4.6-1.7-.5-2.3 1.2-.5 1.6h-1.5l-.4-1.7-2.3-1.2-1.7.5-.3-.6 1-1.4v-2.4l-1-1.3.5-1.2 1.6.4 2.2-1.5.4-1.6h1.4l.4 1.6 2.2 1.5 1.7-.4.6 1.2-1 1.3v2.5l1.1 1.4zM7.9 5c-1.7 0-3 1.3-3 3s1.3 3 3 3 3-1.3 3-3-1.2-3-3-3zm0 4c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.3 1-1 1z\"/></svg>\n","<svg viewBox=\"0 0 25 17\" xmlns=\"http://www.w3.org/2000/svg\" fill='currentcolor'><path d=\"M24.051 6.289l.254-.114-.254-.114-11.515-5.175-.051-.023-.051.023-11.485 5.175-.253.114.253.114 5.363 2.416v3.516c0 1.168.729 2.202 2.01 2.923 1.129.635 2.608.981 4.164.981 1.556 0 3.035-.346 4.164-.981 1.281-.72 2.01-1.755 2.01-2.923v-3.509l2.659-1.195 1.344-.604 1.388-.624zm-11.617 5.175l.051.023.051-.023 4.529-2.035v2.792c0 .228-.107.475-.325.723-.218.248-.54.489-.949.701-.82.423-1.976.718-3.305.718-1.329 0-2.485-.296-3.305-.718-.41-.211-.732-.453-.95-.701-.218-.248-.325-.496-.325-.723v-2.797l4.528 2.04zm.052-1.879l-7.568-3.41 7.568-3.41 7.587 3.41-7.587 3.41z\" stroke-width=\".25\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill='currentcolor'><path d=\"M8 14c3.3 0 6-2.7 6-6 0-.9-.2-1.8-.6-2.6l-1.2.9c.2.5.3 1.1.3 1.7 0 2.5-2 4.5-4.5 4.5s-4.5-2-4.5-4.5 2-4.5 4.5-4.5c1.1 0 2.2.4 3 1.1l1.2-.9c-1.1-1-2.5-1.7-4.2-1.7-3.3 0-6 2.7-6 6s2.7 6 6 6zm1.3-8.1c-.4-.3-.8-.4-1.3-.4-1.4 0-2.5 1.1-2.5 2.5s1.1 2.5 2.5 2.5 2.5-1.1 2.5-2.5c0-.2 0-.4-.1-.5l-1.8 1.3c-.5.3-1.1.2-1.4-.2-.3-.5-.2-1.1.2-1.4l1.9-1.3zm5.7-1.7c.6 1.1 1 2.4 1 3.8 0 4.4-3.6 8-8 8s-8-3.6-8-8 3.6-8 8-8c2.3 0 4.4 1 5.9 2.6l.5-.4c.4-.3 1.1-.2 1.4.2.3.4.2 1.1-.2 1.4l-.6.4z\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill='currentcolor'><path d=\"M13 0h-13v16h16v-16h-3zm-6 2h1v1l-.5-.2-.5.2v-1zm4 12h-9v-12h3v4l2.5-1 2.5 1v-4h1v12zm3 0h-1v-12h1v12z\"/></svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill='currentcolor'><path d=\"M14 0h-14v3c0 1.9 1.3 3.4 3 3.9v.1c0 2.4 1.7 4.4 4 4.9v2.1h-4v2h10v-2h-4v-2.1c2.3-.5 4-2.5 4-4.9v-.1c1.7-.4 3-2 3-3.9v-3h-2zm-11 4.7c-.6-.3-1-1-1-1.7v-1h1v2.7zm8 .3v2c0 1.7-1.3 3-3 3s-3-1.3-3-3v-5h6v3zm3-2c0 .7-.4 1.4-1 1.7v-2.7h1v1z\"/></svg>\n","<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\"><path d=\"m8.5 2c-3 0-5.5 2.5-5.5 5.5 0 .8.2 1.5.4 2.2l.2.3-.8 3.1 2.9-.9.3.2c.7.4 1.6.6 2.5.6 3 0 5.5-2.5 5.5-5.5s-2.5-5.5-5.5-5.5zm-7.5 5.5c0-4.1 3.4-7.5 7.5-7.5s7.5 3.4 7.5 7.5-3.4 7.5-7.5 7.5c-1.1 0-2.1-.2-3.1-.7l-5.4 1.7 1.5-5.9c-.3-.8-.5-1.7-.5-2.6z\" /></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill='currentcolor'><path d=\"M11 4v-4h-8c-1.7 0-3 1.3-3 3v13h16v-12h-5zm-8-2h6v2h-6c-.6 0-1-.4-1-1s.4-1 1-1zm11 12h-12v-8.2c.1 0 .2 0 .3.1h.2c.1.1.3.1.5.1h11v8z\"/><circle cx=\"11\" cy=\"10\" r=\"1\"/></svg>\n","<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentcolor\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.5 0l4.243 4.243-11.5 11.757h-4.243v-4.243l11.5-11.757zm0 3l-9.5 9.586v1.414h1.414l9.5-9.586-1.414-1.414zm-2.5 11v2h7v-2h-7z\" /></svg>\n","<svg viewBox=\"0 0 16 16\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5 2V4H3V0H16V13H12V11H14V2H5Z\" />\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M13 3H0V16H13V3ZM2 14V5H11V14H2Z\" />\n</svg>\n","<svg fill='currentcolor' viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><g><path d=\"m0 0v20h20v-20zm18 18h-16v-16h16z\"/><path d=\"m15 5h-10v2h10z\"/><path d=\"m15 9h-10v2h10z\"/><path d=\"m15 13h-10v2h10z\"/></g></svg>\n","<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\" fill='currentcolor'><path d=\"M13 4v-4h-10v4h-3v9h3v3h10v-3h3v-9h-3zm-8-2h6v2h-6v-2zm6 12h-6v-3h6v3zm3-3h-1v-2h-10v2h-1v-5h12v5zm-10.2-2.4c.442 0 .8-.358.8-.8 0-.442-.358-.8-.8-.8-.442 0-.8.358-.8.8 0 .442.358.8.8.8z\" /></svg>\n","<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill='currentcolor'><path fill-rule=\"evenodd\" d=\"M7 0H0v15h15V8h-2v5H2V2h5V0zm0 10.9142l8.7072-8.7071L14.293.7928 7 8.0858l-2.2928-2.293L3.293 7.2071 7 10.9142z\" clip-rule=\"evenodd\"/></svg>\n","<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- Generator: Adobe Illustrator 23.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->\n<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 16 18\" fill='currentcolor' xml:space=\"preserve\">\n<style type=\"text/css\">\n\t.st0{fill-rule:evenodd;clip-rule:evenodd;}\n</style>\n<path class=\"st0\" d=\"M6.1,4.4c-0.4-0.9-1-1.7-1.4-2.1C4.4,2.1,4,2,3.7,2C3.5,2,3.3,2.1,3.2,2.2C3,2.4,3,2.6,3,2.9\n\tc0,0.3,0.2,0.6,0.5,0.9C4,4.1,4.9,4.6,5.8,4.9C6,4.9,6.2,5,6.3,5C6.3,4.8,6.2,4.6,6.1,4.4z M6.9,5C6.9,5,6.9,5,6.9,5\n\tC6.9,5,6.9,5,6.9,5z M6,0.9c0.7,0.6,1.5,1.7,2,2.8c0.5-1.1,1.3-2.2,2-2.8c1.4-1.2,3.4-1.1,4.4,0.1c1,1.1,0.8,2.9-0.3,4.1H16v2v2v2\n\th-1v5v2h-2H3H1v-2v-5H0V9V7V5h1.9C0.8,3.8,0.7,2.1,1.6,0.9C2.7-0.3,4.7-0.3,6,0.9z M9.9,4.4c0.4-0.9,1-1.7,1.4-2.1\n\tC11.6,2.1,12,2,12.3,2c0.3,0,0.5,0.1,0.6,0.2C13,2.4,13,2.6,13,2.9c0,0.3-0.2,0.6-0.5,0.9c-0.4,0.4-1.3,0.8-2.3,1.1\n\tC10,4.9,9.8,5,9.7,5C9.7,4.8,9.8,4.6,9.9,4.4z M9.1,5C9.1,5,9.1,5,9.1,5C9.1,5,9.1,5,9.1,5z M14,7H2v2h1h10h1V7z M3,11h10v5H3V11z\"\n\t/>\n</svg>\n","<svg viewBox=\"0 0 20 20\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\"><path clip-rule=\"evenodd\" d=\"M3 10a4 4 0 1 1 8 0 4 4 0 0 1-8 0Zm4-6a6 6 0 1 0 0 12A6 6 0 0 0 7 4Zm5.333 11.963A8.034 8.034 0 0 0 14 13.873a4.002 4.002 0 0 0 0-7.747 8.034 8.034 0 0 0-1.668-2.09 6 6 0 1 1 0 11.927Z\"/></svg>\n","import * as IconPack from '@foxford/icon-pack'\n\nimport Book from './images/book.module.svg'\nimport BlackBoard from './images/blackBoard.module.svg'\nimport Burger from './images/burger.module.svg'\nimport Eye from './images/eye.module.svg'\nimport Email from './images/email.module.svg'\nimport Sort from './images/sort.module.svg'\nimport Unsort from './images/unsort.module.svg'\nimport Person from './images/person.module.svg'\nimport Diamond from './images/diamond.module.svg'\nimport DiamondFIlled from './images/diamondFilled.module.svg'\nimport DiamondSolid from './images/diamondSolid.module.svg'\nimport InfoInverse from './images/infoInverse.module.svg'\nimport List from './images/list.module.svg'\nimport Login from './images/login.module.svg'\nimport Logout from './images/logout.module.svg'\nimport Fire from './images/fire.module.svg'\nimport Camps from './images/camps.module.svg'\nimport Cart from './images/cart.module.svg'\nimport Clock from './images/clock.module.svg'\nimport ClockFilled from './images/clockFilled.module.svg'\nimport Courses from './images/courses.module.svg'\nimport Discount from './images/discount.module.svg'\nimport Externat from './images/externat.module.svg'\nimport Headphones from './images/headphones.module.svg'\nimport PriceTag from './images/priceTag.module.svg'\nimport Prof from './images/prof.module.svg'\nimport Phone from './images/phone.module.svg'\nimport Star from './images/star.module.svg'\nimport Settings from './images/settings.module.svg'\nimport Student from './images/student.module.svg'\nimport Target from './images/target.module.svg'\nimport Textbook from './images/textbook.module.svg'\nimport Trophy from './images/trophy.module.svg'\nimport Message from './images/message.module.svg'\nimport Wallet from './images/wallet.module.svg'\nimport Edit from './images/edit.module.svg'\nimport Copy from './images/copy.module.svg'\nimport Page from './images/page.module.svg'\nimport Print from './images/print.module.svg'\nimport Objective from './images/objective.module.svg'\nimport Present from './images/present.module.svg'\nimport Coins from './images/coins.module.svg'\n\nimport type { IconPackIconName, IconNameDefault } from './types'\n\nexport const iconPackIcons = Object.keys(IconPack).reduce((icons, name) => {\n const iconName = name[0].toLowerCase() + name.slice(1)\n icons[iconName] = IconPack[name]\n\n return icons\n}, {} as Record<IconPackIconName, React.FC>)\n\nexport const defaultIcons: Record<IconNameDefault, React.FC> = {\n book: Book,\n blackBoard: BlackBoard,\n burger: Burger,\n eye: Eye,\n email: Email,\n sort: Sort,\n unsort: Unsort,\n person: Person,\n diamond: Diamond,\n diamondFilled: DiamondFIlled,\n diamondSolid: DiamondSolid,\n infoInverse: InfoInverse,\n list: List,\n login: Login,\n logout: Logout,\n fire: Fire,\n camps: Camps,\n cart: Cart,\n clock: Clock,\n clockFilled: ClockFilled,\n courses: Courses,\n discount: Discount,\n externat: Externat,\n headphones: Headphones,\n page: Page,\n priceTag: PriceTag,\n phone: Phone,\n prof: Prof,\n star: Star,\n settings: Settings,\n student: Student,\n target: Target,\n textbook: Textbook,\n trophy: Trophy,\n message: Message,\n wallet: Wallet,\n edit: Edit,\n copy: Copy,\n print: Print,\n objective: Objective,\n present: Present,\n coins: Coins,\n calendar: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='21' height='20' viewBox='0 0 21 20' fill='currentcolor'>\n <path d='M.8 19.8h19.4c.4 0 .7-.3.7-.7V2.4a.7.7 0 0 0-.8-.8h-3.7V1A.7.7 0 1 0 15 1v.5H6V1a.7.7 0 1 0-1.4 0v.5H.8a.7.7 0 0 0-.7.8V19c0 .5.4.8.8.8zM1.5 3h3v.5a.7.7 0 1 0 1.5 0V3h9v.5a.7.7 0 1 0 1.5 0V3h3v2h-18V3zm0 3.5h18v12h-18v-12z' />\n <path d='M15.8 10H5.2a.7.7 0 0 0-.7.7c0 .4.3.8.7.8h10.6c.4 0 .7-.4.7-.8a.7.7 0 0 0-.7-.8zm-5.3 3.6H5.2a.7.7 0 0 0-.7.7c0 .5.3.8.7.8h5.3c.4 0 .7-.2.7-.7a.7.7 0 0 0-.7-.7z' />\n </svg>\n ),\n calendar_simple: () => (\n <svg width='16' height='16' viewBox='0 0 16 16' fill='currentcolor' xmlns='http://www.w3.org/2000/svg'>\n <path d='M13 2V0H11V2H5V0H3V2H0V4V5V16H16V5V4V2H13ZM14 14H2V6H14V14Z' />\n </svg>\n ),\n chevronDown: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='21' height='13' viewBox='0 0 21 13' fill='currentcolor'>\n <path d='M10.109 10.604l-7.74-8.297a1.42 1.42 0 0 1 0-1.911 1.201 1.201 0 0 1 1.783 0l6.848 7.342 6.848-7.342a1.202 1.202 0 0 1 1.783 0 1.421 1.421 0 0 1 0 1.911l-7.74 8.297a1.214 1.214 0 0 1-.89.396c-.323 0-.646-.132-.892-.396z' />\n </svg>\n ),\n chevronUp: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='21' height='13' viewBox='0 0 21 13' fill='currentcolor'>\n <path d='M10.109 1.396l-7.74 8.297a1.42 1.42 0 0 0 0 1.911c.493.528 1.29.528 1.783 0l6.848-7.342 6.848 7.342c.492.528 1.29.528 1.783 0a1.421 1.421 0 0 0 0-1.911l-7.74-8.297a1.214 1.214 0 0 0-.89-.396c-.323 0-.646.132-.892.396z' />\n </svg>\n ),\n chevronRight: () => (\n <svg width='8' height='14' viewBox='0 0 8 14' fill='currentcolor' xmlns='http://www.w3.org/2000/svg'>\n <path d='M0 1.87054L1.39309 0.5L8 7L1.39309 13.5L0 12.1295L5.21383 7L0 1.87054Z' />\n </svg>\n ),\n chevronLeft: () => (\n <svg width='8' height='14' viewBox='0 0 8 14' fill='currentcolor' xmlns='http://www.w3.org/2000/svg'>\n <path d='M8 12.1295L6.60691 13.5L0 7L6.60691 0.5L8 1.87054L2.78617 7L8 12.1295Z' />\n </svg>\n ),\n cross: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18' fill='currentcolor'>\n <path d='M17.333.668a1.845 1.845 0 0 0-2.61 0l-5.723 5.722-5.723-5.722a1.845 1.845 0 1 0-2.61 2.61l5.723 5.723-5.723 5.724a1.845 1.845 0 1 0 2.61 2.61l5.723-5.723 5.723 5.723c.36.36.832.54 1.305.54a1.845 1.845 0 0 0 1.305-3.151l-5.723-5.721 5.723-5.724a1.845 1.845 0 0 0 0-2.61z' />\n </svg>\n ),\n dialog: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='25' height='25' viewBox='0 0 25 25' fill='currentcolor'>\n <path d='M3.66 3.664a12.422 12.422 0 0 1 8.84-3.664c3.342 0 6.48 1.303 8.841 3.664 4.556 4.554 4.886 11.83.828 16.761.56 1.146 1.22 1.91 1.969 2.277.455.225.712.717.639 1.22a1.16 1.16 0 0 1-.974.979 5.953 5.953 0 0 1-.886.068c-1.534 0-3.147-.53-4.493-1.456a12.52 12.52 0 0 1-5.923 1.487 12.417 12.417 0 0 1-8.84-3.659 12.414 12.414 0 0 1-3.661-8.836c0-3.334 1.299-6.48 3.66-8.84zm1.001 16.672a11.02 11.02 0 0 0 7.84 3.245c1.98 0 3.922-.528 5.614-1.523.11-.063.236-.1.356-.1.152 0 .31.053.435.147 1.602 1.24 3.215 1.424 3.922 1.44-.843-.628-1.55-1.602-2.142-2.958a.711.711 0 0 1 .12-.753c3.876-4.377 3.672-11.045-.465-15.18a11.02 11.02 0 0 0-7.84-3.246 11.02 11.02 0 0 0-7.84 3.245c-4.326 4.33-4.326 11.365 0 15.683zM7.581 8.125h10.463c.392 0 .706.278.706.625s-.314.625-.706.625h-10.464c-.392 0-.706-.278-.706-.625s.32-.625.706-.625zm0 3.875h10.463c.392 0 .706.278.706.625s-.314.625-.706.625h-10.464c-.392 0-.706-.278-.706-.625s.32-.625.706-.625zm0 4h10.463c.392 0 .706.278.706.625s-.314.625-.706.625h-10.464c-.392 0-.706-.278-.706-.625s.32-.625.706-.625z' />\n </svg>\n ),\n dropDownArrow: () => (\n <svg width='11' height='7' viewBox='0 0 11 7' fill='currentcolor'>\n <path d='M4.288 5.703l.117.139c.393.393.973.441 1.302.112l.009-.009.123-.105.104-.122 4.015-4.015c.38-.38.384-1.017-.007-1.408-.393-.393-1.025-.389-1.417.002l-3.412 3.412-3.419-3.419c-.388-.388-1.016-.388-1.409.005-.391.391-.393 1.021-.005 1.409l3.999 3.999z' />\n </svg>\n ),\n externalLink: () => (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='currentcolor'>\n <path className='st0' d='M0 0h16v16h-16z' fillOpacity='0' />\n <path className='st1' d='M9 0v2h3.6l-7.3 7.3 1.4 1.4 7.3-7.3v3.6h2v-7zM14 14h-12v-12h4v-2h-6v16h16v-6h-2z' />\n </svg>\n ),\n file: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='17' height='20' viewBox='0 0 17 20' fill='currentcolor'>\n <path d='M16.734 5.931c-.176-.416-.388-.745-.636-.988l-4.138-4.059c-.247-.242-.583-.45-1.007-.624-.425-.173-.814-.26-1.167-.26h-8.488a1.24 1.24 0 0 0-.901.364 1.192 1.192 0 0 0-.372.885v17.481c0 .347.124.642.372.885.247.242.548.364.901.364h14.429c.353 0 .654-.122.901-.364.248-.243.371-.538.371-.885v-11.654c0-.347-.088-.729-.265-1.145zm-6.524-4.161c.256.087.437.182.544.286l4.15 4.071c.106.104.204.282.292.534h-4.986v-4.892zm5.092 16.545h-13.58v-16.651h6.79v5.412c0 .347.124.642.372.884.247.243.548.365.901.365h5.517v9.989z' />\n </svg>\n ),\n fileBordered: () => (\n <svg width='16' height='16' viewBox='0 0 16 16' fill='currentcolor' xmlns='http://www.w3.org/2000/svg'>\n <path d='M8.3 0H6H0V16H13H16V0H8.3ZM8 2.5L10.5 5H8V2.5ZM2 14V2H6V7H11V14H2ZM14 14H13V7V4.7L10.3 2H14V14Z' />\n </svg>\n ),\n lessons: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='22' height='16' viewBox='0 0 22 16' fill='currentcolor'>\n <path d='M21.8 8.4a1.8 1.8 0 0 0-.8-.8 2.4 2.4 0 0 0-1-.3h-2.3V5.5c0-.7-.3-1.3-.8-1.8a2.5 2.5 0 0 0-2-.8H9v-.4c0-.7-.2-1.3-.7-1.8A2.5 2.5 0 0 0 6.4 0H2.6C2 0 1.3.3.8.8S0 1.8 0 2.6v10.8c0 .7.3 1.3.8 1.8a2.5 2.5 0 0 0 1.8.8H15c.6 0 1 0 1.7-.4.6-.3 1-.6 1.3-1l3.4-4c.4-.6.6-1 .6-1.5a1.8 1.8 0 0 0-.2-.6zM1.5 2.6c0-.3 0-.6.3-.8.2-.2.5-.3.8-.3h3.7c.3 0 .5 0 .7.3.3.2.4.5.4.8v.7c0 .3 0 .5.3.8.2.3.5.4.8.4H15c.4 0 .7 0 1 .3l.2.8v1.8H7.4c-.6 0-1 0-1.6.4s-1 .6-1.4 1l-3 3.5V2.6zm18.8 7l-3.4 4-1 .7-1 .2H2.7c-.4 0-.6 0-.6-.4l.2-.3 3.4-4c.2-.4.4-.6.8-.7.3-.2.7-.3 1-.3H20c.3 0 .5.2.5.4 0 .3 0 .4-.2.6z' />\n </svg>\n ),\n pencil: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='19' height='19' viewBox='0 0 19 19' fill='currentcolor'>\n <path d='M17.863 5.258l-4.113-4.122.283-.283a2.9 2.9 0 0 1 4.113.005 2.909 2.909 0 0 1 0 4.117l-.283.283zm-5.388-2.847l4.118 4.117-11.553 11.551-5.04.921.92-5.038 11.556-11.551z' />\n </svg>\n ),\n phoneNoFill: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32' fill='currentcolor'>\n <path d='M25.28 19.815c-.655-.682-1.445-1.047-2.282-1.047-.83 0-1.627.358-2.309 1.04l-2.133 2.127-.52-.27a8.579 8.579 0 0 1-.669-.358c-1.998-1.27-3.814-2.923-5.556-5.064-.844-1.066-1.41-1.964-1.822-2.876.553-.506 1.066-1.032 1.566-1.539l.567-.574c1.418-1.417 1.418-3.254 0-4.671l-1.843-1.843c-.21-.21-.425-.426-.628-.642-.405-.418-.83-.85-1.27-1.255-.654-.649-1.437-.993-2.26-.993-.824 0-1.621.344-2.296.993l-.014.013-2.295 2.316a4.94 4.94 0 0 0-1.465 3.138c-.162 1.971.419 3.808.864 5.01 1.094 2.95 2.728 5.684 5.165 8.614 2.957 3.53 6.514 6.319 10.579 8.283 1.552.736 3.625 1.607 5.94 1.755l.426.014c1.56 0 2.87-.56 3.895-1.674l.027-.034c.351-.425.756-.81 1.182-1.222.29-.277.587-.567.877-.87.669-.696 1.02-1.506 1.02-2.337 0-.837-.358-1.64-1.04-2.315l-3.706-3.72zm1.595 6.857c-.227.245-.46.465-.71.71-.377.36-.76.738-1.121 1.163-.588.628-1.28.924-2.187.924l-.267-.006c-1.727-.11-3.378-.572-4.581-1.148-1.565-.757-6.166-3.373-9.24-6.667-3.39-3.633-5.311-8.135-5.772-9.379a8.219 8.219 0 0 1-.51-3.704 2.67 2.67 0 0 1 .802-1.727l1.983-1.983c.285-.268.587-.413.884-.413.366 0 .663.22.849.407.372.349.71.692 1.064 1.058l.552.564 1.589 1.589c.616.616.616 1.186 0 1.802l-.5.5c-.489.5-1.206 1.178-1.712 1.631-.53.53-.436 1.018-.331 1.35.242.596 1.767 3.576 3.98 5.982 1.856 2.017 4.38 3.504 5.231 4.042.239.152.483.274.715.39.21.105.407.203.576.308l.07.04c.198.1.384.146.576.146.482 0 .785-.302.883-.401l2.241-2.2c.198-.198.512-.437.878-.437.361 0 .658.227.838.425l3.215 3.215c.6.593.6 1.204.006 1.82zm-9.589-19.063a8.56 8.56 0 0 1 4.659 2.417 8.606 8.606 0 0 1 2.417 4.658c.074.446.459.756.897.756l.156-.013c.5-.081.83-.554.75-1.054a10.413 10.413 0 0 0-2.924-5.637 10.413 10.413 0 0 0-5.637-2.923.916.916 0 0 0-1.053.743.902.902 0 0 0 .735 1.053zm14.664 6.501a17.13 17.13 0 0 0-4.814-9.283 17.13 17.13 0 0 0-9.282-4.813.908.908 0 0 0-1.047.743c-.08.5.25.965.75 1.053 3.146.533 6.015 2.025 8.297 4.3a15.294 15.294 0 0 1 4.3 8.297c.074.446.46.756.898.756a.894.894 0 0 0 .898-1.053z' />\n </svg>\n ),\n radioChecked: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='currentcolor'>\n <path\n fillRule='evenodd'\n d='M10 5c-2.8 0-5 2.2-5 5s2.2 5 5 5 5-2.2 5-5-2.2-5-5-5zm0-5c-5.5 0-10 4.5-10 10s4.5 10 10 10 10-4.5 10-10-4.5-10-10-10zm0 18c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8z'\n />\n </svg>\n ),\n radioNotChecked: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='currentcolor'>\n <path\n fillRule='evenodd'\n d='M10 0c-5.5 0-10 4.5-10 10s4.5 10 10 10 10-4.5 10-10-4.5-10-10-10zm0 18c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8z'\n />\n </svg>\n ),\n search: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='29' height='30' viewBox='0 0 29 30' fill='currentcolor'>\n <path d='M28.6 27.3l-7-7.4a12.2 12.2 0 0 0 2.7-8c0-6.6-5.3-12-12-12C6 0 .6 5.4.6 12c0 6.8 5.4 12.2 12 12.2 2.4 0 4.7-.7 6.7-2.2l7 7.5a1.5 1.5 0 0 0 2.3 0 1.6 1.6 0 0 0 0-2.2zm-16.2-24c5 0 8.8 4 8.8 8.8 0 5-4 9-8.8 9s-8.8-4-8.8-9c0-4.8 4-8.8 8.8-8.8z' />\n </svg>\n ),\n tasks: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='18' height='20' viewBox='0 0 18 20' fill='currentcolor'>\n <path d='M17.2 2H13V.8c0-.4-.3-.7-.7-.7H5.8c-.5 0-.8.3-.8.7v4c0 .3.3.6.8.6h4.8c.4 0 .7-.3.7-.7 0-.4-.3-.7-.7-.7h-4V1.4h5V3c0 .3.2.6.7.6h4v15H1.7v-15h1.2c.4 0 .8-.3.8-.7 0-.5-.4-1-.8-1h-2C.4 2 0 2.6 0 3v16.3c0 .4.4.7.8.7h16.4c.4 0 .8-.3.8-.8V3c0-.5-.4-1-.8-1z' />\n <path d='M12.6 9a.8.8 0 0 0-1 0l-3.7 3.3L6.4 11a.8.8 0 0 0-1 0 .7.7 0 0 0 0 1l1.8 1.8c.2.2.4.2.6.2 0 0 .3 0 .4-.2l4.2-4a.7.7 0 0 0 0-1z' />\n </svg>\n ),\n tinyCross: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 26 26' fill='currentcolor'>\n <path\n fillRule='evenodd'\n d='M10.7 12.8L1 22.4c-.5.6-.5 1.6 0 2.2.8.6 1.7.6 2.3 0L13 15l9.5 9.6c.6.6 1.6.6 2.2 0 .6-.6.6-1.6 0-2.2L15 12.8l9.6-9.5c.6-.6.6-1.6 0-2.2-.6-.5-1.6-.5-2.2 0L13 10.7 3.3 1C2.8.6 1.8.6 1.2 1c-.6.7-.6 1.7 0 2.3l9.5 9.5z'\n />\n </svg>\n ),\n sharpCross: () => (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='currentcolor'>\n <path d='M8 6.53l6.53-6.53 1.47 1.47-6.53 6.53 6.53 6.53-1.47 1.47-6.53-6.53-6.53 6.53-1.47-1.47 6.53-6.53-6.53-6.53 1.47-1.47z' />\n </svg>\n ),\n plus: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='18' height='19' viewBox='0 0 18 19' fill='currentcolor'>\n <g fillRule='evenodd'>\n <rect width='18' height='3' y='8' rx='1.5' />\n <rect width='18' height='3' y='8' rx='1.5' transform='rotate(90 9 9.5)' />\n </g>\n </svg>\n ),\n plusThin: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='currentcolor'>\n <path fillRule='nonzero' d='M7.875 6.125H14v1.75H7.875V14h-1.75V7.875H0v-1.75h6.125V0h1.75v6.125z' />\n </svg>\n ),\n play: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30' fill='currentcolor'>\n <path d='M28.197 7.501c-4.173-7.173-13.414-9.63-20.64-5.489-7.227 4.141-9.703 13.314-5.53 20.486 4.172 7.174 13.413 9.632 20.639 5.49 7.227-4.142 9.704-13.314 5.53-20.487zm-7.042 17.889c-5.78 3.313-13.173 1.347-16.511-4.392-3.338-5.738-1.357-13.076 4.424-16.388 5.78-3.314 13.174-1.348 16.512 4.39 3.337 5.74 1.356 13.077-4.425 16.39zm-.604-11l-7.911-4.58c-.72-.418-1.302-.084-1.298.744l.04 9.091c.004.828.593 1.165 1.316.75l7.851-4.499c.722-.414.724-1.088.003-1.506z' />\n </svg>\n ),\n reload: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='19' height='20' viewBox='0 0 19 20' fill='currentcolor'>\n <g fillRule='evenodd'>\n <path d='M1.638 8.346c.653 0 1.243-.386 1.495-.978a6.896 6.896 0 0 1 6.351-4.164c1.575 0 3.019.53 4.176 1.412l-.907.138a.702.702 0 0 0-.593.594.694.694 0 0 0 .411.729l4.99 2.208a.72.72 0 0 0 .673-.05.695.695 0 0 0 .325-.582l.026-5.408a.697.697 0 0 0-.501-.669.714.714 0 0 0-.796.28L16.6 2.873A10.202 10.202 0 0 0 9.484 0C5.284 0 1.672 2.523.132 6.109a1.586 1.586 0 0 0 .143 1.516c.303.45.815.72 1.363.72zM18.693 12.344a1.643 1.643 0 0 0-1.364-.721c-.652 0-1.242.385-1.494.977a6.896 6.896 0 0 1-6.351 4.165 6.872 6.872 0 0 1-4.176-1.412l.907-.138a.702.702 0 0 0 .593-.595.694.694 0 0 0-.411-.728l-4.99-2.208a.72.72 0 0 0-.673.05.695.695 0 0 0-.325.582l-.026 5.407a.697.697 0 0 0 .501.67c.3.09.623-.025.796-.28l.688-1.017a10.201 10.201 0 0 0 7.116 2.872c4.2 0 7.812-2.523 9.352-6.109a1.586 1.586 0 0 0-.143-1.515z' />\n </g>\n </svg>\n ),\n checkCircle: () => (\n <svg height='14' viewBox='0 0 14 14' width='14' xmlns='http://www.w3.org/2000/svg' fill='currentcolor'>\n <path d='m4.13 5.67-.98.98 3.15 3.15 7-7-.98-.98-6.02 6.02zm8.47 1.33c0 3.08-2.52 5.6-5.6 5.6s-5.6-2.52-5.6-5.6 2.52-5.6 5.6-5.6c.56 0 1.05.07 1.54.21l1.12-1.12c-.84-.28-1.75-.49-2.66-.49-3.85 0-7 3.15-7 7s3.15 7 7 7 7-3.15 7-7z' />\n </svg>\n ),\n info: () => (\n <svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='currentcolor'>\n <path\n fillRule='evenodd'\n d='M10.986 6.995v-2.019h-1.972v2.02h1.972zm0 8.029v-6.01h-1.972v6.01h1.972zm-.986-15.024c1.827 0 3.518.457 5.072 1.37a9.478 9.478 0 0 1 3.558 3.558 9.835 9.835 0 0 1 1.37 5.072 9.835 9.835 0 0 1-1.37 5.072 9.478 9.478 0 0 1-3.558 3.558 9.835 9.835 0 0 1-5.072 1.37 9.835 9.835 0 0 1-5.072-1.37 9.657 9.657 0 0 1-3.558-3.582 9.79 9.79 0 0 1-1.37-5.048 9.79 9.79 0 0 1 1.37-5.048 9.842 9.842 0 0 1 3.582-3.582 9.79 9.79 0 0 1 5.048-1.37z'\n />\n </svg>\n ),\n check: () => (\n <svg width='20px' height='20px' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='currentcolor'>\n <g stroke='none' strokeWidth='1' fillRule='evenodd'>\n <g transform='translate(-675.000000, -7517.000000)'>\n <g transform='translate(675.000000, 7517.000000)'>\n <path d='M10,0 C15.5228475,-1.01453063e-15 20,4.4771525 20,10 C20,15.5228475 15.5228475,20 10,20 C4.4771525,20 6.76353751e-16,15.5228475 0,10 C-6.76353751e-16,4.4771525 4.4771525,1.01453063e-15 10,0 Z M14.2928932,6.29289322 L9,11.5857864 L6.70710678,9.29289322 L5.29289322,10.7071068 L9,14.4142136 L15.7071068,7.70710678 L14.2928932,6.29289322 Z' />\n </g>\n </g>\n </g>\n </svg>\n ),\n home: () => (\n <svg width='16' height='16' viewBox='0 0 16 16' fill='currentcolor' xmlns='http://www.w3.org/2000/svg'>\n <g>\n <rect width='16' height='16' fill='black' fillOpacity='0' />\n <path\n id='house_2'\n fillRule='evenodd'\n clipRule='evenodd'\n d='M7 16V11H9V16H15V5L8 0L1 5V16H7ZM5 14H3V6.02917L8 2.45776L13 6.02917V14H11V9H5V14Z'\n />\n </g>\n </svg>\n ),\n questionFilled: () => (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentcolor'>\n <path className='st0' fillOpacity='0' d='M0 0h20v20h-20z' />\n <path\n className='st1'\n d='M17.1 2.9c-1.9-1.8-4.4-2.9-7.1-2.9-5.5 0-10 4.5-10 10s4.5 10 10 10 10-4.5 10-10c0-2.7-1.1-5.2-2.9-7.1zm-6.1 12.1h-2v-2h2v2zm.5-4.5c-.3.2-.6.6-.5.9v.1h-2v-.1c0-1.1.6-2.2 1.7-2.7.5-.2.8-.8.8-1.3 0-.8-.7-1.4-1.5-1.4s-1.5.6-1.5 1.4h-2c0-1.9 1.6-3.4 3.5-3.4s3.5 1.5 3.5 3.4c0 1.3-.8 2.5-2 3.1z'\n />\n </svg>\n ),\n document: () => (\n <svg width='17' height='17' viewBox='0 0 17 17' fill='currentcolor' xmlns='http://www.w3.org/2000/svg'>\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M16.0004 4.50038L12.4648 0.964844L5.36865 8.06104L5.39378 11.5714L8.90418 11.5966L16.0004 4.50038ZM7.37459 8.88353L12.4648 3.79327L13.172 4.50038L8.08169 9.59063L7.37961 9.58561L7.37459 8.88353Z'\n />\n <path d='M13 15V10H15V17H0V2H7V4H2V15H13Z' />\n </svg>\n ),\n cancel: () => (\n <svg width='16' height='16' viewBox='0 0 16 16' fill='currentcolor' xmlns='http://www.w3.org/2000/svg'>\n <path d='M8 0C3.6 0 0 3.6 0 8C0 12.4 3.6 16 8 16C12.4 16 16 12.4 16 8C16 3.6 12.4 0 8 0ZM8 14C4.7 14 2 11.3 2 8C2 4.7 4.7 2 8 2C11.3 2 14 4.7 14 8C14 11.3 11.3 14 8 14Z' />\n <path d='M9.7998 4.79999L7.9998 6.59999L6.1998 4.79999L4.7998 6.19999L6.5998 7.99999L4.7998 9.79999L6.1998 11.2L7.9998 9.39999L9.7998 11.2L11.1998 9.79999L9.3998 7.99999L11.1998 6.19999L9.7998 4.79999Z' />\n </svg>\n ),\n playPause: () => (\n <svg width='16' height='12' viewBox='0 0 16 12' fill='currentcolor' xmlns='http://www.w3.org/2000/svg'>\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M7 6L5.46341 4.68292L2 1.71429L0 0V2.63416V9.36584V12L2 10.2857L5.46341 7.31708L7 6ZM3.92682 6L2 4.34845V7.65155L3.92682 6ZM14 0H16V12H14V0ZM12 0H10V12H12V0Z'\n />\n </svg>\n ),\n video: () => (\n <svg width='16' height='12' viewBox='0 0 16 12' fill='currentcolor' xmlns='http://www.w3.org/2000/svg'>\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M2 2H9V10H2V2ZM0 0H2H9H11V2V6V10V12H9H2H0V10V2V0ZM11 6L12.6008 4.71938L14 3.6L16 2V4.56125V7.43875V10L14 8.4L12.6008 7.28062L11 6Z'\n />\n </svg>\n ),\n}\n\nexport const ICONS = { ...defaultIcons, ...iconPackIcons }\n\nexport const ICONS_DEFAULT = { ...iconPackIcons, ...defaultIcons }\n","import type { CSSProperties } from 'react'\nimport { css } from 'styled-components'\nimport type { ThemedStyledProps, DefaultTheme, CSSObject, FlattenInterpolation, ThemeProps } from 'styled-components'\nimport { screenMinM, screenMaxM, screenMaxS, screenMinL, screenMaxL, screenMaxXs, screenMaxXxs } from 'mixins/screen'\nimport { getMediaQueryByResponsiveProp, desktopFirst } from 'mixins/shared'\nimport type { MediaQuery } from 'mixins/screen'\nimport type { Breakpoint } from 'shared/types'\n\ntype ResponsivePropKey = 'size' | keyof CSSProperties\n\ntype ResponsiveProps<K extends ResponsivePropKey, V> = {\n [key in K]?: V | [DESKTOP: V, TABLET: V, MOBILE: V] | [XL: V, L: V, M: V, S: V, XS: V, XXS: V]\n} & {\n [key in `${K}${Breakpoint}`]?: V\n}\n\ntype MediaFunction = ReturnType<ReturnType<MediaQuery>>\n\n/**\n *\n * Factory to create mixins to enable responsive interface for any set of props\n */\nfunction createResponsivePropsMixin<K extends ResponsivePropKey, V, P extends ResponsiveProps<K, V>>(\n propsKeys: K[],\n buildCSSObject: (propKey: K, propValue: V, props: ThemedStyledProps<P, DefaultTheme>) => CSSObject\n): (props: ThemedStyledProps<P, DefaultTheme>) => FlattenInterpolation<ThemeProps<DefaultTheme>> {\n const propsRegExp = new RegExp(`^(${propsKeys.join('|')})$`)\n const breakpointsPropsRegExp = new RegExp(`^(${propsKeys.join('|')})(XXS|XS|S|M|L|XL)$`)\n const breakpointsRegExp = /(XXS|XS|S|M|L|XL)$/\n\n const deviceQueries = [screenMinM, screenMaxM, screenMaxS]\n const breakpointsQueries = [screenMinL, screenMaxL, screenMaxM, screenMaxS, screenMaxXs, screenMaxXxs]\n\n return (props) => {\n const propsKeys = Object.keys(props).reduce(\n (groups, propKey) => {\n if (propsRegExp.test(propKey)) groups[0].push(propKey)\n else if (breakpointsPropsRegExp.test(propKey)) groups[1].push(propKey)\n\n return groups\n },\n [[], []] as [string[], string[]]\n )\n\n const interpolations = propsKeys[0].reduce((acc, propKey) => {\n const propValue: V | V[] = props[propKey]\n\n if (!Array.isArray(propValue)) {\n const cssObject = buildCSSObject(propKey as K, propValue, props)\n\n if (Object.keys(cssObject).length > 0) {\n acc.push(cssObject)\n }\n } else if (propValue.length > 0) {\n const mediaFunctions: MediaFunction[] = []\n const queries = propValue.length > deviceQueries.length ? breakpointsQueries : deviceQueries\n\n for (let i = 0; i < propValue.length; i++) {\n if (!queries[i]) break\n\n const cssObject = buildCSSObject(propKey as K, propValue[i], props)\n\n if (Object.keys(cssObject).length > 0) {\n mediaFunctions.push(queries[i]()`${cssObject}`)\n }\n }\n\n acc.push(...mediaFunctions)\n }\n\n return acc\n }, [] as (CSSObject | MediaFunction)[])\n\n const breakpointsInterpolations = propsKeys[1].sort(desktopFirst).reduce((acc, propKey) => {\n const cssObject = buildCSSObject(propKey.replace(breakpointsRegExp, '') as K, props[propKey], props)\n\n if (Object.keys(cssObject).length > 0) {\n acc.push(getMediaQueryByResponsiveProp(propKey)()`${cssObject}`)\n }\n\n return acc\n }, [] as MediaFunction[])\n\n return css`\n ${interpolations}\n ${breakpointsInterpolations}\n `\n }\n}\n\nexport type { ResponsiveProps }\n\nexport { createResponsivePropsMixin }\n","export const commonPropKeyRegExp =\n /^(preset|sizeUnits|sizes|size|dynamicSizeDeclaration|marginUnits|color|backgroundColor|borderColor|fontColor|palette)$/\n\nexport const colorSchemaPropKeyRegExp = /^(primary|secondary|tertiary|quaternary)$/\n\nexport const responsiveSizePropKeyRegExp = /^size(XXS|XS|S|M|L|XL)$/\n\nexport const marginPropKeyRegExp = /^(margin|marginTop|marginRight|marginBottom|marginLeft)$/\n\nexport const responsiveMarginPropKeyRegExp = /^(margin|marginTop|marginRight|marginBottom|marginLeft)(XXS|XS|S|M|L|XL)$/\n\nexport const responsiveFluidPropKeyRegExp = /^(fluid)(XXS|XS|S|M|L|XL)$/\n\nexport const responsiveWidthPropKeyRegExp = /^(width)(XXS|XS|S|M|L|XL)$/\n\nexport const responsivePaddingPropKeyRegExp =\n /^(padding|paddingTop|paddingRight|paddingBottom|paddingLeft)(XXS|XS|S|M|L|XL)$/\n\nexport const responsiveFontSizePropKeyRegExp = /^(fontSize)(XXS|XS|S|M|L|XL)$/\n\nexport const responsiveHeightPropKeyRegExp = /^(height)(XXS|XS|S|M|L|XL)$/\n","import {\n commonPropKeyRegExp,\n colorSchemaPropKeyRegExp,\n responsiveSizePropKeyRegExp,\n marginPropKeyRegExp,\n responsiveMarginPropKeyRegExp,\n} from 'shared/regexp'\nimport type { CSSGlobalValue } from 'shared/types'\n\nexport const createShouldForwardProp = (...predicates: ((propKey: string) => boolean)[]) => {\n const cache: Record<string, boolean> = Object.create(null)\n\n return (propKey: string) => {\n if (cache[propKey] === undefined) {\n cache[propKey] =\n predicates.every((func) => func(propKey)) &&\n [\n commonPropKeyRegExp,\n colorSchemaPropKeyRegExp,\n responsiveSizePropKeyRegExp,\n marginPropKeyRegExp,\n responsiveMarginPropKeyRegExp,\n ].every((regExp) => !regExp.test(propKey))\n }\n\n return cache[propKey]\n }\n}\n\nexport const isCSSGlobalValue = (value: CSSGlobalValue | string): value is CSSGlobalValue =>\n ['initial', 'inherit', 'unset', 'revert', 'revert-layer'].includes(value)\n","import type { CSSObject } from 'styled-components'\nimport { createResponsivePropsMixin } from 'mixins/create-responsive-props'\nimport { isCSSGlobalValue } from 'shared/utils/style'\nimport type { ResponsiveProps } from 'mixins/create-responsive-props'\nimport type { CSSUnit, Size, CSSGlobalValue, Sizes } from 'shared/types'\n\ntype SizeProperty = 'size'\n\ntype SizeValue = Size | CSSGlobalValue | number\n\ntype ResponsiveSizeProps = ResponsiveProps<SizeProperty, SizeValue> & {\n sizeUnits?: CSSUnit\n sizes?: Partial<Sizes>\n}\n\ntype ResponsiveSizeInterpolationProps<T extends ResponsiveSizeProps = ResponsiveSizeProps> = Omit<T, 'size' | 'sizes'> &\n Required<Pick<T, 'size'>> & {\n sizes: Sizes\n dynamicSizeDeclaration?: (size: Exclude<SizeValue, Size>, sizeUnits: CSSUnit) => CSSObject\n }\n\n/**\n *\n * Mixin enables responsive size interface\n */\nconst responsiveSize = createResponsivePropsMixin<SizeProperty, SizeValue | void, ResponsiveSizeInterpolationProps>(\n ['size'],\n (_, sizeValue, props) => {\n if (sizeValue === undefined || sizeValue === null) return {}\n\n if (typeof sizeValue === 'number' || isCSSGlobalValue(sizeValue)) {\n const cssObject =\n typeof props.dynamicSizeDeclaration === 'function'\n ? props.dynamicSizeDeclaration(sizeValue, props.sizeUnits ?? 'px')\n : { fontSize: typeof sizeValue === 'string' ? sizeValue : `${sizeValue}${props.sizeUnits ?? 'px'}` }\n\n return cssObject\n }\n\n return (props.sizes[sizeValue] ?? {}) as CSSObject\n }\n)\n\nexport type { ResponsiveSizeProps, ResponsiveSizeInterpolationProps }\n\nexport { responsiveSize }\n","import styled from 'styled-components'\nimport { getColor } from 'mixins/color'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport type { StyledIconProps } from './types'\n\nconst shouldForwardIconProp = createShouldForwardProp((propKey) => !['vAlign'].includes(propKey))\n\nexport const Root = styled.span.withConfig<StyledIconProps>({\n shouldForwardProp: shouldForwardIconProp,\n})`\n ${(props) => `\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n color: ${props.color ? getColor(props.color, props) : 'inherit'};\n vertical-align: ${props.vAlign ? props.vAlign : 'baseline'};\n & > svg {\n display: block;\n width: 100%;\n height: 100%;\n fill: currentcolor;\n }\n `}\n\n ${responsiveSize}\n`\n","import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { useClassname } from 'hooks/useClassname'\nimport { SIZES } from './constants'\nimport { ICONS, ICONS_DEFAULT } from './icons'\nimport * as Styled from './style'\nimport type { IconProps } from './types'\n\nconst COMPONENT_NAME = 'Icon'\n\n/**\n *\n * Component accepts all \\<span\\> attributes.\n *\n * Responsive \"size\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [IconProps](https://github.com/foxford/ui/blob/master/src/components/Icon/types.ts)\n */\nconst Icon: React.ForwardRefExoticComponent<IconProps> = withMergedProps<IconProps, HTMLSpanElement>(\n forwardRef((props, ref) => {\n const { size = 'inherit', name = 'unknown', icon, ...restProps } = props\n\n const className = useClassname(COMPONENT_NAME, restProps.className)\n\n const Icon: React.FC | undefined = (restProps.preset === 'brand' ? ICONS : ICONS_DEFAULT)[name]\n\n return (\n <Styled.Root {...restProps} size={size} className={className} ref={ref}>\n {Icon ? <Icon /> : icon}\n </Styled.Root>\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: SIZES,\n }\n)\n\nexport { Icon }\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n fontSize: 42,\n },\n xxl: {\n fontSize: 38,\n },\n xl: {\n fontSize: 34,\n },\n l: {\n fontSize: 30,\n },\n m: {\n fontSize: 26,\n },\n s: {\n fontSize: 22,\n },\n xs: {\n fontSize: 18,\n },\n xxs: {\n fontSize: 14,\n },\n xxxs: {\n fontSize: 10,\n },\n}\n","import { css } from 'styled-components'\n\ntype Display = 'block' | 'inline' | 'inline-block' | 'flex' | 'inline-flex' | 'table-cell' | 'inherit' | 'none'\n\nexport interface DisplayProperty {\n display?: Display\n}\n\nexport const display = (display: Display) => () =>\n css`\n display: ${display};\n `\n","import styled, { css } from 'styled-components'\nimport { display } from 'mixins/display'\nimport { ActionBtnProps } from './ActionBtn'\n\nconst active = css`\n background: ${(props) => props.theme.colors.onahau};\n color: ${(props) => props.theme.colors.accent};\n`\n\nconst notDisabled = css`\n &:hover {\n background: ${(props) => props.theme.colors.mercury};\n }\n &:active {\n ${active}\n }\n`\n\nconst disabled = css`\n cursor: default;\n opacity: 0.6;\n`\n\nexport const Root = styled.div<ActionBtnProps>`\n padding: 4px;\n background: transparent;\n color: ${(props) => props.theme.colors.silver};\n transition: background 0.4s ease-out, color 0.6s ease-out;\n line-height: 0;\n cursor: pointer;\n border-radius: 5px;\n & + & {\n margin-left: 16px;\n }\n ${(props) => (props.disabled ? disabled : notDisabled)}\n ${(props) => (props.active ? active : null)}\n ${(props) =>\n props.display\n ? display(props.display)\n : css`\n display: inline-block;\n `}\n`\n","import { DisplayProperty } from 'mixins/display'\nimport { useClassname } from 'hooks/useClassname'\nimport { BaseProps } from 'shared/interfaces'\nimport { Icon } from 'components/Icon'\nimport type { IconName } from 'components/Icon'\nimport * as Styled from './style'\n\nexport interface ActionBtnProps extends BaseProps, DisplayProperty {\n /** Icon name (for inner Icon component) */\n icon?: IconName\n disabled?: boolean\n active?: boolean\n onClick?(): void\n /**\n * Children react node\n */\n children?: React.ReactNode\n}\n\nActionBtn.displayName = 'ActionBtn'\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`Display`](#/Миксины)\n */\nexport function ActionBtn({ icon, disabled = false, onClick, children, className, active, style }: ActionBtnProps) {\n const _className = useClassname(ActionBtn.displayName, className)\n\n return (\n <Styled.Root className={_className} style={style} disabled={disabled} active={active} onClick={onClick}>\n {icon && <Icon size={16} name={icon} />}\n {children}\n </Styled.Root>\n )\n}\n","import { useMemo } from 'react'\n\n/**\n *\n * @deprecated it will be deleted in near future\n */\nexport function useConfigPriority<T extends object>(minor?: Partial<T>, major?: Partial<T>): Partial<T> {\n return useMemo(() => {\n const minorConfig = minor ?? {}\n const majorConfig = major ?? {}\n const uniqueKeys = [...new Set([...Object.keys(minorConfig), ...Object.keys(majorConfig)])]\n\n return uniqueKeys.reduce((prioritized, key) => {\n let finalVal\n\n if (valid(minorConfig[key])) finalVal = minorConfig[key]\n if (valid(majorConfig[key])) finalVal = majorConfig[key]\n\n return valid(finalVal) ? { ...prioritized, [key]: finalVal } : prioritized\n }, {} as Partial<T>)\n }, [minor, major])\n}\n\nfunction valid(value: unknown): boolean {\n return Boolean(value) || typeof value === 'boolean' || typeof value === 'number' || typeof value === 'string'\n}\n","import { useTheme } from 'styled-components'\nimport { useConfigPriority } from 'hooks/use-config-priority'\nimport { Text } from '../Text'\nimport type { TextHeadingProps, H } from './types'\n\nconst PARAMS: Record<H, Partial<TextHeadingProps>> = {\n h1: {\n size: 44,\n sizeM: 32,\n lineHeight: 's',\n weight: 'bold',\n },\n h2: {\n size: 32,\n sizeM: 28,\n lineHeight: 's',\n weight: 'bold',\n },\n h3: {\n size: 28,\n lineHeight: 's',\n weight: 'bold',\n },\n h4: {\n size: 24,\n lineHeight: 's',\n weight: 'bold',\n },\n}\n\nconst COMPONENT_NAME = 'Text.Heading'\n\n/**\n * @visibleName Text.Heading\n */\nconst TextHeading = (props: TextHeadingProps) => {\n const theme = useTheme()\n\n const {\n h = 'h1',\n fontFamily,\n ...configProps\n } = useConfigPriority<TextHeadingProps>(theme.components?.[COMPONENT_NAME], props)\n\n const predefinedParams = PARAMS[h]\n\n return <Text as={h} fontFamily={fontFamily} {...predefinedParams} {...configProps} />\n}\n\nTextHeading.displayName = COMPONENT_NAME\n\nexport { TextHeading, COMPONENT_NAME }\n","import styled from 'styled-components'\nimport { display } from 'mixins/display'\nimport { property, responsiveNamedProperty } from 'mixins/responsive-property'\nimport { SpacerProps } from './Spacer'\n\nexport const Root = styled.div.withConfig<SpacerProps>({\n shouldForwardProp: (prop) => ['children', 'className', 'style', 'onClick'].includes(prop) || prop.includes('data-'),\n})`\n ${(props) => (props.display ? display(props.display) : null)}\n\n /** BEGIN paddings */\n ${(props) => (props.padding ? property(props.padding, 'padding') : null)}\n ${(props) => (props.paddingTop ? property(props.paddingTop, 'padding-top') : null)}\n ${(props) => (props.paddingRight ? property(props.paddingRight, 'padding-right') : null)}\n ${(props) => (props.paddingBottom ? property(props.paddingBottom, 'padding-bottom') : null)}\n ${(props) => (props.paddingLeft ? property(props.paddingLeft, 'padding-left') : null)}\n /** END paddings */ \n\n /** BEGIN margins */\n ${(props) => (props.margin ? property(props.margin, 'margin') : null)}\n ${(props) => (props.marginTop ? property(props.marginTop, 'margin-top') : null)}\n ${(props) => (props.marginRight ? property(props.marginRight, 'margin-right') : null)}\n ${(props) => (props.marginBottom ? property(props.marginBottom, 'margin-bottom') : null)}\n ${(props) => (props.marginLeft ? property(props.marginLeft, 'margin-left') : null)}\n /** END margins */ \n\n /** BEGIN Responsive paddings */\n ${({ paddingXS, paddingS, paddingM, paddingL, paddingXL }) =>\n responsiveNamedProperty({ sizes: { paddingXS, paddingS, paddingM, paddingL, paddingXL }, cssProperty: 'padding' })}\n ${({ paddingTopXS, paddingTopS, paddingTopM, paddingTopL, paddingTopXL }) =>\n responsiveNamedProperty({\n sizes: { paddingTopXS, paddingTopS, paddingTopM, paddingTopL, paddingTopXL },\n cssProperty: 'padding-top',\n })}\n ${({ paddingRightXS, paddingRightS, paddingRightM, paddingRightL, paddingRightXL }) =>\n responsiveNamedProperty({\n sizes: { paddingRightXS, paddingRightS, paddingRightM, paddingRightL, paddingRightXL },\n cssProperty: 'padding-right',\n })}\n ${({ paddingBottomXS, paddingBottomS, paddingBottomM, paddingBottomL, paddingBottomXL }) =>\n responsiveNamedProperty({\n sizes: { paddingBottomXS, paddingBottomS, paddingBottomM, paddingBottomL, paddingBottomXL },\n cssProperty: 'padding-bottom',\n })}\n ${({ paddingLeftXS, paddingLeftS, paddingLeftM, paddingLeftL, paddingLeftXL }) =>\n responsiveNamedProperty({\n sizes: { paddingLeftXS, paddingLeftS, paddingLeftM, paddingLeftL, paddingLeftXL },\n cssProperty: 'padding-left',\n })}\n /** END Responsive paddings */ \n\n /** BEGIN Responsive margins */\n ${({ marginXS, marginS, marginM, marginL, marginXL }) =>\n responsiveNamedProperty({ sizes: { marginXS, marginS, marginM, marginL, marginXL }, cssProperty: 'margin' })}\n ${({ marginTopXS, marginTopS, marginTopM, marginTopL, marginTopXL }) =>\n responsiveNamedProperty({\n sizes: { marginTopXS, marginTopS, marginTopM, marginTopL, marginTopXL },\n cssProperty: 'margin-top',\n })}\n ${({ marginRightXS, marginRightS, marginRightM, marginRightL, marginRightXL }) =>\n responsiveNamedProperty({\n sizes: { marginRightXS, marginRightS, marginRightM, marginRightL, marginRightXL },\n cssProperty: 'margin-right',\n })}\n ${({ marginBottomXS, marginBottomS, marginBottomM, marginBottomL, marginBottomXL }) =>\n responsiveNamedProperty({\n sizes: { marginBottomXS, marginBottomS, marginBottomM, marginBottomL, marginBottomXL },\n cssProperty: 'margin-bottom',\n })}\n ${({ marginLeftXS, marginLeftS, marginLeftM, marginLeftL, marginLeftXL }) =>\n responsiveNamedProperty({\n sizes: { marginLeftXS, marginLeftS, marginLeftM, marginLeftL, marginLeftXL },\n cssProperty: 'margin-left',\n })}\n /** END Responsive margins */\n\n ${(props) => (props.top ? property(props.top, 'padding-top') : null)}\n ${(props) => (props.right ? property(props.right, 'padding-right') : null)}\n ${(props) => (props.bottom ? property(props.bottom, 'padding-bottom') : null)}\n ${(props) => (props.left ? property(props.left, 'padding-left') : null)}\n\n ${({ topXS, topS, topM, topL, topXL }) =>\n responsiveNamedProperty({ sizes: { topXS, topS, topM, topL, topXL }, cssProperty: 'padding-top' })}\n ${({ rightXS, rightS, rightM, rightL, rightXL }) =>\n responsiveNamedProperty({ sizes: { rightXS, rightS, rightM, rightL, rightXL }, cssProperty: 'padding-right' })}\n ${({ bottomXS, bottomS, bottomM, bottomL, bottomXL }) =>\n responsiveNamedProperty({\n sizes: { bottomXS, bottomS, bottomM, bottomL, bottomXL },\n cssProperty: 'padding-bottom',\n })}\n ${({ leftXS, leftS, leftM, leftL, leftXL }) =>\n responsiveNamedProperty({ sizes: { leftXS, leftS, leftM, leftL, leftXL }, cssProperty: 'padding-left' })}\n`\n","import { DisplayProperty } from 'mixins/display'\nimport { ResponsiveNamedProperty } from 'mixins/responsive-property'\nimport { BaseProps } from 'shared/interfaces'\nimport * as Styled from './style'\n\nexport interface SpacerProps\n extends BaseProps,\n DisplayProperty,\n ResponsiveNamedProperty<'top'>,\n ResponsiveNamedProperty<'right'>,\n ResponsiveNamedProperty<'bottom'>,\n ResponsiveNamedProperty<'left'>,\n ResponsiveNamedProperty<'padding'>,\n ResponsiveNamedProperty<'paddingTop'>,\n ResponsiveNamedProperty<'paddingRight'>,\n ResponsiveNamedProperty<'paddingBottom'>,\n ResponsiveNamedProperty<'paddingLeft'>,\n ResponsiveNamedProperty<'margin'>,\n ResponsiveNamedProperty<'marginTop'>,\n ResponsiveNamedProperty<'marginRight'>,\n ResponsiveNamedProperty<'marginBottom'>,\n ResponsiveNamedProperty<'marginLeft'> {\n /**\n * Primary content\n */\n /**\n * Children react node\n */\n children?: React.ReactNode\n onClick?: (_e: React.MouseEvent<HTMLDivElement>) => void\n}\n\nSpacer.displayName = 'Spacer'\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`Display`](#/Миксины)\n * - [`ResponsiveNamedProperty<'top'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'right'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'bottom'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'left'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'padding'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'paddingTop'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'paddingRight'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'paddingBottom'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'paddingLeft'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'margin'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'marginTop'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'marginRight'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'marginBottom'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'marginLeft'>`](#/Миксины)\n */\nexport function Spacer(props: SpacerProps) {\n return <Styled.Root {...props} />\n}\n","import styled from 'styled-components'\n\nexport const Ul = styled.ul`\n padding: 0;\n margin: 0;\n list-style-position: inside;\n`\n\nexport const Li = styled.li`\n & + & {\n margin-top: 4px;\n }\n`\n","import { Component } from 'react'\nimport type { TextProps } from 'components/Text'\nimport { Spacer } from '../Spacer/Spacer'\nimport { Anchor } from '../Anchor/Anchor'\nimport { Text } from '../Text'\nimport * as Styled from './style'\n\nexport interface TextEllipseProps extends Omit<TextProps, 'content'> {\n /** Toggle text for folded state */\n moreText?: string\n /** Toggle text for unfolded state */\n lessText?: string\n /** Classname */\n className?: string\n /** Text content */\n content: string | string[]\n /** Characters quantity for ellipsed text */\n chars?: number\n /** Wrap text in quotes */\n quoted?: boolean\n /** Flag to show toggler */\n showToggler?: boolean\n}\n\ninterface TextEllipseState {\n isUnFolded: boolean\n isEllipsed: boolean\n}\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`Color`](#/Миксины)\n * - [`Display`](#/Миксины)\n * - [`ResponsiveNamedProperty<'size'>`](#/Миксины)\n */\nexport class TextEllipse extends Component<TextEllipseProps, TextEllipseState> {\n static displayName = 'Text.Ellipse'\n\n constructor(props: TextEllipseProps) {\n super(props)\n\n this.state = {\n isUnFolded: false,\n isEllipsed: false,\n }\n }\n\n componentDidUpdate({ content }: TextEllipseProps) {\n if (content !== this.props.content && this.state.isUnFolded) {\n this.toggle()\n }\n }\n\n getContent = (props: Omit<TextEllipseProps, 'className' | 'moreText' | 'lessText' | 'showToggler' | 'content'>) => {\n const { content, chars = 0 } = this.props\n\n if (!content) return ''\n\n let { isEllipsed } = this.state\n let text: string | string[] = typeof content === 'string' ? '' : []\n\n if (!this.state.isUnFolded) {\n if (typeof text === 'string') {\n isEllipsed = chars !== 0 && content.length > chars\n\n text = isEllipsed && chars !== 0 ? `${content.slice(0, chars)}...` : content\n } else {\n let leftChars = chars\n\n for (let index = 0; index < content.length; index++) {\n if (leftChars - content[index].length > 0) {\n leftChars -= content[index].length\n\n text[index] = content[index]\n } else {\n isEllipsed = true\n text[index] = `${content[index].slice(0, leftChars)}...`\n\n break\n }\n }\n }\n } else {\n text = content\n }\n\n if (this.state.isEllipsed !== isEllipsed) setTimeout(() => this.setState({ isEllipsed }))\n\n return typeof text === 'string' ? (\n <Text {...props}>{this.getQuted(text)}</Text>\n ) : (\n <Styled.Ul>\n {text.map((item, index) => (\n <Styled.Li key={index}>\n <Text {...props} display='inline'>\n {item}\n </Text>\n </Styled.Li>\n ))}\n </Styled.Ul>\n )\n }\n\n getQuted = (content: string) => (this.props.quoted ? `«${content}»` : content)\n\n toggle = () => {\n this.setState({ isUnFolded: !this.state.isUnFolded })\n }\n\n render() {\n const {\n className = '',\n style,\n moreText = 'Читать полностью',\n lessText = 'Свернуть',\n showToggler = true,\n ...restProps\n } = this.props\n const { isUnFolded, isEllipsed } = this.state\n\n return (\n <div className={className} style={style}>\n {this.getContent(restProps)}\n {showToggler && isEllipsed && (\n <Spacer marginTop={16} marginBottom={1}>\n <Anchor pseudo onClick={this.toggle}>\n {isUnFolded ? lessText : moreText}\n </Anchor>\n </Spacer>\n )}\n </div>\n )\n }\n}\n","import type { Sizes } from 'shared/types'\nimport type { TypographyAppearance, TextProps } from './types'\n\nexport const APPEARANCE: Record<TypographyAppearance, Partial<Omit<TextProps, 'size' | 'appearance'>>> = {\n display: {\n lineHeight: 1,\n weight: 800,\n fontStyle: 'normal',\n },\n heading: {\n lineHeight: 1.1,\n weight: 800,\n fontStyle: 'normal',\n },\n subheading: {\n lineHeight: 1.1,\n weight: 700,\n fontStyle: 'normal',\n },\n 'subheading-compact': {\n lineHeight: 1.3,\n weight: 800,\n fontStyle: 'normal',\n },\n body: {\n lineHeight: 1.3,\n weight: 400,\n fontStyle: 'normal',\n },\n caption: {\n lineHeight: 1.2,\n weight: 400,\n fontStyle: 'normal',\n },\n}\n\nexport const SIZES: Record<TypographyAppearance, Sizes> = {\n display: {\n xxxl: {\n fontSize: 84,\n },\n xxl: {\n fontSize: 76,\n },\n xl: {\n fontSize: 68,\n },\n l: {\n fontSize: 60,\n },\n m: {\n fontSize: 52,\n },\n s: {\n fontSize: 44,\n },\n xs: {\n fontSize: 36,\n },\n xxs: {\n fontSize: 28,\n },\n xxxs: {\n fontSize: 20,\n },\n },\n heading: {\n xxxl: {\n fontSize: 64,\n },\n xxl: {\n fontSize: 56,\n },\n xl: {\n fontSize: 48,\n },\n l: {\n fontSize: 40,\n },\n m: {\n fontSize: 36,\n },\n s: {\n fontSize: 32,\n },\n xs: {\n fontSize: 28,\n },\n xxs: {\n fontSize: 24,\n },\n xxxs: {\n fontSize: 20,\n },\n },\n subheading: {\n xxxl: {\n fontSize: 52,\n },\n xxl: {\n fontSize: 46,\n },\n xl: {\n fontSize: 40,\n },\n l: {\n fontSize: 34,\n },\n m: {\n fontSize: 28,\n },\n s: {\n fontSize: 24,\n },\n xs: {\n fontSize: 20,\n },\n xxs: {\n fontSize: 16,\n },\n xxxs: {\n fontSize: 12,\n },\n },\n 'subheading-compact': {\n xxxl: {\n fontSize: 36,\n },\n xxl: {\n fontSize: 32,\n },\n xl: {\n fontSize: 28,\n },\n l: {\n fontSize: 24,\n },\n m: {\n fontSize: 20,\n },\n s: {\n fontSize: 18,\n },\n xs: {\n fontSize: 16,\n },\n xxs: {\n fontSize: 14,\n },\n xxxs: {\n fontSize: 12,\n },\n },\n body: {\n xxxl: {\n fontSize: 32,\n },\n xxl: {\n fontSize: 28,\n },\n xl: {\n fontSize: 24,\n },\n l: {\n fontSize: 20,\n },\n m: {\n fontSize: 18,\n },\n s: {\n fontSize: 16,\n },\n xs: {\n fontSize: 14,\n },\n xxs: {\n fontSize: 12,\n },\n xxxs: {\n fontSize: 10,\n },\n },\n caption: {\n xxxl: {\n fontSize: 32,\n },\n xxl: {\n fontSize: 28,\n },\n xl: {\n fontSize: 24,\n },\n l: {\n fontSize: 20,\n },\n m: {\n fontSize: 18,\n },\n s: {\n fontSize: 16,\n },\n xs: {\n fontSize: 14,\n },\n xxs: {\n fontSize: 12,\n },\n xxxs: {\n fontSize: 10,\n },\n },\n}\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES_DEFAULT: Sizes = {\n xxxl: {\n fontSize: 24,\n },\n xxl: {\n fontSize: 22,\n },\n xl: {\n fontSize: 20,\n },\n l: {\n fontSize: 18,\n },\n m: {\n fontSize: 16,\n },\n s: {\n fontSize: 14,\n },\n xs: {\n fontSize: 12,\n },\n xxs: {\n fontSize: 10,\n },\n xxxs: {\n fontSize: 8,\n },\n}\n","import { createResponsivePropsMixin } from 'mixins/create-responsive-props'\nimport type { ResponsiveProps } from 'mixins/create-responsive-props'\nimport type { CSSUnit, CSSGlobalValue } from 'shared/types'\n\ntype MarginProperty = 'margin' | 'marginTop' | 'marginRight' | 'marginBottom' | 'marginLeft'\n\n// eslint-disable-next-line @typescript-eslint/ban-types\ntype MarginValue = CSSGlobalValue | (string & {}) | number\n\ntype ResponsiveMarginProps = ResponsiveProps<MarginProperty, MarginValue> & {\n marginUnits?: CSSUnit\n}\n\n/**\n *\n * Mixin enables responsive margin interface\n */\nconst responsiveMargin = createResponsivePropsMixin<MarginProperty, MarginValue | void, ResponsiveMarginProps>(\n ['margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft'],\n (propKey, propValue, props) => {\n if (propValue === undefined || propValue === null) return {}\n\n return {\n [propKey]: typeof propValue === 'string' ? propValue : `${propValue}${props.marginUnits ?? 'px'}`,\n }\n }\n)\n\nexport type { ResponsiveMarginProps }\n\nexport { responsiveMargin }\n","import styled from 'styled-components'\nimport { display } from 'mixins/display'\nimport { color } from 'mixins/color'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { responsiveMargin } from 'mixins/responsive-margin'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport type { Color } from 'shared/types'\nimport type { StyledTextProps } from './types'\n\nconst WEIGHT_MAP = {\n lighter: 100,\n normal: 400,\n bold: 600,\n bolder: 800,\n}\n\nconst LINE_HEIGHT_MAP = {\n l: 1.5,\n m: 1.3,\n s: 1.15,\n xs: 1,\n}\n\nconst shouldForwardTextProp = createShouldForwardProp(\n (propKey) =>\n ![\n 'appearance',\n 'fontFamily',\n 'weight',\n 'fontStyle',\n 'transform',\n 'underlineLinks',\n 'textAlign',\n 'lineHeight',\n 'content',\n 'display',\n 'chars',\n 'quoted',\n 'showZeroMinorPart',\n 'separator',\n 'underline',\n 'whiteSpace',\n ].includes(propKey)\n)\n\nexport const Root = styled.div.withConfig<StyledTextProps>({\n shouldForwardProp: shouldForwardTextProp,\n})`\n ${(props) => `\n margin: 0;\n ${props.fontFamily ? `font-family: ${props.fontFamily};` : ''}\n ${props.transform ? `text-transform: ${props.transform};` : ''}\n ${props.weight ? `font-weight: ${WEIGHT_MAP[props.weight] ?? props.weight};` : ''}\n ${props.fontStyle ? `font-style: ${props.fontStyle};` : ''}\n ${props.textAlign ? `text-align: ${props.textAlign};` : ''}\n ${props.lineHeight ? `line-height: ${LINE_HEIGHT_MAP[props.lineHeight] ?? props.lineHeight};` : ''}\n ${props.underline ? `border-bottom: 1px ${typeof props.underline === 'string' ? props.underline : 'solid'};` : ''}\n ${props.whiteSpace ? `white-space: ${props.whiteSpace};` : ''}\n a {\n text-decoration: ${props.underlineLinks ? 'underline' : 'none'};\n &:hover {\n text-decoration: none;\n }\n }\n `}\n\n ${responsiveSize}\n ${responsiveMargin}\n\n ${(props) => (props.display ? display(props.display) : null)}\n ${(props) => (props.color ? color(props.color) : color(props.theme.textColor as Color))}\n`\n","import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { useClassname } from 'hooks/useClassname'\nimport { TextHeading } from 'components/Text.Heading'\nimport { TextEllipse } from 'components/Text.Ellipse'\nimport type { TextProps } from './types'\nimport { APPEARANCE, SIZES } from './constants'\nimport { SIZES_DEFAULT } from './default-constants'\nimport * as Styled from './style'\n\nconst COMPONENT_NAME = 'Text'\n\n/**\n *\n * Component accepts all \\<div\\> attributes.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [TextProps](https://github.com/foxford/ui/blob/master/src/components/Text/types.ts)\n */\nconst Text: React.ForwardRefExoticComponent<TextProps> & { Heading: typeof TextHeading; Ellipse: typeof TextEllipse } =\n Object.assign(\n withMergedProps<TextProps, HTMLDivElement>(\n forwardRef((props, ref) => {\n const textProps = props.appearance ? { ...APPEARANCE[props.appearance], ...props } : props\n\n const {\n size = 'm',\n weight = 'normal',\n lineHeight = 'm',\n fontStyle = 'normal',\n className,\n content,\n children,\n ...restProps\n } = textProps\n\n const textClassName = useClassname(COMPONENT_NAME, className)\n\n return (\n <Styled.Root\n {...restProps}\n size={size}\n weight={weight}\n lineHeight={lineHeight}\n fontStyle={fontStyle}\n className={textClassName}\n ref={ref}\n >\n {children || content}\n </Styled.Root>\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: (props) => {\n if (typeof props.appearance === 'string') {\n return SIZES[props.appearance] ?? SIZES_DEFAULT\n }\n\n return SIZES_DEFAULT\n },\n }\n ),\n {\n Heading: TextHeading,\n Ellipse: TextEllipse,\n }\n )\n\nexport { Text, COMPONENT_NAME }\n","import type { ThemedStyledProps, DefaultTheme } from 'styled-components'\n\nconst focus = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n props: ThemedStyledProps<any, DefaultTheme>\n): string => {\n return `\n &:focus-visible {\n box-shadow: 0 0 0 2px ${props.theme.colors.white}, 0 0 0 4px ${props.theme.colors['border-focus']};\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n `\n}\n\nexport { focus }\n","import styled, { css } from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport type { ThemedStyledProps, DefaultTheme } from 'styled-components'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { getColor } from 'mixins/color'\nimport { focus } from 'mixins/focus'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { responsiveMargin } from 'mixins/responsive-margin'\nimport { display } from 'mixins/display'\nimport type { CSSColor } from 'shared/types'\nimport type { StyledAnchorProps, AnchorPalette } from './types'\n\nconst shouldForwardAnchorProp = createShouldForwardProp(\n (propKey) => !['display', 'underline', 'onColored', 'verticalAlign', 'pseudo', 'wrapper'].includes(propKey)\n)\n\nconst template = (palette: AnchorPalette) => `\n color: ${palette.color};\n &:hover {\n color: ${palette.colorHover};\n }\n &:active {\n color: ${palette.color};\n }\n &[data-disabled=\"true\"] {\n color: ${palette.colorDisabled};\n }\n`\n\nconst COLOR_SCHEMA = {\n default: css<StyledAnchorProps>`\n ${(props) =>\n template({\n color: props.wrapper ? 'inherit' : props.theme.colors.accent,\n colorHover: props.wrapper ? 'inherit' : props.theme.colors.primary,\n colorDisabled: props.theme.colors['content-disabled'],\n ...props.palette,\n })}\n `,\n primary: css<StyledAnchorProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-link'],\n colorHover: tinycolor(props.theme.colors['content-link']).lighten(10).toString() as CSSColor,\n colorDisabled: props.theme.colors['content-disabled'],\n ...props.palette,\n })}\n `,\n onColored: css<StyledAnchorProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n colorHover: tinycolor(props.theme.colors['content-oncolor-primary']).darken(10).toString() as CSSColor,\n colorDisabled: props.theme.colors['content-oncolor-disabled'],\n ...props.palette,\n })}\n `,\n}\n\nconst anchorStyles = (props: ThemedStyledProps<StyledAnchorProps, DefaultTheme>) => {\n if (props.onColored) return COLOR_SCHEMA.onColored\n return props.preset === 'brand' ? COLOR_SCHEMA.primary : COLOR_SCHEMA.default\n}\n\nexport const Root = styled.a.withConfig<StyledAnchorProps>({\n shouldForwardProp: shouldForwardAnchorProp,\n})`\n ${(props) => `\n box-sizing: border-box;\n isolation: isolate;\n transition-property: color;\n transition-duration: 150ms;\n transition-timing-function: ease-in;\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n vertical-align: ${\n props.verticalAlign\n ? `${typeof props.verticalAlign === 'string' ? props.verticalAlign : 'text-bottom'}`\n : 'baseline'\n };\n ${\n props.preset === 'brand'\n ? `\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n text-decoration: none;\n `\n : `\n display: ${props.wrapper ? 'block' : 'inline-block'};\n text-decoration-line: ${props.underline === true ? 'underline' : 'none'};\n border-bottom: ${\n props.pseudo || typeof props.underline === 'string'\n ? `1px ${typeof props.underline === 'string' ? props.underline : 'dashed'}`\n : 'none'\n };\n `\n }\n \n `}\n\n ${anchorStyles}\n ${focus}\n ${responsiveSize}\n ${responsiveMargin}\n \n ${(props) => props.display && display(props.display)}\n ${(props) => props.color && `color: ${getColor(props.color, props)};`}\n`\n","import { forwardRef } from 'react'\nimport { Link } from 'react-router-dom'\nimport { useTheme } from 'styled-components'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { useClassname } from 'hooks/useClassname'\nimport { Text } from 'components/Text'\nimport { Icon } from 'components/Icon'\nimport type { TextProps } from 'components/Text'\nimport type { IconProps } from 'components/Icon'\nimport { SIZES } from './constants'\nimport * as Styled from './style'\nimport type { AnchorProps } from './types'\n\nconst COMPONENT_NAME = 'Anchor'\n\n/**\n *\n * Component accepts all \\<a\\> attributes.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [AnchorProps](https://github.com/foxford/ui/blob/master/src/components/Anchor/types.ts)\n */\nconst Anchor: React.ForwardRefExoticComponent<AnchorProps> = withMergedProps<AnchorProps, HTMLAnchorElement>(\n forwardRef((props, ref) => {\n const {\n size = 'inherit',\n autoRel = true,\n textProps = {},\n iconProps = {},\n icon,\n children,\n content,\n ...restProps\n } = props\n\n const theme = useTheme()\n\n const className = useClassname(COMPONENT_NAME, restProps.className)\n const relBuilder = theme.utils?.relBuilder\n const href = restProps.href ?? restProps.to\n\n const rel =\n restProps.rel ??\n (autoRel && relBuilder && typeof href === 'string' ? relBuilder(href, restProps.target) : undefined)\n\n const [before, after] = Array.isArray(icon) ? icon : [icon]\n\n const baseTextProps: TextProps = {\n as: 'span',\n size: 'inherit',\n color: 'inherit',\n underline: restProps.underline,\n marginLeft: before ? '0.25em' : undefined,\n marginRight: after ? '0.25em' : undefined,\n }\n\n const iconBaseProps: IconProps = { as: 'span', color: 'inherit' }\n\n let rootNode\n if (restProps.to) rootNode = Link\n if (restProps.pseudo) rootNode = 'div'\n if (restProps.disabled) rootNode = 'span'\n if (restProps.as) rootNode = restProps.as\n\n return (\n <Styled.Root\n {...restProps}\n ref={ref}\n as={rootNode}\n className={className}\n size={size}\n rel={rel}\n data-disabled={restProps.disabled}\n >\n {typeof children === 'function' ? (\n children({ baseTextProps, textProps, iconBaseProps, iconProps, icon })\n ) : props.preset === 'brand' ? (\n <>\n {before && (\n <Icon\n name={typeof before === 'string' ? before : undefined}\n icon={typeof before !== 'string' ? before : undefined}\n {...iconBaseProps}\n {...iconProps}\n />\n )}\n <Text {...baseTextProps} {...textProps}>\n {children || content}\n </Text>\n {after && (\n <Icon\n name={typeof after === 'string' ? after : undefined}\n icon={typeof after !== 'string' ? after : undefined}\n {...iconBaseProps}\n {...iconProps}\n />\n )}\n </>\n ) : (\n <>{children || content}</>\n )}\n </Styled.Root>\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: SIZES,\n }\n)\n\nexport { Anchor, COMPONENT_NAME }\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n fontSize: 24,\n },\n xxl: {\n fontSize: 22,\n },\n xl: {\n fontSize: 20,\n },\n l: {\n fontSize: 18,\n },\n m: {\n fontSize: 16,\n },\n s: {\n fontSize: 14,\n },\n xs: {\n fontSize: 12,\n },\n xxs: {\n fontSize: 10,\n },\n xxxs: {\n fontSize: 8,\n },\n}\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n fontSize: 22,\n height: 64,\n paddingLeft: 36,\n paddingRight: 36,\n },\n xxl: {\n fontSize: 20,\n height: 60,\n paddingLeft: 34,\n paddingRight: 34,\n },\n xl: {\n fontSize: 18,\n height: 56,\n paddingLeft: 32,\n paddingRight: 32,\n },\n l: {\n fontSize: 16,\n height: 48,\n paddingLeft: 28,\n paddingRight: 28,\n },\n m: {\n fontSize: 16,\n height: 44,\n paddingLeft: 28,\n paddingRight: 28,\n },\n s: {\n fontSize: 14,\n height: 40,\n paddingLeft: 24,\n paddingRight: 24,\n },\n xs: {\n fontSize: 14,\n height: 32,\n paddingLeft: 16,\n paddingRight: 16,\n },\n xxs: {\n fontSize: 12,\n height: 28,\n paddingLeft: 14,\n paddingRight: 14,\n },\n xxxs: {\n fontSize: 10,\n height: 24,\n paddingLeft: 12,\n paddingRight: 12,\n },\n}\n\nexport const SIZES_ROUND: Sizes = {\n xxxl: {\n fontSize: 32,\n height: 64,\n width: 64,\n },\n xxl: {\n fontSize: 28,\n height: 60,\n width: 60,\n },\n xl: {\n fontSize: 24,\n height: 56,\n width: 56,\n },\n l: {\n fontSize: 20,\n height: 48,\n width: 48,\n },\n m: {\n fontSize: 16,\n height: 44,\n width: 44,\n },\n s: {\n fontSize: 16,\n height: 40,\n width: 40,\n },\n xs: {\n fontSize: 16,\n height: 32,\n width: 32,\n },\n xxs: {\n fontSize: 16,\n height: 28,\n width: 28,\n },\n xxxs: {\n fontSize: 14,\n height: 24,\n width: 24,\n },\n}\n","import type { Sizes, Size } from 'shared/types'\nimport type { ButtonProps } from './types'\n\nexport const SIZES_DEFAULT: Sizes = {\n xxxl: {\n fontSize: 24,\n height: 78,\n paddingLeft: 44,\n paddingRight: 44,\n },\n xxl: {\n fontSize: 22,\n height: 72,\n paddingLeft: 40,\n paddingRight: 40,\n },\n xl: {\n fontSize: 20,\n height: 68,\n paddingLeft: 40,\n paddingRight: 40,\n },\n l: {\n fontSize: 18,\n height: 60,\n paddingLeft: 36,\n paddingRight: 36,\n },\n m: {\n fontSize: 16,\n height: 52,\n paddingLeft: 32,\n paddingRight: 32,\n },\n s: {\n fontSize: 14,\n height: 40,\n paddingLeft: 28,\n paddingRight: 28,\n },\n xs: {\n fontSize: 14,\n height: 40,\n paddingLeft: 28,\n paddingRight: 28,\n },\n xxs: {\n fontSize: 12,\n height: 32,\n paddingLeft: 18,\n paddingRight: 18,\n },\n xxxs: {\n fontSize: 10,\n height: 28,\n paddingLeft: 12,\n paddingRight: 12,\n },\n}\n\nexport const SIZES_ROUND_DEFAULT: Sizes = {\n xxxl: {\n fontSize: 32,\n lineHeight: 1,\n padding: '0.28em',\n width: 72,\n height: 72,\n },\n xxl: {\n fontSize: 30,\n lineHeight: 1,\n padding: '0.28em',\n width: 68,\n height: 68,\n },\n xl: {\n fontSize: 26,\n lineHeight: 1,\n padding: '0.28em',\n width: 60,\n height: 60,\n },\n l: {\n fontSize: 23,\n lineHeight: 1,\n padding: '0.28em',\n width: 52,\n height: 52,\n },\n m: {\n fontSize: 21,\n lineHeight: 1,\n padding: '0.28em',\n width: 48,\n height: 48,\n },\n s: {\n fontSize: 18,\n lineHeight: 1,\n padding: '0.28em',\n width: 40,\n height: 40,\n },\n xs: {\n fontSize: 14,\n lineHeight: 1,\n padding: '0.28em',\n width: 32,\n height: 32,\n },\n xxs: {\n fontSize: 12,\n lineHeight: 1,\n padding: '0.28em',\n width: 24,\n height: 24,\n },\n xxxs: {\n fontSize: 8,\n lineHeight: 1,\n padding: '0.28em',\n width: 18,\n height: 18,\n },\n}\n\n// delete in next major version bump\nexport const PROPS_BY_SIZE: Partial<Record<Size, ButtonProps>> = {\n xl: {\n paddingLeftM: 36,\n paddingRightM: 36,\n paddingLeftS: 32,\n paddingRightS: 32,\n },\n l: {\n fontSizeM: 'm',\n heightM: 56,\n heightS: 52,\n paddingLeftM: 28,\n paddingRightM: 28,\n paddingLeftS: 24,\n paddingRightS: 24,\n },\n m: {\n paddingLeftM: 24,\n paddingRightM: 24,\n paddingLeftS: 20,\n paddingRightS: 20,\n },\n s: {\n paddingLeftM: 20,\n paddingRightM: 20,\n paddingLeftS: 16,\n paddingRightS: 16,\n },\n xs: {\n paddingLeftM: 20,\n paddingRightM: 20,\n paddingLeftS: 16,\n paddingRightS: 16,\n },\n}\n","import styled, { css, keyframes } from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport { LoaderFill } from '@foxford/icon-pack'\nimport { property, responsiveNamedProperty } from 'mixins/responsive-property'\nimport { color } from 'mixins/color'\nimport type { PossibleValues, CalcProperty } from 'mixins/responsive-property'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { focus } from 'mixins/focus'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport {\n responsiveFluidPropKeyRegExp,\n responsiveWidthPropKeyRegExp,\n responsivePaddingPropKeyRegExp,\n responsiveFontSizePropKeyRegExp,\n responsiveHeightPropKeyRegExp,\n} from 'shared/regexp'\nimport type { CSSColor } from 'shared/types'\nimport type { StyledButtonProps, ButtonPalette } from './types'\n\nconst shouldForwardButtonProp = createShouldForwardProp(\n (propKey) =>\n ![\n 'fluid',\n 'width',\n 'display',\n 'padding',\n 'paddingTop',\n 'paddingRight',\n 'paddingBottom',\n 'paddingLeft',\n 'fontSize',\n 'height',\n 'inline',\n 'round',\n 'success',\n 'loading',\n 'black',\n 'danger',\n 'onColored',\n 'clear',\n 'base',\n 'outline',\n 'autoRel',\n 'noSpacing',\n 'primary',\n 'secondary',\n 'inverted',\n 'rounded',\n 'basic',\n ].includes(propKey),\n (propKey) =>\n !responsiveFluidPropKeyRegExp.test(propKey) &&\n !responsiveWidthPropKeyRegExp.test(propKey) &&\n !responsivePaddingPropKeyRegExp.test(propKey) &&\n !responsiveFontSizePropKeyRegExp.test(propKey) &&\n !responsiveHeightPropKeyRegExp.test(propKey)\n)\n\nconst WIDTHS: Record<string, number> = {\n xl: 320,\n l: 280,\n m: 245,\n s: 180,\n xs: 140,\n}\n\nconst loadingAnimation = keyframes`\n 0% {\n background-position: 0 0;\n }\n 100% {\n background-position: 50px 50px;\n }\n`\n\nconst spinAnimation = keyframes`\n 100% {\n transform: rotate(360deg);\n }\n`\n\nconst defaultLoadingStyles = css`\n background-image: linear-gradient(\n -45deg,\n rgba(255, 255, 255, 0.2) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.2) 50%,\n rgba(255, 255, 255, 0.2) 75%,\n transparent 75%,\n transparent\n );\n background-size: 25px 25px;\n animation: ${loadingAnimation} 2s linear infinite;\n cursor: progress;\n`\n\nconst getWidth = (width: PossibleValues): PossibleValues => {\n if (width === 'auto') return 'auto'\n if (typeof width === 'number') return width\n if (typeof width === 'boolean') return width\n\n if (width && WIDTHS[width]) return WIDTHS[width]\n\n return 'auto'\n}\n\nconst fluidStyles: CalcProperty = () => css`\n min-width: initial;\n width: 100%;\n`\n\nconst template = (palette: ButtonPalette) => `\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n border-color: ${palette.borderColor};\n &::before {\n box-shadow: inset 0px 4px 0px ${palette.shadowColor};\n }\n &:hover {\n color: ${palette.colorHover};\n background-color: ${palette.backgroundColorHover};\n border-color: ${palette.borderColorHover};\n }\n &:active {\n color: ${palette.colorActive};\n background-color: ${palette.backgroundColorActive};\n border-color: ${palette.borderColorActive};\n }\n &:disabled {\n color: ${palette.colorDisabled};\n background-color: ${palette.backgroundColorDisabled};\n border-color: ${palette.borderColorDisabled};\n }\n`\n\nconst COLOR_SCHEMA = {\n onColored: {\n clear: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors.transparent,\n borderColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.theme.colors['bg-oncontrast-hover'],\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.theme.colors['content-oncolor-primary'],\n backgroundColorActive: props.theme.colors['bg-oncontrast-hover'],\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.loading\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-oncolor-disabled'],\n backgroundColorDisabled: props.theme.colors.transparent,\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncontrast-hover'],\n ...props.palette,\n })}\n `,\n base: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.success ? props.theme.colors['alert-success'] : props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.success\n ? props.theme.colors['bg-oncolor-primary']\n : props.theme.colors['bg-oncolor-secondary'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.success\n ? props.theme.colors['alert-success']\n : props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.success\n ? (tinycolor(props.theme.colors['bg-oncolor-primary']).darken(2).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-oncolor-secondary']).darken(4).toString() as CSSColor),\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.success\n ? props.theme.colors['alert-success']\n : props.theme.colors['content-oncolor-primary'],\n backgroundColorActive: props.success\n ? (tinycolor(props.theme.colors['bg-oncolor-primary']).darken(2).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-oncolor-secondary']).darken(4).toString() as CSSColor),\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.loading\n ? props.theme.colors['content-oncolor-constant']\n : props.theme.colors['content-oncolor-disabled'],\n backgroundColorDisabled: props.loading\n ? props.theme.colors['bg-oncolor-primary']\n : props.theme.colors['bg-oncolor-disabled'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n outline: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.success\n ? props.theme.colors['alert-success']\n : props.loading\n ? props.theme.colors['content-oncolor-constant']\n : props.theme.colors['content-oncolor-primary'],\n backgroundColor:\n props.success || props.loading ? props.theme.colors['bg-oncolor-primary'] : props.theme.colors.transparent,\n borderColor:\n props.success || props.loading\n ? props.theme.colors.transparent\n : props.theme.colors['border-oncolor-default'],\n colorHover: props.success\n ? props.theme.colors['alert-success']\n : props.theme.colors['content-oncolor-constant'],\n backgroundColorHover: props.success\n ? (tinycolor(props.theme.colors['bg-oncolor-primary']).darken(2).toString() as CSSColor)\n : props.theme.colors['bg-oncolor-primary'],\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.success\n ? props.theme.colors['alert-success']\n : props.theme.colors['content-oncolor-constant'],\n backgroundColorActive: props.success\n ? (tinycolor(props.theme.colors['bg-oncolor-primary']).darken(2).toString() as CSSColor)\n : props.theme.colors['bg-oncolor-primary'],\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.loading\n ? props.theme.colors['content-oncolor-constant']\n : props.theme.colors['content-oncolor-disabled'],\n backgroundColorDisabled: props.loading\n ? props.theme.colors['bg-oncolor-primary']\n : props.theme.colors['bg-oncolor-disabled'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n default: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.success ? props.theme.colors['alert-success'] : props.theme.colors['content-oncolor-constant'],\n backgroundColor: props.theme.colors['bg-oncolor-primary'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.success\n ? props.theme.colors['alert-success']\n : props.theme.colors['content-oncolor-constant'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-oncolor-primary']).darken(2).toString() as CSSColor,\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.success\n ? props.theme.colors['alert-success']\n : props.theme.colors['content-oncolor-constant'],\n backgroundColorActive: tinycolor(props.theme.colors['bg-oncolor-primary']).darken(2).toString() as CSSColor,\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.loading\n ? props.theme.colors['content-oncolor-constant']\n : props.theme.colors['content-oncolor-disabled'],\n backgroundColorDisabled: props.loading\n ? props.theme.colors['bg-oncolor-primary']\n : props.theme.colors['bg-oncolor-disabled'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n },\n danger: {\n clear: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.success ? props.theme.colors['alert-success'] : props.theme.colors['alert-error'],\n backgroundColor: props.theme.colors.transparent,\n borderColor: props.theme.colors.transparent,\n colorHover: props.success ? props.theme.colors['alert-success'] : props.theme.colors['alert-error'],\n backgroundColorHover: props.theme.colors['bg-oncolor-hover'],\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.success ? props.theme.colors['alert-success'] : props.theme.colors['alert-error'],\n backgroundColorActive: props.theme.colors['bg-oncolor-hover'],\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.loading ? props.theme.colors['alert-error'] : props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors.transparent,\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n base: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.success ? props.theme.colors['content-oncolor-primary'] : props.theme.colors['alert-error'],\n backgroundColor: props.success\n ? props.theme.colors['alert-bg-success-500']\n : props.theme.colors['bg-onmain-tertiary'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.success ? props.theme.colors['content-oncolor-primary'] : props.theme.colors['alert-error'],\n backgroundColorHover: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).darken(2).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-onmain-tertiary']).darken(2).toString() as CSSColor),\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.success\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['alert-error'],\n backgroundColorActive: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).darken(2).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-onmain-tertiary']).darken(2).toString() as CSSColor),\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.loading ? props.theme.colors['alert-error'] : props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.loading\n ? props.theme.colors['bg-onmain-tertiary']\n : props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n outline: css<StyledButtonProps>`\n ${(props) =>\n template({\n color:\n props.success || props.loading\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['alert-error'],\n backgroundColor: props.success\n ? props.theme.colors['alert-bg-success-500']\n : props.loading\n ? props.theme.colors['alert-bg-error-500']\n : props.theme.colors.transparent,\n borderColor:\n props.success || props.loading ? props.theme.colors.transparent : props.theme.colors['alert-bg-error-500'],\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).darken(2).toString() as CSSColor)\n : props.theme.colors['alert-bg-error-500'],\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.theme.colors['content-oncolor-primary'],\n backgroundColorActive: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).darken(2).toString() as CSSColor)\n : (tinycolor(props.theme.colors['alert-bg-error-500']).darken(2).toString() as CSSColor),\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.loading\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.loading\n ? props.theme.colors['alert-bg-error-500']\n : props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n default: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.success\n ? props.theme.colors['alert-bg-success-500']\n : props.theme.colors['alert-bg-error-500'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).darken(2).toString() as CSSColor)\n : (tinycolor(props.theme.colors['alert-bg-error-500']).darken(2).toString() as CSSColor),\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.theme.colors['content-oncolor-primary'],\n backgroundColorActive: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).darken(2).toString() as CSSColor)\n : (tinycolor(props.theme.colors['alert-bg-error-500']).darken(2).toString() as CSSColor),\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.loading\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.loading\n ? props.theme.colors['alert-bg-error-500']\n : props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n },\n black: {\n clear: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.success ? props.theme.colors['alert-success'] : props.theme.colors['content-oncolor-inverse'],\n backgroundColor: props.theme.colors.transparent,\n borderColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-oncolor-inverse'],\n backgroundColorHover: props.theme.colors['bg-oncolor-hover'],\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.theme.colors['content-oncolor-inverse'],\n backgroundColorActive: props.theme.colors['bg-oncolor-hover'],\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors.transparent,\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n base: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.success\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-oncolor-inverse'],\n backgroundColor: props.success\n ? props.theme.colors['alert-bg-success-500']\n : props.theme.colors['bg-onmain-tertiary'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.success\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-oncolor-inverse'],\n backgroundColorHover: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).lighten(4).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-onmain-tertiary']).darken(4).toString() as CSSColor),\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.success\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-oncolor-inverse'],\n backgroundColorActive: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).lighten(4).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-onmain-tertiary']).darken(4).toString() as CSSColor),\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n outline: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.success\n ? props.theme.colors['content-oncolor-primary']\n : props.loading\n ? props.theme.colors['content-onmain-inverse']\n : props.theme.colors['content-oncolor-inverse'],\n backgroundColor: props.success\n ? props.theme.colors['alert-bg-success-500']\n : props.loading\n ? props.theme.colors['bg-onmain-inverse']\n : props.theme.colors.transparent,\n borderColor:\n props.success || props.loading\n ? props.theme.colors.transparent\n : props.theme.colors['border-onmain-contrast'],\n colorHover: props.success\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-onmain-inverse'],\n backgroundColorHover: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).lighten(4).toString() as CSSColor)\n : props.theme.colors['bg-onmain-inverse'],\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.success\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-onmain-inverse'],\n backgroundColorActive: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).lighten(4).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-onmain-inverse']).lighten(4).toString() as CSSColor),\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n default: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.success\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-onmain-inverse'],\n backgroundColor: props.success\n ? props.theme.colors['alert-bg-success-500']\n : props.theme.colors['bg-onmain-inverse'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.success\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-onmain-inverse'],\n backgroundColorHover: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).lighten(4).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-onmain-inverse']).lighten(4).toString() as CSSColor),\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.success\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-onmain-inverse'],\n backgroundColorActive: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).lighten(4).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-onmain-inverse']).lighten(4).toString() as CSSColor),\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n },\n default: {\n clear: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.success ? props.theme.colors['alert-success'] : props.theme.colors['content-brand-primary'],\n backgroundColor: props.theme.colors.transparent,\n borderColor: props.theme.colors.transparent,\n colorHover: props.success ? props.theme.colors['alert-success'] : props.theme.colors['content-brand-primary'],\n backgroundColorHover: props.theme.colors['bg-oncolor-hover'],\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.success\n ? props.theme.colors['alert-success']\n : props.theme.colors['content-brand-primary'],\n backgroundColorActive: props.theme.colors['bg-oncolor-hover'],\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.loading\n ? props.theme.colors['content-brand-primary']\n : props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors.transparent,\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n base: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.success\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-brand-primary'],\n backgroundColor: props.success\n ? props.theme.colors['alert-bg-success-500']\n : props.theme.colors['bg-onmain-tertiary'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.success\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-brand-primary'],\n backgroundColorHover: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).darken(2).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-onmain-tertiary']).darken(2).toString() as CSSColor),\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.success\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-brand-primary'],\n backgroundColorActive: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).darken(2).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-onmain-tertiary']).darken(2).toString() as CSSColor),\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.loading\n ? props.theme.colors['content-brand-primary']\n : props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.loading\n ? props.theme.colors['bg-onmain-tertiary']\n : props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n outline: css<StyledButtonProps>`\n ${(props) =>\n template({\n color:\n props.success || props.loading\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-brand-primary'],\n backgroundColor: props.success\n ? props.theme.colors['alert-bg-success-500']\n : props.loading\n ? props.theme.colors['bg-brand-primary-basic']\n : props.theme.colors.transparent,\n borderColor:\n props.success || props.loading\n ? props.theme.colors.transparent\n : props.theme.colors['border-brand-primary'],\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).darken(2).toString() as CSSColor)\n : props.theme.colors['bg-brand-primary-basic'],\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.theme.colors['content-oncolor-primary'],\n backgroundColorActive: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).darken(2).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-brand-primary-basic']).darken(2).toString() as CSSColor),\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.loading\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.loading\n ? props.theme.colors['bg-brand-primary-basic']\n : props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n default: css<StyledButtonProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.success\n ? props.theme.colors['alert-bg-success-500']\n : props.theme.colors['bg-brand-primary-basic'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).darken(2).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-brand-primary-basic']).darken(2).toString() as CSSColor),\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.theme.colors['content-oncolor-primary'],\n backgroundColorActive: props.success\n ? (tinycolor(props.theme.colors['alert-bg-success-500']).darken(2).toString() as CSSColor)\n : (tinycolor(props.theme.colors['bg-brand-primary-basic']).darken(2).toString() as CSSColor),\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.loading\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.loading\n ? props.theme.colors['bg-brand-primary-basic']\n : props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n },\n}\n\nconst defaultStyles = css<StyledButtonProps>`\n ${(props) => {\n if (props.disabled || props.loading) return ''\n\n return `\n &:active {\n box-shadow: inset 0 4px 0px 0px rgba(0, 0, 0, 0.14);\n }\n &:hover {\n color: ${props.fontColor};\n background-color: ${tinycolor(props.theme.colors[props.color]).saturate(-5).lighten(-8).toString()};\n }\n ${\n props.inverted || props.basic || props.outline\n ? `\n &:not(:hover) {\n border: 1px solid ${props.theme.colors[props.color]};\n }\n &:hover {\n border: 1px solid ${props.theme.colors[props.color]};\n }\n `\n : ''\n }\n `\n }}\n\n ${(props) => (props.loading ? defaultLoadingStyles : '')}\n\n ${(props) => {\n let cssProperty = 'background-color'\n if (props.inverted || props.basic || props.outline) cssProperty = 'color'\n\n return color(props.color, cssProperty)\n }}\n\n ${(props) => {\n let cssProperty = 'color'\n if (props.inverted || props.basic || props.outline) cssProperty = 'background-color'\n\n return color(props.fontColor, cssProperty)\n }}\n\n ${(props) => {\n if (!props.disabled) return ''\n\n return `\n cursor: not-allowed;\n background-color: ${props.theme.colors.mercury};\n color: ${props.theme.colors.silver};\n `\n }}\n\n ${(props) => (props.basic || props.outline ? 'background-color: transparent;' : '')}\n`\n\nexport const Root = styled.button\n .withConfig<StyledButtonProps>({\n shouldForwardProp: shouldForwardButtonProp,\n })\n .attrs<StyledButtonProps>(\n (props): Required<Pick<StyledButtonProps, 'dynamicSizeDeclaration'>> => ({\n dynamicSizeDeclaration: (size, sizeUnits) => {\n return {\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n height: '2.8em',\n width: props.round ? '2.8em' : undefined,\n paddingRight: props.round ? undefined : '1.6em',\n paddingLeft: props.round ? undefined : '1.6em',\n }\n },\n })\n )`\n ${(props) => {\n let display = props.inline ? 'inline-flex' : 'flex'\n if (props.display) display = props.display\n\n let borderRadius = '0px'\n if (props.rounded) borderRadius = props.preset === 'brand' ? '48px' : '5px'\n if (props.round) borderRadius = '50%'\n\n let cursor = 'pointer'\n if (props.disabled) cursor = 'not-allowed'\n if (props.loading) cursor = 'wait'\n\n return `\n display: ${display};\n border-radius: ${borderRadius};\n cursor: ${cursor};\n box-sizing: border-box;\n position: relative;\n isolation: isolate;\n justify-content: center;\n align-items: center;\n user-select: none;\n border: none;\n text-decoration: none;\n appearance: none;\n white-space: nowrap;\n text-align: center;\n vertical-align: top;\n ${\n props.preset === 'brand'\n ? `\n border: 1px solid transparent;\n transition-property: background-color; \n transition-duration: 250ms;\n &::before {\n transition-property: opacity; \n transition-duration: 150ms;\n transition-timing-function: ease-in;\n }\n &::before {\n content: '';\n position: absolute;\n top: -1px;\n left: -1px;\n width: calc(100% + 2px);\n height: calc(100% + 2px);\n border-radius: inherit;\n opacity: 0;\n }\n &:active:not(:disabled)::before {\n opacity: 1;\n }`\n : `\n border: none;\n overflow: hidden;\n transition-property: background-color, color;\n transition-duration: 200ms;`\n }\n `\n }}\n\n ${(props) => {\n if (props.preset === 'default') return defaultStyles\n\n let schema = COLOR_SCHEMA.default\n\n if (props.black) schema = COLOR_SCHEMA.black\n if (props.danger) schema = COLOR_SCHEMA.danger\n if (props.onColored) schema = COLOR_SCHEMA.onColored\n\n if (props.clear) return schema.clear\n if (props.base) return schema.base\n if (props.outline) return schema.outline\n\n return schema.default\n }}\n\n ${focus}\n ${responsiveSize}\n\n ${(props) => (props.padding ? property(props.padding, 'padding') : null)}\n ${(props) => (props.paddingTop ? property(props.paddingTop, 'padding-top') : null)}\n ${(props) => (props.paddingRight ? property(props.paddingRight, 'padding-right') : null)}\n ${(props) => (props.paddingBottom ? property(props.paddingBottom, 'padding-bottom') : null)}\n ${(props) => (props.paddingLeft ? property(props.paddingLeft, 'padding-left') : null)}\n\n ${(props) => (props.margin ? property(props.margin, 'margin') : null)}\n ${(props) => (props.marginTop ? property(props.marginTop, 'margin-top') : null)}\n ${(props) => (props.marginRight ? property(props.marginRight, 'margin-right') : null)}\n ${(props) => (props.marginBottom ? property(props.marginBottom, 'margin-bottom') : null)}\n ${(props) => (props.marginLeft ? property(props.marginLeft, 'margin-left') : null)}\n\n ${(props) => (props.fontSize ? property(props.fontSize, 'font-size') : null)}\n\n ${(props) => (props.height ? property(props.height, 'height') : null)}\n\n ${(props) => {\n const cssProperty = props.fluid && props.width !== 'auto' ? 'max-width' : 'width'\n return props.width ? property(getWidth(props.width), cssProperty) : null\n }}\n\n ${({ paddingXS, paddingS, paddingM, paddingL, paddingXL }) => {\n return responsiveNamedProperty({\n sizes: { paddingXS, paddingS, paddingM, paddingL, paddingXL },\n cssProperty: 'padding',\n })\n }}\n ${({ paddingTopXS, paddingTopS, paddingTopM, paddingTopL, paddingTopXL }) => {\n return responsiveNamedProperty({\n sizes: { paddingTopXS, paddingTopS, paddingTopM, paddingTopL, paddingTopXL },\n cssProperty: 'padding-top',\n })\n }}\n ${({ paddingRightXS, paddingRightS, paddingRightM, paddingRightL, paddingRightXL }) => {\n return responsiveNamedProperty({\n sizes: { paddingRightXS, paddingRightS, paddingRightM, paddingRightL, paddingRightXL },\n cssProperty: 'padding-right',\n })\n }}\n ${({ paddingBottomXS, paddingBottomS, paddingBottomM, paddingBottomL, paddingBottomXL }) => {\n return responsiveNamedProperty({\n sizes: { paddingBottomXS, paddingBottomS, paddingBottomM, paddingBottomL, paddingBottomXL },\n cssProperty: 'padding-bottom',\n })\n }}\n ${({ paddingLeftXS, paddingLeftS, paddingLeftM, paddingLeftL, paddingLeftXL }) => {\n return responsiveNamedProperty({\n sizes: { paddingLeftXS, paddingLeftS, paddingLeftM, paddingLeftL, paddingLeftXL },\n cssProperty: 'padding-left',\n })\n }}\n\n ${({ marginXS, marginS, marginM, marginL, marginXL }) => {\n return responsiveNamedProperty({ sizes: { marginXS, marginS, marginM, marginL, marginXL }, cssProperty: 'margin' })\n }}\n ${({ marginTopXS, marginTopS, marginTopM, marginTopL, marginTopXL }) => {\n return responsiveNamedProperty({\n sizes: { marginTopXS, marginTopS, marginTopM, marginTopL, marginTopXL },\n cssProperty: 'margin-top',\n })\n }}\n ${({ marginRightXS, marginRightS, marginRightM, marginRightL, marginRightXL }) => {\n return responsiveNamedProperty({\n sizes: { marginRightXS, marginRightS, marginRightM, marginRightL, marginRightXL },\n cssProperty: 'margin-right',\n })\n }}\n ${({ marginBottomXS, marginBottomS, marginBottomM, marginBottomL, marginBottomXL }) => {\n return responsiveNamedProperty({\n sizes: { marginBottomXS, marginBottomS, marginBottomM, marginBottomL, marginBottomXL },\n cssProperty: 'margin-bottom',\n })\n }}\n ${({ marginLeftXS, marginLeftS, marginLeftM, marginLeftL, marginLeftXL }) => {\n return responsiveNamedProperty({\n sizes: { marginLeftXS, marginLeftS, marginLeftM, marginLeftL, marginLeftXL },\n cssProperty: 'margin-left',\n })\n }}\n\n ${({ fontSizeXS, fontSizeS, fontSizeM, fontSizeL, fontSizeXL }) => {\n return responsiveNamedProperty({\n sizes: { fontSizeXS, fontSizeS, fontSizeM, fontSizeL, fontSizeXL },\n cssProperty: 'font-size',\n })\n }}\n\n ${({ heightXS, heightS, heightM, heightL, heightXL }) => {\n return responsiveNamedProperty({\n sizes: { heightXS, heightS, heightM, heightL, heightXL },\n cssProperty: 'height',\n })\n }}\n\n ${({ widthXS, widthS, widthM, widthL, widthXL, fluid, width }) => {\n return responsiveNamedProperty({\n sizes: { widthXS, widthS, widthM, widthL, widthXL },\n cssProperty: fluid && width !== 'auto' ? 'max-width' : 'width',\n customSizeHandler: getWidth,\n })\n }}\n\n ${(props) => (props.fluid ? property(props.fluid, fluidStyles) : null)}\n ${({ fluidXS, fluidS, fluidM, fluidL, fluidXL }) => {\n return responsiveNamedProperty({\n sizes: { fluidXS, fluidS, fluidM, fluidL, fluidXL },\n cssProperty: fluidStyles,\n })\n }}\n`\n\nexport const LoaderIcon = styled(LoaderFill)`\n transform-origin: center;\n animation: ${spinAnimation} 1600ms infinite linear;\n`\n","import { forwardRef } from 'react'\nimport { useTheme } from 'styled-components'\nimport { Link } from 'react-router-dom'\nimport { useClassname } from 'hooks/useClassname'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { Icon } from 'components/Icon'\nimport { Text } from 'components/Text'\nimport type { IconProps } from 'components/Icon'\nimport type { TextProps } from 'components/Text'\nimport { useComputedRel, useComputedLinkProps } from './hooks'\nimport { SIZES, SIZES_ROUND } from './constants'\nimport { SIZES_DEFAULT, SIZES_ROUND_DEFAULT, PROPS_BY_SIZE } from './default-constants'\nimport type { ButtonProps } from './types'\nimport * as Styled from './style'\n\nconst COMPONENT_NAME = 'Button'\n\n/**\n *\n * Component accepts all \\<button\\> attributes.\n *\n * Responsive \"size\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [ButtonProps](https://github.com/foxford/ui/blob/master/src/components/Button/types.ts)\n */\nconst Button: React.ForwardRefExoticComponent<ButtonProps> = withMergedProps<ButtonProps, HTMLButtonElement>(\n forwardRef((props, ref) => {\n let {\n size = 'm',\n inline = true,\n rounded = true,\n color = 'accent',\n fontColor = 'white',\n textProps = {},\n iconProps = {},\n as: _as,\n className,\n children,\n content,\n fontWeight,\n icon,\n innerRef,\n ...restProps\n } = props\n\n const theme = useTheme()\n\n if (restProps.preset === 'default' && typeof size === 'string' && !restProps.round) {\n const propsBySize = PROPS_BY_SIZE[size] ?? {}\n restProps = { ...propsBySize, ...restProps }\n }\n\n if (restProps.href) _as = 'a'\n if (restProps.to) _as = Link\n\n if (restProps.primary) color = 'primary'\n if (restProps.secondary) color = 'atlantis'\n\n const rootClassName = useClassname(COMPONENT_NAME, className)\n const textClassName = useClassname(COMPONENT_NAME)\n const rel = useComputedRel(theme, restProps)\n const linkProps = useComputedLinkProps(_as, restProps)\n\n let [before, after] = Array.isArray(icon) ? icon : [icon]\n\n if (restProps.success) {\n before = 'checkFill'\n after = null\n }\n\n if (restProps.preset === 'brand' && restProps.loading) {\n before = <Styled.LoaderIcon />\n after = null\n }\n\n const baseTextProps: TextProps = {\n as: 'span',\n size: 'inherit',\n color: 'inherit',\n weight: fontWeight ?? (restProps.preset === 'brand' ? 800 : 600),\n lineHeight: restProps.preset === 'brand' ? 1.2 : 1,\n marginLeft: before ? '0.25em' : undefined,\n marginRight: after ? '0.25em' : undefined,\n }\n\n const iconBaseProps: IconProps = { as: 'span', color: 'inherit' }\n\n return (\n <Styled.Root\n {...restProps}\n {...linkProps}\n size={size}\n inline={inline}\n color={color}\n fontColor={fontColor}\n rounded={rounded}\n rel={rel}\n as={_as}\n className={rootClassName}\n ref={ref ?? innerRef}\n >\n {typeof children === 'function' ? (\n children({\n baseTextProps,\n textProps,\n iconBaseProps,\n iconProps,\n icon: [before, after],\n })\n ) : (\n <>\n {before && (\n <Icon\n className='icon'\n name={typeof before === 'string' ? before : undefined}\n icon={typeof before !== 'string' ? before : undefined}\n {...iconBaseProps}\n {...iconProps}\n />\n )}\n {(children || content) && (\n <Text className={`${textClassName}__content`} {...baseTextProps} {...textProps}>\n {children || content}\n </Text>\n )}\n {after && (\n <Icon\n className='icon'\n name={typeof after === 'string' ? after : undefined}\n icon={typeof after !== 'string' ? after : undefined}\n {...iconBaseProps}\n {...iconProps}\n />\n )}\n </>\n )}\n </Styled.Root>\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: (props) => {\n let sizes = props.preset === 'brand' ? SIZES : SIZES_DEFAULT\n if (props.round) sizes = props.preset === 'brand' ? SIZES_ROUND : SIZES_ROUND_DEFAULT\n\n return sizes\n },\n }\n)\n\nexport { Button, COMPONENT_NAME }\n\nexport type { ButtonProps }\n","import { DefaultTheme } from 'styled-components'\nimport type { ButtonProps } from './types'\n\nexport function useComputedRel(theme: DefaultTheme, config: ButtonProps) {\n const relBuilder = theme.utils?.relBuilder\n\n let rel\n\n if (config.href) {\n rel = config.rel\n\n if (!rel && relBuilder && config.autoRel && (config.href || config.to)) {\n rel = relBuilder(config.href ?? config.to, config.target)\n }\n }\n\n return rel\n}\n\nexport function useComputedLinkProps(_as: ButtonProps['as'], config: ButtonProps) {\n let props = {}\n\n if (_as === undefined || config.disabled) return props\n\n if (_as === 'a') {\n props = { href: config.href || config.to, target: config.target }\n } else if (typeof _as !== 'string') {\n props = { to: config.to || config.href }\n }\n\n return props\n}\n","import styled, { css, DefaultTheme } from 'styled-components'\nimport { color, getColor } from 'mixins/color'\nimport { DefaultColorNames } from 'theme/colors'\nimport { ProgressSegmentedProps } from './Progress.Segmented'\n\nexport const Progress = styled.div<Pick<ProgressSegmentedProps, 'percent' | 'percentColor'>>`\n height: 100%;\n border-radius: 10px;\n width: ${(props) => `${props.percent || 0}%`};\n ${(props) =>\n props.percentColor ? color(props.percentColor, 'background') : color(DefaultColorNames.atlantis, 'background')};\n`\n\nexport const Separators = styled.div`\n position: absolute;\n top: 0;\n display: flex;\n justify-content: space-between;\n width: 100%;\n height: 4px;\n z-index: 3;\n`\n\nexport const Separator = styled.div<Pick<ProgressSegmentedProps, 'separatorColor'>>`\n width: 2px;\n height: 100%;\n &:first-child,\n &:last-child {\n width: 0;\n }\n ${(props) =>\n props.separatorColor ? color(props.separatorColor, 'background') : color(DefaultColorNames.white, 'background')}\n`\n\nconst haveCircle = (props: Pick<ProgressSegmentedProps, 'percentColor'> & { theme: DefaultTheme }) => css`\n margin-left: 8px;\n border-radius: 0 10px 10px 0;\n & ${Progress} {\n border-radius: 0 10px 10px 0;\n }\n & ${Separator} {\n &:first-child {\n position: relative;\n &:before {\n position: absolute;\n display: block;\n content: '';\n left: -8px;\n top: -2px;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: ${getColor(props.percentColor || DefaultColorNames.atlantis, props)};\n }\n }\n }\n`\n\nconst isDone = (props: Pick<ProgressSegmentedProps, 'percentColor'> & { theme: DefaultTheme }) => css`\n & ${Separator} {\n &:last-child {\n position: relative;\n &:before {\n position: absolute;\n top: -6px;\n right: -6px;\n display: block;\n content: '';\n background: ${getColor(props.percentColor || DefaultColorNames.atlantis, props)}\n url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5IiBoZWlnaHQ9IjciIHZpZXdCb3g9IjAgMCA5IDciPgogICAgPHBhdGggZmlsbD0iI0ZGRiIgZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNNi45MTQgMEw4IDEuMDQ1IDIuODQ4IDYgMCAzLjI2MWwxLjA4Ni0xLjA0NUwyLjg0OCAzLjkxeiIvPgo8L3N2Zz4K')\n center no-repeat;\n width: 16px;\n height: 16px;\n border-radius: 50%;\n }\n }\n }\n`\n\nconst isEmpty = css`\n & ${Separator} {\n &:first-child {\n &:before {\n background: rgba(0, 0, 0, 0.1);\n }\n }\n }\n`\n\nexport const Root = styled.div<Pick<ProgressSegmentedProps, 'percent' | 'haveCircle' | 'isActive' | 'percentColor'>>`\n position: relative;\n height: 4px;\n background: rgba(0, 0, 0, 0.1);\n border-radius: 10px;\n ${(props) => (props.haveCircle ? haveCircle(props) : null)}\n ${(props) => (props.percent === 100 ? isDone(props) : null)}\n ${(props) => (props.percent === 0 ? isEmpty : null)}\n`\n","import { ColorProperty } from 'mixins/color'\nimport { BaseProps } from 'shared/interfaces'\nimport * as Styled from './style'\n\nexport interface ProgressSegmentedProps\n extends BaseProps,\n ColorProperty<'separatorColor'>,\n ColorProperty<'percentColor'> {\n /**\n * Current percent complete\n */\n percent?: number\n /**\n * segments count\n */\n segments?: number\n /**\n * custom class\n */\n className?: string\n /**\n * circle in begin progress\n */\n haveCircle?: boolean\n /**\n * active state\n */\n isActive?: boolean\n}\n\nProgressSegmented.defaultProps = {\n percent: 0,\n percentColor: '#7fc92e',\n separatorColor: '#ffffff',\n segments: 9,\n haveCircle: true,\n}\n\nProgressSegmented.displayName = 'Progress.Segmented'\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`Color<'separatorColor'>`](#/Миксины)\n * - [`Color<'percentColor'>`](#/Миксины)\n */\nexport function ProgressSegmented(props: typeof ProgressSegmented.defaultProps & ProgressSegmentedProps) {\n const { percent, segments, className, style, percentColor, separatorColor, haveCircle, isActive } = props\n\n return (\n <Styled.Root\n className={className}\n style={style}\n percent={percent}\n haveCircle={haveCircle}\n percentColor={percentColor}\n isActive={isActive}\n >\n <Styled.Progress percent={percent} percentColor={percentColor} />\n <Styled.Separators>\n {Array.from(new Array(segments + 1).keys()).map((item, key) => (\n <Styled.Separator separatorColor={separatorColor} key={key} />\n ))}\n </Styled.Separators>\n </Styled.Root>\n )\n}\n","import styled from 'styled-components'\nimport { color, getColor } from 'mixins/color'\nimport { ProgressCircleProps } from './Progress.Circle'\n\nexport const Root = styled.div.withConfig({\n shouldForwardProp: (prop) => prop === 'children',\n})<Pick<ProgressCircleProps, 'size' | 'resultColor' | 'strokeBGColor' | 'status'>>`\n position: relative;\n width: ${(props) => (props.size ? `${props.size}px` : '84px')};\n height: ${(props) => (props.size ? `${props.size}px` : '84px')};\n flex-shrink: 0;\n svg {\n width: 100%;\n height: 100%;\n font-size: 0px;\n }\n .line {\n fill: none;\n display: block;\n ${(props) => (props.resultColor ? color(props.resultColor, 'stroke') : null)}\n }\n .bg {\n stroke: ${(props) => (props.strokeBGColor ? getColor(props.strokeBGColor, props) : `rgba(0, 0, 0, 0.12)`)};\n fill: rgba(255, 255, 255, 0);\n &.fail {\n stroke: #f1512c;\n }\n &.success {\n stroke: #7bb909;\n }\n &.started {\n stroke: #459ff3;\n }\n }\n`\n\nexport const Content = styled.div`\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n img {\n border-radius: 50%;\n }\n`\n","/* eslint-disable no-use-before-define */\nimport { PureComponent } from 'react'\nimport { ColorProperty } from 'mixins/color'\nimport { BaseProps } from 'shared/interfaces'\nimport * as Styled from './style'\n\nfunction polarToCartesian(centerX: number, centerY: number, radius: number, angleInDegrees: number) {\n const angleInRadians = ((angleInDegrees - 90) * Math.PI) / 180.0\n\n return {\n x: centerX + radius * Math.cos(angleInRadians),\n y: centerY + radius * Math.sin(angleInRadians),\n }\n}\n\nfunction describeArc(x: number, y: number, radius: number, startAngle: number, endAngle: number, reverse = false) {\n const start = polarToCartesian(x, y, radius, endAngle)\n const end = polarToCartesian(x, y, radius, startAngle)\n\n const diff = endAngle - startAngle\n const angleDiff = diff < 0 ? -diff : diff\n\n const sweep = angleDiff <= 180 ? '1' : '0'\n const arcSweep = reverse ? +!+sweep : sweep\n\n return ['M', start.x, start.y, 'A', radius, radius, 0, arcSweep, 0, end.x, end.y].join(' ')\n}\n\nexport interface ProgressCircleProps extends BaseProps, ColorProperty<'resultColor'>, ColorProperty<'strokeBGColor'> {\n /**\n * status ['fail', 'success', 'started']\n */\n status?: 'fail' | 'success' | 'started'\n /**\n * progress percent\n */\n progress?: number\n /**\n * width and height\n */\n size?: number\n /**\n * React children\n */\n children?: React.ReactNode\n /**\n * width progress line\n */\n strokeLineWidth?: number\n /**\n * width background line\n */\n strokeBGWidth?: number\n /**\n * start angle of progress\n */\n progressStartAngle?: number\n /**\n * @ignore @deprecated Use children\n */\n content?: string | number\n}\n\ninterface ProgressCircleState {\n bgAngleDiff: number\n describeArcProgress: string | null\n describeArcBg: string | null\n}\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`Color<'resultColor'>`](#/Миксины)\n * - [`Color<'strokeBGColor'>`](#/Миксины)\n */\nexport class ProgressCircle extends PureComponent<\n typeof ProgressCircle.defaultProps & ProgressCircleProps,\n ProgressCircleState\n> {\n static displayName = 'Progress.Circle'\n static defaultProps = {\n size: 84,\n progress: 0,\n strokeLineWidth: 2,\n strokeBGWidth: 2,\n resultColor: 'accent',\n progressStartAngle: 180,\n }\n\n constructor(props: typeof ProgressCircle.defaultProps & ProgressCircleProps) {\n super(props)\n this.state = {\n bgAngleDiff: 0,\n describeArcProgress: null,\n describeArcBg: null,\n }\n }\n\n componentDidMount() {\n this.renderSvg()\n }\n\n componentDidUpdate(prevProps: ProgressCircleProps) {\n const { progress, size } = this.props\n const { progress: prevProgress, size: prevSize } = prevProps\n\n if (progress !== prevProgress || size !== prevSize) {\n this.renderSvg()\n }\n }\n\n renderSvg = () => {\n const { size, progress, strokeLineWidth, strokeBGWidth, progressStartAngle } = this.props\n\n const thickness = strokeLineWidth > strokeBGWidth ? strokeLineWidth : strokeBGWidth\n\n const center = size / 2 + thickness / 2\n const progressGap = 0.5\n const progressEndAngle = progressStartAngle - progressGap + (+progress / 100) * 360\n const bgStartAngle = progressStartAngle\n const bgEndAngle = bgStartAngle - progressGap\n\n const centerX = center - thickness / 2\n const centerY = center - thickness / 2\n const radius = center - thickness\n const diff = bgStartAngle - bgEndAngle\n\n const describeArcProgress = describeArc(centerX, centerY, radius, progressStartAngle, progressEndAngle, true)\n\n const describeArcBg = describeArc(centerX, centerY, radius, bgStartAngle, bgEndAngle)\n\n const bgAngleDiff = diff < 0 ? -diff : diff\n\n this.setState({\n describeArcProgress,\n describeArcBg,\n bgAngleDiff,\n })\n }\n\n render() {\n const {\n size,\n children,\n content,\n strokeLineWidth,\n strokeBGWidth,\n resultColor,\n strokeBGColor,\n status,\n progress,\n className,\n style,\n } = this.props\n\n const { bgAngleDiff, describeArcProgress, describeArcBg } = this.state\n\n return (\n <Styled.Root\n className={className}\n style={style}\n size={size}\n strokeBGColor={strokeBGColor}\n resultColor={resultColor}\n status={status}\n >\n <svg width={size} height={size} viewBox={`0 0 ${size} ${size}`}>\n <g className={'pathBox'}>\n <path\n className='bg'\n d={bgAngleDiff < 360 && describeArcBg ? describeArcBg : ''}\n fill='none'\n strokeWidth={strokeBGWidth}\n strokeLinecap='round'\n />\n <path\n className='line'\n d={Boolean(+progress) && describeArcProgress ? describeArcProgress : ''}\n strokeWidth={strokeLineWidth}\n strokeLinecap='round'\n />\n </g>\n </svg>\n {(children || content) && <Styled.Content>{children || content}</Styled.Content>}\n </Styled.Root>\n )\n }\n}\n","import styled, { css, keyframes } from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport { color } from 'mixins/color'\nimport { ProgressProps } from './Progress'\n\nconst move = keyframes`\n 0% {\n background-position: 0 0;\n }\n 100% {\n background-position: 50px 50px;\n }\n`\n\nconst bgColor = (color: string) => css`\n background-color: ${tinycolor(color).setAlpha(0.6).toString()};\n`\n\nconst isLoading = css`\n background-image: linear-gradient(\n -45deg,\n rgba(255, 255, 255, 0.4) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.4) 50%,\n rgba(255, 255, 255, 0.4) 75%,\n transparent 75%,\n transparent\n );\n background-size: 25px 25px;\n animation: ${move} 2s linear infinite;\n`\n\nexport const Root = styled.div<Pick<ProgressProps, 'backgroundColor' | 'color'>>`\n display: block;\n height: 4px;\n border-radius: 40px;\n overflow: hidden;\n ${(props) => (props.backgroundColor ? color(props.backgroundColor, bgColor) : null)}\n ${(props) => (props.color ? color(props.color) : null)}\n`\n\nexport const Bar = styled.div.withConfig<{ width: number; isLoading: boolean }>({\n shouldForwardProp: () => false,\n})`\n width: 0;\n transition: width 1s ease-in-out;\n height: 100%;\n border-radius: inherit;\n color: inherit;\n background-color: currentColor;\n ${(props) => (props.isLoading ? isLoading : null)}\n ${(props) =>\n props.width\n ? css`\n width: ${props.width}%;\n `\n : css`\n width: 0%;\n `}\n`\n","import { ColorProperty } from 'mixins/color'\nimport { BaseProps } from 'shared/interfaces'\nimport { ProgressSegmented } from 'components/Progress.Segmented'\nimport { ProgressCircle } from 'components/Progress.Circle'\nimport * as Styled from './style'\n\nexport interface ProgressProps extends BaseProps, ColorProperty, ColorProperty<'backgroundColor'> {\n /**\n * Current percent complete\n */\n percent?: number\n isLoading?: boolean\n}\n\nProgress.defaultProps = {\n percent: 0,\n color: 'green',\n backgroundColor: 'alto',\n isLoading: false,\n}\n\nProgress.Circle = ProgressCircle\nProgress.Segmented = ProgressSegmented\nProgress.displayName = 'Progress'\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`Color`](#/Миксины)\n * - [`Color<'backgroundColor'>`](#/Миксины)\n */\nexport function Progress(props: ProgressProps) {\n const { className, isLoading, backgroundColor, color, percent } = props\n\n let _percent: number = typeof percent === 'string' ? parseInt(percent, 10) : percent || 0\n\n if (_percent > 100) _percent = 100\n if (_percent < 0) _percent = 0\n\n return (\n <Styled.Root className={className} backgroundColor={backgroundColor} color={color}>\n <Styled.Bar width={_percent} isLoading={Boolean(isLoading)} />\n </Styled.Root>\n )\n}\n","import styled from 'styled-components'\nimport type { DefaultTheme } from 'styled-components'\nimport { focus } from 'mixins/focus'\n\nimport { responsiveProperty } from 'mixins/responsive-property'\n\nimport { Button } from '../Button'\nimport { Text } from '../Text'\n\nimport { CountdownCircle } from './CountdownCircle'\n\nimport type {\n ActionsProps,\n AlertType,\n CancelTimerProps,\n CloseIconProps,\n ContentProps,\n ContentWrapperProps,\n CountdownCircleProps,\n IconWrapperProps,\n LinkProps,\n RootAlertProps,\n TitleProps,\n} from './types'\n\nconst bgColor = (theme: DefaultTheme, clear: boolean, type?: AlertType) => {\n if (clear) {\n return theme.colors['bg-onmain-primary']\n }\n\n switch (type) {\n case 'error':\n return theme.colors['alert-bg-error-200']\n case 'info':\n return theme.colors['bg-brand-primary-200']\n case 'success':\n return theme.colors['alert-bg-success-200']\n case 'warning':\n return theme.colors['alert-bg-warning-200']\n default:\n return theme.colors['bg-oncolor-primary']\n }\n}\n\nconst getPaddingY = ({\n column,\n isCompact,\n withImage,\n withTimer,\n}: Pick<RootAlertProps, 'column' | 'isCompact' | 'withImage' | 'withTimer'>) => {\n if (column) return '16px'\n\n if (isCompact) {\n return withTimer ? '5px' : '12px'\n }\n\n return withImage ? '8px' : withTimer ? '2px' : '12px'\n}\n\nconst paddingLeft = ({\n isCompact,\n noIcon,\n size,\n withAction,\n withImage,\n withTitle,\n}: Pick<RootAlertProps, 'isCompact' | 'noIcon' | 'size' | 'withAction' | 'withImage' | 'withTitle'>) => {\n if (isCompact) {\n if (withTitle || size === 'l') {\n return withImage || !noIcon ? '16px' : '20px'\n }\n\n return withImage ? '12px' : withAction && noIcon ? '20px' : '16px'\n }\n\n if (withTitle || size === 'l') {\n return withImage || !noIcon ? '16px' : '24px'\n }\n\n return withImage ? '16px' : '20px'\n}\n\nconst paddingRight = ({\n isCompact,\n withCloseIcon,\n withTimer,\n}: Pick<RootAlertProps, 'isCompact' | 'withCloseIcon' | 'withTimer'>) => {\n if (withCloseIcon) {\n return isCompact ? '12px' : '16px'\n }\n\n return withTimer ? '8px' : '20px'\n}\n\nconst getMarginRightIconWrapper = ({\n column,\n isCompact,\n withImage,\n}: {\n column: boolean\n isCompact?: boolean\n withImage: boolean\n}) => {\n if (isCompact) return '8px'\n\n return column ? (withImage ? '8px' : '12px') : '8px'\n}\n\nconst getImageSize = ({ column, isCompact }: { column: boolean; isCompact?: boolean }) => {\n if (isCompact) return '20px'\n\n return column ? '28px' : '32px'\n}\n\nconst getActionsMarginTop = ({\n column,\n isCompact,\n withTitle,\n}: {\n column: boolean\n isCompact?: boolean\n withTitle: boolean\n}) => {\n if (column) {\n return isCompact ? (withTitle ? '16px' : '8px') : '16px'\n }\n\n return 0\n}\n\nexport const Root = styled.div.withConfig<RootAlertProps>({\n shouldForwardProp: (prop) => ['children', 'className', 'onMouseEnter', 'onMouseLeave', 'style'].includes(prop),\n})`\n ${(props) => `\n display: flex;\n align-items: ${props.column || (props.isCompact ? !props.withTimer : props.textWrap) ? 'flex-start' : 'center'};\n justify-content: ${props.withTimer ? 'space-between' : 'flex-start'};\n padding-top: ${getPaddingY(props)};\n padding-right: ${paddingRight(props)};\n padding-bottom: ${getPaddingY(props)};\n padding-left: ${paddingLeft(props)};\n height: ${props.isCompact || props.column || props.textWrap ? 'auto' : '48px'};\n min-width: ${props.isCompact ? '304px' : 'auto'};\n max-width: ${props.isCompact ? '351px' : '100%'};\n border-radius: ${props.column ? (props.isCompact ? '20px' : '12px') : '30px'};\n background-color: ${bgColor(props.theme, !!props.clear, props.type)};\n box-shadow: ${props.clear ? '0 6px 20px 0 rgba(0, 0, 0, 0.1)' : 'none'};\n box-sizing: border-box;\n `}\n ${responsiveProperty('width', 'width')}\n`\n\nexport const IconWrapper = styled.div<IconWrapperProps>`\n ${(props) => `\n display: flex;\n margin-right: ${getMarginRightIconWrapper(props)};\n `}\n\n ${(props) =>\n props.withImage\n ? `\n img,\n svg {\n height: ${getImageSize(props)};\n width: ${getImageSize(props)};\n }\n `\n : null};\n`\n\nexport const ContentWrapper = styled.div<ContentWrapperProps>`\n ${(props) => `\n display: flex;\n margin-right: auto;\n flex-direction: ${props.column ? 'column' : 'row'};\n align-items: ${props.column ? 'flex-start' : 'center'};\n align-self: center;\n max-width: ${props.column ? '260px' : 'initial'};\n white-space: ${props.column || props.isCompact ? 'normal' : 'nowrap'};\n overflow: hidden;\n `}\n`\n\nexport const Title = styled(Text)<TitleProps>`\n ${(props) => `\n display: inline-block;\n margin-top: ${props.isCompact ? '0' : '2px'};\n margin-bottom: 8px;\n max-width: 100%;\n vertical-align: middle;\n white-space: nowrap;\n text-overflow: ellipsis;\n font-weight: 700;\n overflow: hidden;\n `}\n`\n\nexport const Content = styled(Text)<ContentProps>`\n ${(props) => `\n text-overflow: ${props.column || props.isCompact ? 'clip' : 'ellipsis'};\n white-space: ${props.column || props.isCompact || props.textWrap ? 'pre-wrap' : 'inherit'};\n overflow: hidden;\n `}\n`\n\nexport const Link = styled.div<LinkProps>`\n ${(props) => `\n display: flex;\n margin-top: ${props.column ? (props.isCompact && !props.withTitle ? '4px' : '12px') : 0};\n margin-left: ${props.column ? 0 : '60px'};\n color: ${props.clear ? props.theme.colors['content-link'] : props.theme.colors['content-onmain-primary']};\n `}\n`\n\nexport const Actions = styled.div<ActionsProps>`\n ${(props) => `\n margin-top: ${getActionsMarginTop(props)};\n margin-left: ${props.column ? 0 : '60px'};\n `}\n`\n\nexport const CloseIcon = styled.button<CloseIconProps>`\n ${(props) => `\n appearance: none;\n display: flex;\n margin-left: ${props.withTimer ? '0' : '16px'};\n border-radius: 0;\n background: none;\n box-shadow: none;\n padding: 0;\n border: none;\n cursor: pointer;\n border-radius: 50%;\n `}\n ${focus}\n`\n\nexport const CancelTimer = styled(Button)<CancelTimerProps>`\n ${(props) => `\n margin-left: ${props.isCompact ? '28px' : '60px'};\n padding-right: ${props.isCompact ? '16px' : '28px'};\n padding-left: ${props.isCompact ? '16px' : '28px'};\n `}\n`\n\nexport const Timer = styled(CountdownCircle)<CountdownCircleProps>`\n ${(props) => `\n line-height: ${props.isCompact ? '12px' : '18px'};\n font-weight: ${props.isCompact ? '700' : '400'};\n font-size: ${props.isCompact ? '11px' : '14px'};\n color: ${props.color};\n\n svg {\n transform: rotateY(180deg);\n }\n `}\n`\n","import { useEffect, useRef, useState } from 'react'\n\nimport { DefaultColorNames } from 'theme/colors'\nimport { Progress } from '../Progress'\n\nimport type { CountdownCircleProps } from './types'\n\nconst progressRate = 0.05\n\nconst CountdownCircle = ({ className, color, isCompact, paused, timer }: CountdownCircleProps) => {\n const [countdown, setCountdown] = useState(timer)\n const intervalId = useRef<ReturnType<typeof setInterval>>()\n\n useEffect(() => {\n return () => {\n if (intervalId.current) {\n clearInterval(intervalId.current)\n }\n }\n }, [])\n\n useEffect(() => {\n if (paused) {\n clearInterval(intervalId.current)\n } else {\n intervalId.current = setInterval(() => {\n setCountdown((prevCountdown) => {\n if (prevCountdown <= progressRate) {\n clearInterval(intervalId.current)\n return prevCountdown\n }\n\n return prevCountdown - progressRate\n })\n }, progressRate * 1000)\n }\n }, [paused])\n\n const progress = (countdown / timer) * 100\n\n return (\n <Progress.Circle\n className={className}\n progress={progress}\n progressStartAngle={0}\n resultColor={color}\n size={isCompact ? 16 : 20}\n strokeBGColor={DefaultColorNames.transparent}\n strokeLineWidth={1.5}\n >\n {Math.ceil(countdown)}\n </Progress.Circle>\n )\n}\n\nexport { CountdownCircle }\n","import type { DefaultTheme } from 'styled-components'\n\nimport type { CSSColor } from 'shared/types'\n\nimport type { AlertProps } from './types'\n\nexport const countdownColor = ({ theme, type }: Pick<AlertProps, 'type'> & { theme: DefaultTheme }): CSSColor => {\n switch (type) {\n case 'error':\n return theme.colors['alert-bg-error-500']\n case 'info':\n return theme.colors['content-brand-primary']\n case 'success':\n return theme.colors['alert-success']\n case 'warning':\n return theme.colors['alert-warning']\n default:\n return theme.colors['content-brand-primary']\n }\n}\n","import { forwardRef, useState } from 'react'\nimport { useTheme } from 'styled-components'\nimport { CheckCircleFill, Close, CloseCirlceFill, NotifFill, WarningTriangleFill } from '@foxford/icon-pack'\nimport type { DefaultTheme } from 'styled-components'\n\nimport { useClassname } from 'hooks/useClassname'\nimport { useConfigPriority } from 'hooks/use-config-priority'\n\nimport { Anchor } from '../Anchor'\nimport { Button } from '../Button'\nimport { Icon } from '../Icon'\n\nimport * as Styled from './style'\n\nimport type { AlertProps } from './types'\nimport { countdownColor } from './utils'\n\nconst getDefaultIcon = ({\n isCompact,\n theme,\n type,\n}: Pick<AlertProps, 'isCompact' | 'type'> & { theme: DefaultTheme }) => {\n const size = isCompact ? 16 : 24\n\n switch (type) {\n case 'error':\n return <CloseCirlceFill color={theme.colors['alert-bg-error-500']} size={size} />\n case 'info':\n return <NotifFill color={theme.colors['content-brand-primary']} size={size} />\n case 'success':\n return <CheckCircleFill color={theme.colors['alert-success']} size={size} />\n case 'warning':\n return <WarningTriangleFill color={theme.colors['alert-warning']} size={size} />\n default:\n return null\n }\n}\n\nconst COMPONENT_NAME = 'Alert'\n\nconst Alert = forwardRef<HTMLDivElement, AlertProps>((props, ref) => {\n const theme = useTheme()\n\n const {\n cancelTimerText = 'Отменить',\n primaryAction,\n primaryActionProps = {},\n secondaryAction,\n secondaryActionProps = {},\n children,\n className,\n clear,\n customIcon,\n image,\n isCompact,\n link,\n linkProps = {},\n noIcon,\n onClickCancelTimer,\n closeToast,\n size = 's',\n style,\n textProps = {},\n textWrap,\n timer,\n title,\n titleProps = {},\n type,\n width = ['fit-content', 'fit-content', 'fit-content', '351px', '304px', '304px'],\n } = useConfigPriority<AlertProps>(theme.components?.Alert, props)\n const _className = useClassname(COMPONENT_NAME, className)\n const [timerOnPause, setTimerOnPause] = useState(false)\n\n const column = Boolean(size === 'l' || !!title || (isCompact && (title || link || primaryAction || secondaryAction)))\n\n const handleMouseEnter = () => {\n if (timer) {\n setTimerOnPause(true)\n }\n }\n\n const handleMouseLeave = () => {\n if (timer) {\n setTimerOnPause(false)\n }\n }\n\n return (\n <Styled.Root\n className={_className}\n clear={clear}\n column={column}\n isCompact={isCompact}\n noIcon={noIcon}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n ref={ref}\n size={size}\n style={style}\n textWrap={textWrap}\n type={type}\n width={width}\n withAction={!!primaryAction || !!secondaryAction}\n withCloseIcon={!!closeToast}\n withImage={!!image}\n withLink={!!link}\n withTimer={!!timer}\n withTitle={!!title}\n >\n {(!noIcon || customIcon) && (\n <Styled.IconWrapper column={column} isCompact={isCompact} withImage={!!image}>\n {!noIcon && !timer && !customIcon && !image && getDefaultIcon({ isCompact, theme, type })}\n {customIcon && <Icon name={customIcon} size={isCompact ? 16 : 24} />}\n {image}\n {timer && (\n <Styled.Timer\n isCompact={isCompact}\n paused={timerOnPause}\n timer={timer}\n color={countdownColor({ theme, type })}\n />\n )}\n </Styled.IconWrapper>\n )}\n\n <Styled.ContentWrapper column={column} isCompact={isCompact}>\n {title && (\n <Styled.Title\n color={theme.colors['content-onmain-primary']}\n isCompact={isCompact}\n size={isCompact ? 14 : 16}\n lineHeight='m'\n {...titleProps}\n >\n {title}\n </Styled.Title>\n )}\n\n <Styled.Content\n appearance='body'\n color={theme.colors['content-onmain-primary']}\n column={column}\n isCompact={isCompact}\n size={isCompact ? 'xs' : 's'}\n textWrap={textWrap}\n {...textProps}\n >\n {children}\n </Styled.Content>\n\n {link && (\n <Styled.Link clear={clear} column={column} isCompact={isCompact} withTitle={!!title}>\n <Anchor\n color={props.clear ? theme.colors['content-link'] : theme.colors['content-onmain-primary']}\n onClick={link.onClick}\n preset='default'\n pseudo\n size={isCompact ? 's' : 'm'}\n {...linkProps}\n >\n {link.content}\n </Anchor>\n </Styled.Link>\n )}\n\n {(primaryAction || secondaryAction) && (\n <Styled.Actions column={column} isCompact={isCompact} withTitle={!!title}>\n {secondaryAction && (\n <Button\n black\n fontWeight='normal'\n onClick={secondaryAction.onClick}\n outline\n preset='brand'\n size={isCompact ? 'xs' : 's'}\n margin={4}\n {...secondaryActionProps}\n >\n {secondaryAction.content}\n </Button>\n )}\n\n {primaryAction && (\n <Button\n black\n fontWeight='normal'\n onClick={primaryAction.onClick}\n preset='brand'\n size={isCompact ? 'xs' : 's'}\n margin={4}\n {...primaryActionProps}\n >\n {primaryAction.content}\n </Button>\n )}\n </Styled.Actions>\n )}\n </Styled.ContentWrapper>\n\n {onClickCancelTimer && (\n <Styled.CancelTimer\n black\n clear\n fontWeight='normal'\n isCompact={isCompact}\n onClick={onClickCancelTimer}\n preset='brand'\n size={isCompact ? 'xs' : 's'}\n margin={4}\n >\n {cancelTimerText}\n </Styled.CancelTimer>\n )}\n\n {closeToast && (isCompact ? !timer : true) && (\n <Styled.CloseIcon aria-label='close' onClick={closeToast} type='button' withTimer={!!timer}>\n <Close color={theme.colors['content-onmain-primary']} size={isCompact ? 18 : 24} />\n </Styled.CloseIcon>\n )}\n </Styled.Root>\n )\n})\n\nAlert.displayName = COMPONENT_NAME\n\nexport { Alert, COMPONENT_NAME }\n\nexport type { AlertProps }\n","/* eslint-disable no-unused-vars */\nexport enum CurrencyCodes {\n ALL = 'ALL',\n AFN = 'AFN',\n ARS = 'ARS',\n AWG = 'AWG',\n AUD = 'AUD',\n AZN = 'AZN',\n BSD = 'BSD',\n BBD = 'BBD',\n BYR = 'BYR',\n BZD = 'BZD',\n BMD = 'BMD',\n BOB = 'BOB',\n BAM = 'BAM',\n BWP = 'BWP',\n BGN = 'BGN',\n BRL = 'BRL',\n BND = 'BND',\n KHR = 'KHR',\n CAD = 'CAD',\n KYD = 'KYD',\n CLP = 'CLP',\n CNY = 'CNY',\n COP = 'COP',\n CRC = 'CRC',\n HRK = 'HRK',\n CUP = 'CUP',\n CZK = 'CZK',\n DKK = 'DKK',\n DOP = 'DOP',\n XCD = 'XCD',\n EGP = 'EGP',\n SVC = 'SVC',\n EEK = 'EEK',\n EUR = 'EUR',\n FKP = 'FKP',\n FJD = 'FJD',\n FRF = 'FRF',\n GHC = 'GHC',\n GIP = 'GIP',\n GTQ = 'GTQ',\n GGP = 'GGP',\n GYD = 'GYD',\n HNL = 'HNL',\n HKD = 'HKD',\n HUF = 'HUF',\n ISK = 'ISK',\n INR = 'INR',\n IDR = 'IDR',\n IRR = 'IRR',\n IMP = 'IMP',\n ILS = 'ILS',\n JMD = 'JMD',\n JPY = 'JPY',\n JEP = 'JEP',\n KZT = 'KZT',\n KGS = 'KGS',\n LAK = 'LAK',\n LVL = 'LVL',\n LBP = 'LBP',\n LRD = 'LRD',\n LTL = 'LTL',\n MKD = 'MKD',\n MYR = 'MYR',\n MUR = 'MUR',\n MXN = 'MXN',\n MNT = 'MNT',\n MZN = 'MZN',\n NAD = 'NAD',\n NPR = 'NPR',\n ANG = 'ANG',\n NZD = 'NZD',\n NIO = 'NIO',\n NGN = 'NGN',\n KPW = 'KPW',\n NOK = 'NOK',\n OMR = 'OMR',\n PKR = 'PKR',\n PAB = 'PAB',\n PYG = 'PYG',\n PEN = 'PEN',\n PHP = 'PHP',\n PLN = 'PLN',\n QAR = 'QAR',\n RON = 'RON',\n RUR = 'RUR',\n RUB = 'RUB',\n SHP = 'SHP',\n SAR = 'SAR',\n RSD = 'RSD',\n SCR = 'SCR',\n SGD = 'SGD',\n SBD = 'SBD',\n SOS = 'SOS',\n ZAR = 'ZAR',\n KRW = 'KRW',\n LKR = 'LKR',\n SEK = 'SEK',\n CHF = 'CHF',\n SRD = 'SRD',\n SYP = 'SYP',\n TWD = 'TWD',\n THB = 'THB',\n TTD = 'TTD',\n TRY = 'TRY',\n TRL = 'TRL',\n TVD = 'TVD',\n UAH = 'UAH',\n GBP = 'GBP',\n USD = 'USD',\n UYU = 'UYU',\n UZS = 'UZS',\n VEF = 'VEF',\n VND = 'VND',\n YER = 'YER',\n ZWD = 'ZWD',\n}\n\nexport const CURRENCY_MAP: Readonly<Record<CurrencyCodes, string>> = Object.freeze({\n ALL: '\\u004C\\u0065\\u006b',\n AFN: '\\u060B',\n ARS: '\\u0024',\n AWG: '\\u0192',\n AUD: '\\u0024',\n AZN: '\\u20BC',\n BSD: '\\u0024',\n BBD: '\\u0024',\n BYR: '\\u0042\\u0072',\n BZD: '\\u0042\\u005a\\u0024',\n BMD: '\\u0024',\n BOB: '\\u0024\\u0062',\n BAM: '\\u004B\\u004d',\n BWP: '\\u0050',\n BGN: '\\u043B\\u0432',\n BRL: '\\u0052\\u0024',\n BND: '\\u0024',\n KHR: '\\u17DB',\n CAD: '\\u0043\\u0024',\n KYD: '\\u0024',\n CLP: '\\u0024',\n CNY: '\\u00A5',\n COP: '\\u0024',\n CRC: '\\u20A1',\n HRK: '\\u006B\\u006e',\n CUP: '\\u20B1',\n CZK: '\\u004B\\u010d',\n DKK: '\\u006B\\u0072',\n DOP: '\\u0052\\u0044\\u0024',\n XCD: '\\u0024',\n EGP: '\\u00A3',\n SVC: '\\u0024',\n EEK: '\\u006B\\u0072',\n EUR: '\\u20AC',\n FKP: '\\u00A3',\n FJD: '\\u0024',\n FRF: '\\u20A3',\n GHC: '\\u00A2',\n GIP: '\\u00A3',\n GTQ: '\\u0051',\n GGP: '\\u00A3',\n GYD: '\\u0024',\n HNL: '\\u004C',\n HKD: '\\u0024',\n HUF: '\\u0046\\u0074',\n ISK: '\\u006B\\u0072',\n INR: '\\u20A8',\n IDR: '\\u0052\\u0070',\n IRR: '\\uFDFC',\n IMP: '\\u00A3',\n ILS: '\\u20AA',\n JMD: '\\u004A\\u0024',\n JPY: '\\u00A5',\n JEP: '\\u00A3',\n KZT: '\\u20B8',\n KGS: '\\u004B\\u0047\\u0053',\n LAK: '\\u20AD',\n LVL: '\\u004C\\u0073',\n LBP: '\\u00A3',\n LRD: '\\u0024',\n LTL: '\\u004C\\u0074',\n MKD: '\\u0434\\u0435\\u043d',\n MYR: '\\u0052\\u004d',\n MUR: '\\u20A8',\n MXN: '\\u0024',\n MNT: '\\u20AE',\n MZN: '\\u004D\\u0054',\n NAD: '\\u0024',\n NPR: '\\u20A8',\n ANG: '\\u0192',\n NZD: '\\u0024',\n NIO: '\\u0043\\u0024',\n NGN: '\\u20A6',\n KPW: '\\u20A9',\n NOK: '\\u006B\\u0072',\n OMR: '\\uFDFC',\n PKR: '\\u20A8',\n PAB: '\\u0042\\u002f\\u002e',\n PYG: '\\u0047\\u0073',\n PEN: '\\u0053\\u002f\\u002e',\n PHP: '\\u20B1',\n PLN: '\\u007A\\u0142',\n QAR: '\\uFDFC',\n RON: '\\u006C\\u0065\\u0069',\n RUR: '\\u20BD',\n RUB: '\\u20BD',\n SHP: '\\u00A3',\n SAR: '\\uFDFC',\n RSD: '\\u0414\\u0438\\u043d\\u002e',\n SCR: '\\u20A8',\n SGD: '\\u0024',\n SBD: '\\u0024',\n SOS: '\\u0053',\n ZAR: '\\u0052',\n KRW: '\\u20A9',\n LKR: '\\u20A8',\n SEK: '\\u006B\\u0072',\n CHF: '\\u0043\\u0048\\u0046',\n SRD: '\\u0024',\n SYP: '\\u00A3',\n TWD: '\\u004E\\u0054\\u0024',\n THB: '\\u0E3F',\n TTD: '\\u0054\\u0054\\u0024',\n TRY: '\\u20A4',\n TRL: '\\u20A4',\n TVD: '\\u0024',\n UAH: '\\u20B4',\n GBP: '\\u00A3',\n USD: '\\u0024',\n UYU: '\\u0024\\u0055',\n UZS: '\\u043B\\u0432',\n VEF: '\\u0042\\u0073',\n VND: '\\u20AB',\n YER: '\\uFDFC',\n ZWD: '\\u005A\\u0024',\n})\n","import styled, { css } from 'styled-components'\nimport { AmountProps } from './Amount'\n\nconst crossedOut = css`\n text-decoration: line-through;\n`\n\nexport const Root = styled.span.withConfig<AmountProps>({\n shouldForwardProp: (prop) => ['children', 'className', 'style'].includes(prop),\n})`\n color: inherit;\n white-space: nowrap;\n ${(props) => (props.crossedOut ? crossedOut : null)}\n`\n","import { PureComponent } from 'react'\nimport cx from 'clsx'\nimport { Text } from 'components/Text'\nimport type { TextProps } from 'components/Text'\nimport { CurrencyCodes, CURRENCY_MAP } from './data'\nimport * as Styled from './style'\n\nexport interface AmountProps extends TextProps {\n /**\n * Value for amount\n */\n value?: number\n /**\n * Digits after point\n */\n digitsAfterPoint?: number\n /**\n * Show zero minor part\n */\n showZeroMinorPart?: boolean\n /**\n * Separator of major and minor part of amount\n */\n separator?: string\n /**\n * International code of currency.\n */\n currency?: keyof typeof CurrencyCodes | string\n /**\n * Use Header component for display amount\n */\n isHeader?: boolean\n /**\n * Amount is not valid and will be crossed out with ```text-decoration: line-through```\n */\n crossedOut?: boolean\n /**\n * If need only currency symbol\n */\n onlyCurrency?: boolean\n}\n\nconst AMOUNT_MAJOR_PART_SIZE = 3\nconst ZERO_MINOR_PART_REGEXP = /^0+$/\nconst MINUS_SIGN_HTML_CODE = '\\u2212'\n\nfunction createSplitter(partSize: number): (_s: string) => string[] {\n const parts = (str: string): string[] => {\n const { length } = str\n\n if (length <= partSize) {\n return [str]\n }\n\n const from = length - partSize\n const to = length\n\n return [str.slice(from, to)].concat(parts(str.slice(0, from)))\n }\n\n return parts\n}\n\nfunction formatAmount(\n value: AmountProps['value'] = 0,\n digitsAfterPoint: AmountProps['digitsAfterPoint'],\n currencyCode: AmountProps['currency']\n) {\n const isNegative = value < 0\n\n const valueAbs = Math.abs(value)\n const valueAbsStr = valueAbs.toFixed(digitsAfterPoint)\n\n const numberParts = valueAbsStr.split('.')\n const majorPart = numberParts[0]\n const minorPart = numberParts[1]\n\n const amountSplitter = createSplitter(AMOUNT_MAJOR_PART_SIZE)\n\n const majorPartFormatted = amountSplitter(majorPart).reverse().join(' ')\n\n const formattedValueStr = majorPartFormatted + (minorPart ? `,${minorPart}` : '')\n\n return {\n majorPart: majorPartFormatted,\n minorPart,\n value: formattedValueStr,\n isNegative,\n currencySymbol: currencyCode ? Amount.getCurrencySymbol(currencyCode) : '',\n }\n}\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`Color`](#/Миксины)\n * - [`ResponsiveNamedProperty<'size'>`](#/Миксины)\n */\nexport class Amount extends PureComponent<AmountProps> {\n static displayName = 'Amount'\n static defaultProps = {\n isHeader: false,\n showZeroMinorPart: false,\n crossedOut: false,\n digitsAfterPoint: 2,\n separator: ',',\n onlyCurrency: false,\n }\n\n static getCurrencySymbol(currencyCode: keyof typeof CurrencyCodes | string) {\n return CURRENCY_MAP[currencyCode] || currencyCode\n }\n\n renderMinorPart(minorPart: string) {\n const { showZeroMinorPart, separator } = this.props\n\n let needMinorPart = false\n\n if (minorPart) {\n needMinorPart = true\n\n if (!showZeroMinorPart && ZERO_MINOR_PART_REGEXP.test(minorPart)) {\n needMinorPart = false\n }\n }\n\n if (needMinorPart) {\n return (\n <span className='minor-container'>\n <span className='separator'>{separator}</span>\n <span className='minor'>{minorPart}</span>\n </span>\n )\n }\n\n return null\n }\n\n renderCurrencySymbol = (currencySymbol: string) => (\n <span style={{ position: 'relative' }}>\n {this.props.currency === 'RUR' ? (\n <span\n style={{\n position: 'absolute',\n width: 0,\n opacity: 0,\n visibility: 'hidden',\n }}\n >\n руб.\n </span>\n ) : null}\n <span>{` ${currencySymbol}`}</span>\n </span>\n )\n\n render() {\n const { value, digitsAfterPoint, currency, isHeader, className, style, crossedOut, onlyCurrency, ...rest } =\n this.props\n\n const { majorPart, minorPart, isNegative, currencySymbol } = formatAmount(value, digitsAfterPoint, currency)\n\n const classNames = cx('amount', className)\n\n const amountInner = (\n <Styled.Root className={classNames} style={style} crossedOut={crossedOut}>\n {!onlyCurrency ? (\n <>\n <span className='major'>\n {isNegative && MINUS_SIGN_HTML_CODE}\n {majorPart}\n </span>\n {this.renderMinorPart(minorPart)}\n </>\n ) : null}\n {currency && this.renderCurrencySymbol(currencySymbol)}\n </Styled.Root>\n )\n\n const Element = isHeader ? Text.Heading : Text\n\n return (\n <Element {...rest} as='span'>\n {amountInner}\n </Element>\n )\n }\n}\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n width: 60,\n height: 60,\n fontSize: 28,\n },\n xxl: {\n width: 56,\n height: 56,\n fontSize: 28,\n },\n xl: {\n width: 52,\n height: 52,\n fontSize: 28,\n },\n l: {\n width: 48,\n height: 48,\n fontSize: 24,\n },\n m: {\n width: 44,\n height: 44,\n fontSize: 24,\n },\n s: {\n width: 40,\n height: 40,\n fontSize: 24,\n },\n xs: {\n width: 36,\n height: 36,\n fontSize: 20,\n },\n xxs: {\n width: 32,\n height: 32,\n fontSize: 20,\n },\n xxxs: {\n width: 28,\n height: 28,\n fontSize: 20,\n },\n}\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES_DEFAULT: Sizes = {\n xxxl: {\n width: 52,\n height: 52,\n fontSize: 18,\n },\n xxl: {\n width: 48,\n height: 48,\n fontSize: 18,\n },\n xl: {\n width: 44,\n height: 44,\n fontSize: 18,\n },\n l: {\n width: 40,\n height: 40,\n fontSize: 16,\n },\n m: {\n width: 28,\n height: 28,\n fontSize: 16,\n },\n s: {\n width: 24,\n height: 24,\n fontSize: 16,\n },\n xs: {\n width: 20,\n height: 20,\n fontSize: 16,\n },\n xxs: {\n width: 16,\n height: 16,\n fontSize: 12,\n },\n xxxs: {\n width: 14,\n height: 14,\n fontSize: 10,\n },\n}\n","import styled, { css } from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { responsiveMargin } from 'mixins/responsive-margin'\nimport { focus } from 'mixins/focus'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport type { CSSColor } from 'shared/types'\nimport type { StyledArrowProps, ArrowPalette } from './types'\n\nconst shouldForwardArrowProp = createShouldForwardProp((propKey) => {\n return !['square', 'top', 'right', 'bottom', 'left', 'onColored', 'outline', 'inverse'].includes(propKey)\n})\n\nconst template = (palette: ArrowPalette) => `\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n border-color: ${palette.borderColor};\n &::before {\n box-shadow: inset 0px 4px 0px ${palette.shadowColor};\n }\n &:hover {\n color: ${palette.colorHover};\n background-color: ${palette.backgroundColorHover};\n border-color: ${palette.borderColorHover};\n }\n &:active {\n color: ${palette.colorActive};\n background-color: ${palette.backgroundColorActive};\n border-color: ${palette.borderColorActive};\n }\n &:disabled {\n color: ${palette.colorDisabled};\n background-color: ${palette.backgroundColorDisabled};\n border-color: ${palette.borderColorDisabled};\n }\n`\n\nconst defaultDisabledStyles = `\n -webkit-filter: grayscale(100%);\n -moz-filter: grayscale(100%);\n -ms-filter: grayscale(100%);\n -o-filter: grayscale(100%);\n filter: grayscale(100%);\n`\n\nconst COLOR_SCHEMA = {\n onColored: {\n outline: css<StyledArrowProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors.transparent,\n borderColor: props.theme.colors['border-oncolor-default'],\n colorHover: props.theme.colors['content-oncolor-constant'],\n backgroundColorHover: props.theme.colors['bg-oncolor-primary'],\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.theme.colors['content-oncolor-constant'],\n backgroundColorActive: tinycolor(props.theme.colors['bg-oncolor-primary']).darken(6).toString() as CSSColor,\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.theme.colors['content-oncolor-disabled'],\n backgroundColorDisabled: props.theme.colors.transparent,\n borderColorDisabled: props.theme.colors['border-oncolor-disabled'],\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n default: css<StyledArrowProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-constant'],\n backgroundColor: props.theme.colors['bg-oncolor-primary'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-oncolor-constant'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-oncolor-primary']).darken(6).toString() as CSSColor,\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.theme.colors['content-oncolor-constant'],\n backgroundColorActive: tinycolor(props.theme.colors['bg-oncolor-primary']).darken(8).toString() as CSSColor,\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors['bg-oncolor-primary'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n },\n default: {\n outline: css<StyledArrowProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors.transparent,\n borderColor: props.theme.colors['border-onmain-contrast'],\n colorHover: props.theme.colors['content-onmain-primary'],\n backgroundColorHover: props.theme.colors['bg-onmain-tertiary'],\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.theme.colors['content-oncolor-primary'],\n backgroundColorActive: props.theme.colors['bg-brand-primary-basic-active'],\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors.transparent,\n borderColorDisabled: props.theme.colors['border-disabled'],\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n default: css<StyledArrowProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-onmain-tertiary'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-onmain-primary'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-onmain-tertiary']).darken(4).toString() as CSSColor,\n borderColorHover: props.theme.colors.transparent,\n colorActive: props.theme.colors['content-oncolor-primary'],\n backgroundColorActive: props.theme.colors['bg-brand-primary-basic-active'],\n borderColorActive: props.theme.colors.transparent,\n colorDisabled: props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors.transparent,\n shadowColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n },\n}\n\nconst DEFAULT_STYLES = {\n filled: css<StyledArrowProps>`\n ${({ theme, disabled }) => `\n background-color: ${theme.colors.white};\n box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);\n & svg {\n fill: ${theme.colors.accent};\n }\n &:hover {\n background-color: ${theme.colors.accent};\n box-shadow: none;\n svg {\n fill: ${theme.colors.white};\n }\n }\n &:active {\n box-shadow: inset 0 4px 0 rgba(5, 108, 188, 0.5);\n }\n ${disabled ? defaultDisabledStyles : ''}\n `}\n `,\n outline: css<StyledArrowProps>`\n ${({ theme, disabled }) => `\n background-color: transparent;\n box-shadow: inset 0 0 0 2px ${theme.colors.alto};\n & svg {\n fill: ${theme.colors.alto};\n }\n &:hover {\n background-color: ${theme.colors.accent};\n box-shadow: none;\n svg {\n fill: ${theme.colors.white};\n }\n }\n &:active {\n box-shadow: inset 0 4px 0 rgba(5, 108, 188, 0.5);\n }\n ${disabled ? defaultDisabledStyles : ''}\n `}\n `,\n inverse: css<StyledArrowProps>`\n ${({ theme, disabled }) => `\n background-color: transparent;\n box-shadow: inset 0 0 0 2px ${theme.colors.white};\n & svg {\n fill: ${theme.colors.white};\n }\n &:hover {\n background-color: ${theme.colors.white};\n box-shadow: none;\n svg {\n fill: ${theme.colors.accent};\n }\n }\n &:active {\n box-shadow: inset 0 4px 0 #eaecf3;\n }\n ${disabled ? defaultDisabledStyles : ''}\n `}\n `,\n}\n\nexport const Root = styled.button\n .withConfig<StyledArrowProps>({\n shouldForwardProp: shouldForwardArrowProp,\n })\n .attrs<StyledArrowProps>(<Required<Pick<StyledArrowProps, 'dynamicSizeDeclaration'>>>{\n dynamicSizeDeclaration: (size, sizeUnits) => {\n return {\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n width: '1.8em',\n height: '1.8em',\n }\n },\n })`\n ${(props) => {\n let transform = 'rotate(0deg)'\n\n if (props.right) transform = 'rotate(90deg)'\n if (props.bottom) transform = 'rotate(180deg)'\n if (props.left) transform = 'rotate(270deg)'\n\n return `\n box-sizing: border-box;\n position: relative;\n isolation: isolate;\n appearance: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n padding: 0;\n border-radius: ${props.square ? '8px' : '50%'};\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n & svg {\n transform: ${transform};\n transform-origin: center;\n }\n ${\n props.preset === 'brand'\n ? `\n border: 1px solid transparent;\n transition-property: background-color; \n transition-duration: 250ms;\n &::before {\n content: '';\n position: absolute;\n top: -1px;\n left: -1px;\n width: calc(100% + 2px);\n height: calc(100% + 2px);\n border-radius: inherit;\n opacity: 0;\n transition-property: opacity; \n transition-duration: 150ms;\n transition-timing-function: ease-in;\n }\n &:active:not(:disabled)::before {\n opacity: 1;\n }`\n : `\n border: none;\n transition-property: background-color, box-shadow;\n transition-duration: 200ms;`\n }\n `\n }}\n\n ${(props) => {\n if (props.preset === 'brand') {\n const schema = props.onColored ? COLOR_SCHEMA.onColored : COLOR_SCHEMA.default\n\n return props.outline ? schema.outline : schema.default\n }\n\n const defaultStyles = DEFAULT_STYLES\n\n if (props.inverse) return defaultStyles.inverse\n if (props.outline) return defaultStyles.outline\n\n return defaultStyles.filled\n }}\n\n ${focus}\n ${responsiveSize}\n ${responsiveMargin}\n`\n","import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { Icon } from 'components/Icon'\nimport type { IconProps } from 'components/Icon'\nimport { SIZES } from './constants'\nimport { SIZES_DEFAULT } from './default-constants'\nimport type { ArrowProps } from './types'\n\nimport * as Styled from './style'\n\nconst COMPONENT_NAME = 'Arrow'\n\n/**\n *\n * Component accepts all \\<button\\> attributes.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [ArrowProps](https://github.com/foxford/ui/blob/master/src/components/Arrow/types.ts)\n */\nconst Arrow: React.ForwardRefExoticComponent<ArrowProps> = withMergedProps<ArrowProps, HTMLButtonElement>(\n forwardRef((props, ref) => {\n const { type = 'button', size = 'l', iconProps = {}, ...restProps } = props\n\n const iconBaseProps: IconProps = { as: 'span', color: 'inherit' }\n\n return (\n <Styled.Root {...restProps} type={type} size={size} ref={ref}>\n <Icon name={restProps.preset === 'brand' ? 'arrowUp' : 'chevronUp'} {...iconBaseProps} {...iconProps} />\n </Styled.Root>\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: (props) => (props.preset === 'brand' ? SIZES : SIZES_DEFAULT),\n }\n)\n\nexport { Arrow, COMPONENT_NAME }\n\nexport type { ArrowProps }\n","<svg viewBox=\"0 0 20 40\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 20 18 0h2v40h-2z\" fill=\"currentColor\"/></svg>","<svg viewBox=\"0 0 20 40\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 0h20v40H0z\" fill=\"currentColor\"/></svg>","<svg viewBox=\"0 0 28 40\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2 0h26v40H2l18-20z\" fill=\"currentColor\"/></svg>","import styled, { css } from 'styled-components'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { responsiveMargin } from 'mixins/responsive-margin'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { getColor } from 'mixins/color'\nimport { focus } from 'mixins/focus'\nimport type { StyledArrowBadgeProps, StyledArrowBadgeEdgeProps, ArrowBadgePalette } from './types'\nimport Arrow from './images/arrow.module.svg'\nimport Rectangle from './images/rectangle.module.svg'\nimport Fancy from './images/fancy.module.svg'\n\nconst shouldForwardArrowBadgeProp = createShouldForwardProp((propKey) => !['left', 'right', 'fancy'].includes(propKey))\n\nexport const Content = styled.div`\n flex-shrink: 0;\n display: flex;\n align-items: center;\n height: 100%;\n margin: 0 -1px;\n`\n\nexport const Edge = styled.svg\n .withConfig({ shouldForwardProp: () => false })\n .attrs((props: StyledArrowBadgeEdgeProps) => {\n let Shape = Rectangle\n\n if (props.fancy) Shape = Fancy\n if (props.left || props.right) Shape = Arrow\n\n return { as: Shape }\n })<StyledArrowBadgeEdgeProps>`\n flex-shrink: 0;\n height: 100%;\n ${(props) => props.after && 'transform: rotate(180deg);'}\n`\n\nconst template = (palette: ArrowBadgePalette) => `\n & > ${Content} {\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n }\n & > ${Edge} {\n color: ${palette.backgroundColor};\n }\n`\n\nconst COLOR_SCHEMA = {\n primary: css<StyledArrowBadgeProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-brand-primary-200'],\n ...props.palette,\n })}\n `,\n secondary: css<StyledArrowBadgeProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-brand-secondary-200'],\n ...props.palette,\n })}\n `,\n tertiary: css<StyledArrowBadgeProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-brand-tertiary-200'],\n ...props.palette,\n })}\n `,\n quaternary: css<StyledArrowBadgeProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-brand-quaternary-200'],\n ...props.palette,\n })}\n `,\n}\n\nexport const Root = styled.div\n .withConfig<StyledArrowBadgeProps>({\n shouldForwardProp: shouldForwardArrowBadgeProp,\n })\n .attrs(<Required<Pick<StyledArrowBadgeProps, 'dynamicSizeDeclaration'>>>{\n dynamicSizeDeclaration: (size, sizeUnits) => {\n return {\n height: '1.8em',\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n }\n },\n })`\n ${(props) => {\n let paddingRight = 0\n let paddingLeft = 0\n\n if (props.fancy || props.right) paddingRight = 0.4\n if (props.fancy || props.left) paddingLeft = 0.4\n\n return `\n box-sizing: border-box;\n isolation: isolate;\n display: inline-flex;\n width: max-content;\n flex-shrink: 0;\n cursor: default;\n & > ${Content} {\n padding-right: ${paddingRight}em;\n padding-left: ${paddingLeft}em;\n }\n `\n }}\n\n ${(props) => {\n if (props.quaternary) return COLOR_SCHEMA.quaternary\n if (props.tertiary) return COLOR_SCHEMA.tertiary\n if (props.secondary) return COLOR_SCHEMA.secondary\n\n return COLOR_SCHEMA.primary\n }}\n\n ${focus}\n ${responsiveSize}\n ${responsiveMargin}\n\n ${(props) =>\n props.color &&\n `& > ${Content} {\n color: ${getColor(props.color, props)};\n }`}\n ${(props) =>\n props.backgroundColor &&\n `& > ${Content} {\n background-color: ${getColor(props.backgroundColor, props)};\n }\n & > ${Edge} {\n color: ${getColor(props.backgroundColor, props)};\n }`}\n`\n","import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { Text } from 'components/Text'\nimport type { TextProps } from 'components/Text'\nimport * as Styled from './style'\nimport type { ArrowBadgeProps } from './types'\nimport { SIZES } from './constants'\n\nconst COMPONENT_NAME = 'ArrowBadge'\n\n/**\n *\n * Component accepts all \\<div\\> attributes.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [ArrowBadgeProps](https://github.com/foxford/ui/blob/master/src/components/ArrowBadge/types.ts)\n */\nconst ArrowBadge: React.ForwardRefExoticComponent<ArrowBadgeProps> = withMergedProps<ArrowBadgeProps, HTMLDivElement>(\n forwardRef((props, ref) => {\n const { size = 'm', textProps = {}, children, left, right, fancy, ...restProps } = props\n\n const baseTextProps: TextProps = { as: 'div', size: 'inherit', color: 'inherit' }\n\n return (\n <Styled.Root {...restProps} size={size} left={left} right={right} fancy={fancy} ref={ref}>\n <Styled.Edge left={left} fancy={fancy} />\n <Styled.Content>\n {typeof children === 'function' ? (\n children({ baseTextProps, textProps })\n ) : (\n <Text {...baseTextProps} {...textProps}>\n {children}\n </Text>\n )}\n </Styled.Content>\n <Styled.Edge right={right} fancy={fancy} after />\n </Styled.Root>\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: SIZES,\n }\n)\n\nexport { ArrowBadge, COMPONENT_NAME }\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n height: 64,\n fontSize: 36,\n },\n xxl: {\n height: 60,\n fontSize: 34,\n },\n xl: {\n height: 54,\n fontSize: 32,\n },\n l: {\n height: 48,\n fontSize: 28,\n },\n m: {\n height: 40,\n fontSize: 22,\n },\n s: {\n height: 32,\n fontSize: 16,\n },\n xs: {\n height: 24,\n fontSize: 14,\n },\n xxs: {\n height: 20,\n fontSize: 10,\n },\n xxxs: {\n height: 16,\n fontSize: 10,\n },\n}\n","import styled, { keyframes, css } from 'styled-components'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { responsiveMargin } from 'mixins/responsive-margin'\nimport type { StyledSkeletonProps, SkeletonPalette } from './types'\n\nconst shouldForwardSkeletonProp = createShouldForwardProp(\n (propKey) =>\n ![\n 'inline',\n 'round',\n 'borderRadius',\n 'width',\n 'height',\n 'animationDuration',\n 'animationDelay',\n 'onColored',\n ].includes(propKey)\n)\n\nconst shiftAnimation = keyframes`\n 0% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n`\n\nconst template = (palette: SkeletonPalette) => `\n background-color: ${palette.color};\n background-image: linear-gradient(90deg, ${palette.gradientColor} 25%, ${palette.gradientHighlightColor} 45%, ${palette.gradientColor} 65%);\n`\n\nconst COLOR_SCHEMA = {\n onColored: {\n secondary: css<StyledSkeletonProps>`\n ${(props) =>\n template({\n color: props.theme.colors['skeleton-oncolor-secondary'],\n gradientColor: props.theme.colors['skeleton-gradient-from-color-oncolor'],\n gradientHighlightColor: props.theme.colors['skeleton-gradient-to-color-oncolor'],\n ...props.palette,\n })}\n `,\n primary: css<StyledSkeletonProps>`\n ${(props) =>\n template({\n color: props.theme.colors['skeleton-oncolor-primary'],\n gradientColor: props.theme.colors['skeleton-gradient-from-color-oncolor'],\n gradientHighlightColor: props.theme.colors['skeleton-gradient-to-color-oncolor'],\n ...props.palette,\n })}\n `,\n },\n default: {\n secondary: css<StyledSkeletonProps>`\n ${(props) =>\n template({\n color: props.theme.colors['skeleton-onmain-secondary'],\n gradientColor: props.theme.colors['skeleton-gradient-from-color-onmain'],\n gradientHighlightColor: props.theme.colors['skeleton-gradient-to-color-onmain'],\n ...props.palette,\n })}\n `,\n primary: css<StyledSkeletonProps>`\n ${(props) =>\n template({\n color: props.theme.colors['skeleton-onmain-primary'],\n gradientColor: props.theme.colors['skeleton-gradient-from-color-onmain'],\n gradientHighlightColor: props.theme.colors['skeleton-gradient-to-color-onmain'],\n ...props.palette,\n })}\n `,\n },\n}\n\nexport const Root = styled.div.withConfig<StyledSkeletonProps>({\n shouldForwardProp: shouldForwardSkeletonProp,\n})`\n ${(props) => {\n let borderRadius = props.round ? '50%' : 8\n if (typeof props.borderRadius === 'string' || typeof props.borderRadius === 'number') {\n borderRadius = props.borderRadius\n }\n\n const width = props.width ? props.width : 'auto'\n const height = props.height ? props.height : 'auto'\n\n return css`\n box-sizing: border-box;\n display: ${props.inline ? 'inline-block' : 'block'};\n width: ${typeof width === 'string' ? width : `${width}px`};\n height: ${typeof height === 'string' ? height : `${height}px`};\n border-radius: ${typeof borderRadius === 'string' ? borderRadius : `${borderRadius}px`};\n flex-shrink: 0;\n margin: 0;\n background-origin: border-box;\n background-size: 400% 100%;\n background-repeat: no-repeat;\n animation-name: ${shiftAnimation};\n animation-duration: ${props.animationDuration ?? 2000}ms;\n animation-delay: ${props.animationDelay ?? 500}ms;\n animation-iteration-count: infinite;\n\n & > * {\n visibility: hidden;\n }\n `\n }}\n\n ${(props) => {\n const schema = props.onColored ? COLOR_SCHEMA.onColored : COLOR_SCHEMA.default\n\n return props.secondary ? schema.secondary : schema.primary\n }}\n\n ${responsiveMargin}\n`\n","import { forwardRef, isValidElement, cloneElement } from 'react'\nimport { useMergedPalette } from 'hooks/useMergedPalette'\nimport * as Styled from './style'\nimport type { SkeletonProps } from './types'\n\n/**\n *\n * Component accepts all \\<div\\> attributes.\n *\n * Responsive \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [SkeletonProps](https://github.com/foxford/ui/blob/master/src/components/Skeleton/types.ts)\n */\nconst Skeleton: React.ForwardRefExoticComponent<SkeletonProps> = forwardRef<HTMLDivElement, SkeletonProps>(\n (props, ref) => {\n const palette = useMergedPalette(props)\n\n return (\n <Styled.Root {...props} palette={palette} ref={ref}>\n {!props.children ? (\n <> </>\n ) : isValidElement(props.children) &&\n typeof props.children.props === 'object' &&\n props.children.props !== null &&\n !props.children.props.children ? (\n cloneElement(props.children, {}, <> </>)\n ) : (\n props.children\n )}\n </Styled.Root>\n )\n }\n)\n\nexport { Skeleton }\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n width: 120,\n height: 120,\n fontSize: 36,\n },\n xxl: {\n width: 68,\n height: 68,\n fontSize: 24,\n },\n xl: {\n width: 52,\n height: 52,\n fontSize: 18,\n },\n l: {\n width: 48,\n height: 48,\n fontSize: 16,\n },\n m: {\n width: 40,\n height: 40,\n fontSize: 14,\n },\n s: {\n width: 32,\n height: 32,\n fontSize: 12,\n },\n xs: {\n width: 24,\n height: 24,\n fontSize: 10,\n },\n xxs: {\n width: 20,\n height: 20,\n fontSize: 8,\n },\n xxxs: {\n width: 16,\n height: 16,\n fontSize: 6,\n },\n}\n","import type { Size, Sizes } from 'shared/types'\n\nexport const SIZES_MAPPING_RULES: Record<string, Size> = { l: 'xl', m: 'l', sm: 'm' }\n\nexport const SIZES_DEFAULT: Sizes = {\n xxxl: {\n width: 120,\n height: 120,\n fontSize: 36,\n },\n xxl: {\n width: 120,\n height: 120,\n fontSize: 36,\n },\n xl: {\n width: 120,\n height: 120,\n fontSize: 36,\n },\n l: {\n width: 68,\n height: 68,\n fontSize: 24,\n },\n m: {\n width: 52,\n height: 52,\n fontSize: 12,\n },\n s: {\n width: 40,\n height: 40,\n fontSize: 12,\n },\n xs: {\n width: 32,\n height: 32,\n fontSize: 12,\n },\n xxs: {\n width: 32,\n height: 32,\n fontSize: 12,\n },\n xxxs: {\n width: 32,\n height: 32,\n fontSize: 12,\n },\n}\n","import styled, { css } from 'styled-components'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { responsiveMargin } from 'mixins/responsive-margin'\nimport { getColor } from 'mixins/color'\nimport type { StyledAvatarProps, AvatarPalette } from './types'\n\nconst shouldForwardAvatarProp = createShouldForwardProp(\n (propKey) => !['src', 'shadow', 'borderRadius', 'square', 'loading'].includes(propKey)\n)\n\nconst template = (palette: AvatarPalette) => `\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n filter: drop-shadow(0 6px 10px ${palette.shadowColor});\n`\n\nconst COLOR_SCHEMA = {\n default: css<StyledAvatarProps>`\n ${(props) =>\n template({\n color: props.theme.colors.white,\n backgroundColor: props.loading ? props.theme.colors.transparent : props.theme.colors.mercury,\n shadowColor: props.shadow ? props.theme.colors['bg-oncolor-hover'] : props.theme.colors.transparent,\n ...props.palette,\n })}\n `,\n primary: css<StyledAvatarProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-brand-primary'],\n backgroundColor: props.loading ? props.theme.colors.transparent : props.theme.colors['bg-brand-primary-100'],\n shadowColor: props.shadow ? props.theme.colors['bg-oncolor-hover'] : props.theme.colors.transparent,\n ...props.palette,\n })}\n `,\n}\n\nexport const Root = styled.span\n .withConfig<StyledAvatarProps>({\n shouldForwardProp: shouldForwardAvatarProp,\n })\n .attrs<StyledAvatarProps>(<Required<Pick<StyledAvatarProps, 'dynamicSizeDeclaration'>>>{\n dynamicSizeDeclaration: (size, sizeUnits) => ({\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n width: '1em',\n height: '1em',\n }),\n })`\n ${(props) => `\n box-sizing: border-box;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n vertical-align: middle;\n flex-shrink: 0;\n cursor: default;\n border-radius: ${props.square ? '6px' : props.borderRadius};\n ${\n props.src && !props.loading\n ? `\n background-image: url(${props.src});\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover; \n `\n : ''\n }\n `}\n\n ${(props) => (props.preset === 'brand' ? COLOR_SCHEMA.primary : COLOR_SCHEMA.default)}\n\n ${(props) => props.color && !props.loading && `background-color: ${getColor(props.color, props)};`}\n\n ${responsiveSize}\n ${responsiveMargin}\n`\n","import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { Skeleton } from 'components/Skeleton'\nimport { Text } from 'components/Text'\nimport { abbreviateCaption } from './utils'\nimport { SIZES } from './constants'\nimport { SIZES_MAPPING_RULES, SIZES_DEFAULT } from './default-constants'\nimport type { AvatarProps } from './types'\nimport * as Styled from './style'\n\nconst COMPONENT_NAME = 'Avatar'\n\n/**\n *\n * Component accepts all \\<span\\> attributes.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [AvatarProps](https://github.com/foxford/ui/blob/master/src/components/AvatarProps/types.ts)\n */\nconst Avatar: React.ForwardRefExoticComponent<AvatarProps> = withMergedProps<AvatarProps, HTMLSpanElement>(\n forwardRef((props, ref) => {\n const { size = 'm', textProps = {}, borderRadius = '50%', children, text, ...restProps } = props\n\n const sizeMapped =\n typeof size === 'string' && (restProps.preset === 'default' || size === 'sm')\n ? SIZES_MAPPING_RULES[size] ?? size\n : size\n\n return (\n <Styled.Root {...restProps} size={sizeMapped} borderRadius={borderRadius} ref={ref}>\n {restProps.loading ? (\n <Skeleton as='span' width='100%' height='100%' borderRadius='inherit' />\n ) : (\n <>\n {children ??\n (!restProps.src && (\n <Text\n as='span'\n appearance='caption'\n size='inherit'\n color='inherit'\n lineHeight={1}\n marginTop={1}\n transform='uppercase'\n {...textProps}\n >\n {abbreviateCaption(text || restProps.title || '')}\n </Text>\n ))}\n </>\n )}\n </Styled.Root>\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: (props) => (props.preset === 'brand' ? SIZES : SIZES_DEFAULT),\n }\n)\n\nexport { Avatar }\n","export const abbreviateCaption = (caption: string): string =>\n caption\n .split(' ')\n .map((seq) => seq.trim())\n .filter((seq) => seq.length !== 0)\n .slice(0, 2)\n .reduce((abbreviation, seq) => {\n if (typeof seq === 'string') {\n const symbolCodePoint = seq.codePointAt(0)\n\n if (typeof symbolCodePoint === 'number') {\n abbreviation += String.fromCodePoint(symbolCodePoint)\n }\n }\n\n return abbreviation\n }, '') || '#'\n","import styled, { css } from 'styled-components'\nimport type { ThemedStyledProps, DefaultTheme } from 'styled-components'\nimport { color } from 'mixins/color'\nimport { display } from 'mixins/display'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { responsiveMargin } from 'mixins/responsive-margin'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { focus } from 'mixins/focus'\nimport type { StyledBadgeProps, BadgePalette } from './types'\n\nconst shouldForwardBadgeProp = createShouldForwardProp(\n (propKey) => !['round', 'content', 'borderRadius', 'resetDefaultMargin', 'display'].includes(propKey)\n)\n\nconst template = (palette: BadgePalette) => `\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n`\n\nconst COLOR_SCHEMA = {\n primary: css<StyledBadgeProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-brand-primary-100'],\n ...props.palette,\n })}\n `,\n secondary: css<StyledBadgeProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-brand-secondary-100'],\n ...props.palette,\n })}\n `,\n tertiary: css<StyledBadgeProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-brand-tertiary-100'],\n ...props.palette,\n })}\n `,\n quaternary: css<StyledBadgeProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-brand-quaternary-100'],\n ...props.palette,\n })}\n `,\n}\n\nconst badgeStyles = (props: ThemedStyledProps<StyledBadgeProps, DefaultTheme>) => {\n if (props.quaternary) return COLOR_SCHEMA.quaternary\n if (props.tertiary) return COLOR_SCHEMA.tertiary\n if (props.secondary) return COLOR_SCHEMA.secondary\n\n return COLOR_SCHEMA.primary\n}\n\nexport const Root = styled.div\n .withConfig<StyledBadgeProps>({\n shouldForwardProp: shouldForwardBadgeProp,\n })\n .attrs<StyledBadgeProps>(\n (props): Required<Pick<StyledBadgeProps, 'dynamicSizeDeclaration'>> => ({\n dynamicSizeDeclaration: (size, sizeUnits) => {\n return {\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n height: '1.8em',\n width: props.round ? '1.8em' : undefined,\n paddingRight: props.round ? undefined : '0.6em',\n paddingLeft: props.round ? undefined : '0.6em',\n }\n },\n })\n )`\n ${(props) => {\n const borderRadius = typeof props.borderRadius === 'number' ? `${props.borderRadius}px` : props.borderRadius\n\n return `\n box-sizing: border-box;\n isolation: isolate;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: max-content;\n flex-shrink: 0;\n border-radius: ${props.round ? '50%' : borderRadius};\n cursor: default;\n `\n }}\n\n ${badgeStyles}\n ${focus}\n ${responsiveSize}\n ${responsiveMargin}\n\n ${(props) => props.color && color(props.color, 'background-color')}\n ${(props) => props.display && display(props.display)}\n ${(props) => !props.resetDefaultMargin && '&:not(:last-child) { margin-right: 8px; }'}\n`\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n height: 34,\n fontSize: 22,\n paddingRight: 10,\n paddingLeft: 10,\n },\n xxl: {\n height: 32,\n fontSize: 20,\n paddingRight: 10,\n paddingLeft: 10,\n },\n xl: {\n height: 30,\n fontSize: 18,\n paddingRight: 10,\n paddingLeft: 10,\n },\n l: {\n height: 28,\n fontSize: 16,\n paddingRight: 8,\n paddingLeft: 8,\n },\n m: {\n height: 26,\n fontSize: 14,\n paddingRight: 8,\n paddingLeft: 8,\n },\n s: {\n height: 24,\n fontSize: 12,\n paddingRight: 8,\n paddingLeft: 8,\n },\n xs: {\n height: 22,\n fontSize: 10,\n paddingRight: 6,\n paddingLeft: 6,\n },\n xxs: {\n height: 20,\n fontSize: 10,\n paddingRight: 6,\n paddingLeft: 6,\n },\n xxxs: {\n height: 18,\n fontSize: 10,\n paddingRight: 6,\n paddingLeft: 6,\n },\n}\n\nexport const SIZES_ROUND: Sizes = {\n xxxl: {\n height: 34,\n width: 34,\n fontSize: 22,\n },\n xxl: {\n height: 32,\n width: 32,\n fontSize: 20,\n },\n xl: {\n height: 30,\n width: 30,\n fontSize: 18,\n },\n l: {\n height: 28,\n width: 28,\n fontSize: 16,\n },\n m: {\n height: 26,\n width: 26,\n fontSize: 14,\n },\n s: {\n height: 24,\n width: 24,\n fontSize: 12,\n },\n xs: {\n height: 22,\n width: 22,\n fontSize: 10,\n },\n xxs: {\n height: 20,\n width: 20,\n fontSize: 10,\n },\n xxxs: {\n height: 18,\n width: 18,\n fontSize: 10,\n },\n}\n","import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { Text } from 'components/Text'\nimport { Icon } from 'components/Icon'\nimport type { TextProps } from 'components/Text'\nimport type { IconProps } from 'components/Icon'\nimport * as Styled from './style'\nimport { SIZES, SIZES_ROUND } from './constants'\nimport type { BadgeProps } from './types'\n\nconst COMPONENT_NAME = 'Badge'\n\n/**\n *\n * Component accepts all \\<div\\> attributes.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [BadgeProps](https://github.com/foxford/ui/blob/master/src/components/Badge/types.ts)\n */\nexport const Badge: React.ForwardRefExoticComponent<BadgeProps> = withMergedProps<BadgeProps, HTMLDivElement>(\n forwardRef((props, ref) => {\n const {\n size = 's',\n borderRadius = 3,\n textProps = {},\n iconProps = {},\n children,\n content,\n icon,\n ...restProps\n } = props\n\n const [before, after] = Array.isArray(icon) ? icon : [icon]\n\n const baseTextProps: TextProps = {\n as: 'span',\n size: 'inherit',\n color: 'inherit',\n marginLeft: before ? '0.25em' : undefined,\n marginRight: after ? '0.25em' : undefined,\n }\n const iconBaseProps: IconProps = { color: 'inherit' }\n\n return (\n <Styled.Root {...restProps} size={size} borderRadius={borderRadius} ref={ref}>\n {typeof children === 'function' ? (\n children({ baseTextProps, textProps, iconBaseProps, iconProps, icon })\n ) : (\n <>\n {before && (\n <Icon\n name={typeof before === 'string' ? before : undefined}\n icon={typeof before !== 'string' ? before : undefined}\n {...iconBaseProps}\n {...iconProps}\n />\n )}\n {(children || content) && (\n <Text {...baseTextProps} {...textProps}>\n {children || content}\n </Text>\n )}\n {after && (\n <Icon\n name={typeof after === 'string' ? after : undefined}\n icon={typeof after !== 'string' ? after : undefined}\n {...iconBaseProps}\n {...iconProps}\n />\n )}\n </>\n )}\n </Styled.Root>\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: (props) => (props.round ? SIZES_ROUND : SIZES),\n }\n)\n","import styled, { css } from 'styled-components'\nimport { display } from 'mixins/display'\nimport { color } from 'mixins/color'\nimport { screenL, screenM, screenMaxS } from 'mixins/screen'\nimport { ContainerProps } from './Container'\n\nexport const Root = styled.div.withConfig<ContainerProps>({\n shouldForwardProp: (prop) => ['children', 'className', 'style'].includes(prop),\n})`\n display: block;\n width: 100%;\n max-width: ${(props) => props.theme.breakpoints.l - 100 + 2 * 50}px;\n margin: 0 auto;\n padding: 0 50px;\n box-sizing: border-box;\n ${(props) => (props.display ? display(props.display) : null)}\n ${(props) => (props.color ? color(props.color, 'background-color') : null)}\n ${(props) =>\n props.textAlign\n ? css`\n text-align: ${props.textAlign};\n `\n : null}\n ${(props) =>\n props.fluid\n ? css`\n max-width: 100%;\n `\n : null}\n ${screenL()`\n padding: 0 42px;\n `}\n ${screenM()`\n padding: 0 28px;\n `}\n ${screenMaxS()`\n padding: 0 20px;\n `}\n`\n","import { ColorProperty } from 'mixins/color'\nimport { DisplayProperty } from 'mixins/display'\nimport { BaseProps } from 'shared/interfaces'\nimport * as Styled from './style'\n\nexport interface ContainerProps extends BaseProps, DisplayProperty, ColorProperty {\n /**\n * Primary content\n */\n /**\n * Children react node\n */\n children?: React.ReactNode\n /**\n * Container has no maximum width.\n */\n fluid?: boolean\n /**\n * Align container text.\n */\n textAlign?: 'left' | 'center' | 'right' | 'justified'\n}\n\nContainer.displayName = 'Container'\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`Color`](#/Миксины)\n * - [`Display`](#/Миксины)\n */\nexport function Container(props: ContainerProps) {\n return <Styled.Root {...props} />\n}\n","import styled, { createGlobalStyle, css } from 'styled-components'\nimport ReactModal from 'react-modal'\nimport { property, PossibleValues } from 'mixins/responsive-property'\nimport { ModalProps } from './Modal'\nimport { ReactModalAdapter } from './adapter'\n\ninterface ReactModalProps extends ReactModal.Props {\n zIndex?: ModalProps['zIndex']\n valign?: ModalProps['valign']\n}\n\nconst WIDTHS = {\n xxxs: 100,\n xxs: 200,\n xs: 300,\n s: 400,\n m: 500,\n l: 600,\n xl: 740,\n xxl: 800,\n xxxl: 900,\n}\n\nconst chooseWidthValue = (props: ModalProps): PossibleValues => {\n if (typeof props.width === 'number') return props.width\n\n if (props.width && typeof props.width === 'string' && WIDTHS[props.width]) return WIDTHS[props.width]\n\n return 'auto'\n}\n\nconst getPosition = (valign: ModalProps['valign']) => {\n switch (valign) {\n case 'top':\n return 'flex-start'\n case 'bottom':\n return 'flex-end'\n case 'center':\n return 'center'\n default:\n return 'center'\n }\n}\n\nexport const Modal = styled(ReactModalAdapter)<ReactModalProps>`\n &__overlay {\n z-index: ${(props) => props.zIndex || props.theme.zIndex.modal};\n display: flex;\n flex-direction: row;\n justify-content: center;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n overflow-x: none;\n overflow-y: auto;\n ${(props) =>\n props.valign\n ? css`\n align-items: ${getPosition(props.valign)};\n `\n : null}\n &.ReactModal__Overlay--after-open {\n ${(props) => {\n if (props.overlayClassName) return null\n\n if (props.blurredOverlay) {\n return css`\n background: rgba(246, 247, 251, 0.3);\n backdrop-filter: blur(3.5px);\n `\n }\n\n return css`\n background: rgba(246, 247, 251, 0.9);\n `\n }}\n }\n &.ReactModal__Overlay--before-close {\n }\n }\n\n &__content {\n width: 100%;\n max-height: 100%;\n position: relative;\n &:focus {\n outline: 0;\n }\n ${(props) => (props.width ? property(chooseWidthValue(props), 'max-width') : null)}\n &.ReactModal__Content--after-open {\n }\n &.ReactModal__Content--before-close {\n }\n }\n`\n\nexport const ModalClose = styled.span`\n opacity: 1;\n transition: 0.3s;\n position: absolute;\n right: 20px;\n top: 20px;\n cursor: pointer;\n z-index: 10;\n svg {\n width: 18px;\n height: 18px;\n }\n &:hover {\n opacity: 0.5;\n }\n`\n\nexport const GlobalRoot = createGlobalStyle`\n .bodyOpen {\n overflow: hidden;\n }\n`\n","import ReactModal from 'react-modal'\nimport cx from 'clsx'\nimport { ModalProps } from './Modal'\n\nexport const ReactModalAdapter: React.FC<ModalProps> = ({\n className,\n isOpen,\n overlayClassName,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n style: _style,\n ...props\n}: ModalProps) => {\n const contentClassName = `${className}__content`\n const overlayClassNameLocal = `${className}__overlay`\n\n return (\n <ReactModal\n portalClassName={className}\n className={contentClassName}\n isOpen={Boolean(isOpen)}\n overlayClassName={cx(overlayClassNameLocal, overlayClassName)}\n {...props}\n />\n )\n}\n","import ReactModal, { Classes } from 'react-modal'\nimport { ResponsiveNamedProperty } from 'mixins/responsive-property'\nimport { BaseProps } from 'shared/interfaces'\nimport { ModalClose } from './Close'\nimport * as Styled from './style'\n\nfunction setAppModalElement() {\n const appElement = document.body\n\n if (appElement && appElement instanceof HTMLElement) ReactModal.setAppElement(appElement)\n}\n\n// eslint-disable-next-line prettier/prettier\nif (typeof window !== 'undefined') {\n setAppModalElement()\n}\n\nexport interface ModalProps extends BaseProps, ResponsiveNamedProperty<'width'> {\n /**\n * Primary content.\n */\n /**\n * Boolean indicating if the overlay background should be blurred\n */\n blurredOverlay?: boolean\n /**\n * Children react node\n */\n children?: React.ReactNode\n /**\n * Modal class name\n */\n className?: string\n /**\n * Number indicating the milliseconds to wait before closing the modal.\n */\n closeTimeoutMS?: number\n /**\n * String indicating how the content container should be announced to screenreaders\n */\n contentLabel?: string\n /**\n * Boolean describing if the modal should be shown or not.\n */\n isOpen?: boolean\n /**\n * Function that will be run after the modal has opened.\n */\n onAfterOpen?(): void\n /**\n * Function that will be run when the modal is requested to be closed, prior to actually closing.\n */\n onRequestClose?(): void\n /**\n * Custom overlay CSS class name\n */\n overlayClassName?: string | Classes\n /**\n * String indicating the role of the modal, allowing the 'dialog' role to be applied if desired.\n */\n role?: string\n /**\n * Boolean indicating if the overlay should close the modal\n */\n shouldCloseOnOverlayClick?: boolean\n /**\n * Vertical align\n */\n valign?: 'top' | 'center' | 'bottom'\n /**\n * z-index\n */\n zIndex?: number\n}\n\nModal.defaultProps = {\n blurredOverlay: false,\n closeTimeoutMS: 0,\n zIndex: 9000,\n contentLabel: '',\n isOpen: false,\n role: 'dialog',\n shouldCloseOnOverlayClick: true,\n width: 'm',\n valign: 'center',\n className: 'modal',\n}\n\nModal.Close = ModalClose\nModal.displayName = 'Modal'\n\n/**\n * Основан на [react-modal](https://github.com/reactjs/react-modal).\n *\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`ResponsiveNamedProperty<'width'>`](#/Миксины)\n */\nexport function Modal(props: ModalProps) {\n const {\n blurredOverlay,\n children,\n closeTimeoutMS,\n contentLabel,\n isOpen,\n onAfterOpen,\n onRequestClose,\n overlayClassName,\n role,\n shouldCloseOnOverlayClick,\n width,\n valign,\n className,\n style,\n zIndex,\n } = props\n\n return (\n <Styled.Modal\n blurredOverlay={blurredOverlay}\n closeTimeoutMS={closeTimeoutMS}\n contentLabel={contentLabel}\n isOpen={Boolean(isOpen)}\n onAfterOpen={onAfterOpen}\n onRequestClose={onRequestClose}\n portalClassName={className}\n overlayClassName={overlayClassName}\n bodyOpenClassName='modal--open'\n role={role}\n zIndex={zIndex}\n valign={valign}\n width={width}\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n >\n <div style={style}>{children}</div>\n </Styled.Modal>\n )\n}\n","import { Icon } from 'components/Icon'\nimport * as Styled from './style'\n\nexport interface ModalCloseProps {\n className?: string\n onClick?: () => void\n}\n\nexport function ModalClose({ className, onClick }: ModalCloseProps) {\n return (\n <Styled.ModalClose className={className} onClick={onClick}>\n <Icon name='tinyCross' color='#D9D9D9' />\n </Styled.ModalClose>\n )\n}\n","import styled, { css } from 'styled-components'\nimport { color } from 'mixins/color'\nimport { Spacer } from 'components/Spacer'\nimport { PaperProps } from './Paper'\n\nconst zDepth = {\n 0: css`\n box-shadow: 0 2px 0 0 rgba(0, 0, 0, 0.11);\n `,\n 1: css`\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.08);\n `,\n 2: css`\n box-shadow: 0 6px 20px 0 rgba(0, 0, 0, 0.1);\n `,\n 3: css`\n box-shadow: 0 10px 20px 0 rgba(0, 0, 0, 0.08);\n `,\n 4: css`\n box-shadow: 0 10px 40px 0 rgba(0, 0, 0, 0.14);\n `,\n}\n\nconst circle = css`\n border-radius: 50%;\n justify-content: center;\n display: flex;\n align-items: center;\n min-width: 100px;\n min-height: 100px;\n`\n\nconst rounded = css`\n border-radius: ${(props) => props.theme.borderRadius};\n`\n\nexport const Root = styled(Spacer)<PaperProps>`\n box-sizing: border-box;\n background-color: ${(props) => props.theme.colors.white};\n ${(props) =>\n props.textAlign\n ? css`\n text-align: ${props.textAlign};\n `\n : null}\n ${(props) => (props.color ? color(props.color, 'background-color') : null)}\n ${(props) => (typeof props.zDepth === 'number' && props.shadow ? zDepth[props.zDepth] : null)}\n ${(props) => (props.rounded ? rounded : null)}\n ${(props) => (props.circle ? circle : null)}\n`\n","import { ResponsiveNamedProperty } from 'mixins/responsive-property'\nimport { ColorProperty } from 'mixins/color'\nimport { useClassname } from 'hooks/useClassname'\nimport { SpacerProps } from 'components/Spacer'\nimport * as Styled from './style'\n\nexport interface PaperProps extends SpacerProps, ColorProperty, ResponsiveNamedProperty<'padding'> {\n /**\n * Set to true to generate a circlular paper container\n */\n circle?: boolean\n /**\n * Paper with rounded corners\n */\n rounded?: boolean\n /**\n * Paper with shadow\n */\n shadow?: boolean\n /**\n * This number represents the zDepth of the paper shadow\n */\n zDepth?: false | 0 | 1 | 2 | 3 | 4\n /**\n * Text align\n */\n textAlign?: 'left' | 'center' | 'right'\n}\n\nPaper.displayName = 'Paper'\n\n/**\n * Расширен:\n * - [`SpacerProps`](#/Разметка%20и%20позиционирование/Spacer)\n * - [`Color`](#/Миксины)\n * - [`ResponsiveNamedProperty<'padding'>`](#/Миксины)\n */\nexport function Paper({ padding = 'm', rounded = true, shadow = true, className, ...props }: PaperProps) {\n const _className = useClassname(Paper.displayName, className)\n\n return <Styled.Root padding={padding} rounded={rounded} shadow={shadow} className={_className} {...props} />\n}\n","import { PureComponent } from 'react'\nimport { Scrollbars, ScrollbarsProps } from 'rc-scrollbars'\nimport { DefaultTheme, withTheme } from 'styled-components'\n\nexport interface ScrollableProps extends Partial<ScrollbarsProps> {\n /**\n * Children react node\n */\n children: React.ReactNode[] | React.ReactNode\n /**\n * Enable auto-hide mode\n * @see See [github docs](https://github.com/sakhnyuk/rc-scrollbars) for description\n */\n autoHide?: boolean\n /**\n * Hide delay in ms.\n */\n autoHideTimeout?: number\n /**\n * Duration for hide animation in ms.\n */\n autoHideDuration?: number\n /**\n * Enable auto-height mode.\n */\n autoHeight?: boolean\n /**\n * Set a minimum height for auto-height mode\n */\n autoHeightMin?: number\n /**\n * Set a maximum height for auto-height mode\n */\n autoHeightMax?: number\n /**\n * Event handler\n */\n onScroll?(): void\n /**\n * Runs inside the animation frame.\n */\n onScrollFrame?(): void\n /**\n * Called when scrolling starts\n */\n onScrollStart?(): void\n /**\n * Called when scrolling stops\n */\n onScrollStop?(): void\n /**\n * Height of shadow\n */\n shadowHeight?: number\n /**\n * Show shadow in scrollable component\n */\n withShadow?: boolean\n /**\n * Color of shadow from #Colors\n */\n shadowColor?: string\n /**\n * Opacity of shadow\n */\n shadowOpacity?: number\n /**\n * Color of thumb\n */\n thumbColor?: string\n /**\n * Opacity of thumb\n */\n thumbOpacity?: number\n /**\n * Border radius of thumb (px)\n */\n thumbBorderRadius?: number\n /**\n /**\n * Border radius of thumb (px)\n */\n thumbWidth?: number\n /**\n * Color of track (HEX)\n */\n trackColor?: string\n /**\n * Opacity of track\n */\n trackOpacity?: number\n /**\n * Border radius of track (px)\n */\n trackBorderRadius?: number\n /**\n /**\n * Border radius of track (px)\n */\n trackWidth?: number\n /**\n * Style for scrollable container\n */\n style?: object\n /**\n * Classname of scrollable container\n */\n className?: string\n /**\n * Disable scrollbar and return div\n */\n disabled?: boolean\n /**\n * Prevent body scrolling when start|end touched\n */\n isolate?: boolean\n\n theme?: DefaultTheme\n}\n\ntype ScrollableState = {\n scrollTop: number\n scrollHeight: number\n clientHeight: number\n}\n\n// eslint-disable-next-line no-use-before-define\nclass Scrollable extends PureComponent<typeof Scrollable.defaultProps & ScrollableProps, ScrollableState> {\n static displayName = 'Scrollable'\n static defaultProps = {\n autoHide: false,\n autoHideTimeout: 1000,\n autoHideDuration: 200,\n autoHeight: false,\n withShadow: false,\n shadowHeight: 50,\n shadowOpacity: 0.15,\n shadowColor: 'mineShaft',\n thumbColor: 'mineShaft',\n thumbOpacity: 0.15,\n thumbBorderRadius: 1,\n thumbWidth: 4,\n trackColor: '#333333',\n trackOpacity: 0.15,\n trackBorderRadius: 1,\n trackWidth: 4,\n disabled: false,\n isolate: true,\n }\n\n scrollable: HTMLDivElement | null = null\n ts = 0\n\n state = {\n scrollTop: 0,\n scrollHeight: 0,\n clientHeight: 0,\n }\n\n componentDidMount() {\n if (!this.scrollable || !this.scrollable.parentNode) return\n ;(this.scrollable.parentNode as HTMLDivElement).addEventListener('touchstart', this.handleTouchStart, false)\n ;(this.scrollable.parentNode as HTMLDivElement).addEventListener('touchmove', this.handleTouchMove, false)\n ;(this.scrollable.parentNode as HTMLDivElement).addEventListener('wheel', this.handleScroll, false)\n ;(this.scrollable.parentNode as HTMLDivElement).addEventListener(\n 'scroll',\n this.handleScroll as (_e: Event) => void,\n false\n )\n }\n\n componentWillUnmount() {\n if (!this.scrollable || !this.scrollable.parentNode) return\n ;(this.scrollable.parentNode as HTMLDivElement).removeEventListener('touchstart', this.handleTouchStart)\n ;(this.scrollable.parentNode as HTMLDivElement).removeEventListener('touchmove', this.handleTouchMove)\n ;(this.scrollable.parentNode as HTMLDivElement).removeEventListener('wheel', this.handleScroll)\n ;(this.scrollable.parentNode as HTMLDivElement).removeEventListener(\n 'scroll',\n this.handleScroll as (_e: Event) => void\n )\n }\n\n handleTouchStart = (e: TouchEvent) => {\n this.ts = e.touches[0].clientY\n }\n\n handleTouchMove = (e: TouchEvent) => {\n if (!this.props.isolate || !this.scrollable) return true\n\n const scrollarea = this.scrollable.parentNode\n\n if (!scrollarea) return\n\n const te = e.changedTouches[0].clientY\n const dir = this.ts > te ? -1 : 1\n\n const upTouch = dir === 1 && (scrollarea as HTMLDivElement).scrollTop === 0\n const endTouch =\n dir === -1 &&\n Math.floor((scrollarea as HTMLDivElement).scrollTop) ===\n (scrollarea as HTMLDivElement).scrollHeight - (scrollarea as HTMLDivElement).clientHeight\n\n if (upTouch || endTouch) {\n e.preventDefault()\n this.ts = te\n }\n\n return true\n }\n\n handleScroll = (e: WheelEvent) => {\n if (!this.props.isolate || !this.scrollable) return true\n\n const delta = e.deltaY || e.detail\n\n const scrollarea = this.scrollable.parentNode\n\n if (!scrollarea) return\n\n const dir = delta < 0 ? 1 : -1\n\n const upTouch = dir === 1 && (scrollarea as HTMLDivElement).scrollTop === 0\n const endTouch =\n dir === -1 &&\n (scrollarea as HTMLDivElement).scrollTop ===\n (scrollarea as HTMLDivElement).scrollHeight - (scrollarea as HTMLDivElement).clientHeight\n\n if (upTouch || endTouch) {\n e.preventDefault()\n }\n\n return true\n }\n\n handleUpdate = (values: ScrollableState) => {\n const { scrollTop, scrollHeight, clientHeight } = values\n\n this.setState({\n scrollTop,\n scrollHeight,\n clientHeight,\n })\n }\n\n calculateShadowOffset() {\n const { scrollTop, scrollHeight, clientHeight } = this.state\n const { shadowHeight = 50 } = this.props\n\n const diffH = scrollHeight - clientHeight || 0\n\n const a = (scrollTop * 100) / (diffH <= 0 ? 1 : diffH)\n const b = (shadowHeight * a) / 100\n\n return Math.floor(-shadowHeight + b)\n }\n\n hexToRgb = (hex: string) => {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex)\n\n return result\n ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16),\n }\n : null\n }\n\n renderTrack = ({ style, ...props }: { style: React.CSSProperties }, dir: 'vertical' | 'horizontal') => {\n const { trackColor, trackOpacity, trackBorderRadius, trackWidth } = this.props\n\n const hex = trackColor ? this.hexToRgb(trackColor) : null\n\n const trackStyle = {\n background: hex ? `rgba(${hex.r}, ${hex.g}, ${hex.b}, ${trackOpacity})` : `rgba(255,255,255,0)`,\n borderRadius: `${trackBorderRadius}px`,\n zIndex: 14,\n ...(dir === 'vertical'\n ? {\n right: 4,\n top: 2,\n bottom: 2,\n width: `${trackWidth}px`,\n }\n : {\n bottom: 4,\n left: 2,\n right: 2,\n height: `${trackWidth}px`,\n }),\n }\n\n return (\n <div\n style={{\n ...style,\n ...trackStyle,\n }}\n {...props}\n />\n )\n }\n\n renderThumb = ({ style, ...scrollableProps }: { style: React.CSSProperties }) => {\n const { thumbColor, thumbOpacity, thumbBorderRadius, thumbWidth } = this.props\n\n const thumbStyle = {\n opacity: thumbOpacity,\n backgroundColor:\n (this.props.theme as DefaultTheme).colors[thumbColor] || (this.props.theme as DefaultTheme).colors[thumbColor],\n borderRadius: `${thumbBorderRadius}px`,\n width: `${thumbWidth}px`,\n }\n\n return <div style={{ ...style, ...thumbStyle }} {...scrollableProps} />\n }\n\n render() {\n const {\n children,\n withShadow,\n shadowHeight,\n shadowColor,\n shadowOpacity,\n className,\n thumbColor, // eslint-disable-line\n thumbOpacity, // eslint-disable-line\n thumbBorderRadius, // eslint-disable-line\n thumbWidth, // eslint-disable-line\n trackColor, // eslint-disable-line\n trackOpacity, // eslint-disable-line\n trackBorderRadius, // eslint-disable-line\n trackWidth, // eslint-disable-line\n isolate, // eslint-disable-line\n style,\n disabled,\n ...props\n } = this.props\n\n if (disabled) return <div>{children}</div>\n\n const { scrollHeight, clientHeight } = this.state\n\n const shadowOffset = this.calculateShadowOffset()\n\n return (\n <div\n style={{\n ...style,\n position: 'relative',\n }}\n className={className}\n >\n {withShadow && scrollHeight > clientHeight && shadowOffset !== -shadowHeight && (\n <div\n style={{\n position: 'absolute',\n display: 'block',\n height: `${shadowHeight}px`,\n left: 0,\n right: 0,\n top: `-${shadowHeight}px`,\n opacity: shadowOpacity,\n backgroundImage: `linear-gradient(to bottom, ${\n (this.props.theme as DefaultTheme).colors[shadowColor]\n } 20%, rgba(255, 255, 255, 0) 100%)`,\n transform: `translateY(${shadowHeight + shadowOffset}px)`,\n zIndex: 10,\n }}\n />\n )}\n\n {withShadow && scrollHeight > clientHeight && shadowOffset < 0 && (\n <div\n style={{\n position: 'absolute',\n display: 'block',\n height: `${shadowHeight}px`,\n left: 0,\n right: 0,\n bottom: 0,\n opacity: shadowOpacity,\n backgroundImage: `linear-gradient(to top, ${\n (this.props.theme as DefaultTheme).colors[shadowColor]\n } 20%, rgba(255, 255, 255, 0) 100%)`,\n transform: `translateY(${shadowHeight + shadowOffset}px)`,\n zIndex: 10,\n }}\n />\n )}\n\n <Scrollbars\n renderTrackVertical={(nodeProps) => this.renderTrack({ ...nodeProps }, 'vertical')}\n renderTrackHorizontal={(nodeProps) => this.renderTrack({ ...nodeProps }, 'horizontal')}\n renderThumbHorizontal={this.renderThumb}\n renderThumbVertical={this.renderThumb}\n onUpdate={this.handleUpdate}\n hideTracksWhenNotNeeded\n {...props}\n >\n <div\n ref={(node) => {\n this.scrollable = node\n }}\n >\n {children}\n </div>\n </Scrollbars>\n </div>\n )\n }\n}\n\n/**\n * Scrollable component for create custom scrollable content\n *\n * Based on https://github.com/sakhnyuk/rc-scrollbars\n */\nconst withThemeScrollable = withTheme(Scrollable)\n\nwithThemeScrollable.displayName = 'Scrollable'\n\nexport { withThemeScrollable as Scrollable }\n","import styled, { css } from 'styled-components'\nimport { color } from 'mixins/color'\nimport { Spacer } from 'components/Spacer'\nimport { SectionProps } from './Section'\n\nconst zDepth = {\n 1: css`\n box-shadow: 0 15px 20px 0 rgba(27, 55, 147, 0.06);\n `,\n 2: css`\n box-shadow: rgba(0, 0, 0, 0.156863) 0px 3px 10px, rgba(0, 0, 0, 0.227451) 0px 3px 10px;\n `,\n 3: css`\n box-shadow: rgba(0, 0, 0, 0.188235) 0px 10px 30px, rgba(0, 0, 0, 0.227451) 0px 6px 10px;\n `,\n 4: css`\n box-shadow: rgba(0, 0, 0, 0.247059) 0px 14px 45px, rgba(0, 0, 0, 0.219608) 0px 10px 18px;\n `,\n 5: css`\n box-shadow: rgba(0, 0, 0, 0.298039) 0px 19px 60px, rgba(0, 0, 0, 0.219608) 0px 15px 20px;\n `,\n}\n\nexport const Root = styled(Spacer)<SectionProps>`\n display: block;\n color: #000;\n background-color: ${(props) => props.theme.colors.white};\n ${(props) =>\n props.textAlign\n ? css`\n text-align: ${props.textAlign};\n `\n : null}\n ${(props) => (typeof props.zDepth === 'number' ? zDepth[props.zDepth] : null)}\n ${(props) => (props.color ? color(props.color, 'background-color') : null)}\n`\n","import { ColorProperty } from 'mixins/color'\nimport { DisplayProperty } from 'mixins/display'\nimport { ResponsiveNamedProperty } from 'mixins/responsive-property'\nimport { BaseProps } from 'shared/interfaces'\nimport * as Styled from './style'\n\nexport interface SectionProps extends BaseProps, DisplayProperty, ColorProperty, ResponsiveNamedProperty<'padding'> {\n /**\n * Paper with shadow\n */\n shadow?: boolean\n /**\n * This number represents the zDepth of the paper shadow\n */\n zDepth?: 1 | 2 | 3 | 4 | 5\n /**\n * Section content\n */\n /**\n * Children react node\n */\n children?: React.ReactNode\n /**\n * Text align\n */\n textAlign?: 'left' | 'right' | 'center'\n}\n\nSection.displayName = 'Section'\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`Color`](#/Миксины)\n * - [`Display`](#/Миксины)\n * - [`ResponsiveNamedProperty<'padding'>`](#/Миксины)\n */\nexport function Section(props: SectionProps) {\n return <Styled.Root {...props} />\n}\n","import styled, { css } from 'styled-components'\nimport { color } from 'mixins/color'\nimport { property, responsiveNamedProperty } from 'mixins/responsive-property'\nimport { Text as UiText } from '../Text'\nimport { SeparatorProps } from './Separator'\n\nconst WEIGHT_MAP = {\n 1: '0.05em',\n 2: '0.1em',\n 3: '0.15em',\n 4: '0.25em',\n 5: '0.3em',\n}\n\nexport const Text = styled(UiText)`\n position: absolute;\n z-index: 1;\n display: inline-block;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n padding: 0 12px;\n background-color: ${(props) => props.theme.colors.white};\n`\n\nexport const TextRoot = styled.div`\n display: block;\n width: auto;\n position: relative;\n z-index: 0;\n text-align: center;\n`\n\nexport const Root = styled.div.withConfig<SeparatorProps>({\n shouldForwardProp: (prop) => ['children', 'className', 'style'].includes(prop),\n})`\n display: block;\n width: auto;\n background-color: currentColor;\n ${(props) => css`\n height: ${WEIGHT_MAP[props.weight || 1]};\n `}\n ${(props) => (props.color ? color(props.color, 'color') : null)}\n\n /** BEGIN paddings */\n ${(props) => (props.padding ? property(props.padding, 'padding') : null)}\n ${(props) => (props.paddingTop ? property(props.paddingTop, 'padding-top') : null)}\n ${(props) => (props.paddingRight ? property(props.paddingRight, 'padding-right') : null)}\n ${(props) => (props.paddingBottom ? property(props.paddingBottom, 'padding-bottom') : null)}\n ${(props) => (props.paddingLeft ? property(props.paddingLeft, 'padding-left') : null)}\n /** END paddings */ \n\n /** BEGIN margins */\n ${(props) => (props.margin ? property(props.margin, 'margin') : null)}\n ${(props) => (props.marginTop ? property(props.marginTop, 'margin-top') : null)}\n ${(props) => (props.marginRight ? property(props.marginRight, 'margin-right') : null)}\n ${(props) => (props.marginBottom ? property(props.marginBottom, 'margin-bottom') : null)}\n ${(props) => (props.marginLeft ? property(props.marginLeft, 'margin-left') : null)}\n /** END margins */ \n\n /** BEGIN Responsive paddings */\n ${({ paddingXS, paddingS, paddingM, paddingL, paddingXL }) =>\n responsiveNamedProperty({ sizes: { paddingXS, paddingS, paddingM, paddingL, paddingXL }, cssProperty: 'padding' })}\n ${({ paddingTopXS, paddingTopS, paddingTopM, paddingTopL, paddingTopXL }) =>\n responsiveNamedProperty({\n sizes: { paddingTopXS, paddingTopS, paddingTopM, paddingTopL, paddingTopXL },\n cssProperty: 'padding-top',\n })}\n ${({ paddingRightXS, paddingRightS, paddingRightM, paddingRightL, paddingRightXL }) =>\n responsiveNamedProperty({\n sizes: { paddingRightXS, paddingRightS, paddingRightM, paddingRightL, paddingRightXL },\n cssProperty: 'padding-right',\n })}\n ${({ paddingBottomXS, paddingBottomS, paddingBottomM, paddingBottomL, paddingBottomXL }) =>\n responsiveNamedProperty({\n sizes: { paddingBottomXS, paddingBottomS, paddingBottomM, paddingBottomL, paddingBottomXL },\n cssProperty: 'padding-bottom',\n })}\n ${({ paddingLeftXS, paddingLeftS, paddingLeftM, paddingLeftL, paddingLeftXL }) =>\n responsiveNamedProperty({\n sizes: { paddingLeftXS, paddingLeftS, paddingLeftM, paddingLeftL, paddingLeftXL },\n cssProperty: 'padding-left',\n })}\n /** END Responsive paddings */ \n\n /** BEGIN Responsive margins */\n ${({ marginXS, marginS, marginM, marginL, marginXL }) =>\n responsiveNamedProperty({ sizes: { marginXS, marginS, marginM, marginL, marginXL }, cssProperty: 'margin' })}\n ${({ marginTopXS, marginTopS, marginTopM, marginTopL, marginTopXL }) =>\n responsiveNamedProperty({\n sizes: { marginTopXS, marginTopS, marginTopM, marginTopL, marginTopXL },\n cssProperty: 'margin-top',\n })}\n ${({ marginRightXS, marginRightS, marginRightM, marginRightL, marginRightXL }) =>\n responsiveNamedProperty({\n sizes: { marginRightXS, marginRightS, marginRightM, marginRightL, marginRightXL },\n cssProperty: 'margin-right',\n })}\n ${({ marginBottomXS, marginBottomS, marginBottomM, marginBottomL, marginBottomXL }) =>\n responsiveNamedProperty({\n sizes: { marginBottomXS, marginBottomS, marginBottomM, marginBottomL, marginBottomXL },\n cssProperty: 'margin-bottom',\n })}\n ${({ marginLeftXS, marginLeftS, marginLeftM, marginLeftL, marginLeftXL }) =>\n responsiveNamedProperty({\n sizes: { marginLeftXS, marginLeftS, marginLeftM, marginLeftL, marginLeftXL },\n cssProperty: 'margin-left',\n })}\n /** END Responsive margins */\n\n ${(props) => (props.top ? property(props.top, 'padding-top') : null)}\n ${(props) => (props.right ? property(props.right, 'padding-right') : null)}\n ${(props) => (props.bottom ? property(props.bottom, 'padding-bottom') : null)}\n ${(props) => (props.left ? property(props.left, 'padding-left') : null)}\n\n ${({ topXS, topS, topM, topL, topXL }) =>\n responsiveNamedProperty({ sizes: { topXS, topS, topM, topL, topXL }, cssProperty: 'padding-top' })}\n ${({ rightXS, rightS, rightM, rightL, rightXL }) =>\n responsiveNamedProperty({ sizes: { rightXS, rightS, rightM, rightL, rightXL }, cssProperty: 'padding-right' })}\n ${({ bottomXS, bottomS, bottomM, bottomL, bottomXL }) =>\n responsiveNamedProperty({\n sizes: { bottomXS, bottomS, bottomM, bottomL, bottomXL },\n cssProperty: 'padding-bottom',\n })}\n ${({ leftXS, leftS, leftM, leftL, leftXL }) =>\n responsiveNamedProperty({ sizes: { leftXS, leftS, leftM, leftL, leftXL }, cssProperty: 'padding-left' })}\n`\n","import { ColorProperty } from 'mixins/color'\nimport { ResponsiveNamedProperty } from 'mixins/responsive-property'\nimport { BaseProps } from 'shared/interfaces'\nimport { SeparatorText } from './SeparatorText'\nimport * as Styled from './style'\n\nexport interface SeparatorProps\n extends BaseProps,\n ColorProperty,\n ResponsiveNamedProperty<'top'>,\n ResponsiveNamedProperty<'right'>,\n ResponsiveNamedProperty<'bottom'>,\n ResponsiveNamedProperty<'left'>,\n ResponsiveNamedProperty<'padding'>,\n ResponsiveNamedProperty<'paddingTop'>,\n ResponsiveNamedProperty<'paddingRight'>,\n ResponsiveNamedProperty<'paddingBottom'>,\n ResponsiveNamedProperty<'paddingLeft'>,\n ResponsiveNamedProperty<'margin'>,\n ResponsiveNamedProperty<'marginTop'>,\n ResponsiveNamedProperty<'marginRight'>,\n ResponsiveNamedProperty<'marginBottom'>,\n ResponsiveNamedProperty<'marginLeft'> {\n /**\n * Separator weight\n */\n weight?: 1 | 2 | 3 | 4 | 5\n}\n\nSeparator.defaultProps = {\n margin: 's',\n color: 'grey',\n weight: 1,\n}\n\nSeparator.Text = SeparatorText\nSeparator.displayName = 'Separator'\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`Color`](#/Миксины)\n * - [`Color<'fontColor'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'top'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'right'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'bottom'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'left'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'padding'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'paddingTop'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'paddingRight'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'paddingBottom'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'paddingLeft'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'margin'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'marginTop'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'marginRight'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'marginBottom'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'marginLeft'>`](#/Миксины)\n */\nexport function Separator(props: typeof Separator.defaultProps & SeparatorProps) {\n return <Styled.Root {...props} />\n}\n","import { ColorProperty } from 'mixins/color'\nimport { BaseProps } from 'shared/interfaces'\nimport { Separator } from './Separator'\nimport * as Styled from './style'\n\nexport interface SeparatorTextProps extends BaseProps, ColorProperty {\n /**\n * Children react node\n */\n children?: React.ReactNode\n}\n\nexport function SeparatorText({ children, className, color, ...restProps }: SeparatorTextProps) {\n return (\n <Styled.TextRoot>\n <Separator className={className} color={color} {...restProps} />\n <Styled.Text color={color}>{children}</Styled.Text>\n </Styled.TextRoot>\n )\n}\n","import styled, { css, keyframes } from 'styled-components'\nimport { responsiveNamedProperty, property, ResponsiveNamedProperty, CalcProperty } from 'mixins/responsive-property'\nimport { SpinnerProps } from './Spinner'\n\nconst SIZES = {\n l: 60,\n m: 40,\n s: 20,\n}\n\nconst spinner = keyframes`\n to {\n transform: rotate(360deg);\n }\n`\n\nconst fullscreen = css`\n height: 100vh;\n margin: 0 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n`\n\nconst inline = css`\n display: inline-block;\n vertical-align: middle;\n margin: 0;\n`\n\nconst sizeBuilder: CalcProperty = (size, sizing = 'px') => {\n if (size === 0) return null\n return css`\n width: ${size as number}${sizing};\n height: ${size as number}${sizing};\n &:before {\n width: ${size as number}${sizing};\n height: ${size as number}${sizing};\n margin-top: -${(size as number) / 2}${sizing};\n margin-left: -${(size as number) / 2}${sizing};\n }\n `\n}\n\nconst getSize = (size: ResponsiveNamedProperty<'size'>['size']): number => {\n if (!size || typeof size === 'boolean') return 0\n if (typeof size === 'number') return size\n if (SIZES[size]) return SIZES[size]\n return 0\n}\n\nexport const Root = styled.div.withConfig<SpinnerProps>({\n shouldForwardProp: (prop) => ['className', 'style'].includes(prop),\n})`\n display: block;\n position: relative;\n display: block;\n margin: 30px auto;\n &:before {\n content: '';\n box-sizing: border-box;\n position: absolute;\n top: 50%;\n left: 50%;\n border-radius: 50%;\n border: 2px solid #eee;\n border-top-color: #459ff3;\n animation: ${spinner} 0.6s linear infinite;\n }\n ${(props) => (props.inline ? inline : null)}\n\n ${(props) => (props.size ? property(SIZES[props.size] || props.size, sizeBuilder) : null)}\n ${({ sizeXS, sizeS, sizeM, sizeL, sizeXL }) => {\n return responsiveNamedProperty({\n sizes: {\n sizeXS: getSize(sizeXS),\n sizeS: getSize(sizeS),\n sizeM: getSize(sizeM),\n sizeL: getSize(sizeL),\n sizeXL: getSize(sizeXL),\n },\n cssProperty: sizeBuilder,\n })\n }}\n\n ${(props) => (props.fullscreen ? fullscreen : null)}\n`\n","import { ResponsiveNamedProperty } from 'mixins/responsive-property'\nimport { useClassname } from 'hooks/useClassname'\nimport { BaseProps } from 'shared/interfaces'\nimport * as Styled from './style'\n\nexport interface SpinnerProps extends BaseProps, ResponsiveNamedProperty<'size'> {\n /**\n * Size of spinner\n */\n size?: 'l' | 's' | 'm' | number\n /**\n * Vertically center the spinner inside 100vh container\n */\n fullscreen?: boolean\n /**\n * Inline. Has no top/bottom margins\n */\n inline?: boolean\n}\n\nSpinner.defaultProps = {\n size: 'm',\n}\n\nSpinner.displayName = 'Spinner'\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`ResponsiveNamedProperty<'size'>`](#/Миксины)\n */\nexport function Spinner({ className, ...props }: typeof Spinner.defaultProps & SpinnerProps) {\n const _className = useClassname(Spinner.displayName, className)\n\n return <Styled.Root className={_className} {...props} />\n}\n","import type { SwitcherPropsByPreset } from './types'\n\nexport const DEFAULT_PROPS: SwitcherPropsByPreset = {\n switcherWidth: 60,\n switcherHeight: 32,\n borderRadius: 40,\n dotSize: 24,\n}\n\nexport const BRAND_PROPS: SwitcherPropsByPreset = {\n switcherWidth: 44,\n switcherHeight: 24,\n borderRadius: 48,\n dotSize: 16,\n}\n","import styled, { css } from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport { getColor } from 'mixins/color'\nimport type { StyledSwitcherProps, SwitcherPropsByPreset } from './types'\n\nexport const Input = styled.input`\n position: absolute;\n overflow: visible;\n z-index: -1;\n opacity: 0;\n width: 0;\n height: 0;\n margin: 0;\n`\n\nexport const Label = styled.label`\n display: inline;\n padding-left: 14px;\n cursor: pointer;\n user-select: none;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n`\n\nexport const Switcher = styled.label<SwitcherPropsByPreset>`\n position: relative;\n display: block;\n box-sizing: border-box;\n width: ${(props) => props.switcherWidth}px;\n height: ${(props) => props.switcherHeight}px;\n cursor: pointer;\n user-select: none;\n transition: background 0.3s ease, background-image 0.3s ease;\n border-radius: ${(props) => props.borderRadius}px;\n flex: 0 0 auto;\n\n &::before {\n position: absolute;\n top: ${({ switcherHeight, dotSize }) => (switcherHeight - dotSize) / 2}px;\n left: ${({ switcherHeight, dotSize }) => (switcherHeight - dotSize) / 2}px;\n display: block;\n width: ${(props) => props.dotSize}px;\n height: ${(props) => props.dotSize}px;\n content: '';\n transition: background 0.3s ease, left 0.3s ease;\n transform: translateZ(0);\n border-radius: 50%;\n }\n`\n\nconst disabledStyles = `\n cursor: not-allowed;\n opacity: 0.7;\n\n & ${Switcher} {\n cursor: not-allowed;\n box-shadow: none;\n\n &::before {\n box-shadow: none;\n }\n }\n\n & ${Label} {\n cursor: not-allowed;\n }\n`\n\nconst checkedStyles = css<StyledSwitcherProps>`\n & ${Switcher} {\n &::before {\n left: ${({ switcherWidth, switcherHeight, dotSize }) =>\n switcherWidth - dotSize - (switcherHeight - dotSize) / 2}px;\n }\n }\n`\n\nconst baseStyles = css<StyledSwitcherProps>`\n ${(props) => `\n position: relative;\n display: inline-flex;\n flex-direction: row;\n box-sizing: border-box;\n height: ${props.switcherHeight}px;\n line-height: ${props.switcherHeight}px;\n vertical-align: middle;\n justify-content: flex-start;\n align-content: center;\n align-items: center;\n max-width: 100%;\n color: inherit;\n `}\n`\n\nconst defaultPresetStyle = css<StyledSwitcherProps>`\n ${(props) => {\n const color = props.color || 'atlantis'\n\n return `\n & ${Switcher} {\n box-shadow: inset 0 2px 2px 0 rgba(0, 0, 0, 0.08);\n background-color: #eaecf3;\n\n &::before {\n background-color: ${props.theme.colors.white};\n box-shadow: ${props.disabled ? 'none' : '0 0 6px 0 rgba(0, 0, 0, 0.16)'};\n }\n\n ${\n props.inactiveColor\n ? `\n background-image: linear-gradient(\n to right,\n ${tinycolor(getColor(props.inactiveColor, props)).lighten(10).toString()},\n ${getColor(props.inactiveColor, props)}\n );\n `\n : ''\n }\n\n ${\n props.checked\n ? `\n background-image: linear-gradient(\n to right,\n ${tinycolor(getColor(color, props)).lighten(10).toString()},\n ${getColor(color, props)}\n );\n `\n : ''\n }\n }\n\n & ${Input}:focus-visible + ${Switcher} {\n outline: 1px solid ${getColor(color, props)};\n outline-offset: 2px;\n }\n `\n }}\n`\n\nconst brandPresetStyles = css<StyledSwitcherProps>`\n ${(props) => `\n & ${Switcher} {\n background-color: ${\n props.disabled\n ? props.theme.colors[props.checked ? 'bg-disabled-active' : 'bg-disabled-small']\n : props.theme.colors[props.checked ? 'bg-brand-primary-basic' : 'bg-onmain-tertiary']\n };\n\n &::before {\n background-color: ${props.theme.colors['bg-oncolor-primary']};\n box-shadow: ${props.disabled ? 'none' : '0px 2px 4px rgba(0, 0, 0, 0.08)'};\n }\n\n ${!props.checked && props.inactiveColor ? `background-color: ${getColor(props.inactiveColor, props)};` : ''}\n ${props.checked && props.color ? `background-color: ${getColor(props.color, props)};` : ''}\n }\n\n & ${Input}:focus-visible + ${Switcher} {\n box-shadow: 0 0 0 2px ${props.theme.colors.white}, 0 0 0 4px ${props.theme.colors['border-focus']};\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n `}\n`\n\nexport const Root = styled.div.withConfig<StyledSwitcherProps>({\n shouldForwardProp: (prop) => ['children', 'className', 'style'].includes(prop),\n})`\n ${baseStyles}\n\n ${(props) => (props.checked ? checkedStyles : '')}\n ${(props) => (props.disabled ? disabledStyles : '')}\n ${({ brandPresetUsed }) => (brandPresetUsed ? brandPresetStyles : defaultPresetStyle)}\n`\n","import { forwardRef } from 'react'\nimport { useTheme } from 'styled-components'\nimport { useConfigPriority } from 'hooks/use-config-priority'\nimport type { SwitcherProps } from './types'\nimport { DEFAULT_PROPS, BRAND_PROPS } from './constants'\nimport * as Styled from './style'\n\nconst COMPONENT_NAME = 'Switcher'\n\nconst Switcher = forwardRef<HTMLDivElement, SwitcherProps>((props, ref) => {\n const theme = useTheme()\n\n const {\n value = false,\n disabled = false,\n tabIndex,\n id,\n name,\n children,\n onChange,\n ...config\n } = useConfigPriority<SwitcherProps>(theme.components?.Switcher, props)\n\n let brandPresetUsed = theme.preset === 'brand'\n if (typeof config.preset === 'string') brandPresetUsed = config.preset === 'brand'\n\n const propsByPreset = brandPresetUsed ? BRAND_PROPS : DEFAULT_PROPS\n\n const handleChange: React.ChangeEventHandler<HTMLInputElement> = (event) => {\n if (!disabled && typeof onChange === 'function') onChange(event.target.checked, event)\n }\n\n return (\n <Styled.Root\n {...config}\n {...propsByPreset}\n ref={ref}\n checked={value}\n disabled={disabled}\n brandPresetUsed={brandPresetUsed}\n >\n <Styled.Input\n id={id}\n name={name}\n checked={value}\n type='checkbox'\n tabIndex={tabIndex}\n onChange={handleChange}\n disabled={disabled}\n />\n <Styled.Switcher htmlFor={id} {...propsByPreset} />\n {children ? <Styled.Label htmlFor={id}>{children}</Styled.Label> : null}\n </Styled.Root>\n )\n})\n\nSwitcher.displayName = COMPONENT_NAME\n\nexport { Switcher, COMPONENT_NAME }\n\nexport type { SwitcherProps }\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n height: 60,\n fontSize: 20,\n },\n xxl: {\n height: 56,\n fontSize: 20,\n },\n xl: {\n height: 52,\n fontSize: 18,\n },\n l: {\n height: 48,\n fontSize: 18,\n },\n m: {\n height: 44,\n fontSize: 16,\n },\n s: {\n height: 40,\n fontSize: 16,\n },\n xs: {\n height: 36,\n fontSize: 14,\n },\n xxs: {\n height: 32,\n fontSize: 14,\n },\n xxxs: {\n height: 28,\n fontSize: 12,\n },\n}\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES_DEFAULT: Sizes = {\n xxxl: {},\n xxl: {},\n xl: {},\n l: {},\n m: {},\n s: {},\n xs: {},\n xxs: {},\n xxxs: {},\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 21 48\" fill=\"none\" preserveAspectRatio=\"none\"><path d=\"M22 0h-3L1 24l18 24h3\" fill=\"currentcolor\"/></svg>","import styled, { css } from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport { getColor } from 'mixins/color'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { responsiveMargin } from 'mixins/responsive-margin'\nimport { focus } from 'mixins/focus'\nimport type { CSSColor } from 'shared/types'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport type { StyledTabProps, StyledTabEdgeProps, TabPalette } from './types'\nimport Arrow from './images/arrow.module.svg'\n\nconst shouldForwardTabProp = createShouldForwardProp(\n (propKey) =>\n ![\n 'active',\n 'compact',\n 'crispy',\n 'crispyCompact',\n 'tabTheme',\n 'left',\n 'right',\n 'rounded',\n 'outline',\n 'onColored',\n 'black',\n ].includes(propKey)\n)\n\nconst DEFAULT_STYLES = {\n default: css<StyledTabProps>`\n ${(props) => `\n font-size: 16px;\n font-weight: bold;\n padding-bottom: 12px;\n color: ${props.active ? props.theme.colors.primary : props.theme.colors.mineShaft};\n border-bottom: 2px solid ${props.active ? 'currentcolor' : 'transparent'};\n &:hover {\n color: ${props.theme.colors.primary};\n }\n &.active {\n color: ${props.theme.colors.primary};\n border-bottom-color: currentcolor;\n }\n & + & {\n margin-left: 60px;\n }\n `}\n `,\n compact: css<StyledTabProps>`\n ${(props) => `\n font-size: 16px;\n font-weight: normal;\n padding-bottom: 10px;\n color: ${props.active ? props.theme.colors.primary : props.theme.colors.mineShaft};\n border-bottom: 2px solid ${props.active ? 'currentcolor' : 'transparent'};\n &:hover {\n color: ${props.theme.colors.primary};\n }\n &.active {\n color: ${props.theme.colors.primary};\n border-bottom-color: currentcolor;\n }\n & + & {\n margin-left: 20px;\n }\n `}\n `,\n crispyCompact: css<StyledTabProps>`\n ${(props) => `\n font-size: 12px;\n font-weight: bold;\n padding-bottom: 6px;\n text-transform: uppercase;\n color: ${props.active ? props.theme.colors.primary : props.theme.colors.mineShaft};\n border-bottom: 2px solid ${props.active ? 'currentcolor' : 'transparent'};\n &:hover {\n color: ${props.theme.colors.primary};\n }\n &.active {\n color: ${props.theme.colors.primary};\n border-bottom-color: currentcolor;\n }\n & + & {\n margin-left: 18px;\n }\n `}\n `,\n crispy: css<StyledTabProps>`\n ${(props) => `\n font-size: 12px;\n font-weight: bold;\n padding-bottom: 14px;\n text-transform: uppercase;\n color: ${props.active ? props.theme.colors.primary : props.theme.colors.mineShaft};\n border-bottom: 2px solid ${props.active ? 'currentcolor' : 'transparent'};\n &:hover {\n color: ${props.theme.colors.primary};\n }\n &.active {\n color: ${props.theme.colors.primary};\n border-bottom-color: currentcolor;\n }\n & + & {\n margin-left: 32px;\n }\n `}\n `,\n}\n\nexport const Content = styled.span`\n box-sizing: border-box;\n position: relative;\n z-index: 1;\n display: flex;\n align-items: center;\n flex-grow: 1;\n flex-shrink: 0;\n height: 100%;\n padding: 0 1em;\n border: 1px solid transparent;\n transition-property: background-color, border-color;\n`\n\nexport const Edge = styled(Arrow).withConfig({\n shouldForwardProp: () => false,\n})<StyledTabEdgeProps>`\n box-sizing: border-box;\n flex-shrink: 0;\n height: 100%;\n transition-property: color, stroke;\n ${(props) => props.after && 'transform: rotate(180deg);'}\n`\n\nconst template = (palette: TabPalette) => `\n & > ${Content} {\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n border-color: ${palette.borderColor};\n }\n & > ${Edge} {\n color: ${palette.backgroundColor};\n stroke: ${palette.borderColor};\n }\n &:hover > ${Content} {\n color: ${palette.colorHover};\n background-color: ${palette.backgroundColorHover};\n border-color: ${palette.borderColorHover};\n }\n &:hover > ${Edge} {\n color: ${palette.backgroundColorHover};\n stroke: ${palette.borderColorHover};\n }\n &:disabled > ${Content} {\n color: ${palette.colorDisabled};\n background-color: ${palette.backgroundColorDisabled};\n border-color: ${palette.borderColorDisabled};\n }\n &:disabled > ${Edge} {\n color: ${palette.backgroundColorDisabled};\n stroke: ${palette.borderColorDisabled};\n }\n`\n\nconst COLOR_SCHEMA = {\n default: {\n default: css<StyledTabProps>`\n ${(props) =>\n template({\n color: props.active\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-onmain-primary'],\n backgroundColor: props.active\n ? props.theme.colors['bg-brand-primary-500']\n : props.theme.colors['bg-onmain-tertiary'],\n borderColor: props.active\n ? props.theme.colors['bg-brand-primary-500']\n : props.theme.colors['bg-onmain-tertiary'],\n colorHover: props.active\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-onmain-primary'],\n backgroundColorHover: props.active\n ? props.theme.colors['bg-brand-primary-500']\n : (tinycolor(props.theme.colors['bg-onmain-tertiary']).darken(6).toString() as CSSColor),\n borderColorHover: props.active\n ? props.theme.colors['bg-brand-primary-500']\n : (tinycolor(props.theme.colors['bg-onmain-tertiary']).darken(6).toString() as CSSColor),\n colorDisabled: props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors['bg-disabled-large'],\n ...props.palette,\n })}\n `,\n outline: css<StyledTabProps>`\n ${(props) =>\n template({\n color: props.active\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-onmain-primary'],\n backgroundColor: props.active\n ? props.theme.colors['bg-brand-primary-500']\n : props.theme.colors['bg-onmain-primary'],\n borderColor: props.active\n ? props.theme.colors['bg-brand-primary-500']\n : props.theme.colors['border-onmain-default-large'],\n colorHover: props.active\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-onmain-primary'],\n backgroundColorHover: props.active\n ? props.theme.colors['bg-brand-primary-500']\n : (tinycolor(props.theme.colors['bg-onmain-primary']).darken(6).toString() as CSSColor),\n borderColorHover: props.active\n ? props.theme.colors['bg-brand-primary-500']\n : props.theme.colors['border-onmain-default-large'],\n colorDisabled: props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors['bg-disabled-large'],\n ...props.palette,\n })}\n `,\n },\n onColored: {\n default: css<StyledTabProps>`\n ${(props) =>\n template({\n color: props.active\n ? props.theme.colors['content-brand-primary']\n : props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.active\n ? props.theme.colors['bg-onmain-primary']\n : (tinycolor(props.theme.colors['bg-brand-primary-500']).lighten(10).toString() as CSSColor),\n borderColor: props.active\n ? props.theme.colors['bg-onmain-primary']\n : (tinycolor(props.theme.colors['bg-brand-primary-500']).lighten(10).toString() as CSSColor),\n colorHover: props.active\n ? props.theme.colors['content-brand-primary']\n : props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.active\n ? props.theme.colors['bg-onmain-primary']\n : (tinycolor(props.theme.colors['bg-brand-primary-500']).lighten(5).toString() as CSSColor),\n borderColorHover: props.active\n ? props.theme.colors['bg-onmain-primary']\n : (tinycolor(props.theme.colors['bg-brand-primary-500']).lighten(5).toString() as CSSColor),\n colorDisabled: props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-small'],\n borderColorDisabled: props.theme.colors['bg-disabled-small'],\n ...props.palette,\n })}\n `,\n outline: css<StyledTabProps>`\n ${(props) =>\n template({\n color: props.active\n ? props.theme.colors['content-brand-primary']\n : props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.active\n ? props.theme.colors['bg-onmain-primary']\n : props.theme.colors['bg-brand-primary-500'],\n borderColor: props.theme.colors['bg-onmain-primary'],\n colorHover: props.active\n ? props.theme.colors['content-brand-primary']\n : props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.active\n ? props.theme.colors['bg-onmain-primary']\n : (tinycolor(props.theme.colors['bg-brand-primary-500']).darken(3).toString() as CSSColor),\n borderColorHover: props.theme.colors['bg-onmain-primary'],\n colorDisabled: props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-small'],\n borderColorDisabled: props.theme.colors['bg-disabled-small'],\n ...props.palette,\n })}\n `,\n },\n black: {\n default: css<StyledTabProps>`\n ${(props) =>\n template({\n color: props.active\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-onmain-primary'],\n backgroundColor: props.active\n ? props.theme.colors['bg-onmain-contrast']\n : props.theme.colors['bg-onmain-tertiary'],\n borderColor: props.active\n ? props.theme.colors['bg-onmain-contrast']\n : props.theme.colors['bg-onmain-tertiary'],\n colorHover: props.active\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-onmain-primary'],\n backgroundColorHover: props.active\n ? props.theme.colors['bg-onmain-contrast']\n : (tinycolor(props.theme.colors['bg-onmain-tertiary']).darken(6).toString() as CSSColor),\n borderColorHover: props.active\n ? props.theme.colors['bg-onmain-contrast']\n : (tinycolor(props.theme.colors['bg-onmain-tertiary']).darken(6).toString() as CSSColor),\n colorDisabled: props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors['bg-disabled-large'],\n ...props.palette,\n })}\n `,\n outline: css<StyledTabProps>`\n ${(props) =>\n template({\n color: props.active\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-onmain-primary'],\n backgroundColor: props.active\n ? props.theme.colors['bg-onmain-contrast']\n : props.theme.colors['bg-onmain-primary'],\n borderColor: props.active\n ? props.theme.colors['bg-onmain-contrast']\n : props.theme.colors['border-onmain-default-large'],\n colorHover: props.active\n ? props.theme.colors['content-oncolor-primary']\n : props.theme.colors['content-onmain-primary'],\n backgroundColorHover: props.active\n ? props.theme.colors['bg-onmain-contrast']\n : (tinycolor(props.theme.colors['bg-onmain-primary']).darken(6).toString() as CSSColor),\n borderColorHover: props.active\n ? props.theme.colors['bg-onmain-contrast']\n : props.theme.colors['border-onmain-default-large'],\n colorDisabled: props.theme.colors['content-disabled'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors['bg-disabled-large'],\n ...props.palette,\n })}\n `,\n },\n}\n\nexport const Root = styled.button\n .withConfig<StyledTabProps>({\n shouldForwardProp: shouldForwardTabProp,\n })\n .attrs(<Required<Pick<StyledTabProps, 'dynamicSizeDeclaration'>>>{\n dynamicSizeDeclaration: (size, sizeUnits) => {\n return {\n height: '2.8em',\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n }\n },\n })`\n ${(props) => {\n const radius = props.rounded ? 8 : 0\n const leftRadius = props.left ? 0 : radius\n const rightRadius = props.right ? 0 : radius\n\n return `\n box-sizing: border-box;\n display: ${props.preset === 'brand' ? 'inline-flex' : 'inline-block'};\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n isolation: isolate;\n flex-shrink: 0;\n appearance: none;\n padding: 0;\n border: none;\n background-color: transparent;\n text-decoration: none;\n width: max-content;\n & > ${Content}, \n & > ${Edge} {\n transition-duration: 250ms;\n }\n & > ${Content} {\n border-radius: ${leftRadius}px ${rightRadius}px ${rightRadius}px ${leftRadius}px;\n border-left-style: ${props.left ? 'none' : 'solid'};\n border-right-style: ${props.right ? 'none' : 'solid'};\n margin-left: ${props.left ? -2 : 0}px;\n margin-right: ${props.right ? -2 : 0}px;\n }\n `\n }}\n\n ${(props) => {\n if (props.preset === 'brand') {\n let schema = COLOR_SCHEMA.default\n\n if (props.black) schema = COLOR_SCHEMA.black\n if (props.onColored) schema = COLOR_SCHEMA.onColored\n\n return props.outline ? schema.outline : schema.default\n }\n\n if (props.compact || props.tabTheme === 'compact') return DEFAULT_STYLES.compact\n if (props.crispyCompact || props.tabTheme === 'crispyCompact') return DEFAULT_STYLES.crispyCompact\n if (props.crispy || props.tabTheme === 'crispy') return DEFAULT_STYLES.crispy\n\n return DEFAULT_STYLES.default\n }}\n\n ${focus}\n ${responsiveSize}\n ${responsiveMargin}\n\n ${(props) => props.color && `color: ${getColor(props.color, props)};`}\n ${(props) => props.borderColor && `border-color: ${getColor(props.borderColor, props)};`}\n`\n","import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { Text } from 'components/Text'\nimport type { TextProps } from 'components/Text'\nimport { SIZES } from './constants'\nimport { SIZES_DEFAULT } from './default-constants'\nimport * as Styled from './style'\nimport type { TabProps } from './types'\n\nconst COMPONENT_NAME = 'Tab'\n\n/**\n *\n * Component accepts all \\<button\\> attributes.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [TabProps](https://github.com/foxford/ui/blob/master/src/components/Tab/types.ts)\n */\nconst Tab: React.ForwardRefExoticComponent<TabProps> = withMergedProps<TabProps, HTMLButtonElement>(\n forwardRef((props, ref) => {\n const { size = 'm', type = 'button', textProps = {}, children, theme, ...restProps } = props\n\n const baseTextProps: TextProps = { as: 'span', size: 'inherit', color: 'inherit', weight: 'inherit' }\n\n return (\n <Styled.Root\n {...restProps}\n size={size}\n tabTheme={theme}\n type={restProps.as === undefined ? type : undefined}\n ref={ref}\n >\n {restProps.preset === 'brand' ? (\n <>\n {restProps.left && <Styled.Edge />}\n <Styled.Content>\n {typeof children === 'function' ? (\n children({ baseTextProps, textProps })\n ) : (\n <Text {...baseTextProps} {...textProps}>\n {children}\n </Text>\n )}\n </Styled.Content>\n {restProps.right && <Styled.Edge after />}\n </>\n ) : (\n <>\n {typeof children === 'function' ? (\n children({ baseTextProps, textProps })\n ) : (\n <Text {...baseTextProps} {...textProps}>\n {children}\n </Text>\n )}\n </>\n )}\n </Styled.Root>\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: (props) => {\n return props.preset === 'brand' ? SIZES : SIZES_DEFAULT\n },\n }\n)\n\nexport { Tab, COMPONENT_NAME }\n","import styled, { css } from 'styled-components'\nimport { color } from 'mixins/color'\nimport { responsiveProperty } from 'mixins/responsive-property'\nimport { TabsProps } from './Tabs'\n\nconst BEFORE_AFTER_SHADOW_WIDTH = 20\n\nconst borderColor = (color: string) => css`\n border-bottom: 1px solid ${color};\n`\n\nexport const Root = styled.div.withConfig({\n shouldForwardProp: (prop) => prop === 'children',\n})<Pick<TabsProps, 'noBorder' | 'borderColor' | 'color' | 'width'>>`\n color: rgba(247, 247, 247, 1);\n display: flex;\n align-items: flex-end;\n justify-content: center;\n flex-direction: row;\n ${(props) => (props.borderColor && !props.noBorder ? color(props.borderColor, borderColor) : null)}\n ${(props) => (props.color ? color(props.color) : null)}\n ${responsiveProperty('width')}\n`\n\nexport const Inner = styled.div`\n position: relative;\n display: block;\n width: auto;\n height: auto;\n padding: 0;\n margin: 0 -20px;\n box-sizing: border-box;\n background: transparent;\n overflow: visible;\n max-width: 100%;\n width: 100%;\n &::before,\n &::after {\n position: absolute;\n top: 0;\n bottom: 0;\n display: block;\n content: '';\n width: ${BEFORE_AFTER_SHADOW_WIDTH}px;\n height: 100%;\n }\n\n &::before {\n left: 0;\n background: linear-gradient(-90deg, rgba(247, 247, 247, 0) 0%, currentColor 100%);\n }\n\n &::after {\n right: 0;\n background: linear-gradient(90deg, rgba(247, 247, 247, 0) 0%, currentColor 100%);\n }\n`\n\nexport const Content = styled.div<Pick<TabsProps, 'noBorder'>>`\n position: relative;\n z-index: 1;\n display: block;\n padding: 0;\n margin: 0 auto;\n white-space: nowrap;\n box-sizing: border-box;\n overflow-x: auto;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n color: ${(props) => props.theme.colors.mineShaft};\n scrollbar-width: none;\n\n &::-webkit-scrollbar {\n height: 0;\n background: transparent;\n visibility: hidden;\n }\n\n &::-webkit-scrollbar-thumb {\n height: 0px;\n background: transparent;\n visibility: hidden;\n }\n\n ${(props) =>\n props.noBorder\n ? css`\n display: flex;\n justify-content: space-between;\n width: 100%;\n `\n : null}\n`\n","import { ResponsiveProperty } from 'mixins/responsive-property'\nimport { ColorProperty } from 'mixins/color'\nimport { BaseProps } from 'shared/interfaces'\nimport { Tab } from 'components/Tab'\nimport * as Styled from './style'\n\nexport interface TabsProps extends BaseProps, ColorProperty, ColorProperty<'borderColor'> {\n /**\n * Primary content.\n */\n /**\n * Children react node\n */\n children?: React.ReactNode\n className?: string\n classNameInner?: string\n classNameContent?: string\n noBorder?: boolean\n width?: ResponsiveProperty<number>\n}\n\nTabs.defaultProps = {\n borderColor: 'alto',\n color: 'rgba(247, 247, 247, 1)',\n}\n\nTabs.Tab = Tab\n\n/**\n *\n * Use only with default preset\n *\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`Color`](#/Миксины)\n * - [`Color<'borderColor'>`](#/Миксины)\n */\nexport function Tabs(props: TabsProps) {\n const { children, className, classNameInner, classNameContent, borderColor, color, noBorder, style, width } = props\n\n return (\n <Styled.Root\n className={className}\n style={style}\n width={width}\n borderColor={borderColor}\n color={color}\n noBorder={noBorder}\n >\n <Styled.Inner className={classNameInner}>\n <Styled.Content noBorder={noBorder} className={classNameContent}>\n {children}\n </Styled.Content>\n </Styled.Inner>\n </Styled.Root>\n )\n}\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n fontSize: 16,\n minWidth: 80,\n maxWidth: 380,\n paddingTop: 14,\n paddingRight: 18,\n paddingBottom: 14,\n paddingLeft: 18,\n borderRadius: 8,\n },\n xxl: {\n fontSize: 16,\n minWidth: 80,\n maxWidth: 380,\n paddingTop: 14,\n paddingRight: 18,\n paddingBottom: 14,\n paddingLeft: 18,\n borderRadius: 8,\n },\n xl: {\n fontSize: 16,\n minWidth: 80,\n maxWidth: 380,\n paddingTop: 14,\n paddingRight: 18,\n paddingBottom: 14,\n paddingLeft: 18,\n borderRadius: 8,\n },\n l: {\n fontSize: 16,\n minWidth: 80,\n maxWidth: 380,\n paddingTop: 14,\n paddingRight: 18,\n paddingBottom: 14,\n paddingLeft: 18,\n borderRadius: 8,\n },\n m: {\n fontSize: 14,\n minWidth: 64,\n maxWidth: 340,\n paddingTop: 12,\n paddingRight: 16,\n paddingBottom: 12,\n paddingLeft: 16,\n borderRadius: 8,\n },\n s: {\n fontSize: 14,\n minWidth: 45,\n maxWidth: 200,\n paddingTop: 8,\n paddingRight: 8,\n paddingBottom: 8,\n paddingLeft: 8,\n borderRadius: 8,\n },\n xs: {\n fontSize: 14,\n minWidth: 45,\n maxWidth: 200,\n paddingTop: 8,\n paddingRight: 8,\n paddingBottom: 8,\n paddingLeft: 8,\n borderRadius: 8,\n },\n xxs: {\n fontSize: 14,\n minWidth: 45,\n maxWidth: 200,\n paddingTop: 8,\n paddingRight: 8,\n paddingBottom: 8,\n paddingLeft: 8,\n borderRadius: 8,\n },\n xxxs: {\n fontSize: 14,\n minWidth: 45,\n maxWidth: 200,\n paddingTop: 8,\n paddingRight: 8,\n paddingBottom: 8,\n paddingLeft: 8,\n borderRadius: 8,\n },\n}\n","import styled, { css } from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { focus } from 'mixins/focus'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport type { CSSColor } from 'shared/types'\nimport type { StyledTooltipComponentProps, TooltipComponentPalette } from './types'\n\nconst shouldForwardTooltipComponentProp = createShouldForwardProp(\n (propKey) => !['black', 'contrast', 'elevated'].includes(propKey)\n)\n\nexport const CloseButton = styled.button`\n box-sizing: border-box;\n appearance: none;\n position: absolute;\n top: 0;\n right: 0;\n padding: 4px;\n margin: 0;\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n background-color: transparent;\n cursor: pointer;\n &:disabled {\n cursor: not-allowed;\n }\n\n ${focus}\n`\n\nconst template = (palette: TooltipComponentPalette) => `\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n filter: drop-shadow(0 6px 10px ${palette.shadowColor});\n\n & > ${CloseButton} {\n color: ${palette.closeColor};\n }\n & > ${CloseButton}:hover {\n color: ${palette.closeColorHover};\n }\n & > ${CloseButton}:active {\n color: ${palette.closeColorActive};\n }\n & > ${CloseButton}:disabled {\n color: ${palette.closeColorDisabled};\n }\n\n`\n\nconst COLOR_SCHEMA = {\n contrast: css<StyledTooltipComponentProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['bg-brand-primary-basic'],\n shadowColor: props.elevated ? props.theme.colors['bg-oncolor-hover'] : props.theme.colors.transparent,\n closeColor: props.theme.colors['content-oncolor-tertiary'],\n closeColorHover: props.theme.colors['content-oncolor-primary'],\n closeColorActive: props.theme.colors['content-oncolor-primary'],\n closeColorDisabled: props.theme.colors['content-oncolor-disabled'],\n ...props.palette,\n })}\n `,\n black: css<StyledTooltipComponentProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-inverse'],\n backgroundColor: props.theme.colors['bg-onmain-inverse'],\n shadowColor: props.elevated ? props.theme.colors['bg-oncolor-hover'] : props.theme.colors.transparent,\n closeColor: props.theme.colors['content-onmain-inverse'],\n closeColorHover: tinycolor(props.theme.colors['content-onmain-inverse']).darken(20).toString() as CSSColor,\n closeColorActive: tinycolor(props.theme.colors['content-onmain-inverse']).darken(20).toString() as CSSColor,\n closeColorDisabled: props.theme.colors['content-disabled'],\n ...props.palette,\n })}\n `,\n primary: css<StyledTooltipComponentProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-onmain-primary'],\n shadowColor: props.elevated ? props.theme.colors['bg-oncolor-hover'] : props.theme.colors.transparent,\n closeColor: props.theme.colors['content-onmain-tertiary'],\n closeColorHover: props.theme.colors['content-onmain-primary'],\n closeColorActive: props.theme.colors['content-onmain-primary'],\n closeColorDisabled: props.theme.colors['content-disabled'],\n ...props.palette,\n })}\n `,\n}\n\nexport const Root = styled.div\n .withConfig<StyledTooltipComponentProps>({\n shouldForwardProp: shouldForwardTooltipComponentProp,\n })\n .attrs<StyledTooltipComponentProps>(<Required<Pick<StyledTooltipComponentProps, 'dynamicSizeDeclaration'>>>{\n dynamicSizeDeclaration: (size, sizeUnits) => ({\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n minWidth: '4.6em',\n maxWidth: '24em',\n padding: '0.8em',\n borderRadius: 8,\n }),\n })`\n box-sizing: border-box;\n display: inline-block;\n isolation: isolate;\n position: relative;\n cursor: default;\n word-break: break-word;\n\n ${(props) => {\n let schema = COLOR_SCHEMA.primary\n\n if (props.black) schema = COLOR_SCHEMA.black\n if (props.contrast) schema = COLOR_SCHEMA.contrast\n\n return schema\n }}\n\n ${responsiveSize}\n`\n","import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { Text } from 'components/Text'\nimport { Icon } from 'components/Icon'\nimport type { TextProps } from 'components/Text'\nimport { SIZES } from './constants'\nimport type { TooltipComponentProps } from './types'\nimport * as Styled from './style'\n\nconst COMPONENT_NAME = 'TooltipComponent'\n\n/**\n *\n * Component accepts all \\<div\\> attributes.\n *\n * Responsive \"size\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [TooltipComponentProps](https://github.com/foxford/ui/blob/master/src/components/TooltipComponent/types.ts)\n */\nconst TooltipComponent: React.ForwardRefExoticComponent<TooltipComponentProps> = withMergedProps<\n TooltipComponentProps,\n HTMLDivElement\n>(\n forwardRef((props, ref) => {\n const {\n size = 's',\n titleProps = {},\n contentProps = {},\n closeButtonProps = {},\n title,\n content,\n footer,\n closeFn,\n showCloseButton,\n ...restProps\n } = props\n\n const textProps: TextProps = { appearance: 'body', size: 'inherit', color: 'inherit' }\n\n return (\n <Styled.Root {...restProps} size={size} ref={ref}>\n {showCloseButton && (\n <Styled.CloseButton\n {...closeButtonProps}\n type='button'\n onClick={(evt) => {\n if (typeof closeFn === 'function') closeFn()\n if (closeButtonProps.onClick) closeButtonProps.onClick(evt)\n }}\n >\n <Icon as='span' name='close' size={16} />\n </Styled.CloseButton>\n )}\n {title && (\n <Text\n weight={700}\n marginRight={showCloseButton ? 16 : undefined}\n marginBottom={content || footer ? '0.3em' : undefined}\n {...textProps}\n {...titleProps}\n >\n {title}\n </Text>\n )}\n {content && (\n <Text\n marginRight={!title && showCloseButton ? 16 : undefined}\n marginBottom={footer ? '0.2em' : undefined}\n {...textProps}\n {...contentProps}\n >\n {content}\n </Text>\n )}\n {footer}\n </Styled.Root>\n )\n }),\n {\n sizes: SIZES,\n displayName: COMPONENT_NAME,\n }\n)\n\nexport { TooltipComponent }\n\nexport { COMPONENT_NAME, SIZES }\n","import { forwardRef, isValidElement, cloneElement } from 'react'\nimport { useKeyboardListener } from 'hooks/useKeyboardListener'\nimport { TooltipComponent } from 'components/TooltipComponent'\nimport type { TooltipWrapperProps } from './types'\n\nconst closeFnNoop = () => undefined\n\nconst ESC_KEYS = ['Escape', 'Esc']\n\nconst TooltipWrapper = forwardRef<HTMLDivElement, TooltipWrapperProps>((props, ref) => {\n const {\n size,\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n black,\n contrast,\n showCloseButton,\n closeButtonProps,\n id,\n role,\n closeFn = closeFnNoop,\n component,\n ...restProps\n } = props\n\n useKeyboardListener('keyup', ESC_KEYS, closeFn)\n\n const injectionProps = {\n size,\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n black,\n contrast,\n showCloseButton,\n closeButtonProps,\n id,\n role,\n closeFn,\n }\n\n if (isValidElement(component)) {\n const elementProps = typeof component.props === 'object' && component.props !== null ? component.props : {}\n\n return cloneElement(component, { ref, ...injectionProps, ...elementProps })\n }\n\n if (typeof component === 'function') {\n return component(injectionProps)\n }\n\n return <TooltipComponent ref={ref} {...injectionProps} {...restProps} />\n})\n\nexport { TooltipWrapper }\n","import { useEffect } from 'react'\n\nexport const useKeyboardListener = (\n keyboardEvtType: 'keydown' | 'keyup',\n keyboardKeys: string[],\n keyboardEvtHandler: (evt: KeyboardEvent) => void\n) => {\n useEffect(() => {\n const handleKeyboardEvt = (evt: KeyboardEvent) => {\n if (keyboardKeys.includes(evt.key)) keyboardEvtHandler(evt)\n }\n\n document.addEventListener(keyboardEvtType, handleKeyboardEvt)\n\n return () => {\n document.removeEventListener(keyboardEvtType, handleKeyboardEvt)\n }\n }, [keyboardEvtType, keyboardEvtHandler, keyboardKeys])\n}\n","import type { Styles } from 'react-floater/lib/types'\n\nexport const TOOLTIP_STYLES_DEFAULT: Partial<Styles> = {\n wrapper: {\n display: 'inline-flex',\n flexDirection: 'column',\n zIndex: 100,\n },\n wrapperPosition: {\n left: -1000,\n position: 'absolute',\n top: -1000,\n visibility: 'hidden',\n },\n floater: {\n display: 'inline-block',\n filter: 'drop-shadow(0 6px 6px rgba(0, 0, 0, 0.2))',\n WebkitFilter: 'drop-shadow(0 6px 6px rgba(0, 0, 0, 0.2))',\n maxWidth: 300,\n opacity: 0,\n position: 'relative',\n transition: 'opacity 0.2s',\n visibility: 'hidden',\n zIndex: 100,\n },\n floaterOpening: {\n opacity: 1,\n visibility: 'visible',\n },\n floaterWithAnimation: {\n opacity: 1,\n transition: 'opacity 0.2s, transform 0.2s',\n visibility: 'visible',\n },\n floaterClosing: {\n opacity: 0,\n visibility: 'visible',\n },\n floaterCentered: {\n left: '50%',\n position: 'fixed',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n },\n container: {\n boxSizing: 'border-box',\n borderRadius: 3,\n backgroundColor: '#fff',\n color: 'var(--mineShaft)',\n minHeight: 32,\n minWidth: 180,\n padding: '16px',\n position: 'relative',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n },\n title: {\n borderBottom: '1px solid var(--mineShaft)',\n color: 'var(--mineShaft)',\n fontWeight: 'bold',\n fontSize: 18,\n marginBottom: 5,\n paddingBottom: 6,\n paddingRight: 18,\n },\n content: {\n fontSize: 12,\n lineHeight: '16px',\n },\n close: {\n backgroundColor: 'transparent',\n border: 0,\n borderRadius: 0,\n color: 'var(--mineShaft)',\n fontSize: 14,\n height: 10,\n lineHeight: '16px',\n outline: 'none',\n padding: 0,\n position: 'absolute',\n right: '4px',\n textAlign: 'center',\n top: '4px',\n WebkitAppearance: 'none',\n width: 10,\n },\n footer: {\n borderTop: '1px solid var(--mineShaft)',\n fontSize: 13,\n marginTop: 10,\n paddingTop: 5,\n },\n arrow: {\n color: '#fff',\n display: 'inline-flex',\n length: 6,\n position: 'absolute',\n spread: 12,\n },\n options: {\n zIndex: 100,\n },\n}\n","import { forwardRef } from 'react'\nimport { useTheme } from 'styled-components'\nimport Floater from 'react-floater'\nimport { mergeDeepLeft } from 'ramda'\nimport type { Props as FloaterProps } from 'react-floater/lib/types'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { SIZES, TooltipComponent } from 'components/TooltipComponent'\nimport { TooltipWrapper } from './TooltipWrapper'\nimport { TOOLTIP_STYLES_DEFAULT } from './default-constants'\nimport type { TooltipProps } from './types'\n\nconst COMPONENT_NAME = 'Tooltip'\n\n/**\n *\n * Component accepts [\"react-floater\"](https://www.npmjs.com/package/react-floater/v/0.8.2) v0.8.2 props.\n *\n * Responsive \"size\" props are supported.\n *\n * Exposed \"ref\" attached to tooltip component root.\n *\n * See full [TooltipProps](https://github.com/foxford/ui/blob/master/src/components/Tooltip/types.ts)\n */\nconst Tooltip: React.ForwardRefExoticComponent<TooltipProps> & { Component: typeof TooltipComponent } = Object.assign(\n withMergedProps<TooltipProps, HTMLDivElement>(\n forwardRef((props, ref) => {\n const {\n preset,\n size = 's',\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n sizeUnits,\n sizes,\n palette,\n black,\n contrast,\n titleProps,\n contentProps,\n closeButtonProps,\n ...restProps\n } = props\n\n const theme = useTheme()\n\n if (preset !== 'brand') {\n const tooltipProps = {\n ...restProps,\n styles: mergeDeepLeft(restProps.styles ?? {}, TOOLTIP_STYLES_DEFAULT),\n } as FloaterProps\n\n return (\n <Floater {...tooltipProps}>\n <span>{tooltipProps.children}</span>\n </Floater>\n )\n }\n\n let color = theme.colors['bg-onmain-primary']\n\n if (black) color = theme.colors['bg-onmain-inverse']\n if (contrast) color = theme.colors['bg-brand-primary-basic']\n if (palette?.backgroundColor) color = theme.colors[palette.backgroundColor] ?? palette.backgroundColor\n\n const tooltipProps = {\n ...restProps,\n offset: restProps.offset ?? 8,\n styles: mergeDeepLeft(restProps.styles ?? {}, {\n arrow: {\n color,\n spread: 16,\n length: 8,\n },\n floater: {\n filter: `drop-shadow(0 6px 10px ${theme.colors['bg-oncolor-hover']})`,\n },\n }),\n component: (\n <TooltipWrapper\n ref={ref}\n size={size}\n sizeXXS={sizeXXS}\n sizeXS={sizeXS}\n sizeS={sizeS}\n sizeM={sizeM}\n sizeL={sizeL}\n sizeXL={sizeXL}\n sizeUnits={sizeUnits}\n sizes={sizes}\n palette={palette}\n black={black}\n contrast={contrast}\n title={restProps.title}\n titleProps={titleProps}\n content={restProps.content}\n contentProps={contentProps}\n footer={restProps.footer}\n showCloseButton={restProps.showCloseButton}\n closeButtonProps={closeButtonProps}\n component={restProps.component}\n />\n ),\n } as FloaterProps\n\n return (\n <Floater\n {...tooltipProps}\n modifiers={{\n flip: {\n enabled: !tooltipProps.disableFlip,\n },\n }}\n />\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: SIZES,\n }\n ),\n {\n Component: TooltipComponent,\n }\n)\n\nexport { Tooltip }\n\nexport { COMPONENT_NAME }\n","import styled, { css } from 'styled-components'\nimport { display } from 'mixins/display'\nimport { property, PossibleValues, responsiveNamedProperty } from 'mixins/responsive-property'\nimport { color } from 'mixins/color'\nimport { Text as UiText } from 'components/Text'\nimport type { TextProps } from 'components/Text'\nimport { TagProps } from './Tag'\n\nconst WIDTHS: Record<Partial<Exclude<TagProps['size'], 'auto' | undefined>>, number> = {\n l: 220,\n m: 182,\n s: 100,\n xs: 60,\n}\n\nconst chooseWidthValue = (props: TagProps): PossibleValues => {\n if (props.width === 'auto') return 'auto'\n if (typeof props.width === 'number') return props.width\n\n if (props.size && WIDTHS[props.size]) return WIDTHS[props.size]\n\n return 'auto'\n}\n\nconst active = css`\n border-color: transparent;\n background-color: currentColor;\n`\n\nexport const Text = styled(UiText)<TextProps>`\n display: inline-block;\n vertical-align: middle;\n white-space: nowrap;\n text-overflow: ellipsis;\n max-width: 100%;\n overflow: hidden;\n vertical-align: middle;\n transition: color 0.25s ease;\n`\n\nconst disabled = css`\n cursor: not-allowed;\n background-color: rgba(0, 0, 0, 0.04);\n ${Text} {\n color: rgba(0, 0, 0, 0.16);\n }\n`\n\nexport const Root = styled.button.withConfig<TagProps>({\n shouldForwardProp: (prop) => ['children', 'htmlFor', 'className', 'style', 'onClick'].includes(prop),\n})`\n padding: 0px 16px;\n margin-bottom: 10px;\n border-radius: 3px;\n background-color: ${(props) => props.theme.colors.white};\n border: 1px solid ${(props) => props.theme.colors.whiteGray};\n box-sizing: border-box;\n vertical-align: middle;\n transition: color 0.25s ease, background 0.25s ease, border-color 0.25s ease;\n cursor: pointer;\n text-align: center;\n touch-action: manipulation;\n min-width: 60px;\n\n ${(props) => (props.size ? property(chooseWidthValue(props), 'width') : null)}\n ${(props) => (props.height ? property(props.height, 'line-height') : null)}\n ${(props) => (props.height ? property(props.height, 'height') : null)}\n ${({ heightXS, heightS, heightM, heightL, heightXL }) =>\n responsiveNamedProperty({ sizes: { heightXS, heightS, heightM, heightL, heightXL }, cssProperty: 'height' })}\n\n ${(props) => (props.width ? property(props.width, 'width') : null)}\n ${({ widthXS, widthS, widthM, widthL, widthXL }) =>\n responsiveNamedProperty({ sizes: { widthXS, widthS, widthM, widthL, widthXL }, cssProperty: 'width' })}\n\n ${(props) => (props.display ? display(props.display) : null)}\n ${(props) => (props.color ? color(props.color) : null)}\n\n &:not(:last-child) {\n margin-right: 20px;\n }\n\n ${(props) =>\n !props.disabled\n ? css`\n &:hover:not(:disabled) {\n border-color: currentColor;\n }\n &:active:not(:disabled) {\n ${active}\n ${Text} {\n color: ${(props) => props.theme.colors.white};\n }\n }\n `\n : null}\n\n ${(props) => (props.inverse || props.checked ? active : null)}\n\n &:disabled {\n ${disabled}\n }\n ${(props) => (props.disabled ? disabled : null)}\n`\n","import { ResponsiveNamedProperty } from 'mixins/responsive-property'\nimport { ColorProperty } from 'mixins/color'\nimport { DisplayProperty } from 'mixins/display'\nimport type { BaseProps } from 'shared/interfaces'\nimport type { TextProps } from 'components/Text'\nimport { DefaultColorNames } from 'theme/colors'\nimport * as Styled from './style'\n\nexport interface TagProps\n extends BaseProps,\n DisplayProperty,\n ColorProperty,\n ResponsiveNamedProperty<'height'>,\n ResponsiveNamedProperty<'width'> {\n as?: 'button' | 'div' | 'input' | 'label'\n /**\n * Field id\n */\n id?: string\n /**\n * Field name\n */\n name?: string\n /**\n * Input type\n */\n inputType?: 'checkbox' | 'radio'\n /**\n * On change handler\n */\n onChange?(_e: React.ChangeEvent<HTMLInputElement>): void\n /**\n * On click handler\n */\n onClick?(_e: React.MouseEvent<HTMLInputElement>): void\n /**\n * Whether or not Radio is checked\n */\n defaultChecked?: boolean\n /**\n * Value\n */\n value?: string | number\n /** Children are placed before Text */\n /**\n * Children react node\n */\n children?: React.ReactNode\n /** Inner Text content */\n content?: React.ReactNode\n /** Inner Text component props */\n textProps?: TextProps\n /** Checked state */\n checked?: boolean\n /** Disabled state */\n disabled?: boolean\n /** Error state */\n error?: boolean\n /** If as = 'label' could provide for */\n htmlFor?: string\n /**\n * inverse\n */\n inverse?: boolean\n /**\n * Size\n */\n size?: 'l' | 'm' | 's' | 'xs'\n}\n\nTag.defaultProps = {\n display: 'inline-block',\n as: 'button',\n height: 40,\n}\n\nTagInput.defaultProps = {\n display: 'inline-block',\n height: 40,\n}\n\n// Prevent brakechanges\nTag.Input = TagInput\n\nTag.displayName = 'Tag'\n\nfunction TagInput(props: typeof TagInput.defaultProps & TagProps) {\n return <Tag as='input' {...props} />\n}\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - [`Display`](#/Миксины)\n * - [`Color`](#/Миксины)\n * - [`ResponsiveNamedProperty<'width'>`](#/Миксины)\n * - [`ResponsiveNamedProperty<'height'>`](#/Миксины)\n */\nexport function Tag(props: typeof Tag.defaultProps & TagProps) {\n const {\n as,\n textProps,\n content,\n children,\n htmlFor,\n id,\n name,\n inputType,\n value,\n disabled,\n onChange,\n onClick,\n inverse,\n checked,\n ...restProps\n } = props\n\n const buttonProps = as === 'button' ? { type: 'button' } : {}\n const labelProps = as === 'label' ? { htmlFor } : {}\n const inputProps = as === 'input' ? { htmlFor: id || name } : {}\n\n return (\n <Styled.Root\n as={as === 'input' ? 'label' : as}\n inverse={inverse}\n checked={checked}\n disabled={disabled}\n onClick={as !== 'input' ? onClick : undefined}\n {...labelProps}\n {...buttonProps}\n {...inputProps}\n {...restProps}\n >\n {as === 'input' ? (\n <input\n id={id || name}\n name={name}\n type={inputType || 'checkbox'}\n tabIndex={0}\n onChange={(e) => {\n e.persist()\n\n return onChange && onChange(e)\n }}\n onClick={(e) => {\n e.persist()\n\n return onClick && onClick(e)\n }}\n defaultChecked={props.defaultChecked}\n checked={checked}\n value={value}\n disabled={disabled}\n hidden\n />\n ) : null}\n {children}\n <Styled.Text\n size={14}\n forwardedAs='span'\n color={checked && !inverse ? DefaultColorNames.white : DefaultColorNames.mineShaft}\n {...textProps}\n >\n {content}\n </Styled.Text>\n </Styled.Root>\n )\n}\n","import styled from 'styled-components'\n\nexport const HeadingRoot = styled.div`\n display: block;\n padding: 9px 20px 16px;\n user-select: none;\n text-transform: uppercase;\n`\n\nexport const SubHeadingRoot = styled.div`\n display: block;\n padding: 9px 20px 16px;\n user-select: none;\n`\n\nexport const ControlsRoot = styled.div`\n display: flex;\n justify-content: space-between;\n border-top: 1px solid ${(props) => props.theme.colors.mercury};\n user-select: none;\n`\n\nexport const ControlsItem = styled.div`\n padding: 12px 20px;\n cursor: pointer;\n`\n\nexport const MultilevelItems = styled.div`\n max-height: 170px;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n`\n","import { DefaultColorNames } from 'theme/colors'\nimport { Text } from '../Text'\nimport * as Styled from './style'\n\nexport interface HeadingProps {\n /**\n * Children react node\n */\n children?: React.ReactNode\n content?: React.ReactNode\n}\n\nexport function Heading({ children, content }: HeadingProps) {\n return (\n <Styled.HeadingRoot>\n {children}\n <Text size='s' lineHeight='s' weight='bold' color={DefaultColorNames.mineShaft}>\n {content}\n </Text>\n </Styled.HeadingRoot>\n )\n}\n","import { DefaultColorNames } from 'theme/colors'\nimport { Text } from '../Text'\nimport * as Styled from './style'\n\nexport interface SubHeadingProps {\n /**\n * Children react node\n */\n children?: React.ReactNode\n content?: React.ReactNode\n}\n\nexport function SubHeading({ children, content }: SubHeadingProps) {\n return (\n <Styled.SubHeadingRoot>\n {children}\n <Text size='s' lineHeight='s' color={DefaultColorNames.mineShaft}>\n {content}\n </Text>\n </Styled.SubHeadingRoot>\n )\n}\n","import { BaseProps } from 'shared/interfaces'\nimport { DefaultColorNames } from 'theme/colors'\nimport { Text } from '../Text'\nimport { MultiLevelControls } from './ContextMenu.Multilevel'\nimport * as Styled from './style'\n\nexport interface ControlsProps extends BaseProps {\n /** Cancel Text element props */\n cancel?: MultiLevelControls['cancel']\n /** Confirm Text element props */\n confirm?: MultiLevelControls['confirm']\n}\n\nexport function Controls({ cancel, confirm, className, style }: ControlsProps) {\n return (\n <Styled.ControlsRoot className={className} style={style}>\n {cancel ? (\n <Styled.ControlsItem className='cancel' role='button' onClick={cancel.onClick}>\n <Text size='m' lineHeight='s' color={cancel.color || DefaultColorNames.silver}>\n {cancel.content}\n </Text>\n </Styled.ControlsItem>\n ) : null}\n {confirm ? (\n <Styled.ControlsItem className='confirm' role='button' onClick={confirm.onClick}>\n <Text size='m' lineHeight='s' color={confirm.color || DefaultColorNames.accent}>\n {confirm.content}\n </Text>\n </Styled.ControlsItem>\n ) : null}\n </Styled.ControlsRoot>\n )\n}\n","import { PureComponent } from 'react'\nimport type { BaseProps } from 'shared/interfaces'\nimport type { Color } from 'shared/types'\nimport { Spacer } from 'components/Spacer'\nimport { ContextMenu, ContextMenuProps } from '../ContextMenu/ContextMenu'\nimport { Heading } from './Heading'\nimport { SubHeading } from './SubHeading'\nimport { Controls } from './Controls'\nimport * as Styled from './style'\n\nexport interface MultiLevelControls {\n cancel?: {\n content?: string\n onClick?(): void\n color?: Color\n }\n confirm?: {\n content?: string\n onClick?(): void\n color?: Color\n }\n}\n\nexport interface MultiLevelItem {\n id: string | number\n heading?: string\n subheading?: string\n content?: string\n preventClosing?: boolean\n // eslint-disable-next-line no-use-before-define\n config?: MultiLevelConfig\n items?: MultiLevelItem[]\n controls?: MultiLevelControls\n level?: number\n active?: boolean\n onClick?(_item: MultiLevelItem): void\n}\n\nexport interface MultiLevelConfig {\n items?: MultiLevelItem[]\n heading?: string\n subheading?: string\n controls?: MultiLevelControls\n}\n\nexport interface ContextMenuMultiLevelProps extends ContextMenuProps, BaseProps {\n /** Menu config */\n config?: MultiLevelConfig\n /** On select item callback */\n onSelectItem?(_item: MultiLevelItem, _level: MultiLevelItem['level']): void\n}\n\ninterface ContextMenuMultiLevelState {\n selectedItems: (number | string)[]\n}\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n */\nexport class ContextMenuMultiLevel extends PureComponent<ContextMenuMultiLevelProps, ContextMenuMultiLevelState> {\n resetTimeout?: ReturnType<typeof setTimeout>\n static displayName = 'ContextMenu.MultiLevel'\n static defaultProps = {\n config: {},\n }\n\n constructor(props: ContextMenuMultiLevelProps) {\n super(props)\n\n this.state = {\n selectedItems: [],\n }\n }\n\n componentWillUnmount() {\n clearTimeout(this.resetTimeout)\n }\n\n onSelectItem = (selectedItem: MultiLevelItem) => {\n const { id, level } = selectedItem\n\n const { selectedItems } = this.state\n const newSelectedItems = [...selectedItems.slice(0, level), id]\n\n this.setState({ selectedItems: newSelectedItems })\n\n if (typeof this.props.onSelectItem === 'function') this.props.onSelectItem(selectedItem, level)\n }\n\n getCurrentConfig = (): MultiLevelConfig | null => {\n const { config } = this.props\n const { selectedItems } = this.state\n\n if (!config) return null\n\n if (!selectedItems.length) return config\n\n try {\n const currentConfig = selectedItems.reduce((acc, levelId) => {\n return acc.items ? acc.items.find((item) => item.id === levelId)?.config || {} : {}\n }, config)\n\n return currentConfig\n } catch (error) {\n return null\n }\n }\n\n reset = () => {\n /* Reset timeout to prevent state switch due to slow tooltip closing animation */\n this.resetTimeout = setTimeout(() => this.setState({ selectedItems: [] }), 200)\n }\n\n itemOnClickHandler: React.MouseEventHandler<HTMLDivElement> = (e) => {\n const config = this.getCurrentConfig()\n if (!config) throw new Error('Config not found')\n\n const { items = [] } = config\n const { currentTarget } = e\n\n const { id = null } = currentTarget.dataset\n\n if (id === null) throw new Error('Data-id for item not found')\n\n const item = items.find((item) => `${item.id}` === id)\n\n if (!item) throw new Error('Item not found')\n\n if (item.config || item.preventClosing) {\n e.preventDefault()\n e.stopPropagation()\n }\n\n if (item.config) {\n /* If menu item has config - select item to show inner level */\n this.onSelectItem(item)\n }\n\n if (typeof item.onClick === 'function') {\n item.onClick(item)\n }\n }\n\n render() {\n const { children, className, tooltipProps, isOpen, trigger, ...anotherProps } = this.props\n const { selectedItems } = this.state\n const config = this.getCurrentConfig()\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { config: _config, onSelectItem: _onSelectItem, ...restProps } = anotherProps\n\n return (\n <ContextMenu\n className={className}\n tooltipProps={tooltipProps}\n isOpen={isOpen}\n onClose={this.reset}\n trigger={trigger}\n {...restProps}\n >\n {children}\n <>\n <Spacer top={9} />\n {config?.heading ? <Heading content={config.heading} /> : null}\n {config?.subheading ? <SubHeading content={config.subheading} /> : null}\n {config?.items ? (\n <Styled.MultilevelItems>\n {config.items.map((item) => (\n <ContextMenu.Item\n key={item.id}\n id={item.id}\n content={item.content}\n active={(item.level && Boolean(selectedItems[item.level] === item.id)) || item.active}\n onClick={this.itemOnClickHandler}\n />\n ))}\n </Styled.MultilevelItems>\n ) : null}\n {config?.controls ? <Controls {...config.controls} /> : <Spacer top={9} />}\n </>\n </ContextMenu>\n )\n }\n}\n","import styled, { css } from 'styled-components'\nimport { ContextMenuProps } from './ContextMenu'\nimport { ContextMenuItemProps } from './Item'\n\nconst isOpen = css`\n &:after {\n cursor: default;\n user-select: none;\n content: '';\n display: block;\n position: fixed;\n width: 100%;\n height: 100%;\n z-index: ${(props) => props.theme.zIndex.tooltip};\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n }\n`\n\nconst disabledItem = css`\n background-color: ${(props) => props.theme.colors.alabaster};\n opacity: 0.6;\n cursor: default;\n`\n\nconst notDisabledItem = css`\n &:hover {\n background-color: ${(props) => props.theme.colors.onahau};\n }\n`\n\nexport const Root = styled.div.withConfig({\n shouldForwardProp: (prop) => ['className', 'onClick', 'children', 'style'].includes(prop),\n})<Pick<ContextMenuProps, 'isOpen' | 'hideOverlay'>>`\n display: inline-block;\n position: relative;\n [style*='cursor'] {\n cursor: default !important;\n }\n & + & {\n margin-left: 16px;\n }\n ${(props) => (props.isOpen && Boolean(props.hideOverlay) === false ? isOpen : null)}\n`\n\nexport const RootItem = styled.div.withConfig({\n shouldForwardProp: (prop) => ['className', 'onClick', 'children', 'data-id'].includes(prop),\n})<Pick<ContextMenuItemProps, 'active' | 'disabled'>>`\n display: block;\n padding: 8px 20px 7px;\n transition: background-color 0.4s ease-out;\n cursor: pointer;\n user-select: none;\n ${(props) =>\n props.active\n ? css`\n background-color: ${props.theme.colors.onahau};\n `\n : null}\n ${(props) => (props.disabled ? disabledItem : notDisabledItem)}\n`\n","import { BaseProps } from 'shared/interfaces'\nimport { DefaultColorNames } from 'theme/colors'\nimport { Text } from '../Text'\nimport * as Styled from './style'\n\nconst disabledHandler = (e: React.MouseEvent<HTMLDivElement>) => {\n e.preventDefault()\n e.preventDefault()\n e.stopPropagation()\n\n return false\n}\n\nexport interface ContextMenuItemProps extends BaseProps {\n /**\n * Children react node\n */\n children?: React.ReactNode\n content?: string\n active?: boolean\n disabled?: boolean\n onClick?: React.MouseEventHandler<HTMLDivElement>\n id?: string | number\n}\n\nContextMenuItem.displayName = 'ContextMenu.Item'\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n */\nexport function ContextMenuItem({\n children,\n id,\n content,\n active,\n disabled,\n onClick,\n className,\n style,\n}: ContextMenuItemProps) {\n return (\n <Styled.RootItem\n style={style}\n className={className}\n active={active}\n disabled={disabled}\n onClick={disabled ? disabledHandler : onClick}\n data-id={id}\n >\n {children}\n <Text size='s' lineHeight='s' color={DefaultColorNames.mineShaft}>\n {content}\n </Text>\n </Styled.RootItem>\n )\n}\n","/* eslint-disable no-use-before-define */\nimport { cloneElement, PureComponent } from 'react'\nimport { BaseProps } from 'shared/interfaces'\nimport { ContextMenuMultiLevel } from 'components/ContextMenu.Multilevel'\nimport { Tooltip } from './../Tooltip'\nimport { ContextMenuItem } from './Item'\nimport * as Styled from './style'\nimport { tooltipStyles } from './tooltip-styles'\n\nexport interface ContextMenuProps extends BaseProps {\n /**\n * Children react node\n */\n children: React.ReactNode\n /** Indicates if button is active (e.g. when context menu is open) */\n onClick?: (_e: React.MouseEvent<HTMLDivElement>) => void\n /** Manually controled state */\n isOpen?: boolean\n /** On open menu callback */\n onOpen?: (_e: React.MouseEvent<HTMLDivElement>) => void\n /** On close menu callback */\n onClose?: (_e: React.MouseEvent<HTMLDivElement>) => void\n /** Content */\n trigger?: React.ReactNode\n /** Properties for inner Tooltip component */\n tooltipProps?: Partial<Parameters<typeof Tooltip>[0]>\n /** Hide overlay for debug */\n hideOverlay?: boolean\n}\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n */\nexport class ContextMenu extends PureComponent<ContextMenuProps, { isOpen: boolean }> {\n static Item = ContextMenuItem\n static MultiLevel = ContextMenuMultiLevel\n static displayName = 'ContextMenu'\n\n static defaultProps = {\n tooltipProps: {\n event: 'click',\n placement: 'left-start',\n offset: 2,\n showCloseButton: false,\n styles: tooltipStyles,\n },\n hideOverlay: false,\n }\n\n constructor(props: ContextMenuProps) {\n super(props)\n\n this.state = {\n isOpen: this.props.isOpen || false,\n }\n }\n\n getOpen = () => {\n const { isOpen } = this.props\n\n if (isOpen !== undefined) return isOpen\n\n return this.state.isOpen || false\n }\n\n openMenu = (e: React.MouseEvent<HTMLDivElement>) => {\n this.setState({ isOpen: true })\n\n const { onOpen } = this.props\n\n onOpen && onOpen(e)\n }\n\n closeMenu = (e: React.MouseEvent<HTMLDivElement>) => {\n this.setState({ isOpen: false })\n\n const { onClose } = this.props\n\n onClose && onClose(e)\n }\n\n toggleMenu = (e: React.MouseEvent<HTMLDivElement>) => {\n const { openMenu, closeMenu } = this\n const isOpen = this.getOpen()\n\n e.persist()\n e.preventDefault()\n e.stopPropagation()\n\n isOpen ? closeMenu(e) : openMenu(e)\n\n return false\n }\n\n render() {\n const { className, tooltipProps = {}, trigger, children, hideOverlay } = this.props\n const isOpen = this.getOpen()\n\n if (children) tooltipProps.content = children\n\n return (\n <Styled.Root className={className} isOpen={isOpen} onClick={this.toggleMenu} hideOverlay={hideOverlay}>\n <Tooltip {...tooltipProps} open={isOpen}>\n {/* eslint-disable-next-line @typescript-eslint/no-explicit-any */}\n <div onClick={this.closeMenu}>{trigger && cloneElement(trigger as any, { active: isOpen })}</div>\n </Tooltip>\n </Styled.Root>\n )\n }\n}\n","const zIndex = 100\n\nexport const tooltipStyles = {\n wrapper: {\n display: 'inline-block',\n zIndex,\n },\n wrapperPosition: {\n left: -1000,\n position: 'absolute',\n top: -1000,\n visibility: 'hidden',\n },\n floater: {\n display: 'inline-block',\n filter: 'drop-shadow(0px 2px 4px rgba(0, 0, 0, 0.08))',\n WebkitFilter: 'drop-shadow(0px 2px 4px rgba(0, 0, 0, 0.08))',\n maxWidth: 300,\n minWidth: 200,\n opacity: 0,\n position: 'relative',\n transition: 'opacity 0.2s',\n visibility: 'hidden',\n zIndex: 99,\n },\n floaterOpening: {\n opacity: 1,\n visibility: 'visible',\n },\n floaterWithAnimation: {\n opacity: 1,\n transition: 'opacity 0.2s, transform 0.2s',\n visibility: 'visible',\n },\n floaterClosing: {\n opacity: 0,\n visibility: 'visible',\n },\n floaterCentered: {\n left: '50%',\n position: 'fixed',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n },\n container: {\n boxSizing: 'border-box',\n borderRadius: 4,\n border: '1px solid #E9E9E9',\n color: '#333',\n backgroundColor: '#fff',\n minHeight: 32,\n minWidth: 180,\n padding: '0',\n position: 'relative',\n display: 'block',\n overflow: 'hidden',\n },\n content: {\n display: 'block',\n },\n arrow: {\n display: 'none',\n },\n}\n","import { PossibleValues } from 'mixins/responsive-property'\nimport { SizeInput } from 'shared/enums/sizeInput'\n\nexport const chooseWidthValue = (width: PossibleValues): PossibleValues => {\n if (width === 'auto') return 'auto'\n if (typeof width === 'number') return width\n if (typeof width === 'boolean') return width\n\n if (width && SizeInput[width]) return SizeInput[width]\n\n return 'auto'\n}\n","import styled, { css } from 'styled-components'\nimport InputMask from 'react-input-mask'\nimport tinycolor from 'tinycolor2'\nimport type { StyledProps } from 'styled-components'\nimport { color } from 'mixins/color'\nimport { property, responsiveNamedProperty } from 'mixins/responsive-property'\nimport { chooseWidthValue } from 'components/Input/helpers'\nimport { focus } from 'mixins/focus'\nimport type { CSSColor } from 'shared/types'\nimport type { StyledBaseInputProps, StyledInputProps, StyledInputControlsProps, InputPalette } from './types'\n\nconst template = (\n palette: Pick<\n InputPalette,\n 'inputColor' | 'inputPlaceholderColor' | 'inputColorDisabled' | 'inputPlaceholderColorDisabled'\n >\n) => `\n color: ${palette.inputColor};\n &::placeholder {\n color: ${palette.inputPlaceholderColor};\n }\n &:disabled {\n color: ${palette.inputColorDisabled};\n }\n &:disabled::placeholder {\n color: ${palette.inputPlaceholderColorDisabled};\n }\n`\n\nconst controlsTemplate = (\n palette: Pick<\n InputPalette,\n | 'controlsColor'\n | 'controlsBackgroundColor'\n | 'controlsColorHover'\n | 'controlsBackgroundColorHover'\n | 'controlsColorActive'\n | 'controlsBackgroundColorActive'\n | 'controlsColorDisabled'\n | 'controlsBackgroundColorDisabled'\n | 'controlsSeparatorColor'\n >\n) => `\n color: ${palette.controlsColor};\n background-color: ${palette.controlsBackgroundColor};\n &:hover {\n color: ${palette.controlsColorHover};\n background-color: ${palette.controlsBackgroundColorHover};\n }\n &:active {\n color: ${palette.controlsColorActive};\n background-color: ${palette.controlsBackgroundColorActive};\n }\n &:disabled {\n color: ${palette.controlsColorDisabled};\n background-color: ${palette.controlsBackgroundColorDisabled};\n }\n &:not(:first-child)::before {\n background-color: ${palette.controlsSeparatorColor};\n }\n`\n\nexport const errorStyle = css`\n border: 1px solid ${(props) => props.theme.colors.pomegranate};\n background-color: ${(props) => tinycolor(props.theme.colors.pomegranate).setAlpha(0.1).toString()};\n`\n\nexport const disabledStyle = css`\n background-color: rgba(0, 0, 0, 0.04);\n border-color: rgba(0, 0, 0, 0.04);\n color: rgba(0, 0, 0, 0.16);\n cursor: not-allowed;\n &:disabled {\n background-color: rgba(0, 0, 0, 0.04);\n border-color: rgba(0, 0, 0, 0.04);\n color: rgba(0, 0, 0, 0.16);\n cursor: not-allowed;\n }\n`\n\nexport const focusStyle = css`\n &:focus {\n border: 1px solid ${(props) => props.theme.colors.accent};\n outline: none;\n }\n`\n\nexport const roundedStyle = css`\n border-radius: ${(props) => props.theme.borderRadius};\n`\n\nexport const baseInputStyle = (\n props: StyledProps<\n Pick<\n StyledBaseInputProps,\n | 'color'\n | 'placeholderColor'\n | 'disabled'\n | 'rounded'\n | 'width'\n | 'widthXS'\n | 'widthS'\n | 'widthM'\n | 'widthL'\n | 'widthXL'\n | 'fluid'\n | 'error'\n >\n >\n) => css`\n box-sizing: border-box;\n display: block;\n background-color: ${props.theme.colors.white};\n border: solid 1px ${props.theme.colors.alto};\n width: auto;\n appearance: none;\n font-size: 16px;\n ${props.color ? color(props.color) : null};\n &::placeholder {\n ${props.placeholderColor ? color(props.placeholderColor) : null}\n }\n ${focusStyle}\n ${props.disabled ? disabledStyle : null}\n ${props.rounded ? roundedStyle : null}\n\n ${props.width\n ? property(chooseWidthValue(props.width), props.fluid && props.width !== 'auto' ? 'max-width' : 'width')\n : null}\n ${responsiveNamedProperty({\n sizes: {\n widthXS: props.widthXS,\n widthS: props.widthS,\n widthM: props.widthM,\n widthL: props.widthL,\n widthXL: props.widthXL,\n },\n cssProperty: props.fluid && props.width !== 'auto' ? 'max-width' : 'width',\n customSizeHandler: chooseWidthValue,\n })}\n ${props.fluid\n ? css`\n width: 100%;\n `\n : null}\n ${props.error ? errorStyle : null}\n`\n\nexport const Root: React.ComponentType<StyledBaseInputProps> = styled(InputMask).withConfig<StyledBaseInputProps>({\n shouldForwardProp: (prop) =>\n !['color', 'placeholderColor', 'rounded', 'fluid', 'error'].includes(prop) && !prop.includes('width'),\n})`\n line-height: 24px;\n padding: 15px 20px 11px;\n ${(props) => baseInputStyle(props)}\n`\n\nexport const Input: React.ComponentType<StyledInputProps> = styled(InputMask).withConfig<StyledInputProps>({\n shouldForwardProp: (propKey) => !['palette', 'label', 'labelPosition', 'active'].includes(propKey),\n})`\n ${(props) => {\n let opacity = '1'\n let paddingTop = '0px'\n\n if (props.label && props.labelPosition === 'dynamic') {\n opacity = `${props.active ? 1 : 0}`\n paddingTop = '0.8em'\n }\n\n if (props.label && props.labelPosition === 'top') {\n paddingTop = '0.8em'\n }\n\n if (props.label && props.labelPosition === 'center') {\n opacity = `${props.active ? 1 : 0}`\n }\n\n return `\n box-sizing: border-box;\n appearance: textfield;\n border: none;\n padding: 0;\n margin: 0;\n font-size: inherit;\n line-height: inherit;\n background-color: transparent;\n width: 100%;\n align-self: stretch;\n opacity: ${opacity};\n padding-top: ${paddingTop};\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n\n &[type=\"number\"]::-webkit-outer-spin-button,\n &[type=\"number\"]::-webkit-inner-spin-button {\n appearance: none;\n margin: 0;\n }\n\n &:focus {\n cursor: text;\n outline: none;\n }\n `\n }}\n ${(props) =>\n template({\n inputColor: props.theme.colors['content-onmain-primary'],\n inputPlaceholderColor: props.theme.colors['content-onmain-secondary'],\n inputColorDisabled: props.theme.colors['content-disabled'],\n inputPlaceholderColorDisabled: props.theme.colors['content-disabled'],\n ...props.palette,\n })}\n`\n\nexport const InputControl = styled.button.withConfig<StyledInputControlsProps>({\n shouldForwardProp: (propKey) => !['palette'].includes(propKey),\n})`\n box-sizing: border-box;\n appearance: none;\n position: relative;\n padding: 5px;\n margin: 0;\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n border-radius: 8px;\n cursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')};\n &:first-child {\n margin-left: 4px;\n }\n &:not(:first-child) {\n margin-left: 9px;\n }\n &:not(:first-child)::before {\n content: '';\n position: absolute;\n width: 1px;\n height: 60%;\n top: 50%;\n left: -5px;\n transform: translateY(-50%);\n }\n ${(props) =>\n controlsTemplate({\n controlsColor: props.theme.colors['content-onmain-tertiary'],\n controlsColorHover: props.theme.colors['content-onmain-primary'],\n controlsColorActive: props.theme.colors['content-onmain-primary'],\n controlsColorDisabled: props.theme.colors['content-disabled'],\n controlsBackgroundColor: props.theme.colors.transparent,\n controlsBackgroundColorHover: tinycolor(props.theme.colors['bg-oncolor-hover'])\n .lighten(20)\n .toString() as CSSColor,\n controlsBackgroundColorActive: props.theme.colors['bg-oncolor-hover'],\n controlsBackgroundColorDisabled: props.theme.colors.transparent,\n controlsSeparatorColor: props.theme.colors['border-onmain-default-large'],\n ...props.palette,\n })}\n\n ${focus}\n`\n","import styled, { css } from 'styled-components'\nimport { property, responsiveNamedProperty } from 'mixins/responsive-property'\nimport { chooseWidthValue } from 'components/Input/helpers'\nimport { baseInputStyle } from 'components/Input/style'\nimport { focus } from 'mixins/focus'\nimport type { StyledTextareaProps } from './types'\n\nconst brandTextareaStyle = css<StyledTextareaProps>`\n ${({ theme, disabled }) => `\n display: block;\n box-sizing: border-box;\n appearance: none;\n width: auto;\n resize: none;\n cursor: ${disabled ? 'not-allowed' : 'text'};\n\n background: ${theme.colors['bg-onmain-secondary']};\n border: 1px solid ${theme.colors['border-onmain-default-large']};\n border-radius: 12px;\n padding: 12px 16px;\n\n font-style: normal;\n font-weight: 400;\n font-size: 18px;\n line-height: 24px;\n color: ${theme.colors['content-onmain-primary']};\n\n transition-property: background-color, border-color, color, caret-color;\n transition-duration: 200ms;\n transition-timing-function: ease-in;\n\n &::placeholder {\n color: ${theme.colors['content-onmain-secondary']};\n }\n\n &:disabled {\n background-color: ${theme.colors['bg-disabled-large']};\n border-color: ${theme.colors['border-disabled']};\n color: ${theme.colors['content-disabled']};\n }\n `};\n\n ${(props) =>\n props.width\n ? property(chooseWidthValue(props.width), props.fluid && props.width !== 'auto' ? 'max-width' : 'width')\n : null}\n\n ${(props) =>\n responsiveNamedProperty({\n sizes: {\n widthXS: props.widthXS,\n widthS: props.widthS,\n widthM: props.widthM,\n widthL: props.widthL,\n widthXL: props.widthXL,\n },\n cssProperty: props.fluid && props.width !== 'auto' ? 'max-width' : 'width',\n customSizeHandler: chooseWidthValue,\n })}\n\n ${({ fluid }) => fluid && 'width: 100%;'}\n\n ${({ error, theme }) =>\n error &&\n `\n background-color: ${theme.colors['alert-bg-error-100']};\n border: 1px solid ${theme.colors['alert-bg-error-500']};\n `}\n\n ${focus}\n`\n\nconst baseTextareaStyle = css`\n resize: none;\n line-height: 23px;\n padding: 16px 20px 11px;\n ${baseInputStyle}\n`\n\nexport const Root = styled.textarea.withConfig<StyledTextareaProps>({\n shouldForwardProp: (prop) =>\n !['color', 'placeholderColor', 'rounded', 'fluid', 'error', 'brandPresetUsed', 'theme'].includes(prop) &&\n !prop.includes('width'),\n})`\n ${({ brandPresetUsed }) => (brandPresetUsed ? brandTextareaStyle : baseTextareaStyle)}\n`\n","import { useCallback, useEffect, useRef, useState } from 'react'\nimport { useTheme } from 'styled-components'\nimport { omit } from 'ramda'\nimport { useConfigPriority } from 'hooks/use-config-priority'\nimport * as Styled from './style'\nimport type { TextareaProps } from './types'\n\nconst COMPONENT_NAME = 'Textarea'\n\nconst Textarea = (props: TextareaProps) => {\n const theme = useTheme()\n\n const {\n preset,\n disabled,\n error,\n fluid,\n name,\n onChange,\n maxLength,\n placeholder,\n required,\n tabIndex,\n value,\n className,\n style,\n autosize = true,\n rounded = true,\n cols = 20,\n rows = 2,\n maxRows = 30,\n color = 'mineShaft',\n placeholderColor = 'silver',\n width = theme.defaultInputControlsWidth,\n ...configProps\n } = useConfigPriority<TextareaProps>(theme.components?.[COMPONENT_NAME], omit(['children'], props))\n\n const textarea = useRef() as React.MutableRefObject<HTMLTextAreaElement>\n\n const [tRows, setRows] = useState(rows)\n\n const onChangeHandler = useCallback(\n (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n const { target } = event\n\n if (target instanceof HTMLTextAreaElement && autosize) {\n const rect = target.getBoundingClientRect()\n\n if (target.scrollHeight > rect.height && tRows < maxRows) {\n setRows(tRows + 1)\n } else if (!target.value || target.value === '') {\n setRows(rows)\n }\n }\n\n if (typeof onChange === 'function') {\n onChange(event)\n }\n },\n [onChange, tRows, maxRows, autosize]\n )\n\n useEffect(() => {\n if (!textarea || !textarea.current) return\n\n const el = textarea.current\n const rect = el.getBoundingClientRect()\n if (el.scrollHeight > rect.height) {\n const lh = parseInt(getComputedStyle(el).lineHeight, 10)\n const numberOfLines = Math.floor(el.scrollHeight / lh)\n if (numberOfLines <= maxRows && numberOfLines > rows) {\n setRows(numberOfLines)\n }\n }\n }, [])\n\n let brandPresetUsed = theme.preset === 'brand'\n if (typeof preset === 'string') brandPresetUsed = preset === 'brand'\n\n return (\n <Styled.Root\n {...configProps}\n ref={textarea}\n className={className}\n style={style}\n onChange={onChangeHandler}\n cols={cols}\n disabled={disabled}\n maxLength={maxLength}\n name={name}\n placeholder={placeholder}\n required={required}\n rows={tRows}\n tabIndex={tabIndex}\n value={value}\n color={color}\n rounded={rounded}\n placeholderColor={placeholderColor}\n fluid={fluid}\n error={error}\n width={width}\n brandPresetUsed={brandPresetUsed}\n />\n )\n}\n\nTextarea.displayName = COMPONENT_NAME\n\nexport { Textarea, COMPONENT_NAME }\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n fontSize: 22,\n paddingTop: 4,\n paddingRight: 8,\n paddingBottom: 4,\n paddingLeft: 16,\n minHeight: 72,\n borderRadius: 15,\n },\n xxl: {\n fontSize: 22,\n paddingTop: 4,\n paddingRight: 8,\n paddingBottom: 4,\n paddingLeft: 16,\n minHeight: 72,\n borderRadius: 15,\n },\n xl: {\n fontSize: 20,\n paddingTop: 4,\n paddingRight: 8,\n paddingBottom: 4,\n paddingLeft: 16,\n minHeight: 64,\n borderRadius: 13,\n },\n l: {\n fontSize: 18,\n paddingTop: 4,\n paddingRight: 8,\n paddingBottom: 4,\n paddingLeft: 16,\n minHeight: 56,\n borderRadius: 12,\n },\n m: {\n fontSize: 16,\n paddingTop: 4,\n paddingRight: 8,\n paddingBottom: 4,\n paddingLeft: 16,\n minHeight: 48,\n borderRadius: 10,\n },\n s: {\n fontSize: 14,\n paddingTop: 4,\n paddingRight: 6,\n paddingBottom: 4,\n paddingLeft: 14,\n minHeight: 40,\n borderRadius: 8,\n },\n xs: {\n fontSize: 12,\n paddingTop: 4,\n paddingRight: 6,\n paddingBottom: 4,\n paddingLeft: 14,\n minHeight: 40,\n borderRadius: 8,\n },\n xxs: {\n fontSize: 12,\n paddingTop: 4,\n paddingRight: 6,\n paddingBottom: 4,\n paddingLeft: 14,\n minHeight: 40,\n borderRadius: 8,\n },\n xxxs: {\n fontSize: 12,\n paddingTop: 4,\n paddingRight: 6,\n paddingBottom: 4,\n paddingLeft: 14,\n minHeight: 40,\n borderRadius: 8,\n },\n}\n","import styled, { css } from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport { Text } from 'components/Text'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { responsiveMargin } from 'mixins/responsive-margin'\nimport type { CSSColor } from 'shared/types'\nimport type { StyledFormInputLabelProps, FormInputLabelPalette } from './types'\n\nconst shouldForwardFormInputLabelProp = createShouldForwardProp(\n (propKey) =>\n ![\n 'primary',\n 'secondary',\n 'active',\n 'error',\n 'success',\n 'disabled',\n 'onColored',\n 'labelPosition',\n 'inline',\n ].includes(propKey)\n)\n\nexport const Label = styled(Text).attrs({ forwardedAs: 'label' })`\n box-sizing: border-box;\n position: relative;\n display: flex;\n flex-grow: 1;\n align-self: stretch;\n cursor: inherit;\n &::after {\n content: '';\n position: absolute;\n bottom: 0;\n right: 0;\n width: 40px;\n height: 100%;\n pointer-events: none;\n opacity: 1;\n background-image: linear-gradient(90deg, transparent, currentColor);\n transition-property: color, opacity;\n }\n`\n\nexport const Caption = styled.span`\n box-sizing: border-box;\n position: absolute;\n left: 0;\n top: 50%;\n width: 100%;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n pointer-events: none;\n transition-property: transform;\n`\n\nconst template = (palette: FormInputLabelPalette) => `\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n border-color: ${palette.borderColor};\n &:hover {\n color: ${palette.colorHover};\n background-color: ${palette.backgroundColorHover};\n border-color: ${palette.borderColorHover};\n }\n &:focus-within {\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n border-color: ${palette.borderColor};\n }\n & > ${Label}::after {\n color: ${palette.backgroundColor};\n }\n`\n\nconst COLOR_SCHEMA = {\n onColored: {\n disabled: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors['bg-disabled-large'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-disabled'],\n backgroundColorHover: props.theme.colors['bg-disabled-large'],\n borderColorHover: props.theme.colors.transparent,\n ...props.palette,\n })}\n `,\n error: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-error-200'],\n borderColor: props.theme.colors['alert-bg-error-500'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: props.theme.colors['alert-bg-error-200'],\n borderColorHover: props.theme.colors['alert-bg-error-500'],\n ...props.palette,\n })}\n `,\n success: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-success-200'],\n borderColor: props.theme.colors['alert-bg-success-500'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: props.theme.colors['alert-bg-success-200'],\n borderColorHover: props.theme.colors['alert-bg-success-500'],\n ...props.palette,\n })}\n `,\n default: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['bg-onmain-primary'],\n borderColor: props.theme.colors['border-onmain-default-large'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-onmain-primary']).darken(4).toString() as CSSColor,\n borderColorHover: props.theme.colors['border-onmain-default-large'],\n ...props.palette,\n })}\n `,\n },\n secondary: {\n disabled: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors['bg-disabled-large'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-disabled'],\n backgroundColorHover: props.theme.colors['bg-disabled-large'],\n borderColorHover: props.theme.colors.transparent,\n ...props.palette,\n })}\n `,\n error: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-error-100'],\n borderColor: props.theme.colors['alert-bg-error-500'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: props.theme.colors['alert-bg-error-100'],\n borderColorHover: props.theme.colors['alert-bg-error-500'],\n ...props.palette,\n })}\n `,\n success: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-success-100'],\n borderColor: props.theme.colors['alert-bg-success-500'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: props.theme.colors['alert-bg-success-100'],\n borderColorHover: props.theme.colors['alert-bg-success-500'],\n ...props.palette,\n })}\n `,\n default: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['bg-onmain-secondary'],\n borderColor: props.theme.colors['border-onmain-default-large'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-onmain-secondary']).darken(4).toString() as CSSColor,\n borderColorHover: props.theme.colors['border-onmain-default-large'],\n ...props.palette,\n })}\n `,\n },\n primary: {\n disabled: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors['bg-disabled-large'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-disabled'],\n backgroundColorHover: props.theme.colors['bg-disabled-large'],\n borderColorHover: props.theme.colors.transparent,\n ...props.palette,\n })}\n `,\n error: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-error-100'],\n borderColor: props.theme.colors['alert-bg-error-500'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: props.theme.colors['alert-bg-error-100'],\n borderColorHover: props.theme.colors['alert-bg-error-500'],\n ...props.palette,\n })}\n `,\n success: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-success-100'],\n borderColor: props.theme.colors['alert-bg-success-500'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: props.theme.colors['alert-bg-success-100'],\n borderColorHover: props.theme.colors['alert-bg-success-500'],\n ...props.palette,\n })}\n `,\n default: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['bg-onmain-primary'],\n borderColor: props.theme.colors['border-onmain-default-large'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-onmain-primary']).darken(4).toString() as CSSColor,\n borderColorHover: props.theme.colors['border-onmain-default-large'],\n ...props.palette,\n })}\n `,\n },\n}\n\nexport const Root = styled.div\n .withConfig<StyledFormInputLabelProps>({\n shouldForwardProp: shouldForwardFormInputLabelProp,\n })\n .attrs<StyledFormInputLabelProps>(<Required<Pick<StyledFormInputLabelProps, 'dynamicSizeDeclaration'>>>{\n dynamicSizeDeclaration: (size, sizeUnits) => ({\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n padding: '0.25em 0.6em 0.25em 1em',\n minHeight: '3em',\n borderRadius: '0.6em',\n }),\n })`\n ${(props) => {\n let transform = props.active ? 'scale(0.7) translateX(-21.5%) translateY(-145%)' : 'translateY(-50%)'\n let opacity = '1'\n let zIndex = 'auto'\n\n if (props.labelPosition === 'top') {\n transform = 'scale(0.7) translateX(-21.5%) translateY(-145%)'\n }\n if (props.labelPosition === 'center') {\n transform = `translateY(-50%)`\n opacity = props.active ? '0' : '1'\n zIndex = props.active ? '-1' : 'auto'\n }\n\n return `\n box-sizing: border-box;\n position: relative;\n isolation: isolate;\n display: ${props.inline ? 'inline-flex' : 'flex'};\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n align-items: center;\n min-width: min-content;\n border: 1px solid transparent;\n transition-property: background-color;\n\n &,\n & > ${Label}::after,\n & > ${Label} > ${Caption} {\n transition-duration: 150ms;\n transition-timing-function: ease;\n }\n\n & > ${Label} > ${Caption} {\n transform: ${transform};\n opacity: ${opacity};\n z-index: ${zIndex};\n }\n\n &:focus-within {\n box-shadow: 0 0 0 2px ${props.theme.colors.white}, 0 0 0 4px ${props.theme.colors['border-focus']};\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n\n &:hover > ${Label}::after,\n &:focus-within > ${Label}::after {\n opacity: 0;\n }\n `\n }}\n ${(props) => {\n let schema = COLOR_SCHEMA.primary\n\n if (props.secondary) schema = COLOR_SCHEMA.secondary\n if (props.onColored) schema = COLOR_SCHEMA.onColored\n\n if (props.disabled) return schema.disabled\n if (props.error) return schema.error\n if (props.success) return schema.success\n\n return schema.default\n }}\n\n ${responsiveSize}\n ${responsiveMargin}\n`\n","import { forwardRef } from 'react'\nimport { Text } from 'components/Text'\nimport { Icon } from 'components/Icon'\nimport { Spacer } from 'components/Spacer'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { SIZES } from './constants'\nimport * as Styled from './style'\nimport type { FormInputLabelProps } from './types'\n\nconst COMPONENT_NAME = 'FormInputLabel'\n\nconst FormInputLabel: React.ForwardRefExoticComponent<FormInputLabelProps> = withMergedProps<\n FormInputLabelProps,\n HTMLDivElement\n>(\n forwardRef((props, ref) => {\n const {\n size = 'm',\n labelPosition = 'dynamic',\n textProps = {},\n iconProps = {},\n icon,\n input,\n label,\n text,\n controls,\n ...restProps\n } = props\n\n return (\n <Styled.Root {...restProps} size={size} labelPosition={labelPosition} ref={ref}>\n {icon && (\n <Spacer display='flex' marginRight={12}>\n <Icon\n as='span'\n color='inherit'\n name={typeof icon === 'string' ? icon : undefined}\n icon={typeof icon !== 'string' ? icon : undefined}\n {...iconProps}\n />\n </Spacer>\n )}\n <Styled.Label size='inherit' color='inherit' {...textProps}>\n {input}\n {label && <Styled.Caption>{label}</Styled.Caption>}\n </Styled.Label>\n {text && (\n <Text\n size='inherit'\n color='inherit'\n whiteSpace='nowrap'\n marginLeft={12}\n marginRight={!controls ? 6 : undefined}\n {...textProps}\n >\n {text}\n </Text>\n )}\n {controls && (\n <Spacer display='flex' marginLeft={4}>\n {controls}\n </Spacer>\n )}\n </Styled.Root>\n )\n }),\n {\n sizes: SIZES,\n displayName: COMPONENT_NAME,\n }\n)\n\nexport { FormInputLabel, COMPONENT_NAME }\n","export const INITIAL_MASK = '99999999999999999999'\n\nexport const DEFAULT_MASK = `+${INITIAL_MASK}`\n\nexport const RUSSIAN_PHONE_WITHOUT_COUNTY_CODE_LENGTH = 10\n\nexport const COUNTRY_DATA: [string, string, string, RegExp][] = [\n ['Россия', '7', '+9 (999) 999-99-99', /^(\\+?7|8)([0-9()\\-\\s]{8,20})$/],\n ['Россия', '8', '+9 (999) 999-99-99', /^(\\+?7|8)([0-9()\\-\\s]{8,20})$/],\n ['Украина', '380', '+999 (99) 999-99-99', /^(\\+?380)([0-9()\\-\\s]{8,20})$/],\n ['Беларусь', '375', '+999 (999) 99-99-99', /^(\\+?375)([0-9()\\-\\s]{8,20})$/],\n ['Узбекистан', '998', '+999 (99) 999-99-99', /^(\\+?998)([0-9()\\-\\s]{8,20})$/],\n ['Молдова', '373', '+999 (99) 99-99-99', /^(\\+?373)([0-9()\\-\\s]{8,20})$/],\n ['Азербайджан', '994', '+999 (99) 999-99-99', /^(\\+?994)([0-9()\\-\\s]{8,20})$/],\n ['Киргизия', '996', '+999 (999) 99-99-99', /^(\\+?996)([0-9()\\-\\s]{8,20})$/],\n ['Болгария', '359', '+999 (999) 99-99-99', /^(\\+?359)([0-9()\\-\\s]{8,20})$/],\n ['Германия', '49', '+99 (999) 99999999', /^(\\+?49)([0-9()\\-\\s]{8,20})$/],\n ['США', '1', '+9 (999) 999-99-99', /^(\\+?1)([0-9()\\-\\s]{8,20})$/],\n ['Армения', '374', '+999 (99) 99-99-99', /^(\\+?374)([0-9()\\-\\s]{8,20})$/],\n ['Израиль', '972', '+999 (99) 999-99-99', /^(\\+?972)([0-9()\\-\\s]{8,20})$/],\n ['Испания', '34', '+99 (999) 99-99-99', /^(\\+?34)([0-9()\\-\\s]{8,20})$/],\n ['Латвия', '371', '+999 (99) 999-999', /^(\\+?371)([0-9()\\-\\s]{8,20})$/],\n ['Бахрейн', '973', '+999 (99) 999-999', /^(\\+?973)([0-9()\\-\\s]{8,20})$/],\n ['Турция', '90', '+99 (999) 999-9999', /^(\\+?90)([0-9()\\-\\s]{8,20})$/],\n ['Литва', '370', '+999 (999) 99999', /^(\\+?370)([0-9()\\-\\s]{8,20})$/],\n ['Великобритания', '44', '+99 (99) 9999-9999', /^(\\+?44)([0-9()\\-\\s]{8,20})$/],\n ['Индия', '91', '+99 (99) 99-999999', /^(\\+?91)([0-9()\\-\\s]{8,20})$/],\n ['Черногория', '382', '+999 (99) 999-999', /^(\\+?382)([0-9()\\-\\s]{8,20})$/],\n ['Мексика', '52', '+99 (999) 999-99-99', /^(\\+?52)([0-9()\\-\\s]{8,20})$/],\n ['Польша', '48', '+99 999999999', /^(\\+?48)([0-9()\\-\\s]{8,20})$/],\n ['Италия', '39', '+99 (999) 999-99-99', /^(\\+?39)([0-9()\\-\\s]{8,20})$/],\n ['Таиланд', '66', '+99 999-999-999', /^(\\+?66)([0-9()\\-\\s]{8,20})$/],\n ['Грузия', '995', '+999 (999) 999-999', /^(\\+?995)([0-9()\\-\\s]{8,20})$/],\n ['Шри-Ланка', '94', '+99 (99) 9999999', /^(\\+?94)([0-9()\\-\\s]{8,20})$/],\n ['Китай', '86', '+99 (999) 9999-9999', /^(\\+?86)([0-9()\\-\\s]{8,20})$/],\n ['Кипр', '357', '+999 (99) 999999', /^(\\+?357)([0-9()\\-\\s]{8,20})$/],\n ['ОАЭ', '971', '+999 99-999-9999', /^(\\+?971)([0-9()\\-\\s]{8,20})$/],\n ['Франция', '33', '+33(999)999-999', /^(\\+?33)([0-9()\\-\\s]{8,20})$/],\n ['Германия', '49', '+99(9999)999-9999', /^(\\+?49)([0-9()\\-\\s]{8,20})$/],\n ['Япония', '81', '+99 99-9999-9999', /^(\\+?81)([0-9()\\-\\s]{8,20})$/],\n ['Австрия', '43', '+99(999)999-99999', /^(\\+?43)([0-9()\\-\\s]{8,20})$/],\n ['Южная Корея', '82', '+99(999)999-9999', /^(\\+?82)([0-9()\\-\\s]{8,20})$/],\n]\n\nexport const REGEXPS = {\n FILLED: /^\\+\\d.*$/,\n FROM_8: /^\\+?8(.*)$/,\n FROM_9: /^\\+?9(.*)$/,\n NOT_NUMBERS: /\\D/gim,\n}\n","/* eslint-disable no-use-before-define */\nimport { PureComponent } from 'react'\nimport type { InputState } from 'react-input-mask'\nimport { Input } from '../Input/Input'\nimport type { InputProps } from '../Input'\nimport {\n COUNTRY_DATA,\n DEFAULT_MASK,\n INITIAL_MASK,\n REGEXPS,\n RUSSIAN_PHONE_WITHOUT_COUNTY_CODE_LENGTH,\n} from './constants'\n\nconst onlyNumbers = (value = ''): string => value.replace(REGEXPS.NOT_NUMBERS, '')\n\nexport interface InputPhoneProps extends InputProps {\n /**\n * Settings for different country codes\n */\n countryData?: string[][]\n /**\n * Default field mask that is set when none of the countryData prop matches\n */\n defaultMask?: string\n /**\n * The default field mask when the phone field is empty is required to enable autocomplete in\n * the browser\n */\n initialMask?: string\n /** If event should return stripped phone value (not for redux forms) */\n stripValue?: boolean\n}\n\ninterface InputPhoneState {\n mask: string\n regexp?: RegExp | null\n}\n\n/**\n * Расширен:\n * - `InputProps`\n */\nexport class InputPhone extends PureComponent<typeof InputPhone.defaultProps & InputPhoneProps, InputPhoneState> {\n static displayName = 'Input.Phone'\n static defaultProps = {\n countryData: COUNTRY_DATA,\n defaultMask: DEFAULT_MASK,\n initialMask: INITIAL_MASK,\n placeholder: '+9 (999) 999-99-99',\n rounded: true,\n type: 'text',\n color: 'mineShaft',\n mask: '',\n placeholderColor: 'silver',\n }\n\n autocorrectOf8: boolean\n autocorrectOf9: boolean\n\n constructor(props: typeof InputPhone.defaultProps & InputPhoneProps) {\n super(props)\n\n this.autocorrectOf8 = true\n this.autocorrectOf9 = true\n\n const { mask } = this.getUpdates(props.value || '')\n\n this.state = { mask, regexp: null }\n }\n\n componentDidUpdate(nextProps: InputPhoneProps) {\n const { value } = this.props\n\n if (value !== nextProps.value) {\n this.change(value)\n }\n }\n\n getUpdates = (\n value: InputPhoneProps['value'],\n prevValue: InputPhoneProps['value'] = undefined\n ): {\n mask: string\n numbers: string\n startsFrom8: boolean\n startsFrom9: boolean\n regexp: RegExp | null\n } => {\n const { countryData, defaultMask, initialMask } = this.props\n const numbers = onlyNumbers(value as string)\n\n let mask = initialMask\n let regexp = null\n let startsFrom8 = false\n let startsFrom9 = false\n\n if (!numbers)\n return {\n mask,\n numbers,\n startsFrom8,\n startsFrom9,\n regexp,\n }\n\n let isRussian = false\n\n for (let i = 0; i < countryData.length; i++) {\n if (numbers.startsWith(countryData[i][1])) {\n ;[, , mask, regexp] = countryData[i]\n isRussian = i === 0 || i === 1\n }\n }\n\n startsFrom8 = isRussian && REGEXPS.FROM_8.test(numbers) && this.autocorrectOf8\n startsFrom9 =\n (!mask || (numbers.length === RUSSIAN_PHONE_WITHOUT_COUNTY_CODE_LENGTH && prevValue === '')) &&\n this.autocorrectOf9 &&\n REGEXPS.FROM_9.test(numbers)\n\n if (startsFrom8) {\n // RUSSIAN_MASK\n mask = COUNTRY_DATA[0][2]\n\n this.autocorrectOf8 = false\n }\n\n if (startsFrom9) {\n // RUSSIAN_MASK\n mask = COUNTRY_DATA[0][2]\n\n this.autocorrectOf9 = false\n }\n\n if (!mask) {\n mask = defaultMask\n }\n\n return {\n mask,\n numbers,\n startsFrom8,\n startsFrom9,\n regexp,\n }\n }\n\n change = (phone: InputPhoneProps['value']) => {\n const { mask } = this.getUpdates(phone)\n\n this.setState({ mask })\n }\n\n handleChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n e.persist()\n\n const { onChange, stripValue } = this.props\n\n if (onChange) {\n const _e = e\n if (stripValue) _e.target.value = onlyNumbers(e.target.value)\n onChange(_e)\n }\n }\n\n beforeMaskedValueChange = (newState: InputState, oldState: InputState) => {\n const { mask, numbers, startsFrom8, startsFrom9, regexp } = this.getUpdates(newState.value, oldState.value)\n\n this.setState({ mask, regexp })\n\n /**\n * For the correct caret position, when the user enters 9 in the phone field and it's replaced\n * by '+7 (9'\n */\n if (startsFrom9) {\n return {\n selection: numbers.length === 1 ? { start: 5, end: 5 } : newState.selection,\n value: newState.value.replace(REGEXPS.FROM_9, '+79$1'),\n }\n }\n\n if (startsFrom8) {\n return { selection: { start: 2, end: 2 }, value: newState.value.replace(REGEXPS.FROM_8, '+7$1') }\n }\n\n if (REGEXPS.FILLED.test(oldState.value) && numbers.length === 1) {\n return { selection: { start: 2, end: 2 }, value: newState.value }\n }\n\n if (!REGEXPS.FILLED.test(oldState.value) && REGEXPS.FILLED.test(newState.value)) {\n return {\n ...newState,\n selection: newState.selection ? { start: newState.selection.start + 1, end: newState.selection.end + 1 } : null,\n }\n }\n\n return newState\n }\n\n render() {\n const {\n /* eslint-disable no-unused-vars, @typescript-eslint/no-unused-vars */\n countryData,\n defaultMask,\n initialMask,\n stripValue,\n /* eslint-enable no-unused-vars, @typescript-eslint/no-unused-vars */\n ...props\n } = this.props\n const { mask, regexp } = this.state\n\n return (\n <Input\n {...props}\n beforeMaskedValueChange={this.beforeMaskedValueChange}\n mask={mask}\n data-regexp={regexp instanceof RegExp ? regexp.toString() : undefined}\n onChange={this.handleChange}\n />\n )\n }\n}\n","import { forwardRef, useState, useImperativeHandle, useRef } from 'react'\nimport { useTheme } from 'styled-components'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { FormInputLabel, SIZES } from 'components/FormInputLabel'\nimport { Icon } from 'components/Icon'\nimport { InputPhone } from 'components/Input.Phone'\nimport { Spacer } from 'components/Spacer'\nimport * as Styled from './style'\nimport type { InputProps } from './types'\n\nconst COMPONENT_NAME = 'Input'\n\n/**\n *\n * Component accepts all \\<input\\> attributes and \"react-input-mask\" v2.0.4 props.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to \\<input\\>.\n *\n * See full [InputProps](https://github.com/foxford/ui/blob/master/src/components/Input/types.ts)\n */\nconst Input: React.ForwardRefExoticComponent<InputProps> & { Phone: typeof InputPhone } = Object.assign(\n withMergedProps<InputProps, HTMLInputElement>(\n forwardRef((props, forwardedRef) => {\n const theme = useTheme()\n\n const {\n size = 'm',\n mask = '',\n rounded = true,\n color = 'mineShaft',\n placeholderColor = 'silver',\n width = theme.defaultInputControlsWidth,\n type = 'text',\n labelPosition = 'dynamic',\n textProps = {},\n iconProps = {},\n controls = {},\n preset,\n className,\n style,\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n sizeUnits,\n sizes,\n margin,\n marginXXS,\n marginXS,\n marginS,\n marginM,\n marginL,\n marginXL,\n marginTop,\n marginTopXXS,\n marginTopXS,\n marginTopS,\n marginTopM,\n marginTopL,\n marginTopXL,\n marginRight,\n marginRightXXS,\n marginRightXS,\n marginRightS,\n marginRightM,\n marginRightL,\n marginRightXL,\n marginBottom,\n marginBottomXXS,\n marginBottomXS,\n marginBottomS,\n marginBottomM,\n marginBottomL,\n marginBottomXL,\n marginLeft,\n marginLeftXXS,\n marginLeftXS,\n marginLeftS,\n marginLeftM,\n marginLeftL,\n marginLeftXL,\n marginUnits,\n palette,\n widthXXS,\n widthXS,\n widthS,\n widthM,\n widthL,\n widthXL,\n error,\n success,\n label,\n icon,\n text,\n primary,\n secondary,\n onColored,\n fluid,\n disabled,\n inline,\n inputRef,\n ...inputProps\n } = props\n\n const {\n icon: additionalControlIcon,\n iconProps: additionalControlIconProps = {},\n buttonProps: additionalControlButtonProps = {},\n } = controls.additional ?? {}\n\n const {\n icon: numberControlIcon,\n iconProps: numberControlIconProps = {},\n buttonProps: numberControlButtonProps = [],\n } = controls.number ?? {}\n\n const [minus, plus] = Array.isArray(numberControlIcon) ? numberControlIcon : [numberControlIcon]\n\n const minusButtonProps =\n (Array.isArray(numberControlButtonProps) ? numberControlButtonProps[0] : numberControlButtonProps) ?? {}\n\n const plusButtonProps = (Array.isArray(numberControlButtonProps) ? numberControlButtonProps[1] : {}) ?? {}\n\n const ref = useRef<HTMLInputElement | null>(null)\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(forwardedRef, () => ref.current, [])\n\n const hasInitValue =\n typeof inputProps.value === 'string' ||\n typeof inputProps.value === 'number' ||\n typeof inputProps.defaultValue === 'string' ||\n typeof inputProps.defaultValue === 'number'\n\n const [active, setActive] = useState(hasInitValue)\n const [hasValue, setHasValue] = useState(hasInitValue)\n\n const [minusDisabled, setMinusDisabled] = useState(() => {\n if (type !== 'number' || inputProps.min === undefined) return false\n\n const { value = Infinity, defaultValue = Infinity } = inputProps\n\n const initValue = typeof value === 'number' ? value : parseFloat(value)\n const initDefaultValue = typeof defaultValue === 'number' ? defaultValue : parseFloat(defaultValue)\n const minValue = typeof inputProps.min === 'number' ? inputProps.min : parseFloat(inputProps.min)\n\n return Math.min(initValue, initDefaultValue) <= minValue\n })\n\n const [plusDisabled, setPlusDisabled] = useState(() => {\n if (type !== 'number' || inputProps.max === undefined) return false\n\n const { value = -Infinity, defaultValue = -Infinity } = inputProps\n\n const initValue = typeof value === 'number' ? value : parseFloat(value)\n const initDefaultValue = typeof defaultValue === 'number' ? defaultValue : parseFloat(defaultValue)\n const maxValue = typeof inputProps.max === 'number' ? inputProps.max : parseFloat(inputProps.max)\n\n return Math.max(initValue, initDefaultValue) >= maxValue\n })\n\n if (preset !== 'brand') {\n return (\n <Styled.Root\n {...inputProps}\n inputRef={\n inputRef ??\n ((input) => {\n ref.current = input\n })\n }\n className={className}\n style={style}\n size={typeof size === 'number' ? size : undefined}\n mask={mask}\n rounded={rounded}\n color={color}\n placeholderColor={placeholderColor}\n width={width}\n widthXXS={widthXXS}\n widthXS={widthXS}\n widthS={widthS}\n widthM={widthM}\n widthL={widthL}\n widthXL={widthXL}\n error={error}\n type={type}\n fluid={fluid}\n disabled={disabled}\n />\n )\n }\n\n return (\n <FormInputLabel\n className={className}\n style={style}\n size={size}\n sizeXXS={sizeXXS}\n sizeXS={sizeXS}\n sizeS={sizeS}\n sizeM={sizeM}\n sizeL={sizeL}\n sizeXL={sizeXL}\n sizeUnits={sizeUnits}\n sizes={sizes}\n margin={margin}\n marginXXS={marginXXS}\n marginXS={marginXS}\n marginS={marginS}\n marginM={marginM}\n marginL={marginL}\n marginXL={marginXL}\n marginTop={marginTop}\n marginTopXXS={marginTopXXS}\n marginTopXS={marginTopXS}\n marginTopS={marginTopS}\n marginTopM={marginTopM}\n marginTopL={marginTopL}\n marginTopXL={marginTopXL}\n marginRight={marginRight}\n marginRightXXS={marginRightXXS}\n marginRightXS={marginRightXS}\n marginRightS={marginRightS}\n marginRightM={marginRightM}\n marginRightL={marginRightL}\n marginRightXL={marginRightXL}\n marginBottom={marginBottom}\n marginBottomXXS={marginBottomXXS}\n marginBottomXS={marginBottomXS}\n marginBottomS={marginBottomS}\n marginBottomM={marginBottomM}\n marginBottomL={marginBottomL}\n marginBottomXL={marginBottomXL}\n marginLeft={marginLeft}\n marginLeftXXS={marginLeftXXS}\n marginLeftXS={marginLeftXS}\n marginLeftS={marginLeftS}\n marginLeftM={marginLeftM}\n marginLeftL={marginLeftL}\n marginLeftXL={marginLeftXL}\n marginUnits={marginUnits}\n palette={palette}\n error={error}\n success={success}\n label={label}\n labelPosition={labelPosition}\n icon={icon}\n text={text}\n primary={primary}\n secondary={secondary}\n onColored={onColored}\n disabled={disabled}\n inline={inline}\n active={active}\n textProps={textProps}\n iconProps={{\n size: 24,\n color: disabled ? 'content-disabled' : 'content-onmain-tertiary',\n ...iconProps,\n }}\n onClick={() => {\n if (ref.current) {\n ref.current.focus()\n }\n }}\n onFocus={(evt) => {\n if (evt.target !== evt.currentTarget) {\n setActive(true)\n }\n }}\n onBlur={(evt) => {\n if (evt.target !== evt.currentTarget && !hasValue) {\n setActive(false)\n }\n }}\n input={\n <Styled.Input\n {...inputProps}\n inputRef={(input) => {\n ref.current = input\n }}\n mask={mask}\n palette={palette}\n type={type}\n label={label}\n labelPosition={labelPosition}\n disabled={disabled}\n active={active}\n onChange={(evt) => {\n if (inputProps.onChange) {\n inputProps.onChange(evt)\n }\n\n if (type === 'number') {\n const currentValue = parseFloat(evt.currentTarget.value)\n\n const minValueReached = currentValue <= parseFloat(evt.currentTarget.min)\n const maxValueReached = currentValue >= parseFloat(evt.currentTarget.max)\n\n setMinusDisabled(minValueReached)\n setPlusDisabled(maxValueReached)\n\n if (minValueReached || maxValueReached) {\n evt.currentTarget.focus()\n }\n }\n }}\n onBlur={(evt) => {\n evt.stopPropagation()\n if (inputProps.onBlur) {\n inputProps.onBlur(evt)\n }\n\n setHasValue(Boolean(evt.currentTarget.value))\n setActive(Boolean(evt.currentTarget.value))\n }}\n />\n }\n controls={\n additionalControlIcon || type === 'number' ? (\n <>\n {additionalControlIcon && (\n <Styled.InputControl\n {...additionalControlButtonProps}\n type='button'\n palette={palette}\n disabled={disabled}\n onClick={(evt) => {\n evt.stopPropagation()\n if (additionalControlButtonProps.onClick) {\n additionalControlButtonProps.onClick(evt)\n }\n }}\n >\n <Icon\n as='span'\n size={24}\n color='inherit'\n name={typeof additionalControlIcon === 'string' ? additionalControlIcon : undefined}\n icon={typeof additionalControlIcon !== 'string' ? additionalControlIcon : undefined}\n {...additionalControlIconProps}\n />\n </Styled.InputControl>\n )}\n {type === 'number' && (\n <Spacer display='flex' marginLeft={4}>\n <Styled.InputControl\n {...minusButtonProps}\n type='button'\n palette={palette}\n disabled={disabled || minusDisabled}\n onClick={(evt) => {\n evt.stopPropagation()\n if (minusButtonProps.onClick) {\n minusButtonProps.onClick(evt)\n }\n\n try {\n if (ref.current) {\n const prev = ref.current.value\n ref.current.stepDown()\n\n const decremented = ref.current.value\n if (prev !== decremented) {\n const event = new Event('input', { bubbles: true })\n ref.current.dispatchEvent(event)\n }\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error(err)\n }\n }}\n >\n {minus === undefined ? (\n <Icon\n as='span'\n size={24}\n color='inherit'\n name='minus'\n preset='brand'\n {...numberControlIconProps}\n />\n ) : (\n <Icon\n as='span'\n size={24}\n color='inherit'\n name={typeof minus === 'string' ? minus : undefined}\n icon={typeof minus !== 'string' ? minus : undefined}\n {...numberControlIconProps}\n />\n )}\n </Styled.InputControl>\n <Styled.InputControl\n {...plusButtonProps}\n type='button'\n palette={palette}\n disabled={disabled || plusDisabled}\n onClick={(evt) => {\n evt.stopPropagation()\n if (plusButtonProps.onClick) {\n plusButtonProps.onClick(evt)\n }\n\n try {\n if (ref.current) {\n const prev = ref.current.value\n ref.current.stepUp()\n\n const incremented = ref.current.value\n if (prev !== incremented) {\n const event = new Event('input', { bubbles: true })\n ref.current.dispatchEvent(event)\n }\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error(err)\n }\n }}\n >\n {plus === undefined ? (\n <Icon\n as='span'\n size={24}\n color='inherit'\n name='plus'\n preset='brand'\n {...numberControlIconProps}\n />\n ) : (\n <Icon\n as='span'\n size={24}\n color='inherit'\n name={typeof plus === 'string' ? plus : undefined}\n icon={typeof plus !== 'string' ? plus : undefined}\n {...numberControlIconProps}\n />\n )}\n </Styled.InputControl>\n </Spacer>\n )}\n </>\n ) : undefined\n }\n />\n )\n }),\n {\n sizes: SIZES,\n displayName: COMPONENT_NAME,\n }\n ),\n {\n Phone: InputPhone,\n }\n)\n\nexport { Input, COMPONENT_NAME }\n","import styled, { css } from 'styled-components'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport type { StyledInputRadioProps, InputRadioPalette } from './types'\n\nconst shouldForwardInputRadioProp = createShouldForwardProp(\n (propKey) => !['inline', 'error', 'success', 'onColored', 'disabled'].includes(propKey)\n)\n\nexport const Input = styled.input`\n box-sizing: border-box;\n position: absolute;\n top: 0;\n left: 0;\n margin: 0;\n border: none;\n opacity: 0;\n width: 100%;\n height: 100%;\n z-index: 1;\n &:focus {\n outline: none;\n }\n`\n\nexport const InputMask = styled.span`\n box-sizing: border-box;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border-radius: inherit;\n border: 1px solid transparent;\n transition-property: border-color;\n transition-duration: 150ms;\n transition-timing-function: ease-in;\n &::before {\n content: '';\n position: absolute;\n width: 40%;\n height: 40%;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n border-radius: 50%;\n opacity: 0;\n }\n`\n\nconst template = (palette: InputRadioPalette) => `\n & > ${InputMask} {\n background-color: ${palette.backgroundColor};\n border-color: ${palette.borderColor};\n }\n & > ${InputMask}::before {\n background-color: ${palette.color};\n }\n &:hover > ${InputMask} {\n background-color: ${palette.backgroundColorHover};\n border-color: ${palette.borderColorHover};\n }\n &:hover > ${InputMask}::before {\n background-color: ${palette.colorHover};\n }\n & > ${Input}:checked:not(:disabled) + ${InputMask} {\n background-color: ${palette.backgroundColorChecked};\n border-color: ${palette.borderColorChecked};\n }\n & > ${Input}:checked:not(:disabled) + ${InputMask}::before {\n background-color: ${palette.colorChecked};\n }\n & > ${Input}:disabled:not(:checked) + ${InputMask} {\n background-color: ${palette.backgroundColorDisabled};\n border-color: ${palette.borderColorDisabled};\n }\n & > ${Input}:disabled:not(:checked) + ${InputMask}::before {\n background-color: ${palette.colorDisabled};\n }\n & > ${Input}:disabled:checked + ${InputMask} {\n background-color: ${palette.backgroundColorDisabledChecked};\n border-color: ${palette.borderColorDisabledChecked};\n }\n & > ${Input}:disabled:checked + ${InputMask}::before {\n background-color: ${palette.colorDisabledChecked};\n }\n`\n\nconst COLOR_SCHEMA = {\n default: {\n error: css<StyledInputRadioProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['bg-onmain-primary'],\n borderColor: props.theme.colors['alert-bg-error-500'],\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.theme.colors['bg-onmain-primary'],\n borderColorHover: props.theme.colors['alert-bg-error-500'],\n colorChecked: props.theme.colors['content-oncolor-primary'],\n backgroundColorChecked: props.theme.colors['alert-bg-error-500'],\n borderColorChecked: props.theme.colors['alert-bg-error-500'],\n colorDisabled: props.theme.colors['bg-onmain-secondary'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors['border-disabled'],\n colorDisabledChecked: props.theme.colors['bg-onmain-secondary'],\n backgroundColorDisabledChecked: props.theme.colors['bg-disabled-active'],\n borderColorDisabledChecked: props.theme.colors['bg-disabled-active'],\n ...props.palette,\n })}\n `,\n success: css<StyledInputRadioProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['bg-onmain-primary'],\n borderColor: props.theme.colors['alert-bg-success-500'],\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.theme.colors['bg-onmain-primary'],\n borderColorHover: props.theme.colors['alert-bg-success-500'],\n colorChecked: props.theme.colors['content-oncolor-primary'],\n backgroundColorChecked: props.theme.colors['alert-bg-success-500'],\n borderColorChecked: props.theme.colors['alert-bg-success-500'],\n colorDisabled: props.theme.colors['bg-onmain-secondary'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors['border-disabled'],\n colorDisabledChecked: props.theme.colors['bg-onmain-secondary'],\n backgroundColorDisabledChecked: props.theme.colors['bg-disabled-active'],\n borderColorDisabledChecked: props.theme.colors['bg-disabled-active'],\n ...props.palette,\n })}\n `,\n default: css<StyledInputRadioProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['bg-onmain-primary'],\n borderColor: props.theme.colors['border-onmain-default-small'],\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.theme.colors['bg-onmain-primary'],\n borderColorHover: props.theme.colors['border-brand-primary'],\n colorChecked: props.theme.colors['content-oncolor-primary'],\n backgroundColorChecked: props.theme.colors['bg-brand-primary-basic'],\n borderColorChecked: props.theme.colors['bg-brand-primary-basic'],\n colorDisabled: props.theme.colors['bg-onmain-secondary'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-large'],\n borderColorDisabled: props.theme.colors['border-disabled'],\n colorDisabledChecked: props.theme.colors['bg-onmain-secondary'],\n backgroundColorDisabledChecked: props.theme.colors['bg-disabled-active'],\n borderColorDisabledChecked: props.theme.colors['bg-disabled-active'],\n ...props.palette,\n })}\n `,\n },\n onColored: {\n error: css<StyledInputRadioProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['bg-onmain-secondary'],\n borderColor: props.theme.colors['alert-error'],\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.theme.colors['bg-onmain-secondary'],\n borderColorHover: props.theme.colors['alert-error'],\n colorChecked: props.theme.colors['content-oncolor-primary'],\n backgroundColorChecked: props.theme.colors['alert-bg-error-500'],\n borderColorChecked: props.theme.colors['alert-bg-error-500'],\n colorDisabled: props.theme.colors['bg-onmain-secondary'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-small'],\n borderColorDisabled: props.theme.colors['border-disabled'],\n colorDisabledChecked: props.theme.colors['bg-onmain-secondary'],\n backgroundColorDisabledChecked: props.theme.colors['bg-disabled-active'],\n borderColorDisabledChecked: props.theme.colors['bg-disabled-active'],\n ...props.palette,\n })}\n `,\n success: css<StyledInputRadioProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['bg-onmain-secondary'],\n borderColor: props.theme.colors['alert-success'],\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.theme.colors['bg-onmain-secondary'],\n borderColorHover: props.theme.colors['alert-success'],\n colorChecked: props.theme.colors['content-oncolor-primary'],\n backgroundColorChecked: props.theme.colors['alert-bg-success-500'],\n borderColorChecked: props.theme.colors['alert-bg-success-500'],\n colorDisabled: props.theme.colors['bg-onmain-secondary'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-small'],\n borderColorDisabled: props.theme.colors['border-disabled'],\n colorDisabledChecked: props.theme.colors['bg-onmain-secondary'],\n backgroundColorDisabledChecked: props.theme.colors['bg-disabled-active'],\n borderColorDisabledChecked: props.theme.colors['bg-disabled-active'],\n ...props.palette,\n })}\n `,\n default: css<StyledInputRadioProps>`\n ${(props) =>\n template({\n color: props.theme.colors['bg-brand-primary-basic'],\n backgroundColor: props.theme.colors['bg-onmain-primary'],\n borderColor: props.theme.colors['border-onmain-default-small'],\n colorHover: props.theme.colors['bg-brand-primary-basic'],\n backgroundColorHover: props.theme.colors['bg-onmain-primary'],\n borderColorHover: props.theme.colors['border-brand-primary'],\n colorChecked: props.theme.colors['bg-brand-primary-basic'],\n backgroundColorChecked: props.theme.colors['bg-oncolor-primary'],\n borderColorChecked: props.theme.colors['bg-oncolor-primary'],\n colorDisabled: props.theme.colors['bg-onmain-secondary'],\n backgroundColorDisabled: props.theme.colors['bg-disabled-small'],\n borderColorDisabled: props.theme.colors['border-disabled'],\n colorDisabledChecked: props.theme.colors['bg-onmain-secondary'],\n backgroundColorDisabledChecked: props.theme.colors['bg-disabled-active'],\n borderColorDisabledChecked: props.theme.colors['bg-disabled-active'],\n ...props.palette,\n })}\n `,\n },\n}\n\nexport const Root = styled.span\n .withConfig<StyledInputRadioProps>({\n shouldForwardProp: shouldForwardInputRadioProp,\n })\n .attrs(<Required<Pick<StyledInputRadioProps, 'dynamicSizeDeclaration'>>>{\n dynamicSizeDeclaration: (size, sizeUnits) => {\n return {\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n height: '1em',\n width: '1em',\n }\n },\n })`\n ${(props) => `\n box-sizing: border-box;\n isolation: isolate;\n position: relative;\n display: ${props.inline ? 'inline-flex' : 'flex'};\n border-radius: 50%;\n flex-shrink: 0;\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n & > ${Input} {\n cursor: inherit;\n }\n & > ${Input}:checked + ${InputMask}::before {\n opacity: 1;\n }\n & > ${Input}:focus-visible + ${InputMask} {\n box-shadow: 0 0 0 2px ${props.theme.colors.white}, 0 0 0 4px ${props.theme.colors['border-focus']};\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n `}\n ${(props) => {\n const schema = props.onColored ? COLOR_SCHEMA.onColored : COLOR_SCHEMA.default\n\n if (props.error) return schema.error\n if (props.success) return schema.success\n\n return schema.default\n }}\n\n ${responsiveSize}\n`\n","import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { SIZES } from './constants'\nimport * as Styled from './style'\nimport type { InputRadioProps } from './types'\n\nconst COMPONENT_NAME = 'InputRadio'\n\n/**\n *\n * Component accepts all \\<input\\> attributes.\n *\n * Responsive \"size\" props are supported.\n *\n * Exposed \"ref\" attached to \\<input\\>.\n *\n * See full [InputRadioProps](https://github.com/foxford/ui/blob/master/src/components/InputRadio/types.ts)\n *\n * @visibleName Radio\n */\nconst InputRadio: React.ForwardRefExoticComponent<InputRadioProps> = withMergedProps<InputRadioProps, HTMLInputElement>(\n forwardRef(\n (\n {\n size = 'm',\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n sizes,\n sizeUnits,\n inline,\n error,\n success,\n onColored,\n palette,\n style,\n className,\n disabled,\n ...inputProps\n },\n ref\n ) => {\n return (\n <Styled.Root\n size={size}\n sizeXXS={sizeXXS}\n sizeXS={sizeXS}\n sizeS={sizeS}\n sizeM={sizeM}\n sizeL={sizeL}\n sizeXL={sizeXL}\n sizes={sizes}\n sizeUnits={sizeUnits}\n inline={inline}\n error={error}\n success={success}\n onColored={onColored}\n palette={palette}\n style={style}\n className={className}\n disabled={disabled}\n >\n <Styled.Input {...inputProps} disabled={disabled} type='radio' ref={ref} />\n <Styled.InputMask />\n </Styled.Root>\n )\n }\n ),\n {\n displayName: COMPONENT_NAME,\n sizes: SIZES,\n }\n)\n\nexport { InputRadio, COMPONENT_NAME }\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n width: 40,\n height: 40,\n },\n xxl: {\n width: 36,\n height: 36,\n },\n xl: {\n width: 32,\n height: 32,\n },\n l: {\n width: 28,\n height: 28,\n },\n m: {\n width: 24,\n height: 24,\n },\n s: {\n width: 20,\n height: 20,\n },\n xs: {\n width: 18,\n height: 18,\n },\n xxs: {\n width: 16,\n height: 16,\n },\n xxxs: {\n width: 14,\n height: 14,\n },\n}\n","import styled, { css } from 'styled-components'\nimport { screenMaxS } from 'mixins/screen'\nimport { responsiveProperty } from 'mixins/responsive-property'\nimport { display } from 'mixins/display'\nimport { RadioGroupProps } from './Group'\nimport { RadioProps } from './Radio'\n\nconst sizeRadio = (size = 14) => css`\n font-size: ${size}px;\n svg {\n width: ${size}px;\n height: ${size}px;\n }\n`\n\nconst disabled = css`\n cursor: not-allowed;\n color: #d4d4d4;\n svg {\n circle:nth-child(1) {\n stroke: #d4d4d4;\n }\n circle:nth-child(2) {\n fill: #d4d4d4;\n }\n }\n & > span {\n cursor: not-allowed;\n }\n`\n\nconst error = css`\n svg {\n circle {\n fill: #ffeef0;\n stroke: #ffa3a3;\n }\n circle:nth-child(2) {\n fill: #ffa3a3;\n }\n }\n`\n\nexport const Root = styled.label.withConfig<RadioProps>({\n shouldForwardProp: (prop) => ['children', 'htmlFor'].includes(prop),\n})`\n align-items: baseline;\n user-select: none;\n cursor: pointer;\n width: auto;\n svg {\n position: relative;\n top: 2px;\n flex-shrink: 0;\n circle:nth-child(2) {\n opacity: 0;\n transition: all 0.2s ease;\n }\n }\n & + & {\n margin-left: 15px;\n }\n input {\n display: none;\n appearance: none;\n &:checked + svg {\n circle:nth-child(2) {\n opacity: 1;\n transform: scale(1);\n }\n ${(props) =>\n !props.error\n ? css`\n circle:not(:disabled) {\n stroke: #48a1e6;\n }\n circle:not(:disabled):last-child {\n fill: #48a1e6;\n }\n `\n : null}\n }\n }\n > span {\n margin-left: 10px;\n cursor: pointer;\n }\n ${(props) => (props.size === 'small' ? sizeRadio(14) : null)}\n ${(props) => (props.size === 'medium' ? sizeRadio(16) : null)}\n ${(props) => (props.size === 'large' ? sizeRadio(18) : null)}\n ${(props) => (props.disabled ? disabled : null)}\n ${(props) => (props.error ? error : null)}\n ${(props) => (props.display ? display(props.display) : null)}\n ${(props) =>\n responsiveProperty(\n 'width',\n props.fluid && props.width !== 'auto' && !Array.isArray(props.width) ? 'max-width' : 'width'\n )}\n ${(props) =>\n props.fluid\n ? css`\n width: 100%;\n `\n : null}\n`\n\nexport const Group = styled.div.withConfig<RadioGroupProps>({\n shouldForwardProp: (prop) => prop !== 'inline',\n})`\n display: flex;\n flex-direction: column;\n line-height: normal;\n > ${Root} {\n margin-left: 0;\n &:not(:first-child) {\n margin-top: 15px;\n }\n }\n ${(props) =>\n props.inline\n ? css`\n flex-direction: row;\n &&& > ${Root} {\n margin-top: 0;\n }\n > ${Root} + ${Root} {\n margin-left: 15px;\n }\n ${screenMaxS()`\n flex-direction: column;\n > &{Root} {\n margin-top: 0;\n }\n > ${Root} + ${Root} {\n margin-left: 0;\n margin-top: 15px;\n }\n `}\n `\n : null}\n`\n","import cx from 'clsx'\nimport { useTheme } from 'styled-components'\nimport { ResponsiveProperty } from 'mixins/responsive-property'\nimport { DisplayProperty } from 'mixins/display'\nimport { useClassname } from 'hooks/useClassname'\nimport { BaseProps } from 'shared/interfaces'\nimport { SizeInput } from 'shared/enums/sizeInput'\nimport { InputRadio } from 'components/InputRadio'\nimport { RadioGroup } from './Group'\nimport * as Styled from './style'\n\ntype RadioInputHtmlAttributes = Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'width'>\n\nexport interface RadioProps extends BaseProps, DisplayProperty, RadioInputHtmlAttributes {\n /**\n * Field id\n */\n id?: string\n /**\n * Field name\n */\n name?: string\n /**\n * Radio label\n */\n label?: string\n /**\n * On change handler\n */\n onChange?(_e: React.ChangeEvent<HTMLInputElement>): void\n /**\n * Children react node\n */\n children?: React.ReactNode\n /**\n * A Radio can appear disabled and be unable to change states\n */\n disabled?: boolean\n /**\n * Field can show the data contains errors\n */\n error?: boolean\n /**\n * Whether or not Radio is checked\n */\n checked?: boolean\n defaultChecked?: boolean\n /**\n * Checkbox size\n */\n size?: 'small' | 'medium' | 'large'\n /**\n * Value\n */\n value?: string | number\n fluid?: boolean\n /**\n * Width of label. Default is `Theme.defaultInputControlsWidth`\n */\n width?: ResponsiveProperty<'auto' | number | keyof typeof SizeInput>\n}\n\nRadio.defaultProps = {\n disabled: false,\n size: 'medium',\n display: 'inline-flex',\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => console.log(e, e.target.value), // eslint-disable-line no-console\n}\n\nRadio.Input = InputRadio\nRadio.Group = RadioGroup\nRadio.displayName = 'Radio'\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - `React.InputHTMLAttributes<HTMLInputElement>`\n */\nexport function Radio(props: typeof Radio.defaultProps & RadioProps) {\n const uncontrolled = props.checked === undefined\n const theme = useTheme()\n\n const {\n children,\n disabled,\n error,\n id,\n name,\n size,\n value,\n label,\n className,\n width = theme.defaultInputControlsWidth,\n style,\n fluid,\n display,\n ...anotherProps\n } = props\n\n const baseClassName = useClassname(Radio.displayName)\n const _className = cx(baseClassName, className, props.checked && !uncontrolled ? `${baseClassName}--checked` : null)\n const _labelClassName = `${baseClassName}__label`\n\n const inputProps = uncontrolled ? { defaultChecked: props.defaultChecked } : { checked: props.checked }\n\n return (\n <Styled.Root\n className={_className}\n style={style}\n disabled={disabled}\n error={error}\n htmlFor={id || name}\n size={size}\n width={width}\n display={display}\n fluid={fluid}\n >\n <input\n {...anotherProps}\n id={id || name}\n name={name}\n type='radio'\n value={value}\n disabled={disabled}\n {...inputProps}\n />\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'>\n <circle cx='10' cy='10' r='9' stroke='#727D8A' strokeWidth='2' fill='#fff' />\n <circle cx='10' cy='10' r='5' fill='#727D8A' />\n </svg>\n {(label || children) && <span className={_labelClassName}>{label || children}</span>}\n </Styled.Root>\n )\n}\n","<svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12.5 4.5 6.312 11 3.5 8.045\" stroke=\"currentcolor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>","<svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path clip-rule=\"evenodd\" d=\"M3.5 8a.5.5 0 0 1 .5-.5h8a.5.5 0 0 1 0 1H4a.5.5 0 0 1-.5-.5z\" stroke=\"currentcolor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>","import { BaseProps } from 'shared/interfaces'\nimport * as Styled from './style'\n\nexport interface RadioGroupProps extends BaseProps {\n inline?: boolean\n children?: React.ReactNode\n}\n\nexport function RadioGroup({ children, ...props }: RadioGroupProps) {\n return <Styled.Group {...props}>{children}</Styled.Group>\n}\n","import styled, { css } from 'styled-components'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport Checked from './images/checked.module.svg'\nimport Indeterminate from './images/indeterminate.module.svg'\nimport type { StyledInputCheckboxProps, InputCheckboxPalette } from './types'\n\nconst shouldForwardInputCheckboxProp = createShouldForwardProp(\n (propKey) => !['inline', 'error', 'success', 'onColored', 'indeterminate', 'disabled'].includes(propKey)\n)\n\nexport const Input = styled.input`\n box-sizing: border-box;\n position: absolute;\n top: 0;\n left: 0;\n margin: 0;\n border: none;\n opacity: 0;\n width: 100%;\n height: 100%;\n z-index: 1;\n &:focus {\n outline: none;\n }\n`\n\nexport const InputMask = styled.span`\n box-sizing: border-box;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border-radius: inherit;\n border: 1px solid transparent;\n transition-property: border-color;\n transition-duration: 150ms;\n transition-timing-function: ease-in;\n`\n\nexport const InputChecked = styled(Checked)`\n box-sizing: border-box;\n width: 90%;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n opacity: 0;\n`\n\nexport const InputIndeterminate = styled(Indeterminate)`\n box-sizing: border-box;\n width: 90%;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n`\n\nconst template = (palette: InputCheckboxPalette) => `\n & > ${InputMask} {\n background-color: ${palette.backgroundColor};\n border-color: ${palette.borderColor};\n color: ${palette.color};\n }\n &:hover > ${InputMask} {\n background-color: ${palette.backgroundColorHover};\n border-color: ${palette.borderColorHover};\n color: ${palette.colorHover};\n }\n & > ${Input}:checked:not(:disabled) + ${InputMask} {\n background-color: ${palette.backgroundColorChecked};\n border-color: ${palette.borderColorChecked};\n color: ${palette.colorChecked};\n }\n & > ${Input}:disabled:not(:checked) + ${InputMask} {\n background-color: ${palette.backgroundColorDisabled};\n border-color: ${palette.borderColorDisabled};\n color: ${palette.colorDisabled};\n }\n & > ${Input}:disabled:checked + ${InputMask} {\n background-color: ${palette.backgroundColorDisabledChecked};\n border-color: ${palette.borderColorDisabledChecked};\n color: ${palette.colorDisabledChecked};\n }\n`\n\nconst COLOR_SCHEMA = {\n default: {\n error: css<StyledInputCheckboxProps>`\n ${({ theme, palette, indeterminate }) =>\n template({\n color: theme.colors['content-oncolor-primary'],\n backgroundColor: indeterminate ? theme.colors['alert-bg-error-500'] : theme.colors['bg-onmain-primary'],\n borderColor: theme.colors['alert-bg-error-500'],\n colorHover: theme.colors['content-oncolor-primary'],\n backgroundColorHover: indeterminate ? theme.colors['alert-bg-error-500'] : theme.colors['bg-onmain-primary'],\n borderColorHover: theme.colors['alert-bg-error-500'],\n colorChecked: theme.colors['content-oncolor-primary'],\n backgroundColorChecked: theme.colors['alert-bg-error-500'],\n borderColorChecked: theme.colors['alert-bg-error-500'],\n colorDisabled: theme.colors['bg-onmain-secondary'],\n backgroundColorDisabled: indeterminate\n ? theme.colors['bg-disabled-active']\n : theme.colors['bg-disabled-large'],\n borderColorDisabled: indeterminate ? theme.colors['bg-disabled-active'] : theme.colors['border-disabled'],\n colorDisabledChecked: theme.colors['bg-onmain-secondary'],\n backgroundColorDisabledChecked: theme.colors['bg-disabled-active'],\n borderColorDisabledChecked: theme.colors['bg-disabled-active'],\n ...palette,\n })}\n `,\n success: css<StyledInputCheckboxProps>`\n ${({ theme, palette, indeterminate }) =>\n template({\n color: theme.colors['content-oncolor-primary'],\n backgroundColor: indeterminate ? theme.colors['alert-bg-success-500'] : theme.colors['bg-onmain-primary'],\n borderColor: theme.colors['alert-bg-success-500'],\n colorHover: theme.colors['content-oncolor-primary'],\n backgroundColorHover: indeterminate\n ? theme.colors['alert-bg-success-500']\n : theme.colors['bg-onmain-primary'],\n borderColorHover: theme.colors['alert-bg-success-500'],\n colorChecked: theme.colors['content-oncolor-primary'],\n backgroundColorChecked: theme.colors['alert-bg-success-500'],\n borderColorChecked: theme.colors['alert-bg-success-500'],\n colorDisabled: theme.colors['bg-onmain-secondary'],\n backgroundColorDisabled: indeterminate\n ? theme.colors['bg-disabled-active']\n : theme.colors['bg-disabled-large'],\n borderColorDisabled: indeterminate ? theme.colors['bg-disabled-active'] : theme.colors['border-disabled'],\n colorDisabledChecked: theme.colors['bg-onmain-secondary'],\n backgroundColorDisabledChecked: theme.colors['bg-disabled-active'],\n borderColorDisabledChecked: theme.colors['bg-disabled-active'],\n ...palette,\n })}\n `,\n default: css<StyledInputCheckboxProps>`\n ${({ theme, palette, indeterminate }) =>\n template({\n color: theme.colors['content-oncolor-primary'],\n backgroundColor: indeterminate ? theme.colors['bg-brand-primary-basic'] : theme.colors['bg-onmain-primary'],\n borderColor: indeterminate\n ? theme.colors['bg-brand-primary-basic']\n : theme.colors['border-onmain-default-small'],\n colorHover: theme.colors['content-oncolor-primary'],\n backgroundColorHover: indeterminate\n ? theme.colors['bg-brand-primary-basic']\n : theme.colors['bg-onmain-primary'],\n borderColorHover: indeterminate\n ? theme.colors['bg-brand-primary-basic']\n : theme.colors['border-brand-primary'],\n colorChecked: theme.colors['content-oncolor-primary'],\n backgroundColorChecked: theme.colors['bg-brand-primary-basic'],\n borderColorChecked: theme.colors['bg-brand-primary-basic'],\n colorDisabled: theme.colors['bg-onmain-secondary'],\n backgroundColorDisabled: indeterminate\n ? theme.colors['bg-disabled-active']\n : theme.colors['bg-disabled-large'],\n borderColorDisabled: indeterminate ? theme.colors['bg-disabled-active'] : theme.colors['border-disabled'],\n colorDisabledChecked: theme.colors['bg-onmain-secondary'],\n backgroundColorDisabledChecked: theme.colors['bg-disabled-active'],\n borderColorDisabledChecked: theme.colors['bg-disabled-active'],\n ...palette,\n })}\n `,\n },\n onColored: {\n error: css<StyledInputCheckboxProps>`\n ${({ theme, palette, indeterminate }) =>\n template({\n color: theme.colors['content-oncolor-primary'],\n backgroundColor: indeterminate ? theme.colors['alert-bg-error-500'] : theme.colors['bg-onmain-secondary'],\n borderColor: indeterminate ? theme.colors['alert-bg-error-500'] : theme.colors['alert-error'],\n colorHover: theme.colors['content-oncolor-primary'],\n backgroundColorHover: indeterminate\n ? theme.colors['alert-bg-error-500']\n : theme.colors['bg-onmain-secondary'],\n borderColorHover: indeterminate ? theme.colors['alert-bg-error-500'] : theme.colors['alert-error'],\n colorChecked: theme.colors['content-oncolor-primary'],\n backgroundColorChecked: theme.colors['alert-bg-error-500'],\n borderColorChecked: theme.colors['alert-bg-error-500'],\n colorDisabled: theme.colors['bg-onmain-secondary'],\n backgroundColorDisabled: indeterminate\n ? theme.colors['bg-disabled-active']\n : theme.colors['bg-disabled-small'],\n borderColorDisabled: indeterminate ? theme.colors['bg-disabled-active'] : theme.colors['border-disabled'],\n colorDisabledChecked: theme.colors['bg-onmain-secondary'],\n backgroundColorDisabledChecked: theme.colors['bg-disabled-active'],\n borderColorDisabledChecked: theme.colors['bg-disabled-active'],\n ...palette,\n })}\n `,\n success: css<StyledInputCheckboxProps>`\n ${({ theme, palette, indeterminate }) =>\n template({\n color: theme.colors['content-oncolor-primary'],\n backgroundColor: indeterminate ? theme.colors['alert-bg-success-500'] : theme.colors['bg-onmain-secondary'],\n borderColor: indeterminate ? theme.colors['alert-bg-success-500'] : theme.colors['alert-success'],\n colorHover: theme.colors['content-oncolor-primary'],\n backgroundColorHover: indeterminate\n ? theme.colors['alert-bg-success-500']\n : theme.colors['bg-onmain-secondary'],\n borderColorHover: indeterminate ? theme.colors['alert-bg-success-500'] : theme.colors['alert-success'],\n colorChecked: theme.colors['content-oncolor-primary'],\n backgroundColorChecked: theme.colors['alert-bg-success-500'],\n borderColorChecked: theme.colors['alert-bg-success-500'],\n colorDisabled: theme.colors['bg-onmain-secondary'],\n backgroundColorDisabled: indeterminate\n ? theme.colors['bg-disabled-active']\n : theme.colors['bg-disabled-small'],\n borderColorDisabled: indeterminate ? theme.colors['bg-disabled-active'] : theme.colors['border-disabled'],\n colorDisabledChecked: theme.colors['bg-onmain-secondary'],\n backgroundColorDisabledChecked: theme.colors['bg-disabled-active'],\n borderColorDisabledChecked: theme.colors['bg-disabled-active'],\n ...palette,\n })}\n `,\n default: css<StyledInputCheckboxProps>`\n ${({ theme, palette, indeterminate }) =>\n template({\n color: theme.colors['bg-brand-primary-basic'],\n backgroundColor: indeterminate ? theme.colors['bg-oncolor-primary'] : theme.colors['bg-onmain-primary'],\n borderColor: indeterminate ? theme.colors['bg-oncolor-primary'] : theme.colors['border-onmain-default-small'],\n colorHover: theme.colors['bg-brand-primary-basic'],\n backgroundColorHover: indeterminate ? theme.colors['bg-oncolor-primary'] : theme.colors['bg-onmain-primary'],\n borderColorHover: indeterminate ? theme.colors['bg-oncolor-primary'] : theme.colors['border-brand-primary'],\n colorChecked: theme.colors['bg-brand-primary-basic'],\n backgroundColorChecked: theme.colors['bg-oncolor-primary'],\n borderColorChecked: theme.colors['bg-oncolor-primary'],\n colorDisabled: theme.colors['bg-onmain-secondary'],\n backgroundColorDisabled: indeterminate\n ? theme.colors['bg-disabled-active']\n : theme.colors['bg-disabled-small'],\n borderColorDisabled: indeterminate ? theme.colors['bg-disabled-active'] : theme.colors['border-disabled'],\n colorDisabledChecked: theme.colors['bg-onmain-secondary'],\n backgroundColorDisabledChecked: theme.colors['bg-disabled-active'],\n borderColorDisabledChecked: theme.colors['bg-disabled-active'],\n ...palette,\n })}\n `,\n },\n}\n\nexport const Root = styled.span\n .withConfig<StyledInputCheckboxProps>({\n shouldForwardProp: shouldForwardInputCheckboxProp,\n })\n .attrs(<Required<Pick<StyledInputCheckboxProps, 'dynamicSizeDeclaration'>>>{\n dynamicSizeDeclaration: (size, sizeUnits) => {\n return {\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n height: '1em',\n width: '1em',\n borderRadius: '0.2em',\n }\n },\n })`\n ${(props) => `\n box-sizing: border-box;\n isolation: isolate;\n position: relative;\n display: ${props.inline ? 'inline-flex' : 'flex'};\n flex-shrink: 0;\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n & > ${Input} {\n cursor: inherit;\n }\n & > ${Input}:checked + ${InputMask} > ${InputChecked} {\n opacity: 1;\n }\n & > ${Input}:focus-visible + ${InputMask} {\n box-shadow: 0 0 0 2px ${props.theme.colors.white}, 0 0 0 4px ${props.theme.colors['border-focus']};\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n `}\n ${(props) => {\n const schema = props.onColored ? COLOR_SCHEMA.onColored : COLOR_SCHEMA.default\n\n if (props.error) return schema.error\n if (props.success) return schema.success\n\n return schema.default\n }}\n\n ${responsiveSize}\n`\n","import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { SIZES } from './constants'\nimport * as Styled from './style'\nimport type { InputCheckboxProps } from './types'\n\nconst COMPONENT_NAME = 'InputCheckbox'\n\n/**\n *\n * Component accepts all \\<input\\> attributes.\n *\n * Responsive \"size\" props are supported.\n *\n * Exposed \"ref\" attached to \\<input\\>.\n *\n * See full [InputCheckboxProps](https://github.com/foxford/ui/blob/master/src/components/InputCheckbox/types.ts)\n *\n * @visibleName Checkbox\n */\nconst InputCheckbox: React.ForwardRefExoticComponent<InputCheckboxProps> = withMergedProps<\n InputCheckboxProps,\n HTMLInputElement\n>(\n forwardRef(\n (\n {\n size = 'm',\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n sizes,\n sizeUnits,\n inline,\n error,\n success,\n onColored,\n palette,\n style,\n indeterminate,\n className,\n disabled,\n ...inputProps\n },\n ref\n ) => {\n return (\n <Styled.Root\n size={size}\n sizeXXS={sizeXXS}\n sizeXS={sizeXS}\n sizeS={sizeS}\n sizeM={sizeM}\n sizeL={sizeL}\n sizeXL={sizeXL}\n sizes={sizes}\n sizeUnits={sizeUnits}\n inline={inline}\n error={error}\n success={success}\n onColored={onColored}\n palette={palette}\n style={style}\n indeterminate={indeterminate}\n className={className}\n disabled={disabled}\n >\n <Styled.Input {...inputProps} disabled={disabled} type='checkbox' ref={ref} />\n <Styled.InputMask>\n {indeterminate === true ? <Styled.InputIndeterminate /> : <Styled.InputChecked />}\n </Styled.InputMask>\n </Styled.Root>\n )\n }\n ),\n {\n displayName: COMPONENT_NAME,\n sizes: SIZES,\n }\n)\n\nexport { InputCheckbox, COMPONENT_NAME }\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n width: 40,\n height: 40,\n borderRadius: 8,\n },\n xxl: {\n width: 36,\n height: 36,\n borderRadius: 8,\n },\n xl: {\n width: 32,\n height: 32,\n borderRadius: 7,\n },\n l: {\n width: 28,\n height: 28,\n borderRadius: 6,\n },\n m: {\n width: 24,\n height: 24,\n borderRadius: 5,\n },\n s: {\n width: 20,\n height: 20,\n borderRadius: 4,\n },\n xs: {\n width: 18,\n height: 18,\n borderRadius: 4,\n },\n xxs: {\n width: 16,\n height: 16,\n borderRadius: 4,\n },\n xxxs: {\n width: 14,\n height: 14,\n borderRadius: 3,\n },\n}\n","<svg viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><rect x=\".455\" y=\".455\" width=\"19.091\" height=\"19.091\" rx=\"5\" fill=\"#fff\" stroke=\"#B8B8B8\"/><g fill=\"none\"><rect fill=\"#1A96F6\" width=\"20\" height=\"20\" rx=\"5\"/><path stroke=\"#fff\" stroke-width=\"2\" d=\"M6 9.99 9 13l6-6\"/></g></svg>","<svg viewBox=\"0 0 12 9\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.5 1.5 4.312 8 1.5 5.045\" stroke=\"currentcolor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>","import styled, { css } from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport { screenMaxS } from 'mixins/screen'\nimport { responsiveProperty } from 'mixins/responsive-property'\nimport DefaultCheck from './images/check-default.module.svg'\nimport Check from './images/check.module.svg'\nimport type { StyledCheckboxProps, CheckboxStaticSize, CheckboxGroupProps, CheckboxPalette } from './types'\n\nconst DEFAULT_SIZES: Record<CheckboxStaticSize, number> = {\n extraSmall: 12,\n xs: 12,\n small: 14,\n s: 14,\n medium: 16,\n m: 16,\n large: 18,\n l: 18,\n extraLarge: 20,\n xl: 20,\n}\n\nconst BRAND_SIZES: Record<CheckboxStaticSize, number> = {\n extraSmall: 16,\n xs: 16,\n small: 20,\n s: 20,\n medium: 24,\n m: 24,\n large: 28,\n l: 28,\n extraLarge: 32,\n xl: 32,\n}\n\nconst STATIC_SIZES: CheckboxStaticSize[] = [\n 'extraSmall',\n 'xs',\n 'small',\n 's',\n 'medium',\n 'm',\n 'large',\n 'l',\n 'extraLarge',\n 'xl',\n]\n\nconst baseStyles = css<StyledCheckboxProps>`\n ${(props) => `\n &,\n & * {\n box-sizing: border-box;\n }\n position: relative;\n cursor: pointer;\n padding: ${props.background ? 12 : 0}px;\n display: ${props.inline ? 'inline-flex' : 'flex'};\n align-items: baseline;\n isolation: isolate;\n & + & {\n margin-left: 15px;\n }\n `}\n`\n\nexport const Input = styled.input`\n position: absolute;\n opacity: 0;\n z-index: -1;\n &:focus {\n outline: none;\n }\n`\n\nexport const Background = styled.span`\n border-radius: 8px;\n border: 1px solid;\n border-color: transparent;\n overflow: hidden;\n &::before {\n content: '';\n opacity: 0;\n }\n &,\n &::before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n transition-property: border-color, background-color, opacity;\n transition-duration: 150ms;\n transition-timing-function: ease-in;\n }\n`\n\nexport const DefaultMask = styled(DefaultCheck)`\n position: relative;\n top: 2px;\n width: 1em;\n height: 1em;\n flex-shrink: 0;\n g {\n opacity: 0;\n transition: opacity 200ms ease;\n }\n`\n\nexport const BrandMask = styled.div`\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n border-radius: 4px;\n border: 1px solid;\n border-color: transparent;\n transition-property: border-color;\n transition-duration: 150ms;\n transition-timing-function: ease-in;\n`\n\nexport const CheckIcon = styled(Check)`\n width: 50%;\n opacity: 0;\n`\n\nexport const Content = styled.span`\n position: relative;\n margin-left: 10px;\n`\n\nconst template = (palette: CheckboxPalette) => `\n & > ${Content} {\n color: ${palette.fontColor};\n }\n & > ${BrandMask} {\n background-color: ${palette.bg};\n color: ${palette.color};\n border-color: ${palette.border};\n }\n & > ${Input}:checked ~ ${BrandMask} {\n border-color: transparent;\n background-color: ${palette.bgChecked};\n }\n & > ${Input}:checked ~ ${BrandMask} > ${CheckIcon} {\n opacity: 1;\n }\n & > ${Input}:disabled ~ ${Content} {\n color: ${palette.colorDisabled};\n }\n &:hover > ${BrandMask} {\n border-color: ${palette.borderHover};\n }\n &:focus {\n outline: none;\n }\n & > ${Input}:focus-visible ~ ${BrandMask} {\n outline: 1px solid ${palette.outlineFocus};\n outline-offset: 2px;\n }\n`\n\nconst templateBackground = (palette: CheckboxPalette) => `\n & > ${Background} {\n background-color: ${palette.bg};\n border-color: ${palette.border};\n }\n & > ${Input}:checked ~ ${Background} {\n background-color: ${palette.bgChecked};\n border-color: ${palette.borderChecked};\n }\n &:hover > ${Background} {\n background-color: ${palette.bgHover};\n border-color: ${palette.borderHover};\n }\n &:hover > ${Background}::before {\n background-color: ${palette.beforeBgHover};\n opacity: 1;\n }\n`\n\nconst PRESET = {\n default: {\n regular: css<StyledCheckboxProps>`\n ${(props) =>\n template({\n fontColor: props.theme.colors['content-onmain-primary'],\n bg: props.theme.colors['bg-onmain-primary'],\n color: props.theme.colors['content-oncolor-primary'],\n border: props.theme.colors['border-onmain-default-small'],\n bgChecked: props.theme.colors['bg-brand-primary-basic'],\n borderHover: props.theme.colors['border-brand-primary'],\n outlineFocus: props.theme.colors['border-brand-primary'],\n colorDisabled: props.theme.colors['content-disabled'],\n })}\n ${(props) =>\n props.background\n ? templateBackground({\n bg: props.theme.colors['bg-onmain-secondary'],\n border: props.theme.colors['border-onmain-default-small'],\n bgChecked: props.theme.colors['bg-brand-primary-100'],\n borderChecked: props.theme.colors['border-brand-primary'],\n bgHover: props.theme.colors['bg-oncolor-hover'],\n borderHover: props.theme.colors['border-onmain-default-large'],\n beforeBgHover: 'transparent',\n })\n : null}\n `,\n error: css<StyledCheckboxProps>`\n ${(props) =>\n template({\n fontColor: props.theme.colors['content-onmain-primary'],\n bg: props.theme.colors['alert-bg-error-100'],\n color: props.theme.colors['content-oncolor-primary'],\n border: props.theme.colors['alert-bg-error-500'],\n bgChecked: props.theme.colors['alert-bg-error-500'],\n borderHover: props.theme.colors['alert-error'],\n outlineFocus: props.theme.colors['alert-error'],\n colorDisabled: props.theme.colors['content-disabled'],\n })}\n ${(props) =>\n props.background\n ? templateBackground({\n bg: props.theme.colors['alert-bg-error-100'],\n border: props.theme.colors['alert-error'],\n bgChecked: props.theme.colors['alert-bg-error-100'],\n borderChecked: props.theme.colors['alert-error'],\n bgHover: props.theme.colors['alert-bg-error-100'],\n borderHover: props.theme.colors['alert-error'],\n beforeBgHover: 'transparent',\n })\n : null}\n `,\n success: css<StyledCheckboxProps>`\n ${(props) =>\n template({\n fontColor: props.theme.colors['content-onmain-primary'],\n bg: props.theme.colors['alert-bg-success-100'],\n color: props.theme.colors['content-oncolor-primary'],\n border: props.theme.colors['alert-bg-success-500'],\n bgChecked: props.theme.colors['alert-bg-success-500'],\n borderHover: props.theme.colors['alert-success'],\n outlineFocus: props.theme.colors['alert-success'],\n colorDisabled: props.theme.colors['content-disabled'],\n })}\n ${(props) =>\n props.background\n ? templateBackground({\n bg: props.theme.colors['alert-bg-success-100'],\n border: props.theme.colors['alert-success'],\n bgChecked: props.theme.colors['alert-bg-success-100'],\n borderChecked: props.theme.colors['alert-success'],\n bgHover: props.theme.colors['alert-bg-success-100'],\n borderHover: props.theme.colors['alert-success'],\n beforeBgHover: 'transparent',\n })\n : null}\n `,\n disabled: css<StyledCheckboxProps>`\n cursor: auto;\n ${(props) =>\n template({\n fontColor: props.theme.colors['content-onmain-primary'],\n bg: props.theme.colors['bg-disabled-large'],\n color: props.theme.colors['content-oncolor-primary'],\n border: props.theme.colors['border-disabled'],\n bgChecked: props.theme.colors['bg-disabled-active'],\n borderHover: props.theme.colors['border-disabled'],\n outlineFocus: props.theme.colors['border-disabled'],\n colorDisabled: props.theme.colors['content-disabled'],\n })}\n ${(props) =>\n props.background\n ? templateBackground({\n bg: props.theme.colors['bg-disabled-large'],\n border: props.theme.colors['border-disabled'],\n bgChecked: props.theme.colors['bg-disabled-large'],\n borderChecked: props.theme.colors['bg-disabled-active'],\n bgHover: props.theme.colors['bg-disabled-large'],\n borderHover: props.theme.colors['border-disabled'],\n beforeBgHover: 'transparent',\n })\n : null}\n `,\n },\n onColored: {\n regular: css<StyledCheckboxProps>`\n ${(props) =>\n props.background\n ? template({\n fontColor: props.theme.colors['content-onmain-primary'],\n bg: props.theme.colors['bg-onmain-primary'],\n color: props.theme.colors['content-oncolor-primary'],\n border: props.theme.colors['border-onmain-default-small'],\n bgChecked: props.theme.colors['bg-brand-primary-basic'],\n borderHover: props.theme.colors['border-brand-primary'],\n outlineFocus: props.theme.colors['border-brand-primary'],\n colorDisabled: props.theme.colors['content-oncolor-disabled'],\n })\n : template({\n fontColor: props.theme.colors['content-oncolor-primary'],\n bg: props.theme.colors['bg-onmain-primary'],\n color: props.theme.colors['content-brand-primary'],\n border: props.theme.colors['border-onmain-default-small'],\n bgChecked: props.theme.colors['bg-oncolor-primary'],\n borderHover: props.theme.colors['border-brand-primary'],\n outlineFocus: props.theme.colors['content-oncolor-primary'],\n colorDisabled: props.theme.colors['content-oncolor-disabled'],\n })}\n ${(props) =>\n props.background\n ? templateBackground({\n bg: props.theme.colors['bg-onmain-secondary'],\n border: props.theme.colors['border-onmain-default-large'],\n bgChecked: props.theme.colors['bg-onmain-primary'],\n borderChecked: props.theme.colors['border-onmain-default-large'],\n bgHover: props.theme.colors['bg-onmain-secondary'],\n borderHover: props.theme.colors['border-onmain-default-large'],\n beforeBgHover: props.theme.colors['bg-oncolor-hover'],\n })\n : null}\n `,\n error: css<StyledCheckboxProps>`\n ${(props) =>\n props.background\n ? template({\n fontColor: props.theme.colors['content-onmain-primary'],\n bg: props.theme.colors['alert-bg-error-100'],\n color: props.theme.colors['content-oncolor-primary'],\n border: props.theme.colors['alert-bg-error-500'],\n bgChecked: props.theme.colors['alert-bg-error-500'],\n borderHover: props.theme.colors['alert-error'],\n outlineFocus: props.theme.colors['alert-error'],\n colorDisabled: props.theme.colors['content-oncolor-disabled'],\n })\n : template({\n fontColor: props.theme.colors['content-oncolor-primary'],\n bg: props.theme.colors['alert-bg-error-100'],\n color: props.theme.colors['content-oncolor-primary'],\n border: props.theme.colors['alert-bg-error-500'],\n bgChecked: props.theme.colors['alert-bg-error-500'],\n borderHover: props.theme.colors['alert-error'],\n outlineFocus: props.theme.colors['alert-error'],\n colorDisabled: props.theme.colors['content-oncolor-disabled'],\n })}\n ${(props) =>\n props.background\n ? templateBackground({\n bg: props.theme.colors['alert-bg-error-100'],\n border: props.theme.colors['alert-bg-error-500'],\n bgChecked: props.theme.colors['alert-bg-error-100'],\n borderChecked: props.theme.colors['alert-error'],\n bgHover: props.theme.colors['alert-bg-error-100'],\n borderHover: props.theme.colors['alert-error'],\n beforeBgHover: props.theme.colors['bg-oncolor-hover'],\n })\n : null}\n `,\n success: css<StyledCheckboxProps>`\n ${(props) =>\n props.background\n ? template({\n fontColor: props.theme.colors['content-onmain-primary'],\n bg: props.theme.colors['alert-bg-success-100'],\n color: props.theme.colors['content-oncolor-primary'],\n border: props.theme.colors['alert-bg-success-500'],\n bgChecked: props.theme.colors['alert-bg-success-500'],\n borderHover: props.theme.colors['alert-success'],\n outlineFocus: props.theme.colors['alert-success'],\n colorDisabled: props.theme.colors['content-oncolor-disabled'],\n })\n : template({\n fontColor: props.theme.colors['content-oncolor-primary'],\n bg: props.theme.colors['alert-bg-success-100'],\n color: props.theme.colors['content-oncolor-primary'],\n border: props.theme.colors['alert-bg-success-500'],\n bgChecked: props.theme.colors['alert-bg-success-500'],\n borderHover: props.theme.colors['alert-success'],\n outlineFocus: props.theme.colors['alert-success'],\n colorDisabled: props.theme.colors['content-oncolor-disabled'],\n })}\n ${(props) =>\n props.background\n ? templateBackground({\n bg: props.theme.colors['alert-bg-success-100'],\n border: props.theme.colors['alert-bg-success-500'],\n bgChecked: props.theme.colors['alert-bg-success-100'],\n borderChecked: props.theme.colors['alert-success'],\n bgHover: props.theme.colors['alert-bg-success-100'],\n borderHover: props.theme.colors['alert-success'],\n beforeBgHover: props.theme.colors['bg-oncolor-hover'],\n })\n : null}\n `,\n disabled: css<StyledCheckboxProps>`\n cursor: auto;\n ${(props) =>\n props.background\n ? template({\n fontColor: props.theme.colors['content-onmain-primary'],\n bg: props.theme.colors['bg-disabled-large'],\n color: props.theme.colors['content-oncolor-primary'],\n border: props.theme.colors['border-disabled'],\n bgChecked: props.theme.colors['bg-disabled-active'],\n borderHover: props.theme.colors['border-disabled'],\n outlineFocus: props.theme.colors['border-disabled'],\n colorDisabled: props.theme.colors['content-disabled'],\n })\n : template({\n fontColor: props.theme.colors['content-oncolor-primary'],\n bg: props.theme.colors['bg-disabled-large'],\n color: props.theme.colors['content-oncolor-primary'],\n border: props.theme.colors['border-disabled'],\n bgChecked: props.theme.colors['bg-disabled-active'],\n borderHover: props.theme.colors['border-disabled'],\n outlineFocus: props.theme.colors['border-disabled'],\n colorDisabled: props.theme.colors['content-oncolor-disabled'],\n })}\n ${(props) =>\n props.background\n ? templateBackground({\n bg: props.theme.colors['bg-onmain-secondary'],\n border: props.theme.colors['border-oncolor-disabled'],\n bgChecked: props.theme.colors['bg-onmain-secondary'],\n borderChecked: props.theme.colors['border-oncolor-disabled'],\n bgHover: props.theme.colors['bg-onmain-secondary'],\n borderHover: props.theme.colors['border-oncolor-disabled'],\n beforeBgHover: 'transparent',\n })\n : null}\n `,\n },\n}\n\nconst PRESET_DEFAULT = {\n default: css<StyledCheckboxProps>`\n ${(props) =>\n props.error\n ? `\n & > ${DefaultMask} > rect { \n fill: ${tinycolor(props.theme.colors.pomegranate).setAlpha(0.1).toString()};\n stroke: ${props.theme.colors.pomegranate};\n } \n & > ${DefaultMask} g > rect {\n fill: ${props.theme.colors.pomegranate};\n }\n `\n : null}\n\n ${(props) => `\n color: ${props.disabled ? props.theme.colors.alto : props.theme.colors.mineShaft};\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n\n & > ${Input}:checked ~ ${DefaultMask} g {\n opacity: 1;\n }\n & > ${Input}:disabled ~ ${DefaultMask} > rect {\n fill: ${props.theme.colors.white};\n stroke: ${props.theme.colors.grey};\n }\n & > ${Input}:checked:disabled ~ ${DefaultMask} g > rect {\n fill: ${props.theme.colors.alto};\n }\n &:focus {\n outline: none;\n }\n & > ${Input}:focus-visible ~ ${DefaultMask} {\n outline: 1px solid ${props.theme.colors.accent};\n outline-offset: 2px;\n }\n `}\n `,\n}\n\nconst extractStyles = (props: StyledCheckboxProps) => {\n if (props.brandPresetUsed) {\n if (props.disabled && !props.onColored) return PRESET.default.disabled\n if (props.disabled && props.onColored) return PRESET.onColored.disabled\n\n if (props.error && !props.success && !props.onColored) return PRESET.default.error\n if (props.error && !props.success && props.onColored) return PRESET.onColored.error\n\n if (props.success && !props.error && !props.onColored) return PRESET.default.success\n if (props.success && !props.error && props.onColored) return PRESET.onColored.success\n\n return props.onColored ? PRESET.onColored.regular : PRESET.default.regular\n }\n\n return PRESET_DEFAULT.default\n}\n\nconst extractSizes = (props: StyledCheckboxProps) => {\n const SIZES = props.brandPresetUsed ? BRAND_SIZES : DEFAULT_SIZES\n\n return STATIC_SIZES.includes(<CheckboxStaticSize>props.size)\n ? `font-size: ${SIZES[<CheckboxStaticSize>props.size]}px;`\n : responsiveProperty('size', 'font-size')\n}\n\nexport const Root = styled.label.withConfig<StyledCheckboxProps>({\n shouldForwardProp: (prop) => ['children', 'htmlFor', 'style'].includes(prop),\n})`\n ${baseStyles}\n ${extractStyles}\n ${extractSizes}\n\n ${(props) =>\n responsiveProperty(\n 'width',\n props.fluid && props.width !== 'auto' && !Array.isArray(props.width) ? 'max-width' : 'width'\n )}\n ${(props) => (props.fluid ? 'width: 100%;' : null)}\n`\n\nexport const Group = styled.div.withConfig<CheckboxGroupProps>({\n shouldForwardProp: (prop) => prop !== 'inline',\n})`\n ${(props) =>\n props.inline\n ? css`\n display: flex;\n flex-direction: row;\n > ${Root}:first-child {\n margin-left: 0;\n }\n > ${Root}:not(:first-child) {\n margin-left: 15px;\n }\n ${screenMaxS()`\n flex-direction: column;\n > ${Root}:first-child {\n margin-top: 0;\n }\n > ${Root}:not(:first-child) {\n margin-top: 15px;\n margin-left: 0;\n }\n `}\n `\n : `\n display: flex;\n flex-direction: column;\n > ${Root}:first-child {\n margin-top: 0;\n margin-left: 0;\n }\n > ${Root}:not(:first-child) {\n margin-top: 15px;\n margin-left: 0;\n }\n `}\n`\n","import { forwardRef } from 'react'\nimport { useTheme } from 'styled-components'\nimport cx from 'clsx'\nimport { useClassname } from 'hooks/useClassname'\nimport { useConfigPriority } from 'hooks/use-config-priority'\nimport { InputCheckbox } from 'components/InputCheckbox'\nimport { CheckboxGroup } from './Group'\nimport type { CheckboxComponent, CheckboxProps } from './types'\n\nimport * as Styled from './style'\n\nconst COMPONENT_NAME = 'Checkbox'\n\nconst Checkbox = forwardRef<HTMLLabelElement, CheckboxProps>((props, ref) => {\n const theme = useTheme()\n const baseClassName = useClassname(COMPONENT_NAME)\n\n const {\n preset,\n style,\n id,\n name,\n value,\n disabled,\n error,\n success,\n fluid,\n children,\n label,\n checked,\n defaultChecked,\n background,\n onColored,\n size = 'm',\n inline = true,\n width = theme.defaultInputControlsWidth,\n className: _className,\n onChange = () => undefined,\n ...configProps\n } = useConfigPriority<CheckboxProps>(theme.components?.Checkbox, props)\n\n let brandPresetUsed = theme.preset === 'brand'\n if (typeof preset === 'string') brandPresetUsed = preset === 'brand'\n\n const className = cx(baseClassName, _className, checked && `${baseClassName}--checked`)\n const labelClassName = `${baseClassName}__label`\n const inputProps = checked === undefined ? { defaultChecked } : { checked }\n\n return (\n <Styled.Root\n ref={ref}\n className={className}\n style={style}\n fluid={fluid}\n disabled={disabled}\n htmlFor={id || name}\n size={size}\n inline={inline}\n width={width}\n error={error}\n success={success}\n background={background}\n onColored={onColored}\n brandPresetUsed={brandPresetUsed}\n >\n <Styled.Input\n {...configProps}\n {...inputProps}\n id={id || name}\n name={name}\n type='checkbox'\n value={value}\n disabled={disabled}\n onChange={onChange}\n />\n {brandPresetUsed ? (\n <>\n {background && <Styled.Background />}\n <Styled.BrandMask>\n <Styled.CheckIcon />\n </Styled.BrandMask>\n </>\n ) : (\n <Styled.DefaultMask />\n )}\n {(label || children) && <Styled.Content className={labelClassName}>{label || children}</Styled.Content>}\n </Styled.Root>\n )\n}) as CheckboxComponent\n\nCheckbox.Input = InputCheckbox\nCheckbox.Group = CheckboxGroup\n\nCheckbox.displayName = COMPONENT_NAME\n\nexport { Checkbox, COMPONENT_NAME }\n\nexport type { CheckboxProps }\n","import * as Styled from './style'\nimport type { CheckboxGroupProps } from './types'\n\nconst CheckboxGroup = ({ children, ...props }: CheckboxGroupProps) => {\n return <Styled.Group {...props}>{children}</Styled.Group>\n}\n\nexport { CheckboxGroup }\n","import styled, { css, keyframes } from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport { display } from 'mixins/display'\nimport { responsiveProperty } from 'mixins/responsive-property'\nimport { errorStyle } from 'components/Input/style'\nimport { SelectProps } from './Select'\n\nconst fadeIn = keyframes`\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n`\n\nconst spin = keyframes`\n to {\n transform: rotate(1turn);\n }\n`\n\nconst fluid = css`\n width: 100%;\n .Select {\n max-width: 100%;\n width: 100%;\n }\n`\n\nconst error = css`\n .Select-control {\n ${errorStyle}\n }\n`\n\nexport const Root = styled.span.withConfig<SelectProps>({\n shouldForwardProp: (prop) => ['children'].includes(prop),\n})`\n .Select {\n position: relative;\n }\n .Select,\n .Select div,\n .Select input,\n .Select span {\n box-sizing: border-box;\n }\n .Select.is-disabled > .Select-control {\n cursor: not-allowed;\n background-color: #f5f5f5;\n }\n .Select.is-disabled .Select-value-label {\n color: rgba(0, 0, 0, 0.16) !important;\n }\n .Select.is-disabled > .Select-control:hover {\n box-shadow: none;\n }\n .Select.is-disabled .Select-arrow-zone {\n cursor: default;\n pointer-events: none;\n opacity: 0.35;\n }\n .Select.is-clearable {\n .Select-placeholder,\n &.Select--single > .Select-control .Select-value {\n padding-right: 70px;\n }\n }\n .Select-control {\n background-color: ${(props) => props.theme.colors.white};\n border: solid 1px ${(props) => props.theme.colors.alto};\n border-radius: 4px;\n color: ${(props) => props.theme.colors.mineShaft};\n cursor: default;\n display: table;\n border-spacing: 0;\n border-collapse: separate;\n height: 50px;\n outline: none;\n overflow: hidden;\n position: relative;\n width: 100%;\n }\n .Select-control .Select-input:focus {\n outline: none;\n }\n .is-searchable.is-open > .Select-control {\n cursor: text;\n }\n .is-open > .Select-control {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n border: 1px solid ${(props) => props.theme.colors.accent};\n outline: none;\n }\n .is-open > .Select-control .Select-arrow {\n transform: rotate(180deg);\n }\n .is-searchable.is-focused:not(.is-open) > .Select-control {\n cursor: text;\n }\n .is-focused:not(.is-open) > .Select-control {\n border: 1px solid ${(props) => props.theme.colors.accent};\n }\n .Select-placeholder,\n .Select--single > .Select-control .Select-value {\n bottom: 0;\n color: ${(props) => props.theme.colors.silver};\n left: 0;\n font-size: 16px;\n line-height: 50px;\n padding-left: 20px;\n padding-right: 35px;\n position: absolute;\n right: 0;\n top: 0;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .has-value.Select--single > .Select-control .Select-value .Select-value-label,\n .has-value.is-pseudo-focused.Select--single > .Select-control .Select-value .Select-value-label {\n color: ${(props) => props.theme.colors.mineShaft};\n }\n .has-value.Select--single > .Select-control .Select-value a.Select-value-label,\n .has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label {\n cursor: pointer;\n text-decoration: none;\n }\n .has-value.Select--single > .Select-control .Select-value a.Select-value-label:hover,\n .has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label:hover,\n .has-value.Select--single > .Select-control .Select-value a.Select-value-label:focus,\n .has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label:focus {\n color: #007eff;\n outline: none;\n text-decoration: underline;\n }\n .Select-input {\n height: 50px;\n padding-left: 20px;\n padding-right: 15px;\n vertical-align: middle;\n }\n .Select-input > input {\n width: 100%;\n background: none transparent;\n border: 0 none;\n box-shadow: none;\n cursor: default;\n display: inline-block;\n font-family: inherit;\n font-size: 16px;\n margin: 0;\n outline: none;\n line-height: 30px;\n padding: 10px 0;\n -webkit-appearance: none;\n }\n .is-focused .Select-input > input {\n cursor: text;\n }\n .is-focused .Select-arrow,\n .Select-arrow-zone:hover > .Select-arrow {\n background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTEiIHZpZXdCb3g9IjAgMCAxOCAxMSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj48ZGVmcz48cG9seWdvbiBpZD0icGF0aC0xIiBwb2ludHM9IjAgMC4zMjg1NDI4NTcgMCAxMiAxOS45MDY5MTY3IDEyIDE5LjkwNjkxNjcgMC4zMjg1NDI4NTcgNy4yMjgwMTQ0OGUtMjAgMC4zMjg1NDI4NTciLz48L2RlZnM+PGcgaWQ9IlR1dG9yaWFsIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBvcGFjaXR5PSIuNzMyIj48ZyBpZD0i0YDQtdCz0LAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NzYuMDAwMDAwLCAtNzA4LjAwMDAwMCkiPjxnIGlkPSJhcnJvdy1kb3duLXNpZ24tdG8tbmF2aWdhdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDY3NC4wMDAwMDAsIDcwOC4wMDAwMDApIj48bWFzayBpZD0ibWFzay0yIiBmaWxsPSIjZmZmIj48dXNlIHhsaW5rOmhyZWY9IiNwYXRoLTEiLz48L21hc2s+PHBhdGggZD0iTTEwLjk1MzE1ODUsMTAuODI3MjY0OSBDMTAuNjMyMzI5MywxMC44MjcyNjQ5IDEwLjMxMTUwMDEsMTAuNzAwODE4IDEwLjA2NzcyOTksMTAuNDUwMDgyOSBMMi4zNjgxMjkwMSwyLjUzMDQ5MzQzIEMxLjg3NzI5MDMzLDIuMDI1NjMwNzkgMS44NzcyOTAzMywxLjIwODY2MDAxIDIuMzY4MTI5MDEsMC43MDUzMzk0IEMyLjg1NzQ2ODUsMC4yMDI5NDQwMSAzLjY1MTc0NTY0LDAuMjAyOTQ0MDEgNC4xNDEzODQ5NiwwLjcwNTMzOTQgTDEwLjk1MzE1ODUsNy43MTI5Njg2NiBMMTcuNzY2NDMxMiwwLjcwNjU3MzAyOSBDMTguMjU2MDcwNSwwLjIwMjk0NDAxIDE5LjA1MDA0NzgsMC4yMDI5NDQwMSAxOS41Mzk2ODcyLDAuNzA2NTczMDI5IEMyMC4wMjkzMjY1LDEuMjA5ODkzNjQgMjAuMDI5MzI2NSwyLjAyNjg2NDQxIDE5LjUzOTY4NzIsMi41MzA0OTM0MyBMMTEuODM5Nzg2NSwxMC40NTAwODI5IEMxMS41OTYzMTYxLDEwLjcwMjA1MTYgMTEuMjc0Mjg3NSwxMC44MjcyNjQ5IDEwLjk1MzE1ODUsMTAuODI3MjY0OSBMMTAuOTUzMTU4NSwxMC44MjcyNjQ5IFoiIGlkPSJGaWxsLTEiIGZpbGw9IiM0OGExZTYiIG1hc2s9InVybCgjbWFzay0yKSIvPjwvZz48L2c+PC9nPjwvc3ZnPgo=');\n }\n .has-value.is-pseudo-focused .Select-input {\n opacity: 0;\n }\n .Select-control:not(.is-searchable) > .Select-input {\n outline: none;\n }\n .Select-loading-zone {\n cursor: pointer;\n display: table-cell;\n position: relative;\n text-align: center;\n vertical-align: middle;\n width: 16px;\n }\n .Select-loading {\n animation: ${spin} 400ms infinite linear;\n width: 16px;\n height: 16px;\n box-sizing: border-box;\n border-radius: 50%;\n border: 2px solid ${(props) => props.theme.colors.alto};\n border-right-color: ${(props) => props.theme.colors.mineShaft};\n display: inline-block;\n position: relative;\n vertical-align: middle;\n }\n .Select-clear-zone {\n animation: ${fadeIn} 200ms;\n color: ${(props) => props.theme.colors.alto};\n cursor: pointer;\n display: table-cell;\n position: relative;\n text-align: center;\n vertical-align: middle;\n width: 35px;\n line-height: 0;\n\n .Select-clear {\n position: relative;\n top: -1px;\n }\n }\n .Select-clear-zone:hover {\n color: #d0021b;\n }\n .Select-clear {\n display: inline-block;\n font-size: 0px;\n line-height: 1;\n color: transparent;\n overflow: hidden;\n width: 12px;\n height: 12px;\n background: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0nMjAnIGhlaWdodD0nMjAnIHZpZXdCb3g9JzAgMCAyMCAyMCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJz4KICA8cGF0aAogICAgZD0nTTExLjYgOS41TDE5LjIgMmMuNC0uNi40LTEuMyAwLTEuNy0uNC0uNC0xLjItLjQtMS42IDBMMTAgOCAyLjQuMkMyIDAgMS4yIDAgLjguMy40LjcuNCAxLjMuOCAybDcuNiA3LjUtOCA4Yy0uNS41LS41IDEuMiAwIDEuNy4yLjIuNC4zLjcuMy40IDAgLjcgMCAxLS4zbDgtOCA4IDhjLjMuMi42LjMgMSAuMy4yIDAgLjQgMCAuNy0uMy40LS41LjQtMS4yIDAtMS42bC04LTh6JwogICAgZmlsbD0nI0Q5RDlEOScKICAgIGZpbGxSdWxlPSdldmVub2RkJwogIC8+Cjwvc3ZnPgo=')\n no-repeat;\n background-size: cover;\n }\n .Select--multi .Select-clear-zone {\n width: 17px;\n }\n .Select-arrow-zone {\n cursor: pointer;\n display: table-cell;\n position: relative;\n text-align: center;\n vertical-align: middle;\n width: 35px;\n line-height: 0;\n }\n .Select-arrow {\n background: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTEiIHZpZXdCb3g9IjAgMCAxOCAxMSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj48ZGVmcz48cG9seWdvbiBpZD0icGF0aC0xIiBwb2ludHM9IjAgMC4zMjg1NDI4NTcgMCAxMiAxOS45MDY5MTY3IDEyIDE5LjkwNjkxNjcgMC4zMjg1NDI4NTcgNy4yMjgwMTQ0OGUtMjAgMC4zMjg1NDI4NTciLz48L2RlZnM+PGcgaWQ9IlR1dG9yaWFsIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBvcGFjaXR5PSIuNzMyIj48ZyBpZD0i0YDQtdCz0LAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NzYuMDAwMDAwLCAtNzA4LjAwMDAwMCkiPjxnIGlkPSJhcnJvdy1kb3duLXNpZ24tdG8tbmF2aWdhdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDY3NC4wMDAwMDAsIDcwOC4wMDAwMDApIj48bWFzayBpZD0ibWFzay0yIiBmaWxsPSIjZmZmIj48dXNlIHhsaW5rOmhyZWY9IiNwYXRoLTEiLz48L21hc2s+PHBhdGggZD0iTTEwLjk1MzE1ODUsMTAuODI3MjY0OSBDMTAuNjMyMzI5MywxMC44MjcyNjQ5IDEwLjMxMTUwMDEsMTAuNzAwODE4IDEwLjA2NzcyOTksMTAuNDUwMDgyOSBMMi4zNjgxMjkwMSwyLjUzMDQ5MzQzIEMxLjg3NzI5MDMzLDIuMDI1NjMwNzkgMS44NzcyOTAzMywxLjIwODY2MDAxIDIuMzY4MTI5MDEsMC43MDUzMzk0IEMyLjg1NzQ2ODUsMC4yMDI5NDQwMSAzLjY1MTc0NTY0LDAuMjAyOTQ0MDEgNC4xNDEzODQ5NiwwLjcwNTMzOTQgTDEwLjk1MzE1ODUsNy43MTI5Njg2NiBMMTcuNzY2NDMxMiwwLjcwNjU3MzAyOSBDMTguMjU2MDcwNSwwLjIwMjk0NDAxIDE5LjA1MDA0NzgsMC4yMDI5NDQwMSAxOS41Mzk2ODcyLDAuNzA2NTczMDI5IEMyMC4wMjkzMjY1LDEuMjA5ODkzNjQgMjAuMDI5MzI2NSwyLjAyNjg2NDQxIDE5LjUzOTY4NzIsMi41MzA0OTM0MyBMMTEuODM5Nzg2NSwxMC40NTAwODI5IEMxMS41OTYzMTYxLDEwLjcwMjA1MTYgMTEuMjc0Mjg3NSwxMC44MjcyNjQ5IDEwLjk1MzE1ODUsMTAuODI3MjY0OSBMMTAuOTUzMTU4NSwxMC44MjcyNjQ5IFoiIGlkPSJGaWxsLTEiIGZpbGw9IiNiOGI4YjgiIG1hc2s9InVybCgjbWFzay0yKSIvPjwvZz48L2c+PC9nPjwvc3ZnPgo=')\n no-repeat;\n display: inline-block;\n background-size: 12px;\n height: 7px;\n width: 12px;\n position: relative;\n transition: 0.3s;\n transform: rotate(0deg);\n }\n .is-open .Select-arrow,\n .Select-arrow-zone:hover > .Select-arrow {\n background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTEiIHZpZXdCb3g9IjAgMCAxOCAxMSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj48ZGVmcz48cG9seWdvbiBpZD0icGF0aC0xIiBwb2ludHM9IjAgMC4zMjg1NDI4NTcgMCAxMiAxOS45MDY5MTY3IDEyIDE5LjkwNjkxNjcgMC4zMjg1NDI4NTcgNy4yMjgwMTQ0OGUtMjAgMC4zMjg1NDI4NTciLz48L2RlZnM+PGcgaWQ9IlR1dG9yaWFsIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBvcGFjaXR5PSIuNzMyIj48ZyBpZD0i0YDQtdCz0LAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NzYuMDAwMDAwLCAtNzA4LjAwMDAwMCkiPjxnIGlkPSJhcnJvdy1kb3duLXNpZ24tdG8tbmF2aWdhdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDY3NC4wMDAwMDAsIDcwOC4wMDAwMDApIj48bWFzayBpZD0ibWFzay0yIiBmaWxsPSIjZmZmIj48dXNlIHhsaW5rOmhyZWY9IiNwYXRoLTEiLz48L21hc2s+PHBhdGggZD0iTTEwLjk1MzE1ODUsMTAuODI3MjY0OSBDMTAuNjMyMzI5MywxMC44MjcyNjQ5IDEwLjMxMTUwMDEsMTAuNzAwODE4IDEwLjA2NzcyOTksMTAuNDUwMDgyOSBMMi4zNjgxMjkwMSwyLjUzMDQ5MzQzIEMxLjg3NzI5MDMzLDIuMDI1NjMwNzkgMS44NzcyOTAzMywxLjIwODY2MDAxIDIuMzY4MTI5MDEsMC43MDUzMzk0IEMyLjg1NzQ2ODUsMC4yMDI5NDQwMSAzLjY1MTc0NTY0LDAuMjAyOTQ0MDEgNC4xNDEzODQ5NiwwLjcwNTMzOTQgTDEwLjk1MzE1ODUsNy43MTI5Njg2NiBMMTcuNzY2NDMxMiwwLjcwNjU3MzAyOSBDMTguMjU2MDcwNSwwLjIwMjk0NDAxIDE5LjA1MDA0NzgsMC4yMDI5NDQwMSAxOS41Mzk2ODcyLDAuNzA2NTczMDI5IEMyMC4wMjkzMjY1LDEuMjA5ODkzNjQgMjAuMDI5MzI2NSwyLjAyNjg2NDQxIDE5LjUzOTY4NzIsMi41MzA0OTM0MyBMMTEuODM5Nzg2NSwxMC40NTAwODI5IEMxMS41OTYzMTYxLDEwLjcwMjA1MTYgMTEuMjc0Mjg3NSwxMC44MjcyNjQ5IDEwLjk1MzE1ODUsMTAuODI3MjY0OSBMMTAuOTUzMTU4NSwxMC44MjcyNjQ5IFoiIGlkPSJGaWxsLTEiIGZpbGw9IiM0OGExZTYiIG1hc2s9InVybCgjbWFzay0yKSIvPjwvZz48L2c+PC9nPjwvc3ZnPgo=');\n }\n .Select--multi .Select-multi-value-wrapper {\n display: inline-block;\n padding-left: 20px;\n }\n .Select--multi .Select-multi-value-wrapper {\n .Select-placeholder + .Select-input {\n margin-left: 0;\n }\n }\n .Select--single {\n .Select-multi-value-wrapper {\n display: block;\n width: 100%;\n }\n .Select-input .react-select-2--value {\n display: block;\n width: 100%;\n }\n }\n .Select .Select-aria-only {\n display: inline-block;\n height: 1px;\n width: 1px;\n margin: -1px;\n clip: rect(0, 0, 0, 0);\n overflow: hidden;\n float: left;\n }\n .Select-menu-outer {\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n background-color: ${(props) => props.theme.colors.white};\n border: 1px solid ${(props) => props.theme.colors.onahau};\n box-shadow: 0 3px 10px 0 rgba(0, 0, 0, 0.2);\n box-sizing: border-box;\n margin-top: -1px;\n max-height: 270px;\n position: absolute;\n top: 100%;\n width: 100%;\n z-index: 1;\n -webkit-overflow-scrolling: touch;\n }\n .Select-menu {\n max-height: 226px;\n overflow-x: auto;\n overflow-y: auto;\n font-size: 16px;\n }\n .Select-option {\n box-sizing: border-box;\n background-color: ${(props) => props.theme.colors.white};\n line-height: 30px;\n color: ${(props) => props.theme.colors.mineShaft};\n cursor: pointer;\n display: block;\n padding: 10px 15px 10px 20px;\n transition: background 0.2s ease;\n }\n .Select-option:last-child {\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n }\n .Select-option.is-selected {\n background-color: ${(props) => props.theme.colors.onahau};\n }\n .Select-option.is-focused {\n background-color: ${(props) => props.theme.colors.onahau};\n }\n .Select-option.is-disabled {\n color: rgba(0, 0, 0, 0.16);\n cursor: not-allowed;\n }\n .Select-noresults {\n box-sizing: border-box;\n color: ${(props) => props.theme.colors.silver};\n cursor: default;\n display: block;\n padding: 10px 20px;\n }\n .Select--multi .Select-input {\n vertical-align: middle;\n margin-left: 10px;\n padding: 0;\n }\n .Select--multi.has-value .Select-input {\n margin-left: 5px;\n }\n .Select--multi .Select-value {\n background-color: ${(props) => props.theme.colors.nebula};\n background-color: ${(props) => tinycolor(props.theme.colors.nebula).setAlpha(0.1).toString()};\n border-radius: 4px;\n border: 1px solid ${(props) => props.theme.colors.onahau};\n border: 1px solid rgba(0, 126, 255, 0.24);\n color: ${(props) => props.theme.colors.mineShaft};\n display: inline-block;\n font-size: 0.9em;\n line-height: 1.4;\n margin-left: 4px;\n margin-top: 4px;\n vertical-align: top;\n }\n .Select--multi .Select-value-icon,\n .Select--multi .Select-value-label {\n display: inline-block;\n vertical-align: middle;\n }\n .Select--multi .Select-value-icon {\n font-size: 1.5em;\n line-height: 100%;\n vertical-align: middle;\n box-sizing: border-box;\n padding: 5px 4px 2px;\n color: ${(props) => props.theme.colors.accent};\n }\n\n .Select--multi .Select-value-label {\n border-bottom-right-radius: 4px;\n border-top-right-radius: 4px;\n cursor: default;\n padding: 2px 4px;\n line-height: 1;\n max-width: 90%;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n .Select--multi a.Select-value-label {\n color: ${(props) => props.theme.colors.accent};\n cursor: pointer;\n text-decoration: none;\n }\n .Select--multi a.Select-value-label:hover {\n text-decoration: underline;\n }\n .Select--multi .Select-value-icon {\n cursor: pointer;\n border-bottom-left-radius: 4px;\n border-top-left-radius: 4px;\n border-right: 1px solid ${(props) => props.theme.colors.onahau};\n border-right: 1px solid rgba(0, 126, 255, 0.24);\n font-size: 1.5em;\n line-height: 100%;\n box-sizing: border-box;\n padding: 5px 4px 2px;\n color: ${(props) => props.theme.colors.accent};\n }\n .Select--multi .Select-value-icon:hover,\n .Select--multi .Select-value-icon:focus {\n background-color: #d8eafd;\n background-color: rgba(0, 113, 230, 0.08);\n color: ${(props) => props.theme.colors.accent};\n }\n .Select--multi .Select-value-icon:active {\n background-color: #c2e0ff;\n background-color: rgba(0, 126, 255, 0.24);\n }\n .Select--multi.is-disabled .Select-value {\n background-color: #fcfcfc;\n border: 1px solid #e3e3e3;\n color: ${(props) => props.theme.colors.mineShaft};\n }\n .Select--multi.is-disabled .Select-value-icon {\n cursor: not-allowed;\n border-right: 1px solid #e3e3e3;\n }\n .Select--multi.is-disabled .Select-value-icon:hover,\n .Select--multi.is-disabled .Select-value-icon:focus,\n .Select--multi.is-disabled .Select-value-icon:active {\n background-color: #fcfcfc;\n }\n\n width: auto;\n ${(props) => (props.error ? error : null)}\n ${(props) => (props.display ? display(props.display) : null)}\n ${(props) =>\n responsiveProperty(\n 'width',\n props.fluid && props.width !== 'auto' && !Array.isArray(props.width) ? 'max-width' : 'width'\n )}\n ${(props) => (props.fluid ? fluid : null)}\n`\n","import ReactSelect, { Async, AsyncCreatable, Creatable, ReactSelectProps } from 'react-select'\nimport { useTheme } from 'styled-components'\nimport { DisplayProperty } from 'mixins/display'\nimport { ResponsiveProperty } from 'mixins/responsive-property'\nimport { useClassname } from 'hooks/useClassname'\nimport { SizeInput } from 'shared/enums/sizeInput'\nimport { BaseProps } from 'shared/interfaces'\nimport * as Styled from './style'\n\nexport interface SelectProps extends BaseProps, ReactSelectProps, DisplayProperty {\n fluid?: boolean\n error?: boolean\n /**\n * Width of select. Default is `Theme.defaultInputControlsWidth`\n */\n width?: ResponsiveProperty<'auto' | number | keyof typeof SizeInput>\n}\n\nSelect.defaultProps = {\n allowCreate: false,\n searchable: true,\n clearable: false,\n addLabelText: 'Добавить \"{label}\"?',\n backspaceToRemoveMessage: 'Нажмите клавишу Backspace, чтобы удалить {last label}',\n clearAllText: 'Очистить все',\n clearValueText: 'Очистить значение',\n noResultsText: 'Результатов не найдено',\n placeholder: 'Выбрать ...',\n searchPromptText: 'Введите поисковый запрос',\n loadingPlaceholder: 'Загрузка...',\n autoload: true,\n loadOptions: false,\n display: 'inline-block',\n}\n\nSelect.displayName = 'Select'\n\n/**\n * Расширен:\n * - [`BaseProps`](#/Миксины)\n * - `ReactSelectProps`\n */\nexport function Select(props: SelectProps) {\n const theme = useTheme()\n const {\n fluid,\n error,\n className,\n style,\n display,\n width = theme.defaultInputControlsWidth,\n ...reactSelectProps\n } = props\n const _className = useClassname(Select.displayName, className)\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const SelectElement: typeof ReactSelect & typeof Creatable = props.loadOptions\n ? props.allowCreate\n ? AsyncCreatable\n : Async\n : props.allowCreate\n ? Creatable\n : ReactSelect\n\n return (\n <Styled.Root className={_className} style={style} error={error} fluid={fluid} width={width} display={display}>\n <SelectElement {...reactSelectProps} promptTextCreator={(label: string) => `Добавить \"${label}\"`} />\n </Styled.Root>\n )\n}\n","import styled, { css } from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { responsiveMargin } from 'mixins/responsive-margin'\nimport { focus } from 'mixins/focus'\nimport type { CSSColor } from 'shared/types'\nimport type { StyledFormLabelProps, FormLabelPalette, StyledFormLabelHintProps } from './types'\n\nconst shouldForwardFormLabelProp = createShouldForwardProp(\n (propKey) => !['inline', 'clear', 'disabled', 'error', 'success', 'checked', 'onColored'].includes(propKey)\n)\n\nconst template = (\n palette: Pick<\n FormLabelPalette,\n 'color' | 'backgroundColor' | 'borderColor' | 'colorHover' | 'backgroundColorHover' | 'borderColorHover'\n >\n) => `\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n border-color: ${palette.borderColor};\n &:hover {\n color: ${palette.colorHover};\n background-color: ${palette.backgroundColorHover};\n border-color: ${palette.borderColorHover};\n }\n`\n\nconst hintTemplate = (\n palette: Pick<\n FormLabelPalette,\n | 'hintColor'\n | 'hintBackgroundColor'\n | 'hintColorHover'\n | 'hintBackgroundColorHover'\n | 'hintColorActive'\n | 'hintBackgroundColorActive'\n | 'hintColorDisabled'\n | 'hintBackgroundColorDisabled'\n >\n) => `\n color: ${palette.hintColor};\n background-color: ${palette.hintBackgroundColor};\n &:hover {\n color: ${palette.hintColorHover};\n background-color: ${palette.hintBackgroundColorHover};\n }\n &:active {\n color: ${palette.hintColorActive};\n background-color: ${palette.hintBackgroundColorActive};\n }\n &:disabled {\n color: ${palette.hintColorDisabled};\n background-color: ${palette.hintBackgroundColorDisabled};\n }\n`\n\nconst COLOR_SCHEMA = {\n default: {\n disabled: css<StyledFormLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors['bg-disabled-large'],\n borderColor: props.theme.colors['border-disabled'],\n colorHover: props.theme.colors['content-disabled'],\n backgroundColorHover: props.theme.colors['bg-disabled-large'],\n borderColorHover: props.theme.colors['border-disabled'],\n ...props.palette,\n })}\n `,\n error: css<StyledFormLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['alert-bg-error-100'],\n borderColor: props.theme.colors['alert-bg-error-500'],\n colorHover: props.theme.colors['content-onmain-primary'],\n backgroundColorHover: props.theme.colors['alert-bg-error-100'],\n borderColorHover: props.theme.colors['alert-bg-error-500'],\n ...props.palette,\n })}\n `,\n success: css<StyledFormLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['alert-bg-success-100'],\n borderColor: props.theme.colors['alert-success'],\n colorHover: props.theme.colors['content-onmain-primary'],\n backgroundColorHover: props.theme.colors['alert-bg-success-100'],\n borderColorHover: props.theme.colors['alert-success'],\n ...props.palette,\n })}\n `,\n checked: css<StyledFormLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-brand-primary-100'],\n borderColor: props.theme.colors['border-brand-primary-active'],\n colorHover: props.theme.colors['content-onmain-primary'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-brand-primary-100']).darken(3).toString() as CSSColor,\n borderColorHover: props.theme.colors['border-brand-primary-active'],\n ...props.palette,\n })}\n `,\n default: css<StyledFormLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-onmain-secondary'],\n borderColor: props.theme.colors['border-onmain-default-large'],\n colorHover: props.theme.colors['content-onmain-primary'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-onmain-secondary']).darken(3).toString() as CSSColor,\n borderColorHover: props.theme.colors['border-onmain-default-large'],\n ...props.palette,\n })}\n `,\n },\n onColored: {\n disabled: css<StyledFormLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors['bg-onmain-secondary'],\n borderColor: props.theme.colors['border-onmain-default-large'],\n colorHover: props.theme.colors['content-disabled'],\n backgroundColorHover: props.theme.colors['bg-onmain-secondary'],\n borderColorHover: props.theme.colors['border-onmain-default-large'],\n ...props.palette,\n })}\n `,\n error: css<StyledFormLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['alert-bg-error-200'],\n borderColor: props.theme.colors['alert-bg-error-500'],\n colorHover: props.theme.colors['content-onmain-primary'],\n backgroundColorHover: props.theme.colors['alert-bg-error-200'],\n borderColorHover: props.theme.colors['alert-bg-error-500'],\n ...props.palette,\n })}\n `,\n success: css<StyledFormLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['alert-bg-success-200'],\n borderColor: props.theme.colors['alert-success'],\n colorHover: props.theme.colors['content-onmain-primary'],\n backgroundColorHover: props.theme.colors['alert-bg-success-200'],\n borderColorHover: props.theme.colors['alert-success'],\n ...props.palette,\n })}\n `,\n checked: css<StyledFormLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-onmain-primary'],\n borderColor: props.theme.colors['border-onmain-default-large'],\n colorHover: props.theme.colors['content-onmain-primary'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-onmain-primary']).darken(3).toString() as CSSColor,\n borderColorHover: props.theme.colors['border-onmain-default-large'],\n ...props.palette,\n })}\n `,\n default: css<StyledFormLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-onmain-secondary'],\n borderColor: props.theme.colors['border-onmain-default-large'],\n colorHover: props.theme.colors['content-onmain-primary'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-onmain-secondary']).darken(3).toString() as CSSColor,\n borderColorHover: props.theme.colors['border-onmain-default-large'],\n ...props.palette,\n })}\n `,\n },\n}\n\nexport const Root = styled.label.withConfig<StyledFormLabelProps>({\n shouldForwardProp: shouldForwardFormLabelProp,\n})`\n ${(props) => `\n box-sizing: border-box;\n isolation: isolate;\n display: ${props.inline ? 'inline-flex' : 'flex'};\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n border-radius: 8px;\n padding: 12px;\n min-width: min-content;\n border: 1px solid transparent;\n background-color: transparent;\n transition-property: background-color;\n transition-duration: 150ms;\n transition-timing-function: ease-in;\n `}\n ${(props) => {\n if (props.clear) return ''\n\n const schema = props.onColored ? COLOR_SCHEMA.onColored : COLOR_SCHEMA.default\n\n if (props.disabled) return schema.disabled\n if (props.error) return schema.error\n if (props.success) return schema.success\n if (props.checked) return schema.checked\n\n return schema.default\n }}\n\n ${responsiveSize}\n ${responsiveMargin}\n`\n\nexport const Content = styled.span`\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n margin-left: 12px;\n`\n\nexport const HintButton = styled.button.withConfig<StyledFormLabelHintProps>({\n shouldForwardProp: (propKey) => !['palette'].includes(propKey),\n})`\n box-sizing: border-box;\n appearance: none;\n padding: 2px;\n margin: 0;\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n align-self: start;\n border-radius: 50%;\n background-color: transparent;\n margin-left: 6px;\n cursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')};\n\n ${(props) =>\n hintTemplate({\n hintColor: props.theme.colors['content-onmain-tertiary'],\n hintBackgroundColor: props.theme.colors.transparent,\n hintColorHover: props.theme.colors['content-onmain-primary'],\n hintBackgroundColorHover: tinycolor(props.theme.colors['bg-oncolor-hover']).lighten(20).toString() as CSSColor,\n hintColorActive: props.theme.colors['content-onmain-primary'],\n hintBackgroundColorActive: props.theme.colors['bg-oncolor-hover'],\n hintColorDisabled: props.theme.colors['content-disabled'],\n hintBackgroundColorDisabled: props.theme.colors.transparent,\n ...props.palette,\n })}\n\n ${focus}\n`\n","import { forwardRef, cloneElement } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { Text } from 'components/Text'\nimport { Icon } from 'components/Icon'\nimport * as Styled from './style'\nimport { SIZES } from './constants'\nimport type { FormLabelProps } from './types'\n\nconst COMPONENT_NAME = 'FormLabel'\n\n/**\n *\n * Component accepts all \\<label\\> attributes.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [FormLabelProps](https://github.com/foxford/ui/blob/master/src/components/FormLabel/types.ts)\n */\nconst FormLabel: React.ForwardRefExoticComponent<FormLabelProps> = withMergedProps<FormLabelProps, HTMLLabelElement>(\n forwardRef(\n (\n {\n size = 'm',\n textProps = {},\n hint = {},\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n disabled,\n error,\n success,\n checked,\n onColored,\n children,\n control,\n label,\n palette,\n ...props\n },\n ref\n ) => {\n const sizeProps = {\n size,\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n }\n\n const stateProps = {\n disabled,\n error,\n success,\n checked,\n onColored,\n }\n\n const elementProps =\n typeof control === 'object' && typeof control.props === 'object' && control.props !== null ? control.props : {}\n\n const { textProps: hintTextProps = {}, iconProps: hintIconProps = {} } = hint\n\n return (\n <Styled.Root {...props} {...sizeProps} {...stateProps} palette={palette} ref={ref}>\n {typeof control === 'function'\n ? control({\n ...sizeProps,\n ...stateProps,\n })\n : cloneElement(control, {\n ...sizeProps,\n ...stateProps,\n ...elementProps,\n })}\n <Styled.Content>\n <Text as='span' appearance='body' size='inherit' color='inherit' {...textProps}>\n {label ?? children}\n </Text>\n {hint.text && (\n <Text\n as='span'\n appearance='caption'\n color={stateProps.disabled ? 'content-disabled' : 'content-onmain-secondary'}\n size={0.8}\n sizeUnits='em'\n marginTop={2}\n {...hintTextProps}\n >\n {hint.text}\n </Text>\n )}\n </Styled.Content>\n {hint.buttonProps && (\n <Styled.HintButton\n {...hint.buttonProps}\n disabled={stateProps.disabled || hint.buttonProps.disabled}\n palette={palette}\n type='button'\n >\n {hint.icon === undefined ? (\n <Icon as='span' size={20} name='helpCircle' {...hintIconProps} />\n ) : (\n <Icon\n as='span'\n size={20}\n name={typeof hint.icon === 'string' ? hint.icon : undefined}\n icon={typeof hint.icon !== 'string' ? hint.icon : undefined}\n {...hintIconProps}\n />\n )}\n </Styled.HintButton>\n )}\n </Styled.Root>\n )\n }\n ),\n {\n displayName: COMPONENT_NAME,\n sizes: SIZES,\n }\n)\n\nexport { FormLabel, COMPONENT_NAME }\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n fontSize: 26,\n },\n xxl: {\n fontSize: 24,\n },\n xl: {\n fontSize: 22,\n },\n l: {\n fontSize: 20,\n },\n m: {\n fontSize: 18,\n },\n s: {\n fontSize: 16,\n },\n xs: {\n fontSize: 14,\n },\n xxs: {\n fontSize: 12,\n },\n xxxs: {\n fontSize: 10,\n },\n}\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n width: 600,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 22,\n },\n xxl: {\n width: 600,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 22,\n },\n xl: {\n width: 600,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 22,\n },\n l: {\n width: 560,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 20,\n },\n m: {\n width: 356,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 16,\n },\n s: {\n width: 280,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 14,\n },\n xs: {\n width: 260,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 12,\n },\n xxs: {\n width: 260,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 12,\n },\n xxxs: {\n width: 260,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 12,\n },\n}\n\nexport const SIZES_LANDSCAPE: Sizes = {\n xxxl: {\n width: 900,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 22,\n },\n xxl: {\n width: 900,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 22,\n },\n xl: {\n width: 900,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 22,\n },\n l: {\n width: 792,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 20,\n },\n m: {\n width: 600,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 16,\n },\n s: {\n width: 520,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 14,\n },\n xs: {\n width: 375,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 12,\n },\n xxs: {\n width: 375,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 12,\n },\n xxxs: {\n width: 375,\n padding: '1.6em',\n borderRadius: 16,\n fontSize: 12,\n },\n}\n","import styled from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { focus } from 'mixins/focus'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport type { CSSColor } from 'shared/types'\nimport type {\n PopoverComponentPalette,\n StyledPopoverComponentProps,\n StyledPopoverComponentCloseProps,\n StyledPopoverComponentMediaProps,\n} from './types'\n\nconst shouldForwardPopoverComponentProp = createShouldForwardProp(\n (propKey) => !['orientation', 'controlsDirection', 'black', 'contrast', 'elevated'].includes(propKey)\n)\n\nexport const MediaLandscape = styled.div`\n box-sizing: border-box;\n flex-shrink: 0;\n width: 45%;\n margin-right: 1.6em;\n`\n\nexport const Media = styled.div.withConfig<StyledPopoverComponentMediaProps>({\n shouldForwardProp: (propKey) => propKey !== 'aspectRatio',\n})`\n ${(props) => `\n box-sizing: border-box;\n position: relative;\n height: 0;\n padding-bottom: ${props.aspectRatio === '16:9' ? '56.25%' : '100%'};\n border-radius: 8px;\n\n & > * {\n box-sizing: border-box;\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n }\n\n & img,\n & video {\n border-radius: inherit;\n object-fit: contain;\n height: 100%;\n width: 100%;\n } \n `}\n`\n\nexport const Footer = styled.div`\n display: flex;\n flex-wrap: wrap;\n margin-top: 1.6em;\n`\n\nconst template = (\n palette: Pick<PopoverComponentPalette, 'color' | 'backgroundColor' | 'shadowColor' | 'mediaPlaceholderColor'>\n) => `\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n filter: drop-shadow(0 6px 10px ${palette.shadowColor});\n\n & ${Media} img,\n & ${Media} video {\n background-color: ${palette.mediaPlaceholderColor};\n }\n`\n\nconst closeTemplate = (\n palette: Pick<\n PopoverComponentPalette,\n | 'closeColor'\n | 'closeBackgroundColor'\n | 'closeColorHover'\n | 'closeBackgroundColorHover'\n | 'closeColorActive'\n | 'closeBackgroundColorActive'\n | 'closeColorDisabled'\n | 'closeBackgroundColorDisabled'\n >\n) => `\n color: ${palette.closeColor};\n background-color: ${palette.closeBackgroundColor};\n &:hover {\n color: ${palette.closeColorHover};\n background-color: ${palette.closeBackgroundColorHover};\n }\n &:active {\n color: ${palette.closeColorActive};\n background-color: ${palette.closeBackgroundColorActive};\n }\n &:disabled {\n color: ${palette.closeColorDisabled};\n background-color: ${palette.closeBackgroundColorDisabled};\n }\n`\n\nexport const Root = styled.div\n .withConfig<StyledPopoverComponentProps>({\n shouldForwardProp: shouldForwardPopoverComponentProp,\n })\n .attrs<StyledPopoverComponentProps>(\n (props): Required<Pick<StyledPopoverComponentProps, 'dynamicSizeDeclaration'>> => ({\n dynamicSizeDeclaration: (size, sizeUnits) => ({\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n width: props.orientation === 'portrait' ? '28em' : '40em',\n padding: '1.6em',\n borderRadius: 16,\n }),\n })\n )`\n box-sizing: border-box;\n display: inline-flex;\n isolation: isolate;\n position: relative;\n\n ${(props) => `\n flex-direction: ${props.orientation === 'landscape' ? 'row' : 'column'};\n & ${Footer} {\n flex-direction: ${props.controlsDirection};\n }\n `}\n\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-onmain-primary'],\n shadowColor: props.elevated ? props.theme.colors['bg-oncolor-hover'] : props.theme.colors.transparent,\n mediaPlaceholderColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n\n ${responsiveSize}\n`\n\nexport const Container = styled.div`\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n flex-grow: 1;\n`\n\nexport const Header = styled.div`\n box-sizing: border-box;\n display: flex;\n align-items: center;\n margin-right: 20px;\n`\n\nexport const Content = styled.div`\n box-sizing: border-box;\n word-break: break-word;\n\n & > *:not(:last-child) {\n margin-bottom: 1.6em;\n }\n`\n\nexport const Video = styled.video`\n ${focus}\n`\n\nexport const CloseButton = styled.button.withConfig<StyledPopoverComponentCloseProps>({\n shouldForwardProp: (propKey) => !['palette'].includes(propKey),\n})`\n box-sizing: border-box;\n position: absolute;\n top: 10px;\n right: 10px;\n appearance: none;\n padding: 2px;\n margin: 0;\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n cursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')};\n\n ${(props) =>\n closeTemplate({\n closeColor: props.theme.colors['content-onmain-tertiary'],\n closeBackgroundColor: props.theme.colors.transparent,\n closeColorHover: props.theme.colors['content-onmain-primary'],\n closeBackgroundColorHover: tinycolor(props.theme.colors['bg-oncolor-hover']).lighten(20).toString() as CSSColor,\n closeColorActive: props.theme.colors['content-onmain-primary'],\n closeBackgroundColorActive: props.theme.colors['bg-oncolor-hover'],\n closeColorDisabled: props.theme.colors['content-disabled'],\n closeBackgroundColorDisabled: props.theme.colors.transparent,\n ...props.palette,\n })}\n\n ${focus}\n`\n","import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { Badge } from 'components/Badge'\nimport { Text } from 'components/Text'\nimport { Button } from 'components/Button'\nimport { Icon } from 'components/Icon'\nimport { Skeleton } from 'components/Skeleton'\nimport { SIZES, SIZES_LANDSCAPE } from './constants'\nimport * as Styled from './style'\nimport type { PopoverComponentProps } from './types'\n\nconst COMPONENT_NAME = 'PopoverComponent'\n\n/**\n *\n * Component accepts all \\<div\\> attributes.\n *\n * Responsive \"size\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [PopoverComponentProps](https://github.com/foxford/ui/blob/master/src/components/PopoverComponent/types.ts)\n *\n */\nconst PopoverComponent: React.ForwardRefExoticComponent<PopoverComponentProps> = withMergedProps<\n PopoverComponentProps,\n HTMLDivElement\n>(\n forwardRef((props, ref) => {\n const {\n size = 's',\n orientation = 'portrait',\n controlsDirection = 'row',\n badge = {},\n captionProps = {},\n titleProps = {},\n contentProps = {},\n closeButtonProps = {},\n media = {},\n controls = {},\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n loading,\n caption,\n title,\n content,\n closeFn,\n palette,\n showCloseButton,\n ...restProps\n } = props\n\n const sizeProps = {\n size,\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n }\n\n const { badgeProps = {} } = badge\n\n const { imgProps = {}, videoProps = {} } = media\n\n const { text: secondaryButtonText, buttonProps: secondaryButtonProps = {} } = controls.secondary ?? {}\n\n const { text: primaryButtonText, buttonProps: primaryButtonProps = {} } = controls.primary ?? {}\n\n return (\n <Styled.Root\n {...restProps}\n {...sizeProps}\n palette={palette}\n orientation={orientation}\n controlsDirection={controlsDirection}\n ref={ref}\n >\n {showCloseButton && (\n <Styled.CloseButton\n {...closeButtonProps}\n onClick={(evt) => {\n if (typeof closeFn === 'function') closeFn()\n if (typeof closeButtonProps.onClick === 'function') closeButtonProps.onClick(evt)\n }}\n palette={palette}\n type='button'\n >\n <Icon as='span' name='close' size={24} />\n </Styled.CloseButton>\n )}\n {orientation === 'landscape' && (\n <>\n {loading && (\n <Styled.MediaLandscape>\n <Styled.Media aspectRatio='1:1'>\n <Skeleton />\n </Styled.Media>\n </Styled.MediaLandscape>\n )}\n {!loading && (imgProps.src || videoProps.src) && (\n <Styled.MediaLandscape>\n <Styled.Media aspectRatio='1:1'>\n {imgProps.src ? (\n <img alt='' {...imgProps} />\n ) : (\n <Styled.Video controls controlsList='nofullscreen' disablePictureInPicture {...videoProps} />\n )}\n </Styled.Media>\n </Styled.MediaLandscape>\n )}\n </>\n )}\n <Styled.Container>\n <Styled.Content>\n {(badge.text || caption || loading || showCloseButton) && (\n <Styled.Header>\n {loading ? (\n <Skeleton width='20%'>\n <Badge {...sizeProps} resetDefaultMargin {...badgeProps} />\n </Skeleton>\n ) : (\n <>\n {badge.text && (\n <Badge {...sizeProps} borderRadius={8} marginRight={12} resetDefaultMargin {...badgeProps}>\n {badge.text}\n </Badge>\n )}\n {caption && (\n <Text\n as='span'\n appearance='caption'\n size={0.9}\n sizeUnits='em'\n color='content-onmain-tertiary'\n weight={700}\n {...captionProps}\n >\n {caption}\n </Text>\n )}\n </>\n )}\n </Styled.Header>\n )}\n {orientation === 'portrait' && (\n <>\n {loading && (\n <Styled.Media aspectRatio='16:9'>\n <Skeleton />\n </Styled.Media>\n )}\n {!loading && (imgProps.src || videoProps.src) && (\n <Styled.Media aspectRatio='16:9'>\n {imgProps.src ? (\n <img alt='' {...imgProps} />\n ) : (\n <Styled.Video controls controlsList='nofullscreen' disablePictureInPicture {...videoProps} />\n )}\n </Styled.Media>\n )}\n </>\n )}\n {(title || content || loading) && (\n <div>\n {loading ? (\n <>\n <Skeleton borderRadius={4} marginBottom={0.6} marginUnits='em'>\n <Text appearance='subheading' size={1.4} sizeUnits='em' {...titleProps} />\n </Skeleton>\n <Skeleton borderRadius={4} width='70%' marginBottom={0.4} marginUnits='em'>\n <Text appearance='body' size='inherit' {...contentProps} />\n </Skeleton>\n <Skeleton borderRadius={4} width='50%'>\n <Text appearance='body' size='inherit' {...contentProps} />\n </Skeleton>\n </>\n ) : (\n <>\n {title && (\n <Text\n as='h2'\n appearance='subheading'\n size={1.4}\n color='inherit'\n marginBottom={content ? 0.4 : undefined}\n sizeUnits='em'\n marginUnits='em'\n {...titleProps}\n >\n {title}\n </Text>\n )}\n {content && (\n <Text as='p' appearance='body' size='inherit' color='inherit' {...contentProps}>\n {content}\n </Text>\n )}\n </>\n )}\n </div>\n )}\n </Styled.Content>\n {(secondaryButtonText || primaryButtonText || loading) && (\n <Styled.Footer>\n {loading ? (\n <Skeleton width='100%'>\n <Button preset='brand' {...sizeProps} />\n </Skeleton>\n ) : (\n <>\n {secondaryButtonText && (\n <Button\n preset='brand'\n black\n outline\n type='button'\n marginRight={controlsDirection === 'row' ? 6 : undefined}\n marginBottom={controlsDirection === 'column' ? 6 : undefined}\n {...sizeProps}\n {...secondaryButtonProps}\n >\n {secondaryButtonText}\n </Button>\n )}\n {primaryButtonText && (\n <Button preset='brand' black type='button' {...sizeProps} {...primaryButtonProps}>\n {primaryButtonText}\n </Button>\n )}\n </>\n )}\n </Styled.Footer>\n )}\n </Styled.Container>\n </Styled.Root>\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: (props) => {\n return props.orientation === 'landscape' ? SIZES_LANDSCAPE : SIZES\n },\n }\n)\n\nexport { PopoverComponent }\n\nexport { COMPONENT_NAME, SIZES_LANDSCAPE, SIZES }\n","import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { Tooltip } from 'components/Tooltip'\nimport { PopoverComponent, SIZES_LANDSCAPE, SIZES } from 'components/PopoverComponent'\nimport type { PopoverProps } from './types'\n\nconst COMPONENT_NAME = 'Popover'\n\n/**\n *\n * Component accepts [\"react-floater\"](https://www.npmjs.com/package/react-floater/v/0.8.2) v0.8.2 props.\n *\n * Responsive \"size\" props are supported.\n *\n * Exposed \"ref\" attached to popover component root.\n *\n * See full [PopoverProps](https://github.com/foxford/ui/blob/master/src/components/Popover/types.ts)\n */\nconst Popover: React.ForwardRefExoticComponent<PopoverProps> & { Component: typeof PopoverComponent } = Object.assign(\n withMergedProps<PopoverProps, HTMLDivElement>(\n forwardRef((props, ref) => {\n const {\n size = 's',\n sizes,\n sizeUnits,\n palette,\n orientation,\n loading,\n badge,\n caption,\n captionProps,\n titleProps,\n contentProps,\n controlsDirection,\n media,\n controls,\n ...restProps\n } = props\n\n return (\n <Tooltip\n {...restProps}\n preset='brand'\n size={size}\n ref={ref}\n styles={{\n arrow: {\n spread: 20,\n length: 12,\n },\n }}\n component={\n restProps.component ?? (\n <PopoverComponent\n sizes={sizes}\n sizeUnits={sizeUnits}\n palette={palette}\n orientation={orientation}\n loading={loading}\n badge={badge}\n caption={caption}\n captionProps={captionProps}\n title={restProps.title}\n titleProps={titleProps}\n content={restProps.content}\n contentProps={contentProps}\n controlsDirection={controlsDirection}\n media={media}\n controls={controls}\n />\n )\n }\n />\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: (props) => {\n return props.orientation === 'landscape' ? SIZES_LANDSCAPE : SIZES\n },\n }\n ),\n {\n Component: PopoverComponent,\n }\n)\n\nexport { Popover }\n\nexport { COMPONENT_NAME }\n","import styled, { css } from 'styled-components'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { responsiveMargin } from 'mixins/responsive-margin'\nimport { focus } from 'mixins/focus'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { Text } from 'components/Text'\nimport type { StyledListItemProps, ListItemPalette, TypographyProps } from './types'\n\nconst shouldForwardListItemProp = createShouldForwardProp(\n (propKey) => !['danger', 'active', 'onColored', 'mediaBorderRadius', 'borderRadius'].includes(propKey)\n)\n\nexport const Media = styled.span`\n box-sizing: border-box;\n flex-shrink: 0;\n width: 2.2em;\n height: 2.2em;\n\n & > * {\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n }\n`\n\nconst template = (palette: ListItemPalette) => `\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n &:hover {\n color: ${palette.colorHover};\n background-color: ${palette.backgroundColorHover};\n }\n\n & ${Media} img {\n background-color: ${palette.mediaPlaceholderColor};\n }\n`\n\nconst COLOR_SCHEMA = {\n onColored: {\n danger: {\n disabled: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-disabled'],\n backgroundColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-oncolor-disabled'],\n backgroundColorHover: props.theme.colors.transparent,\n mediaPlaceholderColor: props.theme.colors['bg-oncontrast-hover'],\n ...props.palette,\n })}\n `,\n active: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['alert-error'],\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.theme.colors['alert-error'],\n mediaPlaceholderColor: props.theme.colors['bg-oncontrast-hover'],\n ...props.palette,\n })}\n `,\n default: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.theme.colors['bg-oncontrast-hover'],\n mediaPlaceholderColor: props.theme.colors['bg-oncontrast-hover'],\n ...props.palette,\n })}\n `,\n },\n secondary: {\n disabled: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-disabled'],\n backgroundColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-oncolor-disabled'],\n backgroundColorHover: props.theme.colors.transparent,\n mediaPlaceholderColor: props.theme.colors['bg-oncontrast-hover'],\n ...props.palette,\n })}\n `,\n active: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-brand-primary'],\n backgroundColor: props.theme.colors['bg-brand-primary-100-active'],\n colorHover: props.theme.colors['content-brand-primary'],\n backgroundColorHover: props.theme.colors['bg-brand-primary-100-active'],\n mediaPlaceholderColor: props.theme.colors['bg-oncontrast-hover'],\n ...props.palette,\n })}\n `,\n default: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.theme.colors['bg-oncontrast-hover'],\n mediaPlaceholderColor: props.theme.colors['bg-oncontrast-hover'],\n ...props.palette,\n })}\n `,\n },\n primary: {\n disabled: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-disabled'],\n backgroundColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-oncolor-disabled'],\n backgroundColorHover: props.theme.colors.transparent,\n mediaPlaceholderColor: props.theme.colors['bg-oncontrast-hover'],\n ...props.palette,\n })}\n `,\n active: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-brand-primary'],\n backgroundColor: props.theme.colors['bg-brand-primary-100-active'],\n colorHover: props.theme.colors['content-brand-primary'],\n backgroundColorHover: props.theme.colors['bg-brand-primary-100-active'],\n mediaPlaceholderColor: props.theme.colors['bg-oncontrast-hover'],\n ...props.palette,\n })}\n `,\n default: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.theme.colors['bg-oncontrast-hover'],\n mediaPlaceholderColor: props.theme.colors['bg-oncontrast-hover'],\n ...props.palette,\n })}\n `,\n },\n },\n default: {\n danger: {\n disabled: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-disabled'],\n backgroundColorHover: props.theme.colors.transparent,\n mediaPlaceholderColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n active: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['alert-error'],\n colorHover: props.theme.colors['content-oncolor-primary'],\n backgroundColorHover: props.theme.colors['alert-error'],\n mediaPlaceholderColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n default: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['alert-error'],\n backgroundColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['alert-error'],\n backgroundColorHover: props.theme.colors['bg-oncolor-hover'],\n mediaPlaceholderColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n },\n secondary: {\n disabled: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-disabled'],\n backgroundColorHover: props.theme.colors.transparent,\n mediaPlaceholderColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n active: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-brand-primary'],\n backgroundColor: props.theme.colors['bg-brand-primary-100-active'],\n colorHover: props.theme.colors['content-brand-primary'],\n backgroundColorHover: props.theme.colors['bg-brand-primary-100-active'],\n mediaPlaceholderColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n default: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-brand-primary'],\n backgroundColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-brand-primary'],\n backgroundColorHover: props.theme.colors['bg-oncolor-hover'],\n mediaPlaceholderColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n },\n primary: {\n disabled: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-disabled'],\n backgroundColorHover: props.theme.colors.transparent,\n mediaPlaceholderColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n active: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-brand-primary'],\n backgroundColor: props.theme.colors['bg-brand-primary-100-active'],\n colorHover: props.theme.colors['content-brand-primary'],\n backgroundColorHover: props.theme.colors['bg-brand-primary-100-active'],\n mediaPlaceholderColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n default: css<StyledListItemProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-onmain-primary'],\n backgroundColorHover: props.theme.colors['bg-oncolor-hover'],\n mediaPlaceholderColor: props.theme.colors['bg-oncolor-hover'],\n ...props.palette,\n })}\n `,\n },\n },\n}\n\nexport const Root = styled.button\n .withConfig<StyledListItemProps>({\n shouldForwardProp: shouldForwardListItemProp,\n })\n .attrs<StyledListItemProps>(<Required<Pick<StyledListItemProps, 'dynamicSizeDeclaration'>>>{\n dynamicSizeDeclaration: (size, sizeUnits) => ({\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n padding: '0.4em 0.8em',\n }),\n })`\n ${(props) => `\n box-sizing: border-box;\n display: flex;\n align-items: center;\n isolation: isolate;\n position: relative;\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n border-radius: ${typeof props.borderRadius === 'string' ? props.borderRadius : `${props.borderRadius}px`};\n border: none;\n text-decoration: none;\n appearance: none;\n text-align: start;\n width: 100%;\n min-width: min-content;\n transition-property: background-color;\n transition-duration: 150ms;\n transition-timing-function: ease-in;\n\n & ${Media} {\n border-radius: ${\n typeof props.mediaBorderRadius === 'string' ? props.mediaBorderRadius : `${props.mediaBorderRadius}px`\n };\n }\n\n & > *:not(:last-child) {\n margin-right: 12px;\n }\n `}\n\n ${(props) => {\n const schema = props.onColored ? COLOR_SCHEMA.onColored : COLOR_SCHEMA.default\n let schemaVariant = schema.primary\n\n if (props.secondary) schemaVariant = schema.secondary\n if (props.danger) schemaVariant = schema.danger\n\n if (props.disabled) return schemaVariant.disabled\n if (props.active) return schemaVariant.active\n\n return schemaVariant.default\n }}\n\n ${focus}\n ${responsiveSize}\n ${responsiveMargin}\n`\n\nexport const Content = styled.span`\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n`\n\nexport const Img = styled.img`\n box-sizing: border-box;\n border-radius: inherit;\n object-fit: contain;\n`\n\nexport const Typography = styled(Text).withConfig<TypographyProps>({\n shouldForwardProp: (propKey) => propKey !== 'ellipsis',\n})`\n ${(props) =>\n props.ellipsis &&\n `\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n min-width: 100%;\n width: 5ch;\n `}\n`\n","import { forwardRef, cloneElement, isValidElement } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { Icon } from 'components/Icon'\nimport { Skeleton } from 'components/Skeleton'\nimport { Text } from 'components/Text'\nimport type { TextProps } from 'components/Text'\nimport { SIZES } from './constants'\nimport * as Styled from './style'\nimport type { ListItemProps } from './types'\n\nconst COMPONENT_NAME = 'ListItem'\n\n/**\n *\n * Component accepts all root HTML attributes.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [ListItemProps](https://github.com/foxford/ui/blob/master/src/components/ListItem/types.ts)\n */\nconst ListItem: React.ForwardRefExoticComponent<ListItemProps> = withMergedProps<ListItemProps>(\n forwardRef((props, ref) => {\n const {\n size = 's',\n borderRadius = 0,\n mediaBorderRadius = '50%',\n controlPosition = 'left',\n captionPosition = 'bottom',\n ellipsis = true,\n iconProps = {},\n textProps = {},\n captionProps = {},\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n text,\n children,\n control,\n icon,\n media,\n caption,\n addon,\n onColored,\n disabled,\n loading,\n ...restProps\n } = props\n\n let rootNode: ListItemProps['as']\n\n if (control) rootNode = 'label'\n if (restProps.href) rootNode = 'a'\n if (restProps.as) rootNode = restProps.as\n\n let rootType: ListItemProps['type']\n\n if (!rootNode) rootType = 'button'\n if (restProps.type) rootType = restProps.type\n\n const sizeProps = {\n size,\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n }\n\n const stateProps = {\n onColored,\n disabled,\n }\n\n const controlProps =\n typeof control === 'object' && typeof control.props === 'object' && control.props !== null ? control.props : {}\n\n const [before, after] = Array.isArray(icon) ? icon : [icon]\n\n const textBaseProps: TextProps = { appearance: 'body', size: 'inherit', color: 'inherit' }\n\n const captionBaseProps: TextProps = { appearance: 'body', size: 0.9, sizeUnits: 'em', color: 'inherit' }\n\n return (\n <Styled.Root\n {...sizeProps}\n {...stateProps}\n {...restProps}\n as={rootNode}\n type={rootType}\n borderRadius={borderRadius}\n mediaBorderRadius={mediaBorderRadius}\n ref={ref}\n >\n {typeof children === 'function' ? (\n children({\n textProps: textBaseProps,\n captionProps: captionBaseProps,\n })\n ) : (\n <>\n {loading ? (\n <>\n {media && (\n <Styled.Media>\n <Skeleton width='100%' height='100%' borderRadius='inherit' />\n </Styled.Media>\n )}\n <Styled.Content>\n <Skeleton width='100%' borderRadius={4}>\n <Text {...textBaseProps} {...textProps} />\n </Skeleton>\n </Styled.Content>\n </>\n ) : (\n <>\n {control &&\n controlPosition === 'left' &&\n (typeof control === 'function'\n ? control({ ...sizeProps, ...stateProps })\n : cloneElement(control, { ...sizeProps, ...stateProps, ...controlProps }))}\n {before && (\n <Icon\n preset='brand'\n name={typeof before === 'string' ? before : undefined}\n icon={typeof before !== 'string' ? before : undefined}\n {...iconProps}\n />\n )}\n {media && (\n <Styled.Media>{isValidElement(media) ? media : <Styled.Img alt='' {...media} />}</Styled.Media>\n )}\n {(children || text || caption) && (\n <Styled.Content>\n {caption && captionPosition === 'top' && (\n <Styled.Typography forwardedAs='span' ellipsis={ellipsis} {...captionBaseProps} {...captionProps}>\n {caption}\n </Styled.Typography>\n )}\n {(children || text) && (\n <Styled.Typography forwardedAs='span' ellipsis={ellipsis} {...textBaseProps} {...textProps}>\n {children ?? text}\n </Styled.Typography>\n )}\n {caption && captionPosition === 'bottom' && (\n <Styled.Typography forwardedAs='span' ellipsis={ellipsis} {...captionBaseProps} {...captionProps}>\n {caption}\n </Styled.Typography>\n )}\n </Styled.Content>\n )}\n {addon}\n {after && (\n <Icon\n preset='brand'\n name={typeof after === 'string' ? after : undefined}\n icon={typeof after !== 'string' ? after : undefined}\n {...iconProps}\n />\n )}\n {control &&\n controlPosition === 'right' &&\n (typeof control === 'function'\n ? control({ ...sizeProps, ...stateProps })\n : cloneElement(control, { ...sizeProps, ...stateProps, ...controlProps }))}\n </>\n )}\n </>\n )}\n </Styled.Root>\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: SIZES,\n }\n)\n\nexport { ListItem }\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n fontSize: 20,\n paddingTop: 16,\n paddingRight: 20,\n paddingBottom: 16,\n paddingLeft: 20,\n },\n xxl: {\n fontSize: 20,\n paddingTop: 16,\n paddingRight: 20,\n paddingBottom: 16,\n paddingLeft: 20,\n },\n xl: {\n fontSize: 20,\n paddingTop: 16,\n paddingRight: 20,\n paddingBottom: 16,\n paddingLeft: 20,\n },\n l: {\n fontSize: 18,\n paddingTop: 10,\n paddingRight: 16,\n paddingBottom: 10,\n paddingLeft: 16,\n },\n m: {\n fontSize: 16,\n paddingTop: 8,\n paddingRight: 12,\n paddingBottom: 8,\n paddingLeft: 12,\n },\n s: {\n fontSize: 14,\n paddingTop: 6,\n paddingRight: 10,\n paddingBottom: 6,\n paddingLeft: 10,\n },\n xs: {\n fontSize: 14,\n paddingTop: 6,\n paddingRight: 10,\n paddingBottom: 6,\n paddingLeft: 10,\n },\n xxs: {\n fontSize: 14,\n paddingTop: 6,\n paddingRight: 10,\n paddingBottom: 6,\n paddingLeft: 10,\n },\n xxxs: {\n fontSize: 14,\n paddingTop: 6,\n paddingRight: 10,\n paddingBottom: 6,\n paddingLeft: 10,\n },\n}\n","import type { Sizes } from 'shared/types'\n\nexport const SIZES: Sizes = {\n xxxl: {\n width: 10,\n height: 10,\n borderRadius: '50%',\n },\n xxl: {\n width: 10,\n height: 10,\n borderRadius: '50%',\n },\n xl: {\n width: 10,\n height: 10,\n borderRadius: '50%',\n },\n l: {\n width: 10,\n height: 10,\n borderRadius: '50%',\n },\n m: {\n width: 6,\n height: 6,\n borderRadius: '50%',\n },\n s: {\n width: 4,\n height: 4,\n borderRadius: '50%',\n },\n xs: {\n width: 4,\n height: 4,\n borderRadius: '50%',\n },\n xxs: {\n width: 4,\n height: 4,\n borderRadius: '50%',\n },\n xxxs: {\n width: 4,\n height: 4,\n borderRadius: '50%',\n },\n}\n\nexport const SIZES_SQUARE: Sizes = {\n xxxl: {\n width: 'min-content',\n minWidth: 22,\n height: 22,\n borderRadius: 5,\n fontSize: 14,\n },\n xxl: {\n width: 'min-content',\n minWidth: 22,\n height: 22,\n borderRadius: 5,\n fontSize: 14,\n },\n xl: {\n width: 'min-content',\n minWidth: 22,\n height: 22,\n borderRadius: 5,\n fontSize: 14,\n },\n l: {\n width: 'min-content',\n minWidth: 22,\n height: 22,\n borderRadius: 5,\n fontSize: 14,\n },\n m: {\n width: 'min-content',\n minWidth: 18,\n height: 18,\n borderRadius: 4,\n fontSize: 12,\n },\n s: {\n width: 'min-content',\n minWidth: 16,\n height: 16,\n borderRadius: 4,\n fontSize: 10,\n },\n xs: {\n width: 'min-content',\n minWidth: 16,\n height: 16,\n borderRadius: 4,\n fontSize: 10,\n },\n xxs: {\n width: 'min-content',\n minWidth: 16,\n height: 16,\n borderRadius: 4,\n fontSize: 10,\n },\n xxxs: {\n width: 'min-content',\n minWidth: 16,\n height: 16,\n borderRadius: 4,\n fontSize: 10,\n },\n}\n","import styled, { keyframes, css } from 'styled-components'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport type { StyledIndicatorProps, IndicatorPalette } from './types'\n\nconst shouldForwardIndicatorProp = createShouldForwardProp((propKey) => {\n return !['square', 'black', 'grey', 'onColored', 'pulse', 'pulseIterationCount', 'frame'].includes(propKey)\n})\n\nconst pulseAnimation = keyframes`\n 0% {\n opacity: 1;\n transform: scale(1);\n }\n 75% {\n opacity: 0;\n }\n 100% {\n transform: scale(4);\n }\n`\n\nexport const Foreground = styled.span`\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n z-index: 1;\n border-radius: inherit;\n background-color: inherit;\n`\n\nconst template = (palette: IndicatorPalette) => `\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n\n & > ${Foreground} {\n box-shadow: 0 0 0 1px ${palette.shadowColor};\n }\n`\n\nconst COLOR_SCHEMA = {\n onColored: {\n primary: css<StyledIndicatorProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-brand-primary'],\n backgroundColor: props.theme.colors['bg-oncolor-primary'],\n shadowColor: props.theme.colors['bg-oncolor-primary'],\n ...props.palette,\n })}\n `,\n secondary: css<StyledIndicatorProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['bg-brand-secondary-500'],\n shadowColor: props.theme.colors['bg-oncolor-primary'],\n ...props.palette,\n })}\n `,\n black: css<StyledIndicatorProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['bg-onmain-contrast'],\n shadowColor: props.theme.colors['bg-oncolor-primary'],\n ...props.palette,\n })}\n `,\n grey: css<StyledIndicatorProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['bg-oncolor-secondary'],\n shadowColor: props.theme.colors['bg-oncolor-primary'],\n ...props.palette,\n })}\n `,\n },\n default: {\n primary: css<StyledIndicatorProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['bg-brand-primary-500'],\n shadowColor: props.theme.colors['bg-onmain-primary'],\n ...props.palette,\n })}\n `,\n secondary: css<StyledIndicatorProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['bg-brand-secondary-500'],\n shadowColor: props.theme.colors['bg-onmain-primary'],\n ...props.palette,\n })}\n `,\n black: css<StyledIndicatorProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-oncolor-primary'],\n backgroundColor: props.theme.colors['bg-onmain-contrast'],\n shadowColor: props.theme.colors['bg-onmain-primary'],\n ...props.palette,\n })}\n `,\n grey: css<StyledIndicatorProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n backgroundColor: props.theme.colors['bg-onmain-divider'],\n shadowColor: props.theme.colors['bg-onmain-primary'],\n ...props.palette,\n })}\n `,\n },\n}\n\nexport const Root = styled.span\n .withConfig<StyledIndicatorProps>({\n shouldForwardProp: shouldForwardIndicatorProp,\n })\n .attrs<StyledIndicatorProps>(\n (props): Required<Pick<StyledIndicatorProps, 'dynamicSizeDeclaration'>> => ({\n dynamicSizeDeclaration: (size, sizeUnits) => ({\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n width: props.square ? 'min-content' : '1em',\n minWidth: props.square ? '1.6em' : undefined,\n height: props.square ? '1.6em' : '1em',\n borderRadius: props.square ? '0.2em' : '50%',\n }),\n })\n )`\n box-sizing: border-box;\n position: relative;\n isolation: isolate;\n cursor: default;\n display: inline-block;\n flex-shrink: 0;\n\n ${(props) => {\n const schema = props.onColored ? COLOR_SCHEMA.onColored : COLOR_SCHEMA.default\n\n if (props.grey) return schema.grey\n if (props.black) return schema.black\n if (props.secondary) return schema.secondary\n\n return schema.primary\n }}\n\n ${(props) =>\n !props.frame &&\n `\n & > ${Foreground} {\n box-shadow: none;\n }\n `}\n\n ${(props) =>\n props.pulse &&\n css`\n &::before,\n &::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n opacity: 0;\n background-color: inherit;\n border-radius: inherit;\n animation-name: ${pulseAnimation};\n animation-duration: 3200ms;\n animation-iteration-count: ${typeof props.pulseIterationCount === 'number'\n ? props.pulseIterationCount\n : 'infinite'};\n }\n\n &::after {\n animation-delay: 800ms;\n }\n `}\n\n ${responsiveSize}\n`\n","import { forwardRef } from 'react'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { Text } from 'components/Text'\nimport { SIZES, SIZES_SQUARE } from './constants'\nimport * as Styled from './style'\nimport type { IndicatorProps } from './types'\n\nconst COMPONENT_NAME = 'Indicator'\n\nconst indicatorPropsWithContent = (props: IndicatorProps): boolean =>\n (props.children !== undefined && props.children !== null) || (props.text !== undefined && props.text !== null)\n\n/**\n *\n * Component accepts all \\<span\\> attributes.\n *\n * Responsive \"size\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [IndicatorProps](https://github.com/foxford/ui/blob/master/src/components/Indicator/types.ts)\n */\nconst Indicator: React.ForwardRefExoticComponent<IndicatorProps> = withMergedProps<IndicatorProps, HTMLSpanElement>(\n forwardRef((props, ref) => {\n const { size = 'm', textProps = {}, children, text, ...restProps } = props\n\n const hasContent = indicatorPropsWithContent(props)\n\n return (\n <Styled.Root {...restProps} size={size} square={hasContent} ref={ref}>\n <Styled.Foreground>\n {hasContent && (\n <Text\n as='span'\n appearance='body'\n size='inherit'\n color='inherit'\n whiteSpace='nowrap'\n weight={700}\n lineHeight={1}\n marginTop={1}\n marginRight='0.3em'\n marginLeft='0.3em'\n {...textProps}\n >\n {children ?? text}\n </Text>\n )}\n </Styled.Foreground>\n </Styled.Root>\n )\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: (props) => (indicatorPropsWithContent(props) ? SIZES_SQUARE : SIZES),\n }\n)\n\nexport { Indicator }\n","/* eslint-disable no-unused-vars */\nimport { useCallback } from 'react'\nimport { DefaultTheme, ThemeProvider as StyledThemeProvider } from 'styled-components'\nimport { mergeDeepLeft } from 'ramda'\nimport { UiGlobalStyles } from './global-styled'\nimport { defaultTheme } from './themes'\n\ninterface ThemeProviderProps {\n theme: Partial<DefaultTheme> | ((topLevelTheme: DefaultTheme) => DefaultTheme)\n children: React.ReactNode\n}\n\nexport function ThemeProvider(props: ThemeProviderProps) {\n const mergeTheme = useCallback(\n (topLevelTheme: DefaultTheme = defaultTheme): DefaultTheme => {\n const mergingTheme = props.theme\n\n if (typeof mergingTheme === 'function') {\n return mergingTheme(topLevelTheme)\n }\n\n if (typeof mergingTheme === 'object' && !Array.isArray(mergingTheme) && mergingTheme !== null) {\n return mergeDeepLeft(mergingTheme, topLevelTheme) as DefaultTheme\n }\n\n return topLevelTheme\n },\n [props.theme]\n )\n\n return (\n <StyledThemeProvider theme={mergeTheme}>\n <UiGlobalStyles />\n {props.children}\n </StyledThemeProvider>\n )\n}\n","import { css } from 'styled-components'\n\nexport interface VAlign {\n vAlign?: 'top' | 'middle' | 'bottom' | 'text-top' | 'text-bottom' | 'baseline'\n}\n\nexport const vAlign = (vAlign: 'top' | 'middle' | 'bottom' | 'text-top' | 'text-bottom' | 'baseline') => css`\n vertical-align: ${vAlign};\n`\n"],"names":["allowedHexColorCodes","hexToRgbA","hex","alpha","test","Error","codeGroupLength","Math","floor","length","hexCodePattern","RegExp","groupLength","r","g","b","matchAll","map","_ref","code","parseInt","padEnd","concat","DefaultColorNames","BaseColorNames","BrandColorNames","SocialColorNames","socialColors","Object","freeze","facebook","twitter","youtube","instagrammagenta","instagramblue","instagrampurple","instagramorange","instagramyellow","pinterest","googleplus","linkedin","vimeoblue","vimeogreen","vimeoorange","vimeopink","tumblr","snapchat","whatsappgreen","whatsappteal1","whatsappteal2","foursquarepink","foursquareblue","swarm","skypeblue","skypegreen","android","stumbleupon","flickrpink","flickrblue","yahoo","soundcloud","spotifygreen","spotifydarkgreen","dribbble","reddit","deviantart","pocket","quora","quorablue","slideshareorange","slideshareblue","telegram","fivehundredpx","listlyorange","listlyblue","vine","vk","ok","mailru","colors","white","black","tundora","paleSky","bostonBlue","atlantisBrightly","cinnabar","sail","bittersweet","turquoise","dodgerBlue","mantis","azure","bahamaBlue","shamrock","olive","copperRose","cyan","plum","hokeyPokey","monaLisa","mariner","heliotrope","dandelion","fruitSalad","fuchsiaBlue","persianGreen","watermelon","tropaz","lima","mintTulip","carnationPink","paleRose","deYork","peppermint","cornflowerBlue","colonialWhite","cherokee","supernova","picasso","bilobaFlower","linkWater","transparent","mineShaft","silver","alto","mercury","wildSand","whiteGray","alabaster","whiteLilac","atlantis","yellowOrange","mystic","pomegranate","oliveDrab","curious","orangePeel","nebula","seaNymph","chromeWhite","onahau","citrineWhite","coralReef","creemBrulee","frangipani","yourPink","periwinkleGray","baliHai","primary","accent","catalinaBlue","danube","midnightDeep","anakiva","azureRadiance","blueMarguerite","blueViolet","bossanova","capeCod","cerulean","congressBlue","congressBlueLight","creamBrulee","denim","earlyDawn","eminence","endeavour","fern","ghost","grape","gunsmoke","highland","honeyFlower","honeyFlower2","honeyFlower3","jagger","jordyBlue","jumbo","mediumPurple","midnightBlue","moodyBlue","nandor","nevada","olivine","parsley","pattensBlue","pattensBlueLight","scarletGum","scienceBlue","scienceBlue03","seance","smalt","smaltLight","tarawera","toryBlue","toryBlueDark","dodgerBlueDark","chambray","chambrayDark","pomegranateDark","azureRadiance2","curiousBlue","jungleGreen","violetDeep","stormGray","zeus","athensGray","marinerLight","royalBlue","melrose","zircon","veniceBlue","solitude","selago","coconutCream","cinderella","royalBlueDark","persianBlue","ultramarine","cornflowerBlueDark","jungleGreenDark","mountainMeadow","dodgerBlueDim","zirconDark","pizazz","madison","ebony","mediumRedViolet","fruitSaladLight","shark","azureRadianceLight","carnation","limaGreen","mysin","studio","athsSpecial","thunderbird","denimDark","puertoRico","lochmara","aliceBlue","perano","portage","royalBlueDim","sailDim","solitaire","capeHoney","fairPink","romantic","polar","cruise","selagoLight","moonRaker","pippin","yourPinkDark","peppermintLight","fringyFlower","heliotropeDark","pictonBlue","mediumPurpleRed","scooter","chambrayDim","dodgerBlueLight","selectiveYellow","scienceBlueDark","dodgerBlueDeep","kashmirBlue","turbo","denimDim","orangeRoughy","selagoDim","congressBlueNight","azureRadianceMedium","honeyFlowerDim","jaguar","kournikova","drover","flamingo","mineShaftDim","periwinkle","colonialWhiteDim","pattensBlueDeep","solitudeDim","periwinkleDim","rioGrande","kournikovaDim","UnitColorNames","unitColors","profession","professionDark","camps","campsDark","courses","coursesDark","openLesson","openLessonDark","externat","externatDark","olympiad","olympiadDark","textbook","textbookDark","tutors","tutorsDark","training","trainingDark","mathematics","physics","informatics","chemistry","biology","english","russian","history","society","geography","developing","literature","intersubject","primarySchool","recommended","astronomy","ecology","technology","languages","art","physicalCulture","logic","businessLogic","rap","ikt","kids","fgos","blue","red","green","grey","darkgrey","lightgrey","superlightgrey","ColorNames","_colors","keys","colorName","css","_socialColors","_unitColors","UiGlobalStyles","createGlobalStyle","SizeInput","BREAKPOINTS","xl","l","m","s","xs","xxs","baseColors","defaultTheme","breakpoints","borderRadius","textColor","fallbackColor","zIndex","modal","tooltip","classNamePrefix","defaultInputControlsWidth","utils","relBuilder","link","target","relStr","e","o","url","hostname","arguments","URL","endsWith","window","location","push","join","mode","preset","name","components","Arrow","size","Button","Checkbox","Tooltip","motherLightTheme","_objectSpread","default","motherDarkTheme","ColorsDark","babyLightTheme","babyDarkTheme","teenLightTheme","teenDarkTheme","adultLightTheme","adultDarkTheme","CONDITIONS","MAX","maxWidth","point","MIN","minWidth","RANGE","point1","point2","createMediaQuery","condition","_len","points","Array","_key","params","_len2","args","_key2","props","_props$theme$breakpoi","_props$theme","contextBreakpoints","theme","undefined","and","screenXs","screenS","screenM","screenL","screenXl","screenMaxXxs","screenMaxXs","screenMinXs","screenMaxS","screenMinS","screenMaxM","screenMinM","screenMaxL","screenMinL","screenMaxXl","screenMinXl","SIZES_LATIN","xxxl","xxl","xxxs","FONT_SIZES_LATIN","DESKTOP_FIRST_KEYS","MOBILE_FIRST_KEYS","getLatinSizeMapByCssProperty","cssProperty","buildMediaQuery","value","property","screenQueryFunction","sizing","sizes","_sizeMap$value","sizeMap","getKey","key","desktopFirst","a","aKey","bKey","findIndex","el","getMediaQueryByResponsiveProp","prop","t","n","includes","SCREEN_SIZE_MAP","XXS","XS","S","M","L","XL","SCREEN_SIZE_MAP_BY_DEVICE_ALIAS","desktop","tablet","mobile","responsiveNamedProperty","predefinedSizes","customSizeHandler","sort","filter","Boolean","item","responsiveProperty","propName","_props$propName","_cssProperty","isArray","_templateObject","_taggedTemplateLiteral","_templateObject2","_templateObject3","_templateObject4","_templateObject6","_templateObject9","getColor","color","_props$theme2","colorVal","_color","useClassname","componentName","originalClassName","useTheme","cx","SIZES_EMPTY","useMergedPalette","componentProps","_componentProps$palet","palette","reduce","injected","_theme$colors$palette","withMergedProps","WrappedComponent","options","WithMergedProps","forwardRef","wrappedComponentProps","ref","displayName","contextProps","context","mergedProps","mergeDeepLeft","_mergedProps$preset","_theme$components","_context$componentNam","_componentProps$sizes","componentSizes","sizesDefault","sizesProp","_jsx","_path","_extends","assign","i","source","hasOwnProperty","call","apply","this","_path2","_circle","iconPackIcons","IconPack","icons","toLowerCase","slice","defaultIcons","book","React","createElement","viewBox","xmlns","fill","d","blackBoard","fillRule","clipRule","burger","eye","email","width","height","unsort","person","diamond","diamondFilled","diamondSolid","cy","stroke","strokeWidth","infoInverse","list","login","logout","fire","cart","clock","clockFilled","discount","headphones","page","priceTag","phone","prof","star","settings","student","trophy","message","wallet","edit","copy","print","objective","present","xmlSpace","style","coins","calendar","_jsxs","jsxs","children","jsx","calendar_simple","chevronDown","chevronUp","chevronRight","chevronLeft","cross","dialog","dropDownArrow","externalLink","className","fillOpacity","file","fileBordered","lessons","pencil","phoneNoFill","radioChecked","radioNotChecked","search","tasks","tinyCross","sharpCross","plus","y","rx","transform","plusThin","play","reload","checkCircle","info","check","home","id","questionFilled","document","cancel","playPause","video","ICONS","ICONS_DEFAULT","createResponsivePropsMixin","propsKeys","buildCSSObject","propsRegExp","breakpointsPropsRegExp","breakpointsRegExp","deviceQueries","breakpointsQueries","groups","propKey","interpolations","acc","propValue","mediaFunctions","queries","cssObject","breakpointsInterpolations","replace","commonPropKeyRegExp","colorSchemaPropKeyRegExp","responsiveSizePropKeyRegExp","marginPropKeyRegExp","responsiveMarginPropKeyRegExp","responsiveFluidPropKeyRegExp","responsiveWidthPropKeyRegExp","responsivePaddingPropKeyRegExp","responsiveFontSizePropKeyRegExp","responsiveHeightPropKeyRegExp","createShouldForwardProp","predicates","cache","create","every","func","regExp","responsiveSize","_","sizeValue","_props$sizes$sizeValu","dynamicSizeDeclaration","sizeUnits","_props$sizeUnits","fontSize","_props$sizeUnits2","shouldForwardIconProp","Root","styled","span","withConfig","shouldForwardProp","componentId","vAlign","Icon","icon","restProps","_excluded","Styled.Root","display","active","notDisabled","disabled","div","ActionBtn","onClick","_className","useConfigPriority","minor","major","useMemo","minorConfig","majorConfig","Set","prioritized","finalVal","valid","PARAMS","h1","sizeM","lineHeight","weight","h2","h3","h4","TextHeading","h","fontFamily","_useConfigPriority","configProps","_objectWithoutProperties","Text","as","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","margin","marginTop","marginRight","marginBottom","marginLeft","paddingXS","paddingS","paddingM","paddingL","paddingXL","_ref2","paddingTopXS","paddingTopS","paddingTopM","paddingTopL","paddingTopXL","_ref3","paddingRightXS","paddingRightS","paddingRightM","paddingRightL","paddingRightXL","_ref4","paddingBottomXS","paddingBottomS","paddingBottomM","paddingBottomL","paddingBottomXL","_ref5","paddingLeftXS","paddingLeftS","paddingLeftM","paddingLeftL","paddingLeftXL","_ref6","marginXS","marginS","marginM","marginL","marginXL","_ref7","marginTopXS","marginTopS","marginTopM","marginTopL","marginTopXL","_ref8","marginRightXS","marginRightS","marginRightM","marginRightL","marginRightXL","_ref9","marginBottomXS","marginBottomS","marginBottomM","marginBottomL","marginBottomXL","_ref10","marginLeftXS","marginLeftS","marginLeftM","marginLeftL","marginLeftXL","top","right","bottom","left","_ref11","topXS","topS","topM","topL","topXL","_ref12","rightXS","rightS","rightM","rightL","rightXL","_ref13","bottomXS","bottomS","bottomM","bottomL","bottomXL","_ref14","leftXS","leftS","leftM","leftL","leftXL","Spacer","Ul","ul","Li","li","TextEllipse","Component","constructor","super","getContent","content","chars","isEllipsed","state","text","isUnFolded","leftChars","index","setTimeout","setState","getQuted","Styled.Ul","Styled.Li","quoted","toggle","componentDidUpdate","render","_this$props","moreText","lessText","showToggler","Anchor","pseudo","APPEARANCE","fontStyle","heading","subheading","body","caption","SIZES","SIZES_DEFAULT","responsiveMargin","_props$marginUnits","marginUnits","WEIGHT_MAP","lighter","normal","bold","bolder","LINE_HEIGHT_MAP","shouldForwardTextProp","_WEIGHT_MAP$props$wei","_LINE_HEIGHT_MAP$prop","textAlign","underline","whiteSpace","underlineLinks","textProps","appearance","textClassName","_SIZES$props$appearan","Heading","Ellipse","focus","shouldForwardAnchorProp","template","colorHover","colorDisabled","COLOR_SCHEMA","wrapper","tinycolor","lighten","toString","onColored","darken","verticalAlign","_theme$utils","_restProps$href","_restProps$rel","autoRel","iconProps","href","to","rel","before","after","baseTextProps","iconBaseProps","rootNode","Link","_Fragment","SIZES_ROUND","SIZES_ROUND_DEFAULT","PROPS_BY_SIZE","fontSizeM","heightM","heightS","shouldForwardButtonProp","WIDTHS","loadingAnimation","keyframes","spinAnimation","defaultLoadingStyles","getWidth","fluidStyles","backgroundColor","borderColor","shadowColor","backgroundColorHover","borderColorHover","colorActive","backgroundColorActive","borderColorActive","backgroundColorDisabled","borderColorDisabled","clear","loading","base","success","outline","danger","defaultStyles","fontColor","saturate","inverted","basic","button","attrs","round","inline","rounded","cursor","schema","fluid","fontSizeXS","fontSizeS","fontSizeL","fontSizeXL","heightXS","heightL","heightXL","widthXS","widthS","widthM","widthL","widthXL","fluidXS","fluidS","fluidM","fluidL","fluidXL","LoaderIcon","LoaderFill","_as","fontWeight","innerRef","_PROPS_BY_SIZE$size","propsBySize","secondary","rootClassName","config","_config$href","linkProps","Styled.LoaderIcon","Progress","percent","percentColor","Separators","Separator","separatorColor","isEmpty","haveCircle","ProgressSegmented","segments","isActive","Styled.Progress","Styled.Separators","from","Styled.Separator","defaultProps","resultColor","strokeBGColor","Content","polarToCartesian","centerX","centerY","radius","angleInDegrees","angleInRadians","PI","x","cos","sin","describeArc","startAngle","endAngle","reverse","start","end","diff","angleDiff","sweep","arcSweep","ProgressCircle","PureComponent","renderSvg","progress","strokeLineWidth","strokeBGWidth","progressStartAngle","thickness","center","bgStartAngle","bgEndAngle","describeArcProgress","describeArcBg","bgAngleDiff","componentDidMount","prevProps","prevProgress","prevSize","status","strokeLinecap","Styled.Content","move","bgColor","setAlpha","isLoading","Bar","_percent","Styled.Bar","Circle","Segmented","getPaddingY","column","isCompact","withImage","withTimer","getImageSize","textWrap","withCloseIcon","noIcon","withAction","withTitle","type","IconWrapper","getMarginRightIconWrapper","ContentWrapper","Title","Actions","CloseIcon","CancelTimer","Timer","paused","timer","countdown","setCountdown","useState","intervalId","useRef","useEffect","current","clearInterval","setInterval","prevCountdown","progressRate","ceil","countdownColor","getDefaultIcon","CloseCirlceFill","NotifFill","CheckCircleFill","WarningTriangleFill","Alert","cancelTimerText","primaryAction","primaryActionProps","secondaryAction","secondaryActionProps","customIcon","image","onClickCancelTimer","closeToast","title","titleProps","timerOnPause","setTimerOnPause","onMouseEnter","onMouseLeave","withLink","Styled.IconWrapper","Styled.Timer","Styled.ContentWrapper","Styled.Title","Styled.Link","Styled.Actions","Styled.CancelTimer","Styled.CloseIcon","Close","CurrencyCodes","CURRENCY_MAP","ALL","AFN","ARS","AWG","AUD","AZN","BSD","BBD","BYR","BZD","BMD","BOB","BAM","BWP","BGN","BRL","BND","KHR","CAD","KYD","CLP","CNY","COP","CRC","HRK","CUP","CZK","DKK","DOP","XCD","EGP","SVC","EEK","EUR","FKP","FJD","FRF","GHC","GIP","GTQ","GGP","GYD","HNL","HKD","HUF","ISK","INR","IDR","IRR","IMP","ILS","JMD","JPY","JEP","KZT","KGS","LAK","LVL","LBP","LRD","LTL","MKD","MYR","MUR","MXN","MNT","MZN","NAD","NPR","ANG","NZD","NIO","NGN","KPW","NOK","OMR","PKR","PAB","PYG","PEN","PHP","PLN","QAR","RON","RUR","RUB","SHP","SAR","RSD","SCR","SGD","SBD","SOS","ZAR","KRW","LKR","SEK","CHF","SRD","SYP","TWD","THB","TTD","TRY","TRL","TVD","UAH","GBP","USD","UYU","UZS","VEF","VND","YER","ZWD","crossedOut","ZERO_MINOR_PART_REGEXP","createSplitter","partSize","parts","str","Amount","renderCurrencySymbol","currencySymbol","position","currency","opacity","visibility","static","currencyCode","renderMinorPart","minorPart","showZeroMinorPart","separator","needMinorPart","digitsAfterPoint","isHeader","onlyCurrency","rest","majorPart","isNegative","numberParts","abs","toFixed","split","majorPartFormatted","formattedValueStr","getCurrencySymbol","classNames","amountInner","shouldForwardArrowProp","defaultDisabledStyles","DEFAULT_STYLES","filled","inverse","square","SvgArrowmodule","SvgRectanglemodule","SvgFancymodule","shouldForwardArrowBadgeProp","Edge","svg","Shape","Rectangle","fancy","Fancy","tertiary","quaternary","ArrowBadge","Styled.Edge","shouldForwardSkeletonProp","shiftAnimation","gradientColor","gradientHighlightColor","_props$animationDurat","_props$animationDelay","animationDuration","animationDelay","Skeleton","isValidElement","cloneElement","SIZES_MAPPING_RULES","sm","shouldForwardAvatarProp","shadow","src","Avatar","_SIZES_MAPPING_RULES$","sizeMapped","seq","trim","abbreviation","symbolCodePoint","codePointAt","String","fromCodePoint","shouldForwardBadgeProp","resetDefaultMargin","Badge","Container","Modal","isOpen","overlayClassName","contentClassName","overlayClassNameLocal","ReactModal","portalClassName","valign","blurredOverlay","ModalClose","appElement","closeTimeoutMS","contentLabel","onAfterOpen","onRequestClose","role","shouldCloseOnOverlayClick","Styled.Modal","bodyOpenClassName","HTMLElement","setAppElement","Styled.ModalClose","zDepth","circle","Paper","Scrollable","scrollable","ts","scrollTop","scrollHeight","clientHeight","handleTouchStart","touches","clientY","handleTouchMove","isolate","scrollarea","parentNode","te","changedTouches","dir","upTouch","endTouch","preventDefault","handleScroll","deltaY","detail","handleUpdate","values","hexToRgb","result","exec","renderTrack","trackColor","trackOpacity","trackBorderRadius","trackWidth","trackStyle","background","renderThumb","scrollableProps","_excluded2","thumbColor","thumbOpacity","thumbBorderRadius","thumbWidth","thumbStyle","addEventListener","componentWillUnmount","removeEventListener","calculateShadowOffset","shadowHeight","diffH","withShadow","shadowOpacity","_excluded3","shadowOffset","backgroundImage","Scrollbars","renderTrackVertical","nodeProps","renderTrackHorizontal","renderThumbHorizontal","renderThumbVertical","onUpdate","hideTracksWhenNotNeeded","node","autoHide","autoHideTimeout","autoHideDuration","autoHeight","withThemeScrollable","withTheme","Section","UiText","TextRoot","Styled.TextRoot","Styled.Text","spinner","fullscreen","sizeBuilder","getSize","sizeXS","sizeS","sizeL","sizeXL","Spinner","DEFAULT_PROPS","switcherWidth","switcherHeight","dotSize","BRAND_PROPS","Input","input","Label","label","Switcher","disabledStyles","checkedStyles","baseStyles","defaultPresetStyle","inactiveColor","checked","brandPresetStyles","brandPresetUsed","tabIndex","onChange","propsByPreset","Styled.Input","event","Styled.Switcher","htmlFor","Styled.Label","shouldForwardTabProp","compact","crispyCompact","crispy","preserveAspectRatio","leftRadius","rightRadius","tabTheme","Tab","noBorder","Inner","Tabs","classNameInner","classNameContent","Styled.Inner","shouldForwardTooltipComponentProp","CloseButton","closeColor","closeColorHover","closeColorActive","closeColorDisabled","contrast","elevated","TooltipComponent","contentProps","closeButtonProps","footer","closeFn","showCloseButton","Styled.CloseButton","evt","closeFnNoop","ESC_KEYS","TooltipWrapper","sizeXXS","component","keyboardEvtType","keyboardKeys","keyboardEvtHandler","handleKeyboardEvt","injectionProps","elementProps","TOOLTIP_STYLES_DEFAULT","flexDirection","wrapperPosition","floater","WebkitFilter","transition","floaterOpening","floaterWithAnimation","floaterClosing","floaterCentered","container","boxSizing","minHeight","justifyContent","borderBottom","close","border","WebkitAppearance","borderTop","arrow","spread","_restProps$offset","_restProps$styles2","_restProps$styles","tooltipProps","styles","Floater","offset","modifiers","flip","enabled","disableFlip","TagInput","Tag","inputType","buttonProps","inputProps","_onChange","_x","persist","_onClick","_x2","defaultChecked","hidden","forwardedAs","HeadingRoot","SubHeadingRoot","ControlsRoot","ControlsItem","MultilevelItems","Styled.HeadingRoot","SubHeading","Styled.SubHeadingRoot","Controls","confirm","Styled.ControlsRoot","Styled.ControlsItem","ContextMenuMultiLevel","resetTimeout","onSelectItem","selectedItem","level","selectedItems","newSelectedItems","getCurrentConfig","levelId","_acc$items$find","items","find","error","reset","itemOnClickHandler","currentTarget","dataset","preventClosing","stopPropagation","clearTimeout","trigger","anotherProps","ContextMenu","onClose","Styled.MultilevelItems","Item","controls","disabledItem","notDisabledItem","hideOverlay","RootItem","disabledHandler","ContextMenuItem","Styled.RootItem","getOpen","openMenu","onOpen","closeMenu","toggleMenu","open","MultiLevel","placement","overflow","chooseWidthValue","errorStyle","disabledStyle","focusStyle","roundedStyle","baseInputStyle","placeholderColor","InputMask","labelPosition","inputColor","inputPlaceholderColor","inputColorDisabled","inputPlaceholderColorDisabled","InputControl","controlsTemplate","controlsColor","controlsColorHover","controlsColorActive","controlsColorDisabled","controlsBackgroundColor","controlsBackgroundColorHover","controlsBackgroundColorActive","controlsBackgroundColorDisabled","controlsSeparatorColor","brandTextareaStyle","baseTextareaStyle","textarea","Textarea","omit","maxLength","placeholder","required","autosize","cols","rows","maxRows","tRows","setRows","onChangeHandler","useCallback","HTMLTextAreaElement","rect","getBoundingClientRect","lh","getComputedStyle","numberOfLines","shouldForwardFormInputLabelProp","Caption","FormInputLabel","Styled.Caption","DEFAULT_MASK","INITIAL_MASK","COUNTRY_DATA","REGEXPS","FILLED","FROM_8","FROM_9","NOT_NUMBERS","onlyNumbers","InputPhone","_this","autocorrectOf8","autocorrectOf9","getUpdates","prevValue","countryData","defaultMask","initialMask","numbers","mask","regexp","startsFrom8","startsFrom9","isRussian","startsWith","change","handleChange","stripValue","_e","beforeMaskedValueChange","newState","oldState","selection","nextProps","forwardedRef","_controls$additional","_controls$number","marginXXS","marginTopXXS","marginRightXXS","marginBottomXXS","marginLeftXXS","widthXXS","inputRef","additionalControlIcon","additionalControlIconProps","additionalControlButtonProps","additional","numberControlIcon","numberControlIconProps","numberControlButtonProps","number","minus","minusButtonProps","plusButtonProps","useImperativeHandle","hasInitValue","defaultValue","setActive","hasValue","setHasValue","minusDisabled","setMinusDisabled","min","Infinity","initValue","parseFloat","initDefaultValue","minValue","plusDisabled","setPlusDisabled","max","maxValue","onFocus","onBlur","currentValue","minValueReached","maxValueReached","Styled.InputControl","prev","stepDown","Event","bubbles","dispatchEvent","err","console","stepUp","Phone","shouldForwardInputRadioProp","backgroundColorChecked","borderColorChecked","colorChecked","backgroundColorDisabledChecked","borderColorDisabledChecked","colorDisabledChecked","InputRadio","Styled.InputMask","sizeRadio","Group","Radio","uncontrolled","baseClassName","_labelClassName","log","Styled.Group","shouldForwardInputCheckboxProp","InputChecked","strokeLinejoin","InputIndeterminate","indeterminate","InputCheckbox","Styled.InputIndeterminate","Styled.InputChecked","_rect","_g","DEFAULT_SIZES","extraSmall","small","medium","large","extraLarge","BRAND_SIZES","STATIC_SIZES","Background","DefaultMask","BrandMask","CheckIcon","bg","bgChecked","borderHover","outlineFocus","templateBackground","borderChecked","bgHover","beforeBgHover","PRESET","regular","PRESET_DEFAULT","labelClassName","Styled.Background","Styled.BrandMask","Styled.CheckIcon","Styled.DefaultMask","fadeIn","spin","Select","reactSelectProps","loadOptions","allowCreate","AsyncCreatable","Async","Creatable","ReactSelect","promptTextCreator","searchable","clearable","addLabelText","backspaceToRemoveMessage","clearAllText","clearValueText","noResultsText","searchPromptText","loadingPlaceholder","autoload","shouldForwardFormLabelProp","HintButton","hintTemplate","hintColor","hintBackgroundColor","hintColorHover","hintBackgroundColorHover","hintColorActive","hintBackgroundColorActive","hintColorDisabled","hintBackgroundColorDisabled","FormLabel","hint","control","sizeProps","stateProps","hintTextProps","hintIconProps","Styled.HintButton","SIZES_LANDSCAPE","shouldForwardPopoverComponentProp","MediaLandscape","Media","aspectRatio","Footer","orientation","controlsDirection","mediaPlaceholderColor","Header","Video","closeTemplate","closeBackgroundColor","closeBackgroundColorHover","closeBackgroundColorActive","closeBackgroundColorDisabled","PopoverComponent","_controls$secondary","_controls$primary","badge","captionProps","media","badgeProps","imgProps","videoProps","secondaryButtonText","secondaryButtonProps","primaryButtonText","primaryButtonProps","Styled.MediaLandscape","Styled.Media","alt","Styled.Video","controlsList","disablePictureInPicture","Styled.Container","Styled.Header","Styled.Footer","Popover","_restProps$component","shouldForwardListItemProp","mediaBorderRadius","schemaVariant","Img","img","Typography","ellipsis","ListItem","controlPosition","captionPosition","addon","rootType","controlProps","textBaseProps","captionBaseProps","Styled.Img","Styled.Typography","SIZES_SQUARE","shouldForwardIndicatorProp","pulseAnimation","Foreground","frame","pulse","pulseIterationCount","indicatorPropsWithContent","Indicator","hasContent","Styled.Foreground","mergeTheme","topLevelTheme","mergingTheme","StyledThemeProvider"],"mappings":"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"}
|