@ssa-ui-kit/core 0.0.11-alpha → 0.0.13-alpha
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/.babelrc.js +4 -4
- package/.storybook/main.ts +43 -43
- package/.storybook/preview.tsx +22 -22
- package/.storybook/style.css +31 -31
- package/custom-shots/components-popover--hint-opened__[w1920px].png +0 -0
- package/custom-shots/components-table-filters--opened__[w1920px].png +0 -0
- package/customTest.tsx +46 -46
- package/dist/components/Button/fixtures.d.ts +8 -8
- package/dist/components/Icon/icons/UnArchive.d.ts +2 -0
- package/dist/components/Icon/icons/iconsList.d.ts +1 -1
- package/dist/components/Textarea/Textarea.d.ts +2 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/jest-setup.ts +17 -17
- package/lostpixel.config.ts +26 -26
- package/package.json +1 -1
- package/playwright.config.ts +7 -7
- package/src/components/AccordionGroup/Accordion.tsx +25 -25
- package/src/components/AccordionGroup/AccordionContent.tsx +21 -21
- package/src/components/AccordionGroup/AccordionContext.tsx +66 -66
- package/src/components/AccordionGroup/AccordionGroup.spec.tsx +195 -195
- package/src/components/AccordionGroup/AccordionGroup.tsx +71 -71
- package/src/components/AccordionGroup/AccordionTitle.tsx +41 -41
- package/src/components/AccordionGroup/index.ts +6 -6
- package/src/components/AccordionGroup/stories/AccordionGroup.stories.tsx +107 -107
- package/src/components/AccordionGroup/stories/helpers.tsx +86 -86
- package/src/components/AccordionGroup/styles.ts +121 -121
- package/src/components/AccordionGroup/types.ts +59 -59
- package/src/components/Avatar/Avatar.tsx +15 -15
- package/src/components/Avatar/index.ts +1 -1
- package/src/components/Badge/Badge.spec.tsx +113 -113
- package/src/components/Badge/Badge.stories.tsx +156 -156
- package/src/components/Badge/Badge.tsx +45 -45
- package/src/components/Badge/BadgeBase.tsx +19 -19
- package/src/components/Badge/helpers.ts +49 -49
- package/src/components/Badge/index.ts +1 -1
- package/src/components/Badge/styles.ts +20 -20
- package/src/components/Badge/types.ts +7 -7
- package/src/components/Button/Button.spec.tsx +529 -529
- package/src/components/Button/Button.stories.tsx +124 -124
- package/src/components/Button/Button.tsx +121 -121
- package/src/components/Button/ButtonBase.tsx +14 -14
- package/src/components/Button/ButtonText.tsx +67 -67
- package/src/components/Button/fixtures.ts +165 -165
- package/src/components/Button/helpers.ts +30 -30
- package/src/components/Button/index.ts +1 -1
- package/src/components/Button/styles.ts +168 -168
- package/src/components/Button/types.ts +48 -48
- package/src/components/ButtonGroup/ButtonGroup.spec.tsx +60 -60
- package/src/components/ButtonGroup/ButtonGroup.stories.tsx +42 -42
- package/src/components/ButtonGroup/ButtonGroup.tsx +40 -40
- package/src/components/ButtonGroup/helpers.ts +7 -7
- package/src/components/ButtonGroup/index.ts +2 -2
- package/src/components/ButtonGroup/styles.ts +53 -53
- package/src/components/ButtonGroup/types.ts +14 -14
- package/src/components/Card/Card.spec.tsx +94 -94
- package/src/components/Card/Card.stories.tsx +253 -253
- package/src/components/Card/Card.tsx +13 -13
- package/src/components/Card/CardBase.tsx +20 -20
- package/src/components/Card/index.ts +2 -2
- package/src/components/Card/types.ts +8 -8
- package/src/components/CardContent/CardContent.tsx +17 -17
- package/src/components/CardContent/CardContentBase.tsx +12 -12
- package/src/components/CardContent/index.ts +1 -1
- package/src/components/CardHeader/CardHeader.tsx +26 -26
- package/src/components/CardHeader/CardHeaderBase.tsx +21 -21
- package/src/components/CardHeader/index.ts +1 -1
- package/src/components/Checkbox/Checkbox.spec.tsx +193 -193
- package/src/components/Checkbox/Checkbox.stories.tsx +93 -93
- package/src/components/Checkbox/Checkbox.tsx +79 -79
- package/src/components/Checkbox/CheckboxBase.tsx +71 -71
- package/src/components/Checkbox/index.ts +3 -3
- package/src/components/Checkbox/styles.tsx +70 -70
- package/src/components/Checkbox/types.ts +32 -32
- package/src/components/ColorPicker/ColorPicker.spec.tsx +58 -58
- package/src/components/ColorPicker/ColorPicker.stories.tsx +48 -48
- package/src/components/ColorPicker/ColorPicker.tsx +47 -47
- package/src/components/ColorPicker/index.ts +1 -1
- package/src/components/ColorPicker/styles.ts +14 -14
- package/src/components/ColorPicker/types.ts +21 -21
- package/src/components/Dropdown/Dropdown.context.ts +16 -16
- package/src/components/Dropdown/Dropdown.spec.tsx +332 -332
- package/src/components/Dropdown/Dropdown.stories.tsx +155 -155
- package/src/components/Dropdown/Dropdown.tsx +135 -135
- package/src/components/Dropdown/index.ts +2 -2
- package/src/components/Dropdown/types.ts +17 -17
- package/src/components/DropdownArrow/DropdownArrow.tsx +17 -17
- package/src/components/DropdownArrow/index.ts +1 -1
- package/src/components/DropdownBase/DropdownBase.tsx +10 -10
- package/src/components/DropdownBase/index.ts +1 -1
- package/src/components/DropdownOption/DropdownOption.tsx +56 -56
- package/src/components/DropdownOption/index.ts +1 -1
- package/src/components/DropdownOptions/DropdownOptions.tsx +102 -102
- package/src/components/DropdownOptions/index.ts +2 -2
- package/src/components/DropdownOptions/types.ts +9 -9
- package/src/components/DropdownToggle/DropdownToggle.tsx +148 -148
- package/src/components/DropdownToggle/index.ts +1 -1
- package/src/components/DropdownToggle/types.ts +22 -22
- package/src/components/Form/Form.stories.mdx +118 -118
- package/src/components/Form/Form.stories.tsx +432 -432
- package/src/components/Form/Form.tsx +9 -9
- package/src/components/Form/index.ts +1 -1
- package/src/components/FormAction/FormAction.tsx +8 -8
- package/src/components/FormAction/index.ts +1 -1
- package/src/components/FormCheckbox/FormCheckbox.tsx +33 -33
- package/src/components/FormCheckbox/index.ts +1 -1
- package/src/components/FormCheckbox/types.ts +10 -10
- package/src/components/FormGroup/FormGroup.tsx +15 -15
- package/src/components/FormGroup/index.ts +1 -1
- package/src/components/FormHelperText/FormHelperText.tsx +18 -18
- package/src/components/FormHelperText/FormHelperTextBase.tsx +22 -22
- package/src/components/FormHelperText/index.ts +1 -1
- package/src/components/FormHelperText/types.ts +8 -8
- package/src/components/FormRadioGroup/FormRadioGroup.spec.tsx +74 -74
- package/src/components/FormRadioGroup/FormRadioGroup.stories.tsx +90 -90
- package/src/components/FormRadioGroup/FormRadioGroup.tsx +35 -35
- package/src/components/FormRadioGroup/index.ts +1 -1
- package/src/components/FormRadioGroup/types.ts +12 -12
- package/src/components/Icon/Icon.tsx +7 -7
- package/src/components/Icon/Icons.spec.tsx +89 -89
- package/src/components/Icon/Icons.stories.tsx +62 -62
- package/src/components/Icon/icons/Archive.tsx +36 -36
- package/src/components/Icon/icons/ArrowDown.tsx +27 -27
- package/src/components/Icon/icons/ArrowUp.tsx +27 -27
- package/src/components/Icon/icons/Attention.tsx +23 -23
- package/src/components/Icon/icons/Bin.tsx +29 -29
- package/src/components/Icon/icons/Calendar.tsx +17 -17
- package/src/components/Icon/icons/CarrotDown.tsx +25 -25
- package/src/components/Icon/icons/CarrotLeft.tsx +25 -25
- package/src/components/Icon/icons/CarrotRight.tsx +25 -25
- package/src/components/Icon/icons/CarrotUp.tsx +21 -21
- package/src/components/Icon/icons/Change.tsx +17 -17
- package/src/components/Icon/icons/Chart.tsx +38 -38
- package/src/components/Icon/icons/Check.tsx +21 -21
- package/src/components/Icon/icons/CheckCircle.tsx +31 -31
- package/src/components/Icon/icons/Circle.tsx +23 -23
- package/src/components/Icon/icons/Clock.tsx +32 -32
- package/src/components/Icon/icons/Copy.tsx +24 -24
- package/src/components/Icon/icons/Cross.tsx +28 -28
- package/src/components/Icon/icons/Diet.tsx +17 -17
- package/src/components/Icon/icons/Email.tsx +20 -20
- package/src/components/Icon/icons/Filter.tsx +19 -19
- package/src/components/Icon/icons/Home.tsx +17 -17
- package/src/components/Icon/icons/Information.tsx +29 -29
- package/src/components/Icon/icons/Invisible.tsx +56 -56
- package/src/components/Icon/icons/Lock.tsx +18 -18
- package/src/components/Icon/icons/LogIn.tsx +22 -22
- package/src/components/Icon/icons/LogOut.tsx +22 -22
- package/src/components/Icon/icons/Measurements.tsx +23 -23
- package/src/components/Icon/icons/Minus.tsx +21 -21
- package/src/components/Icon/icons/More.tsx +25 -25
- package/src/components/Icon/icons/MoreVertical.tsx +20 -20
- package/src/components/Icon/icons/Notification.tsx +23 -23
- package/src/components/Icon/icons/Plus.tsx +28 -28
- package/src/components/Icon/icons/RadioOn.tsx +24 -24
- package/src/components/Icon/icons/Robot.tsx +19 -19
- package/src/components/Icon/icons/Search.tsx +19 -19
- package/src/components/Icon/icons/Settings.tsx +25 -25
- package/src/components/Icon/icons/Sleep.tsx +21 -21
- package/src/components/Icon/icons/Stats.tsx +21 -21
- package/src/components/Icon/icons/Trainings.tsx +17 -17
- package/src/components/Icon/icons/UnArchive.tsx +45 -0
- package/src/components/Icon/icons/Union.tsx +20 -20
- package/src/components/Icon/icons/User.tsx +35 -35
- package/src/components/Icon/icons/Visible.tsx +28 -28
- package/src/components/Icon/icons/Warning.tsx +23 -23
- package/src/components/Icon/icons/iconsList.tsx +56 -55
- package/src/components/Icon/icons/index.tsx +117 -115
- package/src/components/Icon/index.ts +2 -2
- package/src/components/Icon/types.ts +14 -14
- package/src/components/Indicator/Indicator.spec.tsx +67 -67
- package/src/components/Indicator/Indicator.stories.tsx +106 -106
- package/src/components/Indicator/Indicator.tsx +86 -86
- package/src/components/Indicator/IndicatorBase.tsx +27 -27
- package/src/components/Indicator/index.ts +1 -1
- package/src/components/Indicator/types.ts +9 -9
- package/src/components/Input/Input.spec.tsx +95 -95
- package/src/components/Input/Input.stories.tsx +215 -215
- package/src/components/Input/Input.tsx +70 -70
- package/src/components/Input/InputBase.tsx +42 -42
- package/src/components/Input/InputGroup.tsx +12 -12
- package/src/components/Input/InputStatusError.tsx +20 -20
- package/src/components/Input/InputStatusSuccess.tsx +16 -16
- package/src/components/Input/index.ts +1 -1
- package/src/components/Input/styles.ts +111 -111
- package/src/components/Input/types.ts +36 -36
- package/src/components/Label/Label.spec.tsx +57 -57
- package/src/components/Label/Label.tsx +20 -20
- package/src/components/Label/LabelBase.tsx +14 -14
- package/src/components/Label/index.ts +1 -1
- package/src/components/Label/types.ts +9 -9
- package/src/components/LargeTab/LargeTab.tsx +38 -38
- package/src/components/LargeTab/LargeTabBase.tsx +39 -39
- package/src/components/LargeTab/index.ts +1 -1
- package/src/components/LargeTab/styles.ts +17 -17
- package/src/components/Link/Link.tsx +10 -10
- package/src/components/Link/Link.types.ts +4 -4
- package/src/components/Link/LinkBase.ts +5 -5
- package/src/components/Link/index.tsx +1 -1
- package/src/components/Modal/Modal.context.tsx +9 -9
- package/src/components/Modal/Modal.spec.tsx +154 -154
- package/src/components/Modal/Modal.stories.tsx +97 -97
- package/src/components/Modal/Modal.tsx +12 -12
- package/src/components/Modal/index.ts +2 -2
- package/src/components/Modal/types.ts +4 -4
- package/src/components/ModalContent/ModalContent.tsx +21 -21
- package/src/components/ModalContent/index.ts +1 -1
- package/src/components/ModalDialog/ModalDialog.tsx +67 -67
- package/src/components/ModalDialog/index.ts +2 -2
- package/src/components/ModalDialog/types.ts +7 -7
- package/src/components/ModalDismissButton/ModalDismissButton.tsx +15 -15
- package/src/components/ModalDismissButton/index.ts +1 -1
- package/src/components/ModalOpenButton/ModalOpenButton.tsx +15 -15
- package/src/components/ModalOpenButton/index.ts +1 -1
- package/src/components/MultipleDropdown/MultipleDropdown.context.ts +20 -20
- package/src/components/MultipleDropdown/MultipleDropdown.spec.tsx +414 -414
- package/src/components/MultipleDropdown/MultipleDropdown.tsx +217 -217
- package/src/components/MultipleDropdown/index.ts +1 -1
- package/src/components/MultipleDropdown/stories/MultipleDropdown.stories.tsx +239 -239
- package/src/components/MultipleDropdown/stories/consts.ts +5 -5
- package/src/components/MultipleDropdown/types.ts +20 -20
- package/src/components/MultipleDropdown/utils.ts +32 -32
- package/src/components/MultipleDropdownNotification/MultipleDropdownNotification.tsx +13 -13
- package/src/components/MultipleDropdownNotification/index.ts +1 -1
- package/src/components/MultipleDropdownOptions/MultipleDropdownOptions.tsx +156 -156
- package/src/components/MultipleDropdownOptions/index.ts +2 -2
- package/src/components/MultipleDropdownOptions/types.ts +7 -7
- package/src/components/Popover/Popover.e2e.ts +26 -26
- package/src/components/Popover/Popover.spec.tsx +17 -17
- package/src/components/Popover/Popover.tsx +21 -21
- package/src/components/Popover/PopoverClose.tsx +21 -21
- package/src/components/Popover/PopoverContent.tsx +37 -37
- package/src/components/Popover/PopoverDescription.tsx +21 -21
- package/src/components/Popover/PopoverHeading.tsx +25 -25
- package/src/components/Popover/PopoverTrigger.tsx +47 -47
- package/src/components/Popover/hooks/usePopover.tsx +109 -109
- package/src/components/Popover/hooks/usePopoverContext.tsx +16 -16
- package/src/components/Popover/index.ts +6 -6
- package/src/components/Popover/stories/Popover.stories.tsx +39 -39
- package/src/components/Popover/stories/StoryComponent.tsx +42 -42
- package/src/components/Popover/types.ts +45 -45
- package/src/components/Progress/Progress.spec.tsx +85 -85
- package/src/components/Progress/Progress.stories.tsx +234 -234
- package/src/components/Progress/Progress.tsx +7 -7
- package/src/components/Progress/index.ts +1 -1
- package/src/components/Progress/types.ts +5 -5
- package/src/components/ProgressBar/ProgressBar.tsx +68 -68
- package/src/components/ProgressBar/index.ts +1 -1
- package/src/components/ProgressBar/styles.ts +15 -15
- package/src/components/ProgressBar/types.ts +7 -7
- package/src/components/ProgressCircle/ProgressCircle.spec.tsx +37 -37
- package/src/components/ProgressCircle/ProgressCircle.stories.tsx +96 -96
- package/src/components/ProgressCircle/ProgressCircle.tsx +60 -60
- package/src/components/ProgressCircle/ProgressCircleBase.tsx +45 -45
- package/src/components/ProgressCircle/ProgressCircleInner.tsx +16 -16
- package/src/components/ProgressCircle/ProgressCircleOuter.tsx +14 -14
- package/src/components/ProgressCircle/index.ts +1 -1
- package/src/components/ProgressCircle/styles.ts +20 -20
- package/src/components/ProgressCircle/types.ts +7 -7
- package/src/components/ProgressLegend/ProgressLegend.tsx +41 -41
- package/src/components/ProgressLegend/index.ts +1 -1
- package/src/components/ProgressLegend/types.ts +12 -12
- package/src/components/ProgressLegendItem/ProgressLegendItem.tsx +52 -52
- package/src/components/ProgressLegendItem/index.ts +1 -1
- package/src/components/ProgressLegendItem/types.ts +6 -6
- package/src/components/ProgressVertical/ProgressVertical.tsx +23 -23
- package/src/components/ProgressVertical/index.ts +1 -1
- package/src/components/ProgressVertical/types.ts +5 -5
- package/src/components/Radio/Radio.spec.tsx +234 -234
- package/src/components/Radio/Radio.stories.tsx +52 -52
- package/src/components/Radio/Radio.tsx +56 -56
- package/src/components/Radio/RadioBase.tsx +36 -36
- package/src/components/Radio/index.ts +1 -1
- package/src/components/Radio/types.ts +11 -11
- package/src/components/RadioGroup/RadioGroup.spec.tsx +116 -116
- package/src/components/RadioGroup/RadioGroup.stories.tsx +84 -84
- package/src/components/RadioGroup/RadioGroup.tsx +49 -49
- package/src/components/RadioGroup/RadioGroupBase.tsx +3 -3
- package/src/components/RadioGroup/index.ts +1 -1
- package/src/components/RadioGroup/types.ts +10 -10
- package/src/components/ResponsiveImage/ResponsiveImage.spec.tsx +43 -43
- package/src/components/ResponsiveImage/ResponsiveImage.stories.tsx +33 -33
- package/src/components/ResponsiveImage/ResponsiveImage.tsx +14 -14
- package/src/components/ResponsiveImage/index.tsx +1 -1
- package/src/components/ResponsiveImage/types.ts +7 -7
- package/src/components/Step/Step.context.ts +21 -21
- package/src/components/Step/Step.tsx +58 -58
- package/src/components/Step/index.ts +2 -2
- package/src/components/StepConnector/StepConnector.tsx +34 -34
- package/src/components/StepConnector/index.ts +1 -1
- package/src/components/StepConnector/style.ts +24 -24
- package/src/components/StepLabel/StepLabel.tsx +65 -65
- package/src/components/StepLabel/index.ts +1 -1
- package/src/components/StepLabel/styles.ts +38 -38
- package/src/components/Stepper/Stepper.context.ts +16 -16
- package/src/components/Stepper/Stepper.spec.tsx +128 -128
- package/src/components/Stepper/Stepper.stories.tsx +292 -292
- package/src/components/Stepper/Stepper.tsx +49 -49
- package/src/components/Stepper/index.ts +5 -5
- package/src/components/Stepper/types.ts +17 -17
- package/src/components/Switch/Switch.spec.tsx +181 -181
- package/src/components/Switch/Switch.stories.tsx +64 -64
- package/src/components/Switch/Switch.tsx +21 -21
- package/src/components/Switch/SwitchBase.tsx +62 -62
- package/src/components/Switch/SwitchContext.tsx +38 -38
- package/src/components/Switch/index.ts +6 -6
- package/src/components/Switch/types.ts +4 -4
- package/src/components/Tab/Tab.tsx +31 -31
- package/src/components/Tab/TabBase.tsx +31 -31
- package/src/components/Tab/index.ts +1 -1
- package/src/components/TabBar/TabBar.spec.tsx +290 -290
- package/src/components/TabBar/TabBar.tsx +43 -43
- package/src/components/TabBar/TabBarContext.tsx +43 -43
- package/src/components/TabBar/index.ts +6 -6
- package/src/components/TabBar/stories/TimePeriodTabBar.stories.tsx +84 -84
- package/src/components/TabBar/stories/WeekTabBar.stories.tsx +136 -136
- package/src/components/TabBar/stories/helpers.tsx +69 -69
- package/src/components/TabBar/types.ts +39 -39
- package/src/components/Table/Table.spec.tsx +86 -86
- package/src/components/Table/Table.tsx +13 -13
- package/src/components/Table/index.ts +1 -1
- package/src/components/Table/stories/SortableTable.tsx +78 -78
- package/src/components/Table/stories/Table.stories.tsx +94 -94
- package/src/components/Table/stories/consts.ts +6 -6
- package/src/components/Table/stories/mock.ts +16 -16
- package/src/components/Table/stories/types.ts +9 -9
- package/src/components/Table/stories/utils.ts +2 -2
- package/src/components/TableBody/TableBody.tsx +8 -8
- package/src/components/TableBody/index.ts +1 -1
- package/src/components/TableCell/TableCell.tsx +16 -16
- package/src/components/TableCell/index.ts +1 -1
- package/src/components/TableHead/TableHead.tsx +15 -15
- package/src/components/TableHead/index.ts +1 -1
- package/src/components/TableRow/TableRow.tsx +12 -12
- package/src/components/TableRow/index.ts +1 -1
- package/src/components/Tag/Tag.spec.tsx +121 -121
- package/src/components/Tag/Tag.stories.tsx +96 -96
- package/src/components/Tag/Tag.tsx +47 -47
- package/src/components/Tag/index.ts +1 -1
- package/src/components/Tag/styles.ts +123 -123
- package/src/components/Tag/types.ts +7 -7
- package/src/components/TextField/TextField.spec.tsx +171 -171
- package/src/components/TextField/TextField.stories.tsx +221 -221
- package/src/components/TextField/TextField.tsx +61 -61
- package/src/components/TextField/index.ts +1 -1
- package/src/components/TextField/types.ts +14 -14
- package/src/components/Textarea/Textarea.spec.tsx +56 -56
- package/src/components/Textarea/Textarea.stories.tsx +59 -59
- package/src/components/Textarea/Textarea.tsx +44 -37
- package/src/components/Textarea/TextareaBase.tsx +46 -46
- package/src/components/Textarea/index.ts +1 -1
- package/src/components/Textarea/types.ts +16 -16
- package/src/components/Tooltip/ProgressChartTooltip.tsx +48 -48
- package/src/components/Tooltip/SimpleChartTooltip.tsx +20 -20
- package/src/components/Tooltip/Tooltip.spec.tsx +305 -305
- package/src/components/Tooltip/Tooltip.stories.tsx +160 -160
- package/src/components/Tooltip/Tooltip.tsx +22 -22
- package/src/components/Tooltip/TooltipArrow.tsx +26 -26
- package/src/components/Tooltip/TooltipContentBase.tsx +9 -9
- package/src/components/Tooltip/index.ts +5 -5
- package/src/components/Tooltip/styles.ts +16 -16
- package/src/components/Tooltip/types.ts +88 -88
- package/src/components/Tooltip/useTooltip.tsx +74 -74
- package/src/components/Tooltip/useTooltipContext.tsx +16 -16
- package/src/components/Tooltip/utils.tsx +8 -8
- package/src/components/TooltipContent/TooltipContent.tsx +49 -49
- package/src/components/TooltipContent/index.ts +1 -1
- package/src/components/TooltipTrigger/TooltipTrigger.tsx +21 -21
- package/src/components/TooltipTrigger/index.ts +1 -1
- package/src/components/Typography/Typography.spec.tsx +259 -259
- package/src/components/Typography/Typography.stories.tsx +68 -68
- package/src/components/Typography/Typography.tsx +52 -52
- package/src/components/Typography/index.ts +1 -1
- package/src/components/Typography/styles.ts +85 -85
- package/src/components/Typography/types.ts +22 -22
- package/src/components/Wrapper/Wrapper.spec.tsx +15 -15
- package/src/components/Wrapper/Wrapper.tsx +19 -19
- package/src/components/Wrapper/index.ts +1 -1
- package/src/consts.ts +18 -18
- package/src/index.ts +94 -94
- package/src/injectGlobal.ts +41 -41
- package/src/styles/global.ts +91 -91
- package/src/styles/safari-focus-outline.ts +37 -37
- package/src/styles/styles.spec.tsx +42 -42
- package/src/themes/main.ts +116 -116
- package/src/types/emotion.d.ts +7 -7
- package/src/types/emotion.ts +132 -132
- package/src/types/global.d.ts +7 -7
- package/src/types/global.ts +19 -19
- package/storybook-static/1283.a11004a1.iframe.bundle.js +1 -0
- package/storybook-static/1326.74edde53.iframe.bundle.js +1 -0
- package/storybook-static/2912.4c6e14cb.iframe.bundle.js +1 -0
- package/storybook-static/3547.515f04ab.iframe.bundle.js +1 -0
- package/storybook-static/3624.1414516c.iframe.bundle.js +1 -0
- package/storybook-static/3753.bd2e2900.iframe.bundle.js +1 -0
- package/storybook-static/4106.7f1435f2.iframe.bundle.js +402 -0
- package/storybook-static/4106.7f1435f2.iframe.bundle.js.LICENSE.txt +62 -0
- package/storybook-static/4106.7f1435f2.iframe.bundle.js.map +1 -0
- package/storybook-static/4166.6fdf56d2.iframe.bundle.js +1 -0
- package/storybook-static/4339.437b4af1.iframe.bundle.js +1 -0
- package/storybook-static/4995.d16abbf0.iframe.bundle.js +1 -0
- package/storybook-static/5199.6867eb61.iframe.bundle.js +1 -0
- package/storybook-static/5374.19c2f606.iframe.bundle.js +6 -0
- package/storybook-static/5374.19c2f606.iframe.bundle.js.LICENSE.txt +8 -0
- package/storybook-static/5374.19c2f606.iframe.bundle.js.map +1 -0
- package/storybook-static/5417.e7b726cc.iframe.bundle.js +1 -0
- package/storybook-static/5497.0b734124.iframe.bundle.js +44 -0
- package/storybook-static/5497.0b734124.iframe.bundle.js.map +1 -0
- package/storybook-static/5521.fbe15eea.iframe.bundle.js +1 -0
- package/storybook-static/5540.fa362783.iframe.bundle.js +1 -0
- package/storybook-static/5938.713bc0f1.iframe.bundle.js +1 -0
- package/storybook-static/6092.0baa0be2.iframe.bundle.js +1 -0
- package/storybook-static/6216.8da65c4d.iframe.bundle.js +1 -0
- package/storybook-static/6374.b662bb7e.iframe.bundle.js +1 -0
- package/storybook-static/7076.fc69dc87.iframe.bundle.js +1 -0
- package/storybook-static/7263.784ad817.iframe.bundle.js +1 -0
- package/storybook-static/7609.fa84d5d0.iframe.bundle.js +1 -0
- package/storybook-static/7633.6d7427ee.iframe.bundle.js +1 -0
- package/storybook-static/7767.2ce7411d.iframe.bundle.js +1 -0
- package/storybook-static/8069.7d70ab4a.iframe.bundle.js +1 -0
- package/storybook-static/8251.01f55356.iframe.bundle.js +1 -0
- package/storybook-static/9134.27efc9b6.iframe.bundle.js +1 -0
- package/storybook-static/9185.5e034211.iframe.bundle.js +133 -0
- package/storybook-static/9185.5e034211.iframe.bundle.js.map +1 -0
- package/storybook-static/9661.7fb349c2.iframe.bundle.js +1 -0
- package/storybook-static/9672.98d487be.iframe.bundle.js +1 -0
- package/storybook-static/973.378dae04.iframe.bundle.js +1 -0
- package/storybook-static/components-AccordionGroup-stories-AccordionGroup-stories.c8781719.iframe.bundle.js +1 -0
- package/storybook-static/components-Badge-Badge-stories.34ed507d.iframe.bundle.js +1 -0
- package/storybook-static/components-Button-Button-stories.42cf6ebc.iframe.bundle.js +1 -0
- package/storybook-static/components-Card-Card-stories.dce075fe.iframe.bundle.js +1 -0
- package/storybook-static/components-Checkbox-Checkbox-stories.c3b0ba2a.iframe.bundle.js +1 -0
- package/storybook-static/components-ColorPicker-ColorPicker-stories.227d5d28.iframe.bundle.js +1 -0
- package/storybook-static/components-Dropdown-Dropdown-stories.a86e6d8b.iframe.bundle.js +1 -0
- package/storybook-static/components-Form-Form-stories-mdx.febb9417.iframe.bundle.js +2 -0
- package/storybook-static/components-Form-Form-stories-mdx.febb9417.iframe.bundle.js.LICENSE.txt +9 -0
- package/storybook-static/components-Form-Form-stories.1030ead7.iframe.bundle.js +1 -0
- package/storybook-static/components-FormRadioGroup-FormRadioGroup-stories.9d91e8c9.iframe.bundle.js +1 -0
- package/storybook-static/components-Icon-Icons-stories.fe368cd9.iframe.bundle.js +1 -0
- package/storybook-static/components-Input-Input-stories.ecfd89af.iframe.bundle.js +1 -0
- package/storybook-static/components-Modal-Modal-stories.bd406807.iframe.bundle.js +1 -0
- package/storybook-static/components-MultipleDropdown-MultipleDropdown-stories.80762ee2.iframe.bundle.js +1 -0
- package/storybook-static/components-Popover-stories-Popover-stories.5bbb9c19.iframe.bundle.js +1 -0
- package/storybook-static/components-Progress-Progress-stories.924b6ce3.iframe.bundle.js +1 -0
- package/storybook-static/components-ProgressCircle-ProgressCircle-stories.abf7a711.iframe.bundle.js +1 -0
- package/storybook-static/components-Radio-Radio-stories.ea10f6ac.iframe.bundle.js +1 -0
- package/storybook-static/components-RadioGroup-RadioGroup-stories.8be03b3f.iframe.bundle.js +1 -0
- package/storybook-static/components-ResponsiveImage-ResponsiveImage-stories.d6d0fc31.iframe.bundle.js +1 -0
- package/storybook-static/components-Stepper-Stepper-stories.55fe429d.iframe.bundle.js +1 -0
- package/storybook-static/components-Switch-Switch-stories.760b85d7.iframe.bundle.js +1 -0
- package/storybook-static/components-TabBar-stories-TimePeriodTabBar-stories.6f0ee7ee.iframe.bundle.js +1 -0
- package/storybook-static/components-TabBar-stories-WeekTabBar-stories.1d8887da.iframe.bundle.js +1 -0
- package/storybook-static/components-Table-Table-stories.cf62219e.iframe.bundle.js +1 -0
- package/storybook-static/components-Tag-Tag-stories.dc89b8dd.iframe.bundle.js +1 -0
- package/storybook-static/components-TextField-TextField-stories.23ab264d.iframe.bundle.js +1 -0
- package/storybook-static/components-Textarea-Textarea-stories.5d16dfd0.iframe.bundle.js +1 -0
- package/storybook-static/components-Tooltip-Tooltip-stories.4cf83194.iframe.bundle.js +1 -0
- package/storybook-static/components-Typography-Typography-stories.b04f7644.iframe.bundle.js +1 -0
- package/storybook-static/favicon.svg +7 -0
- package/storybook-static/iframe.html +355 -0
- package/storybook-static/index.html +130 -0
- package/storybook-static/index.json +1 -0
- package/storybook-static/main.17671a9a.iframe.bundle.js +1 -0
- package/storybook-static/project.json +1 -0
- package/storybook-static/runtime~main.a44b94df.iframe.bundle.js +1 -0
- package/storybook-static/sb-addons/essentials-actions-2/manager-bundle.js +4 -0
- package/storybook-static/sb-addons/essentials-actions-2/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/essentials-actions-2/manager-bundle.js.map +7 -0
- package/storybook-static/sb-addons/essentials-backgrounds-3/manager-bundle.js +13 -0
- package/storybook-static/sb-addons/essentials-backgrounds-3/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/essentials-backgrounds-3/manager-bundle.js.map +7 -0
- package/storybook-static/sb-addons/essentials-controls-1/manager-bundle.js +115 -0
- package/storybook-static/sb-addons/essentials-controls-1/manager-bundle.js.LEGAL.txt +18 -0
- package/storybook-static/sb-addons/essentials-controls-1/manager-bundle.js.map +7 -0
- package/storybook-static/sb-addons/essentials-measure-6/manager-bundle.js +4 -0
- package/storybook-static/sb-addons/essentials-measure-6/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/essentials-measure-6/manager-bundle.js.map +7 -0
- package/storybook-static/sb-addons/essentials-outline-7/manager-bundle.js +4 -0
- package/storybook-static/sb-addons/essentials-outline-7/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/essentials-outline-7/manager-bundle.js.map +7 -0
- package/storybook-static/sb-addons/essentials-toolbars-5/manager-bundle.js +4 -0
- package/storybook-static/sb-addons/essentials-toolbars-5/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/essentials-toolbars-5/manager-bundle.js.map +7 -0
- package/storybook-static/sb-addons/essentials-viewport-4/manager-bundle.js +4 -0
- package/storybook-static/sb-addons/essentials-viewport-4/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/essentials-viewport-4/manager-bundle.js.map +7 -0
- package/storybook-static/sb-addons/interactions-8/manager-bundle.js +28 -0
- package/storybook-static/sb-addons/interactions-8/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/interactions-8/manager-bundle.js.map +7 -0
- package/storybook-static/sb-addons/links-0/manager-bundle.js +4 -0
- package/storybook-static/sb-addons/links-0/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/links-0/manager-bundle.js.map +7 -0
- package/storybook-static/sb-addons/pseudo-states-9/manager-bundle.js +4 -0
- package/storybook-static/sb-addons/pseudo-states-9/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/pseudo-states-9/manager-bundle.js.map +7 -0
- package/storybook-static/sb-common-assets/fonts.css +31 -0
- package/storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
- package/storybook-static/sb-common-assets/nunito-sans-bold.woff2 +0 -0
- package/storybook-static/sb-common-assets/nunito-sans-italic.woff2 +0 -0
- package/storybook-static/sb-common-assets/nunito-sans-regular.woff2 +0 -0
- package/storybook-static/sb-manager/CRUD-I5EZL2FS-LBZVDZXV.js +1 -0
- package/storybook-static/sb-manager/Communicate-7JXCND2Z-6SIVXWT4.js +1 -0
- package/storybook-static/sb-manager/Devices-SUYACUPO-DMGV6ENX.js +1 -0
- package/storybook-static/sb-manager/Documents-SGWAY3KW-XZRZ6I6S.js +1 -0
- package/storybook-static/sb-manager/Editing-7QFB6ZMG-J5U6QGB6.js +1 -0
- package/storybook-static/sb-manager/Git-DZ2D5ZUL-VKBWYJHE.js +1 -0
- package/storybook-static/sb-manager/GlobalScrollAreaStyles-4LLX2B3H-DOBSPBNW.js +7 -0
- package/storybook-static/sb-manager/Images-S2WTXNGG-NXAYS4VP.js +1 -0
- package/storybook-static/sb-manager/Logos-SJTNNI74-F3IVL4UV.js +1 -0
- package/storybook-static/sb-manager/OS-YZ2Y4VYS-KGSGCOHC.js +1 -0
- package/storybook-static/sb-manager/OverlayScrollbars-OL4C4TVX-FNYA4OIC.js +1 -0
- package/storybook-static/sb-manager/People-OD4EV7WZ-DBPUNUXW.js +1 -0
- package/storybook-static/sb-manager/Wayfinding-BB4H7CHP-N2QAVLVA.js +1 -0
- package/storybook-static/sb-manager/WithTooltip-YBG737T3-GLWUADFI.js +1 -0
- package/storybook-static/sb-manager/chunk-6KNXZZZ5.js +207 -0
- package/storybook-static/sb-manager/chunk-DP4DR4LA.js +15 -0
- package/storybook-static/sb-manager/chunk-GBCXFRBK.js +1 -0
- package/storybook-static/sb-manager/chunk-IFNK3PLJ.js +1 -0
- package/storybook-static/sb-manager/chunk-JMPBYCHU.js +1 -0
- package/storybook-static/sb-manager/chunk-JSPL73I3.js +1 -0
- package/storybook-static/sb-manager/chunk-SJD7EFYL.js +136 -0
- package/storybook-static/sb-manager/chunk-UBXIQABM.js +447 -0
- package/storybook-static/sb-manager/chunk-V7GYLJLR.js +7 -0
- package/storybook-static/sb-manager/chunk-Z4NRYNHR.js +1 -0
- package/storybook-static/sb-manager/formatter-6736J7QO-TGL2ZGQC.js +156 -0
- package/storybook-static/sb-manager/globals.js +1 -0
- package/storybook-static/sb-manager/index.js +1 -0
- package/storybook-static/sb-manager/runtime.js +1 -0
- package/storybook-static/sb-manager/syntaxhighlighter-4OVWVELQ-5IZ45DZY.js +1 -0
- package/storybook-static/sb-preview/globals.js +1 -0
- package/storybook-static/sb-preview/runtime.js +105 -0
- package/storybook-static/stories.json +1 -0
- package/tasks/create.js +45 -45
- package/tasks/firebase-import-meal-nutrients.js +66 -66
- package/tsbuildcache +1 -1
- package/tsconfig.build.json +44 -44
- package/tsconfig.json +20 -20
- package/tsconfig.tsbuildinfo +1 -0
- package/webpack.config.js +26 -26
- package/LICENSE +0 -21
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,EAAQG,QAAQ,kBAAmBA,QAAQ,SAAUA,QAAQ,cACrD,mBAAXC,QAAyBA,OAAOC,IAC9CD,OAAO,CAAC,iBAAkB,QAAS,aAAcJ,GACvB,iBAAZC,QACdA,QAAiB,QAAID,EAAQG,QAAQ,kBAAmBA,QAAQ,SAAUA,QAAQ,cAElFJ,EAAc,QAAIC,EAAQD,EAAK,kBAAmBA,EAAY,MAAGA,EAAK,aACvE,CATD,CASGO,MAAM,SAASC,EAAkCC,EAAkCC,GACtF,O,eCTIC,EADAC,E,sBCAoP,IAAUC,EAAfN,KAAlLJ,EAAOD,SAA0LW,EAAhL,EAAQ,KAAkL,WAAW,IAAIC,EAAE,CAAC,IAAI,SAASD,GAAGN,KAAKM,EAAEX,QAAQ,WAAW,aAAa,IAAIW,EAAE,CAACE,EAAE,SAASD,EAAEE,GAAG,IAAI,IAAIC,KAAKD,EAAEH,EAAEK,EAAEF,EAAEC,KAAKJ,EAAEK,EAAEJ,EAAEG,IAAIE,OAAOC,eAAeN,EAAEG,EAAE,CAACI,YAAW,EAAGC,IAAIN,EAAEC,IAAI,EAAEC,EAAE,SAASL,EAAEC,GAAG,OAAOK,OAAOI,UAAUC,eAAeC,KAAKZ,EAAEC,EAAE,EAAEG,EAAE,SAASJ,GAAG,oBAAoBa,QAAQA,OAAOC,aAAaR,OAAOC,eAAeP,EAAEa,OAAOC,YAAY,CAACC,MAAM,WAAWT,OAAOC,eAAeP,EAAE,aAAa,CAACe,OAAM,GAAI,GAAGd,EAAE,CAAC,EAAED,EAAEI,EAAEH,GAAGD,EAAEE,EAAED,EAAE,CAACe,UAAU,WAAW,OAAOC,CAAC,EAAEC,QAAQ,WAAW,OAAOd,CAAC,EAAEe,eAAe,WAAW,OAAOhB,CAAC,EAAEiB,SAAS,WAAW,OAAOC,CAAC,EAAEC,WAAW,WAAW,OAAOC,CAAC,EAAEC,cAAc,WAAW,OAAOC,CAAC,EAAEC,cAAc,WAAW,OAAOC,CAAC,EAAEC,KAAK,WAAW,OAAOC,CAAC,EAAEC,OAAO,WAAW,OAAOC,CAAC,EAAEC,KAAK,WAAW,OAAOC,CAAC,EAAEC,OAAO,WAAW,OAAOC,CAAC,EAAEC,SAAS,WAAW,OAAO/B,CAAC,IAAI,IAAIF,EAAE,CAAC,EAAEH,EAAEI,EAAED,GAAGH,EAAEE,EAAEC,EAAE,CAACkC,WAAW,WAAW,OAAOC,CAAC,EAAEC,gBAAgB,WAAW,OAAOC,CAAC,EAAEC,WAAW,WAAW,OAAOC,CAAC,EAAEC,WAAW,WAAW,OAAOzC,CAAC,EAAE0C,kBAAkB,WAAW,OAAOC,CAAC,IAAI,MAAMzC,EAAE,IAAIJ,IAAI,IAAIC,IAAID,EAAE8C,SAAS9C,GAAGA,OAAOC,KAAKI,EAAE,CAACL,EAAEC,KAAK,IAAIE,GAAE,EAAGC,EAAE,KAAKC,EAAE,KAAK,MAAM,CAAC,SAASgB,KAAK0B,GAAG5C,EAAEC,EAAE2C,GAAG5C,GAAE,EAAGH,KAAK+C,GAAG1C,EAAE2C,YAAW,KAAM7C,GAAE,EAAGC,IAAIiB,KAAKjB,GAAGA,EAAE,KAAM,GAAEH,GAAG,EAAE,WAAWI,GAAG4C,aAAa5C,EAAE,EAAC,EAAGgB,EAAE,CAACrB,EAAEC,EAAE,OAAO,IAAIE,EAAE,KAAK,MAAM,CAAC,IAAIC,KAAKD,GAAG8C,aAAa9C,GAAGA,EAAE6C,YAAW,KAAM7C,GAAG8C,aAAa9C,GAAGH,KAAKI,EAAG,GAAEH,EAAC,EAAG,WAAWE,GAAG8C,aAAa9C,EAAE,EAAC,EAAG4C,EAAE,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAOG,EAAE,CAACC,KAAK,QAAQC,MAAM,OAAOC,KAAK,OAAOC,IAAI,MAAMC,KAAK,KAAKC,IAAI,IAAId,EAAE1C,GAAG,IAAIyD,KAAKzD,GAAG0D,mBAAmB,QAAQ,CAACH,KAAK,UAAUI,OAAO,YAAYnB,EAAExC,GAAG+C,EAAE,IAAIU,KAAKzD,GAAG4D,UAAUtB,EAAEtC,GAAG,IAAIyD,KAAKzD,GAAG6D,mBAAmB,QAAQ,CAACP,IAAI,UAAUF,MAAM,UAAUP,EAAE7C,IAAI,OAAOA,GAAG,KAAK,EAAE,MAAM,MAAM,KAAK,EAAE,MAAM,MAAM,KAAK,EAAE,MAAM,MAAM,KAAK,EAAE,MAAM,MAAM,KAAK,EAAE,MAAM,MAAM,KAAK,EAAE,MAAM,MAAM,KAAK,EAAE,MAAM,MAAK,EAAGE,EAAEF,IAAI,MAAMC,EAAE,IAAIwD,KAAKzD,GAAG8D,UAAU,GAAGC,OAAOC,MAAM/D,GAAG,MAAM,IAAIgE,MAAM,gBAAgB,MAAM9D,EAAE+D,KAAKC,OAAOV,KAAKW,MAAMnE,GAAG,KAAK,IAAIG,EAAE,IAAI,MAAMJ,KAAKkD,EAAE,GAAG9C,EAAE8D,KAAKC,MAAMhE,EAAE+C,EAAElD,IAAII,GAAG,EAAE,MAAM,GAAGA,KAAKJ,IAAII,EAAE,EAAE,IAAI,SAAS,MAAM,YAAYuB,EAAE,CAAC3B,EAAEC,IAAIK,OAAO+D,KAAKpE,GAAGqE,QAAO,CAAEnE,EAAEC,KAAKD,EAAEC,GAAGJ,EAAEC,EAAEG,GAAGA,EAAEH,GAAGE,IAAI,CAAC,GAAGoE,EAAE,CAACvE,EAAEC,EAAEE,KAAK,IAAI,IAAIC,EAAEH,EAAEG,EAAED,IAAIC,EAAEJ,EAAEwE,KAAKpE,EAAC,EAAG,IAAIqB,EAAE,CAACzB,EAAEC,KAAK,GAAG,MAAMD,IAAI+D,OAAOU,UAAUzE,GAAG,MAAM,IAAIiE,MAAM,oCAAoC,GAAGjE,GAAG,EAAE,MAAM,GAAG,IAAIG,EAAE,CAAC,GAAG,GAAG,IAAIH,EAAE,OAAOG,EAAE,GAAG,MAAMF,IAAI8D,OAAOU,UAAUxE,GAAG,MAAM,IAAIgE,MAAM,sCAAsC,GAAG,MAAMhE,IAAIA,EAAE,GAAGA,EAAED,GAAG,MAAM,IAAIiE,MAAM,iBAAiBhE,qBAAqB,GAAGA,GAAGA,EAAE,EAAE,CAAC,MAAMG,EAAE,EAAEJ,EAAEC,KAAK,MAAME,EAAE,GAAG,OAAOF,IAAID,GAAGG,EAAEqE,KAAKvE,GAAGA,EAAE,GAAGE,EAAEuE,QAAQzE,EAAE,GAAGA,EAAE,EAAED,GAAGG,EAAEqE,KAAKvE,EAAE,GAAGE,CAAE,EAArF,CAAuFH,EAAEC,IAAII,EAAE,CAACgB,GAAGjB,EAAEC,EAAE,EAAE,EAAEF,EAAEqE,MAAM,GAAGD,EAAEpE,EAAE,EAAEE,GAAGF,EAAEA,EAAEwE,OAAOvE,GAAGJ,EAAEqB,EAAE,EAAElB,EAAEqE,MAAM,GAAGD,EAAEpE,EAAEkB,EAAE,EAAErB,EAAE,MAAMA,GAAG,EAAEuE,EAAEpE,EAAE,EAAEH,GAAGG,EAAEqE,KAAK,EAAE,GAAG,GAAG,OAAOrE,EAAEqE,KAAKxE,GAAGG,GAAG,MAAMc,EAAE,EAAEjB,KAAKC,GAAGE,IAAIC,GAAGwE,KAAKC,MAAMD,KAAKE,UAAU,IAAI1E,EAAE,CAACJ,GAAGC,EAAE8E,OAAO9D,EAAEhB,EAAEE,EAAJc,CAAOb,EAAEJ,IAAIG,KAAKoB,EAAEvB,GAAGC,IAAI,MAAME,EAAEyE,KAAKC,MAAMD,KAAKE,UAAU7E,IAAI,OAAOD,EAAEsE,QAAO,CAAErE,EAAEE,EAAEC,KAAKA,IAAIJ,EAAE+E,OAAO,UAAU9E,EAAEE,GAAGF,EAAEE,KAAKA,GAAGA,GAAG0B,EAAE7B,GAAGC,GAAGD,EAAEsE,QAAO,CAAEtE,EAAEC,IAAID,IAAIC,IAAIA,GAAG8B,EAAE,CAAC/B,EAAEC,IAAIE,IAAI,MAAMC,EAAEyB,EAAE5B,EAAF4B,CAAK1B,GAAG,OAAO,MAAMC,EAAEJ,EAAEI,GAAG6B,EAAEjC,GAAGC,GAAGA,IAAID,GAAGmC,EAAE,CAACnC,EAAEC,IAAIE,IAAI,MAAMC,EAAE6B,EAAEhC,EAAFgC,CAAK9B,GAAG,OAAO,MAAMC,EAAEJ,EAAEI,GAAG,OAAOH,CAAC,CAAt8F,EAAy8F,EAAE,IAAI,SAASA,GAAG,aAAaA,EAAEZ,QAAQW,CAAC,GAAGG,EAAE,CAAC,EAAE,SAASC,EAAEJ,GAAG,IAAIK,EAAEF,EAAEH,GAAG,QAAG,IAASK,EAAE,OAAOA,EAAEhB,QAAQ,IAAIgC,EAAElB,EAAEH,GAAG,CAACX,QAAQ,CAAC,GAAG,OAAOY,EAAED,GAAGqB,EAAEA,EAAEhC,QAAQe,GAAGiB,EAAEhC,OAAO,CAACe,EAAEF,EAAE,SAASF,EAAEC,GAAG,IAAI,IAAIE,KAAKF,EAAEG,EAAEC,EAAEJ,EAAEE,KAAKC,EAAEC,EAAEL,EAAEG,IAAIG,OAAOC,eAAeP,EAAEG,EAAE,CAACK,YAAW,EAAGC,IAAIR,EAAEE,IAAI,EAAEC,EAAEC,EAAE,SAASL,EAAEC,GAAG,OAAOK,OAAOI,UAAUC,eAAeC,KAAKZ,EAAEC,EAAE,EAAEG,EAAEA,EAAE,SAASJ,GAAG,oBAAoBa,QAAQA,OAAOC,aAAaR,OAAOC,eAAeP,EAAEa,OAAOC,YAAY,CAACC,MAAM,WAAWT,OAAOC,eAAeP,EAAE,aAAa,CAACe,OAAM,GAAI,EAAE,IAAIV,EAAE,CAAC,EAAE,OAAO,WAAW,aAAaD,EAAEA,EAAEC,GAAGD,EAAEF,EAAEG,EAAE,CAAC2E,OAAO,WAAW,OAAO/E,CAAC,EAAEgF,gBAAgB,WAAW,OAAO5D,CAAC,EAAE6D,mBAAmB,WAAW,OAAOhC,CAAC,EAAEiC,oBAAoB,WAAW,OAAOtC,CAAC,EAAEuC,cAAc,WAAW,OAAOjF,CAAC,IAAI,IAAIH,EAAEI,EAAE,KAAK,SAASH,EAAEA,EAAEE,GAAG,MAAMC,EAAEC,IAAG,EAAGL,EAAEqF,WAAU,IAAKhE,EAAE0B,IAAG,EAAG/C,EAAEqF,UAAU,OAAOnC,EAAER,IAAG,EAAG1C,EAAEqF,UAAUlF,GAAG,MAAM,CAACmF,UAAUlF,EAAEmF,MAAMlE,EAAEmE,KAAKtC,EAAEuC,MAAMC,SAAS1F,KAAKK,GAAE,GAAI0C,EAAE,MAAM,IAAI,MAAM5C,QAAQF,KAAKD,GAAG0C,EAAEvC,EAAE,CAAC,MAAMH,GAAG+C,EAAE/C,EAAE,CAAC,QAAQK,GAAE,EAAG,GAAG,CAAC,MAAMF,EAAE,KAAK,MAAMF,EAAEE,IAAG,EAAGH,EAAEqF,UAAU,CAACM,MAAMC,OAAOC,WAAWC,OAAOF,OAAOG,cAAc,OAAM,EAAG/F,EAAEgG,YAAW,KAAM,SAAShG,IAAIG,EAAE,CAACwF,MAAMC,OAAOC,WAAWC,OAAOF,OAAOG,aAAa,CAAC,OAAOH,OAAOK,iBAAiB,SAASjG,GAAGA,IAAI,IAAI4F,OAAOM,oBAAoB,SAASlG,EAAG,GAAE,IAAIC,GAAGoB,EAAE,CAACpB,EAAEE,KAAK,MAAMC,EAAE,CAAC,YAAY,eAAc,EAAGJ,EAAEgG,YAAW,KAAM,MAAMhG,EAAEA,IAAI,MAAMC,EAAEkG,SAASlG,EAAEkG,QAAQC,SAASpG,EAAEqG,SAASlG,EAAEH,EAAC,EAAG,OAAOI,EAAE0C,SAAS7C,GAAGqG,SAASL,iBAAiBhG,EAAED,KAAK,IAAII,EAAE0C,SAAS7C,GAAGqG,SAASJ,oBAAoBjG,EAAED,IAAK,GAAE,CAACC,EAAEE,GAAE,EAAG,IAAI4C,EAAE3C,EAAE,KAAK,MAAM8C,EAAE,EAAEqD,WAAWtG,EAAEuG,aAAarG,MAAK,EAAGH,EAAEyG,UAAS,KAAK,EAAG1D,EAAEvB,eAAevB,EAAEE,IAAI,CAACF,EAAEE,IAAIuC,EAAE,mBAAmBF,EAAE,CAACxC,EAAEC,IAAID,EAAE0G,YAAY3C,OAAO9D,GAAG0G,aAAarE,EAAE,CAACtC,EAAEC,KAAK,MAAME,EAAEyF,OAAOgB,iBAAiB5G,GAAG6G,SAASC,MAAMpE,GAAG,GAAGvC,EAAE,CAAC,MAAM,CAACC,EAAEC,GAAGF,EAAEH,EAAE+G,MAAMF,SAAS,GAAG9C,OAAO3D,GAAGH,IAAII,GAAG,GAAGwC,EAAE,CAAC5C,EAAE,EAAEG,EAAE,KAAK,MAAMC,GAAE,EAAGL,EAAEgH,QAAQ,MAAM3F,GAAE,EAAGrB,EAAEgH,QAAQ,IAAIrB,MAAM5C,GAAG5C,IAAI,OAAM,EAAGH,EAAEgG,YAAW,KAAM,MAAM,GAAG,MAAM3F,EAAE8F,QAAQ,OAAO,MAAMnG,EAAEK,EAAE8F,QAAQhG,EAAEH,EAAEiH,WAAW,IAAIlE,EAAEP,EAAExC,EAAEG,GAAG,KAAKkB,EAAE8E,QAAQlG,GAAG8C,GAAGT,EAAEtC,EAAEI,GAAG2C,EAAEP,EAAExC,EAAEG,KAAKkB,EAAE8E,QAAQpD,IAAI/C,EAAE+G,MAAMG,UAAU,YAAa,EAAlK,EAAsK,GAAE,CAAC7G,EAAE0C,IAAI1C,EAAE,CAApiD,GAAwiDA,CAAC,CAAxjK,G,kBCAvEX,KAApIJ,EAAOD,QAAqJ,WAAW,aAAa,IAAIW,EAAE,CAACE,EAAE,SAASD,EAAEE,GAAG,IAAI,IAAIC,KAAKD,EAAEH,EAAEK,EAAEF,EAAEC,KAAKJ,EAAEK,EAAEJ,EAAEG,IAAIE,OAAOC,eAAeN,EAAEG,EAAE,CAACI,YAAW,EAAGC,IAAIN,EAAEC,IAAI,EAAEC,EAAE,SAASL,EAAEC,GAAG,OAAOK,OAAOI,UAAUC,eAAeC,KAAKZ,EAAEC,EAAE,EAAEG,EAAE,SAASJ,GAAG,oBAAoBa,QAAQA,OAAOC,aAAaR,OAAOC,eAAeP,EAAEa,OAAOC,YAAY,CAACC,MAAM,WAAWT,OAAOC,eAAeP,EAAE,aAAa,CAACe,OAAM,GAAI,GAAGd,EAAE,CAAC,EAAED,EAAEI,EAAEH,GAAGD,EAAEE,EAAED,EAAE,CAACe,UAAU,WAAW,OAAOC,CAAC,EAAEC,QAAQ,WAAW,OAAOd,CAAC,EAAEe,eAAe,WAAW,OAAOhB,CAAC,EAAEiB,SAAS,WAAW,OAAOC,CAAC,EAAEC,WAAW,WAAW,OAAOS,CAAC,EAAEP,cAAc,WAAW,OAAOC,CAAC,EAAEC,cAAc,WAAW,OAAOC,CAAC,EAAEC,KAAK,WAAW,OAAOC,CAAC,EAAEC,OAAO,WAAW,OAAOG,CAAC,EAAED,KAAK,WAAW,OAAOT,CAAC,EAAEW,OAAO,WAAW,OAAOiF,CAAC,EAAE/E,SAAS,WAAW,OAAO/B,CAAC,IAAI,IAAIF,EAAE,CAAC,EAAEH,EAAEI,EAAED,GAAGH,EAAEE,EAAEC,EAAE,CAACkC,WAAW,WAAW,OAAOQ,CAAC,EAAEN,gBAAgB,WAAW,OAAOD,CAAC,EAAEG,WAAW,WAAW,OAAOC,CAAC,EAAEC,WAAW,WAAW,OAAOzC,CAAC,EAAE0C,kBAAkB,WAAW,OAAOJ,CAAC,IAAI,MAAMpC,EAAE,IAAIJ,IAAI,IAAIC,IAAID,EAAE8C,SAAS9C,GAAGA,OAAOC,KAAKI,EAAE,CAACL,EAAEC,KAAK,IAAIE,GAAE,EAAGC,EAAE,KAAKC,EAAE,KAAK,MAAM,CAAC,SAASgB,KAAK0B,GAAG5C,EAAEC,EAAE2C,GAAG5C,GAAE,EAAGH,KAAK+C,GAAG1C,EAAE2C,YAAW,KAAM7C,GAAE,EAAGC,IAAIiB,KAAKjB,GAAGA,EAAE,KAAM,GAAEH,GAAG,EAAE,WAAWI,GAAG4C,aAAa5C,EAAE,EAAC,EAAGgB,EAAE,CAACrB,EAAEC,EAAE,OAAO,IAAIE,EAAE,KAAK,MAAM,CAAC,IAAIC,KAAKD,GAAG8C,aAAa9C,GAAGA,EAAE6C,YAAW,KAAM7C,GAAG8C,aAAa9C,GAAGH,KAAKI,EAAG,GAAEH,EAAC,EAAG,WAAWE,GAAG8C,aAAa9C,EAAE,EAAC,EAAG4C,EAAE,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAOG,EAAE,CAACC,KAAK,QAAQC,MAAM,OAAOC,KAAK,OAAOC,IAAI,MAAMC,KAAK,KAAKC,IAAI,IAAId,EAAE1C,GAAG,IAAIyD,KAAKzD,GAAG0D,mBAAmB,QAAQ,CAACH,KAAK,UAAUI,OAAO,YAAYrB,EAAEtC,GAAG+C,EAAE,IAAIU,KAAKzD,GAAG4D,UAAUf,EAAE7C,GAAG,IAAIyD,KAAKzD,GAAG6D,mBAAmB,QAAQ,CAACP,IAAI,UAAUF,MAAM,UAAUZ,EAAExC,IAAI,OAAOA,GAAG,KAAK,EAAE,MAAM,MAAM,KAAK,EAAE,MAAM,MAAM,KAAK,EAAE,MAAM,MAAM,KAAK,EAAE,MAAM,MAAM,KAAK,EAAE,MAAM,MAAM,KAAK,EAAE,MAAM,MAAM,KAAK,EAAE,MAAM,MAAK,EAAGE,EAAEF,IAAI,MAAMC,EAAE,IAAIwD,KAAKzD,GAAG8D,UAAU,GAAGC,OAAOC,MAAM/D,GAAG,MAAM,IAAIgE,MAAM,gBAAgB,MAAM9D,EAAE+D,KAAKC,OAAOV,KAAKW,MAAMnE,GAAG,KAAK,IAAIG,EAAE,IAAI,MAAMJ,KAAKkD,EAAE,GAAG9C,EAAE8D,KAAKC,MAAMhE,EAAE+C,EAAElD,IAAII,GAAG,EAAG,MAAM,GAAGA,KAAKJ,IAAII,EAAE,EAAE,IAAI,SAAS,MAAM,YAAYuB,EAAE,CAAC3B,EAAEC,IAAIK,OAAO+D,KAAKpE,GAAGqE,QAAO,CAAEnE,EAAEC,KAAKD,EAAEC,GAAGJ,EAAEC,EAAEG,GAAGA,EAAEH,GAAGE,IAAI,CAAC,GAAGoE,EAAE,CAACvE,EAAEC,EAAEE,KAAK,IAAI,IAAIC,EAAEH,EAAEG,EAAED,IAAIC,EAAEJ,EAAEwE,KAAKpE,EAAC,EAAG,IAAIqB,EAAE,CAACzB,EAAEC,KAAK,GAAG,MAAMD,IAAI+D,OAAOU,UAAUzE,GAAG,MAAM,IAAIiE,MAAM,oCAAoC,GAAGjE,GAAG,EAAE,MAAM,GAAG,IAAIG,EAAE,CAAC,GAAG,GAAG,IAAIH,EAAE,OAAOG,EAAE,GAAG,MAAMF,IAAI8D,OAAOU,UAAUxE,GAAG,MAAM,IAAIgE,MAAM,sCAAsC,GAAG,MAAMhE,IAAIA,EAAE,GAAGA,EAAED,GAAG,MAAM,IAAIiE,MAAM,iBAAiBhE,qBAAqB,GAAGA,GAAGA,EAAE,EAAE,CAAC,MAAMG,EAAE,EAAEJ,EAAEC,KAAK,MAAME,EAAE,GAAG,OAAOF,IAAID,GAAGG,EAAEqE,KAAKvE,GAAGA,EAAE,GAAGE,EAAEuE,QAAQzE,EAAE,GAAGA,EAAE,EAAED,GAAGG,EAAEqE,KAAKvE,EAAE,GAAGE,CAAE,EAArF,CAAuFH,EAAEC,IAAII,EAAE,CAACgB,GAAGjB,EAAEC,EAAE,EAAE,EAAEF,EAAEqE,MAAM,GAAGD,EAAEpE,EAAE,EAAEE,GAAGF,EAAEA,EAAEwE,OAAOvE,GAAGJ,EAAEqB,EAAE,EAAElB,EAAEqE,MAAM,GAAGD,EAAEpE,EAAEkB,EAAE,EAAErB,EAAE,MAAMA,GAAG,EAAEuE,EAAEpE,EAAE,EAAEH,GAAGG,EAAEqE,KAAK,EAAE,GAAG,GAAG,OAAOrE,EAAEqE,KAAKxE,GAAGG,GAAG,MAAMc,EAAE,EAAEjB,KAAKC,GAAGE,IAAIC,GAAGwE,KAAKC,MAAMD,KAAKE,UAAU,IAAI1E,EAAE,CAACJ,GAAGC,EAAE8E,OAAO9D,EAAEhB,EAAEE,EAAJc,CAAOb,EAAEJ,IAAIG,KAAK4B,EAAE/B,GAAGC,IAAI,MAAME,EAAEyE,KAAKC,MAAMD,KAAKE,UAAU7E,IAAI,OAAOD,EAAEsE,QAAO,CAAErE,EAAEE,EAAEC,KAAKA,IAAIJ,EAAE+E,OAAO,UAAU9E,EAAEE,GAAGF,EAAEE,KAAKA,GAAGA,GAAG0B,EAAE7B,GAAGC,GAAGD,EAAEsE,QAAO,CAAEtE,EAAEC,IAAID,IAAIC,IAAIA,GAAGgC,EAAE,CAACjC,EAAEC,IAAIE,IAAI,MAAMC,EAAEyB,EAAE5B,EAAF4B,CAAK1B,GAAG,OAAO,MAAMC,EAAEJ,EAAEI,GAAGmB,EAAEvB,GAAGC,GAAGA,IAAID,GAAGmH,EAAE,CAACnH,EAAEC,IAAIE,IAAI,MAAMC,EAAEmB,EAAEtB,EAAFsB,CAAKpB,GAAG,OAAO,MAAMC,EAAEJ,EAAEI,GAAG,OAAOH,CAAC,CAAv8F,E,+BCA7NX,EAAOD,QAAUM,C,+BCAjBL,EAAOD,QAAUO,C,+BCAjBN,EAAOD,QAAUQ,C,GCCbuH,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAalI,QAGrB,IAAIC,EAAS8H,EAAyBE,GAAY,CAGjDjI,QAAS,CAAC,GAOX,OAHAoI,EAAoBH,GAAUhI,EAAQA,EAAOD,QAASgI,GAG/C/H,EAAOD,OACf,CCrBAgI,EAAoBlH,EAAI,SAASb,GAChC,IAAIoI,EAASpI,GAAUA,EAAOqI,WAC7B,WAAa,OAAOrI,EAAgB,OAAG,EACvC,WAAa,OAAOA,CAAQ,EAE7B,OADA+H,EAAoBnH,EAAEwH,EAAQ,CAAEhF,EAAGgF,IAC5BA,CACR,EPPI3H,EAAWO,OAAOsH,eAAiB,SAASC,GAAO,OAAOvH,OAAOsH,eAAeC,EAAM,EAAI,SAASA,GAAO,OAAOA,EAAIC,SAAW,EAQpIT,EAAoBpH,EAAI,SAASc,EAAOgH,GAEvC,GADU,EAAPA,IAAUhH,EAAQiH,KAAKjH,IAChB,EAAPgH,EAAU,OAAOhH,EACpB,GAAoB,iBAAVA,GAAsBA,EAAO,CACtC,GAAW,EAAPgH,GAAahH,EAAM4G,WAAY,OAAO5G,EAC1C,GAAW,GAAPgH,GAAoC,mBAAfhH,EAAMkH,KAAqB,OAAOlH,CAC5D,CACA,IAAImH,EAAK5H,OAAO6H,OAAO,MACvBd,EAAoBjH,EAAE8H,GACtB,IAAIE,EAAM,CAAC,EACXtI,EAAiBA,GAAkB,CAAC,KAAMC,EAAS,CAAC,GAAIA,EAAS,IAAKA,EAASA,IAC/E,IAAI,IAAIoG,EAAiB,EAAP4B,GAAYhH,EAAyB,iBAAXoF,KAAyBrG,EAAeuI,QAAQlC,GAAUA,EAAUpG,EAASoG,GACxH7F,OAAOgI,oBAAoBnC,GAASrD,SAAQ,SAASyF,GAAOH,EAAIG,GAAO,WAAa,OAAOxH,EAAMwH,EAAM,CAAG,IAI3G,OAFAH,EAAa,QAAI,WAAa,OAAOrH,CAAO,EAC5CsG,EAAoBnH,EAAEgI,EAAIE,GACnBF,CACR,EQxBAb,EAAoBnH,EAAI,SAASb,EAASmJ,GACzC,IAAI,IAAID,KAAOC,EACXnB,EAAoBhH,EAAEmI,EAAYD,KAASlB,EAAoBhH,EAAEhB,EAASkJ,IAC5EjI,OAAOC,eAAelB,EAASkJ,EAAK,CAAE/H,YAAY,EAAMC,IAAK+H,EAAWD,IAG3E,ECPAlB,EAAoBhH,EAAI,SAASwH,EAAK7F,GAAQ,OAAO1B,OAAOI,UAAUC,eAAeC,KAAKiH,EAAK7F,EAAO,ECCtGqF,EAAoBjH,EAAI,SAASf,GACX,oBAAXwB,QAA0BA,OAAOC,aAC1CR,OAAOC,eAAelB,EAASwB,OAAOC,YAAa,CAAEC,MAAO,WAE7DT,OAAOC,eAAelB,EAAS,aAAc,CAAE0B,OAAO,GACvD,E,gqIC6GA,MAjHoB,CAClB0H,OAAQ,CACNC,QAAS,sBACTC,QAAS,sBACTC,MAAO,yBACPC,QAAS,2BACTC,QAAS,2BACTC,QAAS,2BACTC,YAAa,yBACbC,qBAAsB,yBACtBC,YAAa,yBACbC,cAAe,2BACfC,iBAAkB,yBAClBC,oBAAqB,sBACrBC,iBAAkB,sBAClBC,iBAAkB,sBAClBC,KAAM,yBACNC,OAAQ,wBACRC,OAAQ,wBACRC,aAAc,2BACdC,WAAY,sBACZC,aAAc,wBACdC,aAAc,wBACdC,aAAc,yBACdC,SAAU,kBACVC,aAAc,sBACdC,qBAAsB,yBACtBC,mBAAoB,sBACpBC,wBAAyB,wBACzBC,eAAgB,kBAChBC,oBAAqB,kBACrBC,iBAAkB,yBAClBC,aAAc,sBACdC,eAAgB,0BAChBC,WAAY,yBACZC,gBAAiB,2BACjBC,YAAa,2BACbC,eAAgB,qBAChBC,sBAAuB,qBACvBC,WAAY,yBACZC,aAAc,2BACdC,IAAK,wBACLC,MAAO,0BACPC,aAAc,yBACdC,eAAgB,2BAChBC,eAAgB,2BAChBC,eAAgB,2BAChBC,MAAO,wBACPC,QAAS,0BACTC,QAAS,0BACTC,QAAS,0BACTC,UAAW,yBACXC,UAAW,uBACXC,KAAM,yBACNC,OAAQ,2BACRC,SAAU,uBACVC,WAAY,yBACZC,YAAa,yBACbC,cAAe,2BACfC,cAAe,2BACfC,aAAc,0BACdC,OAAQ,wBACRC,SAAU,0BACVC,cAAe,wBACfC,gBAAiB,0BACjBC,gBAAiB,0BACjBC,WAAY,wBACZC,aAAc,0BACdC,aAAc,0BACdC,UAAW,wBACXC,YAAa,0BACbC,kBAAmB,2BACnBC,iBAAkB,yBAClBC,mBAAoB,2BACpBC,mBAAoB,2BACpBC,OAAQ,wBACRC,SAAU,0BACVC,cAAe,yBACfC,gBAAiB,2BACjBC,gBAAiB,2BACjBC,WAAY,yBACZC,aAAc,2BACdC,KAAM,wBACNC,OAAQ,0BACRC,SAAU,wBACVC,gBAAiB,sBACjBC,8BAA+B,yBAC/BC,oCAAqC,yBACrCC,YAAa,yBACbC,cAAe,2BACfC,cAAe,2BACfC,UAAW,wBACXC,YAAa,0BACbC,kBAAmB,2BACnBC,iBAAkB,yBAClBC,mBAAoB,2BACpBC,mBAAoB,2BACpBC,iBAAkB,uBAClBC,mBAAoB,yBACpBC,4BAA6B,oBAC7BC,0BAA2B,mBAC3BC,iBAAkB,kBAClBC,UAAW,yBAEbC,aAAc,CACZC,GAAI,uCACJC,GAAI,uCACJC,GAAI,uCACJC,GAAI,wCACJC,IAAK,0C,SC7GF,MAAMvD,EAAQwD,IAAiBC,EAAAA,EAAAA,KAAG,oBACnBD,EAAM5G,OAAOoD,KAAI,oDAGjCwD,EAAM5G,OAAOoD,KAAI,UACjBwD,EAAM5G,OAAOwD,YAAW,kCAEAoD,EAAM5G,OAAO0D,cAAa,WAG3CE,EAAUgD,IAAiBC,EAAAA,EAAAA,KAAG,oBACrBD,EAAM5G,OAAO4D,OAAM,iDAGnCgD,EAAM5G,OAAO4D,OAAM,UACnBgD,EAAM5G,OAAO8D,cAAa,kCAEF8C,EAAM5G,OAAOgE,gBAAe,WAG7CC,EAAc2C,IAAiBC,EAAAA,EAAAA,KAAG,oBACzBD,EAAM5G,OAAO8D,cAAa,iDAG1C8C,EAAM5G,OAAO8D,cAAa,UAC1B8C,EAAM5G,OAAOiE,WAAU,kCAEC2C,EAAM5G,OAAOgE,gBAAe,WAG7ClB,EAAS8D,IAAiBC,EAAAA,EAAAA,KAAG,oBACpBD,EAAM5G,OAAO8C,MAAK,qDAGlC8D,EAAM5G,OAAO8C,MAAK,UAClB8D,EAAM5G,OAAO0C,aAAY,kCAEDkE,EAAM5G,OAAO4C,eAAc,WAG5CwB,EAAawC,IAAiBC,EAAAA,EAAAA,KAAG,oBACxBD,EAAM5G,OAAOoE,UAAS,qDAGtCwC,EAAM5G,OAAOoE,UAAS,UACtBwC,EAAM5G,OAAOuE,iBAAgB,kCAELqC,EAAM5G,OAAOyE,mBAAkB,WAGhDC,EAAUkC,IAAiBC,EAAAA,EAAAA,KAAG,oBACrBD,EAAM5G,OAAO0E,OAAM,qDAGnCkC,EAAM5G,OAAO4E,cAAa,UAC1BgC,EAAM5G,OAAO0E,OAAM,kCAEKkC,EAAM5G,OAAO8E,gBAAe,WAG7CG,EAAQ2B,IAAiBC,EAAAA,EAAAA,KAAG,oBACnBD,EAAM5G,OAAOiF,KAAI,iDAGjC2B,EAAM5G,OAAOiF,KAAI,UACjB2B,EAAM5G,OAAOuF,YAAW,kCAEAqB,EAAM5G,OAAOyF,cAAa,WAG3CC,EAAakB,IAAiBC,EAAAA,EAAAA,KAAG,oBACxBD,EAAM5G,OAAO0F,UAAS,qDAGtCkB,EAAM5G,OAAO6F,iBAAgB,UAC7Be,EAAM5G,OAAO0F,UAAS,kCAEEkB,EAAM5G,OAAO+F,mBAAkB,WAGhDX,EAAmBwB,IAAiBC,EAAAA,EAAAA,KAAG,oBAC9BD,EAAM5G,OAAOoF,gBAAe,qDAG5CwB,EAAM5G,OAAOmF,SAAQ,UACrByB,EAAM5G,OAAOoF,gBAAe,kCAEJwB,EAAM5G,OAAO4F,kBAAiB,WC/E/CkB,EAA0BA,CACrCF,EACAG,EACAC,EAAe,UACZH,EAAAA,EAAAA,KAAG,mBAEFI,EAAcL,EAAOG,EAAOC,GAAa,YAIlCC,EAA2BA,CACtCL,EACAG,EACAC,EAAe,OACfE,EAAc,WACXL,EAAAA,EAAAA,KAAG,mFAOUK,EAAW,kCAEXN,EAAM5G,OAAO+G,GAAS,cAAa,kBAClCC,EAAY,WCnChB,SAASG,IAYtB,OAXAA,EAAWtP,OAAOuP,OAASvP,OAAOuP,OAAOC,OAAS,SAAUzJ,GAC1D,IAAK,IAAItD,EAAI,EAAGA,EAAIgN,UAAUhL,OAAQhC,IAAK,CACzC,IAAIiN,EAASD,UAAUhN,GACvB,IAAK,IAAIwF,KAAOyH,EACV1P,OAAOI,UAAUC,eAAeC,KAAKoP,EAAQzH,KAC/ClC,EAAOkC,GAAOyH,EAAOzH,GAG3B,CACA,OAAOlC,CACT,EACOuJ,EAASK,MAAMjI,KAAM+H,UAC9B,CCbe,SAAS,IAYtB,OAXA,EAAWzP,OAAOuP,OAASvP,OAAOuP,OAAOC,OAAS,SAAUzJ,GAC1D,IAAK,IAAItD,EAAI,EAAGA,EAAIgN,UAAUhL,OAAQhC,IAAK,CACzC,IAAIiN,EAASD,UAAUhN,GACvB,IAAK,IAAIwF,KAAOyH,EACV1P,OAAOI,UAAUC,eAAeC,KAAKoP,EAAQzH,KAC/ClC,EAAOkC,GAAOyH,EAAOzH,GAG3B,CACA,OAAOlC,CACT,EACO,EAAS4J,MAAMjI,KAAM+H,UAC9B,C,iCCbA,SAASG,EAAQC,GACf,IAAIC,EAAQ9P,OAAO6H,OAAO,MAC1B,OAAO,SAAUkI,GAEf,YADmB7I,IAAf4I,EAAMC,KAAoBD,EAAMC,GAAOF,EAAGE,IACvCD,EAAMC,EACf,CACF,CCJA,IAAIC,EAAkB,o9HAElBC,EAA6BL,GAAQ,SAAUlO,GACjD,OAAOsO,EAAgBE,KAAKxO,IAAgC,MAAvBA,EAAKyO,WAAW,IAE3B,MAAvBzO,EAAKyO,WAAW,IAEhBzO,EAAKyO,WAAW,GAAK,EAC1B,ICEA,IAAIC,EAAiB,SAAwBN,EAAOO,EAAYC,GAC9D,IAAIC,EAAYT,EAAM7H,IAAM,IAAMoI,EAAWG,MAO5B,IAAhBF,QAIwDpJ,IAAhC4I,EAAMW,WAAWF,KACxCT,EAAMW,WAAWF,GAAaF,EAAWK,OAE7C,EC3BA,IAAIC,EAAe,CACjBC,wBAAyB,EACzBC,YAAa,EACbC,kBAAmB,EACnBC,iBAAkB,EAClBC,iBAAkB,EAClBC,QAAS,EACTC,aAAc,EACdC,gBAAiB,EACjBC,YAAa,EACbC,QAAS,EACTC,KAAM,EACNC,SAAU,EACVC,aAAc,EACdC,WAAY,EACZC,aAAc,EACdC,UAAW,EACXC,QAAS,EACTC,WAAY,EACZC,YAAa,EACbC,aAAc,EACdC,WAAY,EACZC,cAAe,EACfC,eAAgB,EAChBC,gBAAiB,EACjBC,UAAW,EACXC,cAAe,EACfC,aAAc,EACdC,iBAAkB,EAClBC,WAAY,EACZC,WAAY,EACZC,QAAS,EACTC,MAAO,EACPC,QAAS,EACTC,QAAS,EACTC,OAAQ,EACRC,OAAQ,EACRC,KAAM,EACNC,gBAAiB,EAEjBC,YAAa,EACbC,aAAc,EACdC,YAAa,EACbC,gBAAiB,EACjBC,iBAAkB,EAClBC,iBAAkB,EAClBC,cAAe,EACfC,YAAa,GCzCXC,EAAiB,aACjBC,EAAiB,8BAEjBC,EAAmB,SAA0BC,GAC/C,OAAkC,KAA3BA,EAAS1D,WAAW,EAC7B,EAEI2D,EAAqB,SAA4BrT,GACnD,OAAgB,MAATA,GAAkC,kBAAVA,CACjC,EAEIsT,EAAkCnE,GAAQ,SAAUoE,GACtD,OAAOJ,EAAiBI,GAAaA,EAAYA,EAAUC,QAAQP,EAAgB,OAAOQ,aAC5F,IAEIC,EAAoB,SAA2BlM,EAAKxH,GACtD,OAAQwH,GACN,IAAK,YACL,IAAK,gBAED,GAAqB,iBAAVxH,EACT,OAAOA,EAAMwT,QAAQN,GAAgB,SAAUnN,EAAO4N,EAAIC,GAMxD,OALAC,EAAS,CACP9D,KAAM4D,EACN1D,OAAQ2D,EACRE,KAAMD,GAEDF,CACT,IAKR,OAAsB,IAAlB,EAASnM,IAAe2L,EAAiB3L,IAAyB,iBAAVxH,GAAgC,IAAVA,EAI3EA,EAHEA,EAAQ,IAInB,EAgCA,SAAS+T,EAAoBC,EAAahE,EAAYiE,GACpD,GAAqB,MAAjBA,EACF,MAAO,GAGT,QAAuCxN,IAAnCwN,EAAcC,iBAKhB,OAAOD,EAGT,cAAeA,GACb,IAAK,UAED,MAAO,GAGX,IAAK,SAED,GAA2B,IAAvBA,EAAcE,KAMhB,OALAN,EAAS,CACP9D,KAAMkE,EAAclE,KACpBE,OAAQgE,EAAchE,OACtB6D,KAAMD,GAEDI,EAAclE,KAGvB,QAA6BtJ,IAAzBwN,EAAchE,OAAsB,CACtC,IAAI6D,EAAOG,EAAcH,KAEzB,QAAarN,IAATqN,EAGF,UAAgBrN,IAATqN,GACLD,EAAS,CACP9D,KAAM+D,EAAK/D,KACXE,OAAQ6D,EAAK7D,OACb6D,KAAMD,GAERC,EAAOA,EAAKA,KAUhB,OANaG,EAAchE,OAAS,GAOtC,CAEA,OA2CR,SAAgC+D,EAAahE,EAAYlJ,GACvD,IAAIsN,EAAS,GAEb,GAAIC,MAAMC,QAAQxN,GAChB,IAAK,IAAI9E,EAAI,EAAGA,EAAI8E,EAAI9C,OAAQhC,IAC9BoS,GAAUL,EAAoBC,EAAahE,EAAYlJ,EAAI9E,IAAM,SAGnE,IAAK,IAAIuS,KAAQzN,EAAK,CACpB,IAAI9G,EAAQ8G,EAAIyN,GAEhB,GAAqB,iBAAVvU,EACS,MAAdgQ,QAA4CvJ,IAAtBuJ,EAAWhQ,GACnCoU,GAAUG,EAAO,IAAMvE,EAAWhQ,GAAS,IAClCqT,EAAmBrT,KAC5BoU,GAAUd,EAAiBiB,GAAQ,IAAMb,EAAkBa,EAAMvU,GAAS,UAO5E,IAAIqU,MAAMC,QAAQtU,IAA8B,iBAAbA,EAAM,IAAkC,MAAdgQ,QAA+CvJ,IAAzBuJ,EAAWhQ,EAAM,IAM7F,CACL,IAAIwU,EAAeT,EAAoBC,EAAahE,EAAYhQ,GAEhE,OAAQuU,GACN,IAAK,YACL,IAAK,gBAEDH,GAAUd,EAAiBiB,GAAQ,IAAMC,EAAe,IACxD,MAGJ,QAMIJ,GAAUG,EAAO,IAAMC,EAAe,IAG9C,MAzBE,IAAK,IAAIC,EAAK,EAAGA,EAAKzU,EAAMgE,OAAQyQ,IAC9BpB,EAAmBrT,EAAMyU,MAC3BL,GAAUd,EAAiBiB,GAAQ,IAAMb,EAAkBa,EAAMvU,EAAMyU,IAAO,IAyBxF,CAGF,OAAOL,CACT,CAjGeM,CAAuBV,EAAahE,EAAYiE,GAG3D,IAAK,WAED,QAAoBxN,IAAhBuN,EAA2B,CAC7B,IAAIW,EAAiBd,EACjBe,EAASX,EAAcD,GAE3B,OADAH,EAASc,EACFZ,EAAoBC,EAAahE,EAAY4E,EACtD,EAyBN,GAAkB,MAAd5E,EACF,OAAOiE,EAGT,IAAIY,EAAS7E,EAAWiE,GACxB,YAAkBxN,IAAXoO,EAAuBA,EAASZ,CACzC,CA0DA,IASIJ,EATAiB,EAAe,iCAUnB,IC1OIC,IAAqB,EAA+B,oBAAI,EAA+B,mBACvFC,EAA2CD,GAL5B,SAAsB3N,GACvC,OAAOA,GACT,ECII6N,GDAuCF,GAAsB,kBCAlCvF,GAE3B0F,EAA2B,SAAkC1N,GAC/D,MAAe,UAARA,CACT,EAEI2N,EAA8B,SAAqCC,GACrE,MAAsB,iBAARA,GAGdA,EAAI1F,WAAW,GAAK,GAAKuF,EAA2BC,CACtD,EACIG,EAA4B,SAAmCD,EAAKE,EAASC,GAC/E,IAAIC,EAEJ,GAAIF,EAAS,CACX,IAAIG,EAA2BH,EAAQE,kBACvCA,EAAoBJ,EAAIM,uBAAyBD,EAA2B,SAAUE,GACpF,OAAOP,EAAIM,sBAAsBC,IAAaF,EAAyBE,EACzE,EAAIF,CACN,CAMA,MAJiC,mBAAtBD,GAAoCD,IAC7CC,EAAoBJ,EAAIM,uBAGnBF,CACT,EAIII,EAAY,SAAmBC,GACjC,IAAIxG,EAAQwG,EAAKxG,MACbO,EAAaiG,EAAKjG,WAClBC,EAAcgG,EAAKhG,YAMvB,OALAF,EAAeN,EAAOO,EAAYC,GAClCmF,GAAyC,WACvC,OJjBe,SAAsB3F,EAAOO,EAAYC,GAC1DF,EAAeN,EAAOO,EAAYC,GAClC,IAAIC,EAAYT,EAAM7H,IAAM,IAAMoI,EAAWG,KAE7C,QAAwCtJ,IAApC4I,EAAMyG,SAASlG,EAAWG,MAAqB,CACjD,IAAI3K,EAAUwK,EAEd,GACEP,EAAM0G,OAAOnG,IAAexK,EAAU,IAAM0K,EAAY,GAAI1K,EAASiK,EAAM2G,OAAO,GAElF5Q,EAAUA,EAAQ0O,gBACCrN,IAAZrB,EACX,CACF,CIIW6Q,CAAa5G,EAAOO,EAAYC,EACzC,IAEO,IACT,EAEIqG,EAAe,SAASA,EAAad,EAAKE,GAO5C,IAEIa,EACAC,EAHAb,EAASH,EAAIiB,iBAAmBjB,EAChCkB,EAAUf,GAAUH,EAAImB,gBAAkBnB,OAI9B3O,IAAZ6O,IACFa,EAAiBb,EAAQkB,MACzBJ,EAAkBd,EAAQhQ,QAG5B,IAAIkQ,EAAoBH,EAA0BD,EAAKE,EAASC,GAC5DkB,EAA2BjB,GAAqBL,EAA4BmB,GAC5EI,GAAeD,EAAyB,MAC5C,OAAO,WACL,IAAIE,EAAO3H,UACPiB,EAASsF,QAAmC9O,IAAzB2O,EAAIlB,iBAAiCkB,EAAIlB,iBAAiB0C,MAAM,GAAK,GAM5F,QAJuBnQ,IAAnB0P,GACFlG,EAAOxM,KAAK,SAAW0S,EAAiB,KAG3B,MAAXQ,EAAK,SAA8BlQ,IAAhBkQ,EAAK,GAAGE,IAC7B5G,EAAOxM,KAAKyL,MAAMe,EAAQ0G,OACrB,CACD,EAIJ1G,EAAOxM,KAAKkT,EAAK,GAAG,IAIpB,IAHA,IAAIG,EAAMH,EAAK3S,OACXhC,EAAI,EAEDA,EAAI8U,EAAK9U,IAKdiO,EAAOxM,KAAKkT,EAAK3U,GAAI2U,EAAK,GAAG3U,GAEjC,CAGA,IAAI+U,GAAS,IAAAC,mBAAiB,SAAUC,EAAO5H,EAAO6H,GACpD,IJpGuBlH,EAAYmH,EAAkBC,EACrDC,EImGIC,EAAWZ,GAAeO,EAAMM,IAAMjB,EACtCxG,EAAY,GACZ0H,EAAsB,GACtBxD,EAAciD,EAElB,GAAmB,MAAfA,EAAM3I,MAAe,CAGvB,IAAK,IAAI9G,KAFTwM,EAAc,CAAC,EAECiD,EACdjD,EAAYxM,GAAOyP,EAAMzP,GAG3BwM,EAAY1F,MAAQ,aAAiB,EAAAmJ,aACvC,CAE+B,iBAApBR,EAAMnH,WJnHME,EIoHWX,EAAMW,WJpHLmH,EIoHiBK,EJpHCJ,EIoHoBH,EAAMnH,UJnH/EuH,EAAe,GACnBD,EAAWM,MAAM,KAAK3V,SAAQ,SAAU+N,QACRrJ,IAA1BuJ,EAAWF,GACbqH,EAAiB1T,KAAKuM,EAAWF,GAAa,KAE9CuH,GAAgBvH,EAAY,GAEhC,II4GMA,EJ3GCuH,GI4G2B,MAAnBJ,EAAMnH,YACfA,EAAYmH,EAAMnH,UAAY,KAGhC,IAAIF,EFsHY,SAAyB+G,EAAM3G,EAAYgE,GAC/D,GAAoB,IAAhB2C,EAAK3S,QAAmC,iBAAZ2S,EAAK,IAA+B,OAAZA,EAAK,SAAkClQ,IAAnBkQ,EAAK,GAAG1G,OAClF,OAAO0G,EAAK,GAGd,IAAIgB,GAAa,EACb1H,EAAS,GACb4D,OAASpN,EACT,IAAImR,EAAUjB,EAAK,GAEJ,MAAXiB,QAAmCnR,IAAhBmR,EAAQf,KAC7Bc,GAAa,EACb1H,GAAU8D,EAAoBC,EAAahE,EAAY4H,IAMvD3H,GAAU2H,EAAQ,GAIpB,IAAK,IAAI5V,EAAI,EAAGA,EAAI2U,EAAK3S,OAAQhC,IAC/BiO,GAAU8D,EAAoBC,EAAahE,EAAY2G,EAAK3U,IAExD2V,IAKF1H,GAAU2H,EAAQ5V,IActB8S,EAAa+C,UAAY,EAIzB,IAHA,IACI9R,EADAoQ,EAAiB,GAG0B,QAAvCpQ,EAAQ+O,EAAagD,KAAK7H,KAChCkG,GAAkB,IAClBpQ,EAAM,GAGR,IAAIgK,EGlSN,SAAiBgI,GAYf,IANA,IAEIC,EAFApX,EAAI,EAGJoB,EAAI,EACJ8U,EAAMiB,EAAI/T,OAEP8S,GAAO,IAAK9U,EAAG8U,GAAO,EAE3BkB,EAEe,YAAV,OAHLA,EAAwB,IAApBD,EAAIrI,WAAW1N,IAAmC,IAAtB+V,EAAIrI,aAAa1N,KAAc,GAA2B,IAAtB+V,EAAIrI,aAAa1N,KAAc,IAA4B,IAAtB+V,EAAIrI,aAAa1N,KAAc,MAG9F,OAAZgW,IAAM,KAAgB,IAIpDpX,EAEe,YAAV,OALLoX,GAEAA,IAAM,MAGoC,OAAZA,IAAM,KAAgB,IAErC,YAAV,MAAJpX,IAAyC,OAAZA,IAAM,KAAgB,IAItD,OAAQkW,GACN,KAAK,EACHlW,IAA8B,IAAxBmX,EAAIrI,WAAW1N,EAAI,KAAc,GAEzC,KAAK,EACHpB,IAA8B,IAAxBmX,EAAIrI,WAAW1N,EAAI,KAAc,EAEzC,KAAK,EAEHpB,EAEe,YAAV,OAHLA,GAAyB,IAApBmX,EAAIrI,WAAW1N,MAGsB,OAAZpB,IAAM,KAAgB,IASxD,SAHAA,EAEe,YAAV,OAHLA,GAAKA,IAAM,MAG+B,OAAZA,IAAM,KAAgB,KACvCA,IAAM,MAAQ,GAAGqX,SAAS,GACzC,CHiPa,CAAWhI,GAAUkG,EAehC,MAAO,CACLpG,KAAMA,EACNE,OAAQA,EACR6D,KAAMD,EAEV,CE/LuBqE,CAAgBjI,EAAOrM,OAAO4T,GAAsBnI,EAAMW,WAAYgE,GACvFlE,GAAaT,EAAM7H,IAAM,IAAMoI,EAAWG,UAElBtJ,IAApB2P,IACFtG,GAAa,IAAMsG,GAGrB,IAAI+B,EAAyBzB,QAAqCjQ,IAAtB+O,EAAkCL,EAA4BmC,GAAYb,EAClH2B,EAAW,CAAC,EAEhB,IAAK,IAAI7D,KAAQ0C,EACXP,GAAwB,OAATnC,GAGnB4D,EAAuB5D,KACrB6D,EAAS7D,GAAQ0C,EAAM1C,IAM3B,OAFA6D,EAAStI,UAAYA,EACrBsI,EAASlB,IAAMA,EACK,gBAAoB,WAAgB,KAAmB,gBAAoBtB,EAAW,CACxGvG,MAAOA,EACPO,WAAYA,EACZC,YAAiC,iBAAbyH,IACL,gBAAoBA,EAAUc,GACjD,IAwBA,OAvBArB,EAAOsB,iBAAiC5R,IAAnB0P,EAA+BA,EAAiB,WAAgC,iBAAZG,EAAuBA,EAAUA,EAAQ+B,aAAe/B,EAAQvG,MAAQ,aAAe,IAChLgH,EAAOuB,aAAelD,EAAIkD,aAC1BvB,EAAOV,eAAiBU,EACxBA,EAAOR,eAAiBD,EACxBS,EAAO7C,iBAAmBjE,EAC1B8G,EAAOrB,sBAAwBF,EAC/BjW,OAAOC,eAAeuX,EAAQ,WAAY,CACxC/W,MAAO,WAML,MAAO,IAAMoW,CACf,IAGFW,EAAOwB,cAAgB,SAAUC,EAASC,GACxC,OAAOvC,EAAasC,EAAS,EAAS,CAAC,EAAGlD,EAASmD,EAAa,CAC9DjD,kBAAmBH,EAA0B0B,EAAQ0B,GAAa,MAChEvJ,WAAM,EAAQe,EACpB,EAEO8G,CACT,CACF,EE3KO,MAAM2B,GAAwBC,EAAAA,EAAAA,eACnC,CAAC,GAGUC,EAA2BA,KAAMC,EAAAA,EAAAA,YAAWH,GAiC5CI,EAAgCA,EAC3CC,eAIA,MAAM,iBACJC,EAAgB,SAChBC,EAAQ,oBACRC,EAAmB,sBACnBC,EAAqB,YACrBC,GAzCsBC,MACxB,MAAOL,EAAkBE,IAAuB5U,EAAAA,EAAAA,UAC9C,KAEK2U,EAAUG,IAAe9U,EAAAA,EAAAA,WAAkB,GAkBlD,MAAO,CACL0U,mBACAC,WACAC,sBACAC,sBApB6BG,IAC7B,MAAMC,IAAaP,EAAiBQ,MACjCC,GAAoBA,EAAgBC,KAAOJ,EAAUI,KAExD,GAAIT,EAAU,CACZ,MAAMU,EAAsBJ,EACxBP,EAAiBY,QACdH,GAAoBA,EAAgBC,KAAOJ,EAAUI,KAExDV,EAAiBpV,OAAO,CAAC0V,IAC7BJ,EAAoBS,EACtB,MACET,EAAoBK,EAAW,GAAK,CAACD,GACvC,EAQAF,cACD,EAcGC,GAEJ,OACEQ,EAAAA,EAAAA,KAACnB,EAAsBoB,SAAQ,CAC7B9Z,MAAO,CACLgZ,mBACAC,WACAC,sBACAC,wBACAC,gBAEDL,EAC8B,ECpD/BgB,EAAaC,EAAA,OAAA1U,OAAA,YAAA0U,CAAA,IAENC,EAAiBA,EAC5BlB,WACAmB,OAAO,QACPC,sBAAqB,KAClBC,MAEH,MAAM,iBACJpB,EAAgB,oBAChBE,EAAmB,sBACnBC,EAAqB,YACrBC,GACER,IAqBJ,OAnBA3T,EAAAA,EAAAA,YAAU,KACRmU,EAAYe,EAAmB,GAC9B,KAEHE,EAAAA,EAAAA,kBAAgB,KACd,MAAMC,EAAsC,GAC5CC,EAAAA,SAASC,IAAIzB,GAAW0B,IACtB,IAAIC,EAAAA,EAAAA,gBAAeD,IAAUA,EAAMxD,MAAMsC,SAAU,CACjD,MAAM,cAAEoB,EAAa,YAAEC,KAAgBR,GAASK,EAAMxD,MACtDqD,EAAkB7W,KAAK,CACrBiW,GAAIU,EAAKV,GACTiB,cAAeA,EAAc5L,KAAK,KAAMqL,GACxCQ,YAAaA,EAAY7L,KAAK,KAAMqL,IAExC,KAEFlB,EAAoBoB,EAAkB,GACrC,KAGDT,EAAAA,EAAAA,KAACE,EAAalL,EAAA,CAAC,cAAY,kBAAkBgM,SAAU,GAAOT,GAC3DG,EAAAA,SAASC,IAAIzB,GAAW0B,IACvB,IAAIC,EAAAA,EAAAA,gBAAeD,GAAQ,CACzB,MAAM,cAAEE,EAAa,YAAEC,KAAgBR,GAASK,EAAMxD,MAChDyC,EAAKU,EAAKV,GACVH,IAAaP,GAAkBQ,MAClCC,GAAoBA,EAAgBC,KAAOA,IAG9C,OAAOoB,EAAAA,EAAAA,cAAaL,EAAO,CACzBjT,IAAKkS,EACLH,WACAW,OACAa,QAASA,IACP5B,EAAsB,CACpBO,KACAiB,cAAeA,EAAc5L,KAAK,KAAMqL,GACxCQ,YAAaA,EAAY7L,KAAK,KAAMqL,MAG5C,KAEY,ECzDpB,MATqBJ,EAAA,OAAA1U,OAAA,YAAA0U,CAAA,8DAID,EAAGgB,eAAiBA,GAAwB,OAAM,iBACrD,EAAGA,eACF,WAAdA,EAAyB,SAAW,UAAQ,KCQhD,MAJoBC,EAAGlC,cAAa9B,MAClC4C,EAAAA,EAAAA,KAACqB,EAAoBjE,EAAQ8B,GCXxB,MAAMoC,EAAgB,CAC3BC,OAAO7M,EAAAA,EAAAA,KAAG,UACV8M,MAAK,CAAAtL,KAAE,UAAFE,OAAE,mDAKPqL,OAAM,CAAAvL,KAAE,UAAFE,OAAE,mCAIRsL,MAAK,CAAAxL,KAAE,SAAFE,OAAE,mGAWIuL,GAAe,CAAAzL,KAAA,UAAAE,OAAA,kEAmEfwL,GAA2BC,IAAuBnN,EAAAA,EAAAA,KAAG,sDAGtDmN,EAAW,OAAS,EAAC,eACjBA,EAAW,UAAY,EAAC,aAC1BA,EAAW,UAAY,SAAQ,kCC3FhCC,GAAmBA,EAC9BpC,WACAR,WACAmB,OAAO,WACJE,MAIH,MACMnK,EDsF2B2L,EAACtN,EAAcoN,KAAuB,CACvEN,OAAO7M,EAAAA,EAAAA,KACHkN,GAAwBC,GAAS,WAErCL,OAAO9M,EAAAA,EAAAA,KACHkN,GAAwBC,GAAS,UAC1BpN,EAAM5G,OAAOI,QAAO,cAElBwG,EAAM5G,OAAOI,QAAO,0BAIjCwT,QAAQ/M,EAAAA,EAAAA,KACJkN,GAAwBC,GAAS,YACxBA,EAAW,oBAAsB,EAAC,WAE/CH,OAAOhN,EAAAA,EAAAA,KACHkN,GAAwBC,GAAS,YACxBA,EAAW,sBAAwB,EAAC,aCxGlCE,EADDC,EAAAA,EAAAA,YAC4BtC,GAC1C,OACEM,EAAAA,EAAAA,KAACoB,EAAWpM,EAAA,CAACN,IAAK0B,EAAOiK,IAAWE,GACjCrB,EACW,ECElB,OAlBoBiB,EAAA,OAAA1U,OAAA,aAAA0U,CAAA,0GASH/C,GAAWA,EAAM6E,YAAc,cAAgB,WAAU,kBAEvD7E,GAAWA,EAAM8E,QAAU,OAAS,MAAK,KAExD,EAAGzN,WAAYA,EAAMN,aAAaG,IAAE,kBACnB8I,GAAWA,EAAM8E,QAAU,OAAS,MAAK,MCdvD,MCOMC,GAAY,CACvB,OACA,WACA,OACA,QACA,QACA,YACA,eACA,WACA,OACA,QACA,OACA,gBACA,QACA,eACA,QACA,OACA,QACA,eACA,cACA,UACA,YACA,UACA,YACA,UACA,SACA,QACA,OACA,cACA,YACA,cACA,eACA,WACA,SACA,WACA,aACA,SACA,SACA,UACA,MACA,SACA,OACA,QACA,QACA,SCAIC,GAAiB,CCnDHC,EAAGC,OAAO,OAAQjC,OAAO,MAAOjD,MAClD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRC,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,SACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,qpCACFgd,KAAMA,KHXYI,EAAGJ,OAAO,OAAQjC,OAAO,MAAOjD,MACtD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRC,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,aACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,u3EACFgd,KAAMA,KIXQK,EAAGL,OAAO,OAAQjC,OAAO,MAAOjD,MAClD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRC,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,SACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,yvBACFgd,KAAMA,KCXSM,EAAGN,OAAO,OAAQjC,OAAO,MAAOjD,MACnD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRC,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,UACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,2wDACFgd,KAAMA,KAERtC,EAAAA,EAAAA,KAAA,QACE1a,EAAE,ghCACFgd,KAAMA,KCfSO,EAAGP,OAAO,OAAQjC,OAAO,MAAOjD,MACnD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRC,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,UACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,+jGACFgd,KAAMA,KAERtC,EAAAA,EAAAA,KAAA,QACE1a,EAAE,u2YACFgd,KAAMA,KCfaQ,EAAGR,OAAO,OAAQjC,OAAO,MAAOjD,MACvD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRC,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,cACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,siDACFgd,KAAMA,KCXgBS,EAC1BT,OAAO,OACPjC,OAAO,MACJjD,MAEH4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRC,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,iBACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,stDACFgd,KAAMA,EACNU,OAAQV,EACRnJ,YAAY,SCjBM8J,EAAGX,OAAO,OAAQjC,OAAO,MAAOjD,MACtD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRC,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,aACPA,EAAAA,EAAAA,KAAA,QACEkD,SAAS,UACTC,SAAS,UACT7d,EAAE,gaACFgd,KAAMA,KAERtC,EAAAA,EAAAA,KAAA,QACEkD,SAAS,UACTC,SAAS,UACT7d,EAAE,+1GACFgd,KAAMA,KCnBQc,EAAGd,OAAO,OAAQjC,OAAO,MAAOjD,MAClD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRD,KAAK,OACLE,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,SACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,SACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,WAEjBtD,EAAAA,EAAAA,KAAA,QACE1a,EAAE,SACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,WCtBAC,EAAGjB,OAAO,OAAQjC,OAAO,MAAOjD,MACnD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXiC,KAAK,OACLC,QAAQ,WACRC,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,UACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,SACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,WCfDE,EAAGlB,OAAO,OAAQjC,OAAO,MAAOjD,MAClD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRC,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,SACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,gKACFgd,KAAMA,KAERtC,EAAAA,EAAAA,KAAA,QACE1a,EAAE,6KACFgd,KAAMA,KAERtC,EAAAA,EAAAA,KAAA,QACE1a,EAAE,6KACFgd,KAAMA,KCnBgBmB,EAC1BnB,OAAO,OACPjC,OAAO,MACJjD,MAEH4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEwN,MAAM,6BACNzX,MAAUsV,EAAO,EAAT,KACRnV,OAAS,GAAEmV,MACXkC,QAAQ,WACRD,KAAK,QACDlF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,kBACPA,EAAAA,EAAAA,KAAA,UAAQ0D,GAAG,UAAUC,GAAG,IAAIne,EAAE,MAAM8c,KAAMA,KAC1CtC,EAAAA,EAAAA,KAAA,UAAQ0D,GAAG,UAAUC,GAAG,IAAIne,EAAE,MAAM8c,KAAMA,KAC1CtC,EAAAA,EAAAA,KAAA,UAAQ0D,GAAG,UAAUC,GAAG,KAAKne,EAAE,MAAM8c,KAAMA,KCf1BsB,EAAGtB,OAAO,OAAQjC,OAAO,MAAOjD,MACnD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXiC,KAAK,OACLC,QAAQ,WACRC,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,UACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,0BACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,WCfMO,EACzBvB,OAAO,OACPjC,OAAO,MACJjD,MAEH4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRD,KAAK,OACLE,MAAM,8BACFpF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,iBACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,oNACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,WAEjBtD,EAAAA,EAAAA,KAAA,QACE1a,EAAE,kDACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,WCzBAQ,EAAGxB,OAAO,OAAQjC,OAAO,MAAOjD,MACnD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXiC,KAAK,OACLC,QAAQ,UACRC,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,UACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,iBACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,WAEjBtD,EAAAA,EAAAA,KAAA,QACE1a,EAAE,iBACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,WCtBDS,EAAGzB,OAAO,OAAQjC,OAAO,MAAOjD,MAClD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXiC,KAAK,OACLC,QAAQ,YACRC,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,SACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,kPACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,WAEjBtD,EAAAA,EAAAA,KAAA,QACE1a,EAAE,oQACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,WAEjBtD,EAAAA,EAAAA,KAAA,QACE1a,EAAE,oHACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,WC7BAU,EAAG1B,OAAO,OAAQjC,OAAO,MAAOjD,MACnD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXiC,KAAK,OACLC,QAAQ,WACRC,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,UACPA,EAAAA,EAAAA,KAAA,QACEkD,SAAS,UACTC,SAAS,UACT7d,EAAE,4VACFgd,KAAMA,KCdgB2B,EAC1B3B,OAAO,OACPjC,OAAO,MACJjD,MAEH4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRC,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,iBACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,mjDACFgd,KAAMA,EACNU,OAAQV,EACRnJ,YAAY,SCjBS+K,EACzB5B,OAAO,OACPjC,OAAO,MACJjD,MAEH4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXiC,KAAK,OACLC,QAAQ,YACRC,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,gBACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,gNACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,WAEjBtD,EAAAA,EAAAA,KAAA,QACE1a,EAAE,ubACFgd,KAAMA,KCvBW6B,EAAG7B,OAAO,OAAQjC,OAAO,MAAOjD,MACrD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXiC,KAAK,OACLC,QAAQ,YACRC,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,YACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,2MACF0d,OAAQV,EACRnJ,YAAY,SAEd6G,EAAAA,EAAAA,KAAA,QACE1a,EAAE,gcACFgd,KAAMA,KCjBa8B,EAAG9B,OAAO,OAAQjC,OAAO,MAAOjD,MACvD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXiC,KAAK,OACLC,QAAQ,YACRC,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,cACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,mFACF0d,OAAQV,EACRnJ,YAAY,SAEd6G,EAAAA,EAAAA,KAAA,QACE1a,EAAE,8bACFgd,KAAMA,KCjBW+B,EAAG/B,OAAO,OAAQjC,OAAO,MAAOjD,MACrD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXiC,KAAK,OACLC,QAAQ,YACRC,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,YACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,oNACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,WAEjBtD,EAAAA,EAAAA,KAAA,QACE1a,EAAE,4RACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,WCtBIgB,EAAGhC,OAAO,OAAQjC,OAAO,MAAOjD,MACvD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRD,KAAK,OACLE,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,cACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,oLACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,WAEjBtD,EAAAA,EAAAA,KAAA,QACE1a,EAAE,sMACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,WAEjBtD,EAAAA,EAAAA,KAAA,QACE1a,EAAE,mNACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,WAEjBtD,EAAAA,EAAAA,KAAA,QACE1a,EAAE,0DACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,WAEjBtD,EAAAA,EAAAA,KAAA,QACE1a,EAAE,mBACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,WAEjBtD,EAAAA,EAAAA,KAAA,QACE1a,EAAE,0BACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,WClDCiB,EAAGjC,OAAO,OAAQjC,OAAO,MAAOjD,MACpD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXiC,KAAK,OACLC,QAAQ,YACRC,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,YACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,4bACFgd,KAAMA,KAERtC,EAAAA,EAAAA,KAAA,QACE1a,EAAE,4fACFgd,KAAMA,KChBSkC,EAAGlC,OAAO,OAAQjC,OAAO,MAAOjD,MACnD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXiC,KAAK,OACLC,QAAQ,YACRC,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,WACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,oYACFgd,KAAMA,KAERtC,EAAAA,EAAAA,KAAA,QACE1a,EAAE,quCACFgd,KAAMA,KChBSmC,EAAGnC,OAAO,OAAQjC,OAAO,MAAOjD,MACnD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXiC,KAAK,OACLC,QAAQ,YACRC,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,UACPA,EAAAA,EAAAA,KAAA,QACEkD,SAAS,UACTC,SAAS,UACT7d,EAAE,8pBACFgd,KAAMA,KCdQoC,EAAGpC,OAAO,OAAQjC,OAAO,MAAOjD,MAClD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXiC,KAAK,OACLC,QAAQ,YACRC,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,SACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,kuBACFgd,KAAMA,KCZcqC,EACxBrC,OAAO,OACPjC,OAAO,MACJjD,MAEH4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRC,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,gBACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,gBACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,QACfhB,KAAK,UCnBasC,EAAGtC,OAAO,OAAQjC,OAAO,MAAOjD,MACtD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRC,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,cACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,sBACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,QACfhB,KAAK,UCfeuC,EACxBvC,OAAO,OACPjC,OAAO,MACJjD,MAEH4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRC,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,gBACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,6BACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,QACfhB,KAAK,UCnBgBwC,EACzBxC,OAAO,OACPjC,OAAO,MACJjD,MAEH4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRC,MAAM,6BACNC,WAAW,gCACPrF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,iBACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,6BACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,QACfhB,KAAK,UCnBYyC,EAAGzC,OAAO,OAAQjC,OAAO,MAAOjD,MACrD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRD,KAAK,OACLE,MAAM,8BACFpF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,aACPA,EAAAA,EAAAA,KAAA,QAAMgF,EAAE,MAAM/d,EAAE,UAAU8D,MAAM,OAAOG,OAAO,OAAO+Z,GAAG,MAAM3C,KAAMA,KACpEtC,EAAAA,EAAAA,KAAA,QACEgF,EAAE,MACF/d,EAAE,UACF8D,MAAM,OACNG,OAAO,OACP+Z,GAAG,MACHjC,OAAQV,EACRnJ,YAAY,SAEd6G,EAAAA,EAAAA,KAAA,UAAQ0D,GAAG,KAAKC,GAAG,OAAOne,EAAE,IAAI8c,KAAMA,KCnBpB4C,EAAG5C,OAAO,OAAQjC,OAAO,MAAOjD,MACpD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEwN,MAAM,6BACNzX,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRD,KAAK,QACDlF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,WACPA,EAAAA,EAAAA,KAAA,QAAMgF,EAAE,MAAM/d,EAAE,UAAU8D,MAAM,OAAOG,OAAO,OAAO+Z,GAAG,MAAM3C,KAAK,UACnEtC,EAAAA,EAAAA,KAAA,QACEgF,EAAE,MACF/d,EAAE,UACF8D,MAAM,OACNG,OAAO,OACP+Z,GAAG,MACHjC,OAAQV,EACRnJ,YAAY,SCjBKgM,EAAG7C,OAAO,OAAQjC,OAAO,MAAOjD,MACrD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,UACRD,KAAK,OACLE,MAAM,8BACFpF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,aACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,mCACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,WAEjBtD,EAAAA,EAAAA,KAAA,QACE1a,EAAE,qDACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,WCrBI8B,EAAG9C,OAAO,OAAQjC,OAAO,MAAOjD,MACvD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEjK,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,UACRD,KAAK,OACLE,MAAM,8BACFpF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,eACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,kCACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,WAEjBtD,EAAAA,EAAAA,KAAA,QACE1a,EAAE,mDACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,QACdC,eAAe,WCrBC+B,EAAG/C,OAAO,OAAQjC,OAAO,MAAOjD,MACpD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEwN,MAAM,6BACNzX,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRD,KAAK,QACDlF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,WACPA,EAAAA,EAAAA,KAAA,QACEkD,SAAS,UACTC,SAAS,UACT7d,EAAE,qhCACFgd,KAAMA,KCbUgD,EAAGhD,OAAO,UAAWjC,OAAO,MAAOjD,MACvD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEwN,MAAM,6BACNzX,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRD,KAAK,QACDlF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,WACPA,EAAAA,EAAAA,KAAA,QACEkD,SAAS,UACTC,SAAS,UACT7d,EAAE,yXACFgd,KAAMA,KCbWiD,EAAGjD,OAAO,OAAQjC,OAAO,MAAOjD,MACrD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEwN,MAAM,6BACNzX,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRD,KAAK,QACDlF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,YACPA,EAAAA,EAAAA,KAAA,KAAGwF,SAAS,0BACVxF,EAAAA,EAAAA,KAAA,QACE1a,EAAE,qnBACFgd,KAAMA,KAERtC,EAAAA,EAAAA,KAAA,QACE1a,EAAE,s4BACFgd,KAAMA,KAERtC,EAAAA,EAAAA,KAAA,QACE1a,EAAE,4YACFgd,KAAMA,KAERtC,EAAAA,EAAAA,KAAA,QACE1a,EAAE,6oBACFgd,KAAMA,MAGVtC,EAAAA,EAAAA,KAAA,aACEA,EAAAA,EAAAA,KAAA,YAAUH,GAAG,oBACXG,EAAAA,EAAAA,KAAA,QAAMjV,MAAOsV,EAAMnV,OAAQmV,EAAMiC,KAAK,aC7B3BmD,EAAGnD,OAAO,OAAQjC,OAAO,MAAOjD,MACjD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEwN,MAAM,6BACNzX,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRD,KAAK,QACDlF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,QACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,oOACFgd,KAAMA,KAERtC,EAAAA,EAAAA,KAAA,QACE1a,EAAE,oOACFgd,KAAMA,KAERtC,EAAAA,EAAAA,KAAA,QACE1a,EAAE,0NACFgd,KAAMA,KAERtC,EAAAA,EAAAA,KAAA,QACE1a,EAAE,2eACFgd,KAAMA,KCvBUoD,EAAGpD,OAAO,OAAQjC,OAAO,MAAOjD,MACpD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEwN,MAAM,6BACNzX,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRD,KAAK,QACDlF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,WACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,olEACFgd,KAAMA,KCXQqD,EAAGrD,OAAO,OAAQjC,OAAO,MAAOjD,MAClD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEwN,MAAM,6BACNzX,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRD,KAAK,QACDlF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,SACPA,EAAAA,EAAAA,KAAA,KAAGwF,SAAS,0BACVxF,EAAAA,EAAAA,KAAA,QACE1a,EAAE,g2BACFgd,KAAMA,MAGVtC,EAAAA,EAAAA,KAAA,aACEA,EAAAA,EAAAA,KAAA,YAAUH,GAAG,oBACXG,EAAAA,EAAAA,KAAA,QAAMjV,MAAOsV,EAAMnV,OAAQmV,EAAMiC,KAAK,aCjBzBsD,EAAGtD,OAAO,OAAQjC,OAAO,MAAOjD,MACnD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEwN,MAAM,6BACNzX,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRD,KAAK,QACDlF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,UACPA,EAAAA,EAAAA,KAAA,QACE1a,EAAE,k8GACFgd,KAAMA,EACNU,OAAQV,EACRnJ,YAAY,SCbG0M,EAAGvD,OAAO,OAAQjC,OAAO,MAAOjD,MACnD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEwN,MAAM,6BACNzX,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRD,KAAK,QACDlF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,UACPA,EAAAA,EAAAA,KAAA,KAAGwF,SAAS,2BACVxF,EAAAA,EAAAA,KAAA,QACE1a,EAAE,6pBACFgd,KAAMA,EACNU,OAAQV,EACRnJ,YAAY,SAEd6G,EAAAA,EAAAA,KAAA,QACE1a,EAAE,0QACFgd,KAAMA,EACNU,OAAQV,EACRnJ,YAAY,SAEd6G,EAAAA,EAAAA,KAAA,QACE1a,EAAE,wyBACFgd,KAAMA,EACNU,OAAQV,EACRnJ,YAAY,UAGhB6G,EAAAA,EAAAA,KAAA,aACEA,EAAAA,EAAAA,KAAA,YAAUH,GAAG,qBACXG,EAAAA,EAAAA,KAAA,QAAMjV,MAAM,KAAKG,OAAO,KAAKoX,KAAK,aC/BrBwD,EAAGxD,OAAO,OAAQjC,OAAO,MAAOjD,MACnD4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACEwN,MAAM,6BACNzX,MAAQ,GAAEsV,MACVnV,OAAS,GAAEmV,MACXkC,QAAQ,YACRD,KAAK,QACDlF,IACJ4C,EAAAA,EAAAA,KAAA,aAAO,UACPA,EAAAA,EAAAA,KAAA,UACE0D,GAAG,UACHC,GAAG,UACHne,EAAE,UACFwd,OAAQV,EACRnJ,YAAY,SAEd6G,EAAAA,EAAAA,KAAA,QACE1a,EAAE,mCACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,WAEhBrD,EAAAA,EAAAA,KAAA,QACE1a,EAAE,mCACF0d,OAAQV,EACRnJ,YAAY,MACZkK,cAAc,Y3CwEd0C,GAAsB5D,GAAUzY,QAAO,CAACsc,EAAK9P,EAAM+P,KACvDD,EAAI9P,GAAQkM,GAAe6D,GACpBD,IACN,CAAC,GAWJ,OATyBE,EAAGhQ,OAAMtB,WAAUwI,MAC1C,MAAM+I,EAAYJ,GAAS7P,GAE3B,OAAiB,MAAbiQ,EACK,MAGFnG,EAAAA,EAAAA,KAACmG,EAASnR,EAAA,CAACsN,KAAM1N,GAAWwI,GAAS,E4C1G9C,OAHagJ,EAAGlQ,OAAMtB,QAAQ,OAAQyL,UAASjD,MACtC4C,EAAAA,EAAAA,KAACqG,GAAQrR,EAAA,CAACkB,KAAMA,EAAMtB,MAAOA,EAAOyL,KAAMA,GAAUjD,ICG7D,MAAMkJ,GAAuBC,GAAe7H,cAAc,SAAQ,CAAAjT,OAAA,cAErD+a,GAAgDA,EAC3DC,QACApG,OAAO,QACPR,KACAH,WACAgH,eACAzQ,YACAiL,cAEA,MACM9K,ElDYyBuQ,EAAClS,EAAcoN,KAAuB,CACrEN,OAAO7M,EAAAA,EAAAA,KACHiN,GAAe,WAEnBH,OAAO9M,EAAAA,EAAAA,KACHiN,GAAe,UACRlN,EAAM5G,OAAOI,QAAO,0GASfwG,EAAM5G,OAAOc,iBAAgB,gCAK7C8S,QAAQ/M,EAAAA,EAAAA,KACJiN,GAAe,UACRlN,EAAM5G,OAAOa,iBAAgB,2GAMlB+F,EAAM5G,OAAOW,iBAAgB,gEAMnCiG,EAAM5G,OAAOa,iBAAgB,gCAK7CgT,OAAOhN,EAAAA,EAAAA,KACHiN,GAAe,sGAMHE,EAAWpN,EAAM5G,OAAOO,YAAc,OAAM,wGAO5CqG,EAAM5G,OAAOmB,WAAU,kCkDjExB2X,EADD3E,EAAAA,EAAAA,YAC0BtC,GACxC,OACEM,EAAAA,EAAAA,KAACsG,GAAoB,CACnBM,KAAK,SACL,cAAY,kBACZlS,IAAK0B,EAAOiK,GACZpK,UAAWA,EACX4J,GAAK,GAAEA,IACP,gBAAeH,EACf,gBAAegH,EACfxF,QAASA,KACgB,mBAAZA,GACTA,GACF,IAEFlB,EAAAA,EAAAA,KAAC6G,EAAAA,SAAQ,KACNJ,EACA/G,GAAWM,EAAAA,EAAAA,KAACoG,GAAI,CAAClQ,KAAK,iBAAmB8J,EAAAA,EAAAA,KAACoG,GAAI,CAAClQ,KAAK,eAElC,ECnB3B,OAjBciK,EAAA,OAAA1U,OAAA,aAAA0U,CAAA,kGASE,EAAG1L,QAAOqS,eACrBA,GAAa,iBAAgBrS,EAAM5G,OAAOoB,gBAAc,2CAIjD,EAAGiS,aAAeA,EAAU,UAAY,WAAU,KCZvD,MAAM6F,GAAYA,EACvBN,QACA/G,WACAgH,eACA7G,KACAQ,OAAO,QACPU,cACAD,gBACAI,aACGX,MAEHP,EAAAA,EAAAA,KAACgH,GAAQhS,EAAA,CAACiS,KAAK,SAASjG,SAAU,EAAGtM,IAAK4M,EAAcjB,IAAWE,GAChEQ,EAAY,CAAElB,KAAIH,WAAU+G,QAAOpG,OAAMqG,eAAcxF,YACvDJ,EAAc,CACbjB,GAAK,GAAE6G,IACPhH,WACAW,OACK,kBAAsB,GAAER,OClB7BqH,GAAM/G,EAAA,OAAA1U,OAAA,aAAA0U,CAAA,8CAKD,EAAGE,UAAWA,GAAI,cACjB,EAAGA,UAAWA,GAAI,kBAEd,EAAG8G,WAAa,OAAMA,MAAQ,sBAG9C,UCIA,OAfehH,EAAA,OAAA1U,OAAA,aAAA0U,CAAA,CAAAjK,KAAA,UAAAE,OAAA,yJCDR,MCcDgR,GAAsB,CAC1B5F,MDHgB,CAAAtL,KAAA,QAAAE,OAAA,kDCIhBqL,ODViB,CAAAvL,KAAA,SAAAE,OAAA,mDCWjBsL,MDjBgB,CAAAxL,KAAA,SAAAE,OAAA,gDCoBZiR,GAAwB,CAC5BpW,KAAI,EACJQ,OAAM,EACNK,WAAU,EACVnB,MAAK,EACLsB,UAAS,EACTM,OAAM,EACNgB,UAAS,EACTT,KAAIA,GAGAwU,GAAQC,IAAAA,YAA6C,UACzD,MAAE3S,EAAQ,SAAQ,KAAEyL,EAAO,SAAQ,SAAEnB,KAAa9B,GAClDC,GAEA,OACE2C,EAAAA,EAAAA,KAACwH,GAASxS,EAAA,CAACqI,IAAKA,EAAK3I,IAAG,CAAG2S,GAAUzS,GAAQwS,GAAS/G,GAAK,cAAOjD,GAC/D8B,GAAsB,KAG7B,IAEA,UC1BA,OAfaiB,EAAA,OAAA1U,OAAA,YAAA0U,CAAA,6BAQI,EAAGsH,gBAAkBA,GAA0B,UAAS,+BAIrD,EAAGtG,eAAiBA,GAAwB,OAAM,KCb/D,MAAMuG,GAAUvH,EAAA,UAAA1U,OAAA,YAAA0U,CAAA,CAAAjK,KAAA,SAAAE,OAAA,uJCEVuR,GAAaA,EAAGC,OAAM3R,YAAW4R,aAE1C7H,EAAAA,EAAAA,KAAA,QAAM/J,UAAWA,EAAW,cAAa4R,GACtCD,GAKME,GAAkBA,EAAGF,WAChC,MAAMnT,GAAQuN,EAAAA,EAAAA,YAEd,OACEhC,EAAAA,EAAAA,KAAC2H,GAAU,CACTE,OAAO,oBACPD,KAAMA,EACNlT,KAAGqT,EAAAA,EAAAA,KAAE,CACHnT,MAAOH,EAAM5G,OAAOG,OACrB,QACD,EAIOga,GAAiBA,EAAGJ,WAC/B,MAAMnT,GAAQuN,EAAAA,EAAAA,YAEd,OACEhC,EAAAA,EAAAA,KAAC2H,GAAU,CACTE,OAAO,mBACPD,KAAMA,EACNlT,KAAGqT,EAAAA,EAAAA,KAAE,CACHnT,MAAOH,EAAM5G,OAAOmB,YACrB,QACD,EAIOiZ,GAAsBA,EAAGL,WACpC,MAAMnT,GAAQuN,EAAAA,EAAAA,YAEd,OACEhC,EAAAA,EAAAA,KAAC2H,GAAU,CACTE,OAAO,wBACPD,KAAMA,EACNlT,KAAGqT,EAAAA,EAAAA,KAAE,CACHnT,MAAOH,EAAM5G,OAAO0B,oBACrB,QACD,EAIO2Y,GAAqBA,EAAGN,WACnC,MAAMnT,GAAQuN,EAAAA,EAAAA,YAEd,OACEhC,EAAAA,EAAAA,KAAC2H,GAAU,CACTE,OAAO,uBACPD,KAAMA,EACNlT,KAAGqT,EAAAA,EAAAA,KAAE,CACHnT,MAAOH,EAAM5G,OAAOiB,QACrB,QACD,EC7DC,MAAMqZ,GAAW,CAAAjS,KAAA,SAAAE,OAAA,wDASXgS,GAAgB,CAAAlS,KAAA,SAAAE,OAAA,wCAKhBiS,GAAe,CAAAnS,KAAA,UAAAE,OAAA,uCCUtBgR,GAAsB,CAC1B5F,MDcgB,CAAAtL,KAAA,SAAAE,OAAA,qFCbhBqL,ODGiB,CAAAvL,KAAA,UAAAE,OAAA,kFCFjBsL,MDRgB,CAAAxL,KAAA,SAAAE,OAAA,mFCWZkS,GAA+B,CACnCC,QDkBsB9T,IAAiBC,EAAAA,EAAAA,KAAG,SACjCD,EAAM5G,OAAOG,MAAK,oDAGvByG,EAAM5G,OAAOmB,WAAU,iBACvByF,EAAM5G,OAAOuB,SAAQ,0EAMnBqF,EAAM5G,OAAO0B,mBAAkB,mBAC/BkF,EAAM5G,OAAO2B,wBAAuB,yCAEZiF,EAAM5G,OAAOsB,aAAY,yBAIvCsF,EAAM5G,OAAOmB,WAAU,6BACTyF,EAAM5G,OAAOsB,aAAY,2BAIvCsF,EAAM5G,OAAOe,KAAI,iEAM3B6F,EAAM5G,OAAO4B,eAAc,mBAC3BgF,EAAM5G,OAAO6B,oBAAmB,yCAER+E,EAAM5G,OAAOsB,aAAY,YCjDvDqZ,UD8EwB/T,IAAiBC,EAAAA,EAAAA,KAAG,cAC9BD,EAAM5G,OAAOO,YAAW,6BACVqG,EAAM5G,OAAOiC,WAAU,uBAGnC2E,EAAM5G,OAAOG,MAAK,6BACJyG,EAAM5G,OAAOkC,gBAAe,yBAI1C0E,EAAM5G,OAAOS,YAAW,6BACVmG,EAAM5G,OAAOiC,WAAU,2BAIrC2E,EAAM5G,OAAOe,KAAI,6BACH6F,EAAM5G,OAAOiC,WAAU,wBAIrC2E,EAAM5G,OAAOQ,qBAAoB,6BACnBoG,EAAM5G,OAAOiC,WAAU,YClGrD2Y,SDsGuBhU,IAAiBC,EAAAA,EAAAA,KAAG,0BAGzCC,EAAaF,EAAO,eAAc,WCxGpCiU,KDmDmBjU,IAAiBC,EAAAA,EAAAA,KAAG,SAC9BD,EAAM5G,OAAOG,MAAK,kDAGvByG,EAAM5G,OAAOuF,YAAW,iBACxBqB,EAAM5G,OAAOiF,KAAI,0EAMf2B,EAAM5G,OAAOkG,4BAA2B,mBACxCU,EAAM5G,OAAOmG,0BAAyB,uCAK5BS,EAAM5G,OAAOoG,iBAAgB,2BAI7BQ,EAAM5G,OAAOe,KAAI,YCvEjC+Z,UD0GwBlU,IAAiBC,EAAAA,EAAAA,KAAG,SACnCD,EAAM5G,OAAOG,MAAK,oDAGvByG,EAAM5G,OAAOoD,KAAI,iBACjBwD,EAAM5G,OAAOwD,YAAW,4EAMtBoD,EAAM5G,OAAOsD,SAAQ,kBACrBsD,EAAM5G,OAAOuD,WAAU,uCAKbqD,EAAM5G,OAAOsD,SAAQ,2BAIrBsD,EAAM5G,OAAOe,KAAI,aC5HtBga,IAASC,EAAAA,EAAAA,aACpB,UACE,MACEC,GAAQ,EAAK,KACbzI,EAAO,QAAO,KACduH,EAAI,UACJmB,EAAS,QACTC,EAAO,QACPC,EAAU,UAAS,KACnBrC,EAAO,SAAQ,UACf3Q,EAAS,WACTiT,EAAU,QACVhI,EAAO,SACPhC,KACGiK,GAEL9L,GAEA,KAAKuK,GAASmB,GAAcC,GAAY9J,GACtC,MAAM,IAAI7V,MAAM,oDAGlB,MAAMoL,GAAQuN,EAAAA,EAAAA,aAEPoH,EAAWC,IAAgB5e,EAAAA,EAAAA,WAAS,GAErC6e,EAAwB,YAAZL,EACZM,EAAqB,SAAZN,EAETO,EAAyB,aAAZP,EACbQ,EAA0B,cAAZR,EACdS,EAAY9B,EAAuB,CAAC,EAAjB,CAAE+B,OAAQ,GAE7BC,EACJN,GAAaC,GAAUC,GANO,cAAZP,GAMkCQ,EAChDnB,GAAYW,IAAYX,GAAYW,GAASxU,QAC7C7H,EAEAid,GACJ7J,EAAAA,EAAAA,KAAC0H,GAAU1S,EAAA,CACTqI,IAAKA,EACL3I,IAAG,CAAG0S,GAAS/G,GAAOuJ,EAAa,aACnChD,KAAMA,EACNkD,SAAUZ,EACVjT,UAAWA,EACX8T,aAAcA,IAAMV,GAAa,GACjCW,aAAcA,IAAMX,GAAa,GACjCnI,QAASA,GACLiI,GACHJ,GACC/I,EAAAA,EAAAA,KAAA,QAAM7T,MAAOud,EAAUhV,IAAG,CAAG0T,GAAgB,cAC1CW,GAED,KACH7J,IAEG0I,EACFsB,GACElJ,EAAAA,EAAAA,KAACkI,GAAkB,CAACN,KAAMA,EAAMvH,KAAMA,IACpCiJ,GAAaC,GAAUE,GACzBzJ,EAAAA,EAAAA,KAAC8H,GAAe,CAACF,KAAMA,EAAMvH,KAAMA,IACjCmJ,GAAcJ,GAChBpJ,EAAAA,EAAAA,KAACiI,GAAmB,CAACL,KAAMA,EAAMvH,KAAMA,KAEvCL,EAAAA,EAAAA,KAACgI,GAAc,CAACJ,KAAMA,EAAMvH,KAAMA,IAElC,MACH2I,GACChJ,EAAAA,EAAAA,KAAA,QAAM7T,MAAOud,EAAUhV,IAAK2T,IACzBW,GAED,MAIR,OAAOF,GAAQ9I,EAAAA,EAAAA,KAACiK,GAAO,CAACvV,IAAKyT,IAAc0B,GAAiBA,CAC9D,IAGF,UC5GA,OARaK,EAAGhL,WAAUgC,aAAY9D,MAElC4C,EAAAA,EAAAA,KAACgH,GAAQhS,EAAA,GAAKoI,EAAK,CAAEM,GAAIwD,EAAU,SAAW,MAAOA,QAASA,IAC3DhC,GCkBP,OAhBmBiL,EAAGjL,WAAUkL,OAAMnI,iBAAgB7E,MACpD4C,EAAAA,EAAAA,KAACuG,GAAcvR,EAAA,CAACiN,YAAaA,EAAaC,UAAWkI,GAAUhN,GAC5DgN,GACCpK,EAAAA,EAAAA,KAAA,QACE7T,MAAO,CACLke,SAAU,WACVC,KAAM,QACNC,IAAK,UAENH,GAED,KACHlL,GCnBE,MAAMsL,GAAWrK,EAAA,UAAA1U,OAAA,aAAA0U,CAAA,+EASZ,EAAGsK,YAAcA,EAAS,mBAAqB,QAAO,gBAClD,EAAGA,YAAcA,EAAS,UAAY,mBAAkB,KCEjE,MAAMpD,GAAoB,CAC/BpW,KAAI,EACJQ,OAAM,EACNd,MAAK,EACLsB,UAAS,EACTsB,UAAS,EACTT,KAAI,EACJP,OAAMA,GACN,IAAAyJ,GAAA,CAAA9F,KAAA,SAAAE,OAAA,mDAwBF,OAtBoBsU,EAAGC,WAAUC,gBAC/B,MAAOC,EAAaC,IAAkBrgB,EAAAA,EAAAA,UAASmgB,GAAa,IAO5D,OACE5K,EAAAA,EAAAA,KAAA,MAAItL,IAAGsH,IACHtW,OAAO+D,KAAK4d,IAA4B1G,KAAK/L,IAC7CoL,EAAAA,EAAAA,KAAA,MAAIrS,IAAKiH,IACPoL,EAAAA,EAAAA,KAACwK,GAAW,CACVC,OAAQ7V,IAAUiW,EAClB3J,QAASA,IAXQtM,KACzB+V,EAAS/V,GACTkW,EAAelW,EAAM,EASEmW,CAAkBnW,GACjCF,IAAG,CAAG2S,GAAUzS,GAAM,kBAIzB,ECzCF,MAAMoW,GAAS7K,EAAA,SAAA1U,OAAA,aAAA0U,CAAA,sFAQX,EAAG1L,WAAYA,EAAM5G,OAAOmB,YAAU,wBCSjD,OAhBcic,EACZ/L,WACAgM,UACAjV,YACA8T,eACAC,mBAEAhK,EAAAA,EAAAA,KAACgL,GAAS,CACRE,QAASA,EACTjV,UAAWA,EACX8T,aAAcA,EACdC,aAAcA,GACb9K,GCbL,MAgEaiM,GAAiB,CAC5BC,UAjEiB3W,IAAiBC,EAAAA,EAAAA,KAAG,8CAEPD,EAAM5G,OAAOiG,mBAAkB,wEAI7CW,EAAM5G,OAAOS,YAAW,qFAGhBmG,EAAM5G,OAAOW,iBAAgB,2FAG7BiG,EAAM5G,OAAOW,iBAAgB,4GAIrCiG,EAAM5G,OAAOgG,iBAAgB,iEAG7BY,EAAM5G,OAAOgG,iBAAgB,mEAIlCY,EAAM5G,OAAOa,iBAAgB,YA2CxC2c,WAvCkB5W,IAAiBC,EAAAA,EAAAA,KAAG,8CAERD,EAAM5G,OAAOgD,QAAO,wEAKlC4D,EAAM5G,OAAOS,YAAW,qFAIhBmG,EAAM5G,OAAO8C,MAAK,2FAIlB8D,EAAM5G,OAAOiD,QAAO,qJAOtC2D,EAAM5G,OAAO0C,aAAY,mBACzBkE,EAAM5G,OAAO8C,MAAK,+KAQlB8D,EAAM5G,OAAO6C,eAAc,mBAC3B+D,EAAM5G,OAAOiD,QAAO,2BCxDfwa,GAAenL,EAAO8K,GAAK,CAAAxf,OAAA,YAAZ0U,CAAa,maAuCrC,EAAGvL,QAAQ,QAASH,YACpB,OAAQG,GACN,IAAK,OACH,OAAOuW,GAAeC,UAAU3W,GAClC,IAAK,QACH,OAAO0W,GAAeE,WAAW5W,GAErC,GACD,2KC0BH,OAvEiB8W,EACf3D,OACA/H,KACA8K,WACAzB,aACAsC,gBACAC,eACAC,kBACAxV,OAAO,GACPyV,cAAa,EACbtO,MACAuO,cACGrL,MAEH,MAAOsL,EAAWC,IAAgBrhB,EAAAA,EAAAA,UAASshB,QAAQN,IAC7CO,GAAYC,EAAAA,EAAAA,SACZxX,GAAQuN,EAAAA,EAAAA,YACRkK,GAAmB9f,EAAAA,EAAAA,QAAgC,OAEzDhB,EAAAA,EAAAA,YAAU,KAEJ8gB,EAAiB3gB,UAInB2gB,EAAiB3gB,QAAQ4gB,cAAgBJ,QAAQL,GACnD,GACC,CAACA,EAAiBG,KAErBzgB,EAAAA,EAAAA,YAAU,KACqB,kBAAlBogB,GACTM,EAAaC,QAAQP,GACvB,GACC,CAACA,IAEJ,MAAMY,EAAavM,GAAMmM,EAEzB,OACEhM,EAAAA,EAAAA,KAACsL,GAAYtW,EAAA,CAACkW,QAASkB,GAAgB7L,IACrCP,EAAAA,EAAAA,KAAA,QAAAhL,EAAA,CACE6K,GAAIuM,EACJxF,KAAK,WACLyF,QAASR,EACTlB,SAAUA,KACR,MAAM2B,GAAgBT,EACtBC,EAAaQ,GACb3B,IAAW2B,EAAa,EAE1BxC,SAAUZ,EACV7L,IAAMkP,IACJL,EAAiB3gB,QAAUghB,EACvBlP,IACFA,EAAI9R,QAAUghB,EAChB,EAEFrW,KAAMA,EACNsW,SAAUb,GACNC,KAEN5L,EAAAA,EAAAA,KAAA,WACG0L,GACC1L,EAAAA,EAAAA,KAACoG,GAAI,CAAClQ,KAAK,QAAQmK,KAAM,GAAIzL,MAAOH,EAAM5G,OAAOG,QAC/C6d,GACF7L,EAAAA,EAAAA,KAACoG,GAAI,CAAClQ,KAAK,QAAQmK,KAAM,GAAIzL,MAAOH,EAAM5G,OAAOG,QAC/C,MAEL4Z,GAAO5H,EAAAA,EAAAA,KAAA,YAAO4H,GAAe,KACjB,ECxEf6E,GAAmBC,GAA6B,aAAjBA,EAAQ9F,KAEvC+F,GAAgBxmB,GAAUA,aAAiB0C,KAE3C+jB,GAAqBzmB,GAAmB,MAATA,EAEnC,MAAM0mB,GAAgB1mB,GAA2B,iBAAVA,EACvC,IAAI2mB,GAAY3mB,IAAWymB,GAAkBzmB,KACxCqU,MAAMC,QAAQtU,IACf0mB,GAAa1mB,KACZwmB,GAAaxmB,GAEd4mB,GAAiBC,GAAUF,GAASE,IAAUA,EAAMvhB,OAClDghB,GAAgBO,EAAMvhB,QAClBuhB,EAAMvhB,OAAO4gB,QACbW,EAAMvhB,OAAOtF,MACjB6mB,EAIFC,GAAqB,CAACC,EAAOhX,IAASgX,EAAMC,IAFxB,CAACjX,GAASA,EAAKkX,UAAU,EAAGlX,EAAKmX,OAAO,iBAAmBnX,EAE/BoX,CAAkBpX,IAElEqX,GAAiBC,IACjB,MAAMC,EAAgBD,EAAWE,aAAeF,EAAWE,YAAY5nB,UACvE,OAAQgnB,GAASW,IAAkBA,EAAc1nB,eAAe,gBAAiB,EAGjF4nB,GAA0B,oBAAX3iB,aACe,IAAvBA,OAAO4iB,aACM,oBAAbliB,SAEX,SAASmiB,GAAYjjB,GACjB,IAAIkjB,EACJ,MAAMrT,EAAUD,MAAMC,QAAQ7P,GAC9B,GAAIA,aAAgB/B,KAChBilB,EAAO,IAAIjlB,KAAK+B,QAEf,GAAIA,aAAgBmjB,IACrBD,EAAO,IAAIC,IAAInjB,OAEd,IAAM+iB,KAAU/iB,aAAgBojB,MAAQpjB,aAAgBqjB,YACxDxT,IAAWqS,GAASliB,GAcrB,OAAOA,EAZP,GADAkjB,EAAOrT,EAAU,GAAK,CAAC,EAClBA,GAAY8S,GAAc3iB,GAI3B,IAAK,MAAM+C,KAAO/C,EACVA,EAAK7E,eAAe4H,KACpBmgB,EAAKngB,GAAOkgB,GAAYjjB,EAAK+C,UALrCmgB,EAAOljB,CAYf,CACA,OAAOkjB,CACX,CAEA,IAAII,GAAW/nB,GAAUqU,MAAMC,QAAQtU,GAASA,EAAM4Z,OAAOgM,SAAW,GAEpEoC,GAAeC,QAAgBxhB,IAARwhB,EAEvBvoB,GAAM,CAACoH,EAAKjG,EAAMqnB,KAClB,IAAKrnB,IAAS8lB,GAAS7f,GACnB,OAAOohB,EAEX,MAAMtT,EAASmT,GAAQlnB,EAAK6W,MAAM,cAAcnU,QAAO,CAACqR,EAAQpN,IAAQif,GAAkB7R,GAAUA,EAASA,EAAOpN,IAAMV,GAC1H,OAAOkhB,GAAYpT,IAAWA,IAAW9N,EACnCkhB,GAAYlhB,EAAIjG,IACZqnB,EACAphB,EAAIjG,GACR+T,CAAM,EAGhB,MAAMuT,GAAS,CACXC,KAAM,OACNC,UAAW,WACXC,OAAQ,UAENC,GAAkB,CACpBC,OAAQ,SACRhE,SAAU,WACViE,SAAU,WACVC,UAAW,YACXC,IAAK,OAYHC,GAAkB,gBAAoB,MA+BtCC,GAAiB,IAAM,aAAiBD,IAoC9C,IAAIE,GAAoB,CAACC,EAAWC,EAASC,EAAqBC,GAAS,KACvE,MAAMtU,EAAS,CACXuU,cAAeH,EAAQI,gBAE3B,IAAK,MAAM5hB,KAAOuhB,EACdxpB,OAAOC,eAAeoV,EAAQpN,EAAK,CAC/B9H,IAAK,KACD,MAAM6U,EAAO/M,EAKb,OAJIwhB,EAAQK,gBAAgB9U,KAAUgU,GAAgBI,MAClDK,EAAQK,gBAAgB9U,IAAS2U,GAAUX,GAAgBI,KAE/DM,IAAwBA,EAAoB1U,IAAQ,GAC7CwU,EAAUxU,EAAK,IAIlC,OAAOK,CAAM,EAGb0U,GAAiBtpB,GAAU2mB,GAAS3mB,KAAWT,OAAO+D,KAAKtD,GAAOgE,OAElEulB,GAAwB,CAACC,EAAeH,EAAiBI,EAAiBP,KAC1EO,EAAgBD,GAChB,MAAM,KAAEzZ,KAASgZ,GAAcS,EAC/B,OAAQF,GAAcP,IAClBxpB,OAAO+D,KAAKylB,GAAW/kB,QAAUzE,OAAO+D,KAAK+lB,GAAiBrlB,QAC9DzE,OAAO+D,KAAKylB,GAAWvP,MAAMhS,GAAQ6hB,EAAgB7hB,OAC/C0hB,GAAUX,GAAgBI,MAAM,EAG1Ce,GAAyB1pB,GAAWqU,MAAMC,QAAQtU,GAASA,EAAQ,CAACA,GAEpE2pB,GAAwB,CAAC5Z,EAAM6Z,EAAYC,IAAUA,GAASD,EAC5D7Z,IAAS6Z,GACNvV,MAAMC,QAAQvE,IACXA,EAAK+Z,MAAMC,GAAgBA,GAAeF,GAASE,IAAgBH,KACxE7Z,IACE6Z,GACD7Z,IAAS6Z,GACTF,GAAsB3Z,GAAM+Z,MAAMC,GAAgBA,IAC7CA,EAAYC,WAAWJ,IACpBA,EAAWI,WAAWD,MAEtC,SAASE,GAAahT,GAClB,MAAMiT,EAAS,SAAajT,GAC5BiT,EAAO9kB,QAAU6R,EACjB,aAAgB,KACZ,MAAMkT,GAAgBlT,EAAM0M,UACxBuG,EAAO9kB,QAAQglB,SACfF,EAAO9kB,QAAQglB,QAAQC,UAAU,CAC7BvW,KAAMoW,EAAO9kB,QAAQ0O,OAE7B,MAAO,KACHqW,GAAgBA,EAAaG,aAAa,CAC7C,GACF,CAACrT,EAAM0M,UACd,CAqEA,IAAI4G,GAAYvqB,GAA2B,iBAAVA,EAE7BwqB,GAAsB,CAACzD,EAAO0D,EAAQC,EAAYC,EAAUzC,IACxDqC,GAASxD,IACT4D,GAAYF,EAAOG,MAAMC,IAAI9D,GACtBrnB,GAAIgrB,EAAY3D,EAAOmB,IAE9B7T,MAAMC,QAAQyS,GACPA,EAAMvM,KAAKsQ,IAAeH,GAAYF,EAAOG,MAAMC,IAAIC,GAAYprB,GAAIgrB,EAAYI,OAE9FH,IAAaF,EAAOM,UAAW,GACxBL,GAsCX,IAAIM,GAAShrB,GAAU,QAAQyP,KAAKzP,GAEhCirB,GAAgBC,GAAUnD,GAAQmD,EAAM1X,QAAQ,YAAa,IAAIkE,MAAM,UAE3E,SAASyT,GAAIC,EAAQvqB,EAAMb,GACvB,IAAI8f,GAAS,EACb,MAAMuL,EAAWL,GAAMnqB,GAAQ,CAACA,GAAQoqB,GAAapqB,GAC/CmD,EAASqnB,EAASrnB,OAClB6T,EAAY7T,EAAS,EAC3B,OAAS8b,EAAQ9b,GAAQ,CACrB,MAAMwD,EAAM6jB,EAASvL,GACrB,IAAIwL,EAAWtrB,EACf,GAAI8f,IAAUjI,EAAW,CACrB,MAAM0T,EAAWH,EAAO5jB,GACxB8jB,EACI3E,GAAS4E,IAAalX,MAAMC,QAAQiX,GAC9BA,EACCtoB,OAAOooB,EAASvL,EAAQ,IAErB,CAAC,EADD,EAElB,CACAsL,EAAO5jB,GAAO8jB,EACdF,EAASA,EAAO5jB,EACpB,CACA,OAAO4jB,CACX,CA0BA,SAASI,GAAcvU,GACnB,MAAMwU,EAAU5C,MACV,KAAE9Y,EAAI,SAAE4T,EAAQ,QAAEqF,EAAUyC,EAAQzC,QAAO,iBAAE0C,GAAqBzU,EAClE0U,EAAe7E,GAAmBkC,EAAQyB,OAAOmB,MAAO7b,GACxD/P,EA1EV,SAAkBiX,GACd,MAAMwU,EAAU5C,MACV,QAAEG,EAAUyC,EAAQzC,QAAO,KAAEjZ,EAAI,aAAEmY,EAAY,SAAEvE,EAAQ,MAAEkG,GAAW5S,GAAS,CAAC,EAChF4U,EAAQ,SAAa9b,GAC3B8b,EAAMzmB,QAAU2K,EAChBka,GAAa,CACTtG,WACAyG,QAASpB,EAAQ8C,UAAUC,OAC3BjY,KAAOiV,IACCY,GAAsBkC,EAAMzmB,QAAS2jB,EAAUhZ,KAAM8Z,IACrDmC,EAAYtE,GAAY8C,GAAoBqB,EAAMzmB,QAAS4jB,EAAQyB,OAAQ1B,EAAUgD,QAAU/C,EAAQiD,aAAa,EAAO/D,IAC/H,IAGR,MAAOloB,EAAOgsB,GAAe,WAAehD,EAAQkD,UAAUnc,EAAMmY,IAEpE,OADA,aAAgB,IAAMc,EAAQmD,qBACvBnsB,CACX,CAyDkBosB,CAAS,CACnBpD,UACAjZ,OACAmY,aAAcxoB,GAAIspB,EAAQiD,YAAalc,EAAMrQ,GAAIspB,EAAQI,eAAgBrZ,EAAMkH,EAAMiR,eACrF2B,OAAO,IAELd,EAnJV,SAAsB9R,GAClB,MAAMwU,EAAU5C,MACV,QAAEG,EAAUyC,EAAQzC,QAAO,SAAErF,EAAQ,KAAE5T,EAAI,MAAE8Z,GAAU5S,GAAS,CAAC,GAChE8R,EAAWU,GAAmB,WAAeT,EAAQqD,YACtDC,EAAW,UAAa,GACxBC,EAAuB,SAAa,CACtCC,SAAS,EACTjoB,WAAW,EACXkoB,aAAa,EACbC,eAAe,EACfC,cAAc,EACdC,SAAS,EACTC,QAAQ,IAENhB,EAAQ,SAAa9b,GAoB3B,OAnBA8b,EAAMzmB,QAAU2K,EAChBka,GAAa,CACTtG,WACA7P,KAAO9T,GAAUssB,EAASlnB,SACtBukB,GAAsBkC,EAAMzmB,QAASpF,EAAM+P,KAAM8Z,IACjDN,GAAsBvpB,EAAOusB,EAAqBnnB,QAAS4jB,EAAQ8D,mBACnErD,EAAgB,IACTT,EAAQqD,cACRrsB,IAEXoqB,QAASpB,EAAQ8C,UAAUiB,QAE/B,aAAgB,KACZT,EAASlnB,SAAU,EACnBmnB,EAAqBnnB,QAAQwnB,SAAW5D,EAAQgE,cAAa,GACtD,KACHV,EAASlnB,SAAU,CAAK,IAE7B,CAAC4jB,IACGF,GAAkBC,EAAWC,EAASuD,EAAqBnnB,SAAS,EAC/E,CAgHsB6nB,CAAa,CAC3BjE,UACAjZ,SAEEmd,EAAiB,SAAalE,EAAQvD,SAAS1V,EAAM,IACpDkH,EAAMkW,MACTntB,WAkCJ,OAhCAktB,EAAe9nB,QAAU4jB,EAAQvD,SAAS1V,EAAMkH,EAAMkW,OACtD,aAAgB,KACZ,MAAMC,EAAyBpE,EAAQqE,SAAS3B,kBAAoBA,EAC9D4B,EAAgB,CAACvd,EAAM/P,KACzB,MAAMutB,EAAQ7tB,GAAIspB,EAAQwE,QAASzd,GAC/Bwd,IACAA,EAAME,GAAGC,MAAQ1tB,EACrB,EAGJ,GADAstB,EAAcvd,GAAM,GAChBqd,EAAwB,CACxB,MAAMptB,EAAQ0nB,GAAYhoB,GAAIspB,EAAQqE,SAASlE,cAAepZ,IAC9Dob,GAAInC,EAAQI,eAAgBrZ,EAAM/P,GAC9BgoB,GAAYtoB,GAAIspB,EAAQiD,YAAalc,KACrCob,GAAInC,EAAQiD,YAAalc,EAAM/P,EAEvC,CACA,MAAO,MACF2rB,EACKyB,IAA2BpE,EAAQ2E,OAAOC,OAC1CR,GACApE,EAAQ6E,WAAW9d,GACnBud,EAAcvd,GAAM,EAAM,CACnC,GACF,CAACA,EAAMiZ,EAAS2C,EAAcD,IACjC,aAAgB,KACZ1C,EAAQ8E,qBAAqB,CACzBnK,WACAoK,OAAQ/E,EAAQwE,QAChBzd,QACF,GACH,CAAC4T,EAAU5T,EAAMiZ,IACb,CACHuE,MAAO,CACHxd,OACA/P,QACA2jB,WACAa,SAAU,eAAmBqC,GAAUqG,EAAe9nB,QAAQof,SAAS,CACnElf,OAAQ,CACJtF,MAAO4mB,GAAcC,GACrB9W,KAAMA,GAEV0Q,KAAM0H,GAAOG,UACb,CAACvY,IACLyY,OAAQ,eAAkB,IAAM0E,EAAe9nB,QAAQojB,OAAO,CAC1DljB,OAAQ,CACJtF,MAAON,GAAIspB,EAAQiD,YAAalc,GAChCA,KAAMA,GAEV0Q,KAAM0H,GAAOC,QACb,CAACrY,EAAMiZ,IACX9R,IAAM8W,IACF,MAAMT,EAAQ7tB,GAAIspB,EAAQwE,QAASzd,GAC/Bwd,GAASS,IACTT,EAAME,GAAGvW,IAAM,CACX+W,MAAO,IAAMD,EAAIC,QACjBC,OAAQ,IAAMF,EAAIE,SAClBC,kBAAoBC,GAAYJ,EAAIG,kBAAkBC,GACtDC,eAAgB,IAAML,EAAIK,kBAElC,GAGRtF,YACAuF,WAAY/uB,OAAOgvB,iBAAiB,CAAC,EAAG,CACpCC,QAAS,CACL/uB,YAAY,EACZC,IAAK,MAAQA,GAAIqpB,EAAU8D,OAAQ9c,IAEvCyc,QAAS,CACL/sB,YAAY,EACZC,IAAK,MAAQA,GAAIqpB,EAAU0D,YAAa1c,IAE5C0e,UAAW,CACPhvB,YAAY,EACZC,IAAK,MAAQA,GAAIqpB,EAAU2D,cAAe3c,IAE9CvL,MAAO,CACH/E,YAAY,EACZC,IAAK,IAAMA,GAAIqpB,EAAU8D,OAAQ9c,MAIjD,CA8+BUwY,GAAgBE,SACNF,GAAgB/D,SC57CpC,OAxBqBkK,EACnB1F,UACAjZ,OACAyV,cAAa,KACVvO,MAEH,MAAM,MAAEsW,GAAU/B,GAAc,CAC9BxC,UACAjZ,OACAod,MAAO,CAAE9G,SAAUb,KAGrB,OACE3L,EAAAA,EAAAA,KAACuL,GAAQvW,EAAA,CACPkB,KAAMA,EACNyU,SAAWxkB,IACTutB,EAAM/I,SAASxkB,EAAgC,EAEjDwlB,WAAYA,GACRvO,GACJ,E,SCvBN,MAsCa0X,GAAkB3U,EAAA,UAAA1U,OAAA,YAAA0U,EAM3B,EAAG4U,aAAYtgB,WACfsgB,EACIpgB,EAAaF,EAAO,sBAAuB,OAC3CE,EAAaF,IAAM,sHAUhB,EAAG5G,SAAQmnB,YAClBA,GAASnnB,IAAS,IAAkB,WAAS,uKAgBjC,EAAGmnB,SAAQvgB,WACvBugB,EACK,6BAA4BvgB,EAAM5G,OAAOmB,sBAAsByF,EAAM5G,OAAOuB,iBAC7EqF,EAAM5G,OAAOO,aAAW,2BAGd,EAAGqG,WAAYA,EAAM5G,OAAOe,MAAI,mCAKrC,EAAGf,SAAQ4G,WAAY5G,IAAS,IAAM4G,EAAM5G,OAAOmB,YAAU,gBACxD,EAAGgmB,SAAQvgB,WACvBugB,EACK,6BAA4BvgB,EAAM5G,OAAOmB,sBAAsByF,EAAM5G,OAAOuB,iBAC7EqF,EAAM5G,OAAOS,aAAW,sBAKlB,EAAGT,SAAQ4G,WAAY5G,IAAS,IAAM4G,EAAM5G,OAAOmB,YAAU,OAIzE,EAAG+lB,aAAYE,gBAAexgB,WAC9BsgB,GAnGmBG,GAAGzgB,QAAOwgB,gBAAgB,MAC/C,IAAIE,EAAc1gB,EAAM5G,OAAOW,iBAC3B4mB,EAAqB3gB,EAAM5G,OAAOY,oBAClC4mB,EAAkB5gB,EAAM5G,OAAOG,MAOnC,OANIinB,EAAgB,IAClBE,EAAc1gB,EAAM5G,OAAOsF,oCAC3BiiB,EAAqB3gB,EAAM5G,OAAOsF,oCAClCkiB,EAAkB5gB,EAAM5G,OAAOqF,gCAG1BwB,EAAAA,EAAAA,KAAG,6GAMCD,EAAM5G,OAAOa,iBAAgB,qBAClBymB,EAAW,iCAEjBE,EAAe,kCAIlB5gB,EAAM5G,OAAOa,iBAAgB,eACxB2mB,EAAe,2BAEXD,EAAkB,sBAMxB3gB,EAAM5G,OAAOmB,WAAU,cAoErCkmB,CAAe,CACbzgB,QACAwgB,mBACA,KAuCN,OApCuBK,EACrBpU,UACAqU,UACAP,SACAD,aACAE,gBACAnL,WACA5K,WACAsW,iBACA9O,eACA7Y,SACAoI,gBAEA+J,EAAAA,EAAAA,KAAC8U,GAAkB,CACjB7e,UAAWA,EACXpI,OAAQA,EACRmnB,OAAQA,EACRpO,KAAK,SACLmO,WAAYA,EACZE,cAAeA,EACf/T,QAAU9b,IAEPA,EAAEqwB,cAAoCrB,QACvClT,GAAWA,EAAQ9b,EAAE,EAEvBmwB,QAASA,EACTzL,SAAUA,EACV7C,KAAK,WACL,kBAAiBuO,EACjB,gBAAe9O,EACf,gBAAesO,EACf,gBAAc,WACb9V,GC1IE,MAAMwW,GAAiBvV,EAAA,OAAA1U,OAAA,aAAA0U,CAAA,CAAAjK,KAAA,SAAAE,OAAA,oCAW9B,OANsBuf,EAAGC,WACvB5V,EAAAA,EAAAA,KAAC0V,GAAiB,MAChB1V,EAAAA,EAAAA,KAACoG,GAAI,CAAClQ,KAAO,WAAS0f,EAAO,KAAO,QAAUvV,KAAM,MCRxD,MAAMwV,GAAkBtO,EAAAA,cAAyC,CAC/DuO,WAAY,KACZnL,SAAUA,SASZ,UCwCA,OAtBoBxK,EAAA,MAAA1U,OAAA,YAAA0U,CAAA,wEAOJ,EAAG0B,WAAUpN,WACzBoN,EAAWpN,EAAM5G,OAAOQ,qBAAuB,WAAS,wBAG1C,EAAGoG,WAAYA,EAAM5G,OAAOO,aAAW,MAGrD,EAAG2mB,aAAY7L,aAAYzU,WAC3BsgB,GA3BmBG,GAAGzgB,QAAOyU,iBACxBxU,EAAAA,EAAAA,KAAG,yBAECwU,EACLzU,EAAM5G,OAAOyB,qBACbmF,EAAM5G,OAAOwB,aAAY,oCAuB7B6lB,CAAe,CACbzgB,QACAyU,gBACA,KC3CN,MAAM6M,GAAmB5V,EAAA,MAAA1U,OAAA,aAAA0U,CAAA,+JAiBb,EAAG1L,WACV,6BAA4BA,EAAM5G,OAAOsB,iBAAe,qBACxC,EAAGsF,WACnB,6BAA4BA,EAAM5G,OAAOsB,iBAAe,KAGvD6mB,GAAoB,CAAA9f,KAAA,UAAAE,OAAA,0LAkBpB6f,GAAa,CAAEpW,GAAI1W,OAAO+sB,IAAK/vB,MAAO,YAmD5C,OAjDwBgwB,EACtBX,iBACA3V,KACAX,eAEA,MAAM,SAAEyL,EAAQ,WAAEmL,GF7CXvO,EAAAA,WAAiBsO,IEiDlBpa,EAFgB8L,IAAAA,SAAe6O,QAAQlX,GAAUa,OAAOgM,SAENpL,KAAKC,IAC3D,MAAMiB,EAAWiU,GAAY3vB,QAAUya,EAAMxD,MAAMjX,MAEnD,OAAOohB,IAAAA,aACL3G,EACA,IACKA,EAAMxD,MACTyE,WACA,gBAAiBA,EACjBX,QAASyJ,EAASzV,KAAK,KAAM0L,EAAMxD,MAAMjX,SAE3C6Z,EAAAA,EAAAA,KAAA,UAAQ4G,KAAK,SAASlS,IAAKshB,IACxBpV,EAAMxD,MAAM8B,UAAY0B,EAAMxD,MAAMT,OAASiE,EAAMxD,MAAMjX,OAE7D,IAeH,OAZuB,IAAnBsV,EAAQtR,QACVsR,EAAQ7R,MACNoW,EAAAA,EAAAA,KAACqW,GAAc,CACb1oB,IAAKsoB,GAAWpW,GAChB1Z,MAAO,GACP+a,QAASyJ,EAASzV,KAAK,KAAM,IAC7B,iBAAe,IACf8K,EAAAA,EAAAA,KAAA,UAAQtL,IAAKshB,IAAuBC,GAAW9vB,UAMnD6Z,EAAAA,EAAAA,KAAC+V,GAAmB,CAClB9O,KAAK,UACLqP,SAAS,KACTzW,GAAIA,EACJ,kBAAiB2V,GAChB/Z,EACmB,ECxE1B,MAAM8a,GAAYpW,EAAA,OAAA1U,OAAA,YAAA0U,CAAA,CAAAjK,KAAA,UAAAE,OAAA,2CA6GlB,OAxGiBogB,EACfC,eACAvN,aACA8L,OAAQ0B,EACRxX,WACAyL,SAAUgM,EACV1gB,gBAEA,MAAMxB,GAAQuN,EAAAA,EAAAA,YACR4U,GAAcxqB,EAAAA,EAAAA,QAAuB,MAErCyqB,EAAc,mBACdC,GAAa7K,EAAAA,EAAAA,SACbxQ,EAAe,IAEdsb,EAAWC,IAAgBvsB,EAAAA,EAAAA,WAAS,IACpCuqB,EAAQiC,IAAaxsB,EAAAA,EAAAA,UAASisB,IAAc,IAC5C7oB,EAAQqpB,IAAazsB,EAAAA,EAAAA,UAAoC,KACzDqrB,EAAYqB,IAAiB1sB,EAAAA,EAAAA,UAAwBgsB,GAEtD9L,EAA6CyM,IACjD,MAAMC,EAAY5b,EAAQsE,QAAQuX,GAAWA,EAAOnxB,QAAUixB,IAAM,GAEpEH,GAAU,IAEN/N,GAAekO,GAIfC,EAAUlxB,QAAU2vB,GAAY3vB,QAIpCgxB,EAAcE,GACdV,GAAgBA,EAAaU,GAAU,GAGzChtB,EAAAA,GAAAA,iBAAgBusB,GAAa,IAAM5B,GAAUiC,GAAU,MAEvD7rB,EAAAA,EAAAA,YAAU,KACJ8d,EACFgO,EAAU,CAACziB,EAAM5G,OAAOoB,aAAcwF,EAAM5G,OAAOgB,SAC1CmmB,EACTkC,EAAU,CAACziB,EAAM5G,OAAOG,MAAOyG,EAAM5G,OAAOK,UACnC6oB,GACTG,EAAU,CAACziB,EAAM5G,OAAOmB,WAAYyF,EAAM5G,OAAOoB,cACnD,GACC,CAAC+lB,EAAQ9L,EAAY6N,KAExB3rB,EAAAA,EAAAA,YAAU,KACJ8d,GAAc8L,GAChBiC,GAAU,EACZ,GACC,CAAC/N,IAEJ,MAEMqO,EAFgBhQ,IAAAA,SAAe6O,QAAQlX,GAAUa,OAAOgM,SAERpL,KAAI,CAACC,EAAOqF,KAChExK,EAAQ7R,KAAKgX,EAAMxD,OAEZmK,IAAAA,aAAmB3G,EAAO,CAC/BqF,QACA/E,QAASyJ,EAASzV,UAAK,MACpB0L,EAAMxD,WAIPoa,EAAoCjQ,IAAAA,SACxC,KAAM,CAAGoD,WAAUmL,gBACnB,CAACnL,EAAUmL,IAGP3vB,EACJ2vB,IACIA,EAAWnZ,OACXmZ,EAAW5W,UACX4W,EAAW3vB,OACX2vB,IAEAe,EAGN,OACE7W,EAAAA,EAAAA,KAAC6V,GAAgB5V,SAAQ,CAAC9Z,MAAOqxB,IAC/BxX,EAAAA,EAAAA,KAACuW,GAAY,CAAClZ,IAAKuZ,EAAa,cAAY,aAC1C5W,EAAAA,EAAAA,KAACsV,GAAc,CACbrf,UAAWA,EACX+e,OAAQA,EACRlL,SAAUZ,EACVhI,QAAS+V,EAAU/hB,KAAK,MAAO8f,GAC/BO,QAASyB,EAAa9hB,KAAK,MAAM,GACjCrH,OAAQA,EACR2nB,eAAiB,kBAAiBsB,IAClCpQ,aAAe,kBAAiBoQ,KAC/B3wB,GACD6Z,EAAAA,EAAAA,KAAC2V,GAAa,CAACC,KAAMZ,KAGtBA,GAAShV,EAAAA,EAAAA,KAACmW,GAAe,KAAEoB,GAA2B,MAEhC,ECzH/B,OANkBpX,EAAA,OAAA1U,OAAA,aAAA0U,CAAA,CAAAjK,KAAA,SAAAE,OAAA,2DCHlB,SAASqhB,GAAYlL,GACnB,OAAImL,GAAOnL,IACDA,EAAKoL,UAAY,IAAI/d,cAKxB,WACT,CACA,SAAS,GAAU2S,GACjB,IAAIqL,EACJ,OAAgB,MAARrL,GAAsE,OAA7CqL,EAAsBrL,EAAKsL,oBAArC,EAAuED,EAAoBE,cAAgB9sB,MACpI,CACA,SAAS+sB,GAAmBxL,GAC1B,IAAIvQ,EACJ,OAA0F,OAAlFA,GAAQ0b,GAAOnL,GAAQA,EAAKsL,cAAgBtL,EAAK7gB,WAAaV,OAAOU,eAAoB,EAASsQ,EAAKgc,eACjH,CACA,SAASN,GAAOvxB,GACd,OAAOA,aAAiB8xB,MAAQ9xB,aAAiB,GAAUA,GAAO8xB,IACpE,CACA,SAAS,GAAU9xB,GACjB,OAAOA,aAAiB+xB,SAAW/xB,aAAiB,GAAUA,GAAO+xB,OACvE,CACA,SAAS,GAAc/xB,GACrB,OAAOA,aAAiBynB,aAAeznB,aAAiB,GAAUA,GAAOynB,WAC3E,CACA,SAASuK,GAAahyB,GAEpB,MAA0B,oBAAfiyB,aAGJjyB,aAAiBiyB,YAAcjyB,aAAiB,GAAUA,GAAOiyB,WAC1E,CACA,SAASC,GAAkB3L,GACzB,MAAM,SACJ4L,EAAQ,UACRC,EAAS,UACTC,EAAS,QACTC,GACE,GAAiB/L,GACrB,MAAO,kCAAkC9W,KAAK0iB,EAAWE,EAAYD,KAAe,CAAC,SAAU,YAAYG,SAASD,EACtH,CACA,SAASE,GAAejM,GACtB,MAAO,CAAC,QAAS,KAAM,MAAMgM,SAASjB,GAAY/K,GACpD,CACA,SAASkM,GAAkBlM,GACzB,MAAMmM,EAASC,KACTpkB,EAAM,GAAiBgY,GAG7B,MAAyB,SAAlBhY,EAAIqkB,WAA4C,SAApBrkB,EAAIskB,eAA2BtkB,EAAIukB,eAAsC,WAAtBvkB,EAAIukB,gBAAwCJ,KAAWnkB,EAAIwkB,gBAAwC,SAAvBxkB,EAAIwkB,iBAAuCL,KAAWnkB,EAAIqL,QAAwB,SAAfrL,EAAIqL,QAA8B,CAAC,YAAa,cAAe,UAAUkQ,MAAK9pB,IAAUuO,EAAIykB,YAAc,IAAIT,SAASvyB,MAAW,CAAC,QAAS,SAAU,SAAU,WAAW8pB,MAAK9pB,IAAUuO,EAAI0kB,SAAW,IAAIV,SAASvyB,IAC7b,CAYA,SAAS2yB,KACP,QAAmB,oBAARO,MAAwBA,IAAIC,WAChCD,IAAIC,SAAS,0BAA2B,OACjD,CACA,SAASC,GAAsBhN,GAC7B,MAAO,CAAC,OAAQ,OAAQ,aAAamM,SAASjB,GAAYlL,GAC5D,CACA,SAAS,GAAiBG,GACxB,OAAO,GAAUA,GAAS1gB,iBAAiB0gB,EAC7C,CACA,SAAS8M,GAAc9M,GACrB,OAAI,GAAUA,GACL,CACL+M,WAAY/M,EAAQ+M,WACpBC,UAAWhN,EAAQgN,WAGhB,CACLD,WAAY/M,EAAQiN,YACpBD,UAAWhN,EAAQkN,YAEvB,CACA,SAASC,GAActN,GACrB,GAA0B,SAAtBkL,GAAYlL,GACd,OAAOA,EAET,MAAMxR,EAENwR,EAAKuN,cAELvN,EAAKlgB,YAEL8rB,GAAa5L,IAASA,EAAKwN,MAE3BhC,GAAmBxL,GACnB,OAAO4L,GAAapd,GAAUA,EAAOgf,KAAOhf,CAC9C,CACA,SAASif,GAA2BzN,GAClC,MAAMlgB,EAAawtB,GAActN,GACjC,OAAIgN,GAAsBltB,GACjBkgB,EAAKsL,cAAgBtL,EAAKsL,cAAcoC,KAAO1N,EAAK0N,KAEzD,GAAc5tB,IAAegsB,GAAkBhsB,GAC1CA,EAEF2tB,GAA2B3tB,EACpC,CACA,SAAS6tB,GAAqB3N,EAAM4N,GAClC,IAAIC,OACS,IAATD,IACFA,EAAO,IAET,MAAME,EAAqBL,GAA2BzN,GAChD+N,EAASD,KAAuE,OAA9CD,EAAuB7N,EAAKsL,oBAAyB,EAASuC,EAAqBH,MACrHM,EAAM,GAAUF,GACtB,OAAIC,EACKH,EAAKpwB,OAAOwwB,EAAKA,EAAIC,gBAAkB,GAAInC,GAAkBgC,GAAsBA,EAAqB,IAE1GF,EAAKpwB,OAAOswB,EAAoBH,GAAqBG,GAC9D,CCxHA,SAAS,GAAcI,GACrB,IAAIC,EAAgBD,EAAIC,cACxB,KAA2K,OAA/H,OAAnCC,EAAiBD,IAAyF,OAAtDE,EAAwBD,EAAeE,iBAAjD,EAAgFD,EAAsBF,gBAAwB,CAC/K,IAAIC,EAAgBC,EACpBF,EAAgBA,EAAcG,WAAWH,aAC3C,CACA,OAAOA,CACT,CACA,SAAS,GAASI,EAAQla,GACxB,IAAKka,IAAWla,EACd,OAAO,EAET,MAAMma,EAAWna,EAAMoa,aAAepa,EAAMoa,cAG5C,GAAIF,EAAOtvB,SAASoV,GAClB,OAAO,EAIT,GAAIma,GAAY5C,GAAa4C,GAAW,CACtC,IAAI9gB,EAAO2G,EACX,KAAO3G,GAAM,CACX,GAAI6gB,IAAW7gB,EACb,OAAO,EAGTA,EAAOA,EAAK5N,YAAc4N,EAAK8f,IACjC,CACF,CAGA,OAAO,CACT,CAEA,SAAS,KACP,MAAMkB,EAASC,UAAUC,cACzB,OAAc,MAAVF,GAAkBA,EAAOG,SACpBH,EAAOG,SAETF,UAAUE,QACnB,CAgBA,SAAS,GAAepO,GACtB,GAA6B,IAAzBA,EAAMqO,gBAAwBrO,EAAMsO,UACtC,OAAO,EAET,MAAMC,EAAY,WAClB,OAAKA,EAAU3lB,KAAK,OAAkB2lB,EAAU3lB,KApBlD,WACE,MAAMqlB,EAASC,UAAUC,cACzB,OAAIF,GAAUzgB,MAAMC,QAAQwgB,EAAOO,QAC1BP,EAAOO,OAAO7a,KAAI3E,IACvB,IAAI,MACFyf,EAAK,QACLC,GACE1f,EACJ,OAAOyf,EAAQ,IAAMC,CAAO,IAC3BC,KAAK,KAEHT,UAAUU,SACnB,CAQuD,MAAoB5O,EAAM6O,YACvD,UAAf7O,EAAMpG,MAAsC,IAAlBoG,EAAM8O,QAEjB,IAAjB9O,EAAM+O,SAAiB/O,EAAM6O,WACtC,CACA,SAAS,GAAsB7O,GAC7B,OAAuB,IAAhBA,EAAMjiB,OAAgC,IAAjBiiB,EAAM9hB,QAAgC,IAAhB8hB,EAAMjiB,OAAgC,IAAjBiiB,EAAM9hB,QAAmC,IAAnB8hB,EAAMgP,UAAmC,IAAjBhP,EAAM+O,QAAsC,UAAtB/O,EAAM6O,aAEjJ7O,EAAMjiB,MAAQ,GAAKiiB,EAAM9hB,OAAS,GAAwB,IAAnB8hB,EAAMgP,UAAmC,IAAjBhP,EAAM+O,MACvE,CAQA,SAAS,GAAuBF,EAAaI,GAG3C,MAAM/J,EAAS,CAAC,QAAS,OAIzB,OAHK+J,GACH/J,EAAOtoB,KAAK,QAAIgD,GAEXslB,EAAOwG,SAASmD,EACzB,CAOA,SAAS,GAAYtP,GACnB,OAAgB,MAARA,OAAe,EAASA,EAAKsL,gBAAkBnsB,QACzD,CACA,SAAS,GAAoBshB,EAAOT,GAClC,GAAY,MAARA,EACF,OAAO,EAET,GAAI,iBAAkBS,EACpB,OAAOA,EAAMkP,eAAexD,SAASnM,GAIvC,MAAMnnB,EAAI4nB,EACV,OAAmB,MAAZ5nB,EAAEqG,QAAkB8gB,EAAK/gB,SAASpG,EAAEqG,OAC7C,CACA,SAAS,GAAUuhB,GACjB,MAAI,iBAAkBA,EACbA,EAAMkP,eAAe,GAKvBlP,EAAMvhB,MACf,CACA,MAAM0wB,GAAoB,uHAC1B,SAASC,GAAkB1P,GACzB,OAAO,GAAcA,IAAYA,EAAQ2P,QAAQF,GACnD,CACA,SAAS,GAAUnP,GACjBA,EAAMsP,iBACNtP,EAAMuP,iBACR,CC/HA,MAGM,GAAMjzB,KAAKV,IACX,GAAMU,KAAKkzB,IACXC,GAAQnzB,KAAKmzB,MACb,GAAQnzB,KAAKC,MACbmzB,GAAen1B,IAAK,CACxByd,EAAGzd,EACHN,EAAGM,IAECo1B,GAAkB,CACtBrS,KAAM,QACNsS,MAAO,OACPC,OAAQ,MACRtS,IAAK,UAEDuS,GAAuB,CAC3BC,MAAO,MACPC,IAAK,SAEP,SAASC,GAAMF,EAAO52B,EAAO62B,GAC3B,OAAO,GAAID,EAAO,GAAI52B,EAAO62B,GAC/B,CACA,SAAS,GAAS72B,EAAO+2B,GACvB,MAAwB,mBAAV/2B,EAAuBA,EAAM+2B,GAAS/2B,CACtD,CACA,SAAS,GAAQg3B,GACf,OAAOA,EAAUtf,MAAM,KAAK,EAC9B,CACA,SAAS,GAAasf,GACpB,OAAOA,EAAUtf,MAAM,KAAK,EAC9B,CACA,SAAS,GAAgBuf,GACvB,MAAgB,MAATA,EAAe,IAAM,GAC9B,CACA,SAASC,GAAcD,GACrB,MAAgB,MAATA,EAAe,SAAW,OACnC,CACA,SAAS,GAAYD,GACnB,MAAO,CAAC,MAAO,UAAUzE,SAAS,GAAQyE,IAAc,IAAM,GAChE,CACA,SAASG,GAAiBH,GACxB,OAAO,GAAgB,GAAYA,GACrC,CAkBA,SAAS,GAA8BA,GACrC,OAAOA,EAAUxjB,QAAQ,cAAc4jB,GAAaT,GAAqBS,IAC3E,CA6BA,SAASC,GAAqBL,GAC5B,OAAOA,EAAUxjB,QAAQ,0BAA0B8jB,GAAQd,GAAgBc,IAC7E,CAUA,SAAS,GAAiBC,GACxB,MAA0B,iBAAZA,EAVhB,SAA6BA,GAC3B,MAAO,CACLnT,IAAK,EACLqS,MAAO,EACPC,OAAQ,EACRvS,KAAM,KACHoT,EAEP,CAEuCC,CAAoBD,GAAW,CAClEnT,IAAKmT,EACLd,MAAOc,EACPb,OAAQa,EACRpT,KAAMoT,EAEV,CACA,SAAS,GAAiBE,GACxB,MAAO,IACFA,EACHrT,IAAKqT,EAAK32B,EACVqjB,KAAMsT,EAAK5Y,EACX4X,MAAOgB,EAAK5Y,EAAI4Y,EAAK7yB,MACrB8xB,OAAQe,EAAK32B,EAAI22B,EAAK1yB,OAE1B,CCtHA,SAAS2yB,GAA2B7hB,EAAMmhB,EAAWW,GACnD,IAAI,UACFC,EAAS,SACTC,GACEhiB,EACJ,MAAMiiB,EAAW,GAAYd,GACvBe,EAAgBZ,GAAiBH,GACjCgB,EAAcd,GAAca,GAC5BT,EAAO,GAAQN,GACfiB,EAA0B,MAAbH,EACbI,EAAUN,EAAU/Y,EAAI+Y,EAAUhzB,MAAQ,EAAIizB,EAASjzB,MAAQ,EAC/DuzB,EAAUP,EAAU92B,EAAI82B,EAAU7yB,OAAS,EAAI8yB,EAAS9yB,OAAS,EACjEqzB,EAAcR,EAAUI,GAAe,EAAIH,EAASG,GAAe,EACzE,IAAIK,EACJ,OAAQf,GACN,IAAK,MACHe,EAAS,CACPxZ,EAAGqZ,EACHp3B,EAAG82B,EAAU92B,EAAI+2B,EAAS9yB,QAE5B,MACF,IAAK,SACHszB,EAAS,CACPxZ,EAAGqZ,EACHp3B,EAAG82B,EAAU92B,EAAI82B,EAAU7yB,QAE7B,MACF,IAAK,QACHszB,EAAS,CACPxZ,EAAG+Y,EAAU/Y,EAAI+Y,EAAUhzB,MAC3B9D,EAAGq3B,GAEL,MACF,IAAK,OACHE,EAAS,CACPxZ,EAAG+Y,EAAU/Y,EAAIgZ,EAASjzB,MAC1B9D,EAAGq3B,GAEL,MACF,QACEE,EAAS,CACPxZ,EAAG+Y,EAAU/Y,EACb/d,EAAG82B,EAAU92B,GAGnB,OAAQ,GAAak2B,IACnB,IAAK,QACHqB,EAAON,IAAkBK,GAAeT,GAAOM,GAAc,EAAI,GACjE,MACF,IAAK,MACHI,EAAON,IAAkBK,GAAeT,GAAOM,GAAc,EAAI,GAGrE,OAAOI,CACT,CAsGA1zB,eAAe,GAAeooB,EAAOzX,GACnC,IAAIgjB,OACY,IAAZhjB,IACFA,EAAU,CAAC,GAEb,MAAM,EACJuJ,EAAC,EACD/d,EAAC,SACDm0B,EAAQ,MACRsD,EAAK,SACLC,EAAQ,SACRC,GACE1L,GACE,SACJ2L,EAAW,oBAAmB,aAC9BC,EAAe,WAAU,eACzBC,EAAiB,WAAU,YAC3BC,GAAc,EAAK,QACnBtB,EAAU,GACR,GAASjiB,EAASyX,GAChB+L,EAAgB,GAAiBvB,GAEjChR,EAAUiS,EAASK,EADa,aAAnBD,EAAgC,YAAc,WACbA,GAC9CG,EAAqB,SAAuB9D,EAAS+D,gBAAgB,CACzEzS,QAAiH,OAAtG+R,QAAqD,MAAtBrD,EAASgE,eAAoB,EAAShE,EAASgE,UAAU1S,MAAqB+R,EAAgC/R,EAAUA,EAAQ2S,sBAAyD,MAA/BjE,EAASrD,wBAA6B,EAASqD,EAASrD,mBAAmB4G,EAASX,WACxRa,WACAC,eACAF,cAEIhB,EAA0B,aAAnBmB,EAAgC,IACxCL,EAAMV,SACThZ,IACA/d,KACEy3B,EAAMX,UACJuB,QAAkD,MAA5BlE,EAASmE,qBAA0B,EAASnE,EAASmE,gBAAgBZ,EAASX,WACpGwB,QAA4C,MAAtBpE,EAASgE,eAAoB,EAAShE,EAASgE,UAAUE,WAA+C,MAArBlE,EAASqE,cAAmB,EAASrE,EAASqE,SAASH,KAGlK,CACFta,EAAG,EACH/d,EAAG,GAECy4B,EAAoB,GAAiBtE,EAASuE,4DAA8DvE,EAASuE,sDAAsD,CAC/K/B,OACA0B,eACAV,aACGhB,GACL,MAAO,CACLrT,KAAM2U,EAAmB3U,IAAMmV,EAAkBnV,IAAM0U,EAAc1U,KAAOiV,EAAYv4B,EACxF41B,QAAS6C,EAAkB7C,OAASqC,EAAmBrC,OAASoC,EAAcpC,QAAU2C,EAAYv4B,EACpGqjB,MAAO4U,EAAmB5U,KAAOoV,EAAkBpV,KAAO2U,EAAc3U,MAAQkV,EAAYxa,EAC5F4X,OAAQ8C,EAAkB9C,MAAQsC,EAAmBtC,MAAQqC,EAAcrC,OAAS4C,EAAYxa,EAEpG,CAOA,MAAM4a,GAAQnkB,IAAW,CACvBvF,KAAM,QACNuF,UACA3Q,SAASooB,GACP,MAAM,EACJlO,EAAC,EACD/d,EAAC,UACDk2B,EAAS,MACTuB,EAAK,SACLtD,EAAQ,SACRuD,GACEzL,GAEE,QACJxG,EAAO,QACPgR,EAAU,GACR,GAASjiB,EAASyX,IAAU,CAAC,EACjC,GAAe,MAAXxG,EACF,MAAO,CAAC,EAEV,MAAMuS,EAAgB,GAAiBvB,GACjCc,EAAS,CACbxZ,IACA/d,KAEIm2B,EAAOE,GAAiBH,GACxBhzB,EAASkzB,GAAcD,GACvByC,QAAwBzE,EAAS0E,cAAcpT,GAC/CqT,EAAmB,MAAT3C,EACV4C,EAAUD,EAAU,MAAQ,OAC5BE,EAAUF,EAAU,SAAW,QAC/BG,EAAaH,EAAU,eAAiB,cACxCI,EAAUzB,EAAMX,UAAU5zB,GAAUu0B,EAAMX,UAAUX,GAAQoB,EAAOpB,GAAQsB,EAAMV,SAAS7zB,GAC1Fi2B,EAAY5B,EAAOpB,GAAQsB,EAAMX,UAAUX,GAC3CiD,QAAuD,MAA5BjF,EAASmE,qBAA0B,EAASnE,EAASmE,gBAAgB7S,IACtG,IAAI4T,EAAaD,EAAoBA,EAAkBH,GAAc,EAGhEI,SAA6C,MAAtBlF,EAASgE,eAAoB,EAAShE,EAASgE,UAAUiB,MACnFC,EAAa3B,EAASX,SAASkC,IAAexB,EAAMV,SAAS7zB,IAE/D,MAAMo2B,EAAoBJ,EAAU,EAAIC,EAAY,EAI9CI,EAAyBF,EAAa,EAAIT,EAAgB11B,GAAU,EAAI,EACxEs2B,EAAa,GAAIxB,EAAce,GAAUQ,GACzCE,EAAa,GAAIzB,EAAcgB,GAAUO,GAIzCG,EAAQF,EACRjE,EAAM8D,EAAaT,EAAgB11B,GAAUu2B,EAC7CE,EAASN,EAAa,EAAIT,EAAgB11B,GAAU,EAAIo2B,EACxDM,EAAS5D,GAAM0D,EAAOC,EAAQpE,GAO9BsE,EAD6C,MAA3B,GAAa3D,IAAsByD,GAAUC,GAAUnC,EAAMX,UAAU5zB,GAAU,GAAKy2B,EAASD,EAAQF,EAAaC,GAAcb,EAAgB11B,GAAU,EAAI,EAC9Iy2B,EAASD,EAAQA,EAAQC,EAASpE,EAAMoE,EAAS,EAC3F,MAAO,CACL,CAACxD,GAAOoB,EAAOpB,GAAQ0D,EACvBl2B,KAAM,CACJ,CAACwyB,GAAOyD,EACRE,aAAcH,EAASC,EAASC,GAGtC,IAkBF,MA8FME,GAAO,SAAUvlB,GAIrB,YAHgB,IAAZA,IACFA,EAAU,CAAC,GAEN,CACLvF,KAAM,OACNuF,UACA3Q,SAASooB,GACP,IAAI+N,EACJ,MAAM,UACJ9D,EAAS,eACT+D,EAAc,MACdxC,EAAK,iBACLyC,EAAgB,SAChB/F,EAAQ,SACRuD,GACEzL,GAEFkO,SAAUC,GAAgB,EAC1BC,UAAWC,GAAiB,EAC5BC,mBAAoBC,EAA2B,iBAC/CC,EAAmB,UAAS,0BAC5BC,EAA4B,OAAM,cAClCC,GAAgB,KACbC,GACD,GAASpmB,EAASyX,GAChBuK,EAAO,GAAQN,GACf2E,EAAkB,GAAQX,KAAsBA,EAChDrD,QAA+B,MAAlB1C,EAAS2G,WAAgB,EAAS3G,EAAS2G,MAAMpD,EAASX,WACvEwD,EAAqBC,IAAgCK,IAAoBF,EAAgB,CAACpE,GAAqB2D,IDnX3H,SAA+BhE,GAC7B,MAAM6E,EAAoBxE,GAAqBL,GAC/C,MAAO,CAAC,GAA8BA,GAAY6E,EAAmB,GAA8BA,GACrG,CCgXgJC,CAAsBd,IAC3JM,GAA6D,SAA9BE,GAClCH,EAAmB53B,QD7V3B,SAAmCuzB,EAAWyE,EAAezgB,EAAW2c,GACtE,MAAMP,EAAY,GAAaJ,GAC/B,IAAIhD,EAnBN,SAAqBsD,EAAMyE,EAASpE,GAClC,MAAMqE,EAAK,CAAC,OAAQ,SACdC,EAAK,CAAC,QAAS,QACfC,EAAK,CAAC,MAAO,UACbC,EAAK,CAAC,SAAU,OACtB,OAAQ7E,GACN,IAAK,MACL,IAAK,SACH,OAAIK,EAAYoE,EAAUE,EAAKD,EACxBD,EAAUC,EAAKC,EACxB,IAAK,OACL,IAAK,QACH,OAAOF,EAAUG,EAAKC,EACxB,QACE,MAAO,GAEb,CAGaC,CAAY,GAAQpF,GAA0B,UAAdhc,EAAuB2c,GAOlE,OANIP,IACFpD,EAAOA,EAAKxZ,KAAI8c,GAAQA,EAAO,IAAMF,IACjCqE,IACFzH,EAAOA,EAAKpwB,OAAOowB,EAAKxZ,IAAI,OAGzBwZ,CACT,CCmVmCqI,CAA0BrB,EAAkBS,EAAeD,EAA2B7D,IAEnH,MAAM2E,EAAa,CAACtB,KAAqBK,GACnClJ,QAAiB,GAAepF,EAAO2O,GACvCa,EAAY,GAClB,IAAIC,GAAiE,OAA/C1B,EAAuBC,EAAeF,WAAgB,EAASC,EAAqByB,YAAc,GAIxH,GAHIrB,GACFqB,EAAU94B,KAAK0uB,EAASmF,IAEtB8D,EAAgB,CAClB,MAAMqB,ED5Yd,SAA2BzF,EAAWuB,EAAOZ,QAC/B,IAARA,IACFA,GAAM,GAER,MAAMP,EAAY,GAAaJ,GACzBe,EAAgBZ,GAAiBH,GACjChzB,EAASkzB,GAAca,GAC7B,IAAI2E,EAAsC,MAAlB3E,EAAwBX,KAAeO,EAAM,MAAQ,SAAW,QAAU,OAAuB,UAAdP,EAAwB,SAAW,MAI9I,OAHImB,EAAMX,UAAU5zB,GAAUu0B,EAAMV,SAAS7zB,KAC3C04B,EAAoBrF,GAAqBqF,IAEpC,CAACA,EAAmBrF,GAAqBqF,GAClD,CCgYsB,CAAkB1F,EAAWuB,EAAOZ,GAClD4E,EAAU94B,KAAK0uB,EAASsK,EAAM,IAAKtK,EAASsK,EAAM,IACpD,CAOA,GANAD,EAAgB,IAAIA,EAAe,CACjCxF,YACAuF,eAIGA,EAAUI,OAAMrF,GAAQA,GAAQ,IAAI,CACvC,IAAIsF,EAAuBC,EAC3B,MAAMC,IAA+D,OAAhDF,EAAwB7B,EAAeF,WAAgB,EAAS+B,EAAsB9c,QAAU,GAAK,EACpHid,EAAgBT,EAAWQ,GACjC,GAAIC,EAEF,MAAO,CACLt4B,KAAM,CACJqb,MAAOgd,EACPP,UAAWC,GAEbQ,MAAO,CACLhG,UAAW+F,IAOjB,IAAIE,EAAgJ,OAA9HJ,EAAwBL,EAAc5iB,QAAOza,GAAKA,EAAEo9B,UAAU,IAAM,IAAGW,MAAK,CAACv7B,EAAGT,IAAMS,EAAE46B,UAAU,GAAKr7B,EAAEq7B,UAAU,KAAI,SAAc,EAASM,EAAsB7F,UAG1L,IAAKiG,EACH,OAAQ1B,GACN,IAAK,UACH,CACE,IAAI4B,EACJ,MAAMnG,EAAyM,OAA5LmG,EAAwBX,EAAchiB,KAAIrb,GAAK,CAACA,EAAE63B,UAAW73B,EAAEo9B,UAAU3iB,QAAOuY,GAAYA,EAAW,IAAG5uB,QAAO,CAAC65B,EAAKjL,IAAaiL,EAAMjL,GAAU,MAAK+K,MAAK,CAACv7B,EAAGT,IAAMS,EAAE,GAAKT,EAAE,KAAI,SAAc,EAASi8B,EAAsB,GACjPnG,IACFiG,EAAiBjG,GAEnB,KACF,CACF,IAAK,mBACHiG,EAAiBjC,EAIvB,GAAIhE,IAAciG,EAChB,MAAO,CACLD,MAAO,CACLhG,UAAWiG,GAInB,CACA,MAAO,CAAC,CACV,EAEJ,EA4PA,MAAM,GAAS,SAAU3nB,GAIvB,YAHgB,IAAZA,IACFA,EAAU,GAEL,CACLvF,KAAM,SACNuF,UACA3Q,SAASooB,GACP,MAAM,EACJlO,EAAC,EACD/d,GACEisB,EACEsQ,QA5DZ14B,eAAoCooB,EAAOzX,GACzC,MAAM,UACJ0hB,EAAS,SACT/B,EAAQ,SACRuD,GACEzL,EACE4K,QAA+B,MAAlB1C,EAAS2G,WAAgB,EAAS3G,EAAS2G,MAAMpD,EAASX,WACvEP,EAAO,GAAQN,GACfI,EAAY,GAAaJ,GACzBiB,EAAwC,MAA3B,GAAYjB,GACzBsG,EAAgB,CAAC,OAAQ,OAAO/K,SAAS+E,IAAS,EAAI,EACtDiG,EAAiB5F,GAAOM,GAAc,EAAI,EAC1CuF,EAAW,GAASloB,EAASyX,GAGnC,IAAI,SACFkO,EAAQ,UACRE,EAAS,cACTpD,GACsB,iBAAbyF,EAAwB,CACjCvC,SAAUuC,EACVrC,UAAW,EACXpD,cAAe,MACb,CACFkD,SAAU,EACVE,UAAW,EACXpD,cAAe,QACZyF,GAKL,OAHIpG,GAAsC,iBAAlBW,IACtBoD,EAA0B,QAAd/D,GAAuC,EAAjBW,EAAqBA,GAElDE,EAAa,CAClBpZ,EAAGsc,EAAYoC,EACfz8B,EAAGm6B,EAAWqC,GACZ,CACFze,EAAGoc,EAAWqC,EACdx8B,EAAGq6B,EAAYoC,EAEnB,CAqB+BE,CAAqB1Q,EAAOzX,GACrD,MAAO,CACLuJ,EAAGA,EAAIwe,EAAWxe,EAClB/d,EAAGA,EAAIu8B,EAAWv8B,EAClB2D,KAAM44B,EAEV,EAEJ,EAOMK,GAAQ,SAAUpoB,GAItB,YAHgB,IAAZA,IACFA,EAAU,CAAC,GAEN,CACLvF,KAAM,QACNuF,UACA3Q,SAASooB,GACP,MAAM,EACJlO,EAAC,EACD/d,EAAC,UACDk2B,GACEjK,GAEFkO,SAAUC,GAAgB,EAC1BC,UAAWC,GAAiB,EAAK,QACjCuC,EAAU,CACRvuB,GAAIyG,IACF,IAAI,EACFgJ,EAAC,EACD/d,GACE+U,EACJ,MAAO,CACLgJ,IACA/d,IACD,MAGF46B,GACD,GAASpmB,EAASyX,GAChBsL,EAAS,CACbxZ,IACA/d,KAEIqxB,QAAiB,GAAepF,EAAO2O,GACvCP,EAAY,GAAY,GAAQnE,IAChCiE,EAAW,GAAgBE,GACjC,IAAIyC,EAAgBvF,EAAO4C,GACvB4C,EAAiBxF,EAAO8C,GAC5B,GAAID,EAAe,CACjB,MACM4C,EAAuB,MAAb7C,EAAmB,SAAW,QAG9C2C,EAAgB9G,GAFJ8G,EAAgBzL,EAFC,MAAb8I,EAAmB,MAAQ,QAIhB2C,EADfA,EAAgBzL,EAAS2L,GAEvC,CACA,GAAI1C,EAAgB,CAClB,MACM0C,EAAwB,MAAd3C,EAAoB,SAAW,QAG/C0C,EAAiB/G,GAFL+G,EAAiB1L,EAFC,MAAdgJ,EAAoB,MAAQ,QAIhB0C,EADhBA,EAAiB1L,EAAS2L,GAExC,CACA,MAAMC,EAAgBJ,EAAQvuB,GAAG,IAC5B2d,EACH,CAACkO,GAAW2C,EACZ,CAACzC,GAAY0C,IAEf,MAAO,IACFE,EACHt5B,KAAM,CACJoa,EAAGkf,EAAclf,EAAIA,EACrB/d,EAAGi9B,EAAcj9B,EAAIA,GAG3B,EAEJ,ECv0BA,SAASk9B,GAAiBzX,GACxB,MAAMhY,EAAM,GAAiBgY,GAG7B,IAAI3hB,EAAQq5B,WAAW1vB,EAAI3J,QAAU,EACjCG,EAASk5B,WAAW1vB,EAAIxJ,SAAW,EACvC,MAAMm5B,EAAY,GAAc3X,GAC1B4X,EAAcD,EAAY3X,EAAQ4X,YAAcv5B,EAChDw5B,EAAeF,EAAY3X,EAAQ6X,aAAer5B,EAClDs5B,EAAiB/H,GAAM1xB,KAAWu5B,GAAe7H,GAAMvxB,KAAYq5B,EAKzE,OAJIC,IACFz5B,EAAQu5B,EACRp5B,EAASq5B,GAEJ,CACLx5B,QACAG,SACAu5B,EAAGD,EAEP,CAEA,SAASE,GAAchY,GACrB,OAAQ,GAAUA,GAAoCA,EAAzBA,EAAQ2S,cACvC,CAEA,SAASI,GAAS/S,GAChB,MAAMiY,EAAaD,GAAchY,GACjC,IAAK,GAAciY,GACjB,OAAOjI,GAAa,GAEtB,MAAMkB,EAAO+G,EAAWC,yBAClB,MACJ75B,EAAK,OACLG,EAAM,EACNu5B,GACEN,GAAiBQ,GACrB,IAAI3f,GAAKyf,EAAIhI,GAAMmB,EAAK7yB,OAAS6yB,EAAK7yB,OAASA,EAC3C9D,GAAKw9B,EAAIhI,GAAMmB,EAAK1yB,QAAU0yB,EAAK1yB,QAAUA,EAUjD,OANK8Z,GAAM7b,OAAO07B,SAAS7f,KACzBA,EAAI,GAED/d,GAAMkC,OAAO07B,SAAS59B,KACzBA,EAAI,GAEC,CACL+d,IACA/d,IAEJ,CAEA,MAAM69B,GAAyBpI,GAAa,GAC5C,SAASqI,GAAiBrY,GACxB,MAAM6N,EAAM,GAAU7N,GACtB,OAAKoM,MAAeyB,EAAIC,eAGjB,CACLxV,EAAGuV,EAAIC,eAAewK,WACtB/9B,EAAGszB,EAAIC,eAAeyK,WAJfH,EAMX,CAWA,SAASF,GAAsBlY,EAASwY,EAAcC,EAAiB7F,QAChD,IAAjB4F,IACFA,GAAe,QAEO,IAApBC,IACFA,GAAkB,GAEpB,MAAMC,EAAa1Y,EAAQkY,wBACrBD,EAAaD,GAAchY,GACjC,IAAI2Y,EAAQ3I,GAAa,GACrBwI,IACE5F,EACE,GAAUA,KACZ+F,EAAQ5F,GAASH,IAGnB+F,EAAQ5F,GAAS/S,IAGrB,MAAM4Y,EA7BR,SAAgC5Y,EAAS6Y,EAASC,GAIhD,YAHgB,IAAZD,IACFA,GAAU,MAEPC,GAAwBD,GAAWC,IAAyB,GAAU9Y,KAGpE6Y,CACT,CAqBwBE,CAAuBd,EAAYQ,EAAiB7F,GAAgByF,GAAiBJ,GAAcjI,GAAa,GACtI,IAAI1X,GAAKogB,EAAW9a,KAAOgb,EAActgB,GAAKqgB,EAAMrgB,EAChD/d,GAAKm+B,EAAW7a,IAAM+a,EAAcr+B,GAAKo+B,EAAMp+B,EAC/C8D,EAAQq6B,EAAWr6B,MAAQs6B,EAAMrgB,EACjC9Z,EAASk6B,EAAWl6B,OAASm6B,EAAMp+B,EACvC,GAAI09B,EAAY,CACd,MAAMpK,EAAM,GAAUoK,GAChBe,EAAYpG,GAAgB,GAAUA,GAAgB,GAAUA,GAAgBA,EACtF,IAAIqG,EAAgBpL,EAAIqL,aACxB,KAAOD,GAAiBrG,GAAgBoG,IAAcnL,GAAK,CACzD,MAAMsL,EAAcpG,GAASkG,GACvBG,EAAaH,EAAcf,wBAC3BlwB,EAAM,GAAiBixB,GACvBrb,EAAOwb,EAAWxb,MAAQqb,EAAcI,WAAa3B,WAAW1vB,EAAIsxB,cAAgBH,EAAY7gB,EAChGuF,EAAMub,EAAWvb,KAAOob,EAAcM,UAAY7B,WAAW1vB,EAAIwxB,aAAeL,EAAY5+B,EAClG+d,GAAK6gB,EAAY7gB,EACjB/d,GAAK4+B,EAAY5+B,EACjB8D,GAAS86B,EAAY7gB,EACrB9Z,GAAU26B,EAAY5+B,EACtB+d,GAAKsF,EACLrjB,GAAKsjB,EACLob,EAAgB,GAAUA,GAAeC,YAC3C,CACF,CACA,OAAO,GAAiB,CACtB76B,QACAG,SACA8Z,IACA/d,KAEJ,CA0CA,SAASk/B,GAAoBzZ,GAG3B,OAAOkY,GAAsB7M,GAAmBrL,IAAUpC,KAAOkP,GAAc9M,GAAS+M,UAC1F,CAiEA,SAAS2M,GAAkC1Z,EAAS2Z,EAAkBzH,GACpE,IAAIhB,EACJ,GAAyB,aAArByI,EACFzI,EA7CJ,SAAyBlR,EAASkS,GAChC,MAAMrE,EAAM,GAAU7N,GAChB4Z,EAAOvO,GAAmBrL,GAC1B8N,EAAiBD,EAAIC,eAC3B,IAAIzvB,EAAQu7B,EAAKv6B,YACbb,EAASo7B,EAAKC,aACdvhB,EAAI,EACJ/d,EAAI,EACR,GAAIuzB,EAAgB,CAClBzvB,EAAQyvB,EAAezvB,MACvBG,EAASsvB,EAAetvB,OACxB,MAAMs7B,EAAsB1N,OACvB0N,GAAuBA,GAAoC,UAAb5H,KACjD5Z,EAAIwV,EAAewK,WACnB/9B,EAAIuzB,EAAeyK,UAEvB,CACA,MAAO,CACLl6B,QACAG,SACA8Z,IACA/d,IAEJ,CAsBWw/B,CAAgB/Z,EAASkS,QAC3B,GAAyB,aAArByH,EACTzI,EAlEJ,SAAyBlR,GACvB,MAAM4Z,EAAOvO,GAAmBrL,GAC1Bga,EAASlN,GAAc9M,GACvBuN,EAAOvN,EAAQmL,cAAcoC,KAC7BlvB,EAAQ,GAAIu7B,EAAKx6B,YAAaw6B,EAAKv6B,YAAakuB,EAAKnuB,YAAamuB,EAAKluB,aACvEb,EAAS,GAAIo7B,EAAKK,aAAcL,EAAKC,aAActM,EAAK0M,aAAc1M,EAAKsM,cACjF,IAAIvhB,GAAK0hB,EAAOjN,WAAa0M,GAAoBzZ,GACjD,MAAMzlB,GAAKy/B,EAAOhN,UAIlB,MAHyC,QAArC,GAAiBO,GAAM9Y,YACzB6D,GAAK,GAAIshB,EAAKv6B,YAAakuB,EAAKluB,aAAehB,GAE1C,CACLA,QACAG,SACA8Z,IACA/d,IAEJ,CAiDW2/B,CAAgB7O,GAAmBrL,SACrC,GAAI,GAAU2Z,GACnBzI,EAvBJ,SAAoClR,EAASkS,GAC3C,MAAMwG,EAAaR,GAAsBlY,GAAS,EAAmB,UAAbkS,GAClDrU,EAAM6a,EAAW7a,IAAMmC,EAAQuZ,UAC/B3b,EAAO8a,EAAW9a,KAAOoC,EAAQqZ,WACjCV,EAAQ,GAAc3Y,GAAW+S,GAAS/S,GAAWgQ,GAAa,GAKxE,MAAO,CACL3xB,MALY2hB,EAAQ3gB,YAAcs5B,EAAMrgB,EAMxC9Z,OALawhB,EAAQ6Z,aAAelB,EAAMp+B,EAM1C+d,EALQsF,EAAO+a,EAAMrgB,EAMrB/d,EALQsjB,EAAM8a,EAAMp+B,EAOxB,CAQW4/B,CAA2BR,EAAkBzH,OAC/C,CACL,MAAM0G,EAAgBP,GAAiBrY,GACvCkR,EAAO,IACFyI,EACHrhB,EAAGqhB,EAAiBrhB,EAAIsgB,EAActgB,EACtC/d,EAAGo/B,EAAiBp/B,EAAIq+B,EAAcr+B,EAE1C,CACA,OAAO,GAAiB22B,EAC1B,CACA,SAASkJ,GAAyBpa,EAASqa,GACzC,MAAM16B,EAAawtB,GAAcnN,GACjC,QAAIrgB,IAAe06B,IAAa,GAAU16B,IAAektB,GAAsBltB,MAG9B,UAA1C,GAAiBA,GAAYge,UAAwByc,GAAyBz6B,EAAY06B,GACnG,CAoEA,SAASC,GAA8Bta,EAAS4S,EAAcV,GAC5D,MAAMqI,EAA0B,GAAc3H,GACxCtH,EAAkBD,GAAmBuH,GACrCiG,EAAuB,UAAb3G,EACVhB,EAAOgH,GAAsBlY,GAAS,EAAM6Y,EAASjG,GAC3D,IAAIoH,EAAS,CACXjN,WAAY,EACZC,UAAW,GAEb,MAAMwN,EAAUxK,GAAa,GAC7B,GAAIuK,IAA4BA,IAA4B1B,EAI1D,IAHkC,SAA9B9N,GAAY6H,IAA4BjH,GAAkBL,MAC5D0O,EAASlN,GAAc8F,IAErB2H,EAAyB,CAC3B,MAAME,EAAavC,GAAsBtF,GAAc,EAAMiG,EAASjG,GACtE4H,EAAQliB,EAAImiB,EAAWniB,EAAIsa,EAAayG,WACxCmB,EAAQjgC,EAAIkgC,EAAWlgC,EAAIq4B,EAAa2G,SAC1C,MAAWjO,IACTkP,EAAQliB,EAAImhB,GAAoBnO,IAGpC,MAAO,CACLhT,EAAG4Y,EAAKtT,KAAOoc,EAAOjN,WAAayN,EAAQliB,EAC3C/d,EAAG22B,EAAKrT,IAAMmc,EAAOhN,UAAYwN,EAAQjgC,EACzC8D,MAAO6yB,EAAK7yB,MACZG,OAAQ0yB,EAAK1yB,OAEjB,CAEA,SAASk8B,GAAoB1a,EAAS2a,GACpC,OAAK,GAAc3a,IAAmD,UAAvC,GAAiBA,GAASrC,SAGrDgd,EACKA,EAAS3a,GAEXA,EAAQ4S,aALN,IAMX,CAIA,SAASC,GAAgB7S,EAAS2a,GAChC,MAAMr8B,EAAS,GAAU0hB,GACzB,IAAK,GAAcA,GACjB,OAAO1hB,EAET,IAAIs0B,EAAe8H,GAAoB1a,EAAS2a,GAChD,KAAO/H,GAAgB3G,GAAe2G,IAA6D,WAA5C,GAAiBA,GAAcjV,UACpFiV,EAAe8H,GAAoB9H,EAAc+H,GAEnD,OAAI/H,IAA+C,SAA9B7H,GAAY6H,IAA0D,SAA9B7H,GAAY6H,IAAwE,WAA5C,GAAiBA,GAAcjV,WAA0BuO,GAAkB0G,IACvKt0B,EAEFs0B,GJ9UT,SAA4B5S,GAC1B,IAAI4a,EAAczN,GAAcnN,GAChC,KAAO,GAAc4a,KAAiB/N,GAAsB+N,IAAc,CACxE,GAAI1O,GAAkB0O,GACpB,OAAOA,EAEPA,EAAczN,GAAcyN,EAEhC,CACA,OAAO,IACT,CIoUyBC,CAAmB7a,IAAY1hB,CACxD,CAwBA,MAAMowB,GAAW,CACfuE,sDAzRF,SAA+D3jB,GAC7D,IAAI,KACF4hB,EAAI,aACJ0B,EAAY,SACZV,GACE5iB,EACJ,MAAMirB,EAA0B,GAAc3H,GACxCtH,EAAkBD,GAAmBuH,GAC3C,GAAIA,IAAiBtH,EACnB,OAAO4F,EAET,IAAI8I,EAAS,CACXjN,WAAY,EACZC,UAAW,GAET2L,EAAQ3I,GAAa,GACzB,MAAMwK,EAAUxK,GAAa,GAC7B,IAAIuK,IAA4BA,GAAwC,UAAbrI,MACvB,SAA9BnH,GAAY6H,IAA4BjH,GAAkBL,MAC5D0O,EAASlN,GAAc8F,IAErB,GAAcA,IAAe,CAC/B,MAAM6H,EAAavC,GAAsBtF,GACzC+F,EAAQ5F,GAASH,GACjB4H,EAAQliB,EAAImiB,EAAWniB,EAAIsa,EAAayG,WACxCmB,EAAQjgC,EAAIkgC,EAAWlgC,EAAIq4B,EAAa2G,SAC1C,CAEF,MAAO,CACLl7B,MAAO6yB,EAAK7yB,MAAQs6B,EAAMrgB,EAC1B9Z,OAAQ0yB,EAAK1yB,OAASm6B,EAAMp+B,EAC5B+d,EAAG4Y,EAAK5Y,EAAIqgB,EAAMrgB,EAAI0hB,EAAOjN,WAAa4L,EAAMrgB,EAAIkiB,EAAQliB,EAC5D/d,EAAG22B,EAAK32B,EAAIo+B,EAAMp+B,EAAIy/B,EAAOhN,UAAY2L,EAAMp+B,EAAIigC,EAAQjgC,EAE/D,EAwPE8wB,mBAAkB,GAClBoH,gBAhHF,SAAyBnjB,GACvB,IAAI,QACF0Q,EAAO,SACPmS,EAAQ,aACRC,EAAY,SACZF,GACE5iB,EACJ,MACMwrB,EAAoB,IADoB,sBAAb3I,EAxCnC,SAAqCnS,EAASlX,GAC5C,MAAMiyB,EAAejyB,EAAM3P,IAAI6mB,GAC/B,GAAI+a,EACF,OAAOA,EAET,IAAI1sB,EAASmf,GAAqBxN,GAAS3M,QAAO2nB,GAAM,GAAUA,IAA2B,SAApBjQ,GAAYiQ,KACjFC,EAAsC,KAC1C,MAAMC,EAAwD,UAAvC,GAAiBlb,GAASrC,SACjD,IAAIid,EAAcM,EAAiB/N,GAAcnN,GAAWA,EAG5D,KAAO,GAAU4a,KAAiB/N,GAAsB+N,IAAc,CACpE,MAAMO,EAAgB,GAAiBP,GACjCQ,EAA0BlP,GAAkB0O,GAC7CQ,GAAsD,UAA3BD,EAAcxd,WAC5Csd,EAAsC,OAEVC,GAAkBE,IAA4BH,GAAuCG,GAAsD,WAA3BD,EAAcxd,UAA2Bsd,GAAuC,CAAC,WAAY,SAASjP,SAASiP,EAAoCtd,WAAagO,GAAkBiP,KAAiBQ,GAA2BhB,GAAyBpa,EAAS4a,IAG5YvsB,EAASA,EAAOgF,QAAOgoB,GAAYA,IAAaT,IAGhDK,EAAsCE,EAExCP,EAAczN,GAAcyN,EAC9B,CAEA,OADA9xB,EAAM8b,IAAI5E,EAAS3R,GACZA,CACT,CAWsEitB,CAA4Btb,EAAStf,KAAK66B,IAAM,GAAGl+B,OAAO80B,GACtEC,GAClDoJ,EAAwBV,EAAkB,GAC1CW,EAAeX,EAAkB99B,QAAO,CAAC0+B,EAAS/B,KACtD,MAAMzI,EAAOwI,GAAkC1Z,EAAS2Z,EAAkBzH,GAK1E,OAJAwJ,EAAQ7d,IAAM,GAAIqT,EAAKrT,IAAK6d,EAAQ7d,KACpC6d,EAAQxL,MAAQ,GAAIgB,EAAKhB,MAAOwL,EAAQxL,OACxCwL,EAAQvL,OAAS,GAAIe,EAAKf,OAAQuL,EAAQvL,QAC1CuL,EAAQ9d,KAAO,GAAIsT,EAAKtT,KAAM8d,EAAQ9d,MAC/B8d,CAAO,GACbhC,GAAkC1Z,EAASwb,EAAuBtJ,IACrE,MAAO,CACL7zB,MAAOo9B,EAAavL,MAAQuL,EAAa7d,KACzCpf,OAAQi9B,EAAatL,OAASsL,EAAa5d,IAC3CvF,EAAGmjB,EAAa7d,KAChBrjB,EAAGkhC,EAAa5d,IAEpB,EAyFEgV,mBACA8I,gBA3BsBv9B,eAAgBkR,GACtC,IAAI,UACF+hB,EAAS,SACTC,EAAQ,SACRY,GACE5iB,EACJ,MAAMssB,EAAoBl7B,KAAKmyB,iBAAmBA,GAC5CgJ,EAAkBn7B,KAAK0yB,cAC7B,MAAO,CACL/B,UAAWiJ,GAA8BjJ,QAAiBuK,EAAkBtK,GAAWY,GACvFZ,SAAU,CACRhZ,EAAG,EACH/d,EAAG,WACOshC,EAAgBvK,IAGhC,EAYEwK,eA1PF,SAAwB9b,GACtB,OAAOlS,MAAMiuB,KAAK/b,EAAQ8b,iBAC5B,EAyPE1I,cA1FF,SAAuBpT,GACrB,OAAOyX,GAAiBzX,EAC1B,EAyFE+S,YACAL,UAAS,GACT2C,MAdF,SAAerV,GACb,MAA+C,QAAxC,GAAiBA,GAASvL,SACnC,GAiGA,SAASunB,GAAW3K,EAAWC,EAAU2K,EAAQltB,QAC/B,IAAZA,IACFA,EAAU,CAAC,GAEb,MAAM,eACJmtB,GAAiB,EAAI,eACrBC,GAAiB,EAAI,cACrBC,EAA0C,mBAAnBC,eAA6B,YACpDC,EAA8C,mBAAzBC,qBAAmC,eACxDC,GAAiB,GACfztB,EACE0tB,EAAczE,GAAc3G,GAC5BqL,EAAYR,GAAkBC,EAAiB,IAAKM,EAAcjP,GAAqBiP,GAAe,MAAQjP,GAAqB8D,IAAa,GACtJoL,EAAUlhC,SAAQ6/B,IAChBa,GAAkBb,EAAS18B,iBAAiB,SAAUs9B,EAAQ,CAC5DU,SAAS,IAEXR,GAAkBd,EAAS18B,iBAAiB,SAAUs9B,EAAO,IAE/D,MAAMW,EAAYH,GAAeH,EApGnC,SAAqBtc,EAAS6c,GAC5B,IACIC,EADAC,EAAK,KAET,MAAMllC,EAAOwzB,GAAmBrL,GAChC,SAASgd,IACPrhC,aAAamhC,GACbC,GAAMA,EAAGE,aACTF,EAAK,IACP,CA8DA,OA7DA,SAASG,EAAQC,EAAMC,QACR,IAATD,IACFA,GAAO,QAES,IAAdC,IACFA,EAAY,GAEdJ,IACA,MAAM,KACJpf,EAAI,IACJC,EAAG,MACHxf,EAAK,OACLG,GACEwhB,EAAQkY,wBAIZ,GAHKiF,GACHN,KAEGx+B,IAAUG,EACb,OAEF,MAKMuQ,EAAU,CACdsuB,YANe,GAAMxf,GAIQ,OAHZ,GAAMhmB,EAAKwH,aAAeue,EAAOvf,IAGC,OAFjC,GAAMxG,EAAKgiC,cAAgBhc,EAAMrf,IAEuB,OAD1D,GAAMof,GACyE,KAG/Fwf,UAAW,GAAI,EAAG,GAAI,EAAGA,KAAe,GAE1C,IAAIE,GAAgB,EACpB,SAASC,EAAcC,GACrB,MAAMC,EAAQD,EAAQ,GAAGE,kBACzB,GAAID,IAAUL,EAAW,CACvB,IAAKE,EACH,OAAOJ,IAEJO,EAKHP,GAAQ,EAAOO,GAJfX,EAAYphC,YAAW,KACrBwhC,GAAQ,EAAO,KAAK,GACnB,IAIP,CACAI,GAAgB,CAClB,CAIA,IACEP,EAAK,IAAIR,qBAAqBgB,EAAe,IACxCxuB,EAEHlX,KAAMA,EAAKszB,eAEf,CAAE,MAAOzyB,GACPqkC,EAAK,IAAIR,qBAAqBgB,EAAexuB,EAC/C,CACAguB,EAAGY,QAAQ3d,EACb,CACAkd,EAAQ,GACDF,CACT,CA6BiDY,CAAYnB,EAAaR,GAAU,KAClF,IAqBI4B,EArBAC,GAAkB,EAClBC,EAAiB,KACjB3B,IACF2B,EAAiB,IAAI1B,gBAAe/sB,IAClC,IAAK0uB,GAAc1uB,EACf0uB,GAAcA,EAAWj/B,SAAW09B,GAAesB,IAGrDA,EAAeE,UAAU3M,GACzB4M,qBAAqBJ,GACrBA,EAAiBK,uBAAsB,KACrCJ,GAAkBA,EAAeJ,QAAQrM,EAAS,KAGtD2K,GAAQ,IAENQ,IAAgBD,GAClBuB,EAAeJ,QAAQlB,GAEzBsB,EAAeJ,QAAQrM,IAGzB,IAAI8M,EAAc5B,EAAiBtE,GAAsB7G,GAAa,KAatE,OAZImL,GAGJ,SAAS6B,IACP,MAAMC,EAAcpG,GAAsB7G,IACtC+M,GAAgBE,EAAYhmB,IAAM8lB,EAAY9lB,GAAKgmB,EAAY/jC,IAAM6jC,EAAY7jC,GAAK+jC,EAAYjgC,QAAU+/B,EAAY//B,OAASigC,EAAY9/B,SAAW4/B,EAAY5/B,QACtKy9B,IAEFmC,EAAcE,EACdT,EAAUM,sBAAsBE,EAClC,CATEA,GAUFpC,IACO,KACLS,EAAUlhC,SAAQ6/B,IAChBa,GAAkBb,EAASz8B,oBAAoB,SAAUq9B,GACzDE,GAAkBd,EAASz8B,oBAAoB,SAAUq9B,EAAO,IAElEW,GAAaA,IACbmB,GAAkBA,EAAed,aACjCc,EAAiB,KACbvB,GACF0B,qBAAqBL,EACvB,CAEJ,CAOA,MAAM,GAAkB,CAACxM,EAAWC,EAAUviB,KAI5C,MAAMjG,EAAQ,IAAIy1B,IACZC,EAAgB,CACpB9P,eACG3f,GAEC0vB,EAAoB,IACrBD,EAAc9P,SACjB6M,GAAIzyB,GAEN,MD/gBsB1K,OAAOizB,EAAWC,EAAUoN,KAClD,MAAM,UACJjO,EAAY,SAAQ,SACpByB,EAAW,WAAU,WACrByM,EAAa,GAAE,SACfjQ,GACEgQ,EACEE,EAAkBD,EAAWtrB,OAAOgM,SACpC+R,QAA+B,MAAlB1C,EAAS2G,WAAgB,EAAS3G,EAAS2G,MAAM/D,IACpE,IAAIU,QAActD,EAASiN,gBAAgB,CACzCtK,YACAC,WACAY,cAEE,EACF5Z,EAAC,EACD/d,GACE42B,GAA2Ba,EAAOvB,EAAWW,GAC7CyN,EAAoBpO,EACpB+D,EAAiB,CAAC,EAClBsK,EAAa,EACjB,IAAK,IAAIrjC,EAAI,EAAGA,EAAImjC,EAAgBnhC,OAAQhC,IAAK,CAC/C,MAAM,KACJ+N,EAAI,GACJX,GACE+1B,EAAgBnjC,IAElB6c,EAAGymB,EACHxkC,EAAGykC,EAAK,KACR9gC,EAAI,MACJu4B,SACQ5tB,EAAG,CACXyP,IACA/d,IACAk6B,iBAAkBhE,EAClBA,UAAWoO,EACX3M,WACAsC,iBACAxC,QACAtD,WACAuD,SAAU,CACRZ,YACAC,cAGJhZ,EAAa,MAATymB,EAAgBA,EAAQzmB,EAC5B/d,EAAa,MAATykC,EAAgBA,EAAQzkC,EAC5Bi6B,EAAiB,IACZA,EACH,CAAChrB,GAAO,IACHgrB,EAAehrB,MACftL,IAGHu4B,GAASqI,GAAc,KACzBA,IACqB,iBAAVrI,IACLA,EAAMhG,YACRoO,EAAoBpI,EAAMhG,WAExBgG,EAAMzE,QACRA,GAAwB,IAAhByE,EAAMzE,YAAuBtD,EAASiN,gBAAgB,CAC5DtK,YACAC,WACAY,aACGuE,EAAMzE,SAGX1Z,IACA/d,KACE42B,GAA2Ba,EAAO6M,EAAmBzN,KAE3D31B,GAAK,EAGT,CACA,MAAO,CACL6c,IACA/d,IACAk2B,UAAWoO,EACX3M,WACAsC,iBACD,EC6bMyK,CAAkB5N,EAAWC,EAAU,IACzCkN,EACH9P,SAAU+P,GACV,E,cCziBJ,IAAIllB,GAA4B,oBAAbva,SAA2B,EAAA8U,gBAAkB,EAAApV,UAIhE,SAAS,GAAUtD,EAAGT,GACpB,GAAIS,IAAMT,EACR,OAAO,EAET,UAAWS,UAAaT,EACtB,OAAO,EAET,GAAiB,mBAANS,GAAoBA,EAAEsW,aAAe/W,EAAE+W,WAChD,OAAO,EAET,IAAIjU,EAAQhC,EAAGsB,EACf,GAAI3B,GAAKT,GAAiB,iBAALS,EAAe,CAClC,GAAI0S,MAAMC,QAAQ3S,GAAI,CAEpB,GADAqC,EAASrC,EAAEqC,OACPA,GAAU9C,EAAE8C,OAAQ,OAAO,EAC/B,IAAKhC,EAAIgC,EAAgB,GAARhC,KACf,IAAK,GAAUL,EAAEK,GAAId,EAAEc,IACrB,OAAO,EAGX,OAAO,CACT,CAGA,GAFAsB,EAAO/D,OAAO+D,KAAK3B,GACnBqC,EAASV,EAAKU,OACVA,IAAWzE,OAAO+D,KAAKpC,GAAG8C,OAC5B,OAAO,EAET,IAAKhC,EAAIgC,EAAgB,GAARhC,KACf,IAAK,CAAC,EAAEpC,eAAeC,KAAKqB,EAAGoC,EAAKtB,IAClC,OAAO,EAGX,IAAKA,EAAIgC,EAAgB,GAARhC,KAAY,CAC3B,MAAMwF,EAAMlE,EAAKtB,GACjB,IAAY,WAARwF,IAAoB7F,EAAE8jC,YAGrB,GAAU9jC,EAAE6F,GAAMtG,EAAEsG,IACvB,OAAO,CAEX,CACA,OAAO,CACT,CACA,OAAO7F,GAAMA,GAAKT,GAAMA,CAC1B,CAEA,SAASwkC,GAAOnf,GACd,GAAsB,oBAAX1hB,OACT,OAAO,EAGT,OADY0hB,EAAQmL,cAAcC,aAAe9sB,QACtC8gC,kBAAoB,CACjC,CAEA,SAASC,GAAWrf,EAASvmB,GAC3B,MAAM6lC,EAAMH,GAAOnf,GACnB,OAAOpjB,KAAKmzB,MAAMt2B,EAAQ6lC,GAAOA,CACnC,CAEA,SAASC,GAAa9lC,GACpB,MAAMkX,EAAM,SAAalX,GAIzB,OAHA8f,IAAM,KACJ5I,EAAI9R,QAAUpF,CAAK,IAEdkX,CACT,CCvGA,IAAI6uB,GAAqB,CAAC,qBAAsB,sBAAuB,wBAAyB,uBAAwB,sBAAuB,oCAAqC,+BAAgC,+BAAgC,gEAAiE,6CAA8C,wBAC/VC,GAAmCD,GAAmBvQ,KAAK,KAC3DyQ,GAA+B,oBAAZlU,QACnBmE,GAAU+P,GAAY,WAAa,EAAIlU,QAAQpyB,UAAUu2B,SAAWnE,QAAQpyB,UAAUumC,mBAAqBnU,QAAQpyB,UAAUwmC,sBAC7HtR,IAAeoR,IAAalU,QAAQpyB,UAAUk1B,YAAc,SAAUtO,GACxE,IAAI6f,EACJ,OAAO7f,SAAmG,QAAhD6f,EAAuB7f,EAAQsO,mBAAkD,IAAzBuR,OAAlE,EAA6GA,EAAqBvmC,KAAK0mB,EACzL,EAAI,SAAUA,GACZ,OAAOA,aAAyC,EAASA,EAAQmL,aACnE,EAUI2U,GAAU,SAASA,EAAQjgB,EAAMkgB,GACnC,IAAIC,OACW,IAAXD,IACFA,GAAS,GAKX,IAAIE,EAAWpgB,SAAyF,QAA5CmgB,EAAqBngB,EAAKqgB,oBAAiD,IAAvBF,OAA9D,EAAuGA,EAAmB1mC,KAAKumB,EAAM,SAUvL,MATyB,KAAbogB,GAAgC,SAAbA,GAOTF,GAAUlgB,GAAQigB,EAAQjgB,EAAKlgB,WAGvD,EAsBIwgC,GAAgB,SAAuBnF,EAAIoF,EAAkB/sB,GAG/D,GAAIysB,GAAQ9E,GACV,MAAO,GAET,IAAIqF,EAAavyB,MAAM1U,UAAUiX,MAAM1H,MAAMqyB,EAAGsF,iBAAiBb,KAKjE,OAJIW,GAAoBzQ,GAAQr2B,KAAK0hC,EAAIyE,KACvCY,EAAWjjC,QAAQ49B,GAErBqF,EAAaA,EAAWhtB,OAAOA,EAEjC,EAoCIktB,GAA2B,SAASA,EAAyBtO,EAAUmO,EAAkBrxB,GAG3F,IAFA,IAAIsxB,EAAa,GACbG,EAAkB1yB,MAAMiuB,KAAK9J,GAC1BuO,EAAgB/iC,QAAQ,CAC7B,IAAIuiB,EAAUwgB,EAAgBrJ,QAC9B,IAAI2I,GAAQ9f,GAAS,GAKrB,GAAwB,SAApBA,EAAQygB,QAAoB,CAE9B,IAAIC,EAAW1gB,EAAQ2gB,mBAEnBC,EAAmBL,EADTG,EAASjjC,OAASijC,EAAW1gB,EAAQxN,UACM,EAAMzD,GAC3DA,EAAQ8xB,QACVR,EAAWnjC,KAAKyL,MAAM03B,EAAYO,GAElCP,EAAWnjC,KAAK,CACd4jC,YAAa9gB,EACbqgB,WAAYO,GAGlB,KAAO,CAEgBjR,GAAQr2B,KAAK0mB,EAASyf,KACrB1wB,EAAQsE,OAAO2M,KAAaogB,IAAqBnO,EAASjG,SAAShM,KACvFqgB,EAAWnjC,KAAK8iB,GAIlB,IAAImO,EAAanO,EAAQmO,YAEQ,mBAA1Bpf,EAAQgyB,eAAgChyB,EAAQgyB,cAAc/gB,GAKjEghB,GAAmBlB,GAAQ3R,GAAY,MAAYpf,EAAQkyB,kBAAoBlyB,EAAQkyB,iBAAiBjhB,IAC5G,GAAImO,GAAc6S,EAAiB,CAOjC,IAAIE,EAAoBX,GAAwC,IAAfpS,EAAsBnO,EAAQxN,SAAW2b,EAAW3b,UAAU,EAAMzD,GACjHA,EAAQ8xB,QACVR,EAAWnjC,KAAKyL,MAAM03B,EAAYa,GAElCb,EAAWnjC,KAAK,CACd4jC,YAAa9gB,EACbqgB,WAAYa,GAGlB,MAGEV,EAAgBpjC,QAAQuL,MAAM63B,EAAiBxgB,EAAQxN,SAE3D,CACF,CACA,OAAO6tB,CACT,EACIc,GAAc,SAAqBthB,EAAMuhB,GAC3C,OAAIvhB,EAAKvL,SAAW,IAYb8sB,GAAW,0BAA0Bl4B,KAAK2W,EAAK4gB,UA5IhC,SAA2B5gB,GACjD,IAAIwhB,EAIAC,EAAWzhB,SAA0F,QAA7CwhB,EAAsBxhB,EAAKqgB,oBAAkD,IAAxBmB,OAA/D,EAAyGA,EAAoB/nC,KAAKumB,EAAM,mBAC1L,MAAoB,KAAbyhB,GAAgC,SAAbA,CAC5B,CAqIoEC,CAAkB1hB,KAAUnjB,MAAM8kC,SAAS3hB,EAAKqgB,aAAa,YAAa,KACjI,EAGJrgB,EAAKvL,QACd,EACImtB,GAAuB,SAA8BrmC,EAAGT,GAC1D,OAAOS,EAAEkZ,WAAa3Z,EAAE2Z,SAAWlZ,EAAEsmC,cAAgB/mC,EAAE+mC,cAAgBtmC,EAAEkZ,SAAW3Z,EAAE2Z,QACxF,EACIqtB,GAAU,SAAiB9hB,GAC7B,MAAwB,UAAjBA,EAAK4gB,OACd,EA2CImB,GAAqB,SAA4B/hB,GACnD,OAJY,SAAiBA,GAC7B,OAAO8hB,GAAQ9hB,IAAuB,UAAdA,EAAK3F,IAC/B,CAES2nB,CAAQhiB,KA3BK,SAAyBA,GAC7C,IAAKA,EAAKrW,KACR,OAAO,EAET,IAIIs4B,EAJAC,EAAaliB,EAAKmiB,MAAQ1T,GAAYzO,GACtCoiB,EAAc,SAAqBz4B,GACrC,OAAOu4B,EAAWzB,iBAAiB,6BAA+B92B,EAAO,KAC3E,EAEA,GAAsB,oBAAXlL,aAAgD,IAAfA,OAAOquB,KAAoD,mBAAtBruB,OAAOquB,IAAIuV,OAC1FJ,EAAWG,EAAY3jC,OAAOquB,IAAIuV,OAAOriB,EAAKrW,YAE9C,IACEs4B,EAAWG,EAAYpiB,EAAKrW,KAC9B,CAAE,MAAO24B,GAGP,OADAC,QAAQnkC,MAAM,2IAA4IkkC,EAAIta,UACvJ,CACT,CAEF,IAAIlI,EA3BgB,SAAyB0iB,EAAOL,GACpD,IAAK,IAAIvmC,EAAI,EAAGA,EAAI4mC,EAAM5kC,OAAQhC,IAChC,GAAI4mC,EAAM5mC,GAAGkkB,SAAW0iB,EAAM5mC,GAAGumC,OAASA,EACxC,OAAOK,EAAM5mC,EAGnB,CAqBgB6mC,CAAgBR,EAAUjiB,EAAKmiB,MAC7C,OAAQriB,GAAWA,IAAYE,CACjC,CAK2B0iB,CAAgB1iB,EAC3C,EAiDI2iB,GAAa,SAAoB3iB,GACnC,IAAI4iB,EAAwB5iB,EAAKqY,wBAC/B75B,EAAQokC,EAAsBpkC,MAC9BG,EAASikC,EAAsBjkC,OACjC,OAAiB,IAAVH,GAA0B,IAAXG,CACxB,EACIkkC,GAAW,SAAkB7iB,EAAMvQ,GACrC,IAAIqzB,EAAerzB,EAAKqzB,aACtB5B,EAAgBzxB,EAAKyxB,cAMvB,GAA0C,WAAtCzhC,iBAAiBugB,GAAM+iB,WACzB,OAAO,EAET,IACIC,EADkBlT,GAAQr2B,KAAKumB,EAAM,iCACAA,EAAKijB,cAAgBjjB,EAC9D,GAAI8P,GAAQr2B,KAAKupC,EAAkB,yBACjC,OAAO,EAET,GAAKF,GAAiC,SAAjBA,GAA4C,gBAAjBA,GAgEzC,GAAqB,kBAAjBA,EAMT,OAAOH,GAAW3iB,OAtE4D,CAC9E,GAA6B,mBAAlBkhB,EAA8B,CAIvC,IADA,IAAIgC,EAAeljB,EACZA,GAAM,CACX,IAAIijB,EAAgBjjB,EAAKijB,cACrBzU,EAAWC,GAAYzO,GAC3B,GAAIijB,IAAkBA,EAAc3U,aAA+C,IAAjC4S,EAAc+B,GAI9D,OAAON,GAAW3iB,GAGlBA,EAFSA,EAAKuN,aAEPvN,EAAKuN,aACF0V,GAAiBzU,IAAaxO,EAAKsL,cAKtC2X,EAHAzU,EAAShB,IAKpB,CACAxN,EAAOkjB,CACT,CAWA,GAxGiB,SAAwBljB,GAC3C,IAAImjB,EA+BEC,EAAeC,EAAuBhY,EAPxCiY,EAAWtjB,GAAQyO,GAAYzO,GAC/BujB,EAA0C,QAA1BJ,EAAYG,SAAoC,IAAdH,OAAuB,EAASA,EAAU3V,KAI5FgW,GAAW,EACf,GAAIF,GAAYA,IAAatjB,EAG3B,IADAwjB,KAAiD,QAAlCJ,EAAgBG,SAA4C,IAAlBH,GAAsF,QAAzDC,EAAwBD,EAAc9X,qBAAqD,IAA1B+X,GAAoCA,EAAsBpkC,SAASskC,IAAiBvjB,SAAmF,QAA9CqL,EAAsBrL,EAAKsL,qBAAmD,IAAxBD,GAAkCA,EAAoBpsB,SAAS+gB,KAC7XwjB,GAAYD,GAAc,CAChC,IAAIE,EAAYC,EAAgBC,EAMhCH,IAAkD,QAAnCE,EADfH,EAA2C,QAA3BE,EADhBH,EAAW7U,GAAY8U,UAC2C,IAAfE,OAAwB,EAASA,EAAWjW,YAClB,IAAnBkW,GAAwF,QAA1DC,EAAwBD,EAAepY,qBAAqD,IAA1BqY,IAAoCA,EAAsB1kC,SAASskC,GAC/N,CAEF,OAAOC,CACT,CA2DQI,CAAe5jB,GAKjB,OAAQA,EAAKic,iBAAiBr+B,OAmBhC,GAAqB,gBAAjBklC,EACF,OAAO,CAGX,CAWA,OAAO,CACT,EAgCIe,GAAkC,SAAyC30B,EAAS8Q,GACtF,QAAIA,EAAKzC,UAIT0iB,GAAQjgB,IApOU,SAAuBA,GACzC,OAAO8hB,GAAQ9hB,IAAuB,WAAdA,EAAK3F,IAC/B,CAkOmBypB,CAAc9jB,IAAS6iB,GAAS7iB,EAAM9Q,IAjO9B,SAA8B8Q,GAIvD,MAHyB,YAAjBA,EAAK4gB,SAAyB3yB,MAAM1U,UAAUiX,MAAM1H,MAAMkX,EAAKrN,UAAU+Q,MAAK,SAAUrP,GAC9F,MAAyB,YAAlBA,EAAMusB,OACf,GAEF,CA8NEmD,CAAqB/jB,IAlCM,SAAgCA,GAC3D,GAAI,mCAAmC3W,KAAK2W,EAAK4gB,SAG/C,IAFA,IAAI9gC,EAAakgB,EAAKijB,cAEfnjC,GAAY,CACjB,GAA2B,aAAvBA,EAAW8gC,SAA0B9gC,EAAWyd,SAAU,CAE5D,IAAK,IAAI3hB,EAAI,EAAGA,EAAIkE,EAAW6S,SAAS/U,OAAQhC,IAAK,CACnD,IAAIyY,EAAQvU,EAAW6S,SAASkY,KAAKjvB,GAErC,GAAsB,WAAlByY,EAAMusB,QAGR,QAAO9Q,GAAQr2B,KAAKqG,EAAY,0BAAkCuU,EAAMpV,SAAS+gB,EAErF,CAEA,OAAO,CACT,CACAlgB,EAAaA,EAAWmjC,aAC1B,CAKF,OAAO,CACT,CAQgCe,CAAuBhkB,GAIvD,EACIikB,GAAiC,SAAwC/0B,EAAS8Q,GACpF,QAAI+hB,GAAmB/hB,IAASshB,GAAYthB,GAAQ,IAAM6jB,GAAgC30B,EAAS8Q,GAIrG,EACIkkB,GAA4B,SAAmCC,GACjE,IAAI1vB,EAAWktB,SAASwC,EAAe9D,aAAa,YAAa,IACjE,SAAIxjC,MAAM4X,IAAaA,GAAY,EAMrC,EAMI2vB,GAAc,SAASA,EAAY5D,GACrC,IAAI6D,EAAmB,GACnBC,EAAmB,GAkBvB,OAjBA9D,EAAW7kC,SAAQ,SAAUkvB,EAAMjvB,GACjC,IAAI2lC,IAAY1W,EAAKoW,YACjB9gB,EAAUohB,EAAU1W,EAAKoW,YAAcpW,EACvC0Z,EAAoBjD,GAAYnhB,EAASohB,GACzCnP,EAAWmP,EAAU6C,EAAYvZ,EAAK2V,YAAcrgB,EAC9B,IAAtBokB,EACFhD,EAAU8C,EAAiBhnC,KAAKyL,MAAMu7B,EAAkBjS,GAAYiS,EAAiBhnC,KAAK8iB,GAE1FmkB,EAAiBjnC,KAAK,CACpBwkC,cAAejmC,EACf6Y,SAAU8vB,EACV1Z,KAAMA,EACN0W,QAASA,EACTiD,QAASpS,GAGf,IACOkS,EAAiBxN,KAAK8K,IAAsBzkC,QAAO,SAAU65B,EAAKyN,GAEvE,OADAA,EAASlD,QAAUvK,EAAI35B,KAAKyL,MAAMkuB,EAAKyN,EAASD,SAAWxN,EAAI35B,KAAKonC,EAASD,SACtExN,CACT,GAAG,IAAIx5B,OAAO6mC,EAChB,EACIK,GAAW,SAAkBvJ,EAAIjsB,GAEnC,IAAIsxB,EAWJ,OATEA,GAHFtxB,EAAUA,GAAW,CAAC,GAEVgyB,cACGR,GAAyB,CAACvF,GAAKjsB,EAAQqxB,iBAAkB,CACpE/sB,OAAQywB,GAA+Bt7B,KAAK,KAAMuG,GAClD8xB,SAAS,EACTE,cAAehyB,EAAQgyB,cACvBE,iBAAkB8C,KAGP5D,GAAcnF,EAAIjsB,EAAQqxB,iBAAkB0D,GAA+Bt7B,KAAK,KAAMuG,IAE9Fk1B,GAAY5D,EACrB,ECteA,SAASmE,GAAaC,GACpB,OAAO,WAAc,IACfA,EAAKrO,OAAMzlB,GAAc,MAAPA,IACb,KAEFlX,IACLgrC,EAAKjpC,SAAQmV,IACQ,mBAARA,EACTA,EAAIlX,GACY,MAAPkX,IACTA,EAAI9R,QAAUpF,EAChB,GACA,GAGHgrC,EACL,CAEA,MAAMC,GAAW,UACXC,GAAa,YACbC,GAAa,YACbC,GAAc,aAmKpB,IAAIC,GAAQ,EACZ,SAASC,GAAa/J,EAAIjsB,QACR,IAAZA,IACFA,EAAU,CAAC,GAEb,MAAM,cACJi2B,GAAgB,EAAK,eACrBC,GAAiB,EAAI,KACrBC,GAAO,GACLn2B,EACJk2B,GAAkB/G,qBAAqB4G,IACvC,MAAMvzB,EAAO,IAAY,MAANypB,OAAa,EAASA,EAAGtT,MAAM,CAChDsd,kBAEEE,EACF3zB,IAEAuzB,GAAQ3G,sBAAsB5sB,EAElC,CAEA,IAAI,GAA4B,oBAAbvS,SAA2B,EAAA8U,gBAAkB,EAAApV,UA6HhE,MAIMymC,GAAiB,CAACP,GAAYC,IAC9BO,GAAe,CAACV,GAAUC,IA8HhC,SAAS,KAYP,OAXA,GAAW3rC,OAAOuP,OAASvP,OAAOuP,OAAOC,OAAS,SAAUzJ,GAC1D,IAAK,IAAItD,EAAI,EAAGA,EAAIgN,UAAUhL,OAAQhC,IAAK,CACzC,IAAIiN,EAASD,UAAUhN,GACvB,IAAK,IAAIwF,KAAOyH,EACV1P,OAAOI,UAAUC,eAAeC,KAAKoP,EAAQzH,KAC/ClC,EAAOkC,GAAOyH,EAAOzH,GAG3B,CACA,OAAOlC,CACT,EACO,GAAS4J,MAAMjI,KAAM+H,UAC9B,CAEA,IAAI48B,IAAwB,EACxBC,GAAQ,EACZ,MAAMC,GAAQ,IAAM,eAAiBD,KAkBrC,MAQM/lB,GARa,EAAmB,QAAQ7N,aAjB9C,WACE,MAAOyB,EAAIqyB,GAAS,YAAe,IAAMH,GAAwBE,UAAUrlC,IAY3E,OAXA,IAAM,KACM,MAANiT,GACFqyB,EAAMD,KACR,GAEC,IACH,aAAgB,KACTF,KACHA,IAAwB,EAC1B,GACC,IACIlyB,CACT,EAiBMsyB,GAA6B,cAAiB,SAAuBn2B,EAAMqB,GAC/E,IACE+0B,SAAS,UACPjV,EACAwB,UAAU,SACRX,GAEFkD,gBAAgB,MACdtB,IAEH,MACD70B,EAAQ,GAAE,OACVG,EAAS,EAAC,UACVmnC,EAAY,EAAC,YACbl5B,EAAc,EAAC,aACfm5B,EAAY,OACZtvB,EAAM,EACN1d,EACA6G,OAAO,UACL4sB,KACGwZ,GACD,CAAC,KACFhyB,GACDvE,EAMJ,MAAMw2B,EAAavmB,KACnB,IAAK+R,EACH,OAAO,KAKT7kB,GAAe,EACf,MAAMs5B,EAAkBt5B,EAAc,EAChCu5B,EAAO3nC,EAAQ,GAAKsnC,GAAa,EAAI,GACrCM,EAAOznC,EAAS,EAAImnC,EAAY,GAC/B5U,EAAMF,GAAaJ,EAAUtf,MAAM,KACpCkkB,EAAQ3G,GAAS2G,MAAM/D,GACvB4U,IAAkBttC,EAClButC,EAA0B,QAATpV,GAA2B,WAATA,EACnCqV,EAAcR,GAA8B,QAAd/U,EAAsB,SAAW,MACrE,IAAIwV,EAAcT,GAA8B,QAAd/U,EAAsB,QAAU,OAC9D+U,GAAgBvQ,IAClBgR,EAA4B,QAAdxV,EAAsB,OAAS,SAE/C,MAAMyV,EAA+C,OAA5B,MAATpT,OAAgB,EAASA,EAAM5a,GAAastB,GAAgB1S,EAAM5a,EAAI,GAChFiuB,EAA+C,OAA5B,MAATrT,OAAgB,EAASA,EAAM34B,GAAaqrC,GAAgB1S,EAAM34B,EAAI,GAChFisC,EAAS5tC,GAAK,SAAiByF,EAAU,MAAQA,EAAQ2nC,GAAQ,KAAOxnC,EAASynC,GAAU,KAAO5nC,EAAQ,EAAI,IAAMG,EAAS,IAAMwnC,EAAO,KAAOxnC,EAASynC,GAAS,KACnKQ,EAAW,CACf5oB,IAAKqoB,EAAgB,iBAAmB,GACxCtoB,KAAMsoB,EAAgB,gBAAkB,iBACxC/V,OAAQ+V,EAAgB,GAAK,iBAC7BhW,MAAOgW,EAAgB,iBAAmB,iBAC1CnV,GACF,OAAoB,gBAAoB,MAAO,GAAS,CAAC,EAAGld,EAAM,CAChE,eAAe,EACflD,IAAKA,EACLtS,MAAO6nC,EAAgB7nC,EAAQA,EAAQoO,EACvCjO,OAAQH,EACRwX,QAAS,OAASxX,EAAQ,KAAOG,EAASH,EAAQG,EAASH,GAC3DoB,MAAO,CACLke,SAAU,WACV+oB,cAAe,OACf,CAACL,GAAcC,EACf,CAACF,GAAcG,EACf,CAACxV,GAAOoV,GAAkBD,EAAgB,OAAS,eAAiBz5B,EAAc,EAAI,MACtF4f,UAAW,GAAKoa,GAAyB,MAAbpa,EAAoBA,EAAY,OACzDwZ,KAEHp5B,EAAc,GAAkB,gBAAoB,OAAQ,CAC9DqM,SAAU,QAAUgtB,EAAa,IACjClwB,KAAM,OACNU,OAAQA,EAGR7J,YAAaA,GAAe7T,EAAI,EAAI,GACpCA,EAAG4tC,IACY,gBAAoB,OAAQ,CAC3ClwB,OAAQ7J,IAAgB7T,EAAIib,EAAK+B,KAAO,OACxChd,EAAG4tC,IACY,gBAAoB,WAAY,CAC/CrzB,GAAI2yB,GACU,gBAAoB,OAAQ,CAC1CxtB,GAAIytB,EACJxrC,EAAGwrC,GAAmBG,GAAiB,EAAI,GAC3C7nC,MAAOA,EAAQoO,EACfjO,OAAQH,KAEZ,IAEA,SAASsoC,KACP,MAAM1yB,EAAM,IAAIsqB,IAChB,MAAO,CACLqI,KAAKtmB,EAAOpiB,GACV,IAAI2oC,EAC2B,OAA9BA,EAAW5yB,EAAI9a,IAAImnB,KAA2BumB,EAASrrC,SAAQsrC,GAAWA,EAAQ5oC,IACrF,EACA6oC,GAAGzmB,EAAO0mB,GACR/yB,EAAI2Q,IAAItE,EAAO,IAAKrM,EAAI9a,IAAImnB,IAAU,GAAK0mB,GAC7C,EACAC,IAAI3mB,EAAO0mB,GACT,IAAIE,EACJjzB,EAAI2Q,IAAItE,GAAwC,OAA/B4mB,EAAYjzB,EAAI9a,IAAImnB,SAAkB,EAAS4mB,EAAU7zB,QAAO9X,GAAKA,IAAMyrC,MAAc,GAC5G,EAEJ,CAEA,MAAMG,GAAmC,gBAAoB,MACvDC,GAAmC,gBAAoB,MACvDC,GAA0B,KAC9B,IAAIC,EACJ,OAAuE,OAA9DA,EAAoB,aAAiBH,UAAgC,EAASG,EAAkBn0B,KAAO,IAAI,EAEhHo0B,GAAkB,IAAM,aAAiBH,IAqE/C,SAASI,GAAgBh+B,GACvB,MAAO,oBAAsBA,CAC/B,CAEA,SAAS,GAAa/P,GACpB,MAAMkX,GAAM,IAAAjR,QAAOjG,GAInB,OAHA,IAAM,KACJkX,EAAI9R,QAAUpF,CAAK,IAEdkX,CACT,CAEA,MAAM82B,GAAqCD,GAAgB,gBAC3D,SAASE,GAASjuC,EAAOiB,EAAMy0B,GAC7B,OAAIA,IAAgB,GAAuBA,GAClC,EAEY,iBAAV11B,EACFA,EAEO,MAATA,OAAgB,EAASA,EAAMiB,EACxC,CAMA,SAASitC,GAASjC,EAASh1B,QACX,IAAVA,IACFA,EAAQ,CAAC,GAEX,MAAM,KACJk3B,EAAI,aACJC,EAAY,QACZC,EAAO,OACPC,EACA9V,UAAU,aACR+V,EAAY,SACZ1W,GACD,KACDmT,GACEiB,GACE,QACJuC,GAAU,EAAI,MACdC,EAAQ,EAAC,YACTC,EAAc,KAAI,UAClBC,GAAY,EAAK,OACjBC,EAAS,EAAC,KACVC,GAAO,GACL53B,EACE63B,EAAOhB,KACPiB,EAAWnB,KACXoB,EAAiB,GAAaN,GAC9BO,EAAW,GAAaR,GACxBS,EAAiB,WACjBC,EAAa,WACbC,EAAa,WACbC,EAAiB,WACjBC,EAAoB,UAAa,GACjCC,EAAoC,UAAa,GACjDC,EAAqB,UAAa,SAClCC,EAAc,eAAkB,KACpC,IAAIC,EACJ,MAAMjvB,EAA8D,OAAtDivB,EAAwBrB,EAAQjpC,QAAQuqC,gBAAqB,EAASD,EAAsBjvB,KAC1G,OAAgB,MAARA,OAAe,EAASA,EAAK8R,SAAS,WAAsB,cAAT9R,CAAoB,GAC9E,CAAC4tB,IAIJ,aAAgB,KACd,GAAKG,EASL,OADAF,EAAOhB,GAAG,UAAWsC,GACd,KACLtB,EAAOd,IAAI,UAAWoC,EAAU,EAPlC,SAASA,IACP1tC,aAAaitC,EAAW/pC,SACxBlD,aAAamtC,EAAejqC,SAC5BkqC,EAAkBlqC,SAAU,CAC9B,CAIC,GACA,CAACopC,EAASF,IACb,aAAgB,KACd,IAAKE,IAAYQ,EAAe5pC,UAAY+oC,EAC1C,OAEF,SAAS0B,EAAQhpB,GACX4oB,KACFrB,GAAa,EAAOvnB,EAExB,CACA,MAAMsZ,EAAO,GAAYtI,GAAUhG,gBAEnC,OADAsO,EAAKj7B,iBAAiB,aAAc2qC,GAC7B,KACL1P,EAAKh7B,oBAAoB,aAAc0qC,EAAQ,CAChD,GACA,CAAChY,EAAUsW,EAAMC,EAAcI,EAASQ,EAAgBX,EAASoB,IACpE,MAAMK,EAAiB,eAAkB,SAAUjpB,EAAOkpB,QAClC,IAAlBA,IACFA,GAAgB,GAElB,MAAMC,EAAa/B,GAASgB,EAAS7pC,QAAS,QAAS8pC,EAAe9pC,SAClE4qC,IAAeZ,EAAWhqC,SAC5BlD,aAAaitC,EAAW/pC,SACxB+pC,EAAW/pC,QAAUnD,YAAW,IAAMmsC,GAAa,EAAOvnB,IAAQmpB,IACzDD,IACT7tC,aAAaitC,EAAW/pC,SACxBgpC,GAAa,EAAOvnB,GAExB,GAAG,CAACooB,EAAUb,IACR6B,EAA0B,eAAkB,KAChDT,EAAmBpqC,UACnBgqC,EAAWhqC,aAAUqB,CAAS,GAC7B,IACGypC,EAAqB,eAAkB,KAC3C,GAAIX,EAAkCnqC,QAAS,CAC7C,MAAM0uB,EAAO,GAAYkX,EAAKnT,SAASzyB,SAAS0uB,KAChDA,EAAK9tB,MAAMinC,cAAgB,GAC3BnZ,EAAKqc,gBAAgBnC,IACrBuB,EAAkCnqC,SAAU,CAC9C,IACC,CAAC4lC,IAuJJ,OAlJA,aAAgB,KACd,GAAKwD,GAiFD,GAAUD,GAAe,CAC3B,MAAMr3B,EAAMq3B,EAQZ,OAPAJ,GAAQj3B,EAAIhS,iBAAiB,aAAckrC,GAC/B,MAAZvY,GAA4BA,EAAS3yB,iBAAiB,aAAckrC,GACpEvB,GAAQ33B,EAAIhS,iBAAiB,YAAa0e,EAAc,CACtDysB,MAAM,IAERn5B,EAAIhS,iBAAiB,aAAc0e,GACnC1M,EAAIhS,iBAAiB,aAAc2e,GAC5B,KACLsqB,GAAQj3B,EAAI/R,oBAAoB,aAAcirC,GAClC,MAAZvY,GAA4BA,EAAS1yB,oBAAoB,aAAcirC,GACvEvB,GAAQ33B,EAAI/R,oBAAoB,YAAaye,GAC7C1M,EAAI/R,oBAAoB,aAAcye,GACtC1M,EAAI/R,oBAAoB,aAAc0e,EAAa,CAEvD,CA9FA,SAASysB,IACP,QAAOjC,EAAQjpC,QAAQuqC,WAAY,CAAC,QAAS,aAAapd,SAAS8b,EAAQjpC,QAAQuqC,UAAUlvB,KAC/F,CACA,SAASmD,EAAaiD,GAGpB,GAFA3kB,aAAaitC,EAAW/pC,SACxBkqC,EAAkBlqC,SAAU,EACxBupC,IAAc,GAAuBO,EAAe9pC,UAAYwpC,EAAS,GAA4C,IAAvCX,GAASgB,EAAS7pC,QAAS,QAC3G,OAEF,MAAMmrC,EAAYtC,GAASgB,EAAS7pC,QAAS,OAAQ8pC,EAAe9pC,SAChEmrC,EACFpB,EAAW/pC,QAAUnD,YAAW,KAC9BmsC,GAAa,EAAMvnB,EAAM,GACxB0pB,GAEHnC,GAAa,EAAMvnB,EAEvB,CACA,SAAShD,EAAagD,GACpB,GAAIypB,IACF,OAEFd,EAAmBpqC,UACnB,MAAMkvB,EAAM,GAAYuD,GAExB,GADA31B,aAAamtC,EAAejqC,SACxB4pC,EAAe5pC,QAAS,CAErB+oC,GACHjsC,aAAaitC,EAAW/pC,SAE1BgqC,EAAWhqC,QAAU4pC,EAAe5pC,QAAQ,IACvC6mC,EACH6C,OACAjwB,EAAGgI,EAAM2pB,QACT1vC,EAAG+lB,EAAM4pB,QACTC,UACER,IACAD,IAEAH,EAAejpB,EACjB,IAEF,MAAMwmB,EAAU+B,EAAWhqC,QAK3B,OAJAkvB,EAAIpvB,iBAAiB,YAAamoC,QAClCmC,EAAmBpqC,QAAU,KAC3BkvB,EAAInvB,oBAAoB,YAAakoC,EAAQ,EAGjD,EAK+C,UAA3B6B,EAAe9pC,UAAuB,GAASyyB,EAAUhR,EAAM8pB,iBAEjFb,EAAejpB,EAEnB,CAKA,SAASupB,EAAmBvpB,GACtBypB,KAGsB,MAA1BtB,EAAe5pC,SAA2B4pC,EAAe5pC,QAAQ,IAC5D6mC,EACH6C,OACAjwB,EAAGgI,EAAM2pB,QACT1vC,EAAG+lB,EAAM4pB,QACTC,UACER,IACAD,IACAH,EAAejpB,EACjB,GATwCmoB,CAUvCnoB,EACL,CAiBA,GACC,CAAC0nB,EAAc1W,EAAU2W,EAASvC,EAAS0C,EAAWC,EAAQC,EAAMiB,EAAgBG,EAAyBC,EAAoB9B,EAAcD,EAAMW,EAAMG,EAAUD,EAAgBX,IAMxL,IAAM,KACJ,IAAIuC,EACJ,GAAKpC,GAGDL,GAA4D,OAAnDyC,EAAwB5B,EAAe5pC,UAAoBwrC,EAAsBC,UAAUC,oBAAsBrB,IAAe,CAC3I,MAAM3b,EAAO,GAAY+D,GAAU/D,KAInC,GAHAA,EAAKid,aAAa/C,GAAuB,IACzCla,EAAK9tB,MAAMinC,cAAgB,OAC3BsC,EAAkCnqC,SAAU,EACxC,GAAUmpC,IAAiB1W,EAAU,CACvC,IAAImZ,EAAuBC,EAC3B,MAAM/5B,EAAMq3B,EACN2C,EAAyB,MAARpC,GAA8G,OAArFkC,EAAwBlC,EAAKqC,SAAS/rC,QAAQoU,MAAK4M,GAAQA,EAAK1M,KAAOq1B,MAA0F,OAA3DkC,EAAyBD,EAAsB/E,cAA/J,EAA2LgF,EAAuBzY,SAASX,SAMjQ,OALIqZ,IACFA,EAAelrC,MAAMinC,cAAgB,IAEvC/1B,EAAIlR,MAAMinC,cAAgB,OAC1BpV,EAAS7xB,MAAMinC,cAAgB,OACxB,KACL/1B,EAAIlR,MAAMinC,cAAgB,GAC1BpV,EAAS7xB,MAAMinC,cAAgB,EAAE,CAErC,CACF,IACC,CAACuB,EAASL,EAAMY,EAAUlX,EAAU0W,EAAcO,EAAME,EAAgBX,EAASoB,IACpF,IAAM,KACCtB,IACHe,EAAe9pC,aAAUqB,EACzBwpC,IACAC,IACF,GACC,CAAC/B,EAAM8B,EAAyBC,IACnC,aAAgB,IACP,KACLD,IACA/tC,aAAaitC,EAAW/pC,SACxBlD,aAAamtC,EAAejqC,SAC5B8qC,GAAoB,GAErB,CAAC1B,EAASD,EAAc0B,EAAyBC,IAC7C,WAAc,KACnB,IAAK1B,EACH,MAAO,CAAC,EAEV,SAAS4C,EAAcvqB,GACrBqoB,EAAe9pC,QAAUyhB,EAAM6O,WACjC,CACA,MAAO,CACLkC,UAAW,CACTyZ,cAAeD,EACfE,eAAgBF,EAChBG,YAAY1qB,GACNsnB,GAAmB,IAAXS,IAGZ1sC,aAAamtC,EAAejqC,SAC5BiqC,EAAejqC,QAAUnD,YAAW,KAC7BqtC,EAAkBlqC,SACrBgpC,GAAa,EAAMvnB,EAAM2qB,YAC3B,GACC5C,GACL,GAEF/W,SAAU,CACRjU,eACE1hB,aAAaitC,EAAW/pC,QAC1B,EACAye,aAAagD,GACXynB,EAAOnB,KAAK,UAAW,CACrB1sB,KAAM,aACNhc,KAAM,CACJgtC,aAAa,KAGjB3B,EAAejpB,EAAM2qB,aAAa,EACpC,GAEH,GACA,CAAClD,EAAQE,EAASI,EAAQT,EAAMC,EAAc0B,GACnD,CAmIA,SAAS4B,GAAY9I,EAAOlvB,GAC1B,IAAIi4B,EAAc/I,EAAMhvB,QAAOwM,IAC7B,IAAIwrB,EACJ,OAAOxrB,EAAK2oB,WAAar1B,IAAyC,OAAjCk4B,EAAgBxrB,EAAK6lB,cAAmB,EAAS2F,EAAczD,KAAK,IAEnG0D,EAAkBF,EACtB,KAAOE,EAAgB7tC,QACrB6tC,EAAkBjJ,EAAMhvB,QAAOwM,IAC7B,IAAI0rB,EACJ,OAA+C,OAAvCA,EAAmBD,QAA2B,EAASC,EAAiBhoB,MAAK1qB,IACnF,IAAI2yC,EACJ,OAAO3rB,EAAK2oB,WAAa3vC,EAAEsa,KAA0C,OAAlCq4B,EAAiB3rB,EAAK6lB,cAAmB,EAAS8F,EAAe5D,KAAK,GACzG,IAEJwD,EAAcA,EAAY/tC,OAAOiuC,GAEnC,OAAOF,CACT,CAoBA,IAAIK,GAA0B,IAAIC,QAC9BC,GAAuC,IAAIC,QAC3CC,GAAY,CAAC,EACbC,GAAY,EAChB,MACMC,GAAalsB,GAAQA,IAASA,EAAKwN,MAAQ0e,GAAWlsB,EAAKlgB,aAC3DqsC,GAAkB,CAAC5d,EAAQ6d,IAAYA,EAAQh4B,KAAIlV,IACvD,GAAIqvB,EAAOtvB,SAASC,GAClB,OAAOA,EAET,MAAMmtC,EAAkBH,GAAWhtC,GACnC,OAAIqvB,EAAOtvB,SAASotC,GACXA,EAEF,IAAI,IACV74B,QAAOiF,GAAU,MAALA,IA2Ef,SAAS6zB,GAAWC,EAAeC,EAAYC,QAC1B,IAAfD,IACFA,GAAa,QAED,IAAVC,IACFA,GAAQ,GAEV,MAAM/e,EAAO,GAAY6e,EAAc,IAAI7e,KAC3C,OAlFF,SAAgCgf,EAA0Bhf,EAAM8e,EAAYC,GAC1E,MAAME,EAAa,yBACbC,EAAmBH,EAAQ,QAAUD,EAAa,cAAgB,KAClED,EAAgBJ,GAAgBze,EAAMgf,GACtCG,EAAiB,IAAIrrB,IACrBsrB,EAAiB,IAAItrB,IAAI+qB,GACzBQ,EAAiB,GAClBf,GAAUW,KACbX,GAAUW,GAAc,IAAId,SAE9B,MAAMmB,EAAgBhB,GAAUW,GAuChC,OAtCAJ,EAAc5wC,SAGd,SAASsxC,EAAK9R,GACPA,IAAM0R,EAAejsB,IAAIua,KAG9B0R,EAAepoB,IAAI0W,GACnBA,EAAGr7B,YAAcmtC,EAAK9R,EAAGr7B,YAC3B,IACA,SAASotC,EAAK3e,GACPA,IAAUue,EAAelsB,IAAI2N,IAGlCtgB,MAAM1U,UAAUoC,QAAQlC,KAAK80B,EAAO5b,UAAUqN,IAC5C,GAAI6sB,EAAejsB,IAAIZ,GACrBktB,EAAKltB,OACA,CACL,MAAMmtB,EAAOP,EAAmB5sB,EAAKqgB,aAAauM,GAAoB,KAChEQ,EAAyB,OAATD,GAA0B,UAATA,EACjCE,GAAgBzB,GAAWtyC,IAAI0mB,IAAS,GAAK,EAC7CstB,GAAeN,EAAc1zC,IAAI0mB,IAAS,GAAK,EACrD4rB,GAAW7mB,IAAI/E,EAAMqtB,GACrBL,EAAcjoB,IAAI/E,EAAMstB,GACxBP,EAAe1vC,KAAK2iB,GACC,IAAjBqtB,GAAsBD,GACxBtB,GAAwBrnB,IAAIzE,GAEV,IAAhBstB,GACFttB,EAAK2qB,aAAagC,EAAY,KAE3BS,GAAiBR,GACpB5sB,EAAK2qB,aAAaiC,EAAkB,OAExC,IAEJ,CAnCAM,CAAKxf,GACLmf,EAAeU,QAmCftB,KACO,KACLc,EAAepxC,SAAQwkB,IACrB,MAAMktB,GAAgBzB,GAAWtyC,IAAI6mB,IAAY,GAAK,EAChDmtB,GAAeN,EAAc1zC,IAAI6mB,IAAY,GAAK,EACxDyrB,GAAW7mB,IAAI5E,EAASktB,GACxBL,EAAcjoB,IAAI5E,EAASmtB,GACtBD,KACEvB,GAAwBlrB,IAAIT,IAAYysB,GAC3CzsB,EAAQ4pB,gBAAgB6C,GAE1Bd,GAAwB0B,OAAOrtB,IAE5BmtB,GACHntB,EAAQ4pB,gBAAgB4C,EAC1B,IAEFV,KACKA,KACHL,GAAa,IAAIC,QACjBD,GAAa,IAAIC,QACjBC,GAA0B,IAAIC,QAC9BC,GAAY,CAAC,EACf,CAEJ,CASSyB,CAAuBlB,EAAc/uC,OAAOyQ,MAAMiuB,KAAKxO,EAAK+S,iBAAiB,iBAAkB/S,EAAM8e,EAAYC,EAC1H,CAEA,MAAMiB,GAAqB,KAAM,CAC/BxM,eAAe,EACf4B,aAI0B,mBAAnBtG,gBAAiCA,eAAe3qB,WAAWsa,SAAS,iBAAmB,OAAS,SAEzG,SAASwhB,GAAcC,EAAWh5B,GAChC,MAAMi5B,EAAcnJ,GAASkJ,EAAWF,MACtB,SAAd94B,GACFi5B,EAAYC,UAEd,MAAMC,EAAcF,EAAY3sC,QAAQ,GAAc,GAAY0sC,KAElE,OAD6BC,EAAYr9B,MAAMu9B,EAAc,GACjC,EAC9B,CACA,SAASC,KACP,OAAOL,GAAcxuC,SAASuuB,KAAM,OACtC,CACA,SAASugB,KACP,OAAON,GAAcxuC,SAASuuB,KAAM,OACtC,CACA,SAASwgB,GAAeztB,EAAOmtB,GAC7B,MAAMO,EAAmBP,GAAantB,EAAMyI,cACtCqhB,EAAgB9pB,EAAM8pB,cAC5B,OAAQA,IAAkB,GAAS4D,EAAkB5D,EACvD,CACA,SAAS6D,GAAmBR,GACDlJ,GAASkJ,EAAWF,MAC5B/xC,SAAQwkB,IACvBA,EAAQkuB,QAAQtkB,SAAW5J,EAAQkgB,aAAa,aAAe,GAC/DlgB,EAAQwqB,aAAa,WAAY,KAAK,GAE1C,CACA,SAAS2D,GAAkBV,GACRA,EAAUnN,iBAAiB,mBACnC9kC,SAAQwkB,IACf,MAAM4J,EAAW5J,EAAQkuB,QAAQtkB,gBAC1B5J,EAAQkuB,QAAQtkB,SACnBA,EACF5J,EAAQwqB,aAAa,WAAY5gB,GAEjC5J,EAAQ4pB,gBAAgB,WAC1B,GAEJ,CAKA,MAAMwE,GAAgB,CACpBC,OAAQ,EACRC,KAAM,gBACN9vC,OAAQ,MACRye,OAAQ,OACR2O,SAAU,SACVoF,QAAS,EACTrT,SAAU,QACV4wB,WAAY,SACZlwC,MAAO,MACPwf,IAAK,EACLD,KAAM,GAGR,SAAS4wB,GAAsBluB,GACX,QAAdA,EAAMrf,MACRqf,EAAMvhB,OACNpD,aAJAmhC,WAMJ,CACA,MAAM2R,GAA0B,cAAiB,SAAoB/9B,EAAOC,GAC1E,MAAO4J,EAAMm0B,GAAW,aACxB,IAAM,KNxwCC,SAASxlC,KAAKslB,UAAUmgB,SM+wC3BD,EAAQ,UAEV1vC,SAASL,iBAAiB,UAAW6vC,IAC9B,KACLxvC,SAASJ,oBAAoB,UAAW4vC,GAAsB,IAE/D,IACH,MAAMI,EAAY,CAChBj+B,MACA2D,SAAU,EAEViG,OACA,eAAeA,QAAOra,EACtB,CAACsnC,GAAgB,gBAAiB,GAClC/nC,MAAO2uC,IAET,OAAoB,gBAAoB,OAAQ,GAAS,CAAC,EAAG19B,EAAOk+B,GACtE,IAEMC,GAA6B,gBAAoB,MA+DvD,SAASC,GAAex/B,GACtB,IAAI,SACFkD,EAAQ,GACRW,EAAE,KACFtb,EAAO,KAAI,iBACXk3C,GAAmB,GACjBz/B,EACJ,MAAM0/B,EArER,SAA+BC,GAC7B,IAAI,GACF97B,EAAE,KACFtb,QACY,IAAVo3C,EAAmB,CAAC,EAAIA,EAC5B,MAAOD,EAAYE,GAAiB,WAAe,MAC7CC,EAAW5vB,KACX6vB,EAAgBC,KAChBnxC,EAAO,WAAc,KAAM,CAC/BiV,KACAtb,OACAu3C,gBACAD,cACE,CAACh8B,EAAItb,EAAMu3C,EAAeD,IACxBrH,EAAU,WAyChB,OAxCA,IAAM,IACG,KACS,MAAdkH,GAA8BA,EAAWM,QAAQ,GAElD,CAACN,EAAY9wC,IAChB,IAAM,KACJ,GAAI4pC,EAAQjpC,UAAYX,EAAM,OAC9B4pC,EAAQjpC,QAAUX,EAClB,MAAM,GACJiV,EAAE,KACFtb,EAAI,cACJu3C,EAAa,SACbD,GACEjxC,EACEqxC,EAAiBp8B,EAAKnU,SAASwwC,eAAer8B,GAAM,KACpD65B,EAAOxF,GAAgB,UAC7B,GAAI+H,EAAgB,CAClB,MAAME,EAAUzwC,SAAS0wC,cAAc,OACvCD,EAAQt8B,GAAKg8B,EACbM,EAAQjF,aAAawC,EAAM,IAC3BuC,EAAeI,YAAYF,GAC3BP,EAAcO,EAChB,KAAO,CACL,IAAIhC,EAAY51C,IAA0B,MAAjBu3C,OAAwB,EAASA,EAAcJ,YACpEvB,IAAc,GAAUA,KAAYA,EAAYA,EAAU5uC,SAC9D4uC,EAAYA,GAAazuC,SAASuuB,KAClC,IAAIqiB,EAAY,KACZz8B,IACFy8B,EAAY5wC,SAAS0wC,cAAc,OACnCE,EAAUz8B,GAAKA,EACfs6B,EAAUkC,YAAYC,IAExB,MAAMH,EAAUzwC,SAAS0wC,cAAc,OACvCD,EAAQt8B,GAAKg8B,EACbM,EAAQjF,aAAawC,EAAM,IAC3BS,EAAYmC,GAAanC,EACzBA,EAAUkC,YAAYF,GACtBP,EAAcO,EAChB,IACC,CAACvxC,IACG8wC,CACT,CAaqBa,CAAsB,CACvC18B,KACAtb,UAEKi4C,EAAmBC,GAAwB,WAAe,MAC3DC,EAAmB,SAAa,MAChCC,EAAkB,SAAa,MAC/BC,EAAkB,SAAa,MAC/BC,EAAiB,SAAa,MAC9BC,IAGJN,IAEDA,EAAkBO,OAEnBP,EAAkBlI,MAAQmH,MAAuBl3C,IAAQm3C,GA2BzD,OAxBA,aAAgB,KACd,GAAKA,GAAeD,IAAyC,MAArBe,IAA6BA,EAAkBO,OAkBvF,OAFArB,EAAWrwC,iBAAiB,UAAWkqB,GAAS,GAChDmmB,EAAWrwC,iBAAiB,WAAYkqB,GAAS,GAC1C,KACLmmB,EAAWpwC,oBAAoB,UAAWiqB,GAAS,GACnDmmB,EAAWpwC,oBAAoB,WAAYiqB,GAAS,EAAK,EAb3D,SAASA,EAAQvI,GACf,GAAI0uB,GAAcjB,GAAeztB,GAAQ,EACP,YAAfA,EAAMpG,KACQi0B,GAAoBF,IACvCe,EACd,CACF,CAQC,GACA,CAACA,EAAYD,EAAuC,MAArBe,OAA4B,EAASA,EAAkBO,QACrE,gBAAoBxB,GAAct7B,SAAU,CAC9D9Z,MAAO,WAAc,KAAM,CACzBs1C,mBACAiB,mBACAC,kBACAC,kBACAC,iBACAnB,aACAe,0BACE,CAAChB,EAAkBC,KACtBoB,GAAsBpB,GAA2B,gBAAoBP,GAAY,CAClF,YAAa,UACb99B,IAAKq/B,EACLnnB,QAASvI,IACP,GAAIytB,GAAeztB,EAAO0uB,GAAa,CACrC,IAAIsB,EACiD,OAApDA,EAAwBJ,EAAgBrxC,UAA4ByxC,EAAsB5oB,OAC7F,KAAO,CACL,MAAM6oB,EAAezC,OAA+C,MAArBgC,OAA4B,EAASA,EAAkBrL,KAAKuD,aAAanpC,SACxG,MAAhB0xC,GAAgCA,EAAa7oB,OAC/C,KAEA0oB,GAAsBpB,GAA2B,gBAAoB,OAAQ,CAC/E,YAAaA,EAAW77B,GACxB1T,MAAO2uC,KACLY,IAA2B,KAAAwB,cAAah+B,EAAUw8B,GAAaoB,GAAsBpB,GAA2B,gBAAoBP,GAAY,CAClJ,YAAa,UACb99B,IAAKs/B,EACLpnB,QAASvI,IACP,GAAIytB,GAAeztB,EAAO0uB,GAAa,CACrC,IAAIyB,EACgD,OAAnDA,EAAwBN,EAAetxC,UAA4B4xC,EAAsB/oB,OAC5F,KAAO,CACL,MAAMgpB,EAAe7C,OAA2C,MAArBiC,OAA4B,EAASA,EAAkBrL,KAAKuD,aAAanpC,SACpG,MAAhB6xC,GAAgCA,EAAahpB,SACvB,MAArBooB,OAA4B,EAASA,EAAkBa,mBAA0C,MAArBb,GAAqCA,EAAkBjI,cAAa,EAAOvnB,EAAM2qB,aAChK,KAGN,CACA,MAAMoE,GAAmB,IAAM,aAAiBR,IAE1C+B,GAAqC,cAAiB,SAA+BlgC,EAAOC,GAChG,OAAoB,gBAAoB,SAAU,GAAS,CAAC,EAAGD,EAAO,CACpEwJ,KAAM,SACNvJ,IAAKA,EACL2D,UAAW,EACX7U,MAAO2uC,KAEX,IAKA,SAASyC,GAAqBngC,GAC5B,MAAM,QACJg1B,EAAO,SACPlzB,EAAQ,SACR4K,GAAW,EAAK,MAChBzR,EAAQ,CAAC,WACTmlC,OAAQC,GAAU,EAAI,aACtBC,EAAe,EAAC,YAChB9F,GAAc,EAAI,MAClBmF,GAAQ,EAAI,sBACZY,GAAwB,EAAK,gBAC7BN,GAAkB,GAChBjgC,GACE,KACJk3B,EAAI,KACJnD,EAAI,OACJyM,EAAM,aACNrJ,EAAY,OACZE,EAAM,QACND,EACA7V,UAAU,aACR+V,EAAY,SACZ1W,IAEAoU,EAGEoL,EAtY2C,oBAAhB5vB,eAA+B,UAAWA,YAAY9nB,YAsYtD23C,EAC3BI,EAAW,GAAaxlC,GACxBylC,EAAkB,GAAaJ,GAC/BK,EAAiB,GAAanG,GAC9B3C,EAAOhB,KACP6H,EAAgBC,KAGhBiC,EAA6C,iBAAjBN,GAA6BA,EAAe,EACxEO,EAAwB,SAAa,MACrCC,EAAsB,SAAa,MACnCC,EAAwB,UAAa,GACrCC,EAA8B,SAAa,MAC3CC,EAAmB,UAAa,GAChCC,EAAkC,MAAjBxC,EAOjByC,EAA8B7J,GAAsD,aAAtCA,EAAa9H,aAAa,SAA0BxQ,GAAkBsY,IAAiBsJ,EACrIQ,EAAqB,eAAkB,SAAUrE,GAIrD,YAHkB,IAAdA,IACFA,EAAYnc,GAEPmc,EAAYlJ,GAASkJ,EAAWF,MAAwB,EACjE,GAAG,CAACjc,IACEygB,EAAsB,eAAkBtE,IAC5C,MAAMpJ,EAAUyN,EAAmBrE,GACnC,OAAO0D,EAAStyC,QAAQoV,KAAIiG,GACtB8tB,GAAyB,cAAT9tB,EACX8tB,EAEL1W,GAAqB,aAATpX,EACPoX,EAEF+S,IACNhxB,OAAOgM,SAAS2yB,MAAM,GACxB,CAAChK,EAAc1W,EAAU6f,EAAUW,IAoMtC,SAASG,EAAoBC,GAC3B,OAAI90B,GAAa6zB,GAA0BZ,EAGvB,gBAAoBO,GAAuB,CAC7DjgC,IAAkB,UAAbuhC,EAAuBX,EAAwBC,EACpDh9B,QAAS8L,GAASunB,GAAa,EAAOvnB,EAAM2qB,cACV,iBAA1BgG,EAAqCA,EAAwB,WAL9D,IAMX,CA3MA,aAAgB,KACd,GAAI7zB,IAAaizB,EAAO,OACxB,SAAS8B,EAAU7xB,GACjB,GAAkB,QAAdA,EAAMrf,IAAe,CAEnB,GAASqwB,EAAU,GAAc,GAAYA,MAA+C,IAAhCwgB,IAAqBr0C,SAAiBo0C,GACpG,GAAUvxB,GAEZ,MAAM8xB,EAAML,IACNhzC,EAAS,GAAUuhB,GACG,cAAxB6wB,EAAStyC,QAAQ,IAAsBE,IAAWipC,IACpD,GAAU1nB,GACNA,EAAM+xB,SACRtN,GAAaqN,EAAIA,EAAI30C,OAAS,IAE9BsnC,GAAaqN,EAAI,KAGO,aAAxBjB,EAAStyC,QAAQ,IAAqBE,IAAWuyB,GAAYhR,EAAM+xB,WACrE,GAAU/xB,GACVykB,GAAaqN,EAAI,IAErB,CACF,CACA,MAAMrkB,EAAM,GAAYuD,GAExB,OADAvD,EAAIpvB,iBAAiB,UAAWwzC,GACzB,KACLpkB,EAAInvB,oBAAoB,UAAWuzC,EAAU,CAC9C,GACA,CAAC/0B,EAAU4qB,EAAc1W,EAAU+e,EAAOc,EAAU1M,EAAMoN,EAA6BC,EAAoBC,IAC9G,aAAgB,KACd,IAAI30B,GAAauzB,EA8BjB,OAAIrf,GAAY,GAAc0W,IAC5BA,EAAarpC,iBAAiB,WAAY2zC,GAC1CtK,EAAarpC,iBAAiB,cAAe4zC,IAC5ClC,GAAS/e,EAAS3yB,iBAAiB,WAAY2zC,GACzC,KACLtK,EAAappC,oBAAoB,WAAY0zC,GAC7CtK,EAAappC,oBAAoB,cAAe2zC,IAC/ClC,GAAS/e,EAAS1yB,oBAAoB,WAAY0zC,EAAmB,QAP1E,EA3BA,SAASC,IACPZ,EAAiB9yC,SAAU,EAC3BnD,YAAW,KACTi2C,EAAiB9yC,SAAU,CAAK,GAEpC,CACA,SAASyzC,EAAmBhyB,GAC1B,MAAM8pB,EAAgB9pB,EAAM8pB,cAC5BoI,gBAAe,KACb,MAAMC,IAAyB,GAASzK,EAAcoC,IAAkB,GAAS9Y,EAAU8Y,IAAkB,GAASA,EAAe9Y,IAAa,GAA0B,MAAjB8d,OAAwB,EAASA,EAAcJ,WAAY5E,IAAmC,MAAjBA,GAAyBA,EAAcsI,aAAalL,GAAgB,iBAAmBe,IAAS4C,GAAY5C,EAAKqC,SAAS/rC,QAASqyC,GAAQj+B,MAAK4M,IACtX,IAAIwrB,EAAeG,EACnB,OAAO,GAA2C,OAAjCH,EAAgBxrB,EAAK6lB,cAAmB,EAAS2F,EAAcpZ,SAASX,SAAU8Y,IAAkB,GAA4C,OAAlCoB,EAAiB3rB,EAAK6lB,cAAmB,EAAS8F,EAAevZ,SAAS+V,aAAcoC,EAAc,KAlhB/O,SAAsB/H,EAAOlvB,GAC3B,IAAIw/B,EACJ,IAAIC,EAAe,GACfC,EAAwE,OAArDF,EAActQ,EAAMpvB,MAAK4M,GAAQA,EAAK1M,KAAOA,UAAe,EAASw/B,EAAYnK,SACxG,KAAOqK,GAAiB,CACtB,MAAMjY,EAAcyH,EAAMpvB,MAAK4M,GAAQA,EAAK1M,KAAO0/B,IACnDA,EAAiC,MAAfjY,OAAsB,EAASA,EAAY4N,SACzD5N,IACFgY,EAAeA,EAAav1C,OAAOu9B,GAEvC,CACA,OAAOgY,CACT,CAugBcE,CAAavK,EAAKqC,SAAS/rC,QAASqyC,GAAQj+B,MAAK4M,IACrD,IAAIkzB,EAAgBC,EACpB,OAA2C,OAAlCD,EAAiBlzB,EAAK6lB,cAAmB,EAASqN,EAAe9gB,SAASX,YAAc8Y,IAAqD,OAAlC4I,EAAiBnzB,EAAK6lB,cAAmB,EAASsN,EAAe/gB,SAAS+V,gBAAkBoC,CAAa,MAK3NA,GAAiBqI,IAAyBd,EAAiB9yC,SAE/DurC,IAAkBsH,EAA4B7yC,UAC5C4yC,EAAsB5yC,SAAU,EAChCgpC,GAAa,EAAOvnB,GACtB,GAEJ,CAUA,GACC,CAAClD,EAAU4qB,EAAc1W,EAAU+e,EAAOa,EAAQ3I,EAAM6G,EAAevH,EAAc8I,IACxF,aAAgB,KACd,IAAIsC,EACJ,GAAI71B,EAAU,OAGd,MAAM81B,EAAcplC,MAAMiuB,MAAuB,MAAjBqT,GAAuF,OAArD6D,EAAwB7D,EAAcJ,iBAAhD,EAA+EiE,EAAsB3S,iBAAiB,IAAMkH,GAAgB,UAAY,OAAS,IACzN,GAAIlW,EAAU,CACZ,MAAM6hB,EAAiB,CAAC7hB,KAAa4hB,EAAa3B,EAAsB1yC,QAAS2yC,EAAoB3yC,QAASsyC,EAAStyC,QAAQmtB,SAAS,cAAgB6lB,EAA8B7J,EAAe,MAAM30B,QAAOiF,GAAU,MAALA,IACjN0kB,EAAUqT,EAAQlE,GAAWgH,EAAgBrC,GAASA,GAAU3E,GAAWgH,GACjF,MAAO,KACLnW,GAAS,CAEb,IACC,CAAC5f,EAAU4qB,EAAc1W,EAAU+e,EAAOc,EAAU/B,EAAeyC,EAA6Bf,IACnG,IAAM,KACJ,GAAI1zB,IAAakU,EAAU,OAC3B,MACM8hB,EAA2B,GADrB,GAAY9hB,IAIxBkhB,gBAAe,KACb,MAAMa,EAAoBtB,EAAoBzgB,GACxCgiB,EAAoBlC,EAAgBvyC,QACpC00C,GAA0C,iBAAtBD,EAAiCD,EAAkBC,GAAqBA,EAAkBz0C,UAAYyyB,EAC1HkiB,EAA+B,GAASliB,EAAU8hB,GACnD9B,GAAuBkC,IAAgC5L,GAC1D7C,GAAawO,EAAW,CACtBvO,cAAeuO,IAAcjiB,GAEjC,GACA,GACD,CAAClU,EAAUwqB,EAAMtW,EAAUggB,EAAoBS,EAAqBX,IACvE,IAAM,KACJ,GAAIh0B,IAAakU,EAAU,OAC3B,IAAImiB,GAA2B,EAC/B,MAAM1lB,EAAM,GAAYuD,GAClB8hB,EAA2B,GAAcrlB,GACzC2lB,EAAc5L,EAAQjpC,QAK5B,SAASwqC,EAAUsK,GAIjB,GAHqB,cAAjBA,EAAQz5B,MAAwBuqB,EAAKuD,aAAanpC,UACpD6yC,EAA4B7yC,QAAU4lC,EAAKuD,aAAanpC,SAEtD,CAAC,iBAAkB,aAAamtB,SAAS2nB,EAAQz5B,MACnD,OAEF,MAAMgxB,EAAcyI,EAAQz1C,KAAKgtC,YACN,iBAAhBA,GACTuG,EAAsB5yC,SAAU,EAChC40C,EAA2BvI,EAAYlG,eAEvCyM,EAAsB5yC,SAAWqsC,CAErC,CAEA,OApBAwG,EAA4B7yC,QAAUu0C,EAmBtCrL,EAAOhB,GAAG,UAAWsC,GACd,KACLtB,EAAOd,IAAI,UAAWoC,GACtB,MAAMuK,EAAW,GAAc7lB,IACF,GAASuD,EAAUsiB,IAAarL,GAAQ4C,GAAY5C,EAAKqC,SAAS/rC,QAASqyC,GAAQ3tB,MAAK1D,IACnH,IAAIg0B,EACJ,OAAO,GAA4C,OAAlCA,EAAiBh0B,EAAK6lB,cAAmB,EAASmO,EAAe5hB,SAASX,SAAUsiB,EAAS,KAC1GF,EAAYtK,WAAa,CAAC,QAAS,aAAapd,SAAS0nB,EAAYtK,UAAUlvB,QACzDuqB,EAAKuD,aAAanpC,UAC5C6yC,EAA4B7yC,QAAU4lC,EAAKuD,aAAanpC,SAI1DwyC,EAAexyC,SAAW,GAAc6yC,EAA4B7yC,WAAa4yC,EAAsB5yC,SACrGkmC,GAAa2M,EAA4B7yC,QAAS,CAKhDomC,gBAAgB,EAChBD,cAAeyO,GAEnB,CACD,GACA,CAACr2B,EAAUkU,EAAU+f,EAAgBvJ,EAASrD,EAAMsD,EAAQQ,EAAM2I,IAIrE,IAAM,KACJ,IAAI9zB,GAAagyB,EAQjB,OAPAA,EAAcW,qBAAqB,CACjCM,QACAM,kBACA/I,OACAC,eACApD,SAEK,KACL2K,EAAcW,qBAAqB,KAAK,CACzC,GACA,CAAC3yB,EAAUgyB,EAAeiB,EAAOzI,EAAMC,EAAcpD,EAAMkM,IAC9D,IAAM,KACJ,IAAIvzB,GACAkU,GAAwC,mBAArBwiB,mBAAoCxC,EAAoB,CAC7E,MAAMyC,EAAiB,KACrB,MAAMz/B,EAAWgd,EAAS4O,aAAa,YACnCiR,EAAStyC,QAAQmtB,SAAS,aAAe,GAAc,GAAYsF,MAAemT,EAAKuD,aAAanpC,SAA2C,IAAhCizC,IAAqBr0C,OACrH,MAAb6W,GACFgd,EAASkZ,aAAa,WAAY,KAEd,OAAbl2B,GACTgd,EAASkZ,aAAa,WAAY,KACpC,EAEFuJ,IACA,MAAMC,EAAW,IAAIF,iBAAiBC,GAMtC,OALAC,EAASrW,QAAQrM,EAAU,CACzB2iB,WAAW,EACXC,SAAS,EACTC,YAAY,IAEP,KACLH,EAAS/W,YAAY,CAEzB,IACC,CAAC7f,EAAUkU,EAAUmT,EAAM0M,EAAUW,EAAoBR,IAU5D,MAAMlB,GAAsBhzB,GAAY0zB,IAAWe,IAAgCD,GAAkBvB,GACrG,OAAoB,gBAAoB,WAAgB,KAAMD,GAAmC,gBAAoB3B,GAAY,CAC/H,YAAa,SACb99B,IAAsB,MAAjBy+B,OAAwB,EAASA,EAAcc,gBACpDrnB,QAASvI,IACP,GAAI+vB,EAAO,CACT,MAAM+B,EAAML,IACZhN,GAA0B,cAAbp5B,EAAM,GAAqBymC,EAAI,GAAKA,EAAIA,EAAI30C,OAAS,GACpE,MAAO,GAAqB,MAAjB2xC,GAAyBA,EAAcL,kBAAoBK,EAAcJ,WAElF,GADAyC,EAAsB5yC,SAAU,EAC5BkvC,GAAeztB,EAAO8uB,EAAcJ,YAAa,CACnD,MAAM0B,EAAe7C,MAAqB7F,EAC1B,MAAhB0I,GAAgCA,EAAahpB,OAC/C,KAAO,CACL,IAAI0sB,EACgE,OAAnEA,EAAwBhF,EAAcY,iBAAiBnxC,UAA4Bu1C,EAAsB1sB,OAC5G,CACF,KAECmqB,GAA+BI,EAAoB,SAAUz/B,EAAUy/B,EAAoB,OAAQ7B,GAAmC,gBAAoB3B,GAAY,CACzK,YAAa,SACb99B,IAAsB,MAAjBy+B,OAAwB,EAASA,EAAce,eACpDtnB,QAASvI,IACP,GAAI+vB,EACFtL,GAAagN,IAAsB,SAC9B,GAAqB,MAAjB3C,GAAyBA,EAAcL,kBAAoBK,EAAcJ,WAIlF,GAHI2B,IACFc,EAAsB5yC,SAAU,GAE9BkvC,GAAeztB,EAAO8uB,EAAcJ,YAAa,CACnD,MAAMuB,EAAezC,MAAyB9F,EAC9B,MAAhBuI,GAAgCA,EAAa7oB,OAC/C,KAAO,CACL,IAAI2sB,EAC+D,OAAlEA,EAAwBjF,EAAca,gBAAgBpxC,UAA4Bw1C,EAAsB3sB,OAC3G,CACF,IAGN,CAgFA,SAAS4sB,GAAeh0B,GACtB,OAAO,GAAcA,EAAMvhB,SAAoC,WAAzBuhB,EAAMvhB,OAAO0hC,OACrD,CACA,SAAS8T,GAAev0B,GACtB,OAAO0P,GAAkB1P,EAC3B,CAKA,SAASw0B,GAAS9O,EAASh1B,QACX,IAAVA,IACFA,EAAQ,CAAC,GAEX,MAAM,KACJk3B,EAAI,aACJC,EAAY,QACZC,EACA7V,UAAU,aACR+V,IAEAtC,GACE,QACJuC,GAAU,EACV3nB,MAAOm0B,EAAc,QAAO,OAC5BC,GAAS,EAAI,YACbC,GAAc,EAAK,iBACnBC,GAAmB,GACjBlkC,EACEi4B,EAAiB,WACjBkM,EAAgB,UAAa,GACnC,OAAO,WAAc,IACd5M,EACE,CACL5W,UAAW,CACTyZ,cAAcxqB,GACZqoB,EAAe9pC,QAAUyhB,EAAM6O,WACjC,EACA2lB,YAAYx0B,GAGW,IAAjBA,EAAMy0B,SAGN,GAAuBpM,EAAe9pC,SAAS,IAAS81C,GAGxC,UAAhBF,KAGA7M,IAAQ8M,GAAW5M,EAAQjpC,QAAQuqC,WAA+C,cAAnCtB,EAAQjpC,QAAQuqC,UAAUlvB,MAI3EoG,EAAMsP,iBACNiY,GAAa,EAAMvnB,EAAM2qB,cAJzBpD,GAAa,EAAOvnB,EAAM2qB,cAM9B,EACAz2B,QAAQ8L,GACc,cAAhBm0B,GAA+B9L,EAAe9pC,QAChD8pC,EAAe9pC,aAAUqB,EAGvB,GAAuByoC,EAAe9pC,SAAS,IAAS81C,KAGxD/M,IAAQ8M,GAAW5M,EAAQjpC,QAAQuqC,WAA+C,UAAnCtB,EAAQjpC,QAAQuqC,UAAUlvB,KAG3E2tB,GAAa,EAAMvnB,EAAM2qB,aAFzBpD,GAAa,EAAOvnB,EAAM2qB,aAI9B,EACAkH,UAAU7xB,GACRqoB,EAAe9pC,aAAUqB,EACrBogB,EAAM00B,mBAAqBJ,GAAoBN,GAAeh0B,KAGhD,MAAdA,EAAMrf,KAAgBszC,GAAevM,KAEvC1nB,EAAMsP,iBACNilB,EAAch2C,SAAU,GAER,UAAdyhB,EAAMrf,KAEN4mC,GADED,IAAQ8M,EACUp0B,EAAM2qB,aAKhC,EACAgK,QAAQ30B,GACFA,EAAM00B,mBAAqBJ,GAAoBN,GAAeh0B,IAAUi0B,GAAevM,IAGzE,MAAd1nB,EAAMrf,KAAe4zC,EAAch2C,UACrCg2C,EAAch2C,SAAU,EAEtBgpC,GADED,IAAQ8M,EACUp0B,EAAM2qB,aAKhC,IAtEiB,CAAC,GAyErB,CAAChD,EAASH,EAAS2M,EAAaE,EAAaC,EAAkB5M,EAAc0M,EAAQ9M,EAAMC,GAChG,CAGA,MACMqN,GADqB,EAAmB,qBAAqBxjC,aACd,CAAC7I,GAAMA,KAC5D,SAASssC,GAAeC,GACtB,MAAMzkC,EAAM,UAAa,KACnB,CAAwC,IAO9C,OAHAukC,IAAuB,KACrBvkC,EAAI9R,QAAUu2C,CAAQ,IAEjB,eAAkB,WACvB,IAAK,IAAIC,EAAO5sC,UAAUhL,OAAQ2S,EAAO,IAAItC,MAAMunC,GAAOrnC,EAAO,EAAGA,EAAOqnC,EAAMrnC,IAC/EoC,EAAKpC,GAAQvF,UAAUuF,GAEzB,OAAsB,MAAf2C,EAAI9R,aAAkB,EAAS8R,EAAI9R,WAAWuR,EACvD,GAAG,GACL,CAsLA,MAAMklC,GAAoB,CACxBC,YAAa,gBACbC,UAAW,cACXC,MAAO,WAEHC,GAAqB,CACzBH,YAAa,uBACbC,UAAW,qBACXC,MAAO,kBAcT,SAASE,GAAWjQ,EAASh1B,QACb,IAAVA,IACFA,EAAQ,CAAC,GAEX,MAAM,KACJk3B,EAAI,aACJC,EAAY,OACZE,EAAM,OACNmJ,EACAjf,UAAU,UACRZ,EAAS,aACT2W,EAAY,SACZ1W,GACD,QACDwW,GACEpC,GACE,QACJuC,GAAU,EAAI,UACd2N,GAAY,EACZC,aAAcC,GAAwB,EAAI,kBAC1CC,EAAoB,cAAa,eACjCC,GAAiB,EAAK,oBACtBC,EAAsB,cAAa,eACnC/Z,GAAiB,EAAK,QACtBga,GACExlC,EACE63B,EAAOhB,KACP4O,EAAsC,MAA7B9O,KACT+O,EAAiBjB,GAAgD,mBAA1BW,EAAuCA,EAAwB,KAAM,GAC5GD,EAAgD,mBAA1BC,EAAuCM,EAAiBN,EAC9EO,EAAqB,UAAa,IAClC,iBACJC,EAAgB,oBAChBC,GA7CyBL,KAC3B,IAAIM,EAAoBC,EACxB,MAAO,CACLH,iBAAqC,kBAAZJ,EAAwBA,EAAiF,OAAtEM,EAAgC,MAAXN,OAAkB,EAASA,EAAQN,YAAqBY,EACzID,oBAAwC,kBAAZL,EAAwBA,EAAuF,OAA5EO,EAAmC,MAAXP,OAAkB,EAASA,EAAQL,eAAwBY,EACnJ,EAyCGC,CAAqBR,GACnBS,EAAuBxB,IAAe70B,IAC1C,IAAKsnB,IAASK,IAAY2N,GAA2B,WAAdt1B,EAAMrf,IAC3C,OAEF,MAAMuR,EAAW+1B,EAAO4C,GAAY5C,EAAKqC,SAAS/rC,QAASqyC,GAAU,GACrE,IAAKoF,IACHh2B,EAAMuP,kBACFrd,EAAS/U,OAAS,GAAG,CACvB,IAAIm5C,GAAgB,EAQpB,GAPApkC,EAAShX,SAAQ0Y,IACf,IAAI2iC,EACoC,OAAnCA,EAAiB3iC,EAAMwxB,WAAoBmR,EAAejP,MAAS1zB,EAAMwxB,QAAQoC,QAAQjpC,QAAQi4C,qBACpGF,GAAgB,EAElB,KAEGA,EACH,MAEJ,CAEF7O,EAAOnB,KAAK,UAAW,CACrB1sB,KAAM,YACNhc,KAAM,CACJgtC,YAAa,CACXlG,eAAe,MAIrB6C,GAAa,EN3sEjB,SAAsBvnB,GACpB,MAAO,gBAAiBA,CAC1B,CMysEwBy2B,CAAaz2B,GAASA,EAAM2qB,YAAc3qB,EAAM,IAEhE02B,EAAsB7B,IAAe70B,IAGzC,MAAM22B,EAAkBZ,EAAmBx3C,QAE3C,GADAw3C,EAAmBx3C,SAAU,EACzBo4C,EACF,OAEF,GAA4B,mBAAjBpB,IAAgCA,EAAav1B,GACtD,OAEF,MAAMvhB,EAAS,GAAUuhB,GACnB42B,EAAgB,IAAM1P,GAAgB,SAAW,IACjD2P,EAAU,GAAY7lB,GAAUgP,iBAAiB4W,GACvD,IAAIE,EAAqB,GAAUr4C,GAAUA,EAAS,KACtD,KAAOq4C,IAAuBvqB,GAAsBuqB,IAAqB,CACvE,MAAMC,EAAalqB,GAAciqB,GACjC,GAAIC,IAAe,GAAY/lB,GAAU/D,OAAS,GAAU8pB,GAC1D,MAEAD,EAAqBC,CAEzB,CAIA,GAAIF,EAAQ15C,QAAU,GAAUsB,KAA0BA,ENnuE7C4wB,QAAQ,eMquEpB,GAAS5wB,EAAQuyB,IAGlBxjB,MAAMiuB,KAAKob,GAAS/gB,OAAMkhB,IAAW,GAASF,EAAoBE,KAChE,OAIF,GAAI,GAAcv4C,IAAWuyB,EAAU,CAGrC,MAAMimB,EAAax4C,EAAOM,YAAc,GAAKN,EAAOK,YAAcL,EAAOM,YACnEm4C,EAAaz4C,EAAO86B,aAAe,GAAK96B,EAAOk7B,aAAel7B,EAAO86B,aAC3E,IAAI4d,EAAQD,GAAcl3B,EAAMo3B,QAAU34C,EAAOM,YAMjD,GAAIm4C,EAAY,CACuC,QAAvC,GAAiBz4C,GAAQ0V,YAErCgjC,EAAQn3B,EAAMo3B,SAAW34C,EAAO64B,YAAc74B,EAAOM,YAEzD,CACA,GAAIo4C,GAASF,GAAcj3B,EAAMq3B,QAAU54C,EAAO86B,aAChD,MAEJ,CACA,MAAM+d,EAAyBrP,GAAQ4C,GAAY5C,EAAKqC,SAAS/rC,QAASqyC,GAAQ3tB,MAAK1D,IACrF,IAAIwrB,EACJ,OAAO,GAAoB/qB,EAAyC,OAAjC+qB,EAAgBxrB,EAAK6lB,cAAmB,EAAS2F,EAAcpZ,SAASX,SAAS,IAEtH,GAAI,GAAoBhR,EAAOgR,IAAa,GAAoBhR,EAAO0nB,IAAiB4P,EACtF,OAEF,MAAMplC,EAAW+1B,EAAO4C,GAAY5C,EAAKqC,SAAS/rC,QAASqyC,GAAU,GACrE,GAAI1+B,EAAS/U,OAAS,EAAG,CACvB,IAAIm5C,GAAgB,EAQpB,GAPApkC,EAAShX,SAAQ0Y,IACf,IAAI2jC,EACqC,OAApCA,EAAkB3jC,EAAMwxB,WAAoBmS,EAAgBjQ,MAAS1zB,EAAMwxB,QAAQoC,QAAQjpC,QAAQi5C,wBACtGlB,GAAgB,EAElB,KAEGA,EACH,MAEJ,CACA7O,EAAOnB,KAAK,UAAW,CACrB1sB,KAAM,eACNhc,KAAM,CACJgtC,YAAaiL,EAAS,CACpBnR,eAAe,GACb,GAAe1kB,IAAU,GAAsBA,MAGvDunB,GAAa,EAAOvnB,EAAM,IAgD5B,OA9CA,aAAgB,KACd,IAAKsnB,IAASK,EACZ,OAIF,SAAS8P,EAASz3B,GAChBunB,GAAa,EAAOvnB,EACtB,CAJAwnB,EAAQjpC,QAAQi4C,mBAAqBR,EACrCxO,EAAQjpC,QAAQi5C,sBAAwBvB,EAIxC,MAAMxoB,EAAM,GAAYuD,GACxBskB,GAAa7nB,EAAIpvB,iBAAiB,UAAWg4C,GAC7Cd,GAAgB9nB,EAAIpvB,iBAAiBo3C,EAAmBiB,GACxD,IAAIta,EAAY,GAuBhB,OAtBIR,IACE,GAAU8L,KACZtL,EAAYlP,GAAqBwa,IAE/B,GAAU1W,KACZoL,EAAYA,EAAUr/B,OAAOmwB,GAAqB8D,MAE/C,GAAUD,IAAcA,GAAaA,EAAUsB,iBAClD+J,EAAYA,EAAUr/B,OAAOmwB,GAAqB6D,EAAUsB,mBAKhE+J,EAAYA,EAAUrpB,QAAOgoB,IAC3B,IAAI2c,EACJ,OAAO3c,KAAsD,OAAvC2c,EAAmBjqB,EAAI3C,kBAAuB,EAAS4sB,EAAiBlqB,eAAe,IAE/G4O,EAAUlhC,SAAQ6/B,IAChBA,EAAS18B,iBAAiB,SAAUo5C,EAAU,CAC5Cpb,SAAS,GACT,IAEG,KACLiZ,GAAa7nB,EAAInvB,oBAAoB,UAAW+3C,GAChDd,GAAgB9nB,EAAInvB,oBAAoBm3C,EAAmBiB,GAC3Dta,EAAUlhC,SAAQ6/B,IAChBA,EAASz8B,oBAAoB,SAAUm5C,EAAS,GAChD,CACH,GACA,CAACjQ,EAASxW,EAAU0W,EAAc3W,EAAWukB,EAAWC,EAAcE,EAAmBnO,EAAMC,EAAc3L,EAAgB+L,EAASqO,EAAkBC,EAAqBI,EAAsBK,IACtM,aAAgB,KACdX,EAAmBx3C,SAAU,CAAK,GACjC,CAACg3C,EAAcE,IACX,WAAc,IACd9N,EAGE,CACL5W,UAAW,CACT8gB,UAAWwE,EACX,CAACrB,GAAkBW,IAAuB31B,IACpC01B,IACFjO,EAAOnB,KAAK,UAAW,CACrB1sB,KAAM,iBACNhc,KAAM,CACJgtC,aAAa,KAGjBrD,GAAa,EAAOvnB,EAAM2qB,aAC5B,GAGJ3Z,SAAU,CACR6gB,UAAWwE,EACX,CAACjB,GAAmBK,IAAqB,KACvCM,EAAmBx3C,SAAU,CAAI,IApB9B,CAAC,GAwBT,CAACopC,EAASF,EAAQiO,EAAgBD,EAAmBE,EAAqBpO,EAAc8O,GAC7F,CAWA,SAAS,GAAY5nC,GACnB,IAAIkpC,OACY,IAAZlpC,IACFA,EAAU,CAAC,GAEb,MAAM,KACJ64B,GAAO,EACPC,aAAcqQ,EAAqB,OACnChH,GACEniC,EAaJ,MAAOopC,EAAeC,GAAmB,WAAe,MAClDpQ,GAA2D,OAA1CiQ,EAAqBlpC,EAAQkjB,eAAoB,EAASgmB,EAAmB5mB,YAAc8mB,EAC5Gx6B,EFr3ER,SAAqB5O,QACH,IAAZA,IACFA,EAAU,CAAC,GAEb,MAAM,UACJ0hB,EAAY,SAAQ,SACpByB,EAAW,WAAU,WACrByM,EAAa,GAAE,SACfjQ,EACAuD,UACEZ,UAAWgnB,EACX/mB,SAAUgnB,GACR,CAAC,EAAC,UACNjsB,GAAY,EAAI,qBAChBksB,EAAoB,KACpB3Q,GACE74B,GACG7Q,EAAMs6C,GAAW,WAAe,CACrClgC,EAAG,EACH/d,EAAG,EACH23B,WACAzB,YACA+D,eAAgB,CAAC,EACjBikB,cAAc,KAETC,EAAkBC,GAAuB,WAAeha,GAC1D,GAAU+Z,EAAkB/Z,IAC/Bga,EAAoBha,GAEtB,MAAOia,EAAYC,GAAiB,WAAe,OAC5CC,EAAWC,GAAgB,WAAe,MAC3CC,EAAe,eAAkBn5B,IACjCA,GAAQo5B,EAAap6C,UACvBo6C,EAAap6C,QAAUghB,EACvBg5B,EAAch5B,GAChB,GACC,CAACg5B,IACEK,EAAc,eAAkBr5B,IAChCA,IAASs5B,EAAYt6C,UACvBs6C,EAAYt6C,QAAUghB,EACtBk5B,EAAal5B,GACf,GACC,CAACk5B,IACEtc,EAAc4b,GAAqBO,EACnCQ,EAAad,GAAoBQ,EACjCG,EAAe,SAAa,MAC5BE,EAAc,SAAa,MAC3BrR,EAAU,SAAa5pC,GACvBm7C,EAA0B9Z,GAAagZ,GACvCe,EAAc/Z,GAAa7Q,GAC3BuN,EAAS,eAAkB,KAC/B,IAAKgd,EAAap6C,UAAYs6C,EAAYt6C,QACxC,OAEF,MAAM6/B,EAAS,CACbjO,YACAyB,WACAyM,WAAY+Z,GAEVY,EAAYz6C,UACd6/B,EAAOhQ,SAAW4qB,EAAYz6C,SAEhC,GAAgBo6C,EAAap6C,QAASs6C,EAAYt6C,QAAS6/B,GAAQ/9B,MAAKzC,IACtE,MAAMq7C,EAAW,IACZr7C,EACHu6C,cAAc,GAEZe,EAAa36C,UAAY,GAAUipC,EAAQjpC,QAAS06C,KACtDzR,EAAQjpC,QAAU06C,EAClB,cAAmB,KACjBf,EAAQe,EAAS,IAErB,GACA,GACD,CAACb,EAAkBjoB,EAAWyB,EAAUonB,IAC3C//B,IAAM,MACS,IAATquB,GAAkBE,EAAQjpC,QAAQ45C,eACpC3Q,EAAQjpC,QAAQ45C,cAAe,EAC/BD,GAAQt6C,IAAQ,IACXA,EACHu6C,cAAc,MAElB,GACC,CAAC7Q,IACJ,MAAM4R,EAAe,UAAa,GAClCjgC,IAAM,KACJigC,EAAa36C,SAAU,EAChB,KACL26C,EAAa36C,SAAU,CAAK,IAE7B,IACH0a,IAAM,KAGJ,GAFIkjB,IAAawc,EAAap6C,QAAU49B,GACpC2c,IAAYD,EAAYt6C,QAAUu6C,GAClC3c,GAAe2c,EAAY,CAC7B,GAAIC,EAAwBx6C,QAC1B,OAAOw6C,EAAwBx6C,QAAQ49B,EAAa2c,EAAYnd,GAEhEA,GAEJ,IACC,CAACQ,EAAa2c,EAAYnd,EAAQod,IACrC,MAAM5U,EAAO,WAAc,KAAM,CAC/BpT,UAAW4nB,EACX3nB,SAAU6nB,EACVH,eACAE,iBACE,CAACF,EAAcE,IACbjnB,EAAW,WAAc,KAAM,CACnCZ,UAAWoL,EACXnL,SAAU8nB,KACR,CAAC3c,EAAa2c,IACZK,EAAiB,WAAc,KACnC,MAAMC,EAAgB,CACpB/7B,SAAUuU,EACVtU,KAAM,EACNC,IAAK,GAEP,IAAKoU,EAASX,SACZ,OAAOooB,EAET,MAAMphC,EAAI+mB,GAAWpN,EAASX,SAAUpzB,EAAKoa,GACvC/d,EAAI8kC,GAAWpN,EAASX,SAAUpzB,EAAK3D,GAC7C,OAAI8xB,EACK,IACFqtB,EACHrtB,UAAW,aAAe/T,EAAI,OAAS/d,EAAI,SACvC4kC,GAAOlN,EAASX,WAAa,KAAO,CACtC7E,WAAY,cAIX,CACL9O,SAAUuU,EACVtU,KAAMtF,EACNuF,IAAKtjB,EACN,GACA,CAAC23B,EAAU7F,EAAW4F,EAASX,SAAUpzB,EAAKoa,EAAGpa,EAAK3D,IACzD,OAAO,WAAc,KAAM,IACtB2D,EACH+9B,SACAwI,OACAxS,WACAwnB,oBACE,CAACv7C,EAAM+9B,EAAQwI,EAAMxS,EAAUwnB,GACrC,CEouEmBE,CAAc5qC,GACzBw5B,EAAOhB,KACPM,EAAesN,IAAe,CAACvN,EAAMtnB,KACrCsnB,IACFE,EAAQjpC,QAAQuqC,UAAY9oB,GAEL,MAAzB43B,GAAyCA,EAAsBtQ,EAAMtnB,EAAM,IAEvEs5B,EAAkB,SAAa,MAC/B9R,EAAU,SAAa,CAAC,GACxBC,EAAS,YAAe,IAAMpB,OAAgB,GAC9CkT,EAAat6B,KACbu6B,EAAuB,eAAkBj6B,IAC7C,MAAMk6B,EAAoB,GAAUl6B,GAAQ,CAC1CqY,sBAAuB,IAAMrY,EAAKqY,wBAClCvF,eAAgB9S,GACdA,EACJlC,EAAS8mB,KAAKuU,aAAae,EAAkB,GAC5C,CAACp8B,EAAS8mB,OACPuU,EAAe,eAAkBn5B,KACjC,GAAUA,IAAkB,OAATA,KACrB+5B,EAAgB/6C,QAAUghB,EAC1Bu4B,EAAgBv4B,KAKd,GAAUlC,EAAS8mB,KAAKpT,UAAUxyB,UAAgD,OAApC8e,EAAS8mB,KAAKpT,UAAUxyB,SAIjE,OAATghB,IAAkB,GAAUA,KAC1BlC,EAAS8mB,KAAKuU,aAAan5B,EAC7B,GACC,CAAClC,EAAS8mB,OACPA,EAAO,WAAc,KAAM,IAC5B9mB,EAAS8mB,KACZuU,eACAc,uBACA9R,aAAc4R,KACZ,CAACj8B,EAAS8mB,KAAMuU,EAAcc,IAC5B7nB,EAAW,WAAc,KAAM,IAChCtU,EAASsU,SACZ+V,aAAcA,KACZ,CAACrqB,EAASsU,SAAU+V,IAClBtC,EAAU,WAAc,KAAM,IAC/B/nB,EACH8mB,OACAxS,WACA6V,UACAoJ,SACA2I,aACA9R,SACAH,OACAC,kBACE,CAAClqB,EAAUuzB,EAAQ2I,EAAY9R,EAAQH,EAAMC,EAAcpD,EAAMxS,IAOrE,OANA,IAAM,KACJ,MAAMpS,EAAe,MAAR0oB,OAAe,EAASA,EAAKqC,SAAS/rC,QAAQoU,MAAK4M,GAAQA,EAAK1M,KAAO+9B,IAChFrxB,IACFA,EAAK6lB,QAAUA,EACjB,IAEK,WAAc,KAAM,IACtB/nB,EACH+nB,UACAjB,OACAxS,cACE,CAACtU,EAAU8mB,EAAMxS,EAAUyT,GACjC,CAyHA,SAASsU,GAAWC,EAAWC,EAAWC,GACxC,MAAMlmC,EAAM,IAAIsqB,IAChB,MAAO,IACc,aAAf4b,GAA6B,CAC/B7lC,UAAW,MAEV2lC,KACAC,EAAUjmC,KAAIxa,GAASA,EAAQA,EAAM0gD,GAAc,OAAM98C,OAAO48C,GAAWj9C,QAAO,CAAC65B,EAAKnmB,IACpFA,GAGL1X,OAAOwkC,QAAQ9sB,GAAOlV,SAAQ8T,IAC5B,IAAKrO,EAAKxH,GAAS6V,EAMf,IAAIu3B,EALkB,IAAtB5lC,EAAIF,QAAQ,OACTkT,EAAIwM,IAAIxf,IACXgT,EAAI2Q,IAAI3jB,EAAK,IAEM,mBAAVxH,IAEoB,OAA5BotC,EAAW5yB,EAAI9a,IAAI8H,KAAyB4lC,EAAS3pC,KAAKzD,GAC3Do9B,EAAI51B,GAAO,WAET,IADA,IAAIimC,EACKmO,EAAO5sC,UAAUhL,OAAQ2S,EAAO,IAAItC,MAAMunC,GAAOrnC,EAAO,EAAGA,EAAOqnC,EAAMrnC,IAC/EoC,EAAKpC,GAAQvF,UAAUuF,GAEzB,OAAqC,OAA7Bk5B,EAAYjzB,EAAI9a,IAAI8H,SAAgB,EAASimC,EAAUjzB,KAAIpL,GAAMA,KAAMuH,KAAO6C,MAAKyO,QAAexhB,IAARwhB,GACpG,IAGFmV,EAAI51B,GAAOxH,CACb,IAEKo9B,GAvBEA,GAwBR,CAAC,GAER,CAQA,SAASujB,GAAgBF,QACL,IAAdA,IACFA,EAAY,IAId,MAAMG,EAAOH,EACPI,EAAoB,eAAkBL,GAAaD,GAAWC,EAAWC,EAAW,cAE1FG,GACME,EAAmB,eAAkBN,GAAaD,GAAWC,EAAWC,EAAW,aAEzFG,GACMG,EAAe,eAAkBP,GAAaD,GAAWC,EAAWC,EAAW,SAMrFA,EAAUjmC,KAAIhT,GAAc,MAAPA,OAAc,EAASA,EAAIypB,QAChD,OAAO,WAAc,KAAM,CACzB4vB,oBACAC,mBACAC,kBACE,CAACF,EAAmBC,EAAkBC,GAC5C,CA0gBA,SAASC,GAAQ/U,EAASh1B,QACV,IAAVA,IACFA,EAAQ,CAAC,GAEX,MAAM,KACJk3B,EAAI,WACJiS,GACEnU,GACE,QACJuC,GAAU,EAAI,KACd1tB,EAAO,UACL7J,EACEgqC,EAAcn7B,KACpB,OAAO,WAAc,KACnB,MAAMo7B,EAAgB,CACpBxnC,GAAI0mC,EACJt/B,QAEF,OAAK0tB,EAGQ,YAAT1tB,EACK,CACL8W,UAAW,CACT,mBAAoBuW,EAAOiS,OAAa35C,GAE1CoxB,SAAUqpB,GAGP,CACLtpB,UAAW,CACT,gBAAiBuW,EAAO,OAAS,QACjC,gBAA0B,gBAATrtB,EAAyB,SAAWA,EACrD,gBAAiBqtB,EAAOiS,OAAa35C,KACxB,YAATqa,GAAsB,CACxBA,KAAM,eAEK,SAATA,GAAmB,CACrBpH,GAAIunC,IAGRppB,SAAU,IACLqpB,KACU,SAATpgC,GAAmB,CACrB,kBAAmBmgC,KAzBhB,CAAC,CA4BT,GACA,CAACzS,EAAS1tB,EAAMqtB,EAAMiS,EAAYa,GACvC,CAydA,SAASE,GAAiBC,EAAOC,GAC/B,MAAOxiC,EAAG/d,GAAKsgD,EACf,IAAIE,GAAW,EACf,MAAMt9C,EAASq9C,EAAQr9C,OACvB,IAAK,IAAIhC,EAAI,EAAGu/C,EAAIv9C,EAAS,EAAGhC,EAAIgC,EAAQu9C,EAAIv/C,IAAK,CACnD,MAAOw/C,EAAIC,GAAMJ,EAAQr/C,IAAM,CAAC,EAAG,IAC5B0/C,EAAIC,GAAMN,EAAQE,IAAM,CAAC,EAAG,GACjBE,GAAM3gD,GAAM6gD,GAAM7gD,GAAK+d,IAAM6iC,EAAKF,IAAO1gD,EAAI2gD,IAAOE,EAAKF,GAAMD,IAE/EF,GAAYA,EAEhB,CACA,OAAOA,CACT,CASA,SAASM,GAAYtsC,QACH,IAAZA,IACFA,EAAU,CAAC,GAEb,MAAM,OACJusC,EAAS,GAAG,mBACZ/Q,GAAqB,EAAK,cAC1BgR,GAAgB,GACdxsC,EACJ,IAAI+tB,EACA0e,GAAY,EACZC,EAAQ,KACRC,EAAQ,KACRC,EAAiBC,YAAY9+C,MAoBjC,MAAM+L,EAAKyG,IACT,IAAI,EACFgJ,EAAC,EACD/d,EAAC,UACDk2B,EAAS,SACTwB,EAAQ,QACRkY,EAAO,OACP+G,EAAM,KACN3I,GACEj5B,EACJ,OAAO,SAAqBgR,GAC1B,SAASu7B,IACPlgD,aAAamhC,GACbqN,GACF,CAEA,GADAxuC,aAAamhC,IACR7K,EAAS+V,eAAiB/V,EAASX,UAAyB,MAAbb,GAA0B,MAALnY,GAAkB,MAAL/d,EACpF,OAEF,MAAM,QACJ0vC,EAAO,QACPC,GACE5pB,EACEw7B,EAAc,CAAC7R,EAASC,GACxBnrC,EAAS,GAAUuhB,GACnBy7B,EAAyB,eAAfz7B,EAAMpG,KAChB8hC,EAAmB,GAAS/pB,EAASX,SAAUvyB,GAC/Ck9C,EAAoB,GAAShqB,EAAS+V,aAAcjpC,GACpDm9C,EAAUjqB,EAAS+V,aAAa9P,wBAChChH,EAAOe,EAASX,SAAS4G,wBACzBnH,EAAON,EAAUtf,MAAM,KAAK,GAC5BgrC,EAAuB7jC,EAAI4Y,EAAKhB,MAAQgB,EAAK7yB,MAAQ,EACrD+9C,EAAwB7hD,EAAI22B,EAAKf,OAASe,EAAK1yB,OAAS,EACxD69C,EA1EZ,SAAkBxB,EAAO3pB,GACvB,OAAO2pB,EAAM,IAAM3pB,EAAK5Y,GAAKuiC,EAAM,IAAM3pB,EAAK5Y,EAAI4Y,EAAK7yB,OAASw8C,EAAM,IAAM3pB,EAAK32B,GAAKsgD,EAAM,IAAM3pB,EAAK32B,EAAI22B,EAAK1yB,MAClH,CAwEkCu8C,CAASe,EAAaI,GAC5CI,EAAkBprB,EAAK7yB,MAAQ69C,EAAQ79C,MACvCk+C,EAAmBrrB,EAAK1yB,OAAS09C,EAAQ19C,OACzCof,GAAQ0+B,EAAkBJ,EAAUhrB,GAAMtT,KAC1CsS,GAASosB,EAAkBJ,EAAUhrB,GAAMhB,MAC3CrS,GAAO0+B,EAAmBL,EAAUhrB,GAAMrT,IAC1CsS,GAAUosB,EAAmBL,EAAUhrB,GAAMf,OACnD,GAAI6rB,IACFR,GAAY,GACPO,GACH,OAMJ,GAHIE,IACFT,GAAY,GAEVS,IAAsBF,EAExB,YADAP,GAAY,GAMd,GAAIO,GAAW,GAAUz7B,EAAM8pB,gBAAkB,GAASnY,EAASX,SAAUhR,EAAM8pB,eACjF,OAIF,GAAI7B,GAAQ4C,GAAY5C,EAAKqC,SAAS/rC,QAASqyC,GAAQ3tB,MAAKi5B,IAC1D,IAAI,QACF9W,GACE8W,EACJ,OAAkB,MAAX9W,OAAkB,EAASA,EAAQkC,IAAI,IAE9C,OAOF,GAAa,QAAT7W,GAAkBx2B,GAAK2hD,EAAQ/rB,OAAS,GAAc,WAATY,GAAqBx2B,GAAK2hD,EAAQr+B,IAAM,GAAc,SAATkT,GAAmBzY,GAAK4jC,EAAQhsB,MAAQ,GAAc,UAATa,GAAoBzY,GAAK4jC,EAAQt+B,KAAO,EACjL,OAAOi+B,IAQT,IAAIY,EAAW,GACf,OAAQ1rB,GACN,IAAK,MACH0rB,EAAW,CAAC,CAAC7+B,EAAMs+B,EAAQr+B,IAAM,GAAI,CAACD,EAAMsT,EAAKf,OAAS,GAAI,CAACD,EAAOgB,EAAKf,OAAS,GAAI,CAACD,EAAOgsB,EAAQr+B,IAAM,IAC9G,MACF,IAAK,SACH4+B,EAAW,CAAC,CAAC7+B,EAAMsT,EAAKrT,IAAM,GAAI,CAACD,EAAMs+B,EAAQ/rB,OAAS,GAAI,CAACD,EAAOgsB,EAAQ/rB,OAAS,GAAI,CAACD,EAAOgB,EAAKrT,IAAM,IAC9G,MACF,IAAK,OACH4+B,EAAW,CAAC,CAACvrB,EAAKhB,MAAQ,EAAGC,GAAS,CAACe,EAAKhB,MAAQ,EAAGrS,GAAM,CAACq+B,EAAQt+B,KAAO,EAAGC,GAAM,CAACq+B,EAAQt+B,KAAO,EAAGuS,IACzG,MACF,IAAK,QACHssB,EAAW,CAAC,CAACP,EAAQhsB,MAAQ,EAAGC,GAAS,CAAC+rB,EAAQhsB,MAAQ,EAAGrS,GAAM,CAACqT,EAAKtT,KAAO,EAAGC,GAAM,CAACqT,EAAKtT,KAAO,EAAGuS,IAoC7G,IAAIyqB,GAAiB,CAAC3Q,EAASC,GAAUuS,GAAzC,CAEO,GAAIjB,IAAca,EACvB,OAAOR,IAET,IAAKE,GAAWR,EAAe,CAC7B,MAAMmB,EA5JZ,SAAwBpkC,EAAG/d,GACzB,MAAMoiD,EAAcf,YAAY9+C,MAC1B8/C,EAAcD,EAAchB,EAClC,GAAc,OAAVF,GAA4B,OAAVC,GAAkC,IAAhBkB,EAItC,OAHAnB,EAAQnjC,EACRojC,EAAQnhD,EACRohD,EAAiBgB,EACV,KAET,MAAME,EAASvkC,EAAImjC,EACbqB,EAASviD,EAAImhD,EACbqB,EAAWngD,KAAKogD,KAAKH,EAASA,EAASC,EAASA,GAMtD,OAHArB,EAAQnjC,EACRojC,EAAQnhD,EACRohD,EAAiBgB,EAJHI,EAAWH,CAM3B,CA0I0BK,CAAe38B,EAAM2pB,QAAS3pB,EAAM4pB,SAExD,GAAoB,OAAhBwS,GAAwBA,EADC,GAE3B,OAAOb,GAEX,CACKjB,GAAiB,CAAC3Q,EAASC,GA7ChC,SAAoBgT,GAClB,IAAK5kC,EAAG/d,GAAK2iD,EACb,OAAQnsB,GACN,IAAK,MAKD,MAAO,CAHgB,CAACurB,EAAkBhkC,EAAIgjC,EAAS,EAAIa,EAAuB7jC,EAAa,EAATgjC,EAAahjC,EAAa,EAATgjC,EAAY/gD,EAAI+gD,EAAS,GACzG,CAACgB,EAAkBhkC,EAAIgjC,EAAS,EAAIa,EAAuB7jC,EAAa,EAATgjC,EAAahjC,EAAa,EAATgjC,EAAY/gD,EAAI+gD,EAAS,MAC3G,CAAC,CAACpqB,EAAKtT,KAAMu+B,GAA8CG,EAAvBprB,EAAKf,OAASmrB,EAAkDpqB,EAAKrT,KAAM,CAACqT,EAAKhB,MAAOisB,EAAuBG,EAAkBprB,EAAKf,OAASmrB,EAASpqB,EAAKrT,IAAMqT,EAAKf,OAASmrB,KAG9O,IAAK,SAKD,MAAO,CAHgB,CAACgB,EAAkBhkC,EAAIgjC,EAAS,EAAIa,EAAuB7jC,EAAa,EAATgjC,EAAahjC,EAAa,EAATgjC,EAAY/gD,EAAI+gD,GAChG,CAACgB,EAAkBhkC,EAAIgjC,EAAS,EAAIa,EAAuB7jC,EAAa,EAATgjC,EAAahjC,EAAa,EAATgjC,EAAY/gD,EAAI+gD,MAClG,CAAC,CAACpqB,EAAKtT,KAAMu+B,GAA2CG,EAApBprB,EAAKrT,IAAMy9B,EAA+CpqB,EAAKf,QAAS,CAACe,EAAKhB,MAAOisB,EAAuBG,EAAkBprB,EAAKrT,IAAMy9B,EAASpqB,EAAKf,OAASe,EAAKrT,IAAMy9B,KAGxO,IAAK,OACH,CACE,MAAM6B,EAAiB,CAAC7kC,EAAIgjC,EAAS,EAAGiB,EAAmBhiD,EAAI+gD,EAAS,EAAIc,EAAwB7hD,EAAa,EAAT+gD,EAAa/gD,EAAa,EAAT+gD,GACnH8B,EAAiB,CAAC9kC,EAAIgjC,EAAS,EAAGiB,EAAmBhiD,EAAI+gD,EAAS,EAAIc,EAAwB7hD,EAAa,EAAT+gD,EAAa/gD,EAAa,EAAT+gD,GAEzH,MAAO,IADc,CAAC,CAACc,GAA8CG,EAAtBrrB,EAAKhB,MAAQorB,EAAkDpqB,EAAKtT,KAAMsT,EAAKrT,KAAM,CAACu+B,EAAwBG,EAAmBrrB,EAAKhB,MAAQorB,EAASpqB,EAAKtT,KAAOsT,EAAKhB,MAAQorB,EAAQpqB,EAAKf,SACnNgtB,EAAgBC,EAC3C,CACF,IAAK,QAKD,MAAO,CAHgB,CAAC9kC,EAAIgjC,EAAQiB,EAAmBhiD,EAAI+gD,EAAS,EAAIc,EAAwB7hD,EAAa,EAAT+gD,EAAa/gD,EAAa,EAAT+gD,GAC9F,CAAChjC,EAAIgjC,EAAQiB,EAAmBhiD,EAAI+gD,EAAS,EAAIc,EAAwB7hD,EAAa,EAAT+gD,EAAa/gD,EAAa,EAAT+gD,MAChG,CAAC,CAACc,GAA6CG,EAArBrrB,EAAKtT,KAAO09B,EAAiDpqB,EAAKhB,MAAOgB,EAAKrT,KAAM,CAACu+B,EAAwBG,EAAmBrrB,EAAKtT,KAAO09B,EAASpqB,EAAKhB,MAAQgB,EAAKtT,KAAO09B,EAAQpqB,EAAKf,UAIlP,CAa0CktB,CAAW,CAAC/kC,EAAG/d,MAE7CihD,GAAaD,IACvBze,EAAYx+B,OAAO5C,WAAWmgD,EAAO,KAFrCA,GATF,CAaF,CAAC,EAKH,OAHAhzC,EAAGyhC,UAAY,CACbC,sBAEK1hC,CACT,CC/8HO,MAAMy0C,GAAS7pC,EAAA,SAAA1U,OAAA,YAAA0U,CAAA,sBAGN,EAAG1L,WAAYA,EAAM5G,OAAOG,OAAK,mGAKrC,EAAGyG,WAAa,aAAYA,EAAM5G,OAAOe,QAAM,WAEhD,EAAG6F,WAAYA,EAAM5G,OAAOmB,YAAU,kHAWpC,EAAGyF,WAAYA,EAAM5G,OAAOoB,cAAY,uBAIxC,EAAGwF,WAAa,GAAEA,EAAM5G,OAAOe,QAAM,gBAEhC,EAAG6F,WAAYA,EAAM5G,OAAOO,aAAW,0BAG1C,EAAGqG,WAAYA,EAAM5G,OAAOe,MAAI,yCAK/B,EAAG6F,WAAa,cAAaA,EAAM5G,OAAOe,QAAM,6BCnCnDq7C,GAAU9pC,EAAA,OAAA1U,OAAA,YAAA0U,CAAA,yCAMV,EAAG1L,QAAOqV,cACjBA,EAAY,GAAErV,EAAM5G,OAAOe,kBAAoB,WAAS,MCuDzD,IAAAoN,GAAA,CAAA9F,KAAA,IAAAE,OAAA,IAEE,MAEM8zC,GAAW,CAAAh0C,KAAA,UAAAE,OAAA,yIAcX+zC,GAAY,CAAAj0C,KAAA,UAAAE,OAAA,sIAeZg0C,GAAU,CAAAl0C,KAAA,UAAAE,OAAA,uIC3FVi0C,GAAUlqC,EAAA,OAAA1U,OAAA,aAAA0U,CAAA,eACP,EAAG1L,WACd,6BAA4BA,EAAM5G,OAAOwC,QAAQoE,EAAM5G,OAAOsC,gBAAc,oCAOpEm6C,GAAmBA,KAC9BtqC,EAAAA,EAAAA,KAACqqC,GAAU,CAAC31C,IAAKw1C,KACflqC,EAAAA,EAAAA,KAACoG,GAAI,CAAClQ,KAAK,QAAQmK,KAAM,GAAIzL,MAAM,UCX1B21C,GAAYpqC,EAAA,OAAA1U,OAAA,YAAA0U,CAAA,eACT,EAAG1L,WACd,6BAA4BA,EAAM5G,OAAO0C,iBAAiBkE,EAAM5G,OAAO8C,WAAS,KAGxE65C,GAAqBA,KAChCxqC,EAAAA,EAAAA,KAACuqC,GAAY,CAAC71C,IAAKw1C,KACjBlqC,EAAAA,EAAAA,KAACoG,GAAI,CAAClQ,KAAK,QAAQmK,KAAM,GAAIzL,MAAM,UCJjCyS,GAA+B,CACnCojC,MHNoBh2C,IACpBC,EAAAA,EAAAA,KAAI,CACF,CAAE,KAAIs1C,MAAc,CAClBjP,OAAS,aAAYtmC,EAAM5G,OAAOe,OAClC,UAAW,CACTmsC,OAAS,eAActmC,EAAM5G,OAAOoB,gBAEtC,UAAW,CACT8rC,OAAS,aAAYtmC,EAAM5G,OAAOiB,YAGvC,aGJDnE,MHMoB8J,IACpBC,EAAAA,EAAAA,KAAI,CACF,CAAE,KAAIs1C,MAAc,CAClBjP,OAAQ,yBACR2P,gBAAkB,mEACUj2C,EAAM5G,OAAOwC,QAAQoE,EAAM5G,OAAOsC,cAC9D,UAAW,CACT4qC,OAAQ,4BAEV,UAAW,CACTA,OAAQ,yBACR2P,gBAAkB,4FAGdj2C,EAAM5G,OAAOyC,qBACbmE,EAAM5G,OAAOuC,6BAItB,aGxBDu6C,QH0BsBl2C,IACtBC,EAAAA,EAAAA,KAAI,CACF,CAAE,KAAIs1C,MAAc,CAClBjP,OAAQ,yBACR2P,gBAAkB,4FAGZj2C,EAAM5G,OAAO0C,4BACbkE,EAAM5G,OAAO8C,mBAEnB,UAAW,CACToqC,OAAQ,4BAEV,UAAW,CACTA,OAAQ,yBACR2P,gBAAkB,kGAGZj2C,EAAM5G,OAAO4C,gCACbgE,EAAM5G,OAAOgD,yBAIvB+5C,IAAK,CACH5nC,OAAS,GAAEvO,EAAM5G,OAAO8C,UAE3B,aGnDDk6C,OHqDoBA,IAAA7uC,IGlDhB8uC,GAAaA,EAEf50C,OACA0Q,OAAO,OACPiQ,cACAk0B,mBACAC,SAAS,QACTlhC,YAAW,EACXqgC,eACAC,aACAn0C,YACAg1C,aAAa,CAAC,EACdr/B,WACA+1B,WAEFuJ,KAEA,IAAKt/B,EACH,MAAM,IAAIviB,MAAM,wDAGlB,MAAM8hD,EAAiBA,KAAOrhC,IAAasgC,EAErCgB,EAAiBx/B,EAAS1V,EAAM60C,GACtC,OACE/qC,EAAAA,EAAAA,KAACiqC,GAAU,CAACv1C,IAAG,CAAG2S,GAAU2jC,GAAO,aAAGlhC,SAAUA,GAC7CqgC,GAAenqC,EAAAA,EAAAA,KAAA,OAAKtL,IAAKvN,IAAiBgjD,GAAsB,MACjEnqC,EAAAA,EAAAA,KAACgqC,GAASh1C,EAAA,CACR4R,KAAMA,EACN/G,GAAK,eAAc3J,IACnB2gB,YAAaA,EACb/M,SAAUA,EACVpV,KAAGqT,EAAAA,EAAAA,KAAE,CACHie,YAAamkB,GAAgB,GAC7BkB,aAAcjB,GAAc,IAC7B,OACDn0C,UAAWA,EACX0rC,QAASA,GACLsJ,EACAr/B,EAAS1V,EAAM60C,GAAiB,CACpC1tC,IAAK6zB,GAAa,CAACka,EAAe/tC,IAAK6tC,OAG7B,UAAXF,GAAsBG,KAAmBnrC,EAAAA,EAAAA,KAACsqC,GAAgB,MAAM,KACrD,YAAXU,GAAwBG,KAAmBnrC,EAAAA,EAAAA,KAACwqC,GAAkB,MAAM,KAEpEJ,GAAapqC,EAAAA,EAAAA,KAAA,OAAKtL,IAAKvN,IAAeijD,GAAoB,KAChD,EAMjB,QAFcvhC,EAAAA,EAAAA,YAAyCiiC,IChEhD,MAAMQ,IAAexsC,EAAAA,EAAAA,eAAiC,EAC3D,EACA,SCMF,OANcysC,EAAGv2B,OAAQ0B,KAAenW,MACtC,MAAOyU,EAAQiC,IAAaxsB,EAAAA,EAAAA,UAASisB,IAAc,GAEnD,OAAO1W,EAAAA,EAAAA,KAACsrC,GAAarrC,SAAQjL,EAAA,CAAC7O,MAAO,CAAC6uB,EAAQiC,IAAgB1W,GAAQ,E,UCMxE,OARA,UAA8BrB,SAAU0B,IACtC,MAAO,CAAEqW,IAAajY,EAAAA,EAAAA,YAAWssC,IAEjC,OAAOrqC,EAAAA,EAAAA,cAAaL,EAAO,CACzBM,SAAS5a,EAAAA,GAAAA,UAAQ,IAAM2wB,GAAU,IAAQrW,EAAMxD,MAAM8D,UAEzD,ECRA,MAAMsqC,GAAqBA,CACzB/2C,EACAugB,EACAy2B,KACG/2C,EAAAA,EAAAA,KAAG,WACKsgB,EAAS,OAAS,OAAM,sFAQfy2B,EAAe,cAAgBh3C,EAAM5G,OAAOgB,OAAM,wBAKlE68C,GAAqBA,CACzBj3C,EACAugB,KACGtgB,EAAAA,EAAAA,KAAG,WACKsgB,EAAS,OAAS,OAAM,iIAUVvgB,EAAM5G,OAAOgB,OAAM,8BA8B9C,OA1BoB88C,EAClB32B,SACAy2B,eACAvsC,WACA,aAAc0sC,KACXxuC,MAEH,MAAM3I,GAAQuN,EAAAA,EAAAA,YAEd,OACEhC,EAAAA,EAAAA,KAAA,OACEiH,KAAK,SACLjG,UAAW,EACXtM,IAAK82C,GAAmB/2C,EAAOugB,EAAQy2B,KACvCzrC,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CACE,aAAW,OACX,kBAAiB42C,EACjB3kC,KAAK,SACLvS,IAAKg3C,GAAmBj3C,EAAOugB,IAC3B5X,GACH8B,GAEC,EC1CV,OAdA,UAAsB,SACpBA,EACA,aAAc0sC,KACXxuC,IAEH,MAAO4X,IAAUhW,EAAAA,EAAAA,YAAWssC,IAE5B,OACEtrC,EAAAA,EAAAA,KAAC2rC,GAAW32C,EAAA,CAAC,aAAY42C,EAAW52B,OAAQA,GAAY5X,GACrD4X,EAAS9V,EAAW,KAG3B,ECJA,OARA,UAA2BA,SAAU0B,IACnC,MAAO,CAAEqW,IAAajY,EAAAA,EAAAA,YAAWssC,IAEjC,OAAOrqC,EAAAA,EAAAA,cAAaL,EAAO,CACzBM,SAAS5a,EAAAA,GAAAA,UAAQ,IAAM2wB,GAAU,IAAOrW,EAAMxD,MAAM8D,UAExD,ECIO,MCbM2qC,GAAiBtkC,EAAAA,cAC5B,CAAC,GAGUukC,GAAoBA,KAC/B,MAAM1Z,EAAU7qB,EAAAA,WAAiBskC,IAEjC,GAAe,MAAXzZ,EACF,MAAM,IAAI/oC,MAAM,qDAGlB,OAAO+oC,CAAO,ECTH2Z,GAAUA,EACrB7sC,WACA69B,SAAQ,KACLiP,MAMH,MAAMC,EFE8BC,GACpCC,eAAc,EACdhvB,YAAY,SACZ4f,QACAzI,KAAM8X,EACN7X,aAAc8X,EACdC,kBAAkB,CAAC,EACnBC,sBAAsB,SACJ,CAAC,KACnB,MAAOC,EAAkBC,GAAuBllC,EAAAA,SAAe4kC,IACxDO,EAASC,GAAcplC,EAAAA,YACvBqlC,EAAeC,GAAoBtlC,EAAAA,WAIpC+sB,EAAO8X,GAAkBI,EACzBM,EAAUT,GAAqBI,EAE/B7hD,EAAOy7C,GAAY,CACvBlpB,YACAmX,OACAC,aAAcuY,EACd7H,qBAAsBvc,GACtB2C,WAAY,CACVxK,GAAO,GACPG,GAAK,CACHM,UAAWnE,EAAUzE,SAAS,KAC9BgF,QAAS,IAEXmG,GAAM,CAAEnG,QAAS,QAEhB4uB,IAGCla,EAAUxnC,EAAKwnC,QAEf+P,EAAQjB,GAAS9O,EAAS,CAC9BuC,QACoB,MAAlByX,GAA0B,CAAC,QAAS,QAAQ1zB,SAAS6zB,KAEnDQ,EAAU1K,GAAWjQ,GACrBnrB,EAAOkgC,GAAQ/U,GACf4a,EAAQ3Y,GAASjC,EAAS,CAC9BuC,QACoB,MAAlByX,GAA0B,CAAC,QAAS,QAAQ1zB,SAAS6zB,GACvD1X,YAAakT,OAGTkF,EAAoB,CAACF,EAAS9lC,GAEpC,OAAQslC,GACN,IAAK,QACHU,EAAkBrjD,KAAKu4C,GACvB,MAEF,IAAK,QACH8K,EAAkBrjD,KAAKojD,GACvB,MAEF,QACEC,EAAkBrjD,KAAKu4C,EAAO6K,GAIlC,MAAME,EAAepG,GAAgBmG,GA2BrC,OAzBe1lC,EAAAA,SACb,KAAM,CACJ+sB,OACAwY,aACGI,KACAtiD,EACHmyC,QACA2P,UACAE,gBACAN,kBACAK,aACAE,sBAEF,CACEvY,EACAwY,EACAI,EACAtiD,EACAmyC,EACA2P,EACAE,EACAN,GAIS,EE7FGJ,CAAW,CAAEnP,WAAUiP,IACvC,OACEhsC,EAAAA,EAAAA,KAAC6rC,GAAe5rC,SAAQ,CAAC9Z,MAAO8lD,GAC7B/sC,EACuB,ECdjBiuC,GAAe5lC,EAAAA,YAG1B,SAAsBnK,EAAOC,GAC7B,MAAM,QAAEyvC,GAAYhB,KACpB,OACE9rC,EAAAA,EAAAA,KAAC4I,GAAM5T,EAAA,CACLqI,IAAKA,EACL4L,QAAQ,aACJ7L,EAAK,CACT8D,QAAU8L,IACR5P,EAAM8D,UAAU8L,GAChB8/B,GAAQ,EAAM,IAItB,ICb0C,IAAA9wC,GAAA,CAAA9F,KAAA,SAAAE,OAAA,cAEnC,MAAMg3C,GAAiB7lC,EAAAA,YAG5B,UAAwB,MAAEpb,KAAUiR,GAASiwC,GAC7C,MAAQjb,QAASkb,KAAoBlb,GAAY0Z,KAC3CzuC,EAAM6zB,GAAa,CAACkB,EAAQjB,KAAKyU,YAAayH,IAEpD,OAAKC,EAAgBhZ,MAGnBt0B,EAAAA,EAAAA,KAACw7B,GAAc,MACbx7B,EAAAA,EAAAA,KAACu9B,GAAoB,CAACnL,QAASkb,EAAiBvQ,MAAO3K,EAAQ2K,QAC7D/8B,EAAAA,EAAAA,KAACiK,GAAOjV,EAAA,CACNqI,IAAKA,EACL3I,IAAGsH,GAGH7P,MAAO,IAAKimC,EAAQ+T,kBAAmBh6C,GACvC,kBAAiBimC,EAAQsa,QACzB,mBAAkBta,EAAQwa,cAC1BzrC,UAAU,UACNixB,EAAQ6U,iBAAiB7pC,IAC5BA,EAAM8B,YAfmB,IAoBpC,IClCO,MAAMquC,GAAE,CAAAr3C,KAAA,SAAAE,OAAA,2CAIFo3C,GAAM/4C,IAAiBC,EAAAA,EAAAA,KAAG,2CAInCD,EAAMN,aAAaG,GAAE,wBAGrBG,EAAMN,aAAaI,GAAE,oDAKZk5C,GAAMh5C,IAAiBC,EAAAA,EAAAA,KAAG,2CAInCD,EAAMN,aAAaI,GAAE,+BAIZm5C,GAAE,CAAAx3C,KAAA,SAAAE,OAAA,0CAIFu3C,GAAMl5C,IAAiBC,EAAAA,EAAAA,KAAG,qCAInCD,EAAMN,aAAaG,GAAE,6BAIZs5C,GAAE,CAAA13C,KAAA,UAAAE,OAAA,uCAIFy3C,GAAQ,CAAA33C,KAAA,QAAAE,OAAA,2CAIR03C,GAAK,CAAA53C,KAAA,SAAAE,OAAA,2CAIL23C,GAAK,CAAA73C,KAAA,UAAAE,OAAA,2CAIL43C,GAAK,CAAA93C,KAAA,UAAAE,OAAA,yCAIL63C,GAAO,CAAA/3C,KAAA,UAAAE,OAAA,wDAOP83C,GAAO,CAAAh4C,KAAA,SAAAE,OAAA,qCAIP+3C,GAAO,CAAAj4C,KAAA,SAAAE,OAAA,qCAIPqL,GAAM,CAAAvL,KAAA,UAAAE,OAAA,qCAINg4C,GAAI,CAAAl4C,KAAA,SAAAE,OAAA,qCAKJi4C,GAAM,CAAAn4C,KAAA,UAAAE,OAAA,yBC5Ebk4C,GAAkB,CACtBf,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,SAAU,KACVC,MAAO,IACPC,MAAO,IACPC,MAAO,IACPC,QAAS,QAkCX,QA/BmBplC,EAAAA,EAAAA,aAAyC,UAC1D,SACE3J,EAAQ,OACRqvC,EAAS,UAAS,QAClBtlC,EAAU,QAAO,OACjBolC,GAAS,EAAK,MACdz5C,EAAQ,sBAAqB,GAC7B8I,KACGN,GAELC,GAEA,MAAM8I,EAAYzI,GAAM4wC,GAAgBrlC,GAExC,OACEjJ,EAAAA,EAAAA,KAACmG,EAASnR,EAAA,CACRqI,IAAKA,EACL3I,IAAG,CACDvI,EAAM8c,GACN9c,EAAMoiD,IACN75C,EAAAA,EAAAA,KAAG,SACQE,EAAK,WAEhBy5C,GAAUliD,GAAY,cAEpBiR,GACH8B,EAGP,IC5CO,MAAMsvC,GAAqBjnC,EAAAA,YAGhC,SAA4BnK,EAAOC,GACnC,MAAM,iBAAEwvC,GAAqBf,KACvBjsC,EAAKoM,KASX,OALA1E,EAAAA,iBAAsB,KACpBslC,EAAiBhtC,GACV,IAAMgtC,OAAiBjgD,KAC7B,CAACiT,EAAIgtC,KAED7sC,EAAAA,EAAAA,KAACyuC,GAAUz5C,EAAA,CAAC0I,GAAG,OAAUN,EAAK,CAAEC,IAAKA,EAAKwC,GAAIA,IACvD,ICfa6uC,GAAiBnnC,EAAAA,YAG5B,SAAwBnK,EAAOC,GAC/B,MAAM,WAAEsvC,GAAeb,KACjBjsC,EAAKoM,KASX,OALA1E,EAAAA,iBAAsB,KACpBolC,EAAW9sC,GACJ,IAAM8sC,OAAW//C,KACvB,CAACiT,EAAI8sC,KAGN3sC,EAAAA,EAAAA,KAACyuC,GAAUz5C,EAAA,GAAKoI,EAAK,CAAEC,IAAKA,EAAKwC,GAAIA,IAClCzC,EAAM8B,SAGb,ICpB8D,IAAAlD,GAAA,CAAA9F,KAAA,SAAAE,OAAA,cAGvD,MAAMu4C,GAAiBpnC,EAAAA,YAG5B,UACA,SAAErI,EAAQ,QAAE0vC,GAAU,EAAK,WAAEC,EAAa,oBAAqBzxC,GAC/DiwC,GAEA,MAAMjb,EAAU0Z,KACVgD,EACJ5vC,GACC7B,IACGA,EAAM6zB,GAAa,CAACkB,GAASjB,KAAKuU,aAAc2H,EAASyB,IAG/D,OAAIF,GAAWrnC,EAAAA,eAAqBrI,GAC3BqI,EAAAA,aACLrI,EACAkzB,GAAS4U,kBAAkB,CACzB3pC,SACGD,KACA8B,EAAS9B,MACZ,aAAcg1B,EAAQkC,KAAO,OAAS,aAM1Ct0B,EAAAA,EAAAA,KAAC4I,GAAM5T,EAAA,CACLN,IAAGsH,GAGH,cAAa6yC,EACbxxC,IAAKA,EAEL,aAAY+0B,GAASkC,KAAO,OAAS,UACjClC,GAAS4U,kBAAkB5pC,IAC9B8B,EAGP,ICzCM6vC,GAA0BxnC,EAAAA,cAE9B,CACAynC,SAAU,CAAC,EACXj6B,YAAY,EACZpK,SAAUA,SASZ,UCTA,MAAMoL,GAAmB5V,EAAA,MAAA1U,OAAA,aAAA0U,CAAA,+JAiBb,EAAG1L,WACV,6BAA4BA,EAAM5G,OAAOsB,iBAAe,qBACxC,EAAGsF,WACnB,6BAA4BA,EAAM5G,OAAOsB,iBAAe,KAEzD,EAAGsF,WAAY0W,GAAeC,UAAU3W,IAAM,KAG5Cw6C,GAAuB9uC,EAAA,OAAA1U,OAAA,aAAA0U,EAG1B,EAAG1L,QAAOyU,iBAAiB,CAC5BuP,QAAS,QACTze,OAAQkP,EAAa,UAAY,UACjCgmC,KAAM,UACNjjD,SAAU,WACVkjD,QAAS,UACTC,UAAW,OAEXrkD,MAAO,OACP2yB,QAAS,EACT/T,OAAQ,EAER0lC,WAAY,OACZz6C,MAAO,UACPmmC,OAAQ,OAERE,WAAY,SACZqU,aAAc,WACdh3B,SAAU,SAEVi3B,WAAY,OAEZ,UAAW,CACT5lC,OAAQ,aACR,gBAAiB,CACf9U,aAAc,MACd,YAAa,CACXA,aAAc,SAKpB,iCAAkC,CAChCqD,WAAY,OAGd,4DAA+D,CAC7Did,YAAa1gB,EAAM5G,OAAOY,wBAE5B,IAEIwnB,GAAa,CAAEpW,GAAI1W,OAAO+sB,IAAK/vB,MAAO,YAAa,IAAA6V,GAAA,CAAA9F,KAAA,SAAAE,OAAA,YA4EzD,OA1EgCo5C,EAC9Bh6B,iBACA3V,KACAX,eAEA,MAAM,SAAEyL,EAAQ,SAAEqkC,EAAQ,WAAEj6B,GDtErBxN,EAAAA,WAAiBwnC,ICiFlBtzC,EAFgB8L,IAAAA,SAAe6O,QAAQlX,GAAUa,OAAOgM,SAENpL,KAAKC,IAC3D,MAAM8L,EAAUsiC,EAASpuC,EAAMxD,MAAMjX,OAC/B0b,EAAWkK,QAAQW,GAAS+iC,YAC5BvmC,EAAa6C,QAAQW,GAASxD,YAEpC,OAAO3B,IAAAA,aACL3G,EACA,IACKA,EAAMxD,MACTyE,WACAkT,aACA,gBAAiBlT,EACjBX,QAAU8L,IACRA,EAAMsP,iBAtBKozB,EAACvpD,EAAwB+iB,KAC1C,IAAKA,EAAY,CACf,MAAMkO,EAAO43B,EAAS7oD,GACtBwkB,EAASyM,EACX,GAmBMs4B,CAAW9uC,EAAMxD,MAAMjX,MAAO+iB,EAAW,IAG7ClJ,EAAAA,EAAAA,KAACivC,GAAoB,CACnB5iC,QAASxK,EACTqH,WAAYA,EACZjC,KAAK,UACJ8N,IACC/U,EAAAA,EAAAA,KAACuL,GAAQ,CACPE,aAAc5J,EACd2J,cAAe3J,EACfqH,WAAYA,EACZxU,IAAGsH,GAGHpH,MAAM,SAGTgM,EAAMxD,MAAM8B,UAAY0B,EAAMxD,MAAMT,OAASiE,EAAMxD,MAAMjX,OAE7D,IAaH,OAVuB,IAAnBsV,EAAQtR,QACVsR,EAAQ7R,MACNoW,EAAAA,EAAAA,KAACqW,GAAc,CAAC1oB,IAAKsoB,GAAWpW,GAAI1Z,MAAO,GAAI,iBAAe,IAC5D6Z,EAAAA,EAAAA,KAACivC,GAAoB,CAACvxC,GAAG,UACtBuY,GAAW9vB,UAOlB6Z,EAAAA,EAAAA,KAAC+V,GAAmB,CAClB9O,KAAK,UACLqP,SAAS,KACTzW,GAAIA,EACJ,kBAAiB2V,GAChB/Z,EACmB,EC3I1B,OATqC0E,EAAOqH,GAAS,CAAA/b,OAAA,YAAhB0U,CAAiB,oCAG3C,EAAG1L,WAAYA,EAAM5G,OAAOG,OAAK,sBACtB,EAAGyG,WAAYA,EAAM5G,OAAOgG,kBAAgB,sCCWlE,MAAM87C,GAAwBxvC,EAAA,OAAA1U,OAAA,YAAA0U,CAAA,CAAAjK,KAAA,SAAAE,OAAA,8DAiB9B,SAASw5C,IACP,cACEC,EAAgB,GAAE,WAClB3mC,EACA8L,OAAQ0B,EAAU,WAClB3B,GAAa,EAAI,YACjB8B,EAAc,mBAAkB,gBAChCi5B,GAAkB,EAAI,MACtBnzC,EAAK,SACLuC,EACAyL,SAAUgM,EAAY,UACtB1gB,GAEFoH,GAEA,MAAM5I,GAAQuN,EAAAA,EAAAA,YACR+tC,GACJ3jD,EAAAA,EAAAA,QAAuB,MACnB0qB,GAAa7K,EAAAA,EAAAA,UACZ8K,EAAWC,IAAgBvsB,EAAAA,EAAAA,WAAS,IACpCuqB,EAAQiC,IAAaxsB,EAAAA,EAAAA,UAASisB,IAAc,IAC5C7oB,EAAQqpB,IAAazsB,EAAAA,EAAAA,UAAoC,KACzDulD,EAAgBC,IAAqBxlD,EAAAA,EAAAA,UAE1C,CAAC,IACI8sB,EAAO24B,IAAYzlD,EAAAA,EAAAA,UAAoC,KACvDynB,EAAQi+B,IAAa1lD,EAAAA,EAAAA,UAAyB,KAC9C2lD,EAA0BC,IAA+B5lD,EAAAA,EAAAA,UAE9D,IAEI6lD,EAAoB/oC,IAAAA,SACxB,IAAMsoC,GACN,CAAC7lD,KAAKE,UAAU2lD,KAGZllC,EAAYyM,IAChB,GAAIlO,IAAekO,EACjB,OAEF,IAAKrC,GAAci7B,EAAe54B,EAAKjxB,OAAOspD,WAC5C,OAEF,IAAIc,EAAoB,CAAC,EACrBd,GAAa,EACb16B,GACF06B,GAAcO,EAAe54B,EAAKjxB,OAAOspD,WACzCc,EAAoB,IACfP,EACH,CAAC54B,EAAKjxB,OAAQ,IACT6pD,EAAe54B,EAAKjxB,OACvBspD,eAGJQ,EAAkBM,KAElBA,GAAoBzpD,EAAAA,GAAAA,gBACjBwwB,IAAM,IACFA,EACHm4B,WAAYn4B,EAAOnxB,QAAUixB,EAAKjxB,SAEpC6pD,GAEFC,EAAkBM,GAClBt5B,GAAU,IAGZN,GAAgBA,EAAaS,EAAKjxB,MAAOspD,EAAW,GAGtDplD,EAAAA,GAAAA,iBAAgB0lD,GAAiB,IAAM/6B,GAAUiC,GAAU,MAE3D7rB,EAAAA,EAAAA,YAAU,KACJ8d,EACFgO,EAAU,CAACziB,EAAM5G,OAAOoB,aAAcwF,EAAM5G,OAAOgB,SAC1CmmB,EACTkC,EAAU,CAACziB,EAAM5G,OAAOG,MAAOyG,EAAM5G,OAAOK,UACnC6oB,GACTG,EAAU,CAACziB,EAAM5G,OAAOmB,WAAYyF,EAAM5G,OAAOoB,cACnD,GACC,CAAC+lB,EAAQ9L,EAAY6N,KAExB3rB,EAAAA,EAAAA,YAAU,KACJ8d,GAAc8L,GAChBiC,GAAU,EACZ,GACC,CAAC/N,KAEJ9d,EAAAA,EAAAA,YAAU,KACR,MAAMolD,EAAgBjpC,IAAAA,SAAe6O,QAAQlX,GAAUa,OAAOgM,SACxD0kC,EAAkB,GAClBC,EAA2C,CAAC,EAC5CC,EACJH,EACA7vC,KAAI,CAACC,EAAOqF,KACZ,MAAM2qC,EAAY,IACbhwC,EAAMxD,MACTqyC,aAAca,EAAkB3wC,MAC7B8W,GAAiBA,EAAatwB,QAAUya,EAAMxD,MAAMjX,SAMzD,OAHAsqD,EAAW7mD,KAAKgnD,GAChBF,EAAaE,EAAUzqD,OAASyqD,EAEzBrpC,IAAAA,aAAmB3G,EAAO,CAC/BqF,QACA/E,QAASyJ,EAASzV,KAAK,SACpB0L,EAAMxD,OACT,IAGJ6yC,EAAkBS,GAClBR,EAASS,EAAW,GACnB,CAACL,EAAmBpxC,IAEvB,MAAMsY,EAAqDjQ,IAAAA,SACzD,KAAM,CAAGoD,WAAUqkC,SAAUgB,EAAgBj7B,gBAC7C,CAACpK,EAAUqlC,EAAgBj7B,IAY7B,OATA3pB,EAAAA,EAAAA,YAAU,KACR,MAAMylD,ECvIoBC,GAG5B9B,WAAW,CAAC,EACZn4B,kBAEA,MAAMk6B,EAAcrrD,OAAOwsB,OAAO88B,GAC/BjvC,QAAQqX,GAASA,EAAKq4B,aACtB9uC,KAAKmV,GA3BYk7B,GACpBl7B,aACAe,iBAKAf,IACIA,EAAWnZ,OACXmZ,EAAW5W,UACX4W,EAAW3vB,OACX2vB,IAEAe,EAcmBm6B,CAAc,CAAEl7B,aAAYe,kBACnD,OAAOk6B,EAAY5mD,OAAS4mD,EAAc,CAACl6B,EAAY,ED8HnCi6B,CAAe,CAAE9B,SAAUgB,EAAgBn5B,gBACvDo6B,EAA8BJ,EAAU9wC,QAC3CqX,GAASA,IAASP,IAErBs5B,EAAUU,GACVR,EAA4BY,EAA4B,GACvD,CAACjB,KAGFhwC,EAAAA,EAAAA,KAAC+uC,GAAwB9uC,SAAQ,CAAC9Z,MAAOqxB,IACvCxX,EAAAA,EAAAA,KAACuW,GAAY,CACXlZ,IAAK6zB,GAAa,CAAC6e,EAAiB1yC,IACpC,cAAY,aACZ2C,EAAAA,EAAAA,KAACsV,GAAc,CACbrf,UAAWA,EACX+e,OAAQA,EACRlL,SAAUZ,EACVhI,QAAS+V,EAAU/hB,KAAK,MAAO8f,GAC/BO,QAASyB,EAAa9hB,KAAK,MAAM,GACjCrH,OAAQA,EACR2nB,eAAiB,kBAAiBsB,IAClCpQ,aAAe,kBAAiBoQ,IAChC/B,WAAYA,EACZE,cAAem7B,EAAyBjmD,QACvC4qB,GACC/U,EAAAA,EAAAA,KAAAuH,IAAAA,SAAA,MACEvH,EAAAA,EAAAA,KAAC2vC,GAAwB,KACtBhzC,EACAmzC,EACG59B,EAAO/nB,OAAS,GAAM,KAAI+nB,EAAO,KACjCk+B,EAAyBjmD,OAAS,GACjC,KAAIimD,EAAyB,MAEnCl+B,EAAO/nB,OAAS,GACf6V,EAAAA,EAAAA,KAACkxC,GAA4B,CAACxzC,GAAI,OAAO,IACrCwU,EAAO/nB,OAAS,GAGpB,IAIJ+nB,EAAOyJ,KAAK,KAEd3b,EAAAA,EAAAA,KAAC2V,GAAa,CAACC,KAAMZ,KAGtBA,GACChV,EAAAA,EAAAA,KAACwvC,GAAuB,KAAEj4B,GACxB,MAIZ,CAOA,OALyBhQ,IAAAA,WAGvBqoC,IEhNF,OAJiBuB,EAAGjyC,eACXc,EAAAA,EAAAA,KAAA,WAAMd,GCDR,MAAMkyC,GAAW38C,IAAiBC,EAAAA,EAAAA,KAAG,sCAEtBD,EAAM5G,OAAOO,YAAW,mDAEbqG,EAAM5G,OAAOM,QAAO,WACnD,IAAA6N,GAAA,CAAA9F,KAAA,UAAAE,OAAA,+DAEK,MAAMi7C,GAAMA,IAAAr1C,GCKbqL,GAAwB,CAC5BpW,KAAI,EACJQ,OAAM,EACNd,MAAK,EACLsB,UAAS,EACTM,OAAM,EACNO,KAAI,EACJS,UAAS,EACTzB,WAAUA,GA6CZ,OA1C2Bw/C,EACzBC,aACA38C,QAAQ,QACR48C,YAAW,EACXC,UAAU,yBACVpxC,OAAO,OAEP,MAAMqxC,EAAgB,CACpBC,WAAY,CACVzmD,OAAQmV,EACRtV,MAAO,QAETymD,SAAU,CACRtmD,OAAQ,OACRH,MAAOsV,IAGLuxC,EAAkB,CACtBD,WAAY,CACV5mD,MAAQ,GAAEwmD,KACVrmD,OAAQmV,GAEVmxC,SAAU,CACRzmD,MAAOsV,EACPnV,OAAS,GAAEqmD,OAIf,OACEvxC,EAAAA,EAAAA,KAAA,OACEtL,IAAG,CAAG08C,GAAS,CAAE/7B,gBAAiBo8B,GAAS,aAC3CtlD,MAAO,IACFulD,EAAcF,EAAW,WAAa,iBAE3CxxC,EAAAA,EAAAA,KAAA,QACEiH,KAAK,cACLvS,IAAG,CAAG28C,GAAKhqC,GAAUzS,GAAM,aAC3BzI,MAAOylD,EAAgBJ,EAAW,WAAa,gBAC7C,EC9DV,QACEK,WAFmC,oBAAXC,QAA0BA,OAAOD,YAAcC,OAAOD,WAAW38C,KAAK48C,SCGhG,IAAIC,GACJ,MAAMC,GAAQ,IAAIC,WAAW,IACd,SAASC,KAEtB,IAAKH,KAEHA,GAAoC,oBAAXD,QAA0BA,OAAOC,iBAAmBD,OAAOC,gBAAgB78C,KAAK48C,SAEpGC,IACH,MAAM,IAAI1oD,MAAM,4GAIpB,OAAO0oD,GAAgBC,GACzB,CCXA,MAAMG,GAAY,GAElB,IAAK,IAAIhqD,EAAI,EAAGA,EAAI,MAAOA,EACzBgqD,GAAUvoD,MAAMzB,EAAI,KAAOiW,SAAS,IAAIrB,MAAM,IAGzC,SAASq1C,GAAgBC,EAAKxxB,EAAS,GAG5C,OAAQsxB,GAAUE,EAAIxxB,EAAS,IAAMsxB,GAAUE,EAAIxxB,EAAS,IAAMsxB,GAAUE,EAAIxxB,EAAS,IAAMsxB,GAAUE,EAAIxxB,EAAS,IAAM,IAAMsxB,GAAUE,EAAIxxB,EAAS,IAAMsxB,GAAUE,EAAIxxB,EAAS,IAAM,IAAMsxB,GAAUE,EAAIxxB,EAAS,IAAMsxB,GAAUE,EAAIxxB,EAAS,IAAM,IAAMsxB,GAAUE,EAAIxxB,EAAS,IAAMsxB,GAAUE,EAAIxxB,EAAS,IAAM,IAAMsxB,GAAUE,EAAIxxB,EAAS,KAAOsxB,GAAUE,EAAIxxB,EAAS,KAAOsxB,GAAUE,EAAIxxB,EAAS,KAAOsxB,GAAUE,EAAIxxB,EAAS,KAAOsxB,GAAUE,EAAIxxB,EAAS,KAAOsxB,GAAUE,EAAIxxB,EAAS,MAAMjnB,aACvf,CCYA,OAxBA,SAAY6B,EAAS62C,EAAKzxB,GACxB,GAAI,GAAOgxB,aAAeS,IAAQ72C,EAChC,OAAO,GAAOo2C,aAIhB,MAAMU,GADN92C,EAAUA,GAAW,CAAC,GACD+2C,SAAW/2C,EAAQy2C,KAAOA,MAK/C,GAHAK,EAAK,GAAe,GAAVA,EAAK,GAAY,GAC3BA,EAAK,GAAe,GAAVA,EAAK,GAAY,IAEvBD,EAAK,CACPzxB,EAASA,GAAU,EAEnB,IAAK,IAAI14B,EAAI,EAAGA,EAAI,KAAMA,EACxBmqD,EAAIzxB,EAAS14B,GAAKoqD,EAAKpqD,GAGzB,OAAOmqD,CACT,CAEA,OAAOF,GAAgBG,EACzB,ECvBO,MAAME,GAAkBtyC,EAAA,OAAA1U,OAAA,YAAA0U,CAAA,UAOpB,EAAGE,UAAWA,GAAI,cACjB,EAAGA,UAAWA,GAAI,mEAShB,EAAG5L,QAAOG,WACjB,4BACCH,EAAM5G,OAAQ,GAAE+G,eAChBH,EAAM5G,OAAO+G,OACZ,mCAMU,EAAG89C,gBAAiBA,GAAU,mBAC7B,EAAGryC,UAAWA,EAAO,IAAE,6CAEnB,EAAGsyC,gBAAiBA,GAAU,uBAC7B,EAAGA,gBAAiBA,GAAU,eAEtC,EAAGD,gBAAiBA,GAAU,oCAGhC,EAAGA,gBAAiBA,GAAU,4BAEjBt1C,GAAUA,EAAMw1C,WAAS,OCvCxCC,GAAmB1yC,EAAA,OAAA1U,OAAA,WAAA0U,CAAA,UAGrB,EAAGE,UAAWA,GAAI,cACjB,EAAGA,UAAWA,GAAI,iCAIjB,EAAGA,UAAWA,EAAO,IAAE,kBAEpB,EAAG5L,WAAYA,EAAM5G,OAAOO,aAAW,KCV1C0kD,GAAmB3yC,EAAA,OAAA1U,OAAA,YAAA0U,CAAA,UAGrB,EAAGE,UAAWA,EAAQA,EAAO,GAAM,GAAC,cACnC,EAAGA,UAAWA,EAAQA,EAAO,GAAM,GAAC,gGCqDhD,OAlDuB0yC,EACrBv2B,MACAw2B,eACAp+C,QAAQ,QACRyL,OAAO,IACP4yC,kBAEA,MAAMx+C,GAAQuN,EAAAA,EAAAA,YAER0wC,EAAc,YAAWQ,OACzBC,EAAY9yC,EAAO,GAAK,EAExBsyC,EAAkB,GAAK,EAAV,GAAgBtyC,EAAO,EAAI8yC,GACxCP,EACJD,EACG,GAAU,GAAMtyC,EAAO,EAAI8yC,IAJLH,EAAex2B,EAAO,KAIiB,IAC5D42B,EAAa,GAAEx+C,WACfy+C,EAAa5+C,EAAM5G,OAAOulD,IAAc3+C,EAAM5G,OAAO+G,GAE3D,OACEoL,EAAAA,EAAAA,KAACyyC,GAAkB,CACjBC,WAAYA,EACZzrC,KAAK,cACL0rC,WAAYA,EACZC,UAAWA,EACXh+C,MAAOA,EACPyL,KAAMA,IACNL,EAAAA,EAAAA,KAAC6yC,GAAmB,CAACxyC,KAAMA,IACzBL,EAAAA,EAAAA,KAAC8yC,GAAmB,CAACzyC,KAAMA,GAAO4yC,KAGpCjzC,EAAAA,EAAAA,KAAA,OACEwC,MAAM,6BACNkZ,QAAQ,MACRnZ,QAAU,OAAMlC,KAAQA,IACxBizC,oBAAoB,iBACpBvoD,MAAM,OACNG,OAAO,SACP8U,EAAAA,EAAAA,KAAA,aACEA,EAAAA,EAAAA,KAAA,kBAAgBH,GAAI6yC,IAClB1yC,EAAAA,EAAAA,KAAA,QAAM6gB,OAAO,KAAK0yB,UAAW9+C,EAAM5G,OAAO+G,MAC1CoL,EAAAA,EAAAA,KAAA,QAAM6gB,OAAO,OAAO0yB,UAAWF,OAGnCrzC,EAAAA,EAAAA,KAAA,UAAQ0D,GAAIrD,EAAO,EAAGsD,GAAItD,EAAO,EAAG7a,EAAG6a,EAAO,EAAI8yC,KAEjC,ECfzB,OApCuBK,EACrBt0C,WACAsyC,YAAW,MAEX,MAAMiC,EAAc,CAClB9B,WAAY,CACV5mD,MAAO,OACPG,OAAS,QAEXsmD,SAAU,CACRtmD,OAAQ,OACRH,MAAQ,SAIZ,OACEiV,EAAAA,EAAAA,KAAA,OACE7T,MAAO,CACLke,SAAU,WACVpe,SAAU,OACViM,WAAY,OACTu7C,EAAYjC,EAAW,WAAa,gBAExC9wC,EAAAA,SAASC,IAAIzB,GAAW0B,IAEvB,IAAIC,EAAAA,EAAAA,gBAAeD,GACjB,OAAOK,EAAAA,EAAAA,cAAaL,EAAO,IACtBA,EAAMxD,MACTo0C,YAEJ,IAEE,ECeV,OAjD2BkC,EACzBrpC,WAAW,UACXknC,aACAC,YAAW,EACXtyC,eAEA,MAAMu0C,EAAc,CAClB9B,WAAY,CACVpnC,IAAK,EACLD,KACe,UAAbD,EACI,EACa,YAAbA,EACC,GAAEknC,KACH,OACNx4B,UACe,YAAb1O,GAAuC,QAAbA,EACtB,mBACA,QAERmnC,SAAU,CACRzmD,MAAO,OACPwf,IACe,UAAbF,EACI,OACa,YAAbA,EACG,IAAMknC,EAAR,IACD,EACNx4B,UACe,UAAb1O,EACI,oBACa,YAAbA,EACA,mBACA,SAGV,OACErK,EAAAA,EAAAA,KAAA,OACE7T,MAAO,CACLke,SAAU,WACVoO,QAAS,QACTtgB,WAAY,KACTs7C,EAAYjC,EAAW,WAAa,gBAExCtyC,EACG,ECzBV,OAlByBy0C,EAAGz0C,eAExBc,EAAAA,EAAAA,KAAA,OACE7T,MAAO,CACLssB,QAAS,OACTvtB,OAAQ,SAETwV,EAAAA,SAASC,IAAIzB,GAAW0B,IAEvB,IAAIC,EAAAA,EAAAA,gBAAeD,GACjB,OAAOK,EAAAA,EAAAA,cAAaL,EAAO,CACzB4wC,UAAU,GAEd,KCbR,MAAMoC,GAAiBrsC,EAAAA,cAAwC,CAC7DssC,WAAY,EACZC,YAAa,aACbl/C,MAAO,OACPm/C,UAAU,IAGL,SAASC,KACd,OAAOzsC,EAAAA,WAAiBqsC,GAC1B,CAEA,UCiCA,OA1CgBK,EACdJ,aAAa,EACbC,cAAc,aACdl/C,QAAQ,UACRm/C,YAAW,EACX70C,WACAg1C,SAEA,MAAM1D,EAAgBjpC,IAAAA,SAAe6O,QAAQlX,GAAUa,OAAOgM,SAE1DgoC,GACFvD,EAAcnW,UAGhB,MAAM8Z,EAAS3D,EAAuC7vC,KAAI,CAACC,EAAOqF,IACzDsB,IAAAA,aAAmB3G,EAAO,CAC/BqF,MAAO8tC,EAAWvD,EAAcrmD,OAAS8b,EAAQ,EAAIA,KAClDrF,EAAMxD,UAIPoa,EAAmCjQ,IAAAA,SACvC,KAAM,CAAGssC,aAAYC,cAAal/C,QAAOm/C,cACzC,CAACF,EAAYC,EAAal/C,EAAOm/C,IAGnC,OACE/zC,EAAAA,EAAAA,KAAC4zC,GAAe3zC,SAAQ,CAAC9Z,MAAOqxB,IAC9BxX,EAAAA,EAAAA,KAAA,OACE,cAAY,UACZtL,KAAKA,EAAAA,EAAAA,KAAG,+BAE4B,aAAhBo/C,EAA6B,SAAW,MAAK,uBAGjE3nD,MAAO,IAAK+nD,IACXC,GAEqB,ECnC9B,MAAMC,GAAc7sC,EAAAA,cAAqC,CACvDtB,MAAO,EACPwE,QAAQ,EACR4pC,WAAW,EACXvqC,UAAU,IAGL,SAASwqC,KACd,OAAO/sC,EAAAA,WAAiB6sC,GAC1B,CAEA,UClBO,MAAMG,GAAwBR,IAAuBr/C,EAAAA,EAAAA,KAAG,wCAIhDq/C,EAAW,MAAQ,OAAM,uBACxBA,EAAW,OAAS,MAAK,mBAG5BS,GAA6B5/C,IAAmBF,EAAAA,EAAAA,KAAG,8BAE9CE,EAAK,yEAMV6/C,GAAqB7/C,IAAmBF,EAAAA,EAAAA,KAAG,8BAEtCE,EAAK,uDCXN,IAAAoH,GAAA,CAAA9F,KAAA,UAAAE,OAAA,8CAwBjB,OAtBsBs+C,KACpB,MAAMjgD,GAAQuN,EAAAA,EAAAA,aACR,YAAE8xC,EAAW,MAAEl/C,EAAK,SAAEm/C,GAAaC,MACnC,OAAEvpC,EAAM,UAAE4pC,GAAcC,KAExBK,EAAgBlqC,GAAU4pC,EAAYz/C,EAAQH,EAAM5G,OAAOe,KAEjE,MAAuB,aAAhBklD,GACL9zC,EAAAA,EAAAA,KAAA,OACEtL,IAAGsH,KAIHgE,EAAAA,EAAAA,KAAA,QAAMtL,IAAK8/C,GAA0BG,OAGvC30C,EAAAA,EAAAA,KAAA,OAAKtL,IAAK6/C,GAAqBR,KAC7B/zC,EAAAA,EAAAA,KAAA,QAAMtL,IAAK+/C,GAAkBE,KAEhC,ECxBsC,IAAA34C,GAAA,CAAA9F,KAAA,UAAAE,OAAA,iCAmDzC,OAjDaw+C,EACX3uC,QAAQ,EACR/G,WACA21C,YAAYH,OAMZ,MAAM,WAAEb,EAAU,YAAEC,EAAW,SAAEC,GAAaC,KAE9C,IAAKvpC,EAAQ4pC,EAAWvqC,GAAY,EAAC,GAAO,GAAO,GAE/C+pC,IAAe5tC,EACjBwE,EAASopC,IAAe5tC,EACf4tC,EAAa5tC,EACtBouC,GAAY,EACHR,EAAa5tC,IACtB6D,GAAW,GAGb,MAAM0N,GAAe3rB,EAAAA,EAAAA,UACnB,KAAM,CAAGoa,QAAOwE,SAAQ4pC,YAAWvqC,cACnC,CAAC7D,EAAOwE,EAAQ4pC,EAAWvqC,IAG7B,OACE9J,EAAAA,EAAAA,KAACo0C,GAAYn0C,SAAQ,CAAC9Z,MAAOqxB,GACzBu8B,GAA4B,aAAhBD,GAAwC,IAAV7tC,EAExC,MADFjG,EAAAA,EAAAA,KAAC60C,EAAS,CAACpqC,OAAQA,EAAQ4pC,UAAWA,KAGxCr0C,EAAAA,EAAAA,KAAA,OACEtL,IAAGsH,IAIc,eAAhB83C,GAA0C,IAAV7tC,GAC/BjG,EAAAA,EAAAA,KAAC60C,EAAS,CAACpqC,OAAQA,EAAQ4pC,UAAWA,IACpC,KACHn1C,GAEF60C,GAA4B,aAAhBD,GAAwC,IAAV7tC,IACzCjG,EAAAA,EAAAA,KAAC60C,EAAS,CAACpqC,OAAQA,EAAQ4pC,UAAWA,IAEnB,ECnDpB,MAAM13C,GAAK,CAAAzG,KAAA,SAAAE,OAAA,yDAKL0+C,GAAS,CAAA5+C,KAAA,UAAAE,OAAA,+CAMT2+C,GAAiB,CAAA7+C,KAAA,UAAAE,OAAA,gHAWjB4+C,GAAS,CAAA9+C,KAAA,SAAAE,OAAA,qBAGT6+C,GAAcrgD,IAAkBF,EAAAA,EAAAA,KAAG,oHAS1BE,EAAK,WC4B3B,OAjDkBsgD,EAChBh2C,WACAi2C,eAKA,MAAM1gD,GAAQuN,EAAAA,EAAAA,aACR,YAAE8xC,EAAW,MAAEl/C,GAAUo/C,MACzB,MAAE/tC,EAAK,OAAEwE,EAAM,UAAE4pC,GAAcC,KAE/Bc,EAA4B,aAAhBtB,EAA6BiB,GAAoBD,GAEnE,OACE90C,EAAAA,EAAAA,KAAA,OACEiH,KAAK,WACLvS,IAAKiI,GACLxQ,MAAO,CACLkpD,cAA+B,aAAhBvB,EAA6B,MAAQ,YAEtD9zC,EAAAA,EAAAA,KAAA,OAAKtL,IAAK0gD,GAEPD,GACCn1C,EAAAA,EAAAA,KAACm1C,EAAQ,CAAClvC,MAAOA,EAAOouC,UAAWA,EAAW5pC,OAAQ4pC,IACpDA,GACFr0C,EAAAA,EAAAA,KAACoG,GAAI,CAAClQ,KAAK,QAAQmK,KAAM,GAAIzL,MAAOA,KAEpCoL,EAAAA,EAAAA,KAAA,OACEtL,IAAKugD,GACHxqC,GAAU4pC,EACNz/C,EACCH,EAAM5G,OAAOO,eAEpB4R,EAAAA,EAAAA,KAAA,QACE7T,MAAO,CACLyI,MACE6V,GAAU4pC,EAAY5/C,EAAM5G,OAAOG,MAAQyG,EAAM5G,OAAOe,OAE3DqX,EAAQ,MAMjBjG,EAAAA,EAAAA,KAAA,OAAKtL,IAAKsgD,IAAY91C,GAClB,ECCV,OA1DgBiB,EAAA,UAAA1U,OAAA,YAAA0U,CAAA,wGAQA,EAAG1L,WACd,6BAA4BA,EAAM5G,OAAO0C,iBAAiBkE,EAAM5G,OAAO8C,WAAS,oIAU7D,EAAG8D,WAAYA,EAAM5G,OAAOG,OAAK,2EAQvC,EAAGyG,WAAYA,EAAM5G,OAAOS,aAAW,yBAIvC,EAAGmG,WAAa,iBAAgBA,EAAM5G,OAAOgD,WAAS,sCAKtD,EAAG4D,WAAYA,EAAM5G,OAAOwB,cAAY,oDAKxC,EAAGoF,WAAa,iBAAgBA,EAAM5G,OAAOgD,WAAS,+FAKlE,EAAG4D,WAAYK,EAAcL,EAAO,eAAgB,SAAO,2HC1C1D,MAAM6gD,IAAgBx2C,EAAAA,EAAAA,eAA8B,CACzDy2C,MAAM,EACNnU,OAAQA,SAKGoU,GAAmBA,KAAMx2C,EAAAA,EAAAA,YAAWs2C,IASpCG,GAAwBA,EACnChqC,eACAvM,eAKA,MAAOq2C,EAAMnU,GAdGsU,EAACjqC,GAAe,KAChC,MAAO8pC,EAAMI,IAAWlrD,EAAAA,EAAAA,UAASghB,GAGjC,MAAO,CAAC8pC,GAFOK,EAAAA,EAAAA,cAAY,IAAMD,GAASziC,IAAWA,KAAQ,IAExC,EAUEwiC,CAAUjqC,GAEjC,OACEzL,EAAAA,EAAAA,KAACs1C,GAAcr1C,SAAQ,CAAC9Z,MAAO,CAAEovD,OAAMnU,WACpCliC,EACsB,ECf7B,OAfe22C,EAAGl5C,QAAOuM,cAAa,MACpC,MAAM,KAAEqsC,EAAI,OAAEnU,GAAWoU,KAEzB,OACEx1C,EAAAA,EAAAA,KAAC81C,GAAU,CACTlvC,KAAK,SACLK,KAAK,SACL,gBAAeiC,EACf,eAAcqsC,EACd,aAAY54C,EACZmN,SAAUZ,EACVhI,QAASA,KAAOgI,GAAck4B,KAC9B,ECLN,OATWjhC,EAAA,SAAA1U,OAAA,YAAA0U,CAAA,CAAAjK,KAAA,UAAAE,OAAA,uECYX,OAZe+J,EAAA,MAAA1U,OAAA,YAAA0U,CAAA,yDAIC,EAAG41C,WAAaA,GAAgB,QAAO,iFCOvD,OATkB51C,EAAA,SAAA1U,OAAA,aAAA0U,CAA0B,CAC1CsY,QAAS,qBACT42B,WAAY,UACZ,CAAE,KAAI2G,MAAc,CAClBC,aAAc,kBACdC,YAAa,oBAEhB,ICDD,OARc/1C,EAAA,MAAA1U,OAAA,YAAA0U,CAAA,CAAAjK,KAAA,UAAAE,OAAA,sDCId,OAJe+J,EAAA,SAAA1U,OAAA,YAAA0U,CAAA,CAAAjK,KAAA,SAAAE,OAAA,4BCaR,MCbM+/C,IAAiBr3C,EAAAA,EAAAA,eAAkC,MAEnDs3C,GAAuCA,KAClD,MAAMC,GAAiBr3C,EAAAA,EAAAA,YAAWm3C,IAElC,GAAsB,MAAlBE,EACF,MAAM,IAAIhtD,MACR,gFAIJ,OAAOgtD,CAAc,ECOvB,OATgBC,EAAGp3C,cAAa9B,MAC9B,MAAMm5C,EFG8BC,GACpCr5B,YACAs5B,eAAc,EACdC,eAAc,EACdC,WAAW,GACXt2C,OAAO,QACPu2C,YAAW,EACXC,aAAa,CAAC,EACd7hC,OAAQ0B,GAAa,MAErB,MAAO1B,EAAQiC,IAAaxsB,EAAAA,EAAAA,UAASisB,IAAc,GAC7CogC,GAAW1qD,EAAAA,EAAAA,QAAO,MAElB2qD,EAAe1Q,GAAY,CAC/B/R,KAAMtf,EACNuf,aAActd,EACdkG,YACAkO,WAAY,CACVxK,GAAO81B,GACP31B,KACA6C,M5DxBQpoB,E4DyBF,CACJiR,QAASoqC,G5DtBR,CACL5gD,KAAM,QACNuF,UACAlG,GAAG2d,GACD,MAAM,QACJxG,EAAO,QACPgR,GACqB,mBAAZjiB,EAAyBA,EAAQyX,GAASzX,EACrD,OAAIiR,IAXOvmB,EAWUumB,EAVhB,CAAC,EAAE3mB,eAAeC,KAAKG,EAAO,YAWV,MAAnBumB,EAAQnhB,QACHq0B,GAAQ,CACblT,QAASA,EAAQnhB,QACjBmyB,YACCnoB,GAAG2d,GAED,CAAC,EACCxG,EACFkT,GAAQ,CACblT,UACAgR,YACCnoB,GAAG2d,GAED,CAAC,EAzBZ,IAAe/sB,CA0Bb,K4DEA8+C,qBAAsBvc,K5D7BZjtB,M4DgCZ,MAAM,QAAE22B,GAAY2kB,EAOdC,EAAmBlQ,GAAgB,CAL3BzS,GAASjC,EAAS,CAAEuC,QAAS+hB,EAAa1hB,MAAM,IAChDkM,GAAS9O,EAAS,CAAEuC,QAAS8hB,IAC3BpU,GAAWjQ,GACd+U,GAAQ/U,KAIrB,OAAOvmC,EAAAA,EAAAA,UACL,KAAM,CACJmpB,SACA8hC,WACAz2C,OACAu2C,WACAC,gBACGE,KACAC,KAEL,CACEhiC,EACA8hC,EACAz2C,EACAu2C,EACAC,EACAE,EACAC,GAEH,EE3DeR,CAAWp5C,GAE3B,OACE4C,EAAAA,EAAAA,KAACm2C,GAAel2C,SAAQ,CAAC9Z,MAAOowD,GAC7Br3C,EACuB,ECE9B,OAfuB+3C,EAAG/3C,eACxB,MAAMg4C,EAAad,KAEnB,OAAIv1C,EAAAA,EAAAA,gBAAe3B,IACV+B,EAAAA,EAAAA,cACL/B,EACAg4C,GAAYlQ,kBAAkB,CAC5B3pC,IAAK65C,EAAW/lB,KAAKuU,gBAKpB,IAAI,ECZN,MAAMyR,GAAeA,EAC1BpsD,QAAQ,GACRG,SAAS,GACToX,UACGlF,MAEH,MAAM,QAAEg1B,EAAO,SAAE0kB,GAAaV,KACxB3hD,GAAQuN,EAAAA,EAAAA,YAEd,OACEhC,EAAAA,EAAAA,KAACmyB,GAAan9B,EAAA,CACZ,cAAY,iBACZqI,IAAKy5C,EACL1kB,QAASA,EACTrnC,MAAOA,EACPG,OAAQA,EACRoX,KAAMA,GAAQ7N,EAAM5G,OAAOO,aACvBgP,GACJ,ECrBOg6C,GAAkBj3C,EAAA,OAAA1U,OAAA,aAAA0U,CAAA,mCAEf,EAAG1L,WAAYA,EAAM5G,OAAOO,aAAW,6BAE5C,EAAGqG,WAAYA,EAAM5G,OAAOmB,YAAU,qBCJ1C,MAAMwS,GAAK,CAAAtL,KAAA,UAAAE,OAAA,uCAKLqL,GAAM,CAAAvL,KAAA,UAAAE,OAAA,uCAKNsL,GAAK,CAAAxL,KAAA,SAAAE,OAAA,wCCTLgR,GAAiC,CAC5C5F,MAAK,GACLC,OAAM,GACNC,MAAKA,IC0CP,QAnCuBmH,EAAAA,EAAAA,aACrB,UAAwB,SAAE3J,EAAQ,UAAEjJ,EAAS,MAAE9J,GAASkrD,GACtD,MAAMH,EAAad,KACb/4C,EAAM6zB,GAAa,CAACgmB,GAAY/lB,KAAKyU,YAAayR,IAExD,OACEr3C,EAAAA,EAAAA,KAACw7B,GAAc,KACZ0b,GAAYliC,SACXhV,EAAAA,EAAAA,KAACu9B,GAAoB,CAACnL,QAAS8kB,EAAW9kB,QAAS2K,OAAO,IACxD/8B,EAAAA,EAAAA,KAACo3C,GACKF,EAAWjQ,iBAAiB,CAC9B5pC,MACA3I,IACEwiD,EAAW72C,MAAQ+G,GAAS8vC,EAAW72C,MACzCpK,YACA9J,MAAO,CACLke,SAAU6sC,EAAWt4B,SACrBrU,IAAK2sC,EAAWjwD,GAAK,EACrBqjB,KAAM4sC,EAAWlyC,GAAK,EACtBja,MAAO,iBACJoB,KAGN+qD,EAAWN,WACV52C,EAAAA,EAAAA,KAACm3C,GAAiBD,EAAWL,YAE9B33C,IAMb,ICzCK,MAAMo4C,GAAqBA,EAChC/P,QACAlnC,OAAO,QACPk3C,kBAEA,MAAM,KAAE3sD,GAAS28C,GACX,WAAEiQ,EAAU,WAAEC,GAAe7sD,EAEnC,OACEoV,EAAAA,EAAAA,KAACo3C,GAAkB,CAAC1iD,IAAK0S,GAAS/G,IACR,mBAAhBk3C,EACJA,EAAY3sD,GACX,GAAE4sD,OAAgBC,IACJ,ECXU,IAAAz7C,GAAA,CAAA9F,KAAA,UAAAE,OAAA,uHAAA8yC,GAAA,CAAAhzC,KAAA,SAAAE,OAAA,mCAE5B,MAAMshD,GAAuBA,EAClCzJ,UACA9nD,QACAwxD,iBACAC,WACAC,WAAW,CAAC,MAEZ,MAAM,MAAEjjD,GAAUijD,EAElB,OACE73C,EAAAA,EAAAA,KAACo3C,GAAkB,CACjB1iD,IAAG,CAAG0S,GAAS5F,MAAO,4BAAF,YACpBxB,EAAAA,EAAAA,KAAA,OACEtL,IAAGsH,KAQHgE,EAAAA,EAAAA,KAACyuC,GAAU,CAACxlC,QAAQ,QAAQslC,OAAO,UAChCN,IAEHjuC,EAAAA,EAAAA,KAACyuC,GAAU,CACTxlC,QAAQ,QACRslC,OAAO,UACP75C,IAAGw0C,IAIFyO,EACAC,IAAY53C,EAAAA,EAAAA,KAACoG,GAAI,CAAClQ,KAAM0hD,EAAUv3C,KAAM,OAI7CL,EAAAA,EAAAA,KAACsxC,GAAW,CAACC,WAAYprD,EAAOyO,MAAOA,EAAO68C,QAAS,OAAQpxC,KAAM,IAClD,EC1CnBy3C,GAAmB,CACvBC,MAAO5uD,OAAO+sB,IACdpV,gBACE,OAAO,IACT,GAGWk3C,IAAgBl5C,EAAAA,EAAAA,eAA8B,CACzDm5C,UAAWH,GACXI,eACE,IAISC,GAAmBA,KAAMn5C,EAAAA,EAAAA,YAAWg5C,IAWpCI,GAAwBA,EACnCC,aAAaP,GACb54C,eAKA,MAAM,UAAE+4C,EAAS,aAAEC,GAhBFG,KACjB,MAAOC,EAAKC,IAAU9tD,EAAAA,EAAAA,UAA2B4tD,GAEjD,MAAO,CACLJ,UAAWK,EACXJ,aAAeI,GAAQC,EAAOD,GAC/B,EAUmCE,CAAUH,GAE9C,OACEr4C,EAAAA,EAAAA,KAACg4C,GAAc/3C,SAAQ,CAAC9Z,MAAO,CAAE8xD,YAAWC,iBACzCh5C,EACsB,ECnCvBu5C,GAAUt4C,EAAA,OAAA1U,OAAA,aAAA0U,CAAA,IAqChB,OA5Beu4C,EAAGx5C,eAChB,MAAM,UAAE+4C,EAAS,aAAEC,GAAiBC,KAC9BQ,EAAcV,GAAWF,MAE/B,OACE/3C,EAAAA,EAAAA,KAACy4C,GAAU,CAACxxC,KAAK,WACdvG,EAAAA,SAASC,IAAIzB,GAAW0B,IAEvB,IAAIC,EAAAA,EAAAA,gBAAeD,GAAQ,CACzB,MAAM,cAAEE,KAAkBP,GAASK,EAAMxD,MACnC26C,EAAQx3C,EAAKw3C,MAEnB,OAAO92C,EAAAA,EAAAA,cAAaL,EAAO,CACzBjT,IAAKoqD,EACLl2C,SAAU82C,IAAgBZ,EAC1B72C,QAASA,IACPy3C,IAAgBZ,GAChBG,EAAa,CACXH,QACAj3C,cAAeA,EAAc5L,KAAK,KAAMqL,MAGhD,KAES,EClCV,MAAMq4C,GAAOz4C,EAAA,UAAA1U,OAAA,aAAA0U,CAAA,yEAMT,EAAG1L,WAAYA,EAAM5G,OAAOmB,YAAU,gBACjC,EAAG6S,WAAUpN,WACzBoN,EAAWpN,EAAM5G,OAAOS,YAAcmG,EAAM5G,OAAOO,aAAW,6KAehD,EAAGyT,WAAUpN,WACzBoN,EAAWpN,EAAM5G,OAAOS,YAAcmG,EAAM5G,OAAOQ,sBAAoB,MCE7E,OA1BYwqD,EACV33C,UACAW,WACA+F,OACAlB,eACAqxC,YAGE/3C,EAAAA,EAAAA,KAAC44C,GAAO,CACN3xC,KAAK,MACLpH,GAAK,GAAEk4C,IACP,gBAAel2C,EACf,gBAAe6E,EACf1F,SAAU,EACVa,SAAUA,EACV4E,MAAOmB,EACP1G,QAASA,KAEgB,mBAAZA,GACTA,GACF,GAED0G,GCvBA,MAAMkxC,GAAY34C,EAAA,UAAA1U,OAAA,YAAA0U,CAAA,oHASd,EAAG1L,WAAYA,EAAM5G,OAAOmB,YAAU,gBACjC,EAAG6S,WAAUpN,WACzBoN,EAAWpN,EAAM5G,OAAOS,YAAcmG,EAAM5G,OAAOO,aAAW,gBAClD,EAAGyT,WAAUpN,WACzBoN,EAAY,iBAAgBpN,EAAM5G,OAAOkB,eAAiB,MAAI,oEAQhD,EAAG8S,WAAUpN,WACzBoN,EAAWpN,EAAM5G,OAAOS,YAAcmG,EAAM5G,OAAOQ,sBAAoB,kICvBhE0qD,GAAgBtkD,IAAiBC,EAAAA,EAAAA,KAAG,4DAItCD,EAAM5G,OAAOoB,aAAY,qBAIvB+pD,GAAmBvkD,IAAiBC,EAAAA,EAAAA,KAAG,0DAIzCD,EAAM5G,OAAOmB,WAAU,+BCuBlC,OA7BiBiqD,EACfC,UACAC,aACAt3C,WACAX,UACAwF,eACAqxC,YAEA,MAAMtjD,GAAQuN,EAAAA,EAAAA,YACd,OACEhC,EAAAA,EAAAA,KAAC84C,GAAY,CACX7xC,KAAK,MACLpH,GAAK,GAAEk4C,IACP,gBAAel2C,EACf,gBAAe6E,EACf1F,SAAU,EACVa,SAAUA,EACV4E,MAAQ,GAAEyyC,KAAWC,IACrBj4C,QAASA,KAEgB,mBAAZA,GACTA,GACF,IAEFlB,EAAAA,EAAAA,KAAA,KAAGtL,IAAKqkD,GAAatkD,IAASykD,IAC9Bl5C,EAAAA,EAAAA,KAAA,KAAGtL,IAAKskD,GAAgBvkD,IAAS0kD,GACpB,EC9BZ,MCoBD9xC,GAAwB,CAC5BpW,KAAM,CDIawD,IAAiBC,EAAAA,EAAAA,KAAG,SAC9BD,EAAM5G,OAAOoD,KAAI,qBAENwD,EAAM5G,OAAOqD,OAAM,iDAGnCuD,EAAM5G,OAAOqD,OAAM,aACnBuD,EAAM5G,OAAOyD,cAAa,uCAEFmD,EAAM5G,OAAO2D,aAAY,YAlC7BkD,EAAAA,EAAAA,KAAG,oBACPD,EAAM5G,OAAOoD,KAAI,YCqBrCQ,OAAQ,CDeagD,IAAiBC,EAAAA,EAAAA,KAAG,SAChCD,EAAM5G,OAAO4D,OAAM,qBAERgD,EAAM5G,OAAO6D,SAAQ,iDAGrC+C,EAAM5G,OAAO6D,SAAQ,aACrB+C,EAAM5G,OAAO+D,gBAAe,uCAEJ6C,EAAM5G,OAAOgE,gBAAe,YA3C9B6C,EAAAA,EAAAA,KAAG,oBACTD,EAAM5G,OAAO4D,OAAM,YCmBvCd,MAAO,CDsCa8D,IAAiBC,EAAAA,EAAAA,KAAG,SAC/BD,EAAM5G,OAAO8C,MAAK,qBAEP8D,EAAM5G,OAAO+C,QAAO,kDAGpC6D,EAAM5G,OAAO2C,eAAc,aAC3BiE,EAAM5G,OAAO+C,QAAO,uCAEI6D,EAAM5G,OAAO4C,eAAc,YAhE9BiE,EAAAA,EAAAA,KAAG,oBACRD,EAAM5G,OAAO8C,MAAK,YCiBtCsB,UAAW,CDiDawC,IAAiBC,EAAAA,EAAAA,KAAG,SACnCD,EAAM5G,OAAOoE,UAAS,qBAEXwC,EAAM5G,OAAOqE,YAAW,iDAGxCuC,EAAM5G,OAAOqE,YAAW,aACxBuC,EAAM5G,OAAOwE,mBAAkB,uCAEPoC,EAAM5G,OAAOsE,kBAAiB,YAzE7BuC,EAAAA,EAAAA,KAAG,oBACZD,EAAM5G,OAAOoE,UAAS,YCe1CM,OAAQ,CD4DakC,IAAiBC,EAAAA,EAAAA,KAAG,SAChCD,EAAM5G,OAAO0E,OAAM,qBAERkC,EAAM5G,OAAO6E,gBAAe,kDAG5C+B,EAAM5G,OAAO6E,gBAAe,aAC5B+B,EAAM5G,OAAO2E,SAAQ,uCAEGiC,EAAM5G,OAAO8E,gBAAe,YAlF9B+B,EAAAA,EAAAA,KAAG,oBACTD,EAAM5G,OAAO0E,OAAM,YCavCgB,UAAW,CDkFakB,IAAiBC,EAAAA,EAAAA,KAAG,SACnCD,EAAM5G,OAAO0F,UAAS,qBAEXkB,EAAM5G,OAAO2F,YAAW,kDAGxCiB,EAAM5G,OAAO2F,YAAW,aACxBiB,EAAM5G,OAAO8F,mBAAkB,uCAEPc,EAAM5G,OAAO+F,mBAAkB,YAtG9Bc,EAAAA,EAAAA,KAAG,oBACZD,EAAM5G,OAAO0F,UAAS,YCW1CT,KAAM,CDqEa2B,IAAiBC,EAAAA,EAAAA,KAAG,SAC9BD,EAAM5G,OAAOiF,KAAI,qBAEN2B,EAAM5G,OAAOkF,OAAM,iDAGnC0B,EAAM5G,OAAOwF,cAAa,UAC1BoB,EAAM5G,OAAOkF,OAAM,kCAEK0B,EAAM5G,OAAO4F,kBAAiB,YAvFlCiB,EAAAA,EAAAA,KAAG,oBACPD,EAAM5G,OAAOiF,KAAI,YCSrChB,WAAY,CDqBa2C,IAAiBC,EAAAA,EAAAA,KAAG,SACpCD,EAAM5G,OAAO8D,cAAa,qBAEf8C,EAAM5G,OAAO+D,gBAAe,iDAG5C6C,EAAM5G,OAAO+D,gBAAe,aAC5B6C,EAAM5G,OAAOkE,aAAY,uCAED0C,EAAM5G,OAAOmE,aAAY,YArCvB0C,EAAAA,EAAAA,KAAG,oBACbD,EAAM5G,OAAOiE,WAAU,aCoB7C,OAXYsnD,EACVxkD,QAAQ,SACRyL,OAAO,SACPpK,YACAiJ,eAEAc,EAAAA,EAAAA,KAACsH,GAAK,CAAC1S,MAAOA,EAAOyL,KAAMA,EAAM3L,IAAK2S,GAAUzS,GAAQqB,UAAWA,GAChEiJ,GCxCE,MAAMm6C,GAAYl5C,EAAA,YAAA1U,OAAA,aAAA0U,CAAA,2BAGT,EAAG1L,WAAYA,EAAM5G,OAAOG,OAAK,mHAMjC,EAAGyG,WAAa,qBAAoBA,EAAM5G,OAAOe,QAAM,WAE5D,EAAG6F,WAAYA,EAAM5G,OAAOmB,YAAU,uHAWpC,EAAGyF,WAAYA,EAAM5G,OAAOoB,cAAY,yBAInC,EAAGwF,WACd,qBAAoBA,EAAM5G,OAAOoB,gBAAc,yBAIpC,EAAGwF,WAAa,qBAAoBA,EAAM5G,OAAOiB,UAAQ,uBAI9D,EAAG2F,WAAa,GAAEA,EAAM5G,OAAOe,QAAM,gBAChC,EAAG6F,WAAa,qBAAoBA,EAAM5G,OAAOe,QAAM,gBACvD,EAAG6F,WAAYA,EAAM5G,OAAOO,aAAW,0BAG1C,EAAGqG,WAAYA,EAAM5G,OAAOe,MAAI,OCN/C,OA/BiB0qD,EACfpjD,OACA2gB,cACAjL,WACAm/B,mBACAjhC,YAAW,EACXyvC,OAAO,GACPC,eACAC,YACAhzC,YAEA,IAAKmF,EACH,MAAM,IAAIviB,MAAM,wDAGlB,MAAM,SAAEshB,KAAalP,GAAYmQ,EAAS1V,EAAM60C,GAEhD,OACE/qC,EAAAA,EAAAA,KAACq5C,GAAYrkD,EAAA,CACX6K,GAAK,eAAc3J,IACnB2gB,YAAaA,EACb/M,SAAUA,EACVyvC,KAAMA,EACNE,UAAWA,EACX9uC,UAAUrkB,EAAAA,GAAAA,SAAQkzD,EAAc7uC,GAChClE,MAAOA,GACHhL,GACJ,EC5BN,MAAMi+C,GAA2C,CAC/C/uD,MAAO,MACPggD,QAAS,eACTF,MAAO,gBAGIkP,GAAkBx5C,EAAA,QAAA1U,OAAA,YAAA0U,CAAA,8EAUpB,EAAG1L,QAAOu2C,SAAS,WAAcv2C,EAAM5G,OAAO6rD,GAAY1O,KAAQ,KCH7E,OAduB4O,EACrB3yC,OACA+jC,SACAlhC,WACA5K,eAEA8rC,EAASlhC,EAAW,QAAUkhC,GAE5BhrC,EAAAA,EAAAA,KAAC25C,GAAkB,CAAC1yC,KAAMA,EAAM+jC,OAAQA,GACrC9rC,ICPqC,IAAAlD,GAAA,CAAA9F,KAAA,SAAAE,OAAA,yDAuD5C,OAnDkByjD,EAChBC,WACA5jD,OACAyG,QACAqW,SACA+mC,aACApP,UACA7gC,WACA2vC,eACGr8C,MAEH,MAAO48C,EAAWR,GAAgBjyC,IAAAA,SAAe,GAE3CyjC,EAASL,EAAU,UAAY33B,EAAS,QAAU,QAKxD,OACEhT,EAAAA,EAAAA,KAAAuH,IAAAA,SAAA,MACEvH,EAAAA,EAAAA,KAACiL,GAAK,CAACC,QAAU,eAAchV,KAASyG,GAEvCm9C,GACC95C,EAAAA,EAAAA,KAACs5C,GAAQtkD,EAAA,CACPkB,KAAMA,EACN4T,SAAUA,EACV2vC,UAAWA,EACXD,aAZap0D,GACnBo0D,EAAap0D,EAAEqwB,cAActvB,MAAMgE,SAYzBiT,KAGN4C,EAAAA,EAAAA,KAACi6C,GAAKjlD,EAAA,CAACkB,KAAMA,EAAM80C,OAAQA,EAAQlhC,SAAUA,GAAc1M,KAG7D4C,EAAAA,EAAAA,KAAA,OACEtL,IAAGsH,KAKHgE,EAAAA,EAAAA,KAAC45C,GAAc,CAAC3yC,KAAK,SAAS+jC,OAAQA,EAAQlhC,SAAUA,GACrDkJ,EAASA,GAAQuB,QAAUwlC,IAE9B/5C,EAAAA,EAAAA,KAAC45C,GAAc,CAAC3yC,KAAK,SAClBwyC,EAAa,GAAEO,OAAeP,IAAc,OAGhD,ECrDA,MAAMS,GAAY/5C,EAAO8K,GAAK,CAAAxf,OAAA,YAAZ0U,CAAa,uJAY9B,EAAG1L,WAAa,iBAAgBA,EAAM5G,OAAOgD,WAAS,mLCwC9D,OA/CcspD,EACZt6C,KACA3J,OAAO,GACP/P,QACA0lB,YACA3C,aACAyC,aACAhB,WACA/C,OACA3R,gBAEA,MAAMxB,GAAQuN,EAAAA,EAAAA,YAERgK,GAAYC,EAAAA,EAAAA,UACX7C,EAAWC,IAAgB5e,EAAAA,EAAAA,WAAS,GACrC2vD,EAAUv6C,GAAMmM,EAEtB,OACEhM,EAAAA,EAAAA,KAACk6C,GAAS,CACRhvC,QAASkvC,EACTnkD,UAAWA,EACX8T,aAAcA,IAAMV,GAAa,GACjCW,aAAcA,IAAMX,GAAa,KACjCrJ,EAAAA,EAAAA,KAAA,SACEH,GAAIu6C,EACJxzC,KAAK,QACLzgB,MAAOA,EACPkmB,QAASR,EACTlB,SAAUA,IAA0B,mBAAbA,GAA2BA,EAASxkB,GAC3D2jB,SAAUZ,EACVsD,SAAUb,EACVzV,KAAMA,KAER8J,EAAAA,EAAAA,KAACoG,GAAI,CACHlQ,KAAM2V,EAAY,WAAa,SAC/BxL,KAAM,GACNzL,MACEH,EAAM5G,OACJqb,EAAa,gBAAkBE,EAAY,UAAY,WAI5DxB,GAAO5H,EAAAA,EAAAA,KAAA,QAAM,cAAaH,GAAK+H,GAAe,KACrC,ECjDT,MAAMyyC,GAAcl6C,EAAA,OAAA1U,OAAA,YAAA0U,CAAA,IC8C3B,OAzCmBm6C,EACjBpkD,OACAyV,aACAF,eACAd,WACAzL,WACAjJ,gBAEA,MAAOskD,EAAaC,IAAkB/vD,EAAAA,EAAAA,UAASghB,GAEzCgvC,EAAsBt0D,IAC1Bq0D,EAAer0D,GACfwkB,EAASxkB,EAAM,EAGjB,OACE6Z,EAAAA,EAAAA,KAACq6C,GAAc,CACbpzC,KAAK,aACL,gBAAe0E,EACf1V,UAAWA,GACVyK,EAAAA,SAASC,IAAIzB,GAAW0B,IAEvB,IAAIC,EAAAA,EAAAA,gBAAeD,IAAUA,EAAMgG,OAASuzC,GAAO,CACjD,MAAM,GAAEt6C,EAAE,MAAE1Z,EAAK,WAAE+iB,EAAU,KAAEtB,GAAShH,EAAMxD,MAE9C,OAAO6D,EAAAA,EAAAA,cAAaL,EAAO,CACzBjT,IAAKkS,EACL3J,OACA/P,QACA0lB,UAAW0uC,IAAgBp0D,EAC3B+iB,aACAyC,aACA/D,OACA+C,SAAU8vC,GAEd,KAEa,ECVrB,OA1BuBC,EACrBxkD,OACAyV,cAAa,EACbwD,UACAjQ,cACG9B,MAEH,MAAM,MAAEsW,GAAU/B,GAAiB,CACjCxC,UACAjZ,OACAod,MAAO,CAAE9G,SAAUb,KAGrB,OACE3L,EAAAA,EAAAA,KAACs6C,GAAUtlD,EAAA,CACTkB,KAAMwd,EAAMxd,KACZyU,SAAWxkB,IACTutB,EAAM/I,SAASxkB,EAAgC,EAEjDwlB,WAAYA,GACRvO,GACH8B,EACU,ECjBjB,OAJwBy7C,EAAGC,MAAKC,SAAQz9C,MAC/B4C,EAAAA,EAAAA,KAAA,MAAAhL,EAAA,CAAK4lD,IAAKA,EAAKC,IAAKA,GAASz9C,ICFtC,OALU+C,EAAA,QAAA1U,OAAA,YAAA0U,CAAA,CAAAjK,KAAA,UAAAE,OAAA,oCCWV,OAXe+J,EAAA,OAAA1U,OAAA,aAAA0U,CAAA,CAAAjK,KAAA,SAAAE,OAAA,mFCIf,OAJgB+J,EAAA,OAAA1U,OAAA,aAAA0U,CAAA,CAAAjK,KAAA,UAAAE,OAAA,kBCuBhB,OAxBmB+J,EAAA,OAAA1U,OAAA,YAAA0U,CAAA,mLAYH,EAAG1L,QAAO46C,gBACtBA,GAEK,6BAA4B56C,EAAM5G,OAAOoF,oBAAoBwB,EAAM5G,OAAOmF,aAAW,KAE1F,EAAGyB,WAAYA,EAAMN,aAAaG,IAAE,+CCdU,IAAA0H,GAAA,CAAA9F,KAAA,UAAAE,OAAA,qCAgFlD,OA9EkB0kD,EAChBC,aAAY,EACZ1wC,WAAW,OACXglC,aACAznC,OACA1I,eAEA,MAAM87C,GAAe5uD,EAAAA,EAAAA,QAAuB,MACtC0iD,GAAc1iD,EAAAA,EAAAA,QAA8B,OAC3CrB,EAAOkwD,IAAYxwD,EAAAA,EAAAA,UAAiB,IACpCywD,EAAcC,IAAmB1wD,EAAAA,EAAAA,UACtC,CAAC,GAAK,OAEAM,MAAOqwD,IAAgB5wD,EAAAA,GAAAA,iBACzBiK,GAAQuN,EAAAA,EAAAA,YAERq5C,EAAWL,EAAazvD,QAAUyvD,EAAazvD,QAAQ+4B,YAAc,EACrEg3B,EAAuB,UAAbjxC,EAehB,OAbAjf,EAAAA,EAAAA,YAAU,KACR,GAAI4vD,EAAazvD,SAAWujD,EAAYvjD,QAAS,CAC/C,MAAMgwD,EAAU,CACdhxC,IAAKukC,EAAYvjD,QAAQ05B,UACzB3a,KAAMwkC,EAAYvjD,QAAQy5B,WAC1Bj6B,MAAO+jD,EAAYvjD,QAAQ+4B,YAC3B1H,MAAOkyB,EAAYvjD,QAAQ+4B,YAAcwqB,EAAYvjD,QAAQy5B,YAE/Di2B,EAASI,GACTF,EAAgBI,EAClB,IACC,CAACxwD,EAAO+jD,EAAYvjD,QAAS6vD,KAG9Bp7C,EAAAA,EAAAA,KAACuH,IAAAA,SAAc,KACZwzC,GACC/6C,EAAAA,EAAAA,KAACw7C,GAAa,CACZ,cAAc,aAAYnxC,IAC1BhN,IAAK29C,EACLtmD,IACEwmD,GAAgB,EACdxmD,EAAAA,EAAAA,KAAG,OACMwmD,EAAa3wC,IAAM,EAAC,WACnB+wC,EAAU,OAAS,MAAK,wBACTJ,IAAe7wC,GAAS,aAE7C5V,EAAMN,aAAaG,GAAE,SACbgnD,EAAU,QAAU,MAAK,YAGrCvwD,EAAQ,IACN2J,EAAAA,EAAAA,KAAG,QACO4mD,EAAU,MAAQ,OAAM,cACnBA,EACR,aAAYJ,IAAe7wC,GAAYtf,aACvC,aAAYmwD,IAAe7wC,cAAoB,IAElD5V,EAAMN,aAAaG,GAAE,SACbgnD,EAAU,MAAQ,OAAM,YAGtCvwD,EAAQ,IAAEiR,IAOdqzC,WAAYA,GACXznC,GAED,KACHL,IAAAA,aAAmBrI,EAAU,CAC5B7B,IAAMA,GAAgCyxC,EAAYvjD,QAAU8R,IAE/C,EC/Ed,MAAMo+C,GAAchnD,IAAiBC,EAAAA,EAAAA,KAAG,6UA8B7BD,EAAM5G,OAAOS,YAAW,2BAIxBmG,EAAM5G,OAAOe,KAAI,YAGpB6F,EAAM5G,OAAOiB,OAAM,MAI9B2F,EAAMN,aAAaG,GAAE,6ECrCZonD,GAAcA,EACzBnkC,QACAokC,eACAllC,eACAvV,cAEA,MAAO06C,EAAWC,IAAgBpxD,EAAAA,EAAAA,UAASgsB,GAAgBc,EAAM,IAC3DukC,EAAe1kC,GAA0B,KAC7CykC,EAAazkC,GACblW,EAAQkW,EAAK,EAGf,OACEpX,EAAAA,EAAAA,KAACuH,IAAAA,SAAc,KACZgQ,EAAM5W,KAAKyW,IACV,MAAMvV,EAAW+5C,EAAU/7C,KAAOuX,EAAKvX,KAAOuX,EAAKlO,WACnD,OACElJ,EAAAA,EAAAA,KAAC4I,GAAM,CACLjb,IAAKypB,EAAKvX,GACV,eAAcgC,EACdoH,QAAQ,YACR5I,KAAK,QACL6I,WAAYkO,EAAKlO,WACjB,gBAAekO,EAAKlO,WACpBhI,QAAS46C,EAAY1kC,GACrB1iB,IAAG,CAAG+mD,GAAYE,EAAY,aAC9B1lD,UAAW4L,EAAW,SAAW,KACjC7B,EAAAA,EAAAA,KAACyuC,GAAU,CAACxlC,QAAQ,SAASmO,EAAKxP,MAC3B,IAGE,ECnCd,MAAMm0C,GAAQ57C,EAAA,KAAA1U,OAAA,YAAA0U,CAAA,CAAAjK,KAAA,UAAAE,OAAA,yBCGR4lD,GAAOA,EAAG98C,WAAU+8C,UAAS7+C,MACxC4C,EAAAA,EAAAA,KAAC+7C,GAAQ/mD,EAAA,CAACinD,KAAMA,GAAU7+C,IACxB4C,EAAAA,EAAAA,KAACyuC,GAAU,CAACxlC,QAAQ,YAAY/J,G","sources":["webpack://SSACore/webpack/universalModuleDefinition","webpack://SSACore/webpack/runtime/create fake namespace object","webpack://SSACore/../hooks/dist/index.js","webpack://SSACore/../utils/dist/index.js","webpack://SSACore/external umd \"@emotion/react\"","webpack://SSACore/external umd \"react\"","webpack://SSACore/external umd \"react-dom\"","webpack://SSACore/webpack/bootstrap","webpack://SSACore/webpack/runtime/compat get default export","webpack://SSACore/webpack/runtime/define property getters","webpack://SSACore/webpack/runtime/hasOwnProperty shorthand","webpack://SSACore/webpack/runtime/make namespace object","webpack://SSACore/./src/themes/main.ts","webpack://SSACore/./src/styles/global.ts","webpack://SSACore/./src/styles/safari-focus-outline.ts","webpack://SSACore/../../node_modules/.pnpm/@babel+runtime@7.21.5/node_modules/@babel/runtime/helpers/esm/extends.js","webpack://SSACore/../../node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/extends.js","webpack://SSACore/../../node_modules/.pnpm/@emotion+memoize@0.8.1/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","webpack://SSACore/../../node_modules/.pnpm/@emotion+is-prop-valid@1.2.1/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","webpack://SSACore/../../node_modules/.pnpm/@emotion+utils@1.2.1/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","webpack://SSACore/../../node_modules/.pnpm/@emotion+unitless@0.8.1/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","webpack://SSACore/../../node_modules/.pnpm/@emotion+serialize@1.1.2/node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","webpack://SSACore/../../node_modules/.pnpm/@emotion+use-insertion-effect-with-fallbacks@1.0.1_react@18.2.0/node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","webpack://SSACore/../../node_modules/.pnpm/@emotion+styled@11.11.0_@emotion+react@11.11.1_@types+react@18.2.8_react@18.2.0/node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","webpack://SSACore/../../node_modules/.pnpm/@emotion+hash@0.9.1/node_modules/@emotion/hash/dist/emotion-hash.esm.js","webpack://SSACore/./src/components/AccordionGroup/AccordionContext.tsx","webpack://SSACore/./src/components/AccordionGroup/AccordionGroup.tsx","webpack://SSACore/./src/components/CardContent/CardContentBase.tsx","webpack://SSACore/./src/components/CardContent/CardContent.tsx","webpack://SSACore/./src/components/AccordionGroup/styles.ts","webpack://SSACore/./src/components/AccordionGroup/AccordionContent.tsx","webpack://SSACore/./src/components/CardHeader/CardHeaderBase.tsx","webpack://SSACore/./src/components/Icon/icons/Calendar.tsx","webpack://SSACore/./src/components/Icon/icons/iconsList.tsx","webpack://SSACore/./src/components/Icon/icons/index.tsx","webpack://SSACore/./src/components/Icon/icons/Diet.tsx","webpack://SSACore/./src/components/Icon/icons/Home.tsx","webpack://SSACore/./src/components/Icon/icons/Stats.tsx","webpack://SSACore/./src/components/Icon/icons/Sleep.tsx","webpack://SSACore/./src/components/Icon/icons/Trainings.tsx","webpack://SSACore/./src/components/Icon/icons/Measurements.tsx","webpack://SSACore/./src/components/Icon/icons/Settings.tsx","webpack://SSACore/./src/components/Icon/icons/Plus.tsx","webpack://SSACore/./src/components/Icon/icons/Minus.tsx","webpack://SSACore/./src/components/Icon/icons/More.tsx","webpack://SSACore/./src/components/Icon/icons/MoreVertical.tsx","webpack://SSACore/./src/components/Icon/icons/Check.tsx","webpack://SSACore/./src/components/Icon/icons/CheckCircle.tsx","webpack://SSACore/./src/components/Icon/icons/Cross.tsx","webpack://SSACore/./src/components/Icon/icons/User.tsx","webpack://SSACore/./src/components/Icon/icons/Union.tsx","webpack://SSACore/./src/components/Icon/icons/Notification.tsx","webpack://SSACore/./src/components/Icon/icons/Information.tsx","webpack://SSACore/./src/components/Icon/icons/Warning.tsx","webpack://SSACore/./src/components/Icon/icons/Attention.tsx","webpack://SSACore/./src/components/Icon/icons/Visible.tsx","webpack://SSACore/./src/components/Icon/icons/Invisible.tsx","webpack://SSACore/./src/components/Icon/icons/LogOut.tsx","webpack://SSACore/./src/components/Icon/icons/LogIn.tsx","webpack://SSACore/./src/components/Icon/icons/Email.tsx","webpack://SSACore/./src/components/Icon/icons/Lock.tsx","webpack://SSACore/./src/components/Icon/icons/CarrotDown.tsx","webpack://SSACore/./src/components/Icon/icons/CarrotUp.tsx","webpack://SSACore/./src/components/Icon/icons/CarrotLeft.tsx","webpack://SSACore/./src/components/Icon/icons/CarrotRight.tsx","webpack://SSACore/./src/components/Icon/icons/RadioOn.tsx","webpack://SSACore/./src/components/Icon/icons/Circle.tsx","webpack://SSACore/./src/components/Icon/icons/ArrowUp.tsx","webpack://SSACore/./src/components/Icon/icons/ArrowDown.tsx","webpack://SSACore/./src/components/Icon/icons/Filter.tsx","webpack://SSACore/./src/components/Icon/icons/Search.tsx","webpack://SSACore/./src/components/Icon/icons/Archive.tsx","webpack://SSACore/./src/components/Icon/icons/Bin.tsx","webpack://SSACore/./src/components/Icon/icons/Change.tsx","webpack://SSACore/./src/components/Icon/icons/Copy.tsx","webpack://SSACore/./src/components/Icon/icons/Robot.tsx","webpack://SSACore/./src/components/Icon/icons/Chart.tsx","webpack://SSACore/./src/components/Icon/icons/Clock.tsx","webpack://SSACore/./src/components/Icon/Icon.tsx","webpack://SSACore/./src/components/AccordionGroup/AccordionTitle.tsx","webpack://SSACore/./src/components/Card/CardBase.tsx","webpack://SSACore/./src/components/AccordionGroup/Accordion.tsx","webpack://SSACore/./src/components/Avatar/Avatar.tsx","webpack://SSACore/./src/components/Badge/BadgeBase.tsx","webpack://SSACore/./src/components/Badge/styles.ts","webpack://SSACore/./src/components/Badge/Badge.tsx","webpack://SSACore/./src/components/Wrapper/Wrapper.tsx","webpack://SSACore/./src/components/Button/ButtonBase.tsx","webpack://SSACore/./src/components/Button/ButtonText.tsx","webpack://SSACore/./src/components/Button/styles.ts","webpack://SSACore/./src/components/Button/Button.tsx","webpack://SSACore/./src/components/Card/Card.tsx","webpack://SSACore/./src/components/CardHeader/CardHeader.tsx","webpack://SSACore/./src/components/ColorPicker/styles.ts","webpack://SSACore/./src/components/ColorPicker/ColorPicker.tsx","webpack://SSACore/./src/components/Label/LabelBase.tsx","webpack://SSACore/./src/components/Label/Label.tsx","webpack://SSACore/./src/components/Checkbox/styles.tsx","webpack://SSACore/./src/components/Checkbox/CheckboxBase.tsx","webpack://SSACore/./src/components/Checkbox/Checkbox.tsx","webpack://SSACore/../../node_modules/.pnpm/react-hook-form@7.46.1_react@18.2.0/node_modules/react-hook-form/dist/index.esm.mjs","webpack://SSACore/./src/components/FormCheckbox/FormCheckbox.tsx","webpack://SSACore/./src/components/DropdownToggle/DropdownToggle.tsx","webpack://SSACore/./src/components/DropdownArrow/DropdownArrow.tsx","webpack://SSACore/./src/components/Dropdown/Dropdown.context.ts","webpack://SSACore/./src/components/DropdownOption/DropdownOption.tsx","webpack://SSACore/./src/components/DropdownOptions/DropdownOptions.tsx","webpack://SSACore/./src/components/Dropdown/Dropdown.tsx","webpack://SSACore/./src/components/DropdownBase/DropdownBase.tsx","webpack://SSACore/../../node_modules/.pnpm/@floating-ui+utils@0.1.1/node_modules/@floating-ui/utils/dom/dist/floating-ui.utils.dom.mjs","webpack://SSACore/../../node_modules/.pnpm/@floating-ui+utils@0.1.1/node_modules/@floating-ui/utils/react/dist/floating-ui.utils.react.mjs","webpack://SSACore/../../node_modules/.pnpm/@floating-ui+utils@0.1.1/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","webpack://SSACore/../../node_modules/.pnpm/@floating-ui+core@1.4.1/node_modules/@floating-ui/core/dist/floating-ui.core.mjs","webpack://SSACore/../../node_modules/.pnpm/@floating-ui+dom@1.5.1/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","webpack://SSACore/../../node_modules/.pnpm/@floating-ui+react-dom@2.0.2_react-dom@18.2.0_react@18.2.0/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","webpack://SSACore/../../node_modules/.pnpm/tabbable@6.1.2/node_modules/tabbable/dist/index.esm.js","webpack://SSACore/../../node_modules/.pnpm/@floating-ui+react@0.25.4_react-dom@18.2.0_react@18.2.0/node_modules/@floating-ui/react/dist/floating-ui.react.mjs","webpack://SSACore/./src/components/Input/InputBase.tsx","webpack://SSACore/./src/components/Input/InputGroup.tsx","webpack://SSACore/./src/components/Input/styles.ts","webpack://SSACore/./src/components/Input/InputStatusError.tsx","webpack://SSACore/./src/components/Input/InputStatusSuccess.tsx","webpack://SSACore/./src/components/Input/Input.tsx","webpack://SSACore/./src/components/Modal/Modal.context.tsx","webpack://SSACore/./src/components/Modal/Modal.tsx","webpack://SSACore/./src/components/ModalDismissButton/ModalDismissButton.tsx","webpack://SSACore/./src/components/ModalDialog/ModalDialog.tsx","webpack://SSACore/./src/components/ModalContent/ModalContent.tsx","webpack://SSACore/./src/components/ModalOpenButton/ModalOpenButton.tsx","webpack://SSACore/./src/components/Popover/hooks/usePopover.tsx","webpack://SSACore/./src/components/Popover/hooks/usePopoverContext.tsx","webpack://SSACore/./src/components/Popover/Popover.tsx","webpack://SSACore/./src/components/Popover/PopoverClose.tsx","webpack://SSACore/./src/components/Popover/PopoverContent.tsx","webpack://SSACore/./src/components/Typography/styles.ts","webpack://SSACore/./src/components/Typography/Typography.tsx","webpack://SSACore/./src/components/Popover/PopoverDescription.tsx","webpack://SSACore/./src/components/Popover/PopoverHeading.tsx","webpack://SSACore/./src/components/Popover/PopoverTrigger.tsx","webpack://SSACore/./src/components/MultipleDropdown/MultipleDropdown.context.ts","webpack://SSACore/./src/components/MultipleDropdownOptions/MultipleDropdownOptions.tsx","webpack://SSACore/./src/components/MultipleDropdownNotification/MultipleDropdownNotification.tsx","webpack://SSACore/./src/components/MultipleDropdown/MultipleDropdown.tsx","webpack://SSACore/./src/components/MultipleDropdown/utils.ts","webpack://SSACore/./src/components/Progress/Progress.tsx","webpack://SSACore/./src/components/ProgressBar/styles.ts","webpack://SSACore/./src/components/ProgressBar/ProgressBar.tsx","webpack://SSACore/../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/native.js","webpack://SSACore/../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/rng.js","webpack://SSACore/../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/stringify.js","webpack://SSACore/../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/v4.js","webpack://SSACore/./src/components/ProgressCircle/ProgressCircleBase.tsx","webpack://SSACore/./src/components/ProgressCircle/ProgressCircleOuter.tsx","webpack://SSACore/./src/components/ProgressCircle/ProgressCircleInner.tsx","webpack://SSACore/./src/components/ProgressCircle/ProgressCircle.tsx","webpack://SSACore/./src/components/ProgressLegend/ProgressLegend.tsx","webpack://SSACore/./src/components/ProgressLegendItem/ProgressLegendItem.tsx","webpack://SSACore/./src/components/ProgressVertical/ProgressVertical.tsx","webpack://SSACore/./src/components/Stepper/Stepper.context.ts","webpack://SSACore/./src/components/Stepper/Stepper.tsx","webpack://SSACore/./src/components/Step/Step.context.ts","webpack://SSACore/./src/components/StepConnector/style.ts","webpack://SSACore/./src/components/StepConnector/StepConnector.tsx","webpack://SSACore/./src/components/Step/Step.tsx","webpack://SSACore/./src/components/StepLabel/styles.ts","webpack://SSACore/./src/components/StepLabel/StepLabel.tsx","webpack://SSACore/./src/components/Switch/SwitchBase.tsx","webpack://SSACore/./src/components/Switch/SwitchContext.tsx","webpack://SSACore/./src/components/Switch/Switch.tsx","webpack://SSACore/./src/components/Table/Table.tsx","webpack://SSACore/./src/components/TableCell/TableCell.tsx","webpack://SSACore/./src/components/TableHead/TableHead.tsx","webpack://SSACore/./src/components/TableRow/TableRow.tsx","webpack://SSACore/./src/components/TableBody/TableBody.tsx","webpack://SSACore/./src/components/Tooltip/useTooltip.tsx","webpack://SSACore/./src/components/Tooltip/useTooltipContext.tsx","webpack://SSACore/./src/components/Tooltip/Tooltip.tsx","webpack://SSACore/./src/components/TooltipTrigger/TooltipTrigger.tsx","webpack://SSACore/./src/components/Tooltip/TooltipArrow.tsx","webpack://SSACore/./src/components/Tooltip/TooltipContentBase.tsx","webpack://SSACore/./src/components/Tooltip/styles.ts","webpack://SSACore/./src/components/Tooltip/utils.tsx","webpack://SSACore/./src/components/TooltipContent/TooltipContent.tsx","webpack://SSACore/./src/components/Tooltip/SimpleChartTooltip.tsx","webpack://SSACore/./src/components/Tooltip/ProgressChartTooltip.tsx","webpack://SSACore/./src/components/TabBar/TabBarContext.tsx","webpack://SSACore/./src/components/TabBar/TabBar.tsx","webpack://SSACore/./src/components/Tab/TabBase.tsx","webpack://SSACore/./src/components/Tab/Tab.tsx","webpack://SSACore/./src/components/LargeTab/LargeTabBase.tsx","webpack://SSACore/./src/components/LargeTab/styles.ts","webpack://SSACore/./src/components/LargeTab/LargeTab.tsx","webpack://SSACore/./src/components/Tag/styles.ts","webpack://SSACore/./src/components/Tag/Tag.tsx","webpack://SSACore/./src/components/Textarea/TextareaBase.tsx","webpack://SSACore/./src/components/Textarea/Textarea.tsx","webpack://SSACore/./src/components/FormHelperText/FormHelperTextBase.tsx","webpack://SSACore/./src/components/FormHelperText/FormHelperText.tsx","webpack://SSACore/./src/components/TextField/TextField.tsx","webpack://SSACore/./src/components/Radio/RadioBase.tsx","webpack://SSACore/./src/components/Radio/Radio.tsx","webpack://SSACore/./src/components/RadioGroup/RadioGroupBase.tsx","webpack://SSACore/./src/components/RadioGroup/RadioGroup.tsx","webpack://SSACore/./src/components/FormRadioGroup/FormRadioGroup.tsx","webpack://SSACore/./src/components/ResponsiveImage/ResponsiveImage.tsx","webpack://SSACore/./src/components/Form/Form.tsx","webpack://SSACore/./src/components/FormGroup/FormGroup.tsx","webpack://SSACore/./src/components/FormAction/FormAction.tsx","webpack://SSACore/./src/components/Indicator/IndicatorBase.tsx","webpack://SSACore/./src/components/Indicator/Indicator.tsx","webpack://SSACore/./src/components/ButtonGroup/styles.ts","webpack://SSACore/./src/components/ButtonGroup/ButtonGroup.tsx","webpack://SSACore/./src/components/Link/LinkBase.ts","webpack://SSACore/./src/components/Link/Link.tsx"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@emotion/react\"), require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"@emotion/react\", \"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"SSACore\"] = factory(require(\"@emotion/react\"), require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"SSACore\"] = factory(root[\"@emotion/react\"], root[\"react\"], root[\"react-dom\"]);\n})(self, function(__WEBPACK_EXTERNAL_MODULE__435__, __WEBPACK_EXTERNAL_MODULE__156__, __WEBPACK_EXTERNAL_MODULE__111__) {\nreturn ","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"react\")):\"function\"==typeof define&&define.amd?define([\"react\"],t):\"object\"==typeof exports?exports.SSAHooks=t(require(\"react\")):e.SSAHooks=t(e.react)}(self,(function(e){return function(){var t={468:function(e){self,e.exports=function(){\"use strict\";var e={d:function(t,n){for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})}},t={};e.r(t),e.d(t,{assocPath:function(){return m},callAll:function(){return r},dateFormatters:function(){return n},debounce:function(){return u},dissocPath:function(){return w},generateRange:function(){return g},mapObjIndexed:function(){return h},path:function(){return y},pathOr:function(){return S},prop:function(){return b},propOr:function(){return v},throttle:function(){return o}});var n={};e.r(n),e.d(n,{formatDate:function(){return f},formatDayOfWeek:function(){return s},formatTime:function(){return a},getTimeAgo:function(){return d},printDayOfTheWeek:function(){return l}});const r=(...e)=>(...t)=>e.forEach((e=>e?.(...t))),o=(e,t)=>{let n=!1,r=null,o=null;return[function u(...i){n?r=i:(n=!0,e(...i),o=setTimeout((()=>{n=!1,r&&(u(...r),r=null)}),t))},function(){o&&clearTimeout(o)}]},u=(e,t=200)=>{let n=null;return[(...r)=>{n&&clearTimeout(n),n=setTimeout((()=>{n&&clearTimeout(n),e(...r)}),t)},function(){n&&clearTimeout(n)}]},i=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],c={year:31536e3,month:2592e3,week:604800,day:86400,hour:3600,min:60},a=e=>new Date(e).toLocaleTimeString(\"en-US\",{hour:\"2-digit\",minute:\"2-digit\"}),s=e=>i[new Date(e).getDay()],f=e=>new Date(e).toLocaleDateString(\"en-US\",{day:\"2-digit\",month:\"short\"}),l=e=>{switch(e){case 0:return\"Sun\";case 1:return\"Mon\";case 2:return\"Tue\";case 3:return\"Wed\";case 4:return\"Thu\";case 5:return\"Fri\";case 6:return\"Sat\"}},d=e=>{const t=new Date(e).getTime();if(Number.isNaN(t))throw new Error(\"Invalid date\");const n=Math.floor((Date.now()-t)/1e3);let r;for(const e in c)if(r=Math.floor(n/c[e]),r>=1)return`${r} ${e}${r>1?\"s\":\"\"} ago`;return\"Just Now\"},h=(e,t)=>Object.keys(t).reduce(((n,r)=>(n[r]=e(t[r],r,t),n)),{}),p=(e,t,n)=>{for(let r=t;r<n;++r)e.push(r)};var g=(e,t)=>{if(null==e||!Number.isInteger(e))throw new Error(\"Pages count should be an integer\");if(e<=0)return[];let n=[1];if(1===e)return n;if(null!=t&&!Number.isInteger(t))throw new Error(\"Selected page should be an integer\");if(null!=t&&(t<1||t>e))throw new Error(`Selected page ${t} is out of range`);if(t&&t>2){const r=((e,t)=>{const n=[];return t!==e&&n.push(t),t>1&&n.unshift(t-1),t+1<e&&n.push(t+1),n})(e,t),[o,,u]=r;o-2>1?n.push(-1):p(n,2,o),n=n.concat(r),e-u>2?n.push(-1):p(n,u+1,e)}else e<=5?p(n,2,e):n.push(2,3,-1);return n.push(e),n};const m=([e,...t],n)=>r=>JSON.parse(JSON.stringify({...r,[e]:t.length?m(t,n)(r[e]):n})),w=e=>t=>{const n=JSON.parse(JSON.stringify(t));return e.reduce(((t,n,r)=>(r===e.length-1&&delete t[n],t[n])),n),n},y=e=>t=>e.reduce(((e,t)=>e?.[t]),t),S=(e,t)=>n=>{const r=y(t)(n);return null==r?e:r},b=e=>t=>t?.[e],v=(e,t)=>n=>{const r=b(t)(n);return null==r?e:r};return t}()},156:function(t){\"use strict\";t.exports=e}},n={};function r(e){var o=n[e];if(void 0!==o)return o.exports;var u=n[e]={exports:{}};return t[e](u,u.exports,r),u.exports}r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})};var o={};return function(){\"use strict\";r.r(o),r.d(o,{useApi:function(){return t},useClickOutside:function(){return u},usePaginationRange:function(){return c},useTextSizeDecrease:function(){return l},useWindowSize:function(){return n}});var e=r(156);function t(t,n){const[r,o]=(0,e.useState)(!1),[u,i]=(0,e.useState)(null),[c,a]=(0,e.useState)(n);return{isLoading:r,error:u,data:c,query:async(...e)=>{o(!0),i(null);try{const n=await t(...e);a(n)}catch(e){i(e)}finally{o(!1)}}}}const n=()=>{const[t,n]=(0,e.useState)({width:window.innerWidth,height:window.innerHeight});return(0,e.useEffect)((()=>{function e(){n({width:window.innerWidth,height:window.innerHeight})}return window.addEventListener(\"resize\",e),e(),()=>window.removeEventListener(\"resize\",e)}),[]),t},u=(t,n)=>{const r=[\"mousedown\",\"touchstart\"];(0,e.useEffect)((()=>{const e=e=>{null==t.current||t.current.contains(e.target)||n(e)};return r.forEach((t=>document.addEventListener(t,e))),()=>r.forEach((t=>document.removeEventListener(t,e)))}),[t,n])};var i=r(468);const c=({pagesCount:t,selectedPage:n})=>(0,e.useMemo)((()=>(0,i.generateRange)(t,n)),[t,n]),a=/(\\d+\\.?\\d+)(\\S+)/,s=(e,t)=>e.scrollWidth>Number(t?.clientWidth),f=(e,t)=>{const n=window.getComputedStyle(e).fontSize.match(a);if(n){const[,r,o]=n;e.style.fontSize=`${Number(r)-t}${o}`}},l=(t=5,r=1)=>{const o=(0,e.useRef)(null),u=(0,e.useRef)(0),{width:i}=n();return(0,e.useEffect)((()=>{(()=>{if(null==o.current)return;const e=o.current,n=e.parentNode;let i=s(e,n);for(;u.current<t&&i;)f(e,r),i=s(e,n),++u.current;i&&(e.style.wordBreak=\"break-all\")})()}),[o,i]),o}}(),o}()}));\n//# sourceMappingURL=index.js.map","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.SSAUtils=t():e.SSAUtils=t()}(self,(function(){return function(){\"use strict\";var e={d:function(t,n){for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})}},t={};e.r(t),e.d(t,{assocPath:function(){return m},callAll:function(){return r},dateFormatters:function(){return n},debounce:function(){return u},dissocPath:function(){return S},generateRange:function(){return g},mapObjIndexed:function(){return h},path:function(){return y},pathOr:function(){return b},prop:function(){return w},propOr:function(){return T},throttle:function(){return o}});var n={};e.r(n),e.d(n,{formatDate:function(){return l},formatDayOfWeek:function(){return f},formatTime:function(){return a},getTimeAgo:function(){return d},printDayOfTheWeek:function(){return s}});const r=(...e)=>(...t)=>e.forEach((e=>e?.(...t))),o=(e,t)=>{let n=!1,r=null,o=null;return[function u(...i){n?r=i:(n=!0,e(...i),o=setTimeout((()=>{n=!1,r&&(u(...r),r=null)}),t))},function(){o&&clearTimeout(o)}]},u=(e,t=200)=>{let n=null;return[(...r)=>{n&&clearTimeout(n),n=setTimeout((()=>{n&&clearTimeout(n),e(...r)}),t)},function(){n&&clearTimeout(n)}]},i=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],c={year:31536e3,month:2592e3,week:604800,day:86400,hour:3600,min:60},a=e=>new Date(e).toLocaleTimeString(\"en-US\",{hour:\"2-digit\",minute:\"2-digit\"}),f=e=>i[new Date(e).getDay()],l=e=>new Date(e).toLocaleDateString(\"en-US\",{day:\"2-digit\",month:\"short\"}),s=e=>{switch(e){case 0:return\"Sun\";case 1:return\"Mon\";case 2:return\"Tue\";case 3:return\"Wed\";case 4:return\"Thu\";case 5:return\"Fri\";case 6:return\"Sat\"}},d=e=>{const t=new Date(e).getTime();if(Number.isNaN(t))throw new Error(\"Invalid date\");const n=Math.floor((Date.now()-t)/1e3);let r;for(const e in c)if(r=Math.floor(n/c[e]),r>=1){return`${r} ${e}${r>1?\"s\":\"\"} ago`}return\"Just Now\"},h=(e,t)=>Object.keys(t).reduce(((n,r)=>(n[r]=e(t[r],r,t),n)),{}),p=(e,t,n)=>{for(let r=t;r<n;++r)e.push(r)};var g=(e,t)=>{if(null==e||!Number.isInteger(e))throw new Error(\"Pages count should be an integer\");if(e<=0)return[];let n=[1];if(1===e)return n;if(null!=t&&!Number.isInteger(t))throw new Error(\"Selected page should be an integer\");if(null!=t&&(t<1||t>e))throw new Error(`Selected page ${t} is out of range`);if(t&&t>2){const r=((e,t)=>{const n=[];return t!==e&&n.push(t),t>1&&n.unshift(t-1),t+1<e&&n.push(t+1),n})(e,t),[o,,u]=r;o-2>1?n.push(-1):p(n,2,o),n=n.concat(r),e-u>2?n.push(-1):p(n,u+1,e)}else e<=5?p(n,2,e):n.push(2,3,-1);return n.push(e),n};const m=([e,...t],n)=>r=>JSON.parse(JSON.stringify({...r,[e]:t.length?m(t,n)(r[e]):n})),S=e=>t=>{const n=JSON.parse(JSON.stringify(t));return e.reduce(((t,n,r)=>(r===e.length-1&&delete t[n],t[n])),n),n},y=e=>t=>e.reduce(((e,t)=>e?.[t]),t),b=(e,t)=>n=>{const r=y(t)(n);return null==r?e:r},w=e=>t=>t?.[e],T=(e,t)=>n=>{const r=w(t)(n);return null==r?e:r};return t}()}));\n//# sourceMappingURL=index.js.map","module.exports = __WEBPACK_EXTERNAL_MODULE__435__;","module.exports = __WEBPACK_EXTERNAL_MODULE__156__;","module.exports = __WEBPACK_EXTERNAL_MODULE__111__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { Theme } from '@emotion/react';\n\nconst main: Theme = {\n colors: {\n black25: 'rgba(0, 0, 0, 0.25)', // #000000\n black45: 'rgba(0, 0, 0, 0.45)', // #000000\n white: 'rgba(255, 255, 255, 1)', // #ffffff\n white80: 'rgba(255, 255, 255, 0.8)', // #ffffff\n white60: 'rgba(255, 255, 255, 0.6)', // #ffffff\n white30: 'rgba(255, 255, 255, 0.3)', // #ffffff\n greyLighter: 'rgba(238, 241, 247, 1)', // #eef1f7\n greySelectedMenuItem: 'rgba(222, 225, 236, 1)', // #dee1ec\n greyFocused: 'rgba(210, 212, 219, 1)', // #d2d4db\n greyFocused40: 'rgba(210, 212, 219, 0.4)', // #d2d4db\n greyDropdownMain: 'rgba(222, 224, 232, 1)', // #dee0e8\n greyDropdownFocused: 'rgba(128, 129, 131)', // #808183\n greyDropdownText: 'rgba(21, 21, 21, 1)', // #151515\n greyArrowSidebar: 'rgba(218, 219, 220)', // #dadbdc\n grey: 'rgba(195, 197, 204, 1)', // #c3c5cc\n grey20: 'rgba(43, 45, 49, 0.2)', // #c3c5cc\n grey40: 'rgba(43, 45, 49, 0.4)', // #c3c5cc\n greyShadow24: 'rgba(93, 102, 112, 0.24)', // #5d6670\n greyDarker: 'rgba(43, 45, 49, 1)', // #2b2d31\n greyDarker60: 'rgba(43, 45, 49, 0.6)', // #2b2d31\n greyDarker80: 'rgba(43, 45, 49, 0.8)', // #2b2d31\n greyDarker14: 'rgba(43, 45, 49, 0.14)', // #2b2d31\n greyDark: 'rgb(64, 72, 83)', // #404853\n greyDisabled: 'rgba(85, 87, 90, 1)', // #55575a\n greyDisabledCheckbox: 'rgba(164, 167, 171, 1)', // #A4A7AB\n greyButtonGradient: 'rgba(77, 82, 87, 1)', // #4d5257\n greyButtonGradientLight: 'rgba(94, 103, 114, 1)', // #5e6772\n greyBackground: 'rgb(64, 68, 73)', // #404449\n greyBackgroundLight: 'rgb(76, 84, 93)', // #4c545d\n greyPopoverLight: 'rgba(242, 244, 247, 1)', // #F2F4F7\n greyGraphite: 'rgba(71, 74, 80, 1)', //#474a50\n greyGraphite70: 'rgb(122, 124, 127, 0.7)', // #7a7c7f\n greyShadow: 'rgba(42, 48, 57, 0.08)', // #2a3039\n greyShadowHover: 'rgba(93, 102, 112, 0.24)', // #5d6670\n greyOutline: 'rgba(208,\t210,\t220, 1)', // #d0d2dc\n greyFilterIcon: 'rgb(133, 137, 147)', // #858993\n greyCancelClearButton: 'rgb(101, 101, 103)', // #656567\n redLighter: 'rgba(242, 136, 142, 1)', // #f2888e\n redLighter40: 'rgba(242, 136, 142, 0.4)', // #f2888e\n red: 'rgba(235, 117, 86, 1)', // #eb7556\n red40: 'rgba(235, 117, 86, 0.4)', // #eb7556\n greenLighter: 'rgba(137, 217, 150, 1)', // #89d996\n greenLighter20: 'rgba(137, 217, 150, 0.2)', // #89d996\n greenLighter40: 'rgba(137, 217, 150, 0.4)', // #89d996\n greenLighter60: 'rgba(137, 217, 150, 0.6)', // #89d996\n green: 'rgba(82, 197, 135, 1)', // #52c587\n green20: 'rgba(82, 197, 135, 0.2)', // #52c587\n green40: 'rgba(82, 197, 135, 0.4)', // #52c587\n green60: 'rgba(82, 197, 135, 0.6)', // #52c587\n greenMint: 'rgba(236, 253, 243, 1)', // #ecfdf3\n greenDark: 'rgba(11, 159, 67, 1)', // #0b9f43\n pink: 'rgba(240, 129, 107, 1)', // #f0816b\n pink20: 'rgba(240, 129, 107, 0.2)', // #f0816b\n pinkDark: 'rgba(221, 99, 75, 1)', // #DD634B\n pinkDarker: 'rgba(241, 132, 122, 1)', // #F1847A\n pinkLighter: 'rgba(249, 153, 144, 1)', // #f99990\n pinkLighter20: 'rgba(249, 153, 144, 0.2)', // #f99990\n pinkLighter40: 'rgba(249, 153, 144, 0.4)', // #f99990\n pinkShadow40: 'rgba(236, 119, 91, 0.4)', // #ec775b\n yellow: 'rgba(237, 153, 93, 1)', // #ed995d\n yellow20: 'rgba(237, 153, 93, 0.2)', // #ed995d\n yellowLighter: 'rgba(237, 186, 93, 1)', // #edba5d\n yellowLighter20: 'rgba(237, 186, 93, 0.2)', // #edba5d\n yellowLighter40: 'rgba(237, 186, 93, 0.4)', // #edba5d\n yellowWarm: 'rgba(237, 223, 93, 1)', // #eddf5d\n yellowWarm20: 'rgba(237, 223, 93, 0.2)', // #eddf5d\n yellowWarm40: 'rgba(237, 223, 93, 0.4)', // #eddf5d\n turquoise: 'rgba(65, 187, 187, 1)', // #41bbbb\n turquoise20: 'rgba(65, 187, 187, 0.2)', // #41bbbb\n turquoiseShadow40: 'rgba(143, 207, 207, 0.4)', // #8fcfcf\n turquoiseLighter: 'rgba(125, 203, 203, 1)', // #7dcbcb\n turquoiseLighter20: 'rgba(125, 203, 203, 0.2)', // #7dcbcb\n turquoiseLighter40: 'rgba(125, 203, 203, 0.4)', // #7dcbcb\n purple: 'rgba(123, 71, 235, 1)', // #7b47eb\n purple20: 'rgba(123, 71, 235, 0.2)', // #7b47eb\n purpleLighter: 'rgba(160, 120, 245, 1)', // #a078f5\n purpleLighter20: 'rgba(160, 120, 245, 0.2)', // #a078f5\n purpleLighter40: 'rgba(160, 120, 245, 0.4)', // #a078f5\n purpleDark: 'rgba(156, 122, 235, 1)', // #9c7aeb\n purpleDark40: 'rgba(156, 122, 235, 0.4)', // #9c7aeb\n blue: 'rgba(65, 120, 225, 1)', // #4178e1\n blue20: 'rgba(65, 120, 225, 0.2)', // #4178e1\n blueDark: 'rgba(36, 101, 227, 1)', // #2465e3\n blueLightDarker: 'rgba(127, 159, 221)', // #7f9fdd\n blueDropdownWithSelectedItems: 'rgba(236, 247, 255, 1)', // #ECF7FF\n blueDropdownWithSelectedItemsBorder: 'rgba(166, 213, 244, 1)', // #A6D5F4\n blueLighter: 'rgba(117, 153, 222, 1)', // #7599de\n blueLighter20: 'rgba(117, 153, 222, 0.2)', // #7599de\n blueLighter40: 'rgba(117, 153, 222, 0.4)', // #7599de\n blueLight: 'rgba(68, 179, 252, 1)', // #44b3fc\n blueLight20: 'rgba(68, 179, 252, 0.2)', // #44b3fc\n blueLightDarker40: 'rgba(127, 159, 221, 0.4)', // #7f9fdd\n blueLightLighter: 'rgba(133, 199, 242, 1)', // #85c7f2\n blueLightLighter20: 'rgba(133, 199, 242, 0.2)', // #85c7f2\n blueLightLighter40: 'rgba(133, 199, 242, 0.4)', // #85c7f2\n blueNotification: 'rgba(0, 133, 226, 1)', //#0085e2\n blueNotification40: 'rgba(0, 133, 226, 0.4)', //#0085e2\n blueButtonHoverGradientFrom: 'rgb(72, 122, 218)', //#487ada\n blueButtonHoverGradientTo: 'rgb(14, 75, 193)', //#0e4bc1\n blueButtonActive: 'rgb(7, 69, 189)', //#0745bd\n blueRoyal: 'rgba(72, 125, 225, 1)', //#487de1\n },\n mediaQueries: {\n xs: '@media screen and (max-width: 389px)',\n sm: '@media screen and (min-width: 390px)',\n md: '@media screen and (min-width: 900px)',\n lg: '@media screen and (min-width: 1440px)',\n xlg: '@media screen and (min-width: 1920px)',\n },\n};\n\nexport default main;\n","import { css, Theme } from '@emotion/react';\n\nexport const pink = (theme: Theme) => css`\n background-color: ${theme.colors.pink};\n background: linear-gradient(\n 99.26deg,\n ${theme.colors.pink},\n ${theme.colors.pinkLighter}\n );\n box-shadow: -4px 4px 10px ${theme.colors.pinkLighter40};\n`;\n\nexport const yellow = (theme: Theme) => css`\n background-color: ${theme.colors.yellow};\n background: linear-gradient(\n 90deg,\n ${theme.colors.yellow},\n ${theme.colors.yellowLighter}\n );\n box-shadow: -4px 4px 10px ${theme.colors.yellowLighter40};\n`;\n\nexport const yellowWarm = (theme: Theme) => css`\n background-color: ${theme.colors.yellowLighter};\n background: linear-gradient(\n 90deg,\n ${theme.colors.yellowLighter},\n ${theme.colors.yellowWarm}\n );\n box-shadow: -4px 4px 10px ${theme.colors.yellowLighter40};\n`;\n\nexport const green = (theme: Theme) => css`\n background-color: ${theme.colors.green};\n background: linear-gradient(\n 295.98deg,\n ${theme.colors.green},\n ${theme.colors.greenLighter}\n );\n box-shadow: -4px 4px 10px ${theme.colors.greenLighter40};\n`;\n\nexport const turquoise = (theme: Theme) => css`\n background-color: ${theme.colors.turquoise};\n background: linear-gradient(\n 116.22deg,\n ${theme.colors.turquoise},\n ${theme.colors.turquoiseLighter}\n );\n box-shadow: -4px 4px 10px ${theme.colors.turquoiseLighter40};\n`;\n\nexport const purple = (theme: Theme) => css`\n background-color: ${theme.colors.purple};\n background: linear-gradient(\n 243.84deg,\n ${theme.colors.purpleLighter},\n ${theme.colors.purple}\n );\n box-shadow: -4px 4px 10px ${theme.colors.purpleLighter40};\n`;\n\nexport const blue = (theme: Theme) => css`\n background-color: ${theme.colors.blue};\n background: linear-gradient(\n 90deg,\n ${theme.colors.blue},\n ${theme.colors.blueLighter}\n );\n box-shadow: -4px 4px 10px ${theme.colors.blueLighter40};\n`;\n\nexport const blueLight = (theme: Theme) => css`\n background-color: ${theme.colors.blueLight};\n background: linear-gradient(\n 247.37deg,\n ${theme.colors.blueLightLighter},\n ${theme.colors.blueLight}\n );\n box-shadow: -4px 4px 10px ${theme.colors.blueLightLighter40};\n`;\n\nexport const blueLightDarker = (theme: Theme) => css`\n background-color: ${theme.colors.blueLightDarker};\n background: linear-gradient(\n 247.37deg,\n ${theme.colors.blueDark},\n ${theme.colors.blueLightDarker}\n );\n box-shadow: -4px 4px 10px ${theme.colors.blueLightDarker40};\n`;\n","import { css, Theme, SerializedStyles } from '@emotion/react';\n\ntype OutlineFn = (\n theme: Theme,\n color?: keyof Theme['colors'],\n borderRadius?: string,\n borderStyle?: React.CSSProperties['borderStyle'],\n) => SerializedStyles;\n\n/* This is for Safari to make a rounded outline */\nexport const focusOutline: OutlineFn = (\n theme,\n color?,\n borderRadius = '12px',\n) => css`\n &:focus::before {\n ${outlineStyles(theme, color, borderRadius)}\n }\n`;\n\nexport const outlineStyles: OutlineFn = (\n theme,\n color?,\n borderRadius = '12px',\n borderStyle = 'solid',\n) => css`\n content: '';\n position: absolute;\n top: 0px;\n right: 0px;\n bottom: 0px;\n left: 0px;\n border-style: ${borderStyle};\n border-width: 1px;\n border-color: ${theme.colors[color || 'greyDarker']};\n border-radius: ${borderRadius};\n`;\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|element|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error(noComponentSelectorMessage);\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n if (process.env.NODE_ENV !== 'production') {\n if (tag === undefined) {\n throw new Error('You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.');\n }\n }\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n if (process.env.NODE_ENV !== 'production' && args[0][0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n if (process.env.NODE_ENV !== 'production' && args[0][i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[i], args[0][i]);\n }\n } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class\n\n\n var Styled = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = React.useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if ( // $FlowFixMe\n finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n newProps.ref = ref;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/React.createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && process.env.NODE_ENV !== 'production') {\n return 'NO_COMPONENT_SELECTOR';\n } // $FlowFixMe: coerce undefined to string\n\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n return createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport { createStyled as default };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","import { createContext, useState, useContext } from 'react';\nimport { AccordionProps, IAccordionGroupContext } from './types';\n\nexport const AccordionGroupContext = createContext<IAccordionGroupContext>(\n {} as IAccordionGroupContext,\n);\n\nexport const useAccordionGroupContext = () => useContext(AccordionGroupContext);\n\nconst useAccordionGroup = (): IAccordionGroupContext => {\n const [openedAccordions, setOpenedAccordions] = useState<AccordionProps[]>(\n [],\n );\n const [stayOpen, setStayOpen] = useState<boolean>(false);\n\n const toggleOpenedAccordion = (accordion: AccordionProps) => {\n const isOpened = !!openedAccordions.find(\n (activeAccordion) => activeAccordion.id === accordion.id,\n );\n if (stayOpen) {\n const newOpenedAccordions = isOpened\n ? openedAccordions.filter(\n (activeAccordion) => activeAccordion.id !== accordion.id,\n )\n : openedAccordions.concat([accordion]);\n setOpenedAccordions(newOpenedAccordions);\n } else {\n setOpenedAccordions(isOpened ? [] : [accordion]);\n }\n };\n\n return {\n openedAccordions,\n stayOpen,\n setOpenedAccordions,\n toggleOpenedAccordion,\n setStayOpen,\n };\n};\n\nexport const AccordionGroupContextProvider = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n const {\n openedAccordions,\n stayOpen,\n setOpenedAccordions,\n toggleOpenedAccordion,\n setStayOpen,\n } = useAccordionGroup();\n\n return (\n <AccordionGroupContext.Provider\n value={{\n openedAccordions,\n stayOpen,\n setOpenedAccordions,\n toggleOpenedAccordion,\n setStayOpen,\n }}>\n {children}\n </AccordionGroupContext.Provider>\n );\n};\n","import styled from '@emotion/styled';\nimport {\n Children,\n cloneElement,\n isValidElement,\n useEffect,\n useLayoutEffect,\n} from 'react';\nimport { useAccordionGroupContext } from './AccordionContext';\nimport { AccordionGroupProps, AccordionProps } from './types';\n\nconst AccordionBase = styled.div``;\n\nexport const AccordionGroup = ({\n children,\n size = 'empty',\n accordionsStayOpen = true,\n ...rest\n}: AccordionGroupProps) => {\n const {\n openedAccordions,\n setOpenedAccordions,\n toggleOpenedAccordion,\n setStayOpen,\n } = useAccordionGroupContext();\n\n useEffect(() => {\n setStayOpen(accordionsStayOpen);\n }, []);\n\n useLayoutEffect(() => {\n const initialAccordions: AccordionProps[] = [];\n Children.map(children, (child) => {\n if (isValidElement(child) && child.props.isOpened) {\n const { renderContent, renderTitle, ...rest } = child.props;\n initialAccordions.push({\n id: rest.id,\n renderContent: renderContent.bind(null, rest),\n renderTitle: renderTitle.bind(null, rest),\n });\n }\n });\n setOpenedAccordions(initialAccordions);\n }, []);\n\n return (\n <AccordionBase data-testid=\"accordion-group\" tabIndex={0} {...rest}>\n {Children.map(children, (child) => {\n if (isValidElement(child)) {\n const { renderContent, renderTitle, ...rest } = child.props;\n const id = rest.id;\n const isOpened = !!openedAccordions?.find(\n (activeAccordion) => activeAccordion.id === id,\n );\n\n return cloneElement(child, {\n key: id,\n isOpened,\n size,\n onClick: () =>\n toggleOpenedAccordion({\n id,\n renderContent: renderContent.bind(null, rest),\n renderTitle: renderTitle.bind(null, rest),\n }),\n });\n }\n })}\n </AccordionBase>\n );\n};\n","import styled from '@emotion/styled';\n\nconst CardContentBase = styled.div<{ direction?: string }>`\n display: flex;\n justify-content: space-between;\n\n flex-direction: ${({ direction }) => (direction ? direction : 'row')};\n align-items: ${({ direction }) =>\n direction === 'column' ? 'normal' : 'center'};\n`;\n\nexport default CardContentBase;\n","import { CommonProps } from '@global-types/emotion';\nimport CardContentBase from './CardContentBase';\n\nexport interface CardProps extends CommonProps {\n children: React.ReactNode;\n style?: React.CSSProperties;\n direction?: 'row' | 'row-reverse' | 'column' | 'column-reverse';\n className?: string;\n ariaLabelledby?: string;\n role?: string;\n}\n\nconst CardContent = ({ children, ...props }: CardProps) => (\n <CardContentBase {...props}>{children}</CardContentBase>\n);\n\nexport default CardContent;\n","import { css, Theme } from '@emotion/react';\n\nexport const wrapperStyles = {\n empty: css``,\n small: css`\n background: none;\n border-radius: 0;\n box-shadow: none;\n `,\n medium: css`\n border-radius: 0;\n box-shadow: none;\n `,\n large: css`\n margin-bottom: 25px;\n min-height: 70px;\n border-radius: 20px;\n padding: 0;\n &:last-child {\n margin-bottom: 0;\n }\n `,\n};\n\nexport const baseTitleStyles = css`\n user-select: none;\n align-items: center;\n cursor: pointer;\n border: none;\n`;\n\nexport const createTitleStyles = (theme: Theme, isActive?: boolean) => ({\n empty: css`\n ${baseTitleStyles}\n `,\n small: css`\n ${baseTitleStyles}\n color: ${theme.colors.white80};\n margin-bottom: 0;\n height: 20px;\n font-size: 16px;\n font-weight: 500;\n & svg {\n width: 16px;\n height: 16px;\n & path {\n stroke: ${theme.colors.greyArrowSidebar};\n stroke-width: 1.6px;\n }\n }\n `,\n medium: css`\n ${baseTitleStyles}\n color: ${theme.colors.greyDropdownText};\n margin-bottom: 0;\n height: 40px;\n font-weight: 500;\n font-size: 14px;\n padding: 11px 22px 9px 17px;\n border: 1px solid ${theme.colors.greyDropdownMain};\n border-radius: 5px;\n & svg {\n width: 16px;\n height: 8px;\n & path {\n stroke: ${theme.colors.greyDropdownText};\n stroke-width: 1.2px;\n }\n }\n `,\n large: css`\n ${baseTitleStyles}\n margin-bottom: 0;\n height: 70px;\n font-weight: 700;\n font-size: 20px;\n padding: 23px 22px 23px 30px;\n background: ${isActive ? theme.colors.greyLighter : 'none'};\n border-top-left-radius: 20px;\n border-top-right-radius: 20px;\n & svg {\n width: 20px;\n height: 10px;\n & path {\n stroke: ${theme.colors.greyDarker};\n stroke-width: 1.2px;\n }\n }\n `,\n});\n\nexport const createBaseContentStyles = (isActive?: boolean) => css`\n flex-direction: column;\n align-self: flex-start;\n height: ${isActive ? 'auto' : 0};\n max-height: ${isActive ? 'initial' : 0};\n overflow: ${isActive ? 'visible' : 'hidden'};\n align-items: flex-start;\n`;\n\nexport const createContentStyles = (theme: Theme, isActive?: boolean) => ({\n empty: css`\n ${createBaseContentStyles(isActive)};\n `,\n small: css`\n ${createBaseContentStyles(isActive)};\n color: ${theme.colors.white80};\n & p {\n color: ${theme.colors.white80};\n margin: 15px 0;\n }\n `,\n medium: css`\n ${createBaseContentStyles(isActive)};\n padding: ${isActive ? '18px 8px 23px 8px' : 0};\n `,\n large: css`\n ${createBaseContentStyles(isActive)};\n padding: ${isActive ? '19px 30px 23px 30px' : 0};\n `,\n});\n","import CardContent from '@components/CardContent';\nimport { RenderContentProps } from './types';\nimport { createContentStyles } from './styles';\nimport { useTheme } from '@emotion/react';\n\nexport const AccordionContent = ({\n isOpened,\n children,\n size = 'empty',\n ...rest\n}: RenderContentProps & {\n children: React.ReactNode;\n}) => {\n const theme = useTheme();\n const styles = createContentStyles(theme, isOpened);\n return (\n <CardContent css={styles[size]} {...rest}>\n {children}\n </CardContent>\n );\n};\n","import styled from '@emotion/styled';\n\nconst CardHeaderBase = styled.div<{ transparent?: boolean; hasIcon?: boolean }>`\n position: relative;\n\n display: flex;\n justify-content: space-between;\n\n width: 100%;\n margin-bottom: 20px;\n\n background: ${(props) => (props.transparent ? 'transparent' : 'initial')};\n\n padding-left: ${(props) => (props.hasIcon ? '30px' : null)};\n\n ${({ theme }) => theme.mediaQueries.md} {\n padding-left: ${(props) => (props.hasIcon ? '40px' : null)};\n }\n`;\n\nexport default CardHeaderBase;\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Calendar = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 20 20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>Calendar</title>\n <path\n d=\"M3.61111 0C1.6267 0 0 1.6267 0 3.61111V16.3889C0 18.3733 1.6267 20 3.61111 20H16.3889C18.3733 20 20 18.3733 20 16.3889V3.61111C20 1.6267 18.3733 0 16.3889 0H3.61111ZM3.61111 1.66667H16.3889C17.4723 1.66667 18.3333 2.52774 18.3333 3.61111V4.44444H1.66667V3.61111C1.66667 2.52774 2.52774 1.66667 3.61111 1.66667ZM1.66667 6.11111H18.3333V16.3889C18.3333 17.4723 17.4723 18.3333 16.3889 18.3333H3.61111C2.52774 18.3333 1.66667 17.4723 1.66667 16.3889V6.11111ZM5.27778 8.33333C4.90942 8.33333 4.55615 8.47966 4.29569 8.74013C4.03522 9.0006 3.88889 9.35387 3.88889 9.72222C3.88889 10.0906 4.03522 10.4438 4.29569 10.7043C4.55615 10.9648 4.90942 11.1111 5.27778 11.1111C5.64613 11.1111 5.9994 10.9648 6.25987 10.7043C6.52034 10.4438 6.66667 10.0906 6.66667 9.72222C6.66667 9.35387 6.52034 9.0006 6.25987 8.74013C5.9994 8.47966 5.64613 8.33333 5.27778 8.33333ZM10 8.33333C9.63164 8.33333 9.27837 8.47966 9.01791 8.74013C8.75744 9.0006 8.61111 9.35387 8.61111 9.72222C8.61111 10.0906 8.75744 10.4438 9.01791 10.7043C9.27837 10.9648 9.63164 11.1111 10 11.1111C10.3684 11.1111 10.7216 10.9648 10.9821 10.7043C11.2426 10.4438 11.3889 10.0906 11.3889 9.72222C11.3889 9.35387 11.2426 9.0006 10.9821 8.74013C10.7216 8.47966 10.3684 8.33333 10 8.33333ZM14.7222 8.33333C14.3539 8.33333 14.0006 8.47966 13.7401 8.74013C13.4797 9.0006 13.3333 9.35387 13.3333 9.72222C13.3333 10.0906 13.4797 10.4438 13.7401 10.7043C14.0006 10.9648 14.3539 11.1111 14.7222 11.1111C15.0906 11.1111 15.4438 10.9648 15.7043 10.7043C15.9648 10.4438 16.1111 10.0906 16.1111 9.72222C16.1111 9.35387 15.9648 9.0006 15.7043 8.74013C15.4438 8.47966 15.0906 8.33333 14.7222 8.33333ZM5.27778 13.3333C4.90942 13.3333 4.55615 13.4797 4.29569 13.7401C4.03522 14.0006 3.88889 14.3539 3.88889 14.7222C3.88889 15.0906 4.03522 15.4438 4.29569 15.7043C4.55615 15.9648 4.90942 16.1111 5.27778 16.1111C5.64613 16.1111 5.9994 15.9648 6.25987 15.7043C6.52034 15.4438 6.66667 15.0906 6.66667 14.7222C6.66667 14.3539 6.52034 14.0006 6.25987 13.7401C5.9994 13.4797 5.64613 13.3333 5.27778 13.3333ZM10 13.3333C9.63164 13.3333 9.27837 13.4797 9.01791 13.7401C8.75744 14.0006 8.61111 14.3539 8.61111 14.7222C8.61111 15.0906 8.75744 15.4438 9.01791 15.7043C9.27837 15.9648 9.63164 16.1111 10 16.1111C10.3684 16.1111 10.7216 15.9648 10.9821 15.7043C11.2426 15.4438 11.3889 15.0906 11.3889 14.7222C11.3889 14.3539 11.2426 14.0006 10.9821 13.7401C10.7216 13.4797 10.3684 13.3333 10 13.3333Z\"\n fill={fill}\n />\n </svg>\n);\n","// This file is also imported into the Button/Button.stories.tsx\n// and into the ./index.tsx\n// We need such a file to let webpack create a chunk for\n// the <Icon /> component which uses React.lazy().\n// If we import <Icon /> directly into the Button/Button.stories.tsx,\n// webpack will consider that as an objection to the chunk creation.\n//\n// Make sure the order in this array corresponds to the one in the\n// ./index.tsx\nexport const iconsList = [\n 'diet',\n 'calendar',\n 'home',\n 'stats',\n 'sleep',\n 'trainings',\n 'measurements',\n 'settings',\n 'plus',\n 'minus',\n 'more',\n 'more-vertical',\n 'check',\n 'check-circle',\n 'cross',\n 'user',\n 'union',\n 'notification',\n 'information',\n 'warning',\n 'attention',\n 'visible',\n 'invisible',\n 'log-out',\n 'log-in',\n 'email',\n 'lock',\n 'carrot-down',\n 'carrot-up',\n 'carrot-left',\n 'carrot-right',\n 'radio-on',\n 'circle',\n 'arrow-up',\n 'arrow-down',\n 'filter',\n 'search',\n 'archive',\n 'bin',\n 'change',\n 'copy',\n 'robot',\n 'chart',\n 'clock',\n] as const;\n","import { IconProps, IMapIcons } from '../types';\n\nimport { Calendar } from './Calendar';\nimport { Diet } from './Diet';\nimport { Home } from './Home';\nimport { Measurements } from './Measurements';\nimport { Settings } from './Settings';\nimport { Sleep } from './Sleep';\nimport { Stats } from './Stats';\nimport { Trainings } from './Trainings';\n\nimport { Plus } from './Plus';\nimport { Minus } from './Minus';\nimport { Cross } from './Cross';\nimport { Check } from './Check';\nimport { CheckCircle } from './CheckCircle';\nimport { More } from './More';\nimport { MoreVertical } from './MoreVertical';\nimport { Notification } from './Notification';\nimport { User } from './User';\nimport { Union } from './Union';\nimport { Visible } from './Visible';\nimport { Invisible } from './Invisible';\nimport { LogIn } from './LogIn';\nimport { LogOut } from './LogOut';\nimport { Email } from './Email';\nimport { Lock } from './Lock';\nimport { Information } from './Information';\nimport { Warning } from './Warning';\nimport { Attention } from './Attention';\n\nimport { CarrotDown } from './CarrotDown';\nimport { CarrotUp } from './CarrotUp';\nimport { CarrotLeft } from './CarrotLeft';\nimport { CarrotRight } from './CarrotRight';\n\nimport { RadioOn } from './RadioOn';\nimport { Circle } from './Circle';\n\nimport { ArrowUp } from './ArrowUp';\nimport { ArrowDown } from './ArrowDown';\n\nimport { iconsList } from './iconsList';\nimport { Filter } from './Filter';\nimport { Search } from './Search';\nimport { Archive } from './Archive';\nimport { Bin } from './Bin';\nimport { Change } from './Change';\nimport { Copy } from './Copy';\nimport { Robot } from './Robot';\nimport { Chart } from './Chart';\nimport { Clock } from './Clock';\n\nconst componentsList = [\n Diet,\n Calendar,\n Home,\n Stats,\n Sleep,\n Trainings,\n Measurements,\n Settings,\n Plus,\n Minus,\n More,\n MoreVertical,\n Check,\n CheckCircle,\n Cross,\n User,\n Union,\n Notification,\n Information,\n Warning,\n Attention,\n Visible,\n Invisible,\n LogOut,\n LogIn,\n Email,\n Lock,\n CarrotDown,\n CarrotUp,\n CarrotLeft,\n CarrotRight,\n RadioOn,\n Circle,\n ArrowUp,\n ArrowDown,\n Filter,\n Search,\n Archive,\n Bin,\n Change,\n Copy,\n Robot,\n Chart,\n Clock,\n];\n\nconst iconsMap: IMapIcons = iconsList.reduce((res, name, index) => {\n res[name] = componentsList[index];\n return res;\n}, {} as IMapIcons);\n\nconst IconMapComponent = ({ name, color, ...props }: IconProps) => {\n const Component = iconsMap[name];\n\n if (Component == null) {\n return null;\n }\n\n return <Component fill={color} {...props} />;\n};\nexport default IconMapComponent;\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Diet = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>Diet</title>\n <path\n d=\"M15.3794 1.6875C15.3294 1.68734 15.2788 1.69189 15.2278 1.70215C14.1195 1.92375 13.0319 2.82406 12.4431 3.96241C8.37168 4.3361 5.25 9.29549 5.25 15.5625C5.25 19.2844 8.27812 22.3125 12 22.3125C15.7219 22.3125 18.75 19.2844 18.75 15.5625C18.75 13.7303 18.0635 12.4566 17.3994 11.2251C16.7443 10.009 16.125 8.86013 16.125 7.125C16.125 5.77573 15.2807 4.62307 14.094 4.1587C14.5181 3.61873 15.077 3.26196 15.5222 3.17286C15.9283 3.09186 16.1917 2.69641 16.1104 2.29029C16.0395 1.93493 15.7292 1.68864 15.3794 1.6875ZM12.9441 5.43824C13.8714 5.4419 14.625 6.19689 14.625 7.125C14.625 9.2385 15.3982 10.6714 16.0796 11.9363C16.7077 13.1018 17.25 14.1086 17.25 15.5625C17.25 18.4575 14.895 20.8125 12 20.8125C9.105 20.8125 6.75 18.4575 6.75 15.5625C6.75 10.0089 9.49693 5.4871 12.884 5.4397C12.9054 5.44185 12.9236 5.43802 12.9441 5.43824ZM12 11.4375C10.2319 11.4375 9 13.6247 9 15.5874C9 17.5599 10.2337 18.9375 12 18.9375C13.7662 18.9375 15 17.5599 15 15.5874C15 13.6247 13.7681 11.4375 12 11.4375ZM12 12.9375C12.6611 12.9375 13.5 14.1849 13.5 15.5874C13.5 16.7109 12.9113 17.4375 12 17.4375C11.0887 17.4375 10.5 16.7109 10.5 15.5874C10.5 14.1849 11.3389 12.9375 12 12.9375Z\"\n fill={fill}\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Home = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 18 20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>Home</title>\n <path\n d=\"M8.97559 0.250119C8.81566 0.25558 8.66168 0.312041 8.53613 0.411252L1.42969 6.00988C0.527739 6.7207 0 7.80687 0 8.9552V18.5001C0 19.1819 0.568203 19.7501 1.25 19.7501H6.25C6.9318 19.7501 7.5 19.1819 7.5 18.5001V13.5001C7.5 13.3526 7.60248 13.2501 7.75 13.2501H10.25C10.3975 13.2501 10.5 13.3526 10.5 13.5001V18.5001C10.5 19.1819 11.0682 19.7501 11.75 19.7501H16.75C17.4318 19.7501 18 19.1819 18 18.5001V8.9552C18 7.80687 17.4723 6.7207 16.5703 6.00988L9.46387 0.411252C9.32518 0.301689 9.15225 0.244623 8.97559 0.250119ZM9 1.9552L15.6426 7.1886C16.1846 7.61578 16.5 8.26552 16.5 8.9552V18.2501H12V13.5001C12 12.5426 11.2075 11.7501 10.25 11.7501H7.75C6.79252 11.7501 6 12.5426 6 13.5001V18.2501H1.5V8.9552C1.5 8.26552 1.81537 7.61578 2.35742 7.1886L9 1.9552Z\"\n fill={fill}\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Stats = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 22 20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>Stats</title>\n <path\n d=\"M8.60653 3.62364C7.65543 3.81726 6.74357 4.19357 5.9236 4.73666C4.6787 5.56119 3.7015 6.73312 3.11555 8.10427C2.52961 9.47541 2.36125 10.9842 2.63175 12.4398C2.90226 13.8954 3.59949 15.2324 4.63526 16.2818C5.67104 17.3313 6.99885 18.0459 8.45078 18.3355C9.90272 18.625 11.4136 18.4764 12.7923 17.9085C14.1709 17.3405 15.3556 16.3787 16.1963 15.1447C16.7501 14.332 17.1383 13.4251 17.3444 12.4766L14.2451 12.4766C14.116 12.8294 13.943 13.1672 13.7288 13.4816C13.2234 14.2233 12.5114 14.8014 11.6827 15.1427C10.8541 15.4841 9.94598 15.5734 9.0733 15.3994C8.20061 15.2253 7.40253 14.7958 6.77997 14.165C6.15741 13.5343 5.73834 12.7306 5.57575 11.8557C5.41317 10.9809 5.51436 10.074 5.86654 9.24988C6.21873 8.42575 6.80608 7.72135 7.55433 7.22577C7.87147 7.01572 8.21151 6.84716 8.56596 6.72268L8.60653 3.62364ZM9.12977 2.0268C9.67978 1.96553 10.1232 2.41922 10.116 2.97178L10.0637 6.96592C10.0564 7.51848 9.59085 7.95088 9.06614 8.13122C8.82267 8.2149 8.58921 8.32964 8.37184 8.47361C7.87257 8.80429 7.48066 9.27429 7.24567 9.82419C7.01067 10.3741 6.94315 10.9792 7.05164 11.563C7.16013 12.1467 7.43975 12.683 7.85515 13.1038C8.27055 13.5247 8.80308 13.8113 9.38538 13.9274C9.96768 14.0436 10.5736 13.984 11.1265 13.7562C11.6795 13.5284 12.1546 13.1427 12.4917 12.6478C12.6385 12.4323 12.7563 12.2004 12.8432 11.958C13.0304 11.4357 13.4688 10.9759 14.0214 10.9759L18.0159 10.9759C18.5685 10.9759 19.0164 11.4252 18.9479 11.9743C18.7699 13.402 18.2526 14.776 17.4334 15.9785C16.4245 17.4593 15.0029 18.6135 13.3485 19.295C11.694 19.9765 9.88102 20.1548 8.13871 19.8074C6.39639 19.46 4.80302 18.6024 3.56008 17.343C2.31715 16.0837 1.48047 14.4793 1.15587 12.7326C0.83126 10.9858 1.0333 9.17532 1.73643 7.52995C2.43956 5.88458 3.61221 4.47826 5.10608 3.48882C6.31919 2.68535 7.69987 2.18609 9.12977 2.0268Z\"\n fill={fill}\n />\n <path\n d=\"M19.4116 7.47417C19.3221 7.00597 19.1878 6.54685 19.0098 6.10324C18.6446 5.19277 18.1026 4.3655 17.4148 3.66865C16.7271 2.97181 15.9069 2.41904 15.0013 2.04191C14.5601 1.85816 14.1028 1.71786 13.6358 1.62229L13.5952 4.72155C13.6706 4.74828 13.7454 4.77706 13.8193 4.80786C14.3637 5.03454 14.8566 5.36678 15.27 5.78562C15.6834 6.20446 16.0091 6.7017 16.2287 7.24894C16.2585 7.32331 16.2863 7.39842 16.312 7.47417H19.4116ZM21.0021 7.97651C21.0562 8.52571 20.5965 8.97504 20.0439 8.97504H16.0491C15.4964 8.97504 15.07 8.51513 14.8965 7.99278C14.8775 7.93573 14.8568 7.8792 14.8344 7.8233C14.6879 7.45815 14.4705 7.12637 14.1947 6.8469C13.9189 6.56743 13.59 6.34574 13.2268 6.19449C13.1712 6.17133 13.1149 6.1499 13.0581 6.1302C12.5381 5.94984 12.0838 5.51742 12.091 4.96481L12.1433 0.970385C12.1506 0.417779 12.6059 -0.0359408 13.1543 0.0253343C13.9929 0.119031 14.8143 0.330651 15.5939 0.655286C16.6806 1.10784 17.6648 1.77116 18.4901 2.60738C19.3154 3.44359 19.9658 4.43632 20.4041 5.52888C20.7185 6.31262 20.9194 7.13672 21.0021 7.97651Z\"\n fill={fill}\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Sleep = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>Sleep</title>\n <path\n d=\"M6.00833 2.0001C5.86499 2.002 5.7252 2.04501 5.60557 2.12402C4.00925 3.14394 2.65193 4.502 1.63258 6.0992C1.57541 6.18206 1.53552 6.2756 1.51529 6.37424C1.49506 6.47287 1.4949 6.57457 1.51482 6.67327C1.53474 6.77196 1.57434 6.86563 1.63124 6.94868C1.68814 7.03172 1.76119 7.10245 1.84601 7.15662C1.93084 7.2108 2.0257 7.24732 2.12495 7.264C2.22419 7.28068 2.32577 7.27718 2.42363 7.25371C2.52149 7.23024 2.61363 7.18728 2.69453 7.12739C2.77543 7.06751 2.84343 6.99192 2.89449 6.90516C3.79647 5.49188 4.99859 4.2891 6.41109 3.38663C6.55019 3.30043 6.65725 3.17103 6.71591 3.01821C6.77458 2.86538 6.78161 2.69754 6.73595 2.54034C6.69028 2.38314 6.59443 2.24522 6.46304 2.14766C6.33164 2.05011 6.17194 1.99828 6.00833 2.0001ZM17.9692 2.0001C17.8075 2.00312 17.6512 2.05841 17.5235 2.15772C17.3958 2.25703 17.3037 2.39502 17.2609 2.55107C17.2181 2.70711 17.2269 2.87282 17.286 3.02343C17.3451 3.17404 17.4514 3.30146 17.5889 3.38663C19.0014 4.2891 20.2035 5.49188 21.1055 6.90516C21.1566 6.99192 21.2246 7.06751 21.3055 7.12739C21.3864 7.18727 21.4785 7.23024 21.5764 7.25371C21.6742 7.27718 21.7758 7.28068 21.8751 7.26399C21.9743 7.24731 22.0692 7.2108 22.154 7.15662C22.2388 7.10244 22.3119 7.03172 22.3688 6.94868C22.4257 6.86563 22.4653 6.77196 22.4852 6.67327C22.5051 6.57457 22.5049 6.47287 22.4847 6.37424C22.4645 6.2756 22.4246 6.18206 22.3674 6.0992C21.3481 4.502 19.9907 3.14394 18.3944 2.12402C18.2684 2.04078 18.1202 1.99759 17.9692 2.0001ZM12 3.00512C6.76945 3.00512 2.51319 7.26371 2.51319 12.4971C2.51319 15.3532 3.80753 17.8881 5.80939 19.6298L4.72983 20.71C4.65795 20.779 4.60057 20.8617 4.56104 20.9532C4.5215 21.0448 4.50062 21.1432 4.49961 21.2429C4.49859 21.3426 4.51747 21.4415 4.55514 21.5338C4.5928 21.6261 4.6485 21.71 4.71896 21.7805C4.78942 21.851 4.87323 21.9067 4.96548 21.9444C5.05773 21.9821 5.15658 22.001 5.25622 22C5.35586 21.9989 5.4543 21.9781 5.54576 21.9385C5.63723 21.8989 5.71989 21.8415 5.78891 21.7696L7.01864 20.5392C8.47058 21.4429 10.168 21.9892 12 21.9892C13.832 21.9892 15.5294 21.4429 16.9814 20.5392L18.2111 21.7696C18.2801 21.8415 18.3628 21.8989 18.4542 21.9385C18.5457 21.9781 18.6441 21.9989 18.7438 22C18.8434 22.001 18.9423 21.9821 19.0345 21.9444C19.1268 21.9067 19.2106 21.851 19.281 21.7805C19.3515 21.71 19.4072 21.6261 19.4449 21.5338C19.4825 21.4415 19.5014 21.3426 19.5004 21.2429C19.4994 21.1432 19.4785 21.0448 19.439 20.9532C19.3994 20.8617 19.342 20.779 19.2702 20.71L18.1906 19.6298C20.1925 17.8881 21.4868 15.3532 21.4868 12.4971C21.4868 7.26371 17.2306 3.00512 12 3.00512ZM12 4.50386C16.421 4.50386 19.9889 8.07369 19.9889 12.4971C19.9889 16.9206 16.421 20.4904 12 20.4904C7.57898 20.4904 4.01111 16.9206 4.01111 12.4971C4.01111 8.07369 7.57898 4.50386 12 4.50386ZM10.8 13.3439L10.7992 7.7003C10.7992 7.3137 11.1125 7.00025 11.4991 7.0002C11.8857 7.00014 12.1992 7.31349 12.1992 7.70009L12.1999 12.6035L17.3302 11.3209C17.7053 11.2271 18.0853 11.4552 18.1791 11.8302C18.2729 12.2053 18.0448 12.5853 17.6698 12.6791L11.6698 14.1791C11.2947 14.2729 10.9147 14.0448 10.8209 13.6698C10.8 13.586 10.7951 13.5021 10.8043 13.4211C10.8015 13.3957 10.8001 13.37 10.8 13.3439Z\"\n fill={fill}\n />\n <path\n d=\"M5.60557 2.12402L5.63249 2.16616L5.63313 2.16574L5.60557 2.12402ZM6.00833 2.0001L6.00777 1.95011L6.00767 1.95011L6.00833 2.0001ZM1.63258 6.0992L1.67376 6.1276L1.67472 6.12609L1.63258 6.0992ZM1.51529 6.37424L1.46631 6.36419L1.51529 6.37424ZM1.51482 6.67327L1.56383 6.66337H1.56383L1.51482 6.67327ZM1.63124 6.94868L1.58999 6.97694H1.58999L1.63124 6.94868ZM2.12495 7.264L2.13323 7.21469H2.13323L2.12495 7.264ZM2.42363 7.25371L2.43529 7.30233H2.4353L2.42363 7.25371ZM2.69453 7.12739L2.66478 7.0872H2.66478L2.69453 7.12739ZM2.89449 6.90516L2.85232 6.87824L2.8514 6.8798L2.89449 6.90516ZM6.41109 3.38663L6.38475 3.34413L6.38417 3.3445L6.41109 3.38663ZM6.71591 3.01821L6.76259 3.03612L6.71591 3.01821ZM6.73595 2.54034L6.78396 2.52639V2.52639L6.73595 2.54034ZM6.46304 2.14766L6.43323 2.18781V2.18781L6.46304 2.14766ZM17.5235 2.15772L17.5542 2.19719L17.5235 2.15772ZM17.9692 2.0001L17.9684 1.95011L17.9683 1.95011L17.9692 2.0001ZM17.2609 2.55107L17.2126 2.53784V2.53784L17.2609 2.55107ZM17.5889 3.38663L17.6158 3.34449L17.6152 3.34413L17.5889 3.38663ZM21.1055 6.90516L21.1486 6.87978L21.1477 6.87826L21.1055 6.90516ZM21.3055 7.12739L21.3352 7.0872L21.3055 7.12739ZM21.5764 7.25371L21.588 7.20508L21.5764 7.25371ZM21.8751 7.26399L21.8668 7.21469L21.8751 7.26399ZM22.154 7.15662L22.1809 7.19876V7.19876L22.154 7.15662ZM22.3688 6.94868L22.3275 6.92041V6.92041L22.3688 6.94868ZM22.4852 6.67327L22.4362 6.66337V6.66337L22.4852 6.67327ZM22.3674 6.0992L22.3253 6.12611L22.3263 6.12759L22.3674 6.0992ZM18.3944 2.12402L18.3669 2.16575L18.3675 2.16616L18.3944 2.12402ZM5.80939 19.6298L5.84475 19.6652L5.88263 19.6273L5.84221 19.5921L5.80939 19.6298ZM4.72983 20.71L4.76448 20.746L4.7652 20.7453L4.72983 20.71ZM4.56104 20.9532L4.60694 20.9731L4.56104 20.9532ZM4.55514 21.5338L4.60143 21.5149L4.55514 21.5338ZM4.71896 21.7805L4.68359 21.8158L4.71896 21.7805ZM4.96548 21.9444L4.94657 21.9907H4.94657L4.96548 21.9444ZM5.25622 22L5.25571 21.95H5.25571L5.25622 22ZM5.54576 21.9385L5.52592 21.8926H5.52592L5.54576 21.9385ZM5.78891 21.7696L5.75354 21.7343L5.75283 21.735L5.78891 21.7696ZM7.01864 20.5392L7.04507 20.4967L7.01135 20.4758L6.98328 20.5039L7.01864 20.5392ZM16.9814 20.5392L17.0167 20.5039L16.9886 20.4758L16.9549 20.4967L16.9814 20.5392ZM18.2111 21.7696L18.2472 21.735L18.2465 21.7343L18.2111 21.7696ZM18.4542 21.9385L18.4741 21.8926L18.4542 21.9385ZM18.7438 22L18.7433 22.05L18.7438 22ZM19.0345 21.9444L19.0534 21.9907H19.0534L19.0345 21.9444ZM19.281 21.7805L19.3164 21.8158L19.281 21.7805ZM19.439 20.9532L19.3931 20.9731L19.439 20.9532ZM19.2702 20.71L19.2348 20.7453L19.2355 20.746L19.2702 20.71ZM18.1906 19.6298L18.1578 19.5921L18.1174 19.6273L18.1552 19.6652L18.1906 19.6298ZM10.7992 7.7003L10.8492 7.70029V7.70029L10.7992 7.7003ZM10.8 13.3439L10.85 13.3438L10.8 13.3439ZM11.4991 7.0002L11.4991 7.0502L11.4991 7.0002ZM12.1992 7.70009L12.1492 7.7001L12.1992 7.70009ZM12.1999 12.6035L12.1499 12.6035L12.1499 12.6675L12.2121 12.652L12.1999 12.6035ZM17.3302 11.3209L17.3181 11.2724L17.3302 11.3209ZM18.1791 11.8302L18.2276 11.8181L18.1791 11.8302ZM11.6698 14.1791L11.6819 14.2276H11.6819L11.6698 14.1791ZM10.8209 13.6698L10.8694 13.6576L10.8209 13.6698ZM10.8043 13.4211L10.8552 13.4269L10.854 13.4156L10.8043 13.4211ZM5.63313 2.16574C5.74477 2.092 5.87523 2.05187 6.00899 2.0501L6.00767 1.95011C5.85476 1.95213 5.70564 1.99801 5.57801 2.0823L5.63313 2.16574ZM1.67472 6.12609C2.69017 4.53503 4.0423 3.18216 5.63249 2.16616L5.57865 2.08189C3.97621 3.10571 2.61369 4.46898 1.59043 6.0723L1.67472 6.12609ZM1.56427 6.38428C1.58316 6.29223 1.62038 6.20493 1.67373 6.12759L1.59142 6.0708C1.53044 6.1592 1.48789 6.25898 1.46631 6.36419L1.56427 6.38428ZM1.56383 6.66337C1.54524 6.57126 1.54539 6.47634 1.56427 6.38428L1.46631 6.36419C1.44473 6.4694 1.44456 6.57788 1.46581 6.68316L1.56383 6.66337ZM1.67249 6.92041C1.61938 6.84291 1.58243 6.75549 1.56383 6.66337L1.46581 6.68316C1.48706 6.78844 1.5293 6.88835 1.58999 6.97694L1.67249 6.92041ZM1.87293 7.11448C1.79376 7.06392 1.72559 6.99792 1.67249 6.92041L1.58999 6.97694C1.65069 7.06552 1.72861 7.14097 1.8191 7.19876L1.87293 7.11448ZM2.13323 7.21469C2.04062 7.19912 1.95209 7.16504 1.87293 7.11448L1.8191 7.19876C1.90959 7.25655 2.01079 7.29551 2.11666 7.3133L2.13323 7.21469ZM2.41197 7.20509C2.32065 7.22699 2.22585 7.23025 2.13323 7.21469L2.11666 7.3133C2.22253 7.3311 2.3309 7.32737 2.43529 7.30233L2.41197 7.20509ZM2.66478 7.0872C2.58928 7.14309 2.5033 7.18318 2.41197 7.20509L2.4353 7.30233C2.53969 7.27729 2.63797 7.23146 2.72427 7.16758L2.66478 7.0872ZM2.8514 6.8798C2.80375 6.96078 2.74028 7.03132 2.66478 7.0872L2.72427 7.16758C2.81057 7.1037 2.88312 7.02307 2.93759 6.93052L2.8514 6.8798ZM6.38417 3.3445C4.96554 4.25088 3.75823 5.45886 2.85235 6.87826L2.93664 6.93206C3.83471 5.5249 5.03163 4.32733 6.43801 3.42877L6.38417 3.3445ZM6.66923 3.00029C6.61448 3.14292 6.51456 3.26369 6.38475 3.34413L6.43743 3.42913C6.58581 3.33718 6.70002 3.19914 6.76259 3.03612L6.66923 3.00029ZM6.68793 2.55429C6.73055 2.70101 6.72399 2.85765 6.66923 3.00029L6.76259 3.03612C6.82517 2.87311 6.83267 2.69408 6.78396 2.52639L6.68793 2.55429ZM6.43323 2.18781C6.55585 2.27885 6.64531 2.40757 6.68793 2.55429L6.78396 2.52639C6.73525 2.3587 6.63301 2.21158 6.49284 2.10752L6.43323 2.18781ZM6.00889 2.0501C6.16157 2.0484 6.31061 2.09676 6.43323 2.18781L6.49284 2.10752C6.35268 2.00345 6.18231 1.94816 6.00777 1.95011L6.00889 2.0501ZM17.5542 2.19719C17.6733 2.10451 17.8193 2.05291 17.9702 2.0501L17.9683 1.95011C17.7958 1.95333 17.629 2.01231 17.4928 2.11825L17.5542 2.19719ZM17.3091 2.56429C17.349 2.41865 17.435 2.28987 17.5542 2.19719L17.4928 2.11825C17.3566 2.22419 17.2583 2.37139 17.2126 2.53784L17.3091 2.56429ZM17.3326 3.00516C17.2774 2.86459 17.2691 2.70993 17.3091 2.56429L17.2126 2.53784C17.167 2.70429 17.1764 2.88105 17.2395 3.0417L17.3326 3.00516ZM17.6152 3.34413C17.4869 3.26464 17.3877 3.14572 17.3326 3.00516L17.2395 3.0417C17.3025 3.20236 17.4159 3.33828 17.5626 3.42914L17.6152 3.34413ZM21.1477 6.87826C20.2418 5.45886 19.0345 4.25088 17.6158 3.3445L17.562 3.42877C18.9684 4.32733 20.1653 5.5249 21.0634 6.93206L21.1477 6.87826ZM21.3352 7.0872C21.2597 7.03132 21.1963 6.96078 21.1486 6.8798L21.0624 6.93052C21.1169 7.02307 21.1894 7.1037 21.2757 7.16758L21.3352 7.0872ZM21.588 7.20508C21.4967 7.18318 21.4107 7.14309 21.3352 7.0872L21.2757 7.16758C21.362 7.23146 21.4603 7.27729 21.5647 7.30233L21.588 7.20508ZM21.8668 7.21469C21.7742 7.23025 21.6794 7.22699 21.588 7.20508L21.5647 7.30233C21.6691 7.32736 21.7775 7.3311 21.8833 7.3133L21.8668 7.21469ZM22.1271 7.11448C22.0479 7.16504 21.9594 7.19912 21.8668 7.21469L21.8833 7.3133C21.9892 7.29551 22.0904 7.25655 22.1809 7.19876L22.1271 7.11448ZM22.3275 6.92041C22.2744 6.99792 22.2062 7.06392 22.1271 7.11448L22.1809 7.19876C22.2714 7.14097 22.3493 7.06552 22.41 6.97694L22.3275 6.92041ZM22.4362 6.66337C22.4176 6.75549 22.3806 6.84291 22.3275 6.92041L22.41 6.97694C22.4707 6.88835 22.5129 6.78843 22.5342 6.68316L22.4362 6.66337ZM22.4357 6.38428C22.4546 6.47634 22.4548 6.57126 22.4362 6.66337L22.5342 6.68316C22.5554 6.57788 22.5553 6.4694 22.5337 6.36419L22.4357 6.38428ZM22.3263 6.12759C22.3796 6.20493 22.4168 6.29223 22.4357 6.38428L22.5337 6.36419C22.5121 6.25898 22.4696 6.1592 22.4086 6.0708L22.3263 6.12759ZM18.3675 2.16616C19.9577 3.18216 21.3098 4.53503 22.3253 6.12609L22.4096 6.0723C21.3863 4.46898 20.0238 3.10571 18.4214 2.08189L18.3675 2.16616ZM17.9701 2.0501C18.111 2.04775 18.2493 2.08806 18.3669 2.16574L18.422 2.0823C18.2876 1.99351 18.1295 1.94743 17.9684 1.95011L17.9701 2.0501ZM2.56319 12.4971C2.56319 7.2913 6.79709 3.05512 12 3.05512V2.95512C6.74181 2.95512 2.46319 7.23613 2.46319 12.4971H2.56319ZM5.84221 19.5921C3.85037 17.8591 2.56319 15.3376 2.56319 12.4971H2.46319C2.46319 15.3688 3.76469 17.9171 5.77657 19.6675L5.84221 19.5921ZM4.7652 20.7453L5.84475 19.6652L5.77402 19.5945L4.69447 20.6746L4.7652 20.7453ZM4.60694 20.9731C4.64383 20.8876 4.69739 20.8105 4.76447 20.746L4.69519 20.6739C4.61852 20.7476 4.55731 20.8358 4.51514 20.9334L4.60694 20.9731ZM4.5496 21.2434C4.55055 21.1504 4.57004 21.0585 4.60694 20.9731L4.51514 20.9334C4.47297 21.031 4.45069 21.1361 4.44961 21.2424L4.5496 21.2434ZM4.60143 21.5149C4.56628 21.4288 4.54866 21.3365 4.5496 21.2434L4.44961 21.2424C4.44853 21.3488 4.46867 21.4543 4.50884 21.5527L4.60143 21.5149ZM4.75432 21.7451C4.68856 21.6794 4.63658 21.6011 4.60143 21.5149L4.50884 21.5527C4.54902 21.6512 4.60843 21.7406 4.68359 21.8158L4.75432 21.7451ZM4.98439 21.8981C4.89829 21.8629 4.82008 21.8109 4.75432 21.7451L4.68359 21.8158C4.75875 21.891 4.84816 21.9505 4.94657 21.9907L4.98439 21.8981ZM5.25571 21.95C5.16272 21.9509 5.07048 21.9333 4.98439 21.8981L4.94657 21.9907C5.04499 22.0309 5.15043 22.051 5.25673 22.05L5.25571 21.95ZM5.52592 21.8926C5.44056 21.9295 5.34869 21.949 5.25571 21.95L5.25673 22.05C5.36302 22.0489 5.46803 22.0266 5.56561 21.9844L5.52592 21.8926ZM5.75283 21.735C5.68842 21.8021 5.61128 21.8557 5.52592 21.8926L5.56561 21.9844C5.66319 21.9422 5.75137 21.8809 5.82498 21.8042L5.75283 21.735ZM6.98328 20.5039L5.75354 21.7343L5.82427 21.805L7.05401 20.5745L6.98328 20.5039ZM12 21.9392C10.1782 21.9392 8.4898 21.396 7.04507 20.4967L6.99222 20.5816C8.45137 21.4899 10.1578 22.0392 12 22.0392V21.9392ZM16.9549 20.4967C15.5102 21.396 13.8218 21.9392 12 21.9392V22.0392C13.8422 22.0392 15.5486 21.4899 17.0078 20.5816L16.9549 20.4967ZM18.2465 21.7343L17.0167 20.5039L16.946 20.5745L18.1757 21.805L18.2465 21.7343ZM18.4741 21.8926C18.3887 21.8557 18.3116 21.8021 18.2472 21.735L18.175 21.8042C18.2486 21.8809 18.3368 21.9422 18.4344 21.9844L18.4741 21.8926ZM18.7443 21.95C18.6513 21.949 18.5594 21.9295 18.4741 21.8926L18.4344 21.9844C18.532 22.0266 18.637 22.0489 18.7433 22.05L18.7443 21.95ZM19.0156 21.8981C18.9295 21.9333 18.8373 21.9509 18.7443 21.95L18.7433 22.05C18.8496 22.051 18.955 22.0309 19.0534 21.9907L19.0156 21.8981ZM19.2457 21.7451C19.1799 21.8109 19.1017 21.8629 19.0156 21.8981L19.0534 21.9907C19.1518 21.9505 19.2412 21.891 19.3164 21.8158L19.2457 21.7451ZM19.3986 21.5149C19.3634 21.6011 19.3114 21.6794 19.2457 21.7451L19.3164 21.8158C19.3916 21.7406 19.451 21.6512 19.4912 21.5527L19.3986 21.5149ZM19.4504 21.2434C19.4513 21.3365 19.4337 21.4288 19.3986 21.5149L19.4912 21.5527C19.5313 21.4543 19.5515 21.3488 19.5504 21.2424L19.4504 21.2434ZM19.3931 20.9731C19.43 21.0585 19.4495 21.1504 19.4504 21.2434L19.5504 21.2424C19.5493 21.1361 19.527 21.031 19.4849 20.9334L19.3931 20.9731ZM19.2355 20.746C19.3026 20.8105 19.3562 20.8876 19.3931 20.9731L19.4849 20.9334C19.4427 20.8358 19.3815 20.7476 19.3048 20.6739L19.2355 20.746ZM18.1552 19.6652L19.2348 20.7453L19.3055 20.6746L18.226 19.5945L18.1552 19.6652ZM21.4368 12.4971C21.4368 15.3376 20.1496 17.8591 18.1578 19.5921L18.2234 19.6675C20.2353 17.9171 21.5368 15.3688 21.5368 12.4971H21.4368ZM12 3.05512C17.2029 3.05512 21.4368 7.2913 21.4368 12.4971H21.5368C21.5368 7.23613 17.2582 2.95512 12 2.95512V3.05512ZM20.0389 12.4971C20.0389 8.0461 16.4487 4.45386 12 4.45386V4.55386C16.3934 4.55386 19.9389 8.10128 19.9389 12.4971H20.0389ZM12 20.5404C16.4487 20.5404 20.0389 16.9482 20.0389 12.4971H19.9389C19.9389 16.893 16.3934 20.4404 12 20.4404V20.5404ZM3.96111 12.4971C3.96111 16.9482 7.55134 20.5404 12 20.5404V20.4404C7.60662 20.4404 4.06111 16.893 4.06111 12.4971H3.96111ZM12 4.45386C7.55134 4.45386 3.96111 8.0461 3.96111 12.4971H4.06111C4.06111 8.10128 7.60662 4.55386 12 4.55386V4.45386ZM10.7492 7.70031L10.75 13.3439L10.85 13.3438L10.8492 7.70029L10.7492 7.70031ZM11.4991 6.9502C11.0849 6.95026 10.7492 7.28609 10.7492 7.70031L10.8492 7.70029C10.8492 7.34131 11.1401 7.05025 11.4991 7.0502L11.4991 6.9502ZM12.2492 7.70009C12.2492 7.28587 11.9133 6.95013 11.4991 6.9502L11.4991 7.0502C11.8581 7.05014 12.1492 7.34111 12.1492 7.7001L12.2492 7.70009ZM12.2499 12.6035L12.2492 7.70009L12.1492 7.7001L12.1499 12.6035L12.2499 12.6035ZM12.2121 12.652L17.3424 11.3694L17.3181 11.2724L12.1878 12.555L12.2121 12.652ZM17.3424 11.3694C17.6906 11.2823 18.0435 11.4941 18.1306 11.8424L18.2276 11.8181C18.1271 11.4163 17.7199 11.1719 17.3181 11.2724L17.3424 11.3694ZM18.1306 11.8424C18.2177 12.1906 18.0059 12.5435 17.6576 12.6306L17.6819 12.7276C18.0837 12.6271 18.3281 12.2199 18.2276 11.8181L18.1306 11.8424ZM17.6576 12.6306L11.6576 14.1306L11.6819 14.2276L17.6819 12.7276L17.6576 12.6306ZM11.6576 14.1306C11.3094 14.2177 10.9565 14.0059 10.8694 13.6576L10.7724 13.6819C10.8729 14.0837 11.2801 14.3281 11.6819 14.2276L11.6576 14.1306ZM10.8694 13.6576C10.8499 13.5798 10.8454 13.5019 10.854 13.4267L10.7546 13.4154C10.7447 13.5023 10.75 13.5923 10.7724 13.6819L10.8694 13.6576ZM10.75 13.3439C10.7501 13.3718 10.7516 13.3994 10.7546 13.4265L10.854 13.4156C10.8514 13.3921 10.8501 13.3681 10.85 13.3438L10.75 13.3439Z\"\n fill={fill}\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Trainings = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>Trainings</title>\n <path\n d=\"M6.75 3.75C5.51634 3.75 4.5 4.76634 4.5 6V6.89062C4.26408 6.80564 4.01367 6.75 3.75 6.75C2.51634 6.75 1.5 7.76634 1.5 9V11.25H0V12.75H1.5V15C1.5 16.2329 2.51544 17.25 3.75 17.25C4.01342 17.25 4.26327 17.1968 4.5 17.1123V18C4.5 19.2329 5.51544 20.25 6.75 20.25C7.3669 20.25 7.93454 19.9971 8.34082 19.5908C8.7471 19.1845 9 18.6169 9 18V12.75H15V18C15 18.6169 15.2529 19.1845 15.6592 19.5908C16.0655 19.9971 16.6331 20.25 17.25 20.25C18.4846 20.25 19.5 19.2329 19.5 18V17.1123C19.7367 17.1968 19.9866 17.25 20.25 17.25C21.4846 17.25 22.5 16.2329 22.5 15V12.75H24V11.25H22.5V9C22.5 7.76634 21.4837 6.75 20.25 6.75C19.9863 6.75 19.7359 6.80564 19.5 6.89062V6C19.5 4.76634 18.4837 3.75 17.25 3.75C16.0154 3.75 15 4.76711 15 6V11.25H9V6C9 4.76711 7.98456 3.75 6.75 3.75ZM6.75 5.25C7.17444 5.25 7.5 5.57689 7.5 6V18C7.5 18.2111 7.41699 18.3936 7.28027 18.5303C7.14355 18.667 6.9611 18.75 6.75 18.75C6.32556 18.75 6 18.4231 6 18V6C6 5.57466 6.32466 5.25 6.75 5.25ZM17.25 5.25C17.6753 5.25 18 5.57466 18 6V9V11.4785V15V18C18 18.4231 17.6744 18.75 17.25 18.75C17.0389 18.75 16.8564 18.667 16.7197 18.5303C16.583 18.3936 16.5 18.2111 16.5 18V6C16.5 5.57689 16.8256 5.25 17.25 5.25ZM3.75 8.25C4.17444 8.25 4.5 8.57689 4.5 9V11.4785V15C4.5 15.2111 4.41699 15.3936 4.28027 15.5303C4.14355 15.667 3.9611 15.75 3.75 15.75C3.32556 15.75 3 15.4231 3 15V9C3 8.57466 3.32466 8.25 3.75 8.25ZM20.25 8.25C20.6753 8.25 21 8.57466 21 9V15C21 15.4231 20.6744 15.75 20.25 15.75C20.0389 15.75 19.8564 15.667 19.7197 15.5303C19.583 15.3936 19.5 15.2111 19.5 15V9C19.5 8.57689 19.8256 8.25 20.25 8.25Z\"\n fill={fill}\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Measurements = ({\n fill = '#000',\n size = 24,\n ...props\n}: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>Measurements</title>\n <path\n d=\"M8.8254 2C5 2 2 3.60317 2 5.65079V13.5873C2 15.2222 3.95238 16.6349 6.84127 17.0794H6.92064C7.15873 17.0794 7.34921 16.9048 7.39683 16.6825C7.44444 16.4286 7.25397 16.1745 7 16.1428C4.65079 15.7777 2.95238 14.6984 2.95238 13.5873V7.53974C4.12698 8.60324 6.30159 9.30159 8.8254 9.30159H19.1429C20.1905 9.30159 21.0476 10.1587 21.0476 11.2063C21.0476 12.254 20.1905 13.1111 19.1429 13.1111H10.4127C9.26984 13.1111 8.34921 14.0317 8.34921 15.1746V19.9365C8.34921 21.0794 9.26984 22 10.4127 22H19.1429C20.7143 22 22 20.7143 22 19.1429V11.2063C22 9.63492 20.7143 8.34921 19.1429 8.34921H8.8254C5.31746 8.34921 2.95238 6.95238 2.95238 5.65079C2.95238 4.34921 5.31746 2.95238 8.8254 2.95238C12.3333 2.95238 14.6984 4.34921 14.6984 5.65079V6.92064C14.6984 7.19048 14.9048 7.39683 15.1746 7.39683C15.4444 7.39683 15.6508 7.19048 15.6508 6.92064V5.65079C15.6508 3.60317 12.6508 2 8.8254 2ZM8.8254 4.85714C8.40442 4.85714 8.00068 4.94076 7.70301 5.0896C7.40533 5.23844 7.2381 5.4403 7.2381 5.65079C7.2381 5.86128 7.40533 6.06315 7.70301 6.21199C8.00068 6.36083 8.40442 6.44444 8.8254 6.44444C9.24638 6.44444 9.65011 6.36083 9.94779 6.21199C10.2455 6.06315 10.4127 5.86128 10.4127 5.65079C10.4127 5.4403 10.2455 5.23844 9.94779 5.0896C9.65011 4.94076 9.24638 4.85714 8.8254 4.85714ZM21.0476 13.3334V19.1429C21.0476 20.1905 20.1905 21.0476 19.1429 21.0476H10.4127C9.79365 21.0476 9.30159 20.5556 9.30159 19.9365V15.1746C9.30159 14.5556 9.79365 14.0635 10.4127 14.0635H13.1111V15.9683C13.1111 16.2381 13.3175 16.4444 13.5873 16.4444C13.8571 16.4444 14.0635 16.2381 14.0635 15.9683V14.0635H17.873V15.9683C17.873 16.2381 18.0794 16.4444 18.3492 16.4444C18.619 16.4444 18.8254 16.2381 18.8254 15.9683V14.0635H19.1429C19.873 14.0635 20.5397 13.7937 21.0476 13.3334Z\"\n fill={fill}\n stroke={fill}\n strokeWidth=\"0.4\"\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Settings = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>Settings</title>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M11.9673 14.5016C13.349 14.5016 14.4837 13.3816 14.5017 12.0001C14.5198 10.6186 13.4145 9.49868 12.0328 9.49868C10.6512 9.49868 9.5165 10.6186 9.49841 12.0001C9.48033 13.3816 10.5857 14.5016 11.9673 14.5016ZM16.0028 12.0001C15.9738 14.2106 14.1583 16.0025 11.9477 16.0025C9.73707 16.0025 7.96848 14.2106 7.99741 12.0001C8.02635 9.78971 9.84186 7.9978 12.0525 7.9978C14.2631 7.9978 16.0317 9.78971 16.0028 12.0001Z\"\n fill={fill}\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M11.0239 2.83721L10.6209 4.00046C10.281 4.98131 9.55444 5.67613 8.79735 6.0946C8.73279 6.13028 8.66885 6.16698 8.60556 6.20468C7.86065 6.64834 6.89517 6.92307 5.88366 6.71555L4.68439 6.4695C4.47399 6.42633 4.25779 6.52299 4.14768 6.70947L3.51224 7.78559C3.40213 7.97206 3.42281 8.20651 3.56357 8.36762L4.36704 9.2872C5.0414 10.059 5.27384 11.0262 5.2489 11.8881C5.24674 11.9626 5.24576 12.0373 5.24597 12.1118C5.24834 12.9737 4.99057 13.9409 4.29602 14.7127L3.46847 15.6323C3.32349 15.7934 3.29668 16.0278 3.40191 16.2143L4.00917 17.2904C4.1144 17.4769 4.32806 17.5736 4.5396 17.5304L5.74522 17.2844C6.76218 17.0768 7.72048 17.3516 8.45378 17.7952C8.5161 17.8329 8.5791 17.8697 8.64274 17.9053C9.38887 18.3238 10.0973 19.0186 10.4114 19.9995L10.784 21.1627C10.8494 21.367 11.0388 21.5048 11.2541 21.5048H12.4968C12.7122 21.5048 12.9052 21.367 12.9759 21.1627L13.3789 19.9995C13.7188 19.0186 14.4454 18.3238 15.2025 17.9053C15.267 17.8697 15.331 17.8329 15.3943 17.7952C16.1392 17.3516 17.1047 17.0768 18.1162 17.2844L19.3154 17.5304C19.5258 17.5736 19.742 17.4769 19.8521 17.2904L20.4875 16.2143C20.5976 16.0278 20.5769 15.7934 20.4362 15.6323L19.6328 14.7127C18.9584 13.9409 18.726 12.9737 18.7509 12.1118C18.7531 12.0373 18.754 11.9626 18.7538 11.8881C18.7515 11.0262 19.0092 10.059 19.7038 9.28714L20.5313 8.36762C20.6763 8.20651 20.7031 7.97206 20.5979 7.78559L19.9906 6.70947C19.8854 6.52299 19.6717 6.42633 19.4602 6.4695L18.2545 6.71554C17.2375 6.92307 16.2793 6.64834 15.546 6.20468C15.4837 6.16698 15.4207 6.13028 15.3571 6.0946C14.6109 5.67613 13.9025 4.98131 13.5884 4.00046L13.2158 2.83721C13.1504 2.63293 12.961 2.49515 12.7457 2.49515L11.503 2.49515C11.2876 2.49515 11.0946 2.63293 11.0239 2.83721ZM9.20321 3.52588C9.01369 4.07288 8.59184 4.50289 8.08436 4.7834C8.00543 4.82702 7.92726 4.87189 7.84989 4.91797C7.35101 5.2151 6.7679 5.36099 6.20381 5.24525L5.00454 4.9992C4.16291 4.82653 3.29814 5.21318 2.85769 5.95909L2.22226 7.0352C1.78181 7.78111 1.86451 8.7189 2.42756 9.36333L3.23104 10.2829C3.60754 10.7138 3.76517 11.2885 3.74851 11.8643C3.74589 11.9547 3.74471 12.0452 3.74495 12.1356C3.74654 12.7114 3.57386 13.2861 3.18608 13.717L2.35854 14.6366C1.7786 15.281 1.67135 16.2188 2.09227 16.9647L2.69954 18.0408C3.12046 18.7867 3.9751 19.1733 4.82125 19.0007L6.02688 18.7546C6.59401 18.6389 7.17331 18.7848 7.66441 19.0819C7.7406 19.128 7.81761 19.1729 7.89542 19.2166C8.39556 19.4971 8.80615 19.9271 8.98134 20.4741L9.3539 21.6373C9.61559 22.4544 10.3731 23.0056 11.2345 23.0056H12.4772C13.3386 23.0056 14.1105 22.4544 14.3936 21.6373L14.7966 20.4741C14.9861 19.9271 15.408 19.4971 15.9154 19.2166C15.9944 19.1729 16.0726 19.128 16.15 19.0819C16.6488 18.7848 17.232 18.6389 17.7961 18.7546L18.9952 19.0007C19.8368 19.1733 20.7016 18.7867 21.1421 18.0408L21.7775 16.9647C22.2179 16.2188 22.1352 15.281 21.5722 14.6366L20.7688 13.717C20.3923 13.2861 20.2346 12.7115 20.2513 12.1356C20.2539 12.0452 20.2551 11.9547 20.2549 11.8643C20.2533 11.2884 20.4259 10.7138 20.8137 10.2829L21.6412 9.36333C22.2212 8.7189 22.3284 7.78111 21.9075 7.03521L21.3002 5.95909C20.8793 5.21318 20.0247 4.82653 19.1785 4.9992L17.9728 5.24525C17.4057 5.36098 16.8264 5.21509 16.3353 4.91797C16.2592 4.87189 16.1822 4.82702 16.1044 4.7834C15.6042 4.50289 15.1937 4.07288 15.0185 3.52588L14.6459 2.36262C14.3842 1.54552 13.6267 0.994385 12.7653 0.994385H11.5226C10.6613 0.994385 9.8893 1.54552 9.60622 2.36262L9.20321 3.52588Z\"\n fill={fill}\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Plus = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 10 10\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>Plus</title>\n <path\n d=\"M1 5H9\"\n stroke={fill}\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M5 9V1\"\n stroke={fill}\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Minus = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n fill=\"none\"\n viewBox=\"0 0 10 2\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>Minus</title>\n <path\n d=\"M1 1H9\"\n stroke={fill}\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const More = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>More</title>\n <path\n d=\"M5.4001 10.2C4.4101 10.2 3.6001 11.01 3.6001 12C3.6001 12.99 4.4101 13.8 5.4001 13.8C6.3901 13.8 7.2001 12.99 7.2001 12C7.2001 11.01 6.3901 10.2 5.4001 10.2Z\"\n fill={fill}\n />\n <path\n d=\"M12.0002 10.2C11.0102 10.2 10.2002 11.01 10.2002 12C10.2002 12.99 11.0102 13.8 12.0002 13.8C12.9902 13.8 13.8002 12.99 13.8002 12C13.8002 11.01 12.9902 10.2 12.0002 10.2Z\"\n fill={fill}\n />\n <path\n d=\"M18.6003 10.2C17.6103 10.2 16.8003 11.01 16.8003 12C16.8003 12.99 17.6103 13.8 18.6003 13.8C19.5903 13.8 20.4003 12.99 20.4003 12C20.4003 11.01 19.5903 10.2 18.6003 10.2Z\"\n fill={fill}\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const MoreVertical = ({\n fill = '#000',\n size = 24,\n ...props\n}: SVGProps) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={`${size / 4}px`}\n height={`${size}px`}\n viewBox=\"0 0 4 16\"\n fill=\"none\"\n {...props}>\n <title>More vertical</title>\n <circle cx=\"1.66016\" cy=\"2\" r=\"1.5\" fill={fill} />\n <circle cx=\"1.66016\" cy=\"8\" r=\"1.5\" fill={fill} />\n <circle cx=\"1.66016\" cy=\"14\" r=\"1.5\" fill={fill} />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Check = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n fill=\"none\"\n viewBox=\"0 0 11 8\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>Check</title>\n <path\n d=\"M1 3.83L3.83 6.66L9.5 1\"\n stroke={fill}\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const CheckCircle = ({\n fill = '#000',\n size = 24,\n ...props\n}: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}>\n <title>Check circle</title>\n <path\n d=\"M10.0003 18.3334C14.5837 18.3334 18.3337 14.5834 18.3337 10.0001C18.3337 5.41675 14.5837 1.66675 10.0003 1.66675C5.41699 1.66675 1.66699 5.41675 1.66699 10.0001C1.66699 14.5834 5.41699 18.3334 10.0003 18.3334Z\"\n stroke={fill}\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M6.45801 9.99993L8.81634 12.3583L13.5413 7.6416\"\n stroke={fill}\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Cross = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n fill=\"none\"\n viewBox=\"0 0 8 8\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>Cross</title>\n <path\n d=\"M1 6.66L6.66 1\"\n stroke={fill}\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M6.66 6.66L1 1\"\n stroke={fill}\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const User = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>User</title>\n <path\n d=\"M12.1202 12.78C12.0502 12.77 11.9602 12.77 11.8802 12.78C10.1202 12.72 8.72021 11.28 8.72021 9.50998C8.72021 7.69998 10.1802 6.22998 12.0002 6.22998C13.8102 6.22998 15.2802 7.69998 15.2802 9.50998C15.2702 11.28 13.8802 12.72 12.1202 12.78Z\"\n stroke={fill}\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M18.7398 19.3801C16.9598 21.0101 14.5998 22.0001 11.9998 22.0001C9.39977 22.0001 7.03977 21.0101 5.25977 19.3801C5.35977 18.4401 5.95977 17.5201 7.02977 16.8001C9.76977 14.9801 14.2498 14.9801 16.9698 16.8001C18.0398 17.5201 18.6398 18.4401 18.7398 19.3801Z\"\n stroke={fill}\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\"\n stroke={fill}\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Union = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n fill=\"none\"\n viewBox=\"0 0 3 10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>Union</title>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M1.50879 2C0.956504 2 0.508789 1.55228 0.508789 1C0.508789 0.447715 0.956504 0 1.50879 0H1.51777C2.07006 0 2.51777 0.447715 2.51777 1C2.51777 1.55228 2.07006 2 1.51777 2H1.50879ZM2.21416 9C2.21416 9.3866 1.90076 9.7 1.51416 9.7C1.12756 9.7 0.81416 9.3866 0.81416 9V4C0.81416 3.6134 1.12756 3.3 1.51416 3.3C1.90076 3.3 2.21416 3.6134 2.21416 4V9Z\"\n fill={fill}\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Notification = ({\n fill = '#000',\n size = 24,\n ...props\n}: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 20 22\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>Notification</title>\n <path\n d=\"M0.776752 7.36345C0.819992 7.37426 0.865032 7.37966 0.908271 7.37966C1.14969 7.37966 1.37129 7.21572 1.43255 6.97069C1.9334 4.96728 3.12608 3.19267 4.78899 1.97837C5.0304 1.80181 5.08265 1.46491 4.90609 1.22349C4.72953 0.98207 4.39263 0.929823 4.15121 1.10638C2.28472 2.47022 0.946106 4.45922 0.383997 6.70946C0.31013 6.99772 0.48669 7.29138 0.776752 7.36345ZM15.2114 1.97837C16.8743 3.19267 18.0652 4.96548 18.5679 6.97069C18.6291 7.21572 18.8489 7.37966 19.0921 7.37966C19.1354 7.37966 19.1804 7.37426 19.2237 7.36345C19.5137 7.29138 19.6885 6.99772 19.6164 6.70765C19.0543 4.45922 17.7157 2.46842 15.8492 1.10458C15.6078 0.928021 15.2709 0.980269 15.0943 1.22169C14.9178 1.46491 14.97 1.80181 15.2114 1.97837ZM1.92799 15.3879C1.75144 16.0924 1.90638 16.8256 2.35498 17.3967C2.80179 17.9697 3.4756 18.2976 4.20165 18.2976H6.80681C7.06445 19.8289 8.39765 21 10.0011 21C11.6046 21 12.936 19.8289 13.1954 18.2976H15.8006C16.5266 18.2976 17.2004 17.9697 17.6472 17.3967C18.094 16.8238 18.249 16.0924 18.0742 15.3879L16.1194 7.58325C15.4168 4.7691 12.8999 2.80352 9.9993 2.80352C7.09868 2.80352 4.5818 4.7691 3.87916 7.58325L1.92799 15.3879ZM9.9993 19.919C8.99399 19.919 8.14903 19.229 7.90761 18.2976H12.0892C11.8496 19.229 11.0046 19.919 9.9993 19.919ZM9.9993 3.8845C12.4027 3.8845 14.489 5.51317 15.0709 7.84448L17.0221 15.6492C17.1176 16.0293 17.0329 16.4221 16.7933 16.7319C16.5518 17.04 16.1897 17.2166 15.7988 17.2166H4.19985C3.8089 17.2166 3.44677 17.04 3.20535 16.7319C2.96393 16.4239 2.88106 16.0293 2.97654 15.6492L4.92771 7.84448C5.50964 5.51317 7.59593 3.8845 9.9993 3.8845Z\"\n fill={fill}\n stroke={fill}\n strokeWidth=\"0.3\"\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Information = ({\n fill = '#000',\n size = 24,\n ...props\n}: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n fill=\"none\"\n viewBox=\"0 0 20 20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>Information</title>\n <path\n d=\"M9.99998 17.8889C14.3651 17.8889 17.9365 14.3175 17.9365 9.95238C17.9365 5.5873 14.3651 2.01587 9.99998 2.01587C5.6349 2.01587 2.06348 5.5873 2.06348 9.95238C2.06348 14.3175 5.6349 17.8889 9.99998 17.8889Z\"\n stroke={fill}\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M9.99573 7.77759C9.44344 7.77759 8.99573 7.32987 8.99573 6.77759C8.99573 6.2253 9.44344 5.77759 9.99573 5.77759H10.0029C10.5551 5.77759 11.0029 6.2253 11.0029 6.77759C11.0029 7.32987 10.5551 7.77759 10.0029 7.77759H9.99573ZM10.7 13.1268C10.7 13.5134 10.3866 13.8268 9.99999 13.8268C9.61339 13.8268 9.29999 13.5134 9.29999 13.1268V9.15854C9.29999 8.77194 9.61339 8.45854 9.99999 8.45854C10.3866 8.45854 10.7 8.77194 10.7 9.15854V13.1268Z\"\n fill={fill}\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Warning = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n fill=\"none\"\n viewBox=\"0 0 20 20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>Warning</title>\n <path\n d=\"M9.65357 1.32393C9.80753 1.05726 10.1924 1.05726 10.3464 1.32393L18.5118 15.4668C18.6657 15.7334 18.4733 16.0668 18.1654 16.0668H1.8346C1.52668 16.0668 1.33423 15.7334 1.48819 15.4668L9.65357 1.32393Z\"\n stroke={fill}\n strokeWidth=\"1.2\"\n />\n <path\n d=\"M10.7003 6.19072C10.7003 5.80412 10.3869 5.49072 10.0003 5.49072C9.61368 5.49072 9.30028 5.80412 9.30028 6.19072V10.159C9.30028 10.5456 9.61368 10.859 10.0003 10.859C10.3869 10.859 10.7003 10.5456 10.7003 10.159V6.19072ZM9.99609 12.1749C9.44381 12.1749 8.99609 12.6226 8.99609 13.1749C8.99609 13.7272 9.44381 14.1749 9.99609 14.1749H10.0032C10.5555 14.1749 11.0032 13.7272 11.0032 13.1749C11.0032 12.6226 10.5555 12.1749 10.0032 12.1749H9.99609Z\"\n fill={fill}\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Attention = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n fill=\"none\"\n viewBox=\"0 0 20 20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>Attention</title>\n <path\n d=\"M10 1.90479L2.85718 6.1905V13.8095L10 18.5715L17.1429 13.8095V6.1905L10 1.90479Z\"\n stroke={fill}\n strokeWidth=\"1.2\"\n />\n <path\n d=\"M10.7004 6.19048C10.7004 5.80388 10.387 5.49048 10.0004 5.49048C9.6138 5.49048 9.3004 5.80388 9.3004 6.19048V10.1587C9.3004 10.5453 9.6138 10.8587 10.0004 10.8587C10.387 10.8587 10.7004 10.5453 10.7004 10.1587V6.19048ZM9.99622 12.1746C9.44393 12.1746 8.99622 12.6224 8.99622 13.1746C8.99622 13.7269 9.44393 14.1746 9.99622 14.1746H10.0033C10.5556 14.1746 11.0033 13.7269 11.0033 13.1746C11.0033 12.6224 10.5556 12.1746 10.0033 12.1746H9.99622Z\"\n fill={fill}\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Visible = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>Visible</title>\n <path\n d=\"M15.5799 11.9999C15.5799 13.9799 13.9799 15.5799 11.9999 15.5799C10.0199 15.5799 8.41992 13.9799 8.41992 11.9999C8.41992 10.0199 10.0199 8.41992 11.9999 8.41992C13.9799 8.41992 15.5799 10.0199 15.5799 11.9999Z\"\n stroke={fill}\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M11.9998 20.27C15.5298 20.27 18.8198 18.19 21.1098 14.59C22.0098 13.18 22.0098 10.81 21.1098 9.39997C18.8198 5.79997 15.5298 3.71997 11.9998 3.71997C8.46984 3.71997 5.17984 5.79997 2.88984 9.39997C1.98984 10.81 1.98984 13.18 2.88984 14.59C5.17984 18.19 8.46984 20.27 11.9998 20.27Z\"\n stroke={fill}\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Invisible = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>Invisible</title>\n <path\n d=\"M14.5299 9.46992L9.46992 14.5299C8.81992 13.8799 8.41992 12.9899 8.41992 11.9999C8.41992 10.0199 10.0199 8.41992 11.9999 8.41992C12.9899 8.41992 13.8799 8.81992 14.5299 9.46992Z\"\n stroke={fill}\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M17.8198 5.76998C16.0698 4.44998 14.0698 3.72998 11.9998 3.72998C8.46984 3.72998 5.17984 5.80998 2.88984 9.40998C1.98984 10.82 1.98984 13.19 2.88984 14.6C3.67984 15.84 4.59984 16.91 5.59984 17.77\"\n stroke={fill}\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M8.41992 19.5299C9.55992 20.0099 10.7699 20.2699 11.9999 20.2699C15.5299 20.2699 18.8199 18.1899 21.1099 14.5899C22.0099 13.1799 22.0099 10.8099 21.1099 9.39993C20.7799 8.87993 20.4199 8.38993 20.0499 7.92993\"\n stroke={fill}\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M15.5099 12.7C15.2499 14.11 14.0999 15.26 12.6899 15.52\"\n stroke={fill}\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M9.47 14.53L2 22\"\n stroke={fill}\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M21.9998 2L14.5298 9.47\"\n stroke={fill}\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const LogOut = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n fill=\"none\"\n viewBox=\"0 0 16 15\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>Log out</title>\n <path\n d=\"M7.9751 13.7292H2.36876C2.0249 13.7292 1.74585 13.4502 1.74585 13.1063V1.89369C1.74585 1.54983 2.02493 1.27078 2.36876 1.27078H7.9751C8.31957 1.27078 8.59801 0.992344 8.59801 0.647871C8.59801 0.303398 8.31957 0.0249023 7.9751 0.0249023H2.36876C1.33845 0.0249023 0.5 0.863379 0.5 1.89369V13.1063C0.5 14.1366 1.33845 14.9751 2.36876 14.9751H7.9751C8.31957 14.9751 8.59801 14.6966 8.59801 14.3522C8.59801 14.0077 8.31957 13.7292 7.9751 13.7292Z\"\n fill={fill}\n />\n <path\n d=\"M15.3144 7.05653L11.527 3.31898C11.2828 3.07729 10.8879 3.08042 10.6462 3.32522C10.4045 3.57003 10.407 3.96434 10.6524 4.20604L13.359 6.87712H6.10631C5.76184 6.87712 5.4834 7.15556 5.4834 7.50003C5.4834 7.8445 5.76184 8.12297 6.10631 8.12297H13.359L10.6524 10.7941C10.407 11.0358 10.4051 11.4301 10.6462 11.6749C10.7683 11.7982 10.929 11.8605 11.0897 11.8605C11.2479 11.8605 11.4061 11.8007 11.527 11.6811L15.3144 7.94353C15.4327 7.82643 15.5 7.66693 15.5 7.5C15.5 7.33313 15.4333 7.17428 15.3144 7.05653Z\"\n fill={fill}\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const LogIn = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n fill=\"none\"\n viewBox=\"0 0 15 20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>Log in</title>\n <path\n d=\"M7.39504 9.17067C8.58623 9.17067 9.61771 8.74344 10.4605 7.90051C11.3033 7.05773 11.7305 6.02652 11.7305 4.8352C11.7305 3.64428 11.3033 2.61294 10.4604 1.76988C9.61743 0.92723 8.58609 0.5 7.39504 0.5C6.20371 0.5 5.17251 0.92723 4.32972 1.77002C3.48694 2.6128 3.05957 3.64414 3.05957 4.8352C3.05957 6.02652 3.48694 7.05786 4.32986 7.90065C5.17279 8.7433 6.20413 9.17067 7.39504 9.17067Z\"\n fill={fill}\n />\n <path\n d=\"M14.9811 14.341C14.9568 13.9902 14.9076 13.6076 14.8352 13.2036C14.7622 12.7966 14.6681 12.4118 14.5555 12.0601C14.4392 11.6966 14.281 11.3376 14.0854 10.9936C13.8824 10.6365 13.644 10.3256 13.3765 10.0698C13.0968 9.80212 12.7543 9.58693 12.3582 9.42996C11.9635 9.27382 11.5261 9.19472 11.0583 9.19472C10.8745 9.19472 10.6968 9.27011 10.3536 9.49354C10.1424 9.63129 9.89537 9.79059 9.61961 9.96678C9.38382 10.117 9.06439 10.2578 8.66985 10.3852C8.28491 10.5098 7.89407 10.5729 7.50832 10.5729C7.12256 10.5729 6.73186 10.5098 6.34652 10.3852C5.95238 10.2579 5.63296 10.1172 5.39744 9.96692C5.12429 9.79237 4.8771 9.63307 4.66273 9.49341C4.31995 9.26997 4.14211 9.19458 3.95837 9.19458C3.49035 9.19458 3.0531 9.27382 2.65855 9.4301C2.26277 9.58679 1.92013 9.80199 1.64012 10.0699C1.37274 10.3259 1.1342 10.6367 0.931502 10.9936C0.736083 11.3376 0.57788 11.6964 0.461425 12.0602C0.348953 12.4119 0.254882 12.7966 0.181823 13.2036C0.109451 13.6071 0.0602874 13.9898 0.0359802 14.3414C0.0120849 14.6858 0 15.0433 0 15.4043C0 16.3439 0.29869 17.1046 0.887694 17.6656C1.46942 18.2191 2.23915 18.5 3.17518 18.5H11.8423C12.7783 18.5 13.5478 18.2193 14.1296 17.6656C14.7188 17.105 15.0175 16.3442 15.0175 15.4042C15.0173 15.0415 15.0051 14.6838 14.9811 14.341Z\"\n fill={fill}\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Email = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n fill=\"none\"\n viewBox=\"0 0 18 14\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>Email</title>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0.718587 2.52762C0.823606 2.04828 1.08177 1.62029 1.4508 1.31376C1.81982 1.00722 2.27784 0.840299 2.74984 0.840332H15.2498C15.7218 0.840299 16.1799 1.00722 16.5489 1.31376C16.9179 1.62029 17.1761 2.04828 17.2811 2.52762L8.99984 7.79997L0.718587 2.52762ZM0.666504 3.76676V11.4751L6.7113 7.61442L0.666504 3.76676ZM7.70921 8.25136L0.865462 12.6209C1.03455 12.9923 1.30143 13.3061 1.63503 13.5256C1.96863 13.7452 2.35523 13.8616 2.74984 13.8612H15.2498C15.6444 13.8613 16.0308 13.7446 16.3642 13.5249C16.6977 13.3051 16.9643 12.9913 17.1332 12.6198L10.2894 8.25027L8.99984 9.07167L7.70921 8.25027V8.25136ZM11.2884 7.61551L17.3332 11.4751V3.76676L11.2884 7.61442V7.61551Z\"\n fill={fill}\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Lock = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n fill=\"none\"\n viewBox=\"0 0 16 21\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>Lock</title>\n <path\n d=\"M13.625 8.41602H13V5.91602C13 3.15852 10.7575 0.916016 8 0.916016C5.2425 0.916016 3 3.15852 3 5.91602V8.41602H2.375C1.34167 8.41602 0.5 9.25685 0.5 10.291V19.041C0.5 20.0752 1.34167 20.916 2.375 20.916H13.625C14.6583 20.916 15.5 20.0752 15.5 19.041V10.291C15.5 9.25685 14.6583 8.41602 13.625 8.41602ZM4.66667 5.91602C4.66667 4.07768 6.16167 2.58268 8 2.58268C9.83833 2.58268 11.3333 4.07768 11.3333 5.91602V8.41602H4.66667V5.91602ZM8.83333 14.851V16.7493C8.83333 17.2093 8.46083 17.5827 8 17.5827C7.53917 17.5827 7.16667 17.2093 7.16667 16.7493V14.851C6.67083 14.5618 6.33333 14.0302 6.33333 13.416C6.33333 12.4968 7.08083 11.7493 8 11.7493C8.91917 11.7493 9.66667 12.4968 9.66667 13.416C9.66667 14.0302 9.32917 14.5618 8.83333 14.851Z\"\n fill={fill}\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const CarrotDown = ({\n fill = '#000',\n size = 24,\n ...props\n}: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 18 10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>Carrot down</title>\n <path\n d=\"M17 1L9 9L1 1\"\n stroke={fill}\n strokeWidth=\"1.8\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n fill=\"none\"\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const CarrotUp = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 18 10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>Carrot up</title>\n <path\n d=\"M17 9.5L9 1.5L1 9.5\"\n stroke={fill}\n strokeWidth=\"1.8\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n fill=\"none\"\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const CarrotLeft = ({\n fill = '#000',\n size = 24,\n ...props\n}: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 11 18\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>Carrot left</title>\n <path\n d=\"M9.5 0.999999L1.5 9L9.5 17\"\n stroke={fill}\n strokeWidth=\"1.8\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n fill=\"none\"\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const CarrotRight = ({\n fill = '#000',\n size = 24,\n ...props\n}: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 11 18\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}>\n <title>Carrot right</title>\n <path\n d=\"M1.5 0.999999L9.5 9L1.5 17\"\n stroke={fill}\n strokeWidth=\"1.8\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n fill=\"none\"\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const RadioOn = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 20 21\"\n fill=\"#fff\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}>\n <title>Radio on</title>\n <rect x=\"0.7\" y=\"1.39995\" width=\"18.6\" height=\"18.6\" rx=\"9.3\" fill={fill} />\n <rect\n x=\"0.7\"\n y=\"1.39995\"\n width=\"18.6\"\n height=\"18.6\"\n rx=\"9.3\"\n stroke={fill}\n strokeWidth=\"1.4\"\n />\n <circle cx=\"10\" cy=\"10.7\" r=\"5\" fill={fill} />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Circle = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 20 21\"\n fill=\"#fff\"\n {...props}>\n <title>Circle</title>\n <rect x=\"0.7\" y=\"1.39995\" width=\"18.6\" height=\"18.6\" rx=\"9.3\" fill=\"none\" />\n <rect\n x=\"0.7\"\n y=\"1.39995\"\n width=\"18.6\"\n height=\"18.6\"\n rx=\"9.3\"\n stroke={fill}\n strokeWidth=\"1.4\"\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const ArrowUp = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 7 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}>\n <title>Arrow Up</title>\n <path\n d=\"M3.17757 0.92293L3.17757 7.07727\"\n stroke={fill}\n strokeWidth=\"0.8\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M0.416507 3.40515L3.17751 0.922901L5.93896 3.40515\"\n stroke={fill}\n strokeWidth=\"0.8\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const ArrowDown = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 7 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}>\n <title>Arrow Down</title>\n <path\n d=\"M3.1779 7.07707L3.1779 0.922729\"\n stroke={fill}\n strokeWidth=\"0.8\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M5.93896 4.59485L3.17796 7.0771L0.416504 4.59485\"\n stroke={fill}\n strokeWidth=\"0.8\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Filter = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 21 20\"\n fill=\"none\"\n {...props}>\n <title>Filter</title>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M15.0189 10.0002C16.8598 10.0002 18.3522 8.50775 18.3522 6.66683C18.3522 4.82588 16.8598 3.3335 15.0189 3.3335C13.4657 3.3335 12.1606 4.3958 11.7905 5.8335H2.51888C2.05865 5.8335 1.68555 6.2066 1.68555 6.66683C1.68555 7.12707 2.05865 7.50016 2.51888 7.50016H11.7905C12.1606 8.93783 13.4657 10.0002 15.0189 10.0002ZM13.3522 6.66683C13.3522 7.5873 14.0984 8.3335 15.0189 8.3335C15.9394 8.3335 16.6855 7.5873 16.6855 6.66683C16.6855 5.74635 15.9394 5.00016 15.0189 5.00016C14.0984 5.00016 13.3522 5.74635 13.3522 6.66683ZM1.68555 13.3335C1.68555 11.4926 3.17793 10.0002 5.01888 10.0002C6.57208 10.0002 7.87716 11.0625 8.2472 12.5002H17.5189C17.9791 12.5002 18.3522 12.8732 18.3522 13.3335C18.3522 13.7937 17.9791 14.1668 17.5189 14.1668H8.2472C7.87716 15.6045 6.57208 16.6668 5.01888 16.6668C3.17793 16.6668 1.68555 15.1744 1.68555 13.3335ZM6.68555 13.3335C6.68555 12.413 5.93936 11.6668 5.01888 11.6668C4.09841 11.6668 3.35221 12.413 3.35221 13.3335C3.35221 14.254 4.09841 15.0002 5.01888 15.0002C5.93936 15.0002 6.68555 14.254 6.68555 13.3335Z\"\n fill={fill}\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Search = ({ fill = '#55575A', size = 24, ...props }: SVGProps) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n {...props}>\n <title>Search</title>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12.8292 4.47028C15.1756 6.5284 15.5224 10.0541 13.6219 12.53L18 16.9081L16.9081 18L12.53 13.6219C10.0541 15.5224 6.5284 15.1756 4.47028 12.8292C2.41216 10.4828 2.52792 6.94189 4.73491 4.73491C6.94189 2.52792 10.4828 2.41216 12.8292 4.47028ZM4.5 9C4.5 11.4853 6.51472 13.5 9 13.5C11.4853 13.5 13.5 11.4853 13.5 9C13.5 6.51472 11.4853 4.5 9 4.5C6.51472 4.5 4.5 6.51472 4.5 9Z\"\n fill={fill}\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Archive = ({ fill = '#000', size = 15, ...props }: SVGProps) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n {...props}>\n <title>Archive</title>\n <g clipPath=\"url(#clip0_532_12720)\">\n <path\n d=\"M12.5 14.2188H2.5C2.04426 14.2184 1.60728 14.0372 1.28503 13.715C0.96277 13.3927 0.781581 12.9557 0.78125 12.5V5C0.78125 4.87568 0.830636 4.75645 0.918544 4.66854C1.00645 4.58064 1.12568 4.53125 1.25 4.53125H13.75C13.8743 4.53125 13.9936 4.58064 14.0815 4.66854C14.1694 4.75645 14.2188 4.87568 14.2188 5V12.5C14.2184 12.9557 14.0372 13.3927 13.715 13.715C13.3927 14.0372 12.9557 14.2184 12.5 14.2188ZM1.71875 5.46875V12.5C1.71908 12.7071 1.8015 12.9056 1.94794 13.0521C2.09438 13.1985 2.2929 13.2809 2.5 13.2813H12.5C12.7071 13.2809 12.9056 13.1985 13.0521 13.0521C13.1985 12.9056 13.2809 12.7071 13.2813 12.5V5.46875H1.71875Z\"\n fill={fill}\n />\n <path\n d=\"M13.75 5.46876H1.24998C1.17011 5.46875 1.09156 5.44834 1.02179 5.40945C0.952017 5.37056 0.893342 5.31449 0.851329 5.24656C0.809316 5.17862 0.78536 5.10108 0.781733 5.02129C0.778107 4.94149 0.794931 4.8621 0.830609 4.79063L2.53311 1.38563C2.62339 1.20356 2.76288 1.05043 2.93577 0.943609C3.10865 0.836785 3.30801 0.780542 3.51123 0.781257H11.4887C11.692 0.780526 11.8915 0.836833 12.0644 0.943779C12.2373 1.05073 12.3767 1.20402 12.4669 1.38626L14.1694 4.79063C14.205 4.8621 14.2219 4.94149 14.2182 5.02129C14.2146 5.10108 14.1907 5.17862 14.1486 5.24656C14.1066 5.31449 14.048 5.37056 13.9782 5.40945C13.9084 5.44834 13.8299 5.46875 13.75 5.46876ZM2.00873 4.53126H12.9912L11.6281 1.80501C11.6153 1.779 11.5955 1.75711 11.5708 1.74186C11.5462 1.7266 11.5177 1.7186 11.4887 1.71876H3.51123C3.48234 1.71869 3.45401 1.72666 3.42939 1.74178C3.40477 1.7569 3.38485 1.77858 3.37186 1.80438L2.00873 4.53126Z\"\n fill={fill}\n />\n <path\n d=\"M7.5 11.7188C7.37568 11.7188 7.25645 11.6694 7.16854 11.5815C7.08064 11.4935 7.03125 11.3743 7.03125 11.25V7.5C7.03125 7.37568 7.08064 7.25645 7.16854 7.16854C7.25645 7.08064 7.37568 7.03125 7.5 7.03125C7.62432 7.03125 7.74355 7.08064 7.83146 7.16854C7.91936 7.25645 7.96875 7.37568 7.96875 7.5V11.25C7.96875 11.3743 7.91936 11.4935 7.83146 11.5815C7.74355 11.6694 7.62432 11.7188 7.5 11.7188Z\"\n fill={fill}\n />\n <path\n d=\"M7.50003 11.7188C7.43846 11.7189 7.37747 11.7069 7.32061 11.6832C7.26375 11.6596 7.21214 11.625 7.16878 11.5813L5.29378 9.70628C5.21098 9.61742 5.1659 9.49989 5.16804 9.37845C5.17018 9.25701 5.21938 9.14115 5.30526 9.05526C5.39115 8.96938 5.50701 8.92018 5.62845 8.91804C5.74989 8.9159 5.86742 8.96098 5.95628 9.04378L7.50003 10.5869L9.04378 9.04378C9.13264 8.96098 9.25016 8.9159 9.3716 8.91804C9.49304 8.92018 9.60891 8.96938 9.69479 9.05526C9.78067 9.14115 9.82987 9.25701 9.83201 9.37845C9.83415 9.49989 9.78908 9.61742 9.70628 9.70628L7.83128 11.5813C7.78791 11.625 7.7363 11.6596 7.67944 11.6832C7.62258 11.7069 7.56159 11.7189 7.50003 11.7188Z\"\n fill={fill}\n />\n </g>\n <defs>\n <clipPath id=\"clip0_532_12720\">\n <rect width={size} height={size} fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Bin = ({ fill = '#000', size = 15, ...props }: SVGProps) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n {...props}>\n <title>Bin</title>\n <path\n d=\"M9.14062 11.1328C9.39947 11.1328 9.60938 10.9229 9.60938 10.6641V5.97656C9.60938 5.71772 9.39947 5.50781 9.14062 5.50781C8.88178 5.50781 8.67188 5.71772 8.67188 5.97656V10.6641C8.67188 10.9229 8.88178 11.1328 9.14062 11.1328Z\"\n fill={fill}\n />\n <path\n d=\"M5.85938 11.1328C6.11822 11.1328 6.32812 10.9229 6.32812 10.6641V5.97656C6.32812 5.71772 6.11822 5.50781 5.85938 5.50781C5.60053 5.50781 5.39062 5.71772 5.39062 5.97656V10.6641C5.39062 10.9229 5.60053 11.1328 5.85938 11.1328Z\"\n fill={fill}\n />\n <path\n d=\"M9.375 1.99219C9.63384 1.99219 9.84375 1.78228 9.84375 1.52344C9.84375 1.26459 9.63384 1.05469 9.375 1.05469H5.625C5.36616 1.05469 5.15625 1.26459 5.15625 1.52344C5.15625 1.78228 5.36616 1.99219 5.625 1.99219H9.375Z\"\n fill={fill}\n />\n <path\n d=\"M2.34375 2.46094C2.08491 2.46094 1.875 2.67084 1.875 2.92969C1.875 3.18853 2.08491 3.39844 2.34375 3.39844H2.8125V12.0234C2.8125 13.0828 3.675 13.9453 4.73438 13.9453H10.2656C11.325 13.9453 12.1875 13.0828 12.1875 12.0234V3.39844H12.6562C12.9151 3.39844 13.125 3.18853 13.125 2.92969C13.125 2.67084 12.9151 2.46094 12.6562 2.46094H11.7188H3.28125H2.34375ZM11.25 3.39844V12.0234C11.25 12.5672 10.8094 13.0078 10.2656 13.0078H4.73438C4.19063 13.0078 3.75 12.5672 3.75 12.0234V3.39844H11.25Z\"\n fill={fill}\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Change = ({ fill = '#000', size = 15, ...props }: SVGProps) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n {...props}>\n <title>Change</title>\n <path\n d=\"M4.3628 1.24246C4.20043 1.2473 4.04632 1.31518 3.93312 1.43169L1.43311 3.93289C1.37491 3.99095 1.32874 4.05988 1.29723 4.13582C1.26573 4.21175 1.24951 4.29316 1.24951 4.37537C1.24951 4.45758 1.26573 4.53898 1.29723 4.61492C1.32874 4.69085 1.37491 4.75979 1.43311 4.81785L3.93312 7.31911C3.99087 7.37893 4.05998 7.42662 4.1364 7.4594C4.21283 7.49217 4.29502 7.50939 4.37817 7.51C4.46132 7.51062 4.54376 7.49464 4.62066 7.463C4.69755 7.43136 4.76736 7.38463 4.826 7.32567C4.88463 7.26671 4.93092 7.19671 4.96213 7.11964C4.99335 7.04257 5.00888 6.95999 5.0078 6.87685C5.00673 6.7937 4.98907 6.71159 4.95588 6.63535C4.92268 6.55911 4.8746 6.49028 4.81446 6.43285L3.38258 4.99857H13.1238C13.2897 4.99857 13.4488 4.93265 13.5662 4.81532C13.6835 4.698 13.7494 4.53884 13.7494 4.37292C13.7494 4.20699 13.6835 4.04791 13.5662 3.93058C13.4488 3.81325 13.2897 3.74733 13.1238 3.74733H3.38868L4.81446 2.31788C4.90548 2.23039 4.96787 2.11734 4.99342 1.9937C5.01897 1.87006 5.00647 1.74158 4.95759 1.62518C4.9087 1.50878 4.82571 1.4099 4.71954 1.34158C4.61337 1.27326 4.489 1.23873 4.3628 1.24246ZM10.6189 7.49364C10.4953 7.49464 10.3747 7.53226 10.2725 7.60177C10.1703 7.67128 10.091 7.76955 10.0446 7.88414C9.99819 7.99873 9.98683 8.12455 10.0119 8.2456C10.037 8.36665 10.0974 8.47752 10.1856 8.56423L11.6199 9.99973H1.87623C1.71284 10.0033 1.55734 10.0708 1.44306 10.1876C1.32877 10.3044 1.26477 10.4613 1.26477 10.6247C1.26477 10.7882 1.32877 10.9451 1.44306 11.062C1.55734 11.1788 1.71284 11.2462 1.87623 11.2498H11.6162L10.1856 12.6841C10.1201 12.7401 10.067 12.8091 10.0295 12.8866C9.99196 12.9641 9.97088 13.0486 9.96756 13.1347C9.96424 13.2208 9.97874 13.3066 10.0102 13.3868C10.0416 13.467 10.0893 13.5399 10.1502 13.6009C10.2111 13.6618 10.2839 13.7094 10.3641 13.7409C10.4444 13.7723 10.5302 13.7868 10.6163 13.7835C10.7024 13.7801 10.7868 13.759 10.8644 13.7215C10.9419 13.684 11.0109 13.6309 11.0669 13.5655L13.5669 11.0654C13.6833 10.9483 13.7487 10.7899 13.7487 10.6247C13.7487 10.4596 13.6833 10.3012 13.5669 10.1841L11.0669 7.68287C11.0087 7.623 10.939 7.57537 10.8621 7.54287C10.7851 7.51038 10.7024 7.49364 10.6189 7.49364Z\"\n fill={fill}\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Copy = ({ fill = '#000', size = 15, ...props }: SVGProps) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n {...props}>\n <title>Copy</title>\n <g clipPath=\"url(#clip0_532_12716)\">\n <path\n d=\"M12.8755 14.5239H5.40479C4.49601 14.5239 3.75684 13.7848 3.75684 12.876V5.40527C3.75684 4.4965 4.49601 3.75732 5.40479 3.75732H12.8755C13.7843 3.75732 14.5234 4.4965 14.5234 5.40527V12.876C14.5234 13.7848 13.7843 14.5239 12.8755 14.5239ZM5.40479 4.85596C5.10189 4.85596 4.85547 5.10238 4.85547 5.40527V12.876C4.85547 13.1789 5.10189 13.4253 5.40479 13.4253H12.8755C13.1784 13.4253 13.4248 13.1789 13.4248 12.876V5.40527C13.4248 5.10238 13.1784 4.85596 12.8755 4.85596H5.40479ZM2.6582 10.1294H2.10889C1.80599 10.1294 1.55957 9.88297 1.55957 9.58008V2.10938C1.55957 1.80648 1.80599 1.56006 2.10889 1.56006H9.57959C9.88249 1.56006 10.1289 1.80648 10.1289 2.10938V2.63123H11.2275V2.10938C11.2275 1.2006 10.4884 0.461426 9.57959 0.461426H2.10889C1.20011 0.461426 0.460938 1.2006 0.460938 2.10938V9.58008C0.460938 10.4889 1.20011 11.228 2.10889 11.228H2.6582V10.1294Z\"\n fill={fill}\n />\n </g>\n <defs>\n <clipPath id=\"clip0_532_12716\">\n <rect width={size} height={size} fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Robot = ({ fill = '#000', size = 50, ...props }: SVGProps) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 54 50\"\n fill=\"none\"\n {...props}>\n <title>Robot</title>\n <path\n d=\"M32.7144 16.6105H32.7143H27.6714V15.0526C27.6714 14.8784 27.5998 14.7121 27.4736 14.59L27.4043 14.6617L27.4736 14.59C27.3474 14.468 27.177 14.4 27 14.4C26.823 14.4 26.6526 14.468 26.5264 14.59C26.4002 14.7121 26.3286 14.8784 26.3286 15.0526V16.6105L21.2857 16.6105L21.2856 16.6105C20.5026 16.6112 19.7513 16.9123 19.1967 17.4487C18.6419 17.9852 18.3293 18.7134 18.3286 19.4736V19.4737L18.3286 29.4211L18.3286 29.4212C18.3293 30.1814 18.6419 30.9096 19.1967 31.4461C19.7513 31.9825 20.5026 32.2836 21.2856 32.2843H21.2857H24.356L26.4422 35.3107L26.5246 35.254L26.4422 35.3107C26.5039 35.4001 26.5872 35.4731 26.6844 35.5234C26.7817 35.5738 26.8901 35.6 27 35.6C27.1099 35.6 27.2183 35.5738 27.3156 35.5234C27.4128 35.4731 27.4961 35.4001 27.5578 35.3107L27.4754 35.254L27.5578 35.3107L29.644 32.2843H32.7143H32.7144C33.4974 32.2836 34.2487 31.9825 34.8033 31.4461C35.3581 30.9096 35.6707 30.1814 35.6714 29.4212V29.4211V19.4737V19.4736C35.6707 18.7134 35.3581 17.9852 34.8033 17.4487C34.2487 16.9123 33.4974 16.6112 32.7144 16.6105ZM28.728 31.2683L27 33.775L25.272 31.2683L25.272 31.2682C25.2102 31.1789 25.127 31.106 25.0298 31.0557C24.9326 31.0054 24.8243 30.9791 24.7144 30.979H24.7143H21.2858C20.8567 30.9785 20.446 30.8135 20.1436 30.521C19.8413 30.2286 19.6719 29.833 19.6714 29.421V27.8632H34.3286V29.421C34.3281 29.833 34.1587 30.2286 33.8564 30.521C33.554 30.8135 33.1433 30.9785 32.7142 30.979H29.2857H29.2856C29.1757 30.9791 29.0674 31.0055 28.9702 31.0558C28.873 31.1061 28.7898 31.1789 28.728 31.2682L28.728 31.2683ZM34.3286 26.5579H19.6714V19.4738C19.6719 19.0618 19.8413 18.6662 20.1436 18.3738C20.446 18.0813 20.8567 17.9163 21.2858 17.9158H32.7142C33.1433 17.9163 33.554 18.0813 33.8564 18.3738C34.1587 18.6662 34.3281 19.0618 34.3286 19.4738V26.5579ZM24.604 23.4604C24.7409 23.2621 24.8143 23.0286 24.8143 22.7895C24.8143 22.4687 24.6825 22.1618 24.4491 21.9361C24.2158 21.7104 23.9 21.5842 23.5714 21.5842C23.3263 21.5842 23.0865 21.6545 22.8822 21.7865C22.6779 21.9185 22.5181 22.1066 22.4236 22.3272C22.3291 22.5478 22.3044 22.7908 22.3526 23.0253C22.4008 23.2597 22.5197 23.4746 22.6938 23.6429C22.8678 23.8112 23.0891 23.9255 23.3296 23.9717C23.57 24.018 23.8193 23.9943 24.046 23.9035C24.2727 23.8126 24.467 23.6586 24.604 23.4604ZM31.4611 23.4604C31.5981 23.2621 31.6714 23.0286 31.6714 22.7895C31.6714 22.4687 31.5396 22.1618 31.3062 21.9361C31.0729 21.7104 30.7571 21.5842 30.4286 21.5842C30.1835 21.5842 29.9436 21.6545 29.7394 21.7865C29.535 21.9185 29.3753 22.1066 29.2808 22.3272C29.1863 22.5478 29.1615 22.7908 29.2097 23.0253C29.2579 23.2597 29.3769 23.4746 29.5509 23.6429C29.725 23.8112 29.9463 23.9255 30.1867 23.9717C30.4272 24.018 30.6764 23.9943 30.9031 23.9035C31.1298 23.8126 31.3241 23.6586 31.4611 23.4604ZM16.2429 25V20.579C16.2429 20.4048 16.1713 20.2384 16.045 20.1163C15.9189 19.9943 15.7484 19.9263 15.5714 19.9263C15.3944 19.9263 15.224 19.9943 15.0978 20.1163C14.9716 20.2384 14.9 20.4048 14.9 20.579V25C14.9 25.1742 14.9716 25.3406 15.0978 25.4627C15.224 25.5847 15.3944 25.6527 15.5714 25.6527C15.7484 25.6527 15.9189 25.5847 16.045 25.4627C16.1713 25.3406 16.2429 25.1742 16.2429 25ZM39.1 25V20.579C39.1 20.4048 39.0284 20.2384 38.9022 20.1163C38.776 19.9943 38.6056 19.9263 38.4286 19.9263C38.2516 19.9263 38.0811 19.9943 37.955 20.1163C37.8287 20.2384 37.7571 20.4048 37.7571 20.579V25C37.7571 25.1742 37.8287 25.3406 37.955 25.4627C38.0811 25.5847 38.2516 25.6527 38.4286 25.6527C38.6056 25.6527 38.776 25.5847 38.9022 25.4627C39.0284 25.3406 39.1 25.1742 39.1 25Z\"\n fill={fill}\n stroke={fill}\n strokeWidth=\"0.2\"\n />\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Chart = ({ fill = '#000', size = 15, ...props }: SVGProps) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 22 22\"\n fill=\"none\"\n {...props}>\n <title>Chart</title>\n <g clipPath=\"url(#clip0_2353_10249)\">\n <path\n d=\"M15.9118 19.3153L15.9119 19.3152C16.1279 19.1374 16.1629 18.8202 15.9915 18.5992L15.9914 18.5991L10.2667 11.2396V2.24969C10.2667 1.96446 10.0352 1.73301 9.75 1.73301C4.8614 1.73301 0.9 6.08572 0.9 11.4163C0.9 16.7557 5.24395 21.0997 10.5833 21.0997C11.771 21.0997 12.6938 20.9922 13.526 20.7137C14.359 20.4349 15.0948 19.987 15.9118 19.3153ZM10.5833 20.0664C5.81355 20.0664 1.93332 16.1861 1.93332 11.4164C1.93332 6.83058 5.17123 3.0801 9.23332 2.78478V11.4164C9.23332 11.531 9.27152 11.6427 9.34279 11.7337C9.34284 11.7338 9.3429 11.7338 9.34295 11.7339L14.8604 18.8277C14.2411 19.2904 13.6698 19.5955 13.0225 19.7874C12.346 19.9879 11.5811 20.0664 10.5833 20.0664Z\"\n fill={fill}\n stroke={fill}\n strokeWidth=\"0.2\"\n />\n <path\n d=\"M11.4167 11.1H20.5834C20.8686 11.1 21.1 10.8685 21.1 10.5833C21.1 5.24395 16.756 0.9 11.4167 0.9C11.1315 0.9 10.9 1.13145 10.9 1.41668V10.5834C10.9 10.8686 11.1315 11.1 11.4167 11.1ZM11.9333 10.0666V1.94877C16.2925 2.20673 19.7933 5.70751 20.0512 10.0666H11.9333Z\"\n fill={fill}\n stroke={fill}\n strokeWidth=\"0.2\"\n />\n <path\n d=\"M18.0192 19.3336L18.0189 19.3339C17.9231 19.4225 17.7972 19.4721 17.6668 19.4721L18.0192 19.3336ZM18.0192 19.3336C19.9769 17.5072 21.1001 14.9258 21.1001 12.2497C21.1001 11.9645 20.8687 11.733 20.5835 11.733H12.2501M18.0192 19.3336L12.2501 11.733M12.2501 11.733C12.0517 11.733 11.8691 11.8475 11.7832 12.0274M12.2501 11.733L11.7832 12.0274M11.7832 12.0274C11.6974 12.2073 11.7232 12.4202 11.8482 12.5743M11.7832 12.0274L11.8482 12.5743M11.8482 12.5743C11.8483 12.5743 11.8483 12.5743 11.8483 12.5744M11.8482 12.5743L11.8483 12.5744M11.8483 12.5744L17.2645 19.2795C17.2645 19.2796 17.2646 19.2797 17.2647 19.2797C17.3549 19.3926 17.4872 19.4606 17.63 19.471C17.6298 19.471 17.6296 19.471 17.6295 19.471L11.8483 12.5744ZM20.0512 12.7664C19.9288 14.7847 19.0958 16.7118 17.7089 18.185L13.332 12.7664H20.0512Z\"\n fill={fill}\n stroke={fill}\n strokeWidth=\"0.2\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_2353_10249\">\n <rect width=\"22\" height=\"22\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n);\n","import { SVGProps } from '@components/Icon/types';\n\nexport const Clock = ({ fill = '#000', size = 15, ...props }: SVGProps) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n {...props}>\n <title>Clock</title>\n <circle\n cx=\"12.1001\"\n cy=\"12.1001\"\n r=\"11.1001\"\n stroke={fill}\n strokeWidth=\"1.4\"\n />\n <path\n d=\"M11.4824 6.18066L11.4835 13.1411\"\n stroke={fill}\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M18.8843 11.4834L11.4842 13.3334\"\n stroke={fill}\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n />\n </svg>\n);\n","import { IconProps } from './types';\nimport IconsMap from './icons';\n\nconst Icon = ({ name, color = '#000', size, ...props }: IconProps) => {\n return <IconsMap name={name} color={color} size={size} {...props} />;\n};\nexport default Icon;\n","import { Fragment } from 'react';\nimport { useTheme } from '@emotion/react';\nimport CardHeaderBase from '@components/CardHeader/CardHeaderBase';\nimport Icon from '@components/Icon';\nimport { AccordionProps } from './types';\nimport { createTitleStyles } from './styles';\n\nconst CardHeaderBaseButton = CardHeaderBase.withComponent('button');\n\nexport const AccordionTitle: AccordionProps['renderTitle'] = ({\n title,\n size = 'empty',\n id,\n isOpened,\n ariaControls,\n className,\n onClick,\n}) => {\n const theme = useTheme();\n const styles = createTitleStyles(theme, isOpened);\n return (\n <CardHeaderBaseButton\n type=\"button\"\n data-testid=\"accordion-title\"\n css={styles[size]}\n className={className}\n id={`${id}`}\n aria-expanded={isOpened}\n aria-controls={ariaControls}\n onClick={() => {\n if (typeof onClick === 'function') {\n onClick();\n }\n }}>\n <Fragment>\n {title}\n {isOpened ? <Icon name=\"carrot-down\" /> : <Icon name=\"carrot-up\" />}\n </Fragment>\n </CardHeaderBaseButton>\n );\n};\n","import styled from '@emotion/styled';\n\nconst CardBase = styled.div<{ noShadow?: boolean }>`\n display: flex;\n flex-direction: column;\n align-items: center;\n\n padding: 20px;\n\n background: #fff;\n\n box-shadow: ${({ theme, noShadow }) =>\n !noShadow && `0px 10px 40px ${theme.colors.greyDarker60}`};\n border-radius: 10px;\n border: none;\n\n cursor: ${({ onClick }) => (onClick ? 'pointer' : 'default')};\n`;\n\nexport default CardBase;\n","import CardBase from '@components/Card/CardBase';\nimport { AccordionViewProps } from './types';\nimport { wrapperStyles } from './styles';\n\nexport const Accordion = ({\n title,\n isOpened,\n ariaControls,\n id,\n size = 'empty',\n renderTitle,\n renderContent,\n onClick,\n ...rest\n}: AccordionViewProps) => (\n <CardBase role=\"region\" tabIndex={0} css={wrapperStyles[size]} {...rest}>\n {renderTitle({ id, isOpened, title, size, ariaControls, onClick })}\n {renderContent({\n id: `${ariaControls}`,\n isOpened,\n size,\n ...{ ['aria-labelledby']: `${id}` },\n })}\n </CardBase>\n);\n","import styled from '@emotion/styled';\nimport { CommonProps } from '@global-types/emotion';\n\nconst Avatar = styled.div<{ size: number; image: string } & CommonProps>`\n border-radius: 100px;\n\n overflow: hidden;\n\n width: ${({ size }) => size}px;\n height: ${({ size }) => size}px;\n\n background: ${({ image }) => `url(${image})`} center no-repeat;\n`;\n\nexport default Avatar;\n","import styled from '@emotion/styled';\nimport { CommonProps } from '@global-types/emotion';\n\nconst BadgeBase = styled.div<CommonProps>`\n display: inline-block;\n\n font-family: Manrope, sans-serif;\n font-style: normal;\n font-weight: 500;\n\n border-radius: 6px;\n\n text-align: center;\n color: #fff;\n\n white-space: pre;\n`;\n\nexport default BadgeBase;\n","import { css } from '@emotion/react';\n\nexport const large = css`\n height: 32px;\n padding: 4px 18px;\n\n font-size: 1rem;\n`;\nexport const medium = css`\n height: 24px;\n padding: 4px 15px;\n\n font-size: 0.688rem;\n`;\nexport const small = css`\n height: 18px;\n padding: 4px 8px;\n\n font-size: 0.438rem;\n`;\n","import React from 'react';\nimport {\n blue,\n green,\n blueLight,\n pink,\n purple,\n turquoise,\n yellow,\n yellowWarm,\n} from '@styles/global';\n\nimport BadgeBase from './BadgeBase';\nimport { BadgeProps } from './types';\nimport { large, medium, small } from './styles';\n\nconst mapSizes: MainSizes = {\n small,\n medium,\n large,\n};\n\nconst mapColors: MainColors = {\n pink,\n yellow,\n yellowWarm,\n green,\n turquoise,\n purple,\n blueLight,\n blue,\n};\n\nconst Badge = React.forwardRef<HTMLDivElement, BadgeProps>(function Badge(\n { color = 'purple', size = 'medium', children, ...props },\n ref,\n) {\n return (\n <BadgeBase ref={ref} css={[mapColors[color], mapSizes[size]]} {...props}>\n {children ? children : null}\n </BadgeBase>\n );\n});\n\nexport default Badge;\n","import styled from '@emotion/styled';\nimport { CommonProps } from '@global-types/emotion';\n\nconst Wrapper = styled.div<\n {\n avatarSize?: number;\n direction?: string;\n alignItems?: string;\n } & CommonProps\n>`\n display: flex;\n align-items: ${({ alignItems }) => (alignItems ? alignItems : 'center')};\n\n width: 100%;\n\n flex-direction: ${({ direction }) => (direction ? direction : 'row')};\n`;\n\nexport default Wrapper;\n","import styled from '@emotion/styled';\n\nexport const ButtonBase = styled.button`\n display: inline-flex;\n align-items: center;\n position: relative;\n border: none;\n padding: 0 16px;\n font: inherit;\n cursor: pointer;\n outline: inherit;\n\n border-radius: 12px;\n`;\n","import { useTheme } from '@emotion/react';\n\nimport { IColoredButtonTextProps, IButtonTextProps } from './types';\n\nexport const ButtonText = ({ text, className, testId }: IButtonTextProps) => {\n return (\n <span className={className} data-testid={testId}>\n {text}\n </span>\n );\n};\n\nexport const WhiteButtonText = ({ text }: IColoredButtonTextProps) => {\n const theme = useTheme();\n\n return (\n <ButtonText\n testId=\"white-button-text\"\n text={text}\n css={{\n color: theme.colors.white,\n }}\n />\n );\n};\n\nexport const GreyButtonText = ({ text }: IColoredButtonTextProps) => {\n const theme = useTheme();\n\n return (\n <ButtonText\n testId=\"grey-button-text\"\n text={text}\n css={{\n color: theme.colors.greyDarker,\n }}\n />\n );\n};\n\nexport const GreyLightButtonText = ({ text }: IColoredButtonTextProps) => {\n const theme = useTheme();\n\n return (\n <ButtonText\n testId=\"greylight-button-text\"\n text={text}\n css={{\n color: theme.colors.greyButtonGradient,\n }}\n />\n );\n};\n\nexport const DisabledButtonText = ({ text }: IColoredButtonTextProps) => {\n const theme = useTheme();\n\n return (\n <ButtonText\n testId=\"disabled-button-text\"\n text={text}\n css={{\n color: theme.colors.grey40,\n }}\n />\n );\n};\n","import { css, Theme } from '@emotion/react';\nimport { focusOutline } from '@styles/safari-focus-outline';\n\nexport const buttonBlock = css`\n display: grid;\n\n span {\n display: inline-block;\n margin: auto;\n }\n`;\n\nexport const iconWrapperRight = css`\n display: inline-flex;\n margin-right: 6px;\n`;\n\nexport const iconWrapperLeft = css`\n display: inline-flex;\n margin-left: 6px;\n`;\n\nexport const large = css`\n height: 54px;\n\n font-weight: 400;\n font-size: 16px;\n letter-spacing: 0.8px;\n\n padding: 0 32px;\n`;\n\nexport const medium = css`\n height: 46px;\n\n font-weight: 500;\n font-size: 16px;\n letter-spacing: 0.8px;\n\n padding: 0 24px;\n`;\n\nexport const small = css`\n height: 36px;\n\n font-size: 13.33px;\n font-weight: 400;\n letter-spacing: 0.8px;\n\n padding: 0 16px;\n`;\n\nexport const primary = (theme: Theme) => css`\n color: ${theme.colors.white};\n background: linear-gradient(\n 108.3deg,\n ${theme.colors.greyDarker} -0.36%,\n ${theme.colors.greyDark} 100%\n );\n\n &:hover {\n background: linear-gradient(\n 108.3deg,\n ${theme.colors.greyButtonGradient} -0.36%,\n ${theme.colors.greyButtonGradientLight} 100%\n );\n box-shadow: -4px 4px 14px ${theme.colors.greyDarker14};\n }\n\n &:active {\n background: ${theme.colors.greyDarker};\n box-shadow: -4px 4px 14px ${theme.colors.greyDarker14};\n }\n\n &:disabled {\n background: ${theme.colors.grey};\n }\n\n &:focus {\n background: linear-gradient(\n 108.3deg,\n ${theme.colors.greyBackground} -0.36%,\n ${theme.colors.greyBackgroundLight} 100%\n );\n box-shadow: -4px 4px 14px ${theme.colors.greyDarker14};\n }\n`;\n\nexport const info = (theme: Theme) => css`\n color: ${theme.colors.white};\n background: linear-gradient(\n 247deg,\n ${theme.colors.blueLighter} 14.71%,\n ${theme.colors.blue} 85.29%\n );\n\n &:hover {\n background: linear-gradient(\n 247deg,\n ${theme.colors.blueButtonHoverGradientFrom} 14.71%,\n ${theme.colors.blueButtonHoverGradientTo} 85.29%\n );\n }\n\n &:active {\n background: ${theme.colors.blueButtonActive};\n }\n\n &:disabled {\n background: ${theme.colors.grey};\n }\n`;\n\nexport const secondary = (theme: Theme) => css`\n background: ${theme.colors.greyLighter};\n box-shadow: 0px 10px 40px ${theme.colors.greyShadow};\n\n &:hover {\n background: ${theme.colors.white};\n box-shadow: 0px 10px 40px ${theme.colors.greyShadowHover};\n }\n\n &:active {\n background: ${theme.colors.greyFocused};\n box-shadow: 0px 10px 40px ${theme.colors.greyShadow};\n }\n\n &:disabled {\n background: ${theme.colors.grey};\n box-shadow: 0px 10px 40px ${theme.colors.greyShadow};\n }\n\n &:focus {\n background: ${theme.colors.greySelectedMenuItem};\n box-shadow: 0px 10px 40px ${theme.colors.greyShadow};\n }\n`;\n\nexport const tertiary = (theme: Theme) => css`\n background: transparent;\n\n ${focusOutline(theme, 'greyOutline')}\n`;\n\nexport const attention = (theme: Theme) => css`\n color: ${theme.colors.white};\n background: linear-gradient(\n 99.26deg,\n ${theme.colors.pink} -7.01%,\n ${theme.colors.pinkLighter} 92.87%\n );\n\n &:hover {\n background: linear-gradient(\n 99.26deg,\n ${theme.colors.pinkDark} 7.01%,\n ${theme.colors.pinkDarker} 92.87%\n );\n }\n\n &:active {\n background: ${theme.colors.pinkDark};\n }\n\n &:disabled {\n background: ${theme.colors.grey};\n }\n`;\n","import { useState, forwardRef } from 'react';\nimport { useTheme } from '@emotion/react';\n\nimport Wrapper from '@components/Wrapper/Wrapper';\n\nimport { ButtonBase } from './ButtonBase';\nimport {\n WhiteButtonText,\n GreyButtonText,\n GreyLightButtonText,\n DisabledButtonText,\n} from './ButtonText';\nimport { IButtonProps, IButtonVariants } from './types';\nimport {\n large,\n medium,\n small,\n primary,\n info,\n secondary,\n tertiary,\n attention,\n buttonBlock,\n iconWrapperLeft,\n iconWrapperRight,\n} from './styles';\n\nconst mapSizes: MainSizes = {\n small,\n medium,\n large,\n};\n\nconst mapVariants: IButtonVariants = {\n primary,\n secondary,\n tertiary,\n info,\n attention,\n};\n\nexport const Button = forwardRef<HTMLButtonElement, IButtonProps>(\n function Button(\n {\n block = false,\n size = 'small',\n text,\n startIcon,\n endIcon,\n variant = 'primary',\n type = 'button',\n className,\n isDisabled,\n onClick,\n children,\n ...ariaProps\n },\n ref,\n ) {\n if (!text && !startIcon && !endIcon && !children) {\n throw new Error('Button must have either text or icon or children');\n }\n\n const theme = useTheme();\n\n const [isHovered, setIsHovered] = useState(false);\n\n const isPrimary = variant === 'primary';\n const isInfo = variant === 'info';\n const isSecondary = variant === 'secondary';\n const isTertiary = variant === 'tertiary';\n const isAttention = variant === 'attention';\n const noMargin = !text ? { margin: 0 } : {};\n\n const variantStyles =\n isPrimary || isInfo || isTertiary || isSecondary || isAttention\n ? mapVariants[variant] && mapVariants[variant](theme)\n : undefined;\n\n const btn = (\n <ButtonBase\n ref={ref}\n css={[mapSizes[size], variantStyles]}\n type={type}\n disabled={isDisabled}\n className={className}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n onClick={onClick}\n {...ariaProps}>\n {startIcon ? (\n <span style={noMargin} css={[iconWrapperRight]}>\n {startIcon}\n </span>\n ) : null}\n {children ? (\n children\n ) : text ? (\n isDisabled ? (\n <DisabledButtonText text={text} size={size} />\n ) : isPrimary || isInfo || isAttention ? (\n <WhiteButtonText text={text} size={size} />\n ) : isTertiary && isHovered ? (\n <GreyLightButtonText text={text} size={size} />\n ) : (\n <GreyButtonText text={text} size={size} />\n )\n ) : null}\n {endIcon ? (\n <span style={noMargin} css={iconWrapperLeft}>\n {endIcon}\n </span>\n ) : null}\n </ButtonBase>\n );\n\n return block ? <Wrapper css={buttonBlock}>{btn}</Wrapper> : btn;\n },\n);\n\nexport default Button;\n","import CardBase from './CardBase';\n\nimport { CardProps } from './types';\n\nconst Card = ({ children, onClick, ...props }: CardProps) => {\n return (\n <CardBase {...props} as={onClick ? 'button' : 'div'} onClick={onClick}>\n {children}\n </CardBase>\n );\n};\n\nexport default Card;\n","import { CommonProps } from '@global-types/emotion';\nimport CardHeaderBase from './CardHeaderBase';\n\nexport interface CardProps extends CommonProps {\n children: React.ReactNode;\n icon?: React.ReactNode;\n transparent?: boolean;\n}\n\nconst CardHeader = ({ children, icon, transparent, ...props }: CardProps) => (\n <CardHeaderBase transparent={transparent} hasIcon={!!icon} {...props}>\n {icon ? (\n <span\n style={{\n position: 'absolute',\n left: '-30px',\n top: '-30px',\n }}>\n {icon}\n </span>\n ) : null}\n {children}\n </CardHeaderBase>\n);\n\nexport default CardHeader;\n","import styled from '@emotion/styled';\n\nexport const ColorMarker = styled.button<{ active: boolean }>`\n cursor: pointer;\n\n width: 24px;\n height: 24px;\n\n border: none;\n border-radius: 50%;\n\n border: ${({ active }) => (active ? '1.4px solid #fff' : 'none')};\n box-shadow: ${({ active }) => (active ? 'inherit' : 'none !important')};\n`;\n","import { useState } from 'react';\nimport {\n blue,\n green,\n blueLight,\n pink,\n purple,\n turquoise,\n yellow,\n} from '@styles/global';\n\nimport { ColorPickerProps, Colors, ColorsList } from './types';\nimport { ColorMarker } from './styles';\n\nexport const mapColors: Colors = {\n pink,\n yellow,\n green,\n turquoise,\n blueLight,\n blue,\n purple,\n};\n\nconst ColorPicker = ({ onChange, initColor }: ColorPickerProps) => {\n const [activeColor, setActiveColor] = useState(initColor || '');\n\n const handleColorChange = (color: ColorsList) => {\n onChange(color);\n setActiveColor(color);\n };\n\n return (\n <ul css={{ display: 'flex', gap: 10, listStyle: 'none', padding: 0 }}>\n {(Object.keys(mapColors) as ColorsList[]).map((color) => (\n <li key={color}>\n <ColorMarker\n active={color === activeColor}\n onClick={() => handleColorChange(color)}\n css={[mapColors[color]]}\n />\n </li>\n ))}\n </ul>\n );\n};\nexport default ColorPicker;\n","import styled from '@emotion/styled';\n\nexport const LabelBase = styled.label`\n display: inline-block;\n\n flex: 1;\n font-weight: 500;\n font-size: 1rem;\n line-height: 22px;\n\n color: ${({ theme }) => theme.colors.greyDarker};\n\n margin: 0 0 6px 4px;\n`;\n","import { LabelProps } from './types';\nimport { LabelBase } from './LabelBase';\n\nconst Label = ({\n children,\n htmlFor,\n className,\n onMouseEnter,\n onMouseLeave,\n}: LabelProps) => (\n <LabelBase\n htmlFor={htmlFor}\n className={className}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}>\n {children}\n </LabelBase>\n);\n\nexport default Label;\n","import { css, Theme } from '@emotion/react';\n\nconst blueInput = (theme: Theme) => css`\n & input:focus + div {\n box-shadow: -4px 4px 10px ${theme.colors.blueNotification40};\n }\n & input:disabled + div,\n & input:indeterminate:disabled + div {\n background: ${theme.colors.greyFocused};\n }\n & input:not(:checked, :indeterminate, :disabled) + div::before {\n border: 1.5px solid ${theme.colors.greyDropdownMain};\n }\n & input:not(:checked, :indeterminate, :disabled) + div:hover::before {\n border: 1.5px solid ${theme.colors.greyDropdownMain};\n }\n & input:not(:disabled):checked + div::before,\n & input:not(:disabled):indeterminate + div::before {\n background: ${theme.colors.blueNotification};\n }\n & input:not(:disabled):checked + div:hover::before {\n background: ${theme.colors.blueNotification};\n }\n & input:not(:disabled):checked + div + span {\n font-weight: 500;\n color: ${theme.colors.greyDropdownText};\n }\n`;\n\nconst greenInput = (theme: Theme) => css`\n & input:focus + div {\n box-shadow: -4px 4px 10px ${theme.colors.green40};\n }\n\n & input:disabled + div,\n & input:indeterminate:disabled + div {\n background: ${theme.colors.greyFocused};\n }\n\n & input:not(:checked, :indeterminate, :disabled) + div::before {\n border: 1.5px solid ${theme.colors.green};\n }\n\n & input:not(:checked, :indeterminate, :disabled) + div:hover::before {\n border: 1.5px solid ${theme.colors.green60};\n }\n\n & input:not(:disabled):checked + div::before,\n & input:not(:disabled):indeterminate + div::before {\n background: linear-gradient(\n 117.5deg,\n ${theme.colors.greenLighter} 17.12%,\n ${theme.colors.green} 85.53%\n );\n }\n\n & input:not(:disabled):checked + div:hover::before,\n & input:not(:disabled):indeterminate + div:hover::before {\n background: linear-gradient(\n 117.5deg,\n ${theme.colors.greenLighter60} 17.12%,\n ${theme.colors.green60} 85.53%\n );\n }\n`;\n\nexport const checkboxStyles = {\n blueInput,\n greenInput,\n};\n","import styled from '@emotion/styled';\nimport Label from '@components/Label';\nimport { checkboxStyles } from './styles';\nimport { ICheckboxProps } from './types';\n\nexport const CheckboxBase = styled(Label)<Pick<ICheckboxProps, 'color'>>`\n position: relative;\n display: inline-flex;\n flex-grow: 0;\n align-items: center;\n vertical-align: middle;\n cursor: pointer;\n &:has(input:disabled) {\n cursor: default;\n }\n\n div {\n position: relative;\n height: 20px;\n width: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n }\n\n input + div {\n svg {\n z-index: 2;\n }\n\n &::before {\n content: '';\n position: absolute;\n box-sizing: border-box;\n height: 20px;\n width: 20px;\n top: 0;\n left: 0;\n border-radius: 6px;\n z-index: 1;\n }\n }\n\n ${({ color = 'green', theme }) => {\n switch (color) {\n case 'blue':\n return checkboxStyles.blueInput(theme);\n case 'green':\n return checkboxStyles.greenInput(theme);\n default:\n }\n }}\n\n input {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n }\n\n span {\n margin-left: 10px;\n font-size: 14px;\n font-weight: 100;\n }\n`;\n","import { useState, useId, useEffect, useRef } from 'react';\nimport { useTheme } from '@emotion/react';\nimport { CheckboxBase } from './CheckboxBase';\nimport Icon from '@components/Icon';\n\nimport { ICheckboxProps } from './types';\n\nconst Checkbox = ({\n text,\n id,\n onChange,\n isDisabled,\n externalState,\n initialState,\n isIndeterminate,\n name = '',\n isRequired = false,\n ref,\n register,\n ...rest\n}: ICheckboxProps) => {\n const [isChecked, setIsChecked] = useState(Boolean(initialState));\n const autoGenId = useId();\n const theme = useTheme();\n const checkboxInputRef = useRef<HTMLInputElement | null>(null);\n\n useEffect(() => {\n // istanbul ignore else\n if (checkboxInputRef.current) {\n // Browsers drop the \"indeterminate\" state after the \"checked\" state\n // changes. We keep the component in the \"indeterminate\" state until the\n // prop's value changes to false or is removed.\n checkboxInputRef.current.indeterminate = Boolean(isIndeterminate);\n }\n }, [isIndeterminate, isChecked]);\n\n useEffect(() => {\n if (typeof externalState === 'boolean') {\n setIsChecked(Boolean(externalState));\n }\n }, [externalState]);\n\n const checkboxId = id || autoGenId;\n\n return (\n <CheckboxBase htmlFor={checkboxId} {...rest}>\n <input\n id={checkboxId}\n type=\"checkbox\"\n checked={isChecked}\n onChange={() => {\n const newIsChecked = !isChecked;\n setIsChecked(newIsChecked);\n onChange?.(newIsChecked);\n }}\n disabled={isDisabled}\n ref={(node: HTMLInputElement) => {\n checkboxInputRef.current = node;\n if (ref) {\n ref.current = node;\n }\n }}\n name={name}\n required={isRequired}\n {...register}\n />\n <div>\n {isIndeterminate ? (\n <Icon name=\"minus\" size={12} color={theme.colors.white} />\n ) : isChecked ? (\n <Icon name=\"check\" size={12} color={theme.colors.white} />\n ) : null}\n </div>\n {text ? <span>{text}</span> : null}\n </CheckboxBase>\n );\n};\n\nexport default Checkbox;\n","import React from 'react';\n\nvar isCheckBoxInput = (element) => element.type === 'checkbox';\n\nvar isDateObject = (value) => value instanceof Date;\n\nvar isNullOrUndefined = (value) => value == null;\n\nconst isObjectType = (value) => typeof value === 'object';\nvar isObject = (value) => !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n\nvar getEventValue = (event) => isObject(event) && event.target\n ? isCheckBoxInput(event.target)\n ? event.target.checked\n : event.target.value\n : event;\n\nvar getNodeParentName = (name) => name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n\nvar isNameInFieldArray = (names, name) => names.has(getNodeParentName(name));\n\nvar isPlainObject = (tempObject) => {\n const prototypeCopy = tempObject.constructor && tempObject.constructor.prototype;\n return (isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf'));\n};\n\nvar isWeb = typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n\nfunction cloneObject(data) {\n let copy;\n const isArray = Array.isArray(data);\n if (data instanceof Date) {\n copy = new Date(data);\n }\n else if (data instanceof Set) {\n copy = new Set(data);\n }\n else if (!(isWeb && (data instanceof Blob || data instanceof FileList)) &&\n (isArray || isObject(data))) {\n copy = isArray ? [] : {};\n if (!isArray && !isPlainObject(data)) {\n copy = data;\n }\n else {\n for (const key in data) {\n if (data.hasOwnProperty(key)) {\n copy[key] = cloneObject(data[key]);\n }\n }\n }\n }\n else {\n return data;\n }\n return copy;\n}\n\nvar compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];\n\nvar isUndefined = (val) => val === undefined;\n\nvar get = (obj, path, defaultValue) => {\n if (!path || !isObject(obj)) {\n return defaultValue;\n }\n const result = compact(path.split(/[,[\\].]+?/)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], obj);\n return isUndefined(result) || result === obj\n ? isUndefined(obj[path])\n ? defaultValue\n : obj[path]\n : result;\n};\n\nconst EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n CHANGE: 'change',\n};\nconst VALIDATION_MODE = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n};\nconst INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n};\n\nconst HookFormContext = React.createContext(null);\n/**\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @returns return all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\n * }\n * ```\n */\nconst useFormContext = () => React.useContext(HookFormContext);\n/**\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useFrom methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\n * }\n * ```\n */\nconst FormProvider = (props) => {\n const { children, ...data } = props;\n return (React.createElement(HookFormContext.Provider, { value: data }, children));\n};\n\nvar getProxyFormState = (formState, control, localProxyFormState, isRoot = true) => {\n const result = {\n defaultValues: control._defaultValues,\n };\n for (const key in formState) {\n Object.defineProperty(result, key, {\n get: () => {\n const _key = key;\n if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\n control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n }\n localProxyFormState && (localProxyFormState[_key] = true);\n return formState[_key];\n },\n });\n }\n return result;\n};\n\nvar isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;\n\nvar shouldRenderFormState = (formStateData, _proxyFormState, updateFormState, isRoot) => {\n updateFormState(formStateData);\n const { name, ...formState } = formStateData;\n return (isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n Object.keys(formState).find((key) => _proxyFormState[key] ===\n (!isRoot || VALIDATION_MODE.all)));\n};\n\nvar convertToArrayPayload = (value) => (Array.isArray(value) ? value : [value]);\n\nvar shouldSubscribeByName = (name, signalName, exact) => exact && signalName\n ? name === signalName ||\n (Array.isArray(name) &&\n name.some((currentName) => currentName && exact && currentName === signalName))\n : !name ||\n !signalName ||\n name === signalName ||\n convertToArrayPayload(name).some((currentName) => currentName &&\n (currentName.startsWith(signalName) ||\n signalName.startsWith(currentName)));\n\nfunction useSubscribe(props) {\n const _props = React.useRef(props);\n _props.current = props;\n React.useEffect(() => {\n const subscription = !props.disabled &&\n _props.current.subject &&\n _props.current.subject.subscribe({\n next: _props.current.next,\n });\n return () => {\n subscription && subscription.unsubscribe();\n };\n }, [props.disabled]);\n}\n\n/**\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\n *\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, control } = useForm({\n * defaultValues: {\n * firstName: \"firstName\"\n * }});\n * const { dirtyFields } = useFormState({\n * control\n * });\n * const onSubmit = (data) => console.log(data);\n *\n * return (\n * <form onSubmit={handleSubmit(onSubmit)}>\n * <input {...register(\"firstName\")} placeholder=\"First Name\" />\n * {dirtyFields.firstName && <p>Field is dirty.</p>}\n * <input type=\"submit\" />\n * </form>\n * );\n * }\n * ```\n */\nfunction useFormState(props) {\n const methods = useFormContext();\n const { control = methods.control, disabled, name, exact } = props || {};\n const [formState, updateFormState] = React.useState(control._formState);\n const _mounted = React.useRef(true);\n const _localProxyFormState = React.useRef({\n isDirty: false,\n isLoading: false,\n dirtyFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n });\n const _name = React.useRef(name);\n _name.current = name;\n useSubscribe({\n disabled,\n next: (value) => _mounted.current &&\n shouldSubscribeByName(_name.current, value.name, exact) &&\n shouldRenderFormState(value, _localProxyFormState.current, control._updateFormState) &&\n updateFormState({\n ...control._formState,\n ...value,\n }),\n subject: control._subjects.state,\n });\n React.useEffect(() => {\n _mounted.current = true;\n _localProxyFormState.current.isValid && control._updateValid(true);\n return () => {\n _mounted.current = false;\n };\n }, [control]);\n return getProxyFormState(formState, control, _localProxyFormState.current, false);\n}\n\nvar isString = (value) => typeof value === 'string';\n\nvar generateWatchOutput = (names, _names, formValues, isGlobal, defaultValue) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names, defaultValue);\n }\n if (Array.isArray(names)) {\n return names.map((fieldName) => (isGlobal && _names.watch.add(fieldName), get(formValues, fieldName)));\n }\n isGlobal && (_names.watchAll = true);\n return formValues;\n};\n\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * const { watch } = useForm();\n * const values = useWatch({\n * name: \"fieldName\"\n * control,\n * })\n * ```\n */\nfunction useWatch(props) {\n const methods = useFormContext();\n const { control = methods.control, name, defaultValue, disabled, exact, } = props || {};\n const _name = React.useRef(name);\n _name.current = name;\n useSubscribe({\n disabled,\n subject: control._subjects.values,\n next: (formState) => {\n if (shouldSubscribeByName(_name.current, formState.name, exact)) {\n updateValue(cloneObject(generateWatchOutput(_name.current, control._names, formState.values || control._formValues, false, defaultValue)));\n }\n },\n });\n const [value, updateValue] = React.useState(control._getWatch(name, defaultValue));\n React.useEffect(() => control._removeUnmounted());\n return value;\n}\n\nvar isKey = (value) => /^\\w*$/.test(value);\n\nvar stringToPath = (input) => compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n\nfunction set(object, path, value) {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n object[key] = newValue;\n object = object[key];\n }\n return object;\n}\n\n/**\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns field properties, field and form state. {@link UseControllerReturn}\n *\n * @example\n * ```tsx\n * function Input(props) {\n * const { field, fieldState, formState } = useController(props);\n * return (\n * <div>\n * <input {...field} placeholder={props.name} />\n * <p>{fieldState.isTouched && \"Touched\"}</p>\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * </div>\n * );\n * }\n * ```\n */\nfunction useController(props) {\n const methods = useFormContext();\n const { name, disabled, control = methods.control, shouldUnregister } = props;\n const isArrayField = isNameInFieldArray(control._names.array, name);\n const value = useWatch({\n control,\n name,\n defaultValue: get(control._formValues, name, get(control._defaultValues, name, props.defaultValue)),\n exact: true,\n });\n const formState = useFormState({\n control,\n name,\n });\n const _registerProps = React.useRef(control.register(name, {\n ...props.rules,\n value,\n }));\n _registerProps.current = control.register(name, props.rules);\n React.useEffect(() => {\n const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;\n const updateMounted = (name, value) => {\n const field = get(control._fields, name);\n if (field) {\n field._f.mount = value;\n }\n };\n updateMounted(name, true);\n if (_shouldUnregisterField) {\n const value = cloneObject(get(control._options.defaultValues, name));\n set(control._defaultValues, name, value);\n if (isUndefined(get(control._formValues, name))) {\n set(control._formValues, name, value);\n }\n }\n return () => {\n (isArrayField\n ? _shouldUnregisterField && !control._state.action\n : _shouldUnregisterField)\n ? control.unregister(name)\n : updateMounted(name, false);\n };\n }, [name, control, isArrayField, shouldUnregister]);\n React.useEffect(() => {\n control._updateDisabledField({\n disabled,\n fields: control._fields,\n name,\n });\n }, [disabled, name, control]);\n return {\n field: {\n name,\n value,\n disabled,\n onChange: React.useCallback((event) => _registerProps.current.onChange({\n target: {\n value: getEventValue(event),\n name: name,\n },\n type: EVENTS.CHANGE,\n }), [name]),\n onBlur: React.useCallback(() => _registerProps.current.onBlur({\n target: {\n value: get(control._formValues, name),\n name: name,\n },\n type: EVENTS.BLUR,\n }), [name, control]),\n ref: (elm) => {\n const field = get(control._fields, name);\n if (field && elm) {\n field._f.ref = {\n focus: () => elm.focus(),\n select: () => elm.select(),\n setCustomValidity: (message) => elm.setCustomValidity(message),\n reportValidity: () => elm.reportValidity(),\n };\n }\n },\n },\n formState,\n fieldState: Object.defineProperties({}, {\n invalid: {\n enumerable: true,\n get: () => !!get(formState.errors, name),\n },\n isDirty: {\n enumerable: true,\n get: () => !!get(formState.dirtyFields, name),\n },\n isTouched: {\n enumerable: true,\n get: () => !!get(formState.touchedFields, name),\n },\n error: {\n enumerable: true,\n get: () => get(formState.errors, name),\n },\n }),\n };\n}\n\n/**\n * Component based on `useController` hook to work with controlled component.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns provide field handler functions, field and form state.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control } = useForm<FormValues>({\n * defaultValues: {\n * test: \"\"\n * }\n * });\n *\n * return (\n * <form>\n * <Controller\n * control={control}\n * name=\"test\"\n * render={({ field: { onChange, onBlur, value, ref }, formState, fieldState }) => (\n * <>\n * <input\n * onChange={onChange} // send value to hook form\n * onBlur={onBlur} // notify when input is touched\n * value={value} // return updated value\n * ref={ref} // set ref for focus management\n * />\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * <p>{fieldState.isTouched ? \"touched\" : \"\"}</p>\n * </>\n * )}\n * />\n * </form>\n * );\n * }\n * ```\n */\nconst Controller = (props) => props.render(useController(props));\n\nconst POST_REQUEST = 'post';\n/**\n * Form component to manage submission.\n *\n * @param props - to setup submission detail. {@link FormProps}\n *\n * @returns form component or headless render prop.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control, formState: { errors } } = useForm();\n *\n * return (\n * <Form action=\"/api\" control={control}>\n * <input {...register(\"name\")} />\n * <p>{errors?.root?.server && 'Server error'}</p>\n * <button>Submit</button>\n * </Form>\n * );\n * }\n * ```\n */\nfunction Form(props) {\n const methods = useFormContext();\n const [mounted, setMounted] = React.useState(false);\n const { control = methods.control, onSubmit, children, action, method = POST_REQUEST, headers, encType, onError, render, onSuccess, validateStatus, ...rest } = props;\n const submit = async (event) => {\n let hasError = false;\n let type = '';\n await control.handleSubmit(async (data) => {\n const formData = new FormData();\n let formDataJson = '';\n try {\n formDataJson = JSON.stringify(data);\n }\n catch (_a) { }\n for (const name of control._names.mount) {\n formData.append(name, get(data, name));\n }\n if (onSubmit) {\n await onSubmit({\n data,\n event,\n method,\n formData,\n formDataJson,\n });\n }\n if (action) {\n try {\n const shouldStringifySubmissionData = [\n headers && headers['Content-Type'],\n encType,\n ].some((value) => value && value.includes('json'));\n const response = await fetch(action, {\n method,\n headers: {\n ...headers,\n ...(encType ? { 'Content-Type': encType } : {}),\n },\n body: shouldStringifySubmissionData ? formDataJson : formData,\n });\n if (response &&\n (validateStatus\n ? !validateStatus(response.status)\n : response.status < 200 || response.status >= 300)) {\n hasError = true;\n onError && onError({ response });\n type = String(response.status);\n }\n else {\n onSuccess && onSuccess({ response });\n }\n }\n catch (error) {\n hasError = true;\n onError && onError({ error });\n }\n }\n })(event);\n if (hasError && props.control) {\n props.control._subjects.state.next({\n isSubmitSuccessful: false,\n });\n props.control.setError('root.server', {\n type,\n });\n }\n };\n React.useEffect(() => {\n setMounted(true);\n }, []);\n return render ? (React.createElement(React.Fragment, null, render({\n submit,\n }))) : (React.createElement(\"form\", { noValidate: mounted, action: action, method: method, encType: encType, onSubmit: submit, ...rest }, children));\n}\n\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name].types ? errors[name].types : {}),\n [type]: message || true,\n },\n }\n : {};\n\nconst focusFieldBy = (fields, callback, fieldsNames) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n if (field) {\n const { _f, ...currentField } = field;\n if (_f && callback(_f.name)) {\n if (_f.ref.focus) {\n _f.ref.focus();\n break;\n }\n else if (_f.refs && _f.refs[0].focus) {\n _f.refs[0].focus();\n break;\n }\n }\n else if (isObject(currentField)) {\n focusFieldBy(currentField, callback);\n }\n }\n }\n};\n\nvar generateId = () => {\n const d = typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16 + d) % 16 | 0;\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n\nvar getFocusFieldName = (name, index, options = {}) => options.shouldFocus || isUndefined(options.shouldFocus)\n ? options.focusName ||\n `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.`\n : '';\n\nvar getValidationModes = (mode) => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n\nvar isWatched = (name, _names, isBlurEvent) => !isBlurEvent &&\n (_names.watchAll ||\n _names.watch.has(name) ||\n [..._names.watch].some((watchName) => name.startsWith(watchName) &&\n /^\\.\\w+/.test(name.slice(watchName.length))));\n\nvar updateFieldArrayRootError = (errors, error, name) => {\n const fieldArrayErrors = compact(get(errors, name));\n set(fieldArrayErrors, 'root', error[name]);\n set(errors, name, fieldArrayErrors);\n return errors;\n};\n\nvar isBoolean = (value) => typeof value === 'boolean';\n\nvar isFileInput = (element) => element.type === 'file';\n\nvar isFunction = (value) => typeof value === 'function';\n\nvar isHTMLElement = (value) => {\n if (!isWeb) {\n return false;\n }\n const owner = value ? value.ownerDocument : 0;\n return (value instanceof\n (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement));\n};\n\nvar isMessage = (value) => isString(value);\n\nvar isRadioInput = (element) => element.type === 'radio';\n\nvar isRegex = (value) => value instanceof RegExp;\n\nconst defaultResult = {\n value: false,\n isValid: false,\n};\nconst validResult = { value: true, isValid: true };\nvar getCheckboxValue = (options) => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n return defaultResult;\n};\n\nconst defaultReturn = {\n isValid: false,\n value: null,\n};\nvar getRadioValue = (options) => Array.isArray(options)\n ? options.reduce((previous, option) => option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous, defaultReturn)\n : defaultReturn;\n\nfunction getValidateError(result, ref, type = 'validate') {\n if (isMessage(result) ||\n (Array.isArray(result) && result.every(isMessage)) ||\n (isBoolean(result) && !result)) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref,\n };\n }\n}\n\nvar getValueAndMessage = (validationData) => isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n\nvar validateField = async (field, formValues, validateAllFieldCriteria, shouldUseNativeValidation, isFieldArray) => {\n const { ref, refs, required, maxLength, minLength, min, max, pattern, validate, name, valueAsNumber, mount, disabled, } = field._f;\n const inputValue = get(formValues, name);\n if (!mount || disabled) {\n return {};\n }\n const inputRef = refs ? refs[0] : ref;\n const setCustomValidity = (message) => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n inputRef.reportValidity();\n }\n };\n const error = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty = ((valueAsNumber || isFileInput(ref)) &&\n isUndefined(ref.value) &&\n isUndefined(inputValue)) ||\n (isHTMLElement(ref) && ref.value === '') ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);\n const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = INPUT_VALIDATION_RULES.minLength) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n if (isFieldArray\n ? !Array.isArray(inputValue) || !inputValue.length\n : required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))) {\n const { value, message } = isMessage(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue)) {\n const valueNumber = ref.valueAsNumber ||\n (inputValue ? +inputValue : inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n }\n else {\n const valueDate = ref.valueAsDate || new Date(inputValue);\n const convertTimeToDate = (time) => new Date(new Date().toDateString() + ' ' + time);\n const isTime = ref.type == 'time';\n const isWeek = ref.type == 'week';\n if (isString(maxOutput.value) && inputValue) {\n exceedMax = isTime\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n : isWeek\n ? inputValue > maxOutput.value\n : valueDate > new Date(maxOutput.value);\n }\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n : isWeek\n ? inputValue < minOutput.value\n : valueDate < new Date(minOutput.value);\n }\n }\n if (exceedMax || exceedMin) {\n getMinMaxMessage(!!exceedMax, maxOutput.message, minOutput.message, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if ((maxLength || minLength) &&\n !isEmpty &&\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax = !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > +maxLengthOutput.value;\n const exceedMin = !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < +minLengthOutput.value;\n if (exceedMax || exceedMin) {\n getMinMaxMessage(exceedMax, maxLengthOutput.message, minLengthOutput.message);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if (pattern && !isEmpty && isString(inputValue)) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue, formValues);\n const validateError = getValidateError(result, inputRef);\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n }\n else if (isObject(validate)) {\n let validationResult = {};\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n const validateError = getValidateError(await validate[key](inputValue, formValues), inputRef, key);\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n setCustomValidity(validateError.message);\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n setCustomValidity(true);\n return error;\n};\n\nfunction append(data, value) {\n return [...data, ...convertToArrayPayload(value)];\n}\n\nvar fillEmptyArray = (value) => Array.isArray(value) ? value.map(() => undefined) : undefined;\n\nfunction insert(data, index, value) {\n return [\n ...data.slice(0, index),\n ...convertToArrayPayload(value),\n ...data.slice(index),\n ];\n}\n\nvar moveArrayAt = (data, from, to) => {\n if (!Array.isArray(data)) {\n return [];\n }\n if (isUndefined(data[to])) {\n data[to] = undefined;\n }\n data.splice(to, 0, data.splice(from, 1)[0]);\n return data;\n};\n\nfunction prepend(data, value) {\n return [...convertToArrayPayload(value), ...convertToArrayPayload(data)];\n}\n\nfunction removeAtIndexes(data, indexes) {\n let i = 0;\n const temp = [...data];\n for (const index of indexes) {\n temp.splice(index - i, 1);\n i++;\n }\n return compact(temp).length ? temp : [];\n}\nvar removeArrayAt = (data, index) => isUndefined(index)\n ? []\n : removeAtIndexes(data, convertToArrayPayload(index).sort((a, b) => a - b));\n\nvar swapArrayAt = (data, indexA, indexB) => {\n data[indexA] = [data[indexB], (data[indexB] = data[indexA])][0];\n};\n\nfunction baseGet(object, updatePath) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n return object;\n}\nfunction isEmptyArray(obj) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && !isUndefined(obj[key])) {\n return false;\n }\n }\n return true;\n}\nfunction unset(object, path) {\n const paths = Array.isArray(path)\n ? path\n : isKey(path)\n ? [path]\n : stringToPath(path);\n const childObject = paths.length === 1 ? object : baseGet(object, paths);\n const index = paths.length - 1;\n const key = paths[index];\n if (childObject) {\n delete childObject[key];\n }\n if (index !== 0 &&\n ((isObject(childObject) && isEmptyObject(childObject)) ||\n (Array.isArray(childObject) && isEmptyArray(childObject)))) {\n unset(object, paths.slice(0, -1));\n }\n return object;\n}\n\nvar updateAt = (fieldValues, index, value) => {\n fieldValues[index] = value;\n return fieldValues;\n};\n\n/**\n * A custom hook that exposes convenient methods to perform operations with a list of dynamic inputs that need to be appended, updated, removed etc. • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn) • [Video](https://youtu.be/4MrbfGSFY2A)\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usefieldarray) • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn)\n *\n * @param props - useFieldArray props\n *\n * @returns methods - functions to manipulate with the Field Arrays (dynamic inputs) {@link UseFieldArrayReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, control, handleSubmit, reset, trigger, setError } = useForm({\n * defaultValues: {\n * test: []\n * }\n * });\n * const { fields, append } = useFieldArray({\n * control,\n * name: \"test\"\n * });\n *\n * return (\n * <form onSubmit={handleSubmit(data => console.log(data))}>\n * {fields.map((item, index) => (\n * <input key={item.id} {...register(`test.${index}.firstName`)} />\n * ))}\n * <button type=\"button\" onClick={() => append({ firstName: \"bill\" })}>\n * append\n * </button>\n * <input type=\"submit\" />\n * </form>\n * );\n * }\n * ```\n */\nfunction useFieldArray(props) {\n const methods = useFormContext();\n const { control = methods.control, name, keyName = 'id', shouldUnregister, } = props;\n const [fields, setFields] = React.useState(control._getFieldArray(name));\n const ids = React.useRef(control._getFieldArray(name).map(generateId));\n const _fieldIds = React.useRef(fields);\n const _name = React.useRef(name);\n const _actioned = React.useRef(false);\n _name.current = name;\n _fieldIds.current = fields;\n control._names.array.add(name);\n props.rules &&\n control.register(name, props.rules);\n useSubscribe({\n next: ({ values, name: fieldArrayName, }) => {\n if (fieldArrayName === _name.current || !fieldArrayName) {\n const fieldValues = get(values, _name.current);\n if (Array.isArray(fieldValues)) {\n setFields(fieldValues);\n ids.current = fieldValues.map(generateId);\n }\n }\n },\n subject: control._subjects.array,\n });\n const updateValues = React.useCallback((updatedFieldArrayValues) => {\n _actioned.current = true;\n control._updateFieldArray(name, updatedFieldArrayValues);\n }, [control, name]);\n const append$1 = (value, options) => {\n const appendValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = append(control._getFieldArray(name), appendValue);\n control._names.focus = getFocusFieldName(name, updatedFieldArrayValues.length - 1, options);\n ids.current = append(ids.current, appendValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, append, {\n argA: fillEmptyArray(value),\n });\n };\n const prepend$1 = (value, options) => {\n const prependValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = prepend(control._getFieldArray(name), prependValue);\n control._names.focus = getFocusFieldName(name, 0, options);\n ids.current = prepend(ids.current, prependValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, prepend, {\n argA: fillEmptyArray(value),\n });\n };\n const remove = (index) => {\n const updatedFieldArrayValues = removeArrayAt(control._getFieldArray(name), index);\n ids.current = removeArrayAt(ids.current, index);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, removeArrayAt, {\n argA: index,\n });\n };\n const insert$1 = (index, value, options) => {\n const insertValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = insert(control._getFieldArray(name), index, insertValue);\n control._names.focus = getFocusFieldName(name, index, options);\n ids.current = insert(ids.current, index, insertValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, insert, {\n argA: index,\n argB: fillEmptyArray(value),\n });\n };\n const swap = (indexA, indexB) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n swapArrayAt(updatedFieldArrayValues, indexA, indexB);\n swapArrayAt(ids.current, indexA, indexB);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, swapArrayAt, {\n argA: indexA,\n argB: indexB,\n }, false);\n };\n const move = (from, to) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n moveArrayAt(updatedFieldArrayValues, from, to);\n moveArrayAt(ids.current, from, to);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, moveArrayAt, {\n argA: from,\n argB: to,\n }, false);\n };\n const update = (index, value) => {\n const updateValue = cloneObject(value);\n const updatedFieldArrayValues = updateAt(control._getFieldArray(name), index, updateValue);\n ids.current = [...updatedFieldArrayValues].map((item, i) => !item || i === index ? generateId() : ids.current[i]);\n updateValues(updatedFieldArrayValues);\n setFields([...updatedFieldArrayValues]);\n control._updateFieldArray(name, updatedFieldArrayValues, updateAt, {\n argA: index,\n argB: updateValue,\n }, true, false);\n };\n const replace = (value) => {\n const updatedFieldArrayValues = convertToArrayPayload(cloneObject(value));\n ids.current = updatedFieldArrayValues.map(generateId);\n updateValues([...updatedFieldArrayValues]);\n setFields([...updatedFieldArrayValues]);\n control._updateFieldArray(name, [...updatedFieldArrayValues], (data) => data, {}, true, false);\n };\n React.useEffect(() => {\n control._state.action = false;\n isWatched(name, control._names) &&\n control._subjects.state.next({\n ...control._formState,\n });\n if (_actioned.current &&\n (!getValidationModes(control._options.mode).isOnSubmit ||\n control._formState.isSubmitted)) {\n if (control._options.resolver) {\n control._executeSchema([name]).then((result) => {\n const error = get(result.errors, name);\n const existingError = get(control._formState.errors, name);\n if (existingError\n ? (!error && existingError.type) ||\n (error &&\n (existingError.type !== error.type ||\n existingError.message !== error.message))\n : error && error.type) {\n error\n ? set(control._formState.errors, name, error)\n : unset(control._formState.errors, name);\n control._subjects.state.next({\n errors: control._formState.errors,\n });\n }\n });\n }\n else {\n const field = get(control._fields, name);\n if (field && field._f) {\n validateField(field, control._formValues, control._options.criteriaMode === VALIDATION_MODE.all, control._options.shouldUseNativeValidation, true).then((error) => !isEmptyObject(error) &&\n control._subjects.state.next({\n errors: updateFieldArrayRootError(control._formState.errors, error, name),\n }));\n }\n }\n }\n control._subjects.values.next({\n name,\n values: { ...control._formValues },\n });\n control._names.focus &&\n focusFieldBy(control._fields, (key) => !!key && key.startsWith(control._names.focus || ''));\n control._names.focus = '';\n control._updateValid();\n _actioned.current = false;\n }, [fields, name, control]);\n React.useEffect(() => {\n !get(control._formValues, name) && control._updateFieldArray(name);\n return () => {\n (control._options.shouldUnregister || shouldUnregister) &&\n control.unregister(name);\n };\n }, [name, control, keyName, shouldUnregister]);\n return {\n swap: React.useCallback(swap, [updateValues, name, control]),\n move: React.useCallback(move, [updateValues, name, control]),\n prepend: React.useCallback(prepend$1, [updateValues, name, control]),\n append: React.useCallback(append$1, [updateValues, name, control]),\n remove: React.useCallback(remove, [updateValues, name, control]),\n insert: React.useCallback(insert$1, [updateValues, name, control]),\n update: React.useCallback(update, [updateValues, name, control]),\n replace: React.useCallback(replace, [updateValues, name, control]),\n fields: React.useMemo(() => fields.map((field, index) => ({\n ...field,\n [keyName]: ids.current[index] || generateId(),\n })), [fields, keyName]),\n };\n}\n\nfunction createSubject() {\n let _observers = [];\n const next = (value) => {\n for (const observer of _observers) {\n observer.next && observer.next(value);\n }\n };\n const subscribe = (observer) => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter((o) => o !== observer);\n },\n };\n };\n const unsubscribe = () => {\n _observers = [];\n };\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe,\n };\n}\n\nvar isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);\n\nfunction deepEqual(object1, object2) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return object1 === object2;\n }\n if (isDateObject(object1) && isDateObject(object2)) {\n return object1.getTime() === object2.getTime();\n }\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n if (keys1.length !== keys2.length) {\n return false;\n }\n for (const key of keys1) {\n const val1 = object1[key];\n if (!keys2.includes(key)) {\n return false;\n }\n if (key !== 'ref') {\n const val2 = object2[key];\n if ((isDateObject(val1) && isDateObject(val2)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2)\n : val1 !== val2) {\n return false;\n }\n }\n }\n return true;\n}\n\nvar isMultipleSelect = (element) => element.type === `select-multiple`;\n\nvar isRadioOrCheckbox = (ref) => isRadioInput(ref) || isCheckBoxInput(ref);\n\nvar live = (ref) => isHTMLElement(ref) && ref.isConnected;\n\nvar objectHasFunction = (data) => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n\nfunction markFieldsDirty(data, fields = {}) {\n const isParentNodeArray = Array.isArray(data);\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\n fields[key] = Array.isArray(data[key]) ? [] : {};\n markFieldsDirty(data[key], fields[key]);\n }\n else if (!isNullOrUndefined(data[key])) {\n fields[key] = true;\n }\n }\n }\n return fields;\n}\nfunction getDirtyFieldsFromDefaultValues(data, formValues, dirtyFieldsFromValues) {\n const isParentNodeArray = Array.isArray(data);\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\n if (isUndefined(formValues) ||\n isPrimitive(dirtyFieldsFromValues[key])) {\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\n ? markFieldsDirty(data[key], [])\n : { ...markFieldsDirty(data[key]) };\n }\n else {\n getDirtyFieldsFromDefaultValues(data[key], isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);\n }\n }\n else {\n dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\n }\n }\n }\n return dirtyFieldsFromValues;\n}\nvar getDirtyFields = (defaultValues, formValues) => getDirtyFieldsFromDefaultValues(defaultValues, formValues, markFieldsDirty(formValues));\n\nvar getFieldValueAs = (value, { valueAsNumber, valueAsDate, setValueAs }) => isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : value\n ? +value\n : value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n\nfunction getFieldValue(_f) {\n const ref = _f.ref;\n if (_f.refs ? _f.refs.every((ref) => ref.disabled) : ref.disabled) {\n return;\n }\n if (isFileInput(ref)) {\n return ref.files;\n }\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(({ value }) => value);\n }\n if (isCheckBoxInput(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n\nvar getResolverOptions = (fieldsNames, _fields, criteriaMode, shouldUseNativeValidation) => {\n const fields = {};\n for (const name of fieldsNames) {\n const field = get(_fields, name);\n field && set(fields, name, field._f);\n }\n return {\n criteriaMode,\n names: [...fieldsNames],\n fields,\n shouldUseNativeValidation,\n };\n};\n\nvar getRuleValue = (rule) => isUndefined(rule)\n ? rule\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n\nvar hasValidation = (options) => options.mount &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n\nfunction schemaErrorLookup(errors, _fields, name) {\n const error = get(errors, name);\n if (error || isKey(name)) {\n return {\n error,\n name,\n };\n }\n const names = name.split('.');\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n if (field && !Array.isArray(field) && name !== fieldName) {\n return { name };\n }\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError,\n };\n }\n names.pop();\n }\n return {\n name,\n };\n}\n\nvar skipValidation = (isBlurEvent, isTouched, isSubmitted, reValidateMode, mode) => {\n if (mode.isOnAll) {\n return false;\n }\n else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n }\n else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n }\n else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n\nvar unsetEmptyArray = (ref, name) => !compact(get(ref, name)).length && unset(ref, name);\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n};\nfunction createFormControl(props = {}, flushRootRender) {\n let _options = {\n ...defaultOptions,\n ...props,\n };\n let _formState = {\n submitCount: 0,\n isDirty: false,\n isLoading: isFunction(_options.defaultValues),\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n touchedFields: {},\n dirtyFields: {},\n errors: {},\n };\n let _fields = {};\n let _defaultValues = isObject(_options.defaultValues) || isObject(_options.values)\n ? cloneObject(_options.defaultValues || _options.values) || {}\n : {};\n let _formValues = _options.shouldUnregister\n ? {}\n : cloneObject(_defaultValues);\n let _state = {\n action: false,\n mount: false,\n watch: false,\n };\n let _names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n };\n let delayErrorCallback;\n let timer = 0;\n const _proxyFormState = {\n isDirty: false,\n dirtyFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n };\n const _subjects = {\n values: createSubject(),\n array: createSubject(),\n state: createSubject(),\n };\n const shouldCaptureDirtyFields = props.resetOptions && props.resetOptions.keepDirtyValues;\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n const shouldDisplayAllAssociatedErrors = _options.criteriaMode === VALIDATION_MODE.all;\n const debounce = (callback) => (wait) => {\n clearTimeout(timer);\n timer = setTimeout(callback, wait);\n };\n const _updateValid = async (shouldUpdateValid) => {\n if (_proxyFormState.isValid || shouldUpdateValid) {\n const isValid = _options.resolver\n ? isEmptyObject((await _executeSchema()).errors)\n : await executeBuiltInValidation(_fields, true);\n if (isValid !== _formState.isValid) {\n _subjects.state.next({\n isValid,\n });\n }\n }\n };\n const _updateIsValidating = (value) => _proxyFormState.isValidating &&\n _subjects.state.next({\n isValidating: value,\n });\n const _updateFieldArray = (name, values = [], method, args, shouldSetValues = true, shouldUpdateFieldsAndState = true) => {\n if (args && method) {\n _state.action = true;\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n if (shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.errors, name))) {\n const errors = method(get(_formState.errors, name), args.argA, args.argB);\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n if (_proxyFormState.touchedFields &&\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.touchedFields, name))) {\n const touchedFields = method(get(_formState.touchedFields, name), args.argA, args.argB);\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n if (_proxyFormState.dirtyFields) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n }\n _subjects.state.next({\n name,\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid,\n });\n }\n else {\n set(_formValues, name, values);\n }\n };\n const updateErrors = (name, error) => {\n set(_formState.errors, name, error);\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n const updateValidAndValue = (name, shouldSkipSetValueAs, value, ref) => {\n const field = get(_fields, name);\n if (field) {\n const defaultValue = get(_formValues, name, isUndefined(value) ? get(_defaultValues, name) : value);\n isUndefined(defaultValue) ||\n (ref && ref.defaultChecked) ||\n shouldSkipSetValueAs\n ? set(_formValues, name, shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f))\n : setFieldValue(name, defaultValue);\n _state.mount && _updateValid();\n }\n };\n const updateTouchAndDirty = (name, fieldValue, isBlurEvent, shouldDirty, shouldRender) => {\n let shouldUpdateField = false;\n let isPreviousDirty = false;\n const output = {\n name,\n };\n if (!isBlurEvent || shouldDirty) {\n if (_proxyFormState.isDirty) {\n isPreviousDirty = _formState.isDirty;\n _formState.isDirty = output.isDirty = _getDirty();\n shouldUpdateField = isPreviousDirty !== output.isDirty;\n }\n const isCurrentFieldPristine = deepEqual(get(_defaultValues, name), fieldValue);\n isPreviousDirty = get(_formState.dirtyFields, name);\n isCurrentFieldPristine\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields, name, true);\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.dirtyFields &&\n isPreviousDirty !== !isCurrentFieldPristine);\n }\n if (isBlurEvent) {\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n if (!isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.touchedFields &&\n isPreviousFieldTouched !== isBlurEvent);\n }\n }\n shouldUpdateField && shouldRender && _subjects.state.next(output);\n return shouldUpdateField ? output : {};\n };\n const shouldRenderByError = (name, isValid, error, fieldState) => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid = _proxyFormState.isValid &&\n isBoolean(isValid) &&\n _formState.isValid !== isValid;\n if (props.delayError && error) {\n delayErrorCallback = debounce(() => updateErrors(name, error));\n delayErrorCallback(props.delayError);\n }\n else {\n clearTimeout(timer);\n delayErrorCallback = null;\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n if ((error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n _subjects.state.next(updatedFormState);\n }\n _updateIsValidating(false);\n };\n const _executeSchema = async (name) => _options.resolver(_formValues, _options.context, getResolverOptions(name || _names.mount, _fields, _options.criteriaMode, _options.shouldUseNativeValidation));\n const executeSchemaAndUpdateState = async (names) => {\n const { errors } = await _executeSchema(names);\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n }\n else {\n _formState.errors = errors;\n }\n return errors;\n };\n const executeBuiltInValidation = async (fields, shouldOnlyCheckValid, context = {\n valid: true,\n }) => {\n for (const name in fields) {\n const field = fields[name];\n if (field) {\n const { _f, ...fieldValue } = field;\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n const fieldError = await validateField(field, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation && !shouldOnlyCheckValid, isFieldArrayRoot);\n if (fieldError[_f.name]) {\n context.valid = false;\n if (shouldOnlyCheckValid) {\n break;\n }\n }\n !shouldOnlyCheckValid &&\n (get(fieldError, _f.name)\n ? isFieldArrayRoot\n ? updateFieldArrayRootError(_formState.errors, fieldError, _f.name)\n : set(_formState.errors, _f.name, fieldError[_f.name])\n : unset(_formState.errors, _f.name));\n }\n fieldValue &&\n (await executeBuiltInValidation(fieldValue, shouldOnlyCheckValid, context));\n }\n }\n return context.valid;\n };\n const _removeUnmounted = () => {\n for (const name of _names.unMount) {\n const field = get(_fields, name);\n field &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name);\n }\n _names.unMount = new Set();\n };\n const _getDirty = (name, data) => (name && data && set(_formValues, name, data),\n !deepEqual(getValues(), _defaultValues));\n const _getWatch = (names, defaultValue, isGlobal) => generateWatchOutput(names, _names, {\n ...(_state.mount\n ? _formValues\n : isUndefined(defaultValue)\n ? _defaultValues\n : isString(names)\n ? { [names]: defaultValue }\n : defaultValue),\n }, isGlobal, defaultValue);\n const _getFieldArray = (name) => compact(get(_state.mount ? _formValues : _defaultValues, name, props.shouldUnregister ? get(_defaultValues, name, []) : []));\n const setFieldValue = (name, value, options = {}) => {\n const field = get(_fields, name);\n let fieldValue = value;\n if (field) {\n const fieldReference = field._f;\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n fieldValue =\n isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach((optionRef) => (optionRef.selected = fieldValue.includes(optionRef.value)));\n }\n else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.length > 1\n ? fieldReference.refs.forEach((checkboxRef) => (!checkboxRef.defaultChecked || !checkboxRef.disabled) &&\n (checkboxRef.checked = Array.isArray(fieldValue)\n ? !!fieldValue.find((data) => data === checkboxRef.value)\n : fieldValue === checkboxRef.value))\n : fieldReference.refs[0] &&\n (fieldReference.refs[0].checked = !!fieldValue);\n }\n else {\n fieldReference.refs.forEach((radioRef) => (radioRef.checked = radioRef.value === fieldValue));\n }\n }\n else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n }\n else {\n fieldReference.ref.value = fieldValue;\n if (!fieldReference.ref.type) {\n _subjects.values.next({\n name,\n values: { ..._formValues },\n });\n }\n }\n }\n }\n (options.shouldDirty || options.shouldTouch) &&\n updateTouchAndDirty(name, fieldValue, options.shouldTouch, options.shouldDirty, true);\n options.shouldValidate && trigger(name);\n };\n const setValues = (name, value, options) => {\n for (const fieldKey in value) {\n const fieldValue = value[fieldKey];\n const fieldName = `${name}.${fieldKey}`;\n const field = get(_fields, fieldName);\n (_names.array.has(name) ||\n !isPrimitive(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setValues(fieldName, fieldValue, options)\n : setFieldValue(fieldName, fieldValue, options);\n }\n };\n const setValue = (name, value, options = {}) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = cloneObject(value);\n set(_formValues, name, cloneValue);\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: { ..._formValues },\n });\n if ((_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\n options.shouldDirty) {\n _subjects.state.next({\n name,\n dirtyFields: getDirtyFields(_defaultValues, _formValues),\n isDirty: _getDirty(name, cloneValue),\n });\n }\n }\n else {\n field && !field._f && !isNullOrUndefined(cloneValue)\n ? setValues(name, cloneValue, options)\n : setFieldValue(name, cloneValue, options);\n }\n isWatched(name, _names) && _subjects.state.next({ ..._formState });\n _subjects.values.next({\n name,\n values: { ..._formValues },\n });\n !_state.mount && flushRootRender();\n };\n const onChange = async (event) => {\n const target = event.target;\n let name = target.name;\n let isFieldValueUpdated = true;\n const field = get(_fields, name);\n const getCurrentFieldValue = () => target.type ? getFieldValue(field._f) : getEventValue(event);\n if (field) {\n let error;\n let isValid;\n const fieldValue = getCurrentFieldValue();\n const isBlurEvent = event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const shouldSkipValidation = (!hasValidation(field._f) &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps) ||\n skipValidation(isBlurEvent, get(_formState.touchedFields, name), _formState.isSubmitted, validationModeAfterSubmit, validationModeBeforeSubmit);\n const watched = isWatched(name, _names, isBlurEvent);\n set(_formValues, name, fieldValue);\n if (isBlurEvent) {\n field._f.onBlur && field._f.onBlur(event);\n delayErrorCallback && delayErrorCallback(0);\n }\n else if (field._f.onChange) {\n field._f.onChange(event);\n }\n const fieldState = updateTouchAndDirty(name, fieldValue, isBlurEvent, false);\n const shouldRender = !isEmptyObject(fieldState) || watched;\n !isBlurEvent &&\n _subjects.values.next({\n name,\n type: event.type,\n values: { ..._formValues },\n });\n if (shouldSkipValidation) {\n _proxyFormState.isValid && _updateValid();\n return (shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) }));\n }\n !isBlurEvent && watched && _subjects.state.next({ ..._formState });\n _updateIsValidating(true);\n if (_options.resolver) {\n const { errors } = await _executeSchema([name]);\n const previousErrorLookupResult = schemaErrorLookup(_formState.errors, _fields, name);\n const errorLookupResult = schemaErrorLookup(errors, _fields, previousErrorLookupResult.name || name);\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n isValid = isEmptyObject(errors);\n }\n else {\n error = (await validateField(field, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation))[name];\n isFieldValueUpdated =\n isNaN(fieldValue) ||\n fieldValue === get(_formValues, name, fieldValue);\n if (isFieldValueUpdated) {\n if (error) {\n isValid = false;\n }\n else if (_proxyFormState.isValid) {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n }\n }\n if (isFieldValueUpdated) {\n field._f.deps &&\n trigger(field._f.deps);\n shouldRenderByError(name, isValid, error, fieldState);\n }\n }\n };\n const trigger = async (name, options = {}) => {\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name);\n _updateIsValidating(true);\n if (_options.resolver) {\n const errors = await executeSchemaAndUpdateState(isUndefined(name) ? name : fieldNames);\n isValid = isEmptyObject(errors);\n validationResult = name\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n }\n else if (name) {\n validationResult = (await Promise.all(fieldNames.map(async (fieldName) => {\n const field = get(_fields, fieldName);\n return await executeBuiltInValidation(field && field._f ? { [fieldName]: field } : field);\n }))).every(Boolean);\n !(!validationResult && !_formState.isValid) && _updateValid();\n }\n else {\n validationResult = isValid = await executeBuiltInValidation(_fields);\n }\n _subjects.state.next({\n ...(!isString(name) ||\n (_proxyFormState.isValid && isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver || !name ? { isValid } : {}),\n errors: _formState.errors,\n isValidating: false,\n });\n options.shouldFocus &&\n !validationResult &&\n focusFieldBy(_fields, (key) => key && get(_formState.errors, key), name ? fieldNames : _names.mount);\n return validationResult;\n };\n const getValues = (fieldNames) => {\n const values = {\n ..._defaultValues,\n ...(_state.mount ? _formValues : {}),\n };\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames)\n : fieldNames.map((name) => get(values, name));\n };\n const getFieldState = (name, formState) => ({\n invalid: !!get((formState || _formState).errors, name),\n isDirty: !!get((formState || _formState).dirtyFields, name),\n isTouched: !!get((formState || _formState).touchedFields, name),\n error: get((formState || _formState).errors, name),\n });\n const clearErrors = (name) => {\n name &&\n convertToArrayPayload(name).forEach((inputName) => unset(_formState.errors, inputName));\n _subjects.state.next({\n errors: name ? _formState.errors : {},\n });\n };\n const setError = (name, error, options) => {\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n set(_formState.errors, name, {\n ...error,\n ref,\n });\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false,\n });\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n const watch = (name, defaultValue) => isFunction(name)\n ? _subjects.values.subscribe({\n next: (payload) => name(_getWatch(undefined, defaultValue), payload),\n })\n : _getWatch(name, defaultValue, true);\n const unregister = (name, options = {}) => {\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n !options.keepError && unset(_formState.errors, fieldName);\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !_options.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n _subjects.values.next({\n values: { ..._formValues },\n });\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n });\n !options.keepIsValid && _updateValid();\n };\n const _updateDisabledField = ({ disabled, name, field, fields, }) => {\n if (isBoolean(disabled)) {\n const value = disabled\n ? undefined\n : get(_formValues, name, getFieldValue(field ? field._f : get(fields, name)._f));\n set(_formValues, name, value);\n updateTouchAndDirty(name, value, false, false, true);\n }\n };\n const register = (name, options = {}) => {\n let field = get(_fields, name);\n const disabledIsDefined = isBoolean(options.disabled);\n set(_fields, name, {\n ...(field || {}),\n _f: {\n ...(field && field._f ? field._f : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n if (field) {\n _updateDisabledField({\n field,\n disabled: options.disabled,\n name,\n });\n }\n else {\n updateValidAndValue(name, true, options.value);\n }\n return {\n ...(disabledIsDefined ? { disabled: options.disabled } : {}),\n ...(_options.progressive\n ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue(options.minLength),\n maxLength: getRuleValue(options.maxLength),\n pattern: getRuleValue(options.pattern),\n }\n : {}),\n name,\n onChange,\n onBlur: onChange,\n ref: (ref) => {\n if (ref) {\n register(name, options);\n field = get(_fields, name);\n const fieldRef = isUndefined(ref.value)\n ? ref.querySelectorAll\n ? ref.querySelectorAll('input,select,textarea')[0] || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n if (radioOrCheckbox\n ? refs.find((option) => option === fieldRef)\n : fieldRef === field._f.ref) {\n return;\n }\n set(_fields, name, {\n _f: {\n ...field._f,\n ...(radioOrCheckbox\n ? {\n refs: [\n ...refs.filter(live),\n fieldRef,\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n ],\n ref: { type: fieldRef.type, name },\n }\n : { ref: fieldRef }),\n },\n });\n updateValidAndValue(name, false, undefined, fieldRef);\n }\n else {\n field = get(_fields, name, {});\n if (field._f) {\n field._f.mount = false;\n }\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _state.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n const _focusError = () => _options.shouldFocusError &&\n focusFieldBy(_fields, (key) => key && get(_formState.errors, key), _names.mount);\n const handleSubmit = (onValid, onInvalid) => async (e) => {\n if (e) {\n e.preventDefault && e.preventDefault();\n e.persist && e.persist();\n }\n let fieldValues = cloneObject(_formValues);\n _subjects.state.next({\n isSubmitting: true,\n });\n if (_options.resolver) {\n const { errors, values } = await _executeSchema();\n _formState.errors = errors;\n fieldValues = values;\n }\n else {\n await executeBuiltInValidation(_fields);\n }\n unset(_formState.errors, 'root');\n if (isEmptyObject(_formState.errors)) {\n _subjects.state.next({\n errors: {},\n });\n await onValid(fieldValues, e);\n }\n else {\n if (onInvalid) {\n await onInvalid({ ..._formState.errors }, e);\n }\n _focusError();\n setTimeout(_focusError);\n }\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors),\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors,\n });\n };\n const resetField = (name, options = {}) => {\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, get(_defaultValues, name));\n }\n else {\n setValue(name, options.defaultValue);\n set(_defaultValues, name, options.defaultValue);\n }\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue\n ? _getDirty(name, get(_defaultValues, name))\n : _getDirty();\n }\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _updateValid();\n }\n _subjects.state.next({ ..._formState });\n }\n };\n const _reset = (formValues, keepStateOptions = {}) => {\n const updatedValues = formValues ? cloneObject(formValues) : _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const values = formValues && !isEmptyObject(formValues)\n ? cloneUpdatedValues\n : _defaultValues;\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues || shouldCaptureDirtyFields) {\n for (const fieldName of _names.mount) {\n get(_formState.dirtyFields, fieldName)\n ? set(values, fieldName, get(_formValues, fieldName))\n : setValue(fieldName, get(values, fieldName));\n }\n }\n else {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n if (isHTMLElement(fieldReference)) {\n const form = fieldReference.closest('form');\n if (form) {\n form.reset();\n break;\n }\n }\n }\n }\n }\n _fields = {};\n }\n _formValues = props.shouldUnregister\n ? keepStateOptions.keepDefaultValues\n ? cloneObject(_defaultValues)\n : {}\n : cloneObject(values);\n _subjects.array.next({\n values: { ...values },\n });\n _subjects.values.next({\n values: { ...values },\n });\n }\n _names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: '',\n };\n !_state.mount && flushRootRender();\n _state.mount = !_proxyFormState.isValid || !!keepStateOptions.keepIsValid;\n _state.watch = !!props.shouldUnregister;\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount\n ? _formState.submitCount\n : 0,\n isDirty: keepStateOptions.keepDirty\n ? _formState.isDirty\n : !!(keepStateOptions.keepDefaultValues &&\n !deepEqual(formValues, _defaultValues)),\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields: keepStateOptions.keepDirtyValues\n ? _formState.dirtyFields\n : keepStateOptions.keepDefaultValues && formValues\n ? getDirtyFields(_defaultValues, formValues)\n : {},\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : {},\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitting: false,\n isSubmitSuccessful: false,\n });\n };\n const reset = (formValues, keepStateOptions) => _reset(isFunction(formValues)\n ? formValues(_formValues)\n : formValues, keepStateOptions);\n const setFocus = (name, options = {}) => {\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n if (fieldReference) {\n const fieldRef = fieldReference.refs\n ? fieldReference.refs[0]\n : fieldReference.ref;\n if (fieldRef.focus) {\n fieldRef.focus();\n options.shouldSelect && fieldRef.select();\n }\n }\n };\n const _updateFormState = (updatedFormState) => {\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n };\n const _resetDefaultValues = () => isFunction(_options.defaultValues) &&\n _options.defaultValues().then((values) => {\n reset(values, _options.resetOptions);\n _subjects.state.next({\n isLoading: false,\n });\n });\n return {\n control: {\n register,\n unregister,\n getFieldState,\n handleSubmit,\n setError,\n _executeSchema,\n _getWatch,\n _getDirty,\n _updateValid,\n _removeUnmounted,\n _updateFieldArray,\n _updateDisabledField,\n _getFieldArray,\n _reset,\n _resetDefaultValues,\n _updateFormState,\n _subjects,\n _proxyFormState,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _state() {\n return _state;\n },\n set _state(value) {\n _state = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n set _formState(value) {\n _formState = value;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = {\n ..._options,\n ...value,\n };\n },\n },\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n resetField,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState,\n };\n}\n\n/**\n * Custom hook to manage the entire form.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\n *\n * @param props - form configuration and validation parameters.\n *\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\n * const onSubmit = data => console.log(data);\n *\n * console.log(watch(\"example\"));\n *\n * return (\n * <form onSubmit={handleSubmit(onSubmit)}>\n * <input defaultValue=\"test\" {...register(\"example\")} />\n * <input {...register(\"exampleRequired\", { required: true })} />\n * {errors.exampleRequired && <span>This field is required</span>}\n * <button>Submit</button>\n * </form>\n * );\n * }\n * ```\n */\nfunction useForm(props = {}) {\n const _formControl = React.useRef();\n const _values = React.useRef();\n const [formState, updateFormState] = React.useState({\n isDirty: false,\n isValidating: false,\n isLoading: isFunction(props.defaultValues),\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n submitCount: 0,\n dirtyFields: {},\n touchedFields: {},\n errors: {},\n defaultValues: isFunction(props.defaultValues)\n ? undefined\n : props.defaultValues,\n });\n if (!_formControl.current) {\n _formControl.current = {\n ...createFormControl(props, () => updateFormState((formState) => ({ ...formState }))),\n formState,\n };\n }\n const control = _formControl.current.control;\n control._options = props;\n useSubscribe({\n subject: control._subjects.state,\n next: (value) => {\n if (shouldRenderFormState(value, control._proxyFormState, control._updateFormState, true)) {\n updateFormState({ ...control._formState });\n }\n },\n });\n React.useEffect(() => {\n if (props.values && !deepEqual(props.values, _values.current)) {\n control._reset(props.values, control._options.resetOptions);\n _values.current = props.values;\n }\n else {\n control._resetDefaultValues();\n }\n }, [props.values, control]);\n React.useEffect(() => {\n if (!control._state.mount) {\n control._updateValid();\n control._state.mount = true;\n }\n if (control._state.watch) {\n control._state.watch = false;\n control._subjects.state.next({ ...control._formState });\n }\n control._removeUnmounted();\n });\n _formControl.current.formState = getProxyFormState(formState, control);\n return _formControl.current;\n}\n\nexport { Controller, Form, FormProvider, appendErrors, get, set, useController, useFieldArray, useForm, useFormContext, useFormState, useWatch };\n//# sourceMappingURL=index.esm.mjs.map\n","import { useController } from 'react-hook-form';\nimport type { FieldValues } from 'react-hook-form';\n\nimport Checkbox from '@components/Checkbox';\n\nimport { IFormCheckboxProps } from './types';\nimport { ChangeEvent } from 'react';\n\nconst FormCheckbox = <T extends FieldValues>({\n control,\n name,\n isRequired = false,\n ...props\n}: IFormCheckboxProps<T>) => {\n const { field } = useController({\n control,\n name,\n rules: { required: isRequired },\n });\n\n return (\n <Checkbox\n name={name}\n onChange={(value) => {\n field.onChange(value as unknown as ChangeEvent);\n }}\n isRequired={isRequired}\n {...props}\n />\n );\n};\n\nexport default FormCheckbox;\n","import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { focusOutline } from '@styles/safari-focus-outline';\nimport { IDropdownToggleProps, MultipleStylesProps } from './types';\n\nconst multipleStyles = ({ theme, selectedCount = 0 }: MultipleStylesProps) => {\n let borderColor = theme.colors.greyDropdownMain;\n let borderColorFocused = theme.colors.greyDropdownFocused;\n let backgroundColor = theme.colors.white;\n if (selectedCount > 0) {\n borderColor = theme.colors.blueDropdownWithSelectedItemsBorder;\n borderColorFocused = theme.colors.blueDropdownWithSelectedItemsBorder;\n backgroundColor = theme.colors.blueDropdownWithSelectedItems;\n }\n\n return css`\n justify-content: space-between;\n height: 40px;\n padding: 11px 15px 9px 10px;\n font-size: 14px;\n font-weight: 500;\n color: ${theme.colors.greyDropdownText};\n border: 1px solid ${borderColor};\n border-radius: 5px;\n background: ${backgroundColor};\n max-width: 250px;\n\n &:focus {\n color: ${theme.colors.greyDropdownText};\n background: ${backgroundColor};\n &::before {\n border-color: ${borderColorFocused};\n }\n }\n\n svg {\n path {\n stroke: ${theme.colors.greyDarker};\n }\n }\n `;\n};\n\nexport const DropdownToggleBase = styled.button<\n Pick<\n IDropdownToggleProps,\n 'colors' | 'isOpen' | 'disabled' | 'isMultiple' | 'selectedCount'\n >\n>`\n ${({ isMultiple, theme }) =>\n isMultiple\n ? focusOutline(theme, 'greyDropdownFocused', '5px')\n : focusOutline(theme)}\n\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-start;\n gap: 10px;\n\n position: relative;\n\n color: ${({ colors, isOpen }) =>\n isOpen ? colors?.[0] || 'initial' : 'initial'};\n\n width: auto;\n padding: 8px 14px;\n\n font: inherit;\n font-size: 13px;\n text-align: left;\n line-height: 18px;\n\n border: none;\n cursor: pointer;\n outline: inherit;\n\n border-radius: 12px;\n\n background: ${({ isOpen, theme }) =>\n isOpen\n ? `linear-gradient(108.3deg, ${theme.colors.greyDarker} -0.36%, ${theme.colors.greyDark} 100%)`\n : theme.colors.greyLighter};\n\n &:disabled {\n background: ${({ theme }) => theme.colors.grey};\n cursor: default;\n }\n\n &:focus {\n color: ${({ colors, theme }) => colors?.[0] || theme.colors.greyDarker};\n background: ${({ isOpen, theme }) =>\n isOpen\n ? `linear-gradient(108.3deg, ${theme.colors.greyDarker} -0.36%, ${theme.colors.greyDark} 100%)`\n : theme.colors.greyFocused};\n }\n\n svg {\n path {\n stroke: ${({ colors, theme }) => colors?.[0] || theme.colors.greyDarker};\n }\n }\n\n ${({ isMultiple, selectedCount, theme }) =>\n isMultiple &&\n multipleStyles({\n theme,\n selectedCount,\n })}\n`;\n\nconst DropdownToggle = ({\n onClick,\n onFocus,\n isOpen,\n isMultiple,\n selectedCount,\n disabled,\n children,\n ariaLabelledby,\n ariaControls,\n colors,\n className,\n}: IDropdownToggleProps) => (\n <DropdownToggleBase\n className={className}\n colors={colors}\n isOpen={isOpen}\n type=\"button\"\n isMultiple={isMultiple}\n selectedCount={selectedCount}\n onClick={(e) => {\n // Safari doesn't support focus on buttons 🤔\n (e.currentTarget as HTMLButtonElement).focus();\n onClick && onClick(e);\n }}\n onFocus={onFocus}\n disabled={disabled}\n role=\"combobox\"\n aria-labelledby={ariaLabelledby}\n aria-controls={ariaControls}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\">\n {children}\n </DropdownToggleBase>\n);\n\nexport default DropdownToggle;\n","import styled from '@emotion/styled';\n\nimport Icon from '@components/Icon';\nimport { CommonProps } from '@global-types/emotion';\n\nexport const DropdownArrowBase = styled.div<CommonProps>`\n display: flex;\n align-items: center;\n`;\n\nconst DropdownArrow = ({ isUp }: { isUp: boolean }) => (\n <DropdownArrowBase>\n <Icon name={`carrot-${isUp ? 'up' : 'down'}`} size={12} />\n </DropdownArrowBase>\n);\n\nexport default DropdownArrow;\n","import * as React from 'react';\n\nimport { DropdownContextType } from './types';\n\nconst DropdownContext = React.createContext<DropdownContextType>({\n activeItem: null,\n onChange: () => {\n /* noop */\n },\n});\n\nexport function useDropdownContext(): DropdownContextType {\n return React.useContext(DropdownContext);\n}\n\nexport default DropdownContext;\n","import React from 'react';\nimport { Theme, css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { CommonProps } from '@global-types/emotion';\n\ninterface IDropdownItemProps extends CommonProps {\n onClick?: (e: React.MouseEvent<HTMLElement>) => void;\n isActive?: boolean;\n isMultiple?: boolean;\n isDisabled?: boolean;\n noHover?: boolean;\n value?: string | number | boolean;\n label?: string | number;\n children?: React.ReactNode;\n}\n\ninterface MultipleStylesProps {\n theme: Theme;\n isDisabled?: boolean;\n}\n\nconst multipleStyles = ({ theme, isDisabled }: MultipleStylesProps) => {\n return css`\n background: none;\n color: ${isDisabled\n ? theme.colors.greyDisabledCheckbox\n : theme.colors.greyDisabled};\n &:hover {\n background: none;\n }\n `;\n};\n\nconst DropdownOption = styled.li<IDropdownItemProps>`\n overflow: hidden;\n\n height: 34px;\n padding: 8px 16px;\n\n border: none;\n background: ${({ isActive, theme }) =>\n isActive ? theme.colors.greySelectedMenuItem : 'inherit'};\n\n &:hover {\n background: ${({ theme }) => theme.colors.greyLighter};\n }\n\n ${({ isMultiple, isDisabled, theme }) =>\n isMultiple &&\n multipleStyles({\n theme,\n isDisabled,\n })}\n`;\n\nexport default DropdownOption;\n","import React from 'react';\nimport styled from '@emotion/styled';\nimport { css } from '@emotion/react';\n\nimport { useDropdownContext } from '@components/Dropdown/Dropdown.context';\nimport DropdownOption from '@components/DropdownOption';\n\nimport { IDropdownItemsListProps } from './types';\n\nconst DropdownOptionsBase = styled.ul<{ tabindex?: string }>`\n position: absolute;\n width: 100%;\n\n list-style: none;\n\n margin: 4px 0 0;\n padding: 0;\n\n background: #fff;\n border-radius: 8px;\n\n overflow-x: hidden;\n overflow-y: auto;\n\n z-index: 2;\n\n filter: ${({ theme }) =>\n `drop-shadow(-4px 4px 14px ${theme.colors.greyDarker14})`};\n backdrop-filter: ${({ theme }) =>\n `drop-shadow(-4px 4px 14px ${theme.colors.greyDarker14})`};\n`;\n\nconst dropdownOptionButton = css`\n display: flex;\n align-items: center;\n cursor: pointer;\n font: inherit;\n font-size: 0.813rem;\n outline: inherit;\n text-align: left;\n\n width: 100%;\n padding: 0;\n margin: 0;\n\n background: none;\n color: inherit;\n border: none;\n`;\n\nconst noItemsMsg = { id: Number.NaN, value: 'No items' };\n\nconst DropdownOptions = ({\n ariaLabelledby,\n id,\n children,\n}: IDropdownItemsListProps) => {\n const { onChange, activeItem } = useDropdownContext();\n\n const childrenArray = React.Children.toArray(children).filter(Boolean);\n\n const options = (childrenArray as React.ReactElement[]).map((child) => {\n const isActive = activeItem?.value === child.props.value;\n\n return React.cloneElement(\n child,\n {\n ...child.props,\n isActive,\n 'aria-selected': isActive,\n onClick: onChange.bind(null, child.props.value),\n },\n <button type=\"button\" css={dropdownOptionButton}>\n {child.props.children || child.props.label || child.props.value}\n </button>,\n );\n });\n\n if (options.length === 0) {\n options.push(\n <DropdownOption\n key={noItemsMsg.id}\n value={''}\n onClick={onChange.bind(null, '')}\n aria-selected={false}>\n <button css={dropdownOptionButton}>{noItemsMsg.value}</button>\n </DropdownOption>,\n );\n }\n\n return (\n <DropdownOptionsBase\n role=\"listbox\"\n tabindex=\"-1\"\n id={id}\n aria-labelledby={ariaLabelledby}>\n {options}\n </DropdownOptionsBase>\n );\n};\n\nexport default DropdownOptions;\n","import React, { useState, useEffect, useRef, useId, ReactNode } from 'react';\nimport styled from '@emotion/styled';\nimport { useTheme } from '@emotion/react';\nimport { useClickOutside } from '@ssa-ui-kit/hooks';\n\nimport DropdownToggle from '@components/DropdownToggle';\nimport DropdownArrow from '@components/DropdownArrow';\nimport DropdownOptions from '@components/DropdownOptions';\nimport DropdownContext from '@components/Dropdown/Dropdown.context';\nimport { IDropdownOption } from '@components/DropdownOptions/types';\n\nimport { DropdownContextType, IDropdownProps } from './types';\n\n/**\n * The structure of the component:\n *\n * Dropdown\n * DropdownToggle\n * DropdownOptions\n * DropdownOption\n *\n * Aria attributes are set according to\n * https://www.w3.org/WAI/ARIA/apg/example-index/combobox/combobox-select-only.html\n **/\n\nconst DropdownBase = styled.div`\n display: inline-block;\n position: relative;\n`;\n\nconst Dropdown = <T extends IDropdownOption>({\n selectedItem,\n isDisabled,\n isOpen: isInitOpen,\n children,\n onChange: handleChange,\n className,\n}: IDropdownProps<T>) => {\n const theme = useTheme();\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n const placeholder = 'Select something';\n const dropdownId = useId();\n const options: T[] = [];\n\n const [isFocused, setIsFocused] = useState(false);\n const [isOpen, setIsOpen] = useState(isInitOpen || false);\n const [colors, setColors] = useState<Array<string | undefined>>([]);\n const [activeItem, setActiveItem] = useState<T | undefined>(selectedItem);\n\n const onChange: DropdownContextType['onChange'] = (item) => {\n const innerItem = options.filter((option) => option.value === item)[0];\n\n setIsOpen(false);\n\n if (isDisabled || !item) {\n return;\n }\n\n if (innerItem.value === activeItem?.value) {\n return;\n }\n\n setActiveItem(innerItem);\n handleChange && handleChange(innerItem);\n };\n\n useClickOutside(dropdownRef, () => isOpen && setIsOpen(false));\n\n useEffect(() => {\n if (isDisabled) {\n setColors([theme.colors.greyDarker60, theme.colors.grey20]);\n } else if (isOpen) {\n setColors([theme.colors.white, theme.colors.white60]);\n } else if (isFocused) {\n setColors([theme.colors.greyDarker, theme.colors.greyDarker60]);\n }\n }, [isOpen, isDisabled, isFocused]);\n\n useEffect(() => {\n if (isDisabled && isOpen) {\n setIsOpen(false);\n }\n }, [isDisabled]);\n\n const childrenArray = React.Children.toArray(children).filter(Boolean);\n\n const items = (childrenArray as React.ReactElement[]).map((child, index) => {\n options.push(child.props);\n\n return React.cloneElement(child, {\n index,\n onClick: onChange.bind(this),\n ...child.props,\n });\n });\n\n const contextValue: DropdownContextType = React.useMemo(\n () => ({ onChange, activeItem }),\n [onChange, activeItem],\n );\n\n const value = (\n activeItem\n ? activeItem.label ||\n activeItem.children ||\n activeItem.value ||\n activeItem ||\n placeholder\n : placeholder\n ) as ReactNode;\n\n return (\n <DropdownContext.Provider value={contextValue}>\n <DropdownBase ref={dropdownRef} data-testid=\"dropdown\">\n <DropdownToggle\n className={className}\n isOpen={isOpen}\n disabled={isDisabled}\n onClick={setIsOpen.bind(null, !isOpen)}\n onFocus={setIsFocused.bind(null, true)}\n colors={colors}\n ariaLabelledby={`dropdown-label-${dropdownId}`}\n ariaControls={`dropdown-popup-${dropdownId}`}>\n {value}\n <DropdownArrow isUp={isOpen} />\n </DropdownToggle>\n\n {isOpen ? <DropdownOptions>{items}</DropdownOptions> : null}\n </DropdownBase>\n </DropdownContext.Provider>\n );\n};\n\nexport default Dropdown;\n","import styled from '@emotion/styled';\nimport { CommonProps } from '@global-types/emotion';\n\nconst DropdownBase = styled.div<CommonProps>`\n display: inline-block;\n position: relative;\n min-width: 180px;\n`;\n\nexport default DropdownBase;\n","function getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null ? void 0 : (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n // Browsers without `ShadowRoot` support.\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n const webkit = isWebKit();\n const css = getComputedStyle(element);\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else {\n currentNode = getParentNode(currentNode);\n }\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor));\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isWebKit };\n","import { isShadowRoot, isHTMLElement } from '@floating-ui/utils/dom';\n\nfunction activeElement(doc) {\n let activeElement = doc.activeElement;\n while (((_activeElement = activeElement) == null ? void 0 : (_activeElement$shadow = _activeElement.shadowRoot) == null ? void 0 : _activeElement$shadow.activeElement) != null) {\n var _activeElement, _activeElement$shadow;\n activeElement = activeElement.shadowRoot.activeElement;\n }\n return activeElement;\n}\nfunction contains(parent, child) {\n if (!parent || !child) {\n return false;\n }\n const rootNode = child.getRootNode && child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n\n // then fallback to custom implementation with Shadow DOM support\n if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n while (next) {\n if (parent === next) {\n return true;\n }\n // @ts-ignore\n next = next.parentNode || next.host;\n }\n }\n\n // Give up, the result is false\n return false;\n}\n// Avoid Chrome DevTools blue warning.\nfunction getPlatform() {\n const uaData = navigator.userAgentData;\n if (uaData != null && uaData.platform) {\n return uaData.platform;\n }\n return navigator.platform;\n}\nfunction getUserAgent() {\n const uaData = navigator.userAgentData;\n if (uaData && Array.isArray(uaData.brands)) {\n return uaData.brands.map(_ref => {\n let {\n brand,\n version\n } = _ref;\n return brand + \"/\" + version;\n }).join(' ');\n }\n return navigator.userAgent;\n}\n\n// License: https://github.com/adobe/react-spectrum/blob/b35d5c02fe900badccd0cf1a8f23bb593419f238/packages/@react-aria/utils/src/isVirtualEvent.ts\nfunction isVirtualClick(event) {\n if (event.mozInputSource === 0 && event.isTrusted) {\n return true;\n }\n const androidRe = /Android/i;\n if ((androidRe.test(getPlatform()) || androidRe.test(getUserAgent())) && event.pointerType) {\n return event.type === 'click' && event.buttons === 1;\n }\n return event.detail === 0 && !event.pointerType;\n}\nfunction isVirtualPointerEvent(event) {\n return event.width === 0 && event.height === 0 || event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType !== 'mouse' ||\n // iOS VoiceOver returns 0.333• for width/height.\n event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0;\n}\nfunction isSafari() {\n // Chrome DevTools does not complain about navigator.vendor\n return /apple/i.test(navigator.vendor);\n}\nfunction isMac() {\n return getPlatform().toLowerCase().startsWith('mac') && !navigator.maxTouchPoints;\n}\nfunction isMouseLikePointerType(pointerType, strict) {\n // On some Linux machines with Chromium, mouse inputs return a `pointerType`\n // of \"pen\": https://github.com/floating-ui/floating-ui/issues/2015\n const values = ['mouse', 'pen'];\n if (!strict) {\n values.push('', undefined);\n }\n return values.includes(pointerType);\n}\nfunction isReactEvent(event) {\n return 'nativeEvent' in event;\n}\nfunction isRootElement(element) {\n return element.matches('html,body');\n}\nfunction getDocument(node) {\n return (node == null ? void 0 : node.ownerDocument) || document;\n}\nfunction isEventTargetWithin(event, node) {\n if (node == null) {\n return false;\n }\n if ('composedPath' in event) {\n return event.composedPath().includes(node);\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support composedPath, but browsers without shadow dom don't\n const e = event;\n return e.target != null && node.contains(e.target);\n}\nfunction getTarget(event) {\n if ('composedPath' in event) {\n return event.composedPath()[0];\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support\n // `composedPath()`, but browsers without shadow DOM don't.\n return event.target;\n}\nconst TYPEABLE_SELECTOR = \"input:not([type='hidden']):not([disabled]),\" + \"[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";\nfunction isTypeableElement(element) {\n return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\nfunction stopEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n}\n\nexport { TYPEABLE_SELECTOR, activeElement, contains, getDocument, getPlatform, getTarget, getUserAgent, isEventTargetWithin, isMac, isMouseLikePointerType, isReactEvent, isRootElement, isSafari, isTypeableElement, isVirtualClick, isVirtualPointerEvent, stopEvent };\n","const sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n return {\n ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain positioning strategy.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n continue;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n ...rects.floating,\n x,\n y\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. This stops `shift()` from taking action, but can\n // be worked around by calling it again after the `arrow()` if desired.\n const shouldAddOffset = getAlignment(placement) != null && center != offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? min$1 - center : max - center : 0;\n return {\n [axis]: coords[axis] - alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset + alignmentOffset\n }\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const side = getSide(placement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== 'none') {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$map$so;\n const placement = (_overflowsData$map$so = overflowsData.map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n const {\n x,\n y\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const overflowAvailableHeight = height - overflow[heightSide];\n const overflowAvailableWidth = width - overflow[widthSide];\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (isYAxis) {\n const maximumClippingWidth = width - overflow.left - overflow.right;\n availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n } else {\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","import { rectToClientRect, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { arrow, autoPlacement, detectOverflow, flip, hide, inline, limitShift, offset, shift, size } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getDocumentElement, getNodeName, isOverflowElement, getNodeScroll, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentIFrame = win.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== win) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentIFrame = getWindow(currentIFrame).frameElement;\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n if (offsetParent === documentElement) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\nfunction getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n return getCssDimensions(element);\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const window = getWindow(element);\n if (!isHTMLElement(element)) {\n return window;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n return offsetParent || getContainingBlock(element) || window;\n}\n\nconst getElementRects = async function (_ref) {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n return {\n reference: getRectRelativeToOffsetParent(reference, await getOffsetParentFn(floating), strategy),\n floating: {\n x: 0,\n y: 0,\n ...(await getDimensionsFn(floating))\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n clearTimeout(timeoutId);\n io && io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 100);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n resizeObserver && resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo && cleanupIo();\n resizeObserver && resizeObserver.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain CSS positioning\n * strategy.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { autoUpdate, computePosition, platform };\n","import { arrow as arrow$1, computePosition } from '@floating-ui/dom';\nexport { autoPlacement, autoUpdate, computePosition, detectOverflow, flip, getOverflowAncestors, hide, inline, limitShift, offset, platform, shift, size } from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect, useEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => {\n function isRef(value) {\n return {}.hasOwnProperty.call(value, 'current');\n }\n return {\n name: 'arrow',\n options,\n fn(state) {\n const {\n element,\n padding\n } = typeof options === 'function' ? options(state) : options;\n if (element && isRef(element)) {\n if (element.current != null) {\n return arrow$1({\n element: element.current,\n padding\n }).fn(state);\n }\n return {};\n } else if (element) {\n return arrow$1({\n element,\n padding\n }).fn(state);\n }\n return {};\n }\n };\n};\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (typeof a === 'function' && a.toString() === b.toString()) {\n return true;\n }\n let length, i, keys;\n if (a && b && typeof a == 'object') {\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) {\n return false;\n }\n for (i = length; i-- !== 0;) {\n if (!{}.hasOwnProperty.call(b, keys[i])) {\n return false;\n }\n }\n for (i = length; i-- !== 0;) {\n const key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n continue;\n }\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n return a !== a && b !== b;\n}\n\nfunction getDPR(element) {\n if (typeof window === 'undefined') {\n return 1;\n }\n const win = element.ownerDocument.defaultView || window;\n return win.devicePixelRatio || 1;\n}\n\nfunction roundByDPR(element, value) {\n const dpr = getDPR(element);\n return Math.round(value * dpr) / dpr;\n}\n\nfunction useLatestRef(value) {\n const ref = React.useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\n/**\n * Provides data to position a floating element.\n * @see https://floating-ui.com/docs/react\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform,\n elements: {\n reference: externalReference,\n floating: externalFloating\n } = {},\n transform = true,\n whileElementsMounted,\n open\n } = options;\n const [data, setData] = React.useState({\n x: 0,\n y: 0,\n strategy,\n placement,\n middlewareData: {},\n isPositioned: false\n });\n const [latestMiddleware, setLatestMiddleware] = React.useState(middleware);\n if (!deepEqual(latestMiddleware, middleware)) {\n setLatestMiddleware(middleware);\n }\n const [_reference, _setReference] = React.useState(null);\n const [_floating, _setFloating] = React.useState(null);\n const setReference = React.useCallback(node => {\n if (node != referenceRef.current) {\n referenceRef.current = node;\n _setReference(node);\n }\n }, [_setReference]);\n const setFloating = React.useCallback(node => {\n if (node !== floatingRef.current) {\n floatingRef.current = node;\n _setFloating(node);\n }\n }, [_setFloating]);\n const referenceEl = externalReference || _reference;\n const floatingEl = externalFloating || _floating;\n const referenceRef = React.useRef(null);\n const floatingRef = React.useRef(null);\n const dataRef = React.useRef(data);\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n const platformRef = useLatestRef(platform);\n const update = React.useCallback(() => {\n if (!referenceRef.current || !floatingRef.current) {\n return;\n }\n const config = {\n placement,\n strategy,\n middleware: latestMiddleware\n };\n if (platformRef.current) {\n config.platform = platformRef.current;\n }\n computePosition(referenceRef.current, floatingRef.current, config).then(data => {\n const fullData = {\n ...data,\n isPositioned: true\n };\n if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n dataRef.current = fullData;\n ReactDOM.flushSync(() => {\n setData(fullData);\n });\n }\n });\n }, [latestMiddleware, placement, strategy, platformRef]);\n index(() => {\n if (open === false && dataRef.current.isPositioned) {\n dataRef.current.isPositioned = false;\n setData(data => ({\n ...data,\n isPositioned: false\n }));\n }\n }, [open]);\n const isMountedRef = React.useRef(false);\n index(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n index(() => {\n if (referenceEl) referenceRef.current = referenceEl;\n if (floatingEl) floatingRef.current = floatingEl;\n if (referenceEl && floatingEl) {\n if (whileElementsMountedRef.current) {\n return whileElementsMountedRef.current(referenceEl, floatingEl, update);\n } else {\n update();\n }\n }\n }, [referenceEl, floatingEl, update, whileElementsMountedRef]);\n const refs = React.useMemo(() => ({\n reference: referenceRef,\n floating: floatingRef,\n setReference,\n setFloating\n }), [setReference, setFloating]);\n const elements = React.useMemo(() => ({\n reference: referenceEl,\n floating: floatingEl\n }), [referenceEl, floatingEl]);\n const floatingStyles = React.useMemo(() => {\n const initialStyles = {\n position: strategy,\n left: 0,\n top: 0\n };\n if (!elements.floating) {\n return initialStyles;\n }\n const x = roundByDPR(elements.floating, data.x);\n const y = roundByDPR(elements.floating, data.y);\n if (transform) {\n return {\n ...initialStyles,\n transform: \"translate(\" + x + \"px, \" + y + \"px)\",\n ...(getDPR(elements.floating) >= 1.5 && {\n willChange: 'transform'\n })\n };\n }\n return {\n position: strategy,\n left: x,\n top: y\n };\n }, [strategy, transform, elements.floating, data.x, data.y]);\n return React.useMemo(() => ({\n ...data,\n update,\n refs,\n elements,\n floatingStyles\n }), [data, update, refs, elements, floatingStyles]);\n}\n\nexport { arrow, useFloating };\n","/*!\n* tabbable 6.1.2\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\n// NOTE: separate `:not()` selectors has broader browser support than the newer\n// `:not([inert], [inert] *)` (Feb 2023)\n// CAREFUL: JSDom does not support `:not([inert] *)` as a selector; using it causes\n// the entire query to fail, resulting in no nodes found, which will break a lot\n// of things... so we have to rely on JS to identify nodes inside an inert container\nvar candidateSelectors = ['input:not([inert])', 'select:not([inert])', 'textarea:not([inert])', 'a[href]:not([inert])', 'button:not([inert])', '[tabindex]:not(slot):not([inert])', 'audio[controls]:not([inert])', 'video[controls]:not([inert])', '[contenteditable]:not([contenteditable=\"false\"]):not([inert])', 'details>summary:first-of-type:not([inert])', 'details:not([inert])'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar NoElement = typeof Element === 'undefined';\nvar matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {\n var _element$getRootNode;\n return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element);\n} : function (element) {\n return element === null || element === void 0 ? void 0 : element.ownerDocument;\n};\n\n/**\n * Determines if a node is inert or in an inert ancestor.\n * @param {Element} [node]\n * @param {boolean} [lookUp] If true and `node` is not inert, looks up at ancestors to\n * see if any of them are inert. If false, only `node` itself is considered.\n * @returns {boolean} True if inert itself or by way of being in an inert ancestor.\n * False if `node` is falsy.\n */\nvar isInert = function isInert(node, lookUp) {\n var _node$getAttribute;\n if (lookUp === void 0) {\n lookUp = true;\n }\n // CAREFUL: JSDom does not support inert at all, so we can't use the `HTMLElement.inert`\n // JS API property; we have to check the attribute, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's an active element\n var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'inert');\n var inert = inertAtt === '' || inertAtt === 'true';\n\n // NOTE: this could also be handled with `node.matches('[inert], :is([inert] *)')`\n // if it weren't for `matches()` not being a function on shadow roots; the following\n // code works for any kind of node\n // CAREFUL: JSDom does not appear to support certain selectors like `:not([inert] *)`\n // so it likely would not support `:is([inert] *)` either...\n var result = inert || lookUp && node && isInert(node.parentNode); // recursive\n\n return result;\n};\n\n/**\n * Determines if a node's content is editable.\n * @param {Element} [node]\n * @returns True if it's content-editable; false if it's not or `node` is falsy.\n */\nvar isContentEditable = function isContentEditable(node) {\n var _node$getAttribute2;\n // CAREFUL: JSDom does not support the `HTMLElement.isContentEditable` API so we have\n // to use the attribute directly to check for this, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's a non-editable element\n var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, 'contenteditable');\n return attValue === '' || attValue === 'true';\n};\n\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n // even if `includeContainer=false`, we still have to check it for inertness because\n // if it's inert, all its children are inert\n if (isInert(el)) {\n return [];\n }\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n};\n\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidateScope\n * @property {Element} scopeParent contains inner candidates\n * @property {Element[]} candidates list of candidates found in the scope parent\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidateScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.<Element|CandidateScope>}\n */\nvar getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n if (isInert(element, false)) {\n // no need to look up since we're drilling down\n // anything inside this container will also be inert\n continue;\n }\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = getCandidatesIteratively(content, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates\n });\n }\n } else {\n // check candidate element\n var validCandidate = matches.call(element, candidateSelector);\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n }\n\n // iterate over shadow content if possible\n var shadowRoot = element.shadowRoot ||\n // check for an undisclosed shadow\n typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);\n\n // no inert look up because we're already drilling down and checking for inertness\n // on the way down, so all containers to this root node should have already been\n // vetted as non-inert\n var validShadowRoot = !isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element));\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n return candidates;\n};\nvar getTabindex = function getTabindex(node, isScope) {\n if (node.tabIndex < 0) {\n // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n // Also browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n //\n // isScope is positive for custom element with shadow root or slot that by default\n // have tabIndex -1, but need to be sorted by document order in order for their\n // content to be inserted in the correct position\n if ((isScope || /^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && isNaN(parseInt(node.getAttribute('tabindex'), 10))) {\n return 0;\n }\n }\n return node.tabIndex;\n};\nvar sortOrderedTabbables = function sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n};\nvar isInput = function isInput(node) {\n return node.tagName === 'INPUT';\n};\nvar isHiddenInput = function isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n};\nvar isDetailsWithSummary = function isDetailsWithSummary(node) {\n var r = node.tagName === 'DETAILS' && Array.prototype.slice.apply(node.children).some(function (child) {\n return child.tagName === 'SUMMARY';\n });\n return r;\n};\nvar getCheckedRadio = function getCheckedRadio(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\nvar isTabbableRadio = function isTabbableRadio(node) {\n if (!node.name) {\n return true;\n }\n var radioScope = node.form || getRootNode(node);\n var queryRadios = function queryRadios(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n var radioSet;\n if (typeof window !== 'undefined' && typeof window.CSS !== 'undefined' && typeof window.CSS.escape === 'function') {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s', err.message);\n return false;\n }\n }\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\nvar isRadio = function isRadio(node) {\n return isInput(node) && node.type === 'radio';\n};\nvar isNonTabbableRadio = function isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\n\n// determines if a node is ultimately attached to the window's document\nvar isNodeAttached = function isNodeAttached(node) {\n var _nodeRoot;\n // The root node is the shadow root if the node is in a shadow DOM; some document otherwise\n // (but NOT _the_ document; see second 'If' comment below for more).\n // If rootNode is shadow root, it'll have a host, which is the element to which the shadow\n // is attached, and the one we need to check if it's in the document or not (because the\n // shadow, and all nodes it contains, is never considered in the document since shadows\n // behave like self-contained DOMs; but if the shadow's HOST, which is part of the document,\n // is hidden, or is not in the document itself but is detached, it will affect the shadow's\n // visibility, including all the nodes it contains). The host could be any normal node,\n // or a custom element (i.e. web component). Either way, that's the one that is considered\n // part of the document, not the shadow root, nor any of its children (i.e. the node being\n // tested).\n // To further complicate things, we have to look all the way up until we find a shadow HOST\n // that is attached (or find none) because the node might be in nested shadows...\n // If rootNode is not a shadow root, it won't have a host, and so rootNode should be the\n // document (per the docs) and while it's a Document-type object, that document does not\n // appear to be the same as the node's `ownerDocument` for some reason, so it's safer\n // to ignore the rootNode at this point, and use `node.ownerDocument`. Otherwise,\n // using `rootNode.contains(node)` will _always_ be true we'll get false-positives when\n // node is actually detached.\n // NOTE: If `nodeRootHost` or `node` happens to be the `document` itself (which is possible\n // if a tabbable/focusable node was quickly added to the DOM, focused, and then removed\n // from the DOM as in https://github.com/focus-trap/focus-trap-react/issues/905), then\n // `ownerDocument` will be `null`, hence the optional chaining on it.\n var nodeRoot = node && getRootNode(node);\n var nodeRootHost = (_nodeRoot = nodeRoot) === null || _nodeRoot === void 0 ? void 0 : _nodeRoot.host;\n\n // in some cases, a detached node will return itself as the root instead of a document or\n // shadow root object, in which case, we shouldn't try to look further up the host chain\n var attached = false;\n if (nodeRoot && nodeRoot !== node) {\n var _nodeRootHost, _nodeRootHost$ownerDo, _node$ownerDocument;\n attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && (_nodeRootHost$ownerDo = _nodeRootHost.ownerDocument) !== null && _nodeRootHost$ownerDo !== void 0 && _nodeRootHost$ownerDo.contains(nodeRootHost) || node !== null && node !== void 0 && (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 && _node$ownerDocument.contains(node));\n while (!attached && nodeRootHost) {\n var _nodeRoot2, _nodeRootHost2, _nodeRootHost2$ownerD;\n // since it's not attached and we have a root host, the node MUST be in a nested shadow DOM,\n // which means we need to get the host's host and check if that parent host is contained\n // in (i.e. attached to) the document\n nodeRoot = getRootNode(nodeRootHost);\n nodeRootHost = (_nodeRoot2 = nodeRoot) === null || _nodeRoot2 === void 0 ? void 0 : _nodeRoot2.host;\n attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && (_nodeRootHost2$ownerD = _nodeRootHost2.ownerDocument) !== null && _nodeRootHost2$ownerD !== void 0 && _nodeRootHost2$ownerD.contains(nodeRootHost));\n }\n }\n return attached;\n};\nvar isZeroArea = function isZeroArea(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n width = _node$getBoundingClie.width,\n height = _node$getBoundingClie.height;\n return width === 0 && height === 0;\n};\nvar isHidden = function isHidden(node, _ref) {\n var displayCheck = _ref.displayCheck,\n getShadowRoot = _ref.getShadowRoot;\n // NOTE: visibility will be `undefined` if node is detached from the document\n // (see notes about this further down), which means we will consider it visible\n // (this is legacy behavior from a very long way back)\n // NOTE: we check this regardless of `displayCheck=\"none\"` because this is a\n // _visibility_ check, not a _display_ check\n if (getComputedStyle(node).visibility === 'hidden') {\n return true;\n }\n var isDirectSummary = matches.call(node, 'details>summary:first-of-type');\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {\n return true;\n }\n if (!displayCheck || displayCheck === 'full' || displayCheck === 'legacy-full') {\n if (typeof getShadowRoot === 'function') {\n // figure out if we should consider the node to be in an undisclosed shadow and use the\n // 'non-zero-area' fallback\n var originalNode = node;\n while (node) {\n var parentElement = node.parentElement;\n var rootNode = getRootNode(node);\n if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true // check if there's an undisclosed shadow\n ) {\n // node has an undisclosed shadow which means we can only treat it as a black box, so we\n // fall back to a non-zero-area test\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n // iterate up slot\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n // cross shadow boundary\n node = rootNode.host;\n } else {\n // iterate up normal dom\n node = parentElement;\n }\n }\n node = originalNode;\n }\n // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support\n // (i.e. it does not also presume that all nodes might have undisclosed shadows); or\n // it might be a falsy value, which means shadow DOM support is disabled\n\n // Since we didn't find it sitting in an undisclosed shadow (or shadows are disabled)\n // now we can just test to see if it would normally be visible or not, provided it's\n // attached to the main document.\n // NOTE: We must consider case where node is inside a shadow DOM and given directly to\n // `isTabbable()` or `isFocusable()` -- regardless of `getShadowRoot` option setting.\n\n if (isNodeAttached(node)) {\n // this works wherever the node is: if there's at least one client rect, it's\n // somehow displayed; it also covers the CSS 'display: contents' case where the\n // node itself is hidden in place of its contents; and there's no need to search\n // up the hierarchy either\n return !node.getClientRects().length;\n }\n\n // Else, the node isn't attached to the document, which means the `getClientRects()`\n // API will __always__ return zero rects (this can happen, for example, if React\n // is used to render nodes onto a detached tree, as confirmed in this thread:\n // https://github.com/facebook/react/issues/9117#issuecomment-284228870)\n //\n // It also means that even window.getComputedStyle(node).display will return `undefined`\n // because styles are only computed for nodes that are in the document.\n //\n // NOTE: THIS HAS BEEN THE CASE FOR YEARS. It is not new, nor is it caused by tabbable\n // somehow. Though it was never stated officially, anyone who has ever used tabbable\n // APIs on nodes in detached containers has actually implicitly used tabbable in what\n // was later (as of v5.2.0 on Apr 9, 2021) called `displayCheck=\"none\"` mode -- essentially\n // considering __everything__ to be visible because of the innability to determine styles.\n //\n // v6.0.0: As of this major release, the default 'full' option __no longer treats detached\n // nodes as visible with the 'none' fallback.__\n if (displayCheck !== 'legacy-full') {\n return true; // hidden\n }\n // else, fallback to 'none' mode and consider the node visible\n } else if (displayCheck === 'non-zero-area') {\n // NOTE: Even though this tests that the node's client rect is non-zero to determine\n // whether it's displayed, and that a detached node will __always__ have a zero-area\n // client rect, we don't special-case for whether the node is attached or not. In\n // this mode, we do want to consider nodes that have a zero area to be hidden at all\n // times, and that includes attached or not.\n return isZeroArea(node);\n }\n\n // visible, as far as we can tell, or per current `displayCheck=none` mode, we assume\n // it's visible\n return false;\n};\n\n// form fields (nested) inside a disabled fieldset are not focusable/tabbable\n// unless they are in the _first_ <legend> element of the top-most disabled\n// fieldset\nvar isDisabledFromFieldset = function isDisabledFromFieldset(node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n var parentNode = node.parentElement;\n // check if `node` is contained in a disabled <fieldset>\n while (parentNode) {\n if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {\n // look for the first <legend> among the children of the disabled <fieldset>\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i);\n // when the first <legend> (in document order) is found\n if (child.tagName === 'LEGEND') {\n // if its parent <fieldset> is not nested in another disabled <fieldset>,\n // return whether `node` is a descendant of its first <legend>\n return matches.call(parentNode, 'fieldset[disabled] *') ? true : !child.contains(node);\n }\n }\n // the disabled <fieldset> containing `node` has no <legend>\n return true;\n }\n parentNode = parentNode.parentElement;\n }\n }\n\n // else, node's tabbable/focusable state should not be affected by a fieldset's\n // enabled/disabled state\n return false;\n};\nvar isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {\n if (node.disabled ||\n // we must do an inert look up to filter out any elements inside an inert ancestor\n // because we're limited in the type of selectors we can use in JSDom (see related\n // note related to `candidateSelectors`)\n isInert(node) || isHiddenInput(node) || isHidden(node, options) ||\n // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n return true;\n};\nvar isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {\n if (isNonTabbableRadio(node) || getTabindex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n return true;\n};\nvar isValidShadowRootTabbable = function isValidShadowRootTabbable(shadowHostNode) {\n var tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n }\n // If a custom element has an explicit negative tabindex,\n // browsers will not allow tab targeting said element's children.\n return false;\n};\n\n/**\n * @param {Array.<Element|CandidateScope>} candidates\n * @returns Element[]\n */\nvar sortByOrder = function sortByOrder(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function (item, i) {\n var isScope = !!item.scopeParent;\n var element = isScope ? item.scopeParent : item;\n var candidateTabindex = getTabindex(element, isScope);\n var elements = isScope ? sortByOrder(item.candidates) : element;\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item: item,\n isScope: isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function (acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n};\nvar tabbable = function tabbable(el, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isValidShadowRootTabbable\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n return sortByOrder(candidates);\n};\nvar focusable = function focusable(el, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n return candidates;\n};\nvar isTabbable = function isTabbable(node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorTabbable(options, node);\n};\nvar focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe').join(',');\nvar isFocusable = function isFocusable(node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\nexport { focusable, isFocusable, isTabbable, tabbable };\n//# sourceMappingURL=index.esm.js.map\n","import * as React from 'react';\nimport { useLayoutEffect, useEffect, useRef } from 'react';\nimport { floor } from '@floating-ui/utils';\nimport { stopEvent, getDocument, isMouseLikePointerType, contains, activeElement, isSafari, isTypeableElement, getTarget, getPlatform, isReactEvent, isRootElement, isEventTargetWithin, isVirtualClick, isVirtualPointerEvent, isMac, getUserAgent } from '@floating-ui/utils/react';\nimport { platform, getOverflowAncestors, useFloating as useFloating$1, offset, detectOverflow } from '@floating-ui/react-dom';\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, getOverflowAncestors, hide, inline, limitShift, offset, platform, shift, size } from '@floating-ui/react-dom';\nimport { isElement, isHTMLElement, getWindow, isLastTraversableNode, getParentNode, getComputedStyle } from '@floating-ui/utils/dom';\nimport { tabbable } from 'tabbable';\nimport { createPortal, flushSync } from 'react-dom';\n\n/**\n * Merges an array of refs into a single memoized callback ref or `null`.\n * @see https://floating-ui.com/docs/useMergeRefs\n */\nfunction useMergeRefs(refs) {\n return React.useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null;\n }\n return value => {\n refs.forEach(ref => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref != null) {\n ref.current = value;\n }\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}\n\nconst ARROW_UP = 'ArrowUp';\nconst ARROW_DOWN = 'ArrowDown';\nconst ARROW_LEFT = 'ArrowLeft';\nconst ARROW_RIGHT = 'ArrowRight';\nfunction isDifferentRow(index, cols, prevRow) {\n return Math.floor(index / cols) !== prevRow;\n}\nfunction isIndexOutOfBounds(listRef, index) {\n return index < 0 || index >= listRef.current.length;\n}\nfunction getMinIndex(listRef, disabledIndices) {\n return findNonDisabledIndex(listRef, {\n disabledIndices\n });\n}\nfunction getMaxIndex(listRef, disabledIndices) {\n return findNonDisabledIndex(listRef, {\n decrement: true,\n startingIndex: listRef.current.length,\n disabledIndices\n });\n}\nfunction findNonDisabledIndex(listRef, _temp) {\n let {\n startingIndex = -1,\n decrement = false,\n disabledIndices,\n amount = 1\n } = _temp === void 0 ? {} : _temp;\n const list = listRef.current;\n let index = startingIndex;\n do {\n var _list$index, _list$index2;\n index = index + (decrement ? -amount : amount);\n } while (index >= 0 && index <= list.length - 1 && (disabledIndices ? disabledIndices.includes(index) : list[index] == null || ((_list$index = list[index]) == null ? void 0 : _list$index.hasAttribute('disabled')) || ((_list$index2 = list[index]) == null ? void 0 : _list$index2.getAttribute('aria-disabled')) === 'true'));\n return index;\n}\nfunction getGridNavigatedIndex(elementsRef, _ref) {\n let {\n event,\n orientation,\n loop,\n cols,\n disabledIndices,\n minIndex,\n maxIndex,\n prevIndex,\n stopEvent: stop = false\n } = _ref;\n let nextIndex = prevIndex;\n if (event.key === ARROW_UP) {\n stop && stopEvent(event);\n if (prevIndex === -1) {\n nextIndex = maxIndex;\n } else {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: nextIndex,\n amount: cols,\n decrement: true,\n disabledIndices\n });\n if (loop && (prevIndex - cols < minIndex || nextIndex < 0)) {\n const col = prevIndex % cols;\n const maxCol = maxIndex % cols;\n const offset = maxIndex - (maxCol - col);\n if (maxCol === col) {\n nextIndex = maxIndex;\n } else {\n nextIndex = maxCol > col ? offset : offset - cols;\n }\n }\n }\n if (isIndexOutOfBounds(elementsRef, nextIndex)) {\n nextIndex = prevIndex;\n }\n }\n if (event.key === ARROW_DOWN) {\n stop && stopEvent(event);\n if (prevIndex === -1) {\n nextIndex = minIndex;\n } else {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex,\n amount: cols,\n disabledIndices\n });\n if (loop && prevIndex + cols > maxIndex) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex % cols - cols,\n amount: cols,\n disabledIndices\n });\n }\n }\n if (isIndexOutOfBounds(elementsRef, nextIndex)) {\n nextIndex = prevIndex;\n }\n }\n\n // Remains on the same row/column.\n if (orientation === 'both') {\n const prevRow = floor(prevIndex / cols);\n if (event.key === ARROW_RIGHT) {\n stop && stopEvent(event);\n if (prevIndex % cols !== cols - 1) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex,\n disabledIndices\n });\n if (loop && isDifferentRow(nextIndex, cols, prevRow)) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n } else if (loop) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n if (isDifferentRow(nextIndex, cols, prevRow)) {\n nextIndex = prevIndex;\n }\n }\n if (event.key === ARROW_LEFT) {\n stop && stopEvent(event);\n if (prevIndex % cols !== 0) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex,\n disabledIndices,\n decrement: true\n });\n if (loop && isDifferentRow(nextIndex, cols, prevRow)) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n } else if (loop) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n if (isDifferentRow(nextIndex, cols, prevRow)) {\n nextIndex = prevIndex;\n }\n }\n const lastRow = floor(maxIndex / cols) === prevRow;\n if (isIndexOutOfBounds(elementsRef, nextIndex)) {\n if (loop && lastRow) {\n nextIndex = event.key === ARROW_LEFT ? maxIndex : findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n } else {\n nextIndex = prevIndex;\n }\n }\n }\n return nextIndex;\n}\n\nlet rafId = 0;\nfunction enqueueFocus(el, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n preventScroll = false,\n cancelPrevious = true,\n sync = false\n } = options;\n cancelPrevious && cancelAnimationFrame(rafId);\n const exec = () => el == null ? void 0 : el.focus({\n preventScroll\n });\n if (sync) {\n exec();\n } else {\n rafId = requestAnimationFrame(exec);\n }\n}\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\nfunction sortByDocumentPosition(a, b) {\n const position = a.compareDocumentPosition(b);\n if (position & Node.DOCUMENT_POSITION_FOLLOWING || position & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return -1;\n }\n if (position & Node.DOCUMENT_POSITION_PRECEDING || position & Node.DOCUMENT_POSITION_CONTAINS) {\n return 1;\n }\n return 0;\n}\nfunction areMapsEqual(map1, map2) {\n if (map1.size !== map2.size) {\n return false;\n }\n for (const [key, value] of map1.entries()) {\n if (value !== map2.get(key)) {\n return false;\n }\n }\n return true;\n}\nconst FloatingListContext = /*#__PURE__*/React.createContext({\n register: () => {},\n unregister: () => {},\n map: /*#__PURE__*/new Map(),\n elementsRef: {\n current: []\n }\n});\n/**\n * Provides context for a list of items within the floating element.\n * @see https://floating-ui.com/docs/FloatingList\n */\nfunction FloatingList(_ref) {\n let {\n children,\n elementsRef,\n labelsRef\n } = _ref;\n const [map, setMap] = React.useState(() => new Map());\n const register = React.useCallback(node => {\n setMap(prevMap => new Map(prevMap).set(node, null));\n }, []);\n const unregister = React.useCallback(node => {\n setMap(prevMap => {\n const map = new Map(prevMap);\n map.delete(node);\n return map;\n });\n }, []);\n index(() => {\n const newMap = new Map(map);\n const nodes = Array.from(newMap.keys()).sort(sortByDocumentPosition);\n nodes.forEach((node, index) => {\n newMap.set(node, index);\n });\n if (!areMapsEqual(map, newMap)) {\n setMap(newMap);\n }\n }, [map]);\n return /*#__PURE__*/React.createElement(FloatingListContext.Provider, {\n value: React.useMemo(() => ({\n register,\n unregister,\n map,\n elementsRef,\n labelsRef\n }), [register, unregister, map, elementsRef, labelsRef])\n }, children);\n}\nfunction useListItem(_temp) {\n let {\n label\n } = _temp === void 0 ? {} : _temp;\n const [index$1, setIndex] = React.useState(null);\n const componentRef = React.useRef(null);\n const {\n register,\n unregister,\n map,\n elementsRef,\n labelsRef\n } = React.useContext(FloatingListContext);\n const ref = React.useCallback(node => {\n componentRef.current = node;\n if (index$1 !== null) {\n elementsRef.current[index$1] = node;\n if (labelsRef) {\n var _node$textContent;\n const isLabelDefined = label !== undefined;\n labelsRef.current[index$1] = isLabelDefined ? label : (_node$textContent = node == null ? void 0 : node.textContent) != null ? _node$textContent : null;\n }\n }\n }, [index$1, elementsRef, labelsRef, label]);\n index(() => {\n const node = componentRef.current;\n if (node) {\n register(node);\n return () => {\n unregister(node);\n };\n }\n }, [register, unregister]);\n index(() => {\n const index = componentRef.current ? map.get(componentRef.current) : null;\n if (index != null) {\n setIndex(index);\n }\n }, [map]);\n return React.useMemo(() => ({\n ref,\n index: index$1 == null ? -1 : index$1\n }), [index$1, ref]);\n}\n\nfunction renderJsx(render, computedProps) {\n if (typeof render === 'function') {\n return render(computedProps);\n } else if (render) {\n return /*#__PURE__*/React.cloneElement(render, computedProps);\n }\n return /*#__PURE__*/React.createElement(\"div\", computedProps);\n}\nconst CompositeContext = /*#__PURE__*/React.createContext({\n activeIndex: 0,\n setActiveIndex: () => {}\n});\nconst horizontalKeys = [ARROW_LEFT, ARROW_RIGHT];\nconst verticalKeys = [ARROW_UP, ARROW_DOWN];\nconst allKeys = [...horizontalKeys, ...verticalKeys];\nconst Composite = /*#__PURE__*/React.forwardRef(function Composite(_ref, forwardedRef) {\n let {\n render,\n orientation = 'both',\n loop = true,\n cols = 1,\n disabledIndices,\n ...props\n } = _ref;\n const [activeIndex, setActiveIndex] = React.useState(0);\n const elementsRef = React.useRef([]);\n const renderElementProps = render && typeof render !== 'function' ? render.props : {};\n const contextValue = React.useMemo(() => ({\n activeIndex,\n setActiveIndex\n }), [activeIndex]);\n const isGrid = cols > 1;\n function handleKeyDown(event) {\n if (!allKeys.includes(event.key)) return;\n const minIndex = getMinIndex(elementsRef, disabledIndices);\n const maxIndex = getMaxIndex(elementsRef, disabledIndices);\n const prevIndex = activeIndex;\n let nextIndex = activeIndex;\n if (isGrid) {\n nextIndex = getGridNavigatedIndex(elementsRef, {\n event,\n orientation,\n loop,\n cols,\n disabledIndices,\n minIndex,\n maxIndex,\n prevIndex\n });\n }\n const toEndKeys = {\n horizontal: [ARROW_RIGHT],\n vertical: [ARROW_DOWN],\n both: [ARROW_RIGHT, ARROW_DOWN]\n }[orientation];\n const toStartKeys = {\n horizontal: [ARROW_LEFT],\n vertical: [ARROW_UP],\n both: [ARROW_LEFT, ARROW_UP]\n }[orientation];\n const preventedKeys = isGrid ? allKeys : {\n horizontal: horizontalKeys,\n vertical: verticalKeys,\n both: allKeys\n }[orientation];\n if (nextIndex === activeIndex && [...toEndKeys, ...toStartKeys].includes(event.key)) {\n if (loop && nextIndex === maxIndex && toEndKeys.includes(event.key)) {\n nextIndex = minIndex;\n } else if (loop && nextIndex === minIndex && toStartKeys.includes(event.key)) {\n nextIndex = maxIndex;\n } else {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: nextIndex,\n decrement: toStartKeys.includes(event.key),\n disabledIndices\n });\n }\n }\n if (nextIndex !== activeIndex && !isIndexOutOfBounds(elementsRef, nextIndex)) {\n event.stopPropagation();\n if (preventedKeys.includes(event.key)) {\n event.preventDefault();\n }\n setActiveIndex(nextIndex);\n\n // Wait for FocusManager `returnFocus` to execute.\n queueMicrotask(() => {\n enqueueFocus(elementsRef.current[nextIndex]);\n });\n }\n }\n const computedProps = {\n ...props,\n ...renderElementProps,\n ref: forwardedRef,\n 'aria-orientation': orientation === 'both' ? undefined : orientation,\n onKeyDown(e) {\n props.onKeyDown == null ? void 0 : props.onKeyDown(e);\n renderElementProps.onKeyDown == null ? void 0 : renderElementProps.onKeyDown(e);\n handleKeyDown(e);\n }\n };\n return /*#__PURE__*/React.createElement(CompositeContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(FloatingList, {\n elementsRef: elementsRef\n }, renderJsx(render, computedProps)));\n});\nconst CompositeItem = /*#__PURE__*/React.forwardRef(function CompositeItem(_ref2, forwardedRef) {\n let {\n render,\n ...props\n } = _ref2;\n const renderElementProps = render && typeof render !== 'function' ? render.props : {};\n const {\n activeIndex,\n setActiveIndex\n } = React.useContext(CompositeContext);\n const {\n ref,\n index\n } = useListItem();\n const mergedRef = useMergeRefs([ref, forwardedRef, renderElementProps.ref]);\n const isActive = activeIndex === index;\n const computedProps = {\n ...props,\n ...renderElementProps,\n ref: mergedRef,\n tabIndex: isActive ? 0 : -1,\n 'data-active': isActive ? '' : undefined,\n onFocus(e) {\n props.onFocus == null ? void 0 : props.onFocus(e);\n renderElementProps.onFocus == null ? void 0 : renderElementProps.onFocus(e);\n setActiveIndex(index);\n }\n };\n return renderJsx(render, computedProps);\n});\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nlet serverHandoffComplete = false;\nlet count = 0;\nconst genId = () => \"floating-ui-\" + count++;\nfunction useFloatingId() {\n const [id, setId] = React.useState(() => serverHandoffComplete ? genId() : undefined);\n index(() => {\n if (id == null) {\n setId(genId());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n React.useEffect(() => {\n if (!serverHandoffComplete) {\n serverHandoffComplete = true;\n }\n }, []);\n return id;\n}\n\n// `toString()` prevents bundlers from trying to `import { useId } from 'react'`\nconst useReactId = React[/*#__PURE__*/'useId'.toString()];\n\n/**\n * Uses React 18's built-in `useId()` when available, or falls back to a\n * slightly less performant (requiring a double render) implementation for\n * earlier React versions.\n * @see https://floating-ui.com/docs/useId\n */\nconst useId = useReactId || useFloatingId;\n\n/**\n * Renders a pointing arrow triangle.\n * @see https://floating-ui.com/docs/FloatingArrow\n */\nconst FloatingArrow = /*#__PURE__*/React.forwardRef(function FloatingArrow(_ref, ref) {\n let {\n context: {\n placement,\n elements: {\n floating\n },\n middlewareData: {\n arrow\n }\n },\n width = 14,\n height = 7,\n tipRadius = 0,\n strokeWidth = 0,\n staticOffset,\n stroke,\n d,\n style: {\n transform,\n ...restStyle\n } = {},\n ...rest\n } = _ref;\n if (process.env.NODE_ENV !== \"production\") {\n if (!ref) {\n console.warn('Floating UI: The `ref` prop is required for the `FloatingArrow`', 'component.');\n }\n }\n const clipPathId = useId();\n if (!floating) {\n return null;\n }\n\n // Strokes must be double the border width, this ensures the stroke's width\n // works as you'd expect.\n strokeWidth *= 2;\n const halfStrokeWidth = strokeWidth / 2;\n const svgX = width / 2 * (tipRadius / -8 + 1);\n const svgY = height / 2 * tipRadius / 4;\n const [side, alignment] = placement.split('-');\n const isRTL = platform.isRTL(floating);\n const isCustomShape = !!d;\n const isVerticalSide = side === 'top' || side === 'bottom';\n const yOffsetProp = staticOffset && alignment === 'end' ? 'bottom' : 'top';\n let xOffsetProp = staticOffset && alignment === 'end' ? 'right' : 'left';\n if (staticOffset && isRTL) {\n xOffsetProp = alignment === 'end' ? 'left' : 'right';\n }\n const arrowX = (arrow == null ? void 0 : arrow.x) != null ? staticOffset || arrow.x : '';\n const arrowY = (arrow == null ? void 0 : arrow.y) != null ? staticOffset || arrow.y : '';\n const dValue = d || 'M0,0' + (\" H\" + width) + (\" L\" + (width - svgX) + \",\" + (height - svgY)) + (\" Q\" + width / 2 + \",\" + height + \" \" + svgX + \",\" + (height - svgY)) + ' Z';\n const rotation = {\n top: isCustomShape ? 'rotate(180deg)' : '',\n left: isCustomShape ? 'rotate(90deg)' : 'rotate(-90deg)',\n bottom: isCustomShape ? '' : 'rotate(180deg)',\n right: isCustomShape ? 'rotate(-90deg)' : 'rotate(90deg)'\n }[side];\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, rest, {\n \"aria-hidden\": true,\n ref: ref,\n width: isCustomShape ? width : width + strokeWidth,\n height: width,\n viewBox: \"0 0 \" + width + \" \" + (height > width ? height : width),\n style: {\n position: 'absolute',\n pointerEvents: 'none',\n [xOffsetProp]: arrowX,\n [yOffsetProp]: arrowY,\n [side]: isVerticalSide || isCustomShape ? '100%' : \"calc(100% - \" + strokeWidth / 2 + \"px)\",\n transform: \"\" + rotation + (transform != null ? transform : ''),\n ...restStyle\n }\n }), strokeWidth > 0 && /*#__PURE__*/React.createElement(\"path\", {\n clipPath: \"url(#\" + clipPathId + \")\",\n fill: \"none\",\n stroke: stroke\n // Account for the stroke on the fill path rendered below.\n ,\n strokeWidth: strokeWidth + (d ? 0 : 1),\n d: dValue\n }), /*#__PURE__*/React.createElement(\"path\", {\n stroke: strokeWidth && !d ? rest.fill : 'none',\n d: dValue\n }), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: clipPathId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: -halfStrokeWidth,\n y: halfStrokeWidth * (isCustomShape ? -1 : 1),\n width: width + strokeWidth,\n height: width\n })));\n});\n\nfunction createPubSub() {\n const map = new Map();\n return {\n emit(event, data) {\n var _map$get;\n (_map$get = map.get(event)) == null ? void 0 : _map$get.forEach(handler => handler(data));\n },\n on(event, listener) {\n map.set(event, [...(map.get(event) || []), listener]);\n },\n off(event, listener) {\n var _map$get2;\n map.set(event, ((_map$get2 = map.get(event)) == null ? void 0 : _map$get2.filter(l => l !== listener)) || []);\n }\n };\n}\n\nconst FloatingNodeContext = /*#__PURE__*/React.createContext(null);\nconst FloatingTreeContext = /*#__PURE__*/React.createContext(null);\nconst useFloatingParentNodeId = () => {\n var _React$useContext;\n return ((_React$useContext = React.useContext(FloatingNodeContext)) == null ? void 0 : _React$useContext.id) || null;\n};\nconst useFloatingTree = () => React.useContext(FloatingTreeContext);\n\n/**\n * Registers a node into the floating tree, returning its id.\n */\nfunction useFloatingNodeId(customParentId) {\n const id = useId();\n const tree = useFloatingTree();\n const reactParentId = useFloatingParentNodeId();\n const parentId = customParentId || reactParentId;\n index(() => {\n const node = {\n id,\n parentId\n };\n tree == null ? void 0 : tree.addNode(node);\n return () => {\n tree == null ? void 0 : tree.removeNode(node);\n };\n }, [tree, id, parentId]);\n return id;\n}\n\n/**\n * Provides parent node context for nested floating elements.\n * @see https://floating-ui.com/docs/FloatingTree\n */\nfunction FloatingNode(_ref) {\n let {\n children,\n id\n } = _ref;\n const parentId = useFloatingParentNodeId();\n return /*#__PURE__*/React.createElement(FloatingNodeContext.Provider, {\n value: React.useMemo(() => ({\n id,\n parentId\n }), [id, parentId])\n }, children);\n}\n\n/**\n * Provides context for nested floating elements when they are not children of\n * each other on the DOM (i.e. portalled to a common node, rather than their\n * respective parent).\n * @see https://floating-ui.com/docs/FloatingTree\n */\nfunction FloatingTree(_ref2) {\n let {\n children\n } = _ref2;\n const nodesRef = React.useRef([]);\n const addNode = React.useCallback(node => {\n nodesRef.current = [...nodesRef.current, node];\n }, []);\n const removeNode = React.useCallback(node => {\n nodesRef.current = nodesRef.current.filter(n => n !== node);\n }, []);\n const events = React.useState(() => createPubSub())[0];\n return /*#__PURE__*/React.createElement(FloatingTreeContext.Provider, {\n value: React.useMemo(() => ({\n nodesRef,\n addNode,\n removeNode,\n events\n }), [nodesRef, addNode, removeNode, events])\n }, children);\n}\n\nfunction createAttribute(name) {\n return \"data-floating-ui-\" + name;\n}\n\nfunction useLatestRef(value) {\n const ref = useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\nconst safePolygonIdentifier = /*#__PURE__*/createAttribute('safe-polygon');\nfunction getDelay(value, prop, pointerType) {\n if (pointerType && !isMouseLikePointerType(pointerType)) {\n return 0;\n }\n if (typeof value === 'number') {\n return value;\n }\n return value == null ? void 0 : value[prop];\n}\n/**\n * Opens the floating element while hovering over the reference element, like\n * CSS `:hover`.\n * @see https://floating-ui.com/docs/useHover\n */\nfunction useHover(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n dataRef,\n events,\n elements: {\n domReference,\n floating\n },\n refs\n } = context;\n const {\n enabled = true,\n delay = 0,\n handleClose = null,\n mouseOnly = false,\n restMs = 0,\n move = true\n } = props;\n const tree = useFloatingTree();\n const parentId = useFloatingParentNodeId();\n const handleCloseRef = useLatestRef(handleClose);\n const delayRef = useLatestRef(delay);\n const pointerTypeRef = React.useRef();\n const timeoutRef = React.useRef();\n const handlerRef = React.useRef();\n const restTimeoutRef = React.useRef();\n const blockMouseMoveRef = React.useRef(true);\n const performedPointerEventsMutationRef = React.useRef(false);\n const unbindMouseMoveRef = React.useRef(() => {});\n const isHoverOpen = React.useCallback(() => {\n var _dataRef$current$open;\n const type = (_dataRef$current$open = dataRef.current.openEvent) == null ? void 0 : _dataRef$current$open.type;\n return (type == null ? void 0 : type.includes('mouse')) && type !== 'mousedown';\n }, [dataRef]);\n\n // When dismissing before opening, clear the delay timeouts to cancel it\n // from showing.\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function onDismiss() {\n clearTimeout(timeoutRef.current);\n clearTimeout(restTimeoutRef.current);\n blockMouseMoveRef.current = true;\n }\n events.on('dismiss', onDismiss);\n return () => {\n events.off('dismiss', onDismiss);\n };\n }, [enabled, events]);\n React.useEffect(() => {\n if (!enabled || !handleCloseRef.current || !open) {\n return;\n }\n function onLeave(event) {\n if (isHoverOpen()) {\n onOpenChange(false, event);\n }\n }\n const html = getDocument(floating).documentElement;\n html.addEventListener('mouseleave', onLeave);\n return () => {\n html.removeEventListener('mouseleave', onLeave);\n };\n }, [floating, open, onOpenChange, enabled, handleCloseRef, dataRef, isHoverOpen]);\n const closeWithDelay = React.useCallback(function (event, runElseBranch) {\n if (runElseBranch === void 0) {\n runElseBranch = true;\n }\n const closeDelay = getDelay(delayRef.current, 'close', pointerTypeRef.current);\n if (closeDelay && !handlerRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = setTimeout(() => onOpenChange(false, event), closeDelay);\n } else if (runElseBranch) {\n clearTimeout(timeoutRef.current);\n onOpenChange(false, event);\n }\n }, [delayRef, onOpenChange]);\n const cleanupMouseMoveHandler = React.useCallback(() => {\n unbindMouseMoveRef.current();\n handlerRef.current = undefined;\n }, []);\n const clearPointerEvents = React.useCallback(() => {\n if (performedPointerEventsMutationRef.current) {\n const body = getDocument(refs.floating.current).body;\n body.style.pointerEvents = '';\n body.removeAttribute(safePolygonIdentifier);\n performedPointerEventsMutationRef.current = false;\n }\n }, [refs]);\n\n // Registering the mouse events on the reference directly to bypass React's\n // delegation system. If the cursor was on a disabled element and then entered\n // the reference (no gap), `mouseenter` doesn't fire in the delegation system.\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function isClickLikeOpenEvent() {\n return dataRef.current.openEvent ? ['click', 'mousedown'].includes(dataRef.current.openEvent.type) : false;\n }\n function onMouseEnter(event) {\n clearTimeout(timeoutRef.current);\n blockMouseMoveRef.current = false;\n if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current) || restMs > 0 && getDelay(delayRef.current, 'open') === 0) {\n return;\n }\n const openDelay = getDelay(delayRef.current, 'open', pointerTypeRef.current);\n if (openDelay) {\n timeoutRef.current = setTimeout(() => {\n onOpenChange(true, event);\n }, openDelay);\n } else {\n onOpenChange(true, event);\n }\n }\n function onMouseLeave(event) {\n if (isClickLikeOpenEvent()) {\n return;\n }\n unbindMouseMoveRef.current();\n const doc = getDocument(floating);\n clearTimeout(restTimeoutRef.current);\n if (handleCloseRef.current) {\n // Prevent clearing `onScrollMouseLeave` timeout.\n if (!open) {\n clearTimeout(timeoutRef.current);\n }\n handlerRef.current = handleCloseRef.current({\n ...context,\n tree,\n x: event.clientX,\n y: event.clientY,\n onClose() {\n clearPointerEvents();\n cleanupMouseMoveHandler();\n // Should the event expose that it was closed by `safePolygon`?\n closeWithDelay(event);\n }\n });\n const handler = handlerRef.current;\n doc.addEventListener('mousemove', handler);\n unbindMouseMoveRef.current = () => {\n doc.removeEventListener('mousemove', handler);\n };\n return;\n }\n\n // Allow interactivity without `safePolygon` on touch devices. With a\n // pointer, a short close delay is an alternative, so it should work\n // consistently.\n const shouldClose = pointerTypeRef.current === 'touch' ? !contains(floating, event.relatedTarget) : true;\n if (shouldClose) {\n closeWithDelay(event);\n }\n }\n\n // Ensure the floating element closes after scrolling even if the pointer\n // did not move.\n // https://github.com/floating-ui/floating-ui/discussions/1692\n function onScrollMouseLeave(event) {\n if (isClickLikeOpenEvent()) {\n return;\n }\n handleCloseRef.current == null ? void 0 : handleCloseRef.current({\n ...context,\n tree,\n x: event.clientX,\n y: event.clientY,\n onClose() {\n clearPointerEvents();\n cleanupMouseMoveHandler();\n closeWithDelay(event);\n }\n })(event);\n }\n if (isElement(domReference)) {\n const ref = domReference;\n open && ref.addEventListener('mouseleave', onScrollMouseLeave);\n floating == null ? void 0 : floating.addEventListener('mouseleave', onScrollMouseLeave);\n move && ref.addEventListener('mousemove', onMouseEnter, {\n once: true\n });\n ref.addEventListener('mouseenter', onMouseEnter);\n ref.addEventListener('mouseleave', onMouseLeave);\n return () => {\n open && ref.removeEventListener('mouseleave', onScrollMouseLeave);\n floating == null ? void 0 : floating.removeEventListener('mouseleave', onScrollMouseLeave);\n move && ref.removeEventListener('mousemove', onMouseEnter);\n ref.removeEventListener('mouseenter', onMouseEnter);\n ref.removeEventListener('mouseleave', onMouseLeave);\n };\n }\n }, [domReference, floating, enabled, context, mouseOnly, restMs, move, closeWithDelay, cleanupMouseMoveHandler, clearPointerEvents, onOpenChange, open, tree, delayRef, handleCloseRef, dataRef]);\n\n // Block pointer-events of every element other than the reference and floating\n // while the floating element is open and has a `handleClose` handler. Also\n // handles nested floating elements.\n // https://github.com/floating-ui/floating-ui/issues/1722\n index(() => {\n var _handleCloseRef$curre;\n if (!enabled) {\n return;\n }\n if (open && (_handleCloseRef$curre = handleCloseRef.current) != null && _handleCloseRef$curre.__options.blockPointerEvents && isHoverOpen()) {\n const body = getDocument(floating).body;\n body.setAttribute(safePolygonIdentifier, '');\n body.style.pointerEvents = 'none';\n performedPointerEventsMutationRef.current = true;\n if (isElement(domReference) && floating) {\n var _tree$nodesRef$curren, _tree$nodesRef$curren2;\n const ref = domReference;\n const parentFloating = tree == null ? void 0 : (_tree$nodesRef$curren = tree.nodesRef.current.find(node => node.id === parentId)) == null ? void 0 : (_tree$nodesRef$curren2 = _tree$nodesRef$curren.context) == null ? void 0 : _tree$nodesRef$curren2.elements.floating;\n if (parentFloating) {\n parentFloating.style.pointerEvents = '';\n }\n ref.style.pointerEvents = 'auto';\n floating.style.pointerEvents = 'auto';\n return () => {\n ref.style.pointerEvents = '';\n floating.style.pointerEvents = '';\n };\n }\n }\n }, [enabled, open, parentId, floating, domReference, tree, handleCloseRef, dataRef, isHoverOpen]);\n index(() => {\n if (!open) {\n pointerTypeRef.current = undefined;\n cleanupMouseMoveHandler();\n clearPointerEvents();\n }\n }, [open, cleanupMouseMoveHandler, clearPointerEvents]);\n React.useEffect(() => {\n return () => {\n cleanupMouseMoveHandler();\n clearTimeout(timeoutRef.current);\n clearTimeout(restTimeoutRef.current);\n clearPointerEvents();\n };\n }, [enabled, domReference, cleanupMouseMoveHandler, clearPointerEvents]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n function setPointerRef(event) {\n pointerTypeRef.current = event.pointerType;\n }\n return {\n reference: {\n onPointerDown: setPointerRef,\n onPointerEnter: setPointerRef,\n onMouseMove(event) {\n if (open || restMs === 0) {\n return;\n }\n clearTimeout(restTimeoutRef.current);\n restTimeoutRef.current = setTimeout(() => {\n if (!blockMouseMoveRef.current) {\n onOpenChange(true, event.nativeEvent);\n }\n }, restMs);\n }\n },\n floating: {\n onMouseEnter() {\n clearTimeout(timeoutRef.current);\n },\n onMouseLeave(event) {\n events.emit('dismiss', {\n type: 'mouseLeave',\n data: {\n returnFocus: false\n }\n });\n closeWithDelay(event.nativeEvent, false);\n }\n }\n };\n }, [events, enabled, restMs, open, onOpenChange, closeWithDelay]);\n}\n\nconst FloatingDelayGroupContext = /*#__PURE__*/React.createContext({\n delay: 0,\n initialDelay: 0,\n timeoutMs: 0,\n currentId: null,\n setCurrentId: () => {},\n setState: () => {},\n isInstantPhase: false\n});\nconst useDelayGroupContext = () => React.useContext(FloatingDelayGroupContext);\n/**\n * Provides context for a group of floating elements that should share a\n * `delay`.\n * @see https://floating-ui.com/docs/FloatingDelayGroup\n */\nconst FloatingDelayGroup = _ref => {\n let {\n children,\n delay,\n timeoutMs = 0\n } = _ref;\n const [state, setState] = React.useReducer((prev, next) => ({\n ...prev,\n ...next\n }), {\n delay,\n timeoutMs,\n initialDelay: delay,\n currentId: null,\n isInstantPhase: false\n });\n const initialCurrentIdRef = React.useRef(null);\n const setCurrentId = React.useCallback(currentId => {\n setState({\n currentId\n });\n }, []);\n index(() => {\n if (state.currentId) {\n if (initialCurrentIdRef.current === null) {\n initialCurrentIdRef.current = state.currentId;\n } else {\n setState({\n isInstantPhase: true\n });\n }\n } else {\n setState({\n isInstantPhase: false\n });\n initialCurrentIdRef.current = null;\n }\n }, [state.currentId]);\n return /*#__PURE__*/React.createElement(FloatingDelayGroupContext.Provider, {\n value: React.useMemo(() => ({\n ...state,\n setState,\n setCurrentId\n }), [state, setState, setCurrentId])\n }, children);\n};\nconst useDelayGroup = (_ref2, _ref3) => {\n let {\n open,\n onOpenChange\n } = _ref2;\n let {\n id\n } = _ref3;\n const {\n currentId,\n setCurrentId,\n initialDelay,\n setState,\n timeoutMs\n } = useDelayGroupContext();\n index(() => {\n if (currentId) {\n setState({\n delay: {\n open: 1,\n close: getDelay(initialDelay, 'close')\n }\n });\n if (currentId !== id) {\n onOpenChange(false);\n }\n }\n }, [id, onOpenChange, setState, currentId, initialDelay]);\n index(() => {\n function unset() {\n onOpenChange(false);\n setState({\n delay: initialDelay,\n currentId: null\n });\n }\n if (!open && currentId === id) {\n if (timeoutMs) {\n const timeout = window.setTimeout(unset, timeoutMs);\n return () => {\n clearTimeout(timeout);\n };\n } else {\n unset();\n }\n }\n }, [open, setState, currentId, id, onOpenChange, initialDelay, timeoutMs]);\n index(() => {\n if (open) {\n setCurrentId(id);\n }\n }, [open, setCurrentId, id]);\n};\n\nfunction getAncestors(nodes, id) {\n var _nodes$find;\n let allAncestors = [];\n let currentParentId = (_nodes$find = nodes.find(node => node.id === id)) == null ? void 0 : _nodes$find.parentId;\n while (currentParentId) {\n const currentNode = nodes.find(node => node.id === currentParentId);\n currentParentId = currentNode == null ? void 0 : currentNode.parentId;\n if (currentNode) {\n allAncestors = allAncestors.concat(currentNode);\n }\n }\n return allAncestors;\n}\n\nfunction getChildren(nodes, id) {\n let allChildren = nodes.filter(node => {\n var _node$context;\n return node.parentId === id && ((_node$context = node.context) == null ? void 0 : _node$context.open);\n });\n let currentChildren = allChildren;\n while (currentChildren.length) {\n currentChildren = nodes.filter(node => {\n var _currentChildren;\n return (_currentChildren = currentChildren) == null ? void 0 : _currentChildren.some(n => {\n var _node$context2;\n return node.parentId === n.id && ((_node$context2 = node.context) == null ? void 0 : _node$context2.open);\n });\n });\n allChildren = allChildren.concat(currentChildren);\n }\n return allChildren;\n}\nfunction getDeepestNode(nodes, id) {\n let deepestNodeId;\n let maxDepth = -1;\n function findDeepest(nodeId, depth) {\n if (depth > maxDepth) {\n deepestNodeId = nodeId;\n maxDepth = depth;\n }\n const children = getChildren(nodes, nodeId);\n children.forEach(child => {\n findDeepest(child.id, depth + 1);\n });\n }\n findDeepest(id, 0);\n return nodes.find(node => node.id === deepestNodeId);\n}\n\n// Modified to add conditional `aria-hidden` support:\n// https://github.com/theKashey/aria-hidden/blob/9220c8f4a4fd35f63bee5510a9f41a37264382d4/src/index.ts\nlet counterMap = /*#__PURE__*/new WeakMap();\nlet uncontrolledElementsSet = /*#__PURE__*/new WeakSet();\nlet markerMap = {};\nlet lockCount = 0;\nconst supportsInert = () => typeof HTMLElement !== 'undefined' && 'inert' in HTMLElement.prototype;\nconst unwrapHost = node => node && (node.host || unwrapHost(node.parentNode));\nconst correctElements = (parent, targets) => targets.map(target => {\n if (parent.contains(target)) {\n return target;\n }\n const correctedTarget = unwrapHost(target);\n if (parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n return null;\n}).filter(x => x != null);\nfunction applyAttributeToOthers(uncorrectedAvoidElements, body, ariaHidden, inert) {\n const markerName = 'data-floating-ui-inert';\n const controlAttribute = inert ? 'inert' : ariaHidden ? 'aria-hidden' : null;\n const avoidElements = correctElements(body, uncorrectedAvoidElements);\n const elementsToKeep = new Set();\n const elementsToStop = new Set(avoidElements);\n const hiddenElements = [];\n if (!markerMap[markerName]) {\n markerMap[markerName] = new WeakMap();\n }\n const markerCounter = markerMap[markerName];\n avoidElements.forEach(keep);\n deep(body);\n elementsToKeep.clear();\n function keep(el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n el.parentNode && keep(el.parentNode);\n }\n function deep(parent) {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n Array.prototype.forEach.call(parent.children, node => {\n if (elementsToKeep.has(node)) {\n deep(node);\n } else {\n const attr = controlAttribute ? node.getAttribute(controlAttribute) : null;\n const alreadyHidden = attr !== null && attr !== 'false';\n const counterValue = (counterMap.get(node) || 0) + 1;\n const markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenElements.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledElementsSet.add(node);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, '');\n }\n if (!alreadyHidden && controlAttribute) {\n node.setAttribute(controlAttribute, 'true');\n }\n }\n });\n }\n lockCount++;\n return () => {\n hiddenElements.forEach(element => {\n const counterValue = (counterMap.get(element) || 0) - 1;\n const markerValue = (markerCounter.get(element) || 0) - 1;\n counterMap.set(element, counterValue);\n markerCounter.set(element, markerValue);\n if (!counterValue) {\n if (!uncontrolledElementsSet.has(element) && controlAttribute) {\n element.removeAttribute(controlAttribute);\n }\n uncontrolledElementsSet.delete(element);\n }\n if (!markerValue) {\n element.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n counterMap = new WeakMap();\n counterMap = new WeakMap();\n uncontrolledElementsSet = new WeakSet();\n markerMap = {};\n }\n };\n}\nfunction markOthers(avoidElements, ariaHidden, inert) {\n if (ariaHidden === void 0) {\n ariaHidden = false;\n }\n if (inert === void 0) {\n inert = false;\n }\n const body = getDocument(avoidElements[0]).body;\n return applyAttributeToOthers(avoidElements.concat(Array.from(body.querySelectorAll('[aria-live]'))), body, ariaHidden, inert);\n}\n\nconst getTabbableOptions = () => ({\n getShadowRoot: true,\n displayCheck:\n // JSDOM does not support the `tabbable` library. To solve this we can\n // check if `ResizeObserver` is a real function (not polyfilled), which\n // determines if the current environment is JSDOM-like.\n typeof ResizeObserver === 'function' && ResizeObserver.toString().includes('[native code]') ? 'full' : 'none'\n});\nfunction getTabbableIn(container, direction) {\n const allTabbable = tabbable(container, getTabbableOptions());\n if (direction === 'prev') {\n allTabbable.reverse();\n }\n const activeIndex = allTabbable.indexOf(activeElement(getDocument(container)));\n const nextTabbableElements = allTabbable.slice(activeIndex + 1);\n return nextTabbableElements[0];\n}\nfunction getNextTabbable() {\n return getTabbableIn(document.body, 'next');\n}\nfunction getPreviousTabbable() {\n return getTabbableIn(document.body, 'prev');\n}\nfunction isOutsideEvent(event, container) {\n const containerElement = container || event.currentTarget;\n const relatedTarget = event.relatedTarget;\n return !relatedTarget || !contains(containerElement, relatedTarget);\n}\nfunction disableFocusInside(container) {\n const tabbableElements = tabbable(container, getTabbableOptions());\n tabbableElements.forEach(element => {\n element.dataset.tabindex = element.getAttribute('tabindex') || '';\n element.setAttribute('tabindex', '-1');\n });\n}\nfunction enableFocusInside(container) {\n const elements = container.querySelectorAll('[data-tabindex]');\n elements.forEach(element => {\n const tabindex = element.dataset.tabindex;\n delete element.dataset.tabindex;\n if (tabindex) {\n element.setAttribute('tabindex', tabindex);\n } else {\n element.removeAttribute('tabindex');\n }\n });\n}\n\n// See Diego Haz's Sandbox for making this logic work well on Safari/iOS:\n// https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/FocusTrap.tsx\n\nconst HIDDEN_STYLES = {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: 0,\n position: 'fixed',\n whiteSpace: 'nowrap',\n width: '1px',\n top: 0,\n left: 0\n};\nlet timeoutId;\nfunction setActiveElementOnTab(event) {\n if (event.key === 'Tab') {\n event.target;\n clearTimeout(timeoutId);\n }\n}\nconst FocusGuard = /*#__PURE__*/React.forwardRef(function FocusGuard(props, ref) {\n const [role, setRole] = React.useState();\n index(() => {\n if (isSafari()) {\n // Unlike other screen readers such as NVDA and JAWS, the virtual cursor\n // on VoiceOver does trigger the onFocus event, so we can use the focus\n // trap element. On Safari, only buttons trigger the onFocus event.\n // NB: \"group\" role in the Sandbox no longer appears to work, must be a\n // button role.\n setRole('button');\n }\n document.addEventListener('keydown', setActiveElementOnTab);\n return () => {\n document.removeEventListener('keydown', setActiveElementOnTab);\n };\n }, []);\n const restProps = {\n ref,\n tabIndex: 0,\n // Role is only for VoiceOver\n role,\n 'aria-hidden': role ? undefined : true,\n [createAttribute('focus-guard')]: '',\n style: HIDDEN_STYLES\n };\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, props, restProps));\n});\n\nconst PortalContext = /*#__PURE__*/React.createContext(null);\nfunction useFloatingPortalNode(_temp) {\n let {\n id,\n root\n } = _temp === void 0 ? {} : _temp;\n const [portalNode, setPortalNode] = React.useState(null);\n const uniqueId = useId();\n const portalContext = usePortalContext();\n const data = React.useMemo(() => ({\n id,\n root,\n portalContext,\n uniqueId\n }), [id, root, portalContext, uniqueId]);\n const dataRef = React.useRef();\n index(() => {\n return () => {\n portalNode == null ? void 0 : portalNode.remove();\n };\n }, [portalNode, data]);\n index(() => {\n if (dataRef.current === data) return;\n dataRef.current = data;\n const {\n id,\n root,\n portalContext,\n uniqueId\n } = data;\n const existingIdRoot = id ? document.getElementById(id) : null;\n const attr = createAttribute('portal');\n if (existingIdRoot) {\n const subRoot = document.createElement('div');\n subRoot.id = uniqueId;\n subRoot.setAttribute(attr, '');\n existingIdRoot.appendChild(subRoot);\n setPortalNode(subRoot);\n } else {\n let container = root || (portalContext == null ? void 0 : portalContext.portalNode);\n if (container && !isElement(container)) container = container.current;\n container = container || document.body;\n let idWrapper = null;\n if (id) {\n idWrapper = document.createElement('div');\n idWrapper.id = id;\n container.appendChild(idWrapper);\n }\n const subRoot = document.createElement('div');\n subRoot.id = uniqueId;\n subRoot.setAttribute(attr, '');\n container = idWrapper || container;\n container.appendChild(subRoot);\n setPortalNode(subRoot);\n }\n }, [data]);\n return portalNode;\n}\n/**\n * Portals the floating element into a given container element — by default,\n * outside of the app root and into the body.\n * @see https://floating-ui.com/docs/FloatingPortal\n */\nfunction FloatingPortal(_ref) {\n let {\n children,\n id,\n root = null,\n preserveTabOrder = true\n } = _ref;\n const portalNode = useFloatingPortalNode({\n id,\n root\n });\n const [focusManagerState, setFocusManagerState] = React.useState(null);\n const beforeOutsideRef = React.useRef(null);\n const afterOutsideRef = React.useRef(null);\n const beforeInsideRef = React.useRef(null);\n const afterInsideRef = React.useRef(null);\n const shouldRenderGuards =\n // The FocusManager and therefore floating element are currently open/\n // rendered.\n !!focusManagerState &&\n // Guards are only for non-modal focus management.\n !focusManagerState.modal &&\n // Don't render if unmount is transitioning.\n focusManagerState.open && preserveTabOrder && !!(root || portalNode);\n\n // https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/TabbablePortal.tsx\n React.useEffect(() => {\n if (!portalNode || !preserveTabOrder || focusManagerState != null && focusManagerState.modal) {\n return;\n }\n\n // Make sure elements inside the portal element are tabbable only when the\n // portal has already been focused, either by tabbing into a focus trap\n // element outside or using the mouse.\n function onFocus(event) {\n if (portalNode && isOutsideEvent(event)) {\n const focusing = event.type === 'focusin';\n const manageFocus = focusing ? enableFocusInside : disableFocusInside;\n manageFocus(portalNode);\n }\n }\n // Listen to the event on the capture phase so they run before the focus\n // trap elements onFocus prop is called.\n portalNode.addEventListener('focusin', onFocus, true);\n portalNode.addEventListener('focusout', onFocus, true);\n return () => {\n portalNode.removeEventListener('focusin', onFocus, true);\n portalNode.removeEventListener('focusout', onFocus, true);\n };\n }, [portalNode, preserveTabOrder, focusManagerState == null ? void 0 : focusManagerState.modal]);\n return /*#__PURE__*/React.createElement(PortalContext.Provider, {\n value: React.useMemo(() => ({\n preserveTabOrder,\n beforeOutsideRef,\n afterOutsideRef,\n beforeInsideRef,\n afterInsideRef,\n portalNode,\n setFocusManagerState\n }), [preserveTabOrder, portalNode])\n }, shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"outside\",\n ref: beforeOutsideRef,\n onFocus: event => {\n if (isOutsideEvent(event, portalNode)) {\n var _beforeInsideRef$curr;\n (_beforeInsideRef$curr = beforeInsideRef.current) == null ? void 0 : _beforeInsideRef$curr.focus();\n } else {\n const prevTabbable = getPreviousTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);\n prevTabbable == null ? void 0 : prevTabbable.focus();\n }\n }\n }), shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(\"span\", {\n \"aria-owns\": portalNode.id,\n style: HIDDEN_STYLES\n }), portalNode && /*#__PURE__*/createPortal(children, portalNode), shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"outside\",\n ref: afterOutsideRef,\n onFocus: event => {\n if (isOutsideEvent(event, portalNode)) {\n var _afterInsideRef$curre;\n (_afterInsideRef$curre = afterInsideRef.current) == null ? void 0 : _afterInsideRef$curre.focus();\n } else {\n const nextTabbable = getNextTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);\n nextTabbable == null ? void 0 : nextTabbable.focus();\n (focusManagerState == null ? void 0 : focusManagerState.closeOnFocusOut) && (focusManagerState == null ? void 0 : focusManagerState.onOpenChange(false, event.nativeEvent));\n }\n }\n }));\n}\nconst usePortalContext = () => React.useContext(PortalContext);\n\nconst VisuallyHiddenDismiss = /*#__PURE__*/React.forwardRef(function VisuallyHiddenDismiss(props, ref) {\n return /*#__PURE__*/React.createElement(\"button\", _extends({}, props, {\n type: \"button\",\n ref: ref,\n tabIndex: -1,\n style: HIDDEN_STYLES\n }));\n});\n/**\n * Provides focus management for the floating element.\n * @see https://floating-ui.com/docs/FloatingFocusManager\n */\nfunction FloatingFocusManager(props) {\n const {\n context,\n children,\n disabled = false,\n order = ['content'],\n guards: _guards = true,\n initialFocus = 0,\n returnFocus = true,\n modal = true,\n visuallyHiddenDismiss = false,\n closeOnFocusOut = true\n } = props;\n const {\n open,\n refs,\n nodeId,\n onOpenChange,\n events,\n dataRef,\n elements: {\n domReference,\n floating\n }\n } = context;\n\n // Force the guards to be rendered if the `inert` attribute is not supported.\n const guards = supportsInert() ? _guards : true;\n const orderRef = useLatestRef(order);\n const initialFocusRef = useLatestRef(initialFocus);\n const returnFocusRef = useLatestRef(returnFocus);\n const tree = useFloatingTree();\n const portalContext = usePortalContext();\n\n // Controlled by `useListNavigation`.\n const ignoreInitialFocus = typeof initialFocus === 'number' && initialFocus < 0;\n const startDismissButtonRef = React.useRef(null);\n const endDismissButtonRef = React.useRef(null);\n const preventReturnFocusRef = React.useRef(false);\n const previouslyFocusedElementRef = React.useRef(null);\n const isPointerDownRef = React.useRef(false);\n const isInsidePortal = portalContext != null;\n\n // If the reference is a combobox and is typeable (e.g. input/textarea),\n // there are different focus semantics. The guards should not be rendered, but\n // aria-hidden should be applied to all nodes still. Further, the visually\n // hidden dismiss button should only appear at the end of the list, not the\n // start.\n const isUntrappedTypeableCombobox = domReference && domReference.getAttribute('role') === 'combobox' && isTypeableElement(domReference) && ignoreInitialFocus;\n const getTabbableContent = React.useCallback(function (container) {\n if (container === void 0) {\n container = floating;\n }\n return container ? tabbable(container, getTabbableOptions()) : [];\n }, [floating]);\n const getTabbableElements = React.useCallback(container => {\n const content = getTabbableContent(container);\n return orderRef.current.map(type => {\n if (domReference && type === 'reference') {\n return domReference;\n }\n if (floating && type === 'floating') {\n return floating;\n }\n return content;\n }).filter(Boolean).flat();\n }, [domReference, floating, orderRef, getTabbableContent]);\n React.useEffect(() => {\n if (disabled || !modal) return;\n function onKeyDown(event) {\n if (event.key === 'Tab') {\n // The focus guards have nothing to focus, so we need to stop the event.\n if (contains(floating, activeElement(getDocument(floating))) && getTabbableContent().length === 0 && !isUntrappedTypeableCombobox) {\n stopEvent(event);\n }\n const els = getTabbableElements();\n const target = getTarget(event);\n if (orderRef.current[0] === 'reference' && target === domReference) {\n stopEvent(event);\n if (event.shiftKey) {\n enqueueFocus(els[els.length - 1]);\n } else {\n enqueueFocus(els[1]);\n }\n }\n if (orderRef.current[1] === 'floating' && target === floating && event.shiftKey) {\n stopEvent(event);\n enqueueFocus(els[0]);\n }\n }\n }\n const doc = getDocument(floating);\n doc.addEventListener('keydown', onKeyDown);\n return () => {\n doc.removeEventListener('keydown', onKeyDown);\n };\n }, [disabled, domReference, floating, modal, orderRef, refs, isUntrappedTypeableCombobox, getTabbableContent, getTabbableElements]);\n React.useEffect(() => {\n if (disabled || !closeOnFocusOut) return;\n\n // In Safari, buttons lose focus when pressing them.\n function handlePointerDown() {\n isPointerDownRef.current = true;\n setTimeout(() => {\n isPointerDownRef.current = false;\n });\n }\n function handleFocusOutside(event) {\n const relatedTarget = event.relatedTarget;\n queueMicrotask(() => {\n const movedToUnrelatedNode = !(contains(domReference, relatedTarget) || contains(floating, relatedTarget) || contains(relatedTarget, floating) || contains(portalContext == null ? void 0 : portalContext.portalNode, relatedTarget) || relatedTarget != null && relatedTarget.hasAttribute(createAttribute('focus-guard')) || tree && (getChildren(tree.nodesRef.current, nodeId).find(node => {\n var _node$context, _node$context2;\n return contains((_node$context = node.context) == null ? void 0 : _node$context.elements.floating, relatedTarget) || contains((_node$context2 = node.context) == null ? void 0 : _node$context2.elements.domReference, relatedTarget);\n }) || getAncestors(tree.nodesRef.current, nodeId).find(node => {\n var _node$context3, _node$context4;\n return ((_node$context3 = node.context) == null ? void 0 : _node$context3.elements.floating) === relatedTarget || ((_node$context4 = node.context) == null ? void 0 : _node$context4.elements.domReference) === relatedTarget;\n })));\n\n // Focus did not move inside the floating tree, and there are no tabbable\n // portal guards to handle closing.\n if (relatedTarget && movedToUnrelatedNode && !isPointerDownRef.current &&\n // Fix React 18 Strict Mode returnFocus due to double rendering.\n relatedTarget !== previouslyFocusedElementRef.current) {\n preventReturnFocusRef.current = true;\n onOpenChange(false, event);\n }\n });\n }\n if (floating && isHTMLElement(domReference)) {\n domReference.addEventListener('focusout', handleFocusOutside);\n domReference.addEventListener('pointerdown', handlePointerDown);\n !modal && floating.addEventListener('focusout', handleFocusOutside);\n return () => {\n domReference.removeEventListener('focusout', handleFocusOutside);\n domReference.removeEventListener('pointerdown', handlePointerDown);\n !modal && floating.removeEventListener('focusout', handleFocusOutside);\n };\n }\n }, [disabled, domReference, floating, modal, nodeId, tree, portalContext, onOpenChange, closeOnFocusOut]);\n React.useEffect(() => {\n var _portalContext$portal;\n if (disabled) return;\n\n // Don't hide portals nested within the parent portal.\n const portalNodes = Array.from((portalContext == null ? void 0 : (_portalContext$portal = portalContext.portalNode) == null ? void 0 : _portalContext$portal.querySelectorAll(\"[\" + createAttribute('portal') + \"]\")) || []);\n if (floating) {\n const insideElements = [floating, ...portalNodes, startDismissButtonRef.current, endDismissButtonRef.current, orderRef.current.includes('reference') || isUntrappedTypeableCombobox ? domReference : null].filter(x => x != null);\n const cleanup = modal ? markOthers(insideElements, guards, !guards) : markOthers(insideElements);\n return () => {\n cleanup();\n };\n }\n }, [disabled, domReference, floating, modal, orderRef, portalContext, isUntrappedTypeableCombobox, guards]);\n index(() => {\n if (disabled || !floating) return;\n const doc = getDocument(floating);\n const previouslyFocusedElement = activeElement(doc);\n\n // Wait for any layout effect state setters to execute to set `tabIndex`.\n queueMicrotask(() => {\n const focusableElements = getTabbableElements(floating);\n const initialFocusValue = initialFocusRef.current;\n const elToFocus = (typeof initialFocusValue === 'number' ? focusableElements[initialFocusValue] : initialFocusValue.current) || floating;\n const focusAlreadyInsideFloatingEl = contains(floating, previouslyFocusedElement);\n if (!ignoreInitialFocus && !focusAlreadyInsideFloatingEl && open) {\n enqueueFocus(elToFocus, {\n preventScroll: elToFocus === floating\n });\n }\n });\n }, [disabled, open, floating, ignoreInitialFocus, getTabbableElements, initialFocusRef]);\n index(() => {\n if (disabled || !floating) return;\n let preventReturnFocusScroll = false;\n const doc = getDocument(floating);\n const previouslyFocusedElement = activeElement(doc);\n const contextData = dataRef.current;\n previouslyFocusedElementRef.current = previouslyFocusedElement;\n\n // Dismissing via outside press should always ignore `returnFocus` to\n // prevent unwanted scrolling.\n function onDismiss(payload) {\n if (payload.type === 'escapeKey' && refs.domReference.current) {\n previouslyFocusedElementRef.current = refs.domReference.current;\n }\n if (['referencePress', 'escapeKey'].includes(payload.type)) {\n return;\n }\n const returnFocus = payload.data.returnFocus;\n if (typeof returnFocus === 'object') {\n preventReturnFocusRef.current = false;\n preventReturnFocusScroll = returnFocus.preventScroll;\n } else {\n preventReturnFocusRef.current = !returnFocus;\n }\n }\n events.on('dismiss', onDismiss);\n return () => {\n events.off('dismiss', onDismiss);\n const activeEl = activeElement(doc);\n const shouldFocusReference = contains(floating, activeEl) || tree && getChildren(tree.nodesRef.current, nodeId).some(node => {\n var _node$context5;\n return contains((_node$context5 = node.context) == null ? void 0 : _node$context5.elements.floating, activeEl);\n }) || contextData.openEvent && ['click', 'mousedown'].includes(contextData.openEvent.type);\n if (shouldFocusReference && refs.domReference.current) {\n previouslyFocusedElementRef.current = refs.domReference.current;\n }\n if (\n // eslint-disable-next-line react-hooks/exhaustive-deps\n returnFocusRef.current && isHTMLElement(previouslyFocusedElementRef.current) && !preventReturnFocusRef.current) {\n enqueueFocus(previouslyFocusedElementRef.current, {\n // When dismissing nested floating elements, by the time the rAF has\n // executed, the menus will all have been unmounted. When they try\n // to get focused, the calls get ignored — leaving the root\n // reference focused as desired.\n cancelPrevious: false,\n preventScroll: preventReturnFocusScroll\n });\n }\n };\n }, [disabled, floating, returnFocusRef, dataRef, refs, events, tree, nodeId]);\n\n // Synchronize the `context` & `modal` value to the FloatingPortal context.\n // It will decide whether or not it needs to render its own guards.\n index(() => {\n if (disabled || !portalContext) return;\n portalContext.setFocusManagerState({\n modal,\n closeOnFocusOut,\n open,\n onOpenChange,\n refs\n });\n return () => {\n portalContext.setFocusManagerState(null);\n };\n }, [disabled, portalContext, modal, open, onOpenChange, refs, closeOnFocusOut]);\n index(() => {\n if (disabled) return;\n if (floating && typeof MutationObserver === 'function' && !ignoreInitialFocus) {\n const handleMutation = () => {\n const tabIndex = floating.getAttribute('tabindex');\n if (orderRef.current.includes('floating') || activeElement(getDocument(floating)) !== refs.domReference.current && getTabbableContent().length === 0) {\n if (tabIndex !== '0') {\n floating.setAttribute('tabindex', '0');\n }\n } else if (tabIndex !== '-1') {\n floating.setAttribute('tabindex', '-1');\n }\n };\n handleMutation();\n const observer = new MutationObserver(handleMutation);\n observer.observe(floating, {\n childList: true,\n subtree: true,\n attributes: true\n });\n return () => {\n observer.disconnect();\n };\n }\n }, [disabled, floating, refs, orderRef, getTabbableContent, ignoreInitialFocus]);\n function renderDismissButton(location) {\n if (disabled || !visuallyHiddenDismiss || !modal) {\n return null;\n }\n return /*#__PURE__*/React.createElement(VisuallyHiddenDismiss, {\n ref: location === 'start' ? startDismissButtonRef : endDismissButtonRef,\n onClick: event => onOpenChange(false, event.nativeEvent)\n }, typeof visuallyHiddenDismiss === 'string' ? visuallyHiddenDismiss : 'Dismiss');\n }\n const shouldRenderGuards = !disabled && guards && !isUntrappedTypeableCombobox && (isInsidePortal || modal);\n return /*#__PURE__*/React.createElement(React.Fragment, null, shouldRenderGuards && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"inside\",\n ref: portalContext == null ? void 0 : portalContext.beforeInsideRef,\n onFocus: event => {\n if (modal) {\n const els = getTabbableElements();\n enqueueFocus(order[0] === 'reference' ? els[0] : els[els.length - 1]);\n } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n preventReturnFocusRef.current = false;\n if (isOutsideEvent(event, portalContext.portalNode)) {\n const nextTabbable = getNextTabbable() || domReference;\n nextTabbable == null ? void 0 : nextTabbable.focus();\n } else {\n var _portalContext$before;\n (_portalContext$before = portalContext.beforeOutsideRef.current) == null ? void 0 : _portalContext$before.focus();\n }\n }\n }\n }), !isUntrappedTypeableCombobox && renderDismissButton('start'), children, renderDismissButton('end'), shouldRenderGuards && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"inside\",\n ref: portalContext == null ? void 0 : portalContext.afterInsideRef,\n onFocus: event => {\n if (modal) {\n enqueueFocus(getTabbableElements()[0]);\n } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n if (closeOnFocusOut) {\n preventReturnFocusRef.current = true;\n }\n if (isOutsideEvent(event, portalContext.portalNode)) {\n const prevTabbable = getPreviousTabbable() || domReference;\n prevTabbable == null ? void 0 : prevTabbable.focus();\n } else {\n var _portalContext$afterO;\n (_portalContext$afterO = portalContext.afterOutsideRef.current) == null ? void 0 : _portalContext$afterO.focus();\n }\n }\n }\n }));\n}\n\nconst activeLocks = /*#__PURE__*/new Set();\n\n/**\n * Provides base styling for a fixed overlay element to dim content or block\n * pointer events behind a floating element.\n * It's a regular `<div>`, so it can be styled via any CSS solution you prefer.\n * @see https://floating-ui.com/docs/FloatingOverlay\n */\nconst FloatingOverlay = /*#__PURE__*/React.forwardRef(function FloatingOverlay(_ref, ref) {\n let {\n lockScroll = false,\n ...rest\n } = _ref;\n const lockId = useId();\n index(() => {\n if (!lockScroll) return;\n activeLocks.add(lockId);\n const isIOS = /iP(hone|ad|od)|iOS/.test(getPlatform());\n const bodyStyle = document.body.style;\n // RTL <body> scrollbar\n const scrollbarX = Math.round(document.documentElement.getBoundingClientRect().left) + document.documentElement.scrollLeft;\n const paddingProp = scrollbarX ? 'paddingLeft' : 'paddingRight';\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n const scrollX = bodyStyle.left ? parseFloat(bodyStyle.left) : window.pageXOffset;\n const scrollY = bodyStyle.top ? parseFloat(bodyStyle.top) : window.pageYOffset;\n bodyStyle.overflow = 'hidden';\n if (scrollbarWidth) {\n bodyStyle[paddingProp] = scrollbarWidth + \"px\";\n }\n\n // Only iOS doesn't respect `overflow: hidden` on document.body, and this\n // technique has fewer side effects.\n if (isIOS) {\n var _window$visualViewpor, _window$visualViewpor2;\n // iOS 12 does not support `visualViewport`.\n const offsetLeft = ((_window$visualViewpor = window.visualViewport) == null ? void 0 : _window$visualViewpor.offsetLeft) || 0;\n const offsetTop = ((_window$visualViewpor2 = window.visualViewport) == null ? void 0 : _window$visualViewpor2.offsetTop) || 0;\n Object.assign(bodyStyle, {\n position: 'fixed',\n top: -(scrollY - Math.floor(offsetTop)) + \"px\",\n left: -(scrollX - Math.floor(offsetLeft)) + \"px\",\n right: '0'\n });\n }\n return () => {\n activeLocks.delete(lockId);\n if (activeLocks.size === 0) {\n Object.assign(bodyStyle, {\n overflow: '',\n [paddingProp]: ''\n });\n if (isIOS) {\n Object.assign(bodyStyle, {\n position: '',\n top: '',\n left: '',\n right: ''\n });\n window.scrollTo(scrollX, scrollY);\n }\n }\n };\n }, [lockId, lockScroll]);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref\n }, rest, {\n style: {\n position: 'fixed',\n overflow: 'auto',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...rest.style\n }\n }));\n});\n\nfunction isButtonTarget(event) {\n return isHTMLElement(event.target) && event.target.tagName === 'BUTTON';\n}\nfunction isSpaceIgnored(element) {\n return isTypeableElement(element);\n}\n/**\n * Opens or closes the floating element when clicking the reference element.\n * @see https://floating-ui.com/docs/useClick\n */\nfunction useClick(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n dataRef,\n elements: {\n domReference\n }\n } = context;\n const {\n enabled = true,\n event: eventOption = 'click',\n toggle = true,\n ignoreMouse = false,\n keyboardHandlers = true\n } = props;\n const pointerTypeRef = React.useRef();\n const didKeyDownRef = React.useRef(false);\n return React.useMemo(() => {\n if (!enabled) return {};\n return {\n reference: {\n onPointerDown(event) {\n pointerTypeRef.current = event.pointerType;\n },\n onMouseDown(event) {\n // Ignore all buttons except for the \"main\" button.\n // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button\n if (event.button !== 0) {\n return;\n }\n if (isMouseLikePointerType(pointerTypeRef.current, true) && ignoreMouse) {\n return;\n }\n if (eventOption === 'click') {\n return;\n }\n if (open && toggle && (dataRef.current.openEvent ? dataRef.current.openEvent.type === 'mousedown' : true)) {\n onOpenChange(false, event.nativeEvent);\n } else {\n // Prevent stealing focus from the floating element\n event.preventDefault();\n onOpenChange(true, event.nativeEvent);\n }\n },\n onClick(event) {\n if (eventOption === 'mousedown' && pointerTypeRef.current) {\n pointerTypeRef.current = undefined;\n return;\n }\n if (isMouseLikePointerType(pointerTypeRef.current, true) && ignoreMouse) {\n return;\n }\n if (open && toggle && (dataRef.current.openEvent ? dataRef.current.openEvent.type === 'click' : true)) {\n onOpenChange(false, event.nativeEvent);\n } else {\n onOpenChange(true, event.nativeEvent);\n }\n },\n onKeyDown(event) {\n pointerTypeRef.current = undefined;\n if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event)) {\n return;\n }\n if (event.key === ' ' && !isSpaceIgnored(domReference)) {\n // Prevent scrolling\n event.preventDefault();\n didKeyDownRef.current = true;\n }\n if (event.key === 'Enter') {\n if (open && toggle) {\n onOpenChange(false, event.nativeEvent);\n } else {\n onOpenChange(true, event.nativeEvent);\n }\n }\n },\n onKeyUp(event) {\n if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event) || isSpaceIgnored(domReference)) {\n return;\n }\n if (event.key === ' ' && didKeyDownRef.current) {\n didKeyDownRef.current = false;\n if (open && toggle) {\n onOpenChange(false, event.nativeEvent);\n } else {\n onOpenChange(true, event.nativeEvent);\n }\n }\n }\n }\n };\n }, [enabled, dataRef, eventOption, ignoreMouse, keyboardHandlers, domReference, toggle, open, onOpenChange]);\n}\n\n// `toString()` prevents bundlers from trying to `import { useInsertionEffect } from 'react'`\nconst useInsertionEffect = React[/*#__PURE__*/'useInsertionEffect'.toString()];\nconst useSafeInsertionEffect = useInsertionEffect || (fn => fn());\nfunction useEffectEvent(callback) {\n const ref = React.useRef(() => {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error('Cannot call an event handler while rendering.');\n }\n });\n useSafeInsertionEffect(() => {\n ref.current = callback;\n });\n return React.useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return ref.current == null ? void 0 : ref.current(...args);\n }, []);\n}\n\nfunction createVirtualElement(domRef, data) {\n let offsetX = null;\n let offsetY = null;\n let isAutoUpdateEvent = false;\n return {\n contextElement: domRef.current || undefined,\n getBoundingClientRect() {\n var _domRef$current, _data$dataRef$current;\n const domRect = ((_domRef$current = domRef.current) == null ? void 0 : _domRef$current.getBoundingClientRect()) || {\n width: 0,\n height: 0,\n x: 0,\n y: 0\n };\n const isXAxis = data.axis === 'x' || data.axis === 'both';\n const isYAxis = data.axis === 'y' || data.axis === 'both';\n const canTrackCursorOnAutoUpdate = ['mouseenter', 'mousemove'].includes(((_data$dataRef$current = data.dataRef.current.openEvent) == null ? void 0 : _data$dataRef$current.type) || '') && data.pointerType !== 'touch';\n let width = domRect.width;\n let height = domRect.height;\n let x = domRect.x;\n let y = domRect.y;\n if (offsetX == null && data.x && isXAxis) {\n offsetX = domRect.x - data.x;\n }\n if (offsetY == null && data.y && isYAxis) {\n offsetY = domRect.y - data.y;\n }\n x -= offsetX || 0;\n y -= offsetY || 0;\n width = 0;\n height = 0;\n if (!isAutoUpdateEvent || canTrackCursorOnAutoUpdate) {\n width = data.axis === 'y' ? domRect.width : 0;\n height = data.axis === 'x' ? domRect.height : 0;\n x = isXAxis && data.x != null ? data.x : x;\n y = isYAxis && data.y != null ? data.y : y;\n } else if (isAutoUpdateEvent && !canTrackCursorOnAutoUpdate) {\n height = data.axis === 'x' ? domRect.height : height;\n width = data.axis === 'y' ? domRect.width : width;\n }\n isAutoUpdateEvent = true;\n return {\n width,\n height,\n x,\n y,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x\n };\n }\n };\n}\nfunction isMouseBasedEvent(event) {\n return event != null && event.clientX != null;\n}\n/**\n * Positions the floating element relative to a client point (in the viewport),\n * such as the mouse position. By default, it follows the mouse cursor.\n * @see https://floating-ui.com/docs/useClientPoint\n */\nfunction useClientPoint(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n refs,\n dataRef,\n elements: {\n floating\n }\n } = context;\n const {\n enabled = true,\n axis = 'both',\n x = null,\n y = null\n } = props;\n const initialRef = React.useRef(false);\n const cleanupListenerRef = React.useRef(null);\n const [pointerType, setPointerType] = React.useState();\n const [reactive, setReactive] = React.useState([]);\n const setReference = useEffectEvent((x, y) => {\n if (initialRef.current) return;\n\n // Prevent setting if the open event was not a mouse-like one\n // (e.g. focus to open, then hover over the reference element).\n // Only apply if the event exists.\n if (dataRef.current.openEvent && !isMouseBasedEvent(dataRef.current.openEvent)) {\n return;\n }\n refs.setPositionReference(createVirtualElement(refs.domReference, {\n x,\n y,\n axis,\n dataRef,\n pointerType\n }));\n });\n const handleReferenceEnterOrMove = useEffectEvent(event => {\n if (x != null || y != null) return;\n if (!open) {\n setReference(event.clientX, event.clientY);\n } else if (!cleanupListenerRef.current) {\n // If there's no cleanup, there's no listener, but we want to ensure\n // we add the listener if the cursor landed on the floating element and\n // then back on the reference (i.e. it's interactive).\n setReactive([]);\n }\n });\n\n // If the pointer is a mouse-like pointer, we want to continue following the\n // mouse even if the floating element is transitioning out. On touch\n // devices, this is undesirable because the floating element will move to\n // the dismissal touch point.\n const openCheck = isMouseLikePointerType(pointerType) ? floating : open;\n const addListener = React.useCallback(() => {\n // Explicitly specified `x`/`y` coordinates shouldn't add a listener.\n if (!openCheck || !enabled || x != null || y != null) return;\n const win = getWindow(refs.floating.current);\n function handleMouseMove(event) {\n const target = getTarget(event);\n if (!contains(refs.floating.current, target)) {\n setReference(event.clientX, event.clientY);\n } else {\n win.removeEventListener('mousemove', handleMouseMove);\n cleanupListenerRef.current = null;\n }\n }\n if (!dataRef.current.openEvent || isMouseBasedEvent(dataRef.current.openEvent)) {\n win.addEventListener('mousemove', handleMouseMove);\n const cleanup = () => {\n win.removeEventListener('mousemove', handleMouseMove);\n cleanupListenerRef.current = null;\n };\n cleanupListenerRef.current = cleanup;\n return cleanup;\n }\n refs.setPositionReference(refs.domReference.current);\n }, [dataRef, enabled, openCheck, refs, setReference, x, y]);\n React.useEffect(() => {\n return addListener();\n }, [addListener, reactive]);\n React.useEffect(() => {\n if (enabled && !floating) {\n initialRef.current = false;\n }\n }, [enabled, floating]);\n React.useEffect(() => {\n if (!enabled && open) {\n initialRef.current = true;\n }\n }, [enabled, open]);\n index(() => {\n if (enabled && (x != null || y != null)) {\n initialRef.current = false;\n setReference(x, y);\n }\n }, [enabled, x, y, setReference]);\n return React.useMemo(() => {\n if (!enabled) return {};\n function setPointerTypeRef(_ref) {\n let {\n pointerType\n } = _ref;\n setPointerType(pointerType);\n }\n return {\n reference: {\n onPointerDown: setPointerTypeRef,\n onPointerEnter: setPointerTypeRef,\n onMouseMove: handleReferenceEnterOrMove,\n onMouseEnter: handleReferenceEnterOrMove\n }\n };\n }, [enabled, handleReferenceEnterOrMove]);\n}\n\nconst bubbleHandlerKeys = {\n pointerdown: 'onPointerDown',\n mousedown: 'onMouseDown',\n click: 'onClick'\n};\nconst captureHandlerKeys = {\n pointerdown: 'onPointerDownCapture',\n mousedown: 'onMouseDownCapture',\n click: 'onClickCapture'\n};\nconst normalizeBubblesProp = bubbles => {\n var _bubbles$escapeKey, _bubbles$outsidePress;\n return {\n escapeKeyBubbles: typeof bubbles === 'boolean' ? bubbles : (_bubbles$escapeKey = bubbles == null ? void 0 : bubbles.escapeKey) != null ? _bubbles$escapeKey : false,\n outsidePressBubbles: typeof bubbles === 'boolean' ? bubbles : (_bubbles$outsidePress = bubbles == null ? void 0 : bubbles.outsidePress) != null ? _bubbles$outsidePress : true\n };\n};\n/**\n * Closes the floating element when a dismissal is requested — by default, when\n * the user presses the `escape` key or outside of the floating element.\n * @see https://floating-ui.com/docs/useDismiss\n */\nfunction useDismiss(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n events,\n nodeId,\n elements: {\n reference,\n domReference,\n floating\n },\n dataRef\n } = context;\n const {\n enabled = true,\n escapeKey = true,\n outsidePress: unstable_outsidePress = true,\n outsidePressEvent = 'pointerdown',\n referencePress = false,\n referencePressEvent = 'pointerdown',\n ancestorScroll = false,\n bubbles\n } = props;\n const tree = useFloatingTree();\n const nested = useFloatingParentNodeId() != null;\n const outsidePressFn = useEffectEvent(typeof unstable_outsidePress === 'function' ? unstable_outsidePress : () => false);\n const outsidePress = typeof unstable_outsidePress === 'function' ? outsidePressFn : unstable_outsidePress;\n const insideReactTreeRef = React.useRef(false);\n const {\n escapeKeyBubbles,\n outsidePressBubbles\n } = normalizeBubblesProp(bubbles);\n const closeOnEscapeKeyDown = useEffectEvent(event => {\n if (!open || !enabled || !escapeKey || event.key !== 'Escape') {\n return;\n }\n const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n if (!escapeKeyBubbles) {\n event.stopPropagation();\n if (children.length > 0) {\n let shouldDismiss = true;\n children.forEach(child => {\n var _child$context;\n if ((_child$context = child.context) != null && _child$context.open && !child.context.dataRef.current.__escapeKeyBubbles) {\n shouldDismiss = false;\n return;\n }\n });\n if (!shouldDismiss) {\n return;\n }\n }\n }\n events.emit('dismiss', {\n type: 'escapeKey',\n data: {\n returnFocus: {\n preventScroll: false\n }\n }\n });\n onOpenChange(false, isReactEvent(event) ? event.nativeEvent : event);\n });\n const closeOnPressOutside = useEffectEvent(event => {\n // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n const insideReactTree = insideReactTreeRef.current;\n insideReactTreeRef.current = false;\n if (insideReactTree) {\n return;\n }\n if (typeof outsidePress === 'function' && !outsidePress(event)) {\n return;\n }\n const target = getTarget(event);\n const inertSelector = \"[\" + createAttribute('inert') + \"]\";\n const markers = getDocument(floating).querySelectorAll(inertSelector);\n let targetRootAncestor = isElement(target) ? target : null;\n while (targetRootAncestor && !isLastTraversableNode(targetRootAncestor)) {\n const nextParent = getParentNode(targetRootAncestor);\n if (nextParent === getDocument(floating).body || !isElement(nextParent)) {\n break;\n } else {\n targetRootAncestor = nextParent;\n }\n }\n\n // Check if the click occurred on a third-party element injected after the\n // floating element rendered.\n if (markers.length && isElement(target) && !isRootElement(target) &&\n // Clicked on a direct ancestor (e.g. FloatingOverlay).\n !contains(target, floating) &&\n // If the target root element contains none of the markers, then the\n // element was injected after the floating element rendered.\n Array.from(markers).every(marker => !contains(targetRootAncestor, marker))) {\n return;\n }\n\n // Check if the click occurred on the scrollbar\n if (isHTMLElement(target) && floating) {\n // In Firefox, `target.scrollWidth > target.clientWidth` for inline\n // elements.\n const canScrollX = target.clientWidth > 0 && target.scrollWidth > target.clientWidth;\n const canScrollY = target.clientHeight > 0 && target.scrollHeight > target.clientHeight;\n let xCond = canScrollY && event.offsetX > target.clientWidth;\n\n // In some browsers it is possible to change the <body> (or window)\n // scrollbar to the left side, but is very rare and is difficult to\n // check for. Plus, for modal dialogs with backdrops, it is more\n // important that the backdrop is checked but not so much the window.\n if (canScrollY) {\n const isRTL = getComputedStyle(target).direction === 'rtl';\n if (isRTL) {\n xCond = event.offsetX <= target.offsetWidth - target.clientWidth;\n }\n }\n if (xCond || canScrollX && event.offsetY > target.clientHeight) {\n return;\n }\n }\n const targetIsInsideChildren = tree && getChildren(tree.nodesRef.current, nodeId).some(node => {\n var _node$context;\n return isEventTargetWithin(event, (_node$context = node.context) == null ? void 0 : _node$context.elements.floating);\n });\n if (isEventTargetWithin(event, floating) || isEventTargetWithin(event, domReference) || targetIsInsideChildren) {\n return;\n }\n const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n if (children.length > 0) {\n let shouldDismiss = true;\n children.forEach(child => {\n var _child$context2;\n if ((_child$context2 = child.context) != null && _child$context2.open && !child.context.dataRef.current.__outsidePressBubbles) {\n shouldDismiss = false;\n return;\n }\n });\n if (!shouldDismiss) {\n return;\n }\n }\n events.emit('dismiss', {\n type: 'outsidePress',\n data: {\n returnFocus: nested ? {\n preventScroll: true\n } : isVirtualClick(event) || isVirtualPointerEvent(event)\n }\n });\n onOpenChange(false, event);\n });\n React.useEffect(() => {\n if (!open || !enabled) {\n return;\n }\n dataRef.current.__escapeKeyBubbles = escapeKeyBubbles;\n dataRef.current.__outsidePressBubbles = outsidePressBubbles;\n function onScroll(event) {\n onOpenChange(false, event);\n }\n const doc = getDocument(floating);\n escapeKey && doc.addEventListener('keydown', closeOnEscapeKeyDown);\n outsidePress && doc.addEventListener(outsidePressEvent, closeOnPressOutside);\n let ancestors = [];\n if (ancestorScroll) {\n if (isElement(domReference)) {\n ancestors = getOverflowAncestors(domReference);\n }\n if (isElement(floating)) {\n ancestors = ancestors.concat(getOverflowAncestors(floating));\n }\n if (!isElement(reference) && reference && reference.contextElement) {\n ancestors = ancestors.concat(getOverflowAncestors(reference.contextElement));\n }\n }\n\n // Ignore the visual viewport for scrolling dismissal (allow pinch-zoom)\n ancestors = ancestors.filter(ancestor => {\n var _doc$defaultView;\n return ancestor !== ((_doc$defaultView = doc.defaultView) == null ? void 0 : _doc$defaultView.visualViewport);\n });\n ancestors.forEach(ancestor => {\n ancestor.addEventListener('scroll', onScroll, {\n passive: true\n });\n });\n return () => {\n escapeKey && doc.removeEventListener('keydown', closeOnEscapeKeyDown);\n outsidePress && doc.removeEventListener(outsidePressEvent, closeOnPressOutside);\n ancestors.forEach(ancestor => {\n ancestor.removeEventListener('scroll', onScroll);\n });\n };\n }, [dataRef, floating, domReference, reference, escapeKey, outsidePress, outsidePressEvent, open, onOpenChange, ancestorScroll, enabled, escapeKeyBubbles, outsidePressBubbles, closeOnEscapeKeyDown, closeOnPressOutside]);\n React.useEffect(() => {\n insideReactTreeRef.current = false;\n }, [outsidePress, outsidePressEvent]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n reference: {\n onKeyDown: closeOnEscapeKeyDown,\n [bubbleHandlerKeys[referencePressEvent]]: event => {\n if (referencePress) {\n events.emit('dismiss', {\n type: 'referencePress',\n data: {\n returnFocus: false\n }\n });\n onOpenChange(false, event.nativeEvent);\n }\n }\n },\n floating: {\n onKeyDown: closeOnEscapeKeyDown,\n [captureHandlerKeys[outsidePressEvent]]: () => {\n insideReactTreeRef.current = true;\n }\n }\n };\n }, [enabled, events, referencePress, outsidePressEvent, referencePressEvent, onOpenChange, closeOnEscapeKeyDown]);\n}\n\nlet devMessageSet;\nif (process.env.NODE_ENV !== \"production\") {\n devMessageSet = /*#__PURE__*/new Set();\n}\n\n/**\n * Provides data to position a floating element and context to add interactions.\n * @see https://floating-ui.com/docs/react\n */\nfunction useFloating(options) {\n var _options$elements2;\n if (options === void 0) {\n options = {};\n }\n const {\n open = false,\n onOpenChange: unstable_onOpenChange,\n nodeId\n } = options;\n if (process.env.NODE_ENV !== \"production\") {\n var _options$elements;\n const err = 'Floating UI: Cannot pass a virtual element to the ' + '`elements.reference` option, as it must be a real DOM element. ' + 'Use `refs.setPositionReference` instead.';\n if ((_options$elements = options.elements) != null && _options$elements.reference && !isElement(options.elements.reference)) {\n var _devMessageSet;\n if (!((_devMessageSet = devMessageSet) != null && _devMessageSet.has(err))) {\n var _devMessageSet2;\n (_devMessageSet2 = devMessageSet) == null ? void 0 : _devMessageSet2.add(err);\n console.error(err);\n }\n }\n }\n const [_domReference, setDomReference] = React.useState(null);\n const domReference = ((_options$elements2 = options.elements) == null ? void 0 : _options$elements2.reference) || _domReference;\n const position = useFloating$1(options);\n const tree = useFloatingTree();\n const onOpenChange = useEffectEvent((open, event) => {\n if (open) {\n dataRef.current.openEvent = event;\n }\n unstable_onOpenChange == null ? void 0 : unstable_onOpenChange(open, event);\n });\n const domReferenceRef = React.useRef(null);\n const dataRef = React.useRef({});\n const events = React.useState(() => createPubSub())[0];\n const floatingId = useId();\n const setPositionReference = React.useCallback(node => {\n const positionReference = isElement(node) ? {\n getBoundingClientRect: () => node.getBoundingClientRect(),\n contextElement: node\n } : node;\n position.refs.setReference(positionReference);\n }, [position.refs]);\n const setReference = React.useCallback(node => {\n if (isElement(node) || node === null) {\n domReferenceRef.current = node;\n setDomReference(node);\n }\n\n // Backwards-compatibility for passing a virtual element to `reference`\n // after it has set the DOM reference.\n if (isElement(position.refs.reference.current) || position.refs.reference.current === null ||\n // Don't allow setting virtual elements using the old technique back to\n // `null` to support `positionReference` + an unstable `reference`\n // callback ref.\n node !== null && !isElement(node)) {\n position.refs.setReference(node);\n }\n }, [position.refs]);\n const refs = React.useMemo(() => ({\n ...position.refs,\n setReference,\n setPositionReference,\n domReference: domReferenceRef\n }), [position.refs, setReference, setPositionReference]);\n const elements = React.useMemo(() => ({\n ...position.elements,\n domReference: domReference\n }), [position.elements, domReference]);\n const context = React.useMemo(() => ({\n ...position,\n refs,\n elements,\n dataRef,\n nodeId,\n floatingId,\n events,\n open,\n onOpenChange\n }), [position, nodeId, floatingId, events, open, onOpenChange, refs, elements]);\n index(() => {\n const node = tree == null ? void 0 : tree.nodesRef.current.find(node => node.id === nodeId);\n if (node) {\n node.context = context;\n }\n });\n return React.useMemo(() => ({\n ...position,\n context,\n refs,\n elements\n }), [position, refs, elements, context]);\n}\n\n/**\n * Opens the floating element while the reference element has focus, like CSS\n * `:focus`.\n * @see https://floating-ui.com/docs/useFocus\n */\nfunction useFocus(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n dataRef,\n events,\n refs,\n elements: {\n floating,\n domReference\n }\n } = context;\n const {\n enabled = true,\n keyboardOnly = true\n } = props;\n const pointerTypeRef = React.useRef('');\n const blockFocusRef = React.useRef(false);\n const timeoutRef = React.useRef();\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n const doc = getDocument(floating);\n const win = doc.defaultView || window;\n\n // If the reference was focused and the user left the tab/window, and the\n // floating element was not open, the focus should be blocked when they\n // return to the tab/window.\n function onBlur() {\n if (!open && isHTMLElement(domReference) && domReference === activeElement(getDocument(domReference))) {\n blockFocusRef.current = true;\n }\n }\n win.addEventListener('blur', onBlur);\n return () => {\n win.removeEventListener('blur', onBlur);\n };\n }, [floating, domReference, open, enabled]);\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function onDismiss(payload) {\n if (payload.type === 'referencePress' || payload.type === 'escapeKey') {\n blockFocusRef.current = true;\n }\n }\n events.on('dismiss', onDismiss);\n return () => {\n events.off('dismiss', onDismiss);\n };\n }, [events, enabled]);\n React.useEffect(() => {\n return () => {\n clearTimeout(timeoutRef.current);\n };\n }, []);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n reference: {\n onPointerDown(_ref) {\n let {\n pointerType\n } = _ref;\n pointerTypeRef.current = pointerType;\n blockFocusRef.current = !!(pointerType && keyboardOnly);\n },\n onMouseLeave() {\n blockFocusRef.current = false;\n },\n onFocus(event) {\n var _dataRef$current$open;\n if (blockFocusRef.current) {\n return;\n }\n\n // Dismiss with click should ignore the subsequent `focus` trigger,\n // but only if the click originated inside the reference element.\n if (event.type === 'focus' && ((_dataRef$current$open = dataRef.current.openEvent) == null ? void 0 : _dataRef$current$open.type) === 'mousedown' && isEventTargetWithin(dataRef.current.openEvent, domReference)) {\n return;\n }\n onOpenChange(true, event.nativeEvent);\n },\n onBlur(event) {\n blockFocusRef.current = false;\n const relatedTarget = event.relatedTarget;\n\n // Hit the non-modal focus management portal guard. Focus will be\n // moved into the floating element immediately after.\n const movedToFocusGuard = isElement(relatedTarget) && relatedTarget.hasAttribute(createAttribute('focus-guard')) && relatedTarget.getAttribute('data-type') === 'outside';\n\n // Wait for the window blur listener to fire.\n timeoutRef.current = setTimeout(() => {\n // When focusing the reference element (e.g. regular click), then\n // clicking into the floating element, prevent it from hiding.\n // Note: it must be focusable, e.g. `tabindex=\"-1\"`.\n if (contains(refs.floating.current, relatedTarget) || contains(domReference, relatedTarget) || movedToFocusGuard) {\n return;\n }\n onOpenChange(false, event.nativeEvent);\n });\n }\n }\n };\n }, [enabled, keyboardOnly, domReference, refs, dataRef, onOpenChange]);\n}\n\nfunction mergeProps(userProps, propsList, elementKey) {\n const map = new Map();\n return {\n ...(elementKey === 'floating' && {\n tabIndex: -1\n }),\n ...userProps,\n ...propsList.map(value => value ? value[elementKey] : null).concat(userProps).reduce((acc, props) => {\n if (!props) {\n return acc;\n }\n Object.entries(props).forEach(_ref => {\n let [key, value] = _ref;\n if (key.indexOf('on') === 0) {\n if (!map.has(key)) {\n map.set(key, []);\n }\n if (typeof value === 'function') {\n var _map$get;\n (_map$get = map.get(key)) == null ? void 0 : _map$get.push(value);\n acc[key] = function () {\n var _map$get2;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_map$get2 = map.get(key)) == null ? void 0 : _map$get2.map(fn => fn(...args)).find(val => val !== undefined);\n };\n }\n } else {\n acc[key] = value;\n }\n });\n return acc;\n }, {})\n };\n}\n\n/**\n * Merges an array of interaction hooks' props into prop getters, allowing\n * event handler functions to be composed together without overwriting one\n * another.\n * @see https://floating-ui.com/docs/react#interaction-hooks\n */\nfunction useInteractions(propsList) {\n if (propsList === void 0) {\n propsList = [];\n }\n // The dependencies are a dynamic array, so we can't use the linter's\n // suggestion to add it to the deps array.\n const deps = propsList;\n const getReferenceProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'reference'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n deps);\n const getFloatingProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'floating'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n deps);\n const getItemProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'item'),\n // Granularly check for `item` changes, because the `getItemProps` getter\n // should be as referentially stable as possible since it may be passed as\n // a prop to many components. All `item` key values must therefore be\n // memoized.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n propsList.map(key => key == null ? void 0 : key.item));\n return React.useMemo(() => ({\n getReferenceProps,\n getFloatingProps,\n getItemProps\n }), [getReferenceProps, getFloatingProps, getItemProps]);\n}\n\nlet isPreventScrollSupported = false;\nfunction doSwitch(orientation, vertical, horizontal) {\n switch (orientation) {\n case 'vertical':\n return vertical;\n case 'horizontal':\n return horizontal;\n default:\n return vertical || horizontal;\n }\n}\nfunction isMainOrientationKey(key, orientation) {\n const vertical = key === ARROW_UP || key === ARROW_DOWN;\n const horizontal = key === ARROW_LEFT || key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isMainOrientationToEndKey(key, orientation, rtl) {\n const vertical = key === ARROW_DOWN;\n const horizontal = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal) || key === 'Enter' || key == ' ' || key === '';\n}\nfunction isCrossOrientationOpenKey(key, orientation, rtl) {\n const vertical = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n const horizontal = key === ARROW_DOWN;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isCrossOrientationCloseKey(key, orientation, rtl) {\n const vertical = rtl ? key === ARROW_RIGHT : key === ARROW_LEFT;\n const horizontal = key === ARROW_UP;\n return doSwitch(orientation, vertical, horizontal);\n}\n/**\n * Adds arrow key-based navigation of a list of items, either using real DOM\n * focus or virtual focus.\n * @see https://floating-ui.com/docs/useListNavigation\n */\nfunction useListNavigation(context, props) {\n const {\n open,\n onOpenChange,\n refs,\n elements: {\n domReference,\n floating\n }\n } = context;\n const {\n listRef,\n activeIndex,\n onNavigate: unstable_onNavigate = () => {},\n enabled = true,\n selectedIndex = null,\n allowEscape = false,\n loop = false,\n nested = false,\n rtl = false,\n virtual = false,\n focusItemOnOpen = 'auto',\n focusItemOnHover = true,\n openOnArrowKeyDown = true,\n disabledIndices = undefined,\n orientation = 'vertical',\n cols = 1,\n scrollItemIntoView = true,\n virtualItemRef\n } = props;\n if (process.env.NODE_ENV !== \"production\") {\n if (allowEscape) {\n if (!loop) {\n console.warn(['Floating UI: `useListNavigation` looping must be enabled to allow', 'escaping.'].join(' '));\n }\n if (!virtual) {\n console.warn(['Floating UI: `useListNavigation` must be virtual to allow', 'escaping.'].join(' '));\n }\n }\n if (orientation === 'vertical' && cols > 1) {\n console.warn(['Floating UI: In grid list navigation mode (`cols` > 1), the', '`orientation` should be either \"horizontal\" or \"both\".'].join(' '));\n }\n }\n const parentId = useFloatingParentNodeId();\n const tree = useFloatingTree();\n const onNavigate = useEffectEvent(unstable_onNavigate);\n const focusItemOnOpenRef = React.useRef(focusItemOnOpen);\n const indexRef = React.useRef(selectedIndex != null ? selectedIndex : -1);\n const keyRef = React.useRef(null);\n const isPointerModalityRef = React.useRef(true);\n const previousOnNavigateRef = React.useRef(onNavigate);\n const previousMountedRef = React.useRef(!!floating);\n const forceSyncFocus = React.useRef(false);\n const forceScrollIntoViewRef = React.useRef(false);\n const disabledIndicesRef = useLatestRef(disabledIndices);\n const latestOpenRef = useLatestRef(open);\n const scrollItemIntoViewRef = useLatestRef(scrollItemIntoView);\n const [activeId, setActiveId] = React.useState();\n const [virtualId, setVirtualId] = React.useState();\n const focusItem = useEffectEvent(function (listRef, indexRef, forceScrollIntoView) {\n if (forceScrollIntoView === void 0) {\n forceScrollIntoView = false;\n }\n const item = listRef.current[indexRef.current];\n if (!item) return;\n if (virtual) {\n setActiveId(item.id);\n tree == null ? void 0 : tree.events.emit('virtualfocus', item);\n if (virtualItemRef) {\n virtualItemRef.current = item;\n }\n } else {\n enqueueFocus(item, {\n preventScroll: true,\n // Mac Safari does not move the virtual cursor unless the focus call\n // is sync. However, for the very first focus call, we need to wait\n // for the position to be ready in order to prevent unwanted\n // scrolling. This means the virtual cursor will not move to the first\n // item when first opening the floating element, but will on\n // subsequent calls. `preventScroll` is supported in modern Safari,\n // so we can use that instead.\n // iOS Safari must be async or the first item will not be focused.\n sync: isMac() && isSafari() ? isPreventScrollSupported || forceSyncFocus.current : false\n });\n }\n requestAnimationFrame(() => {\n const scrollIntoViewOptions = scrollItemIntoViewRef.current;\n const shouldScrollIntoView = scrollIntoViewOptions && item && (forceScrollIntoView || !isPointerModalityRef.current);\n if (shouldScrollIntoView) {\n // JSDOM doesn't support `.scrollIntoView()` but it's widely supported\n // by all browsers.\n item.scrollIntoView == null ? void 0 : item.scrollIntoView(typeof scrollIntoViewOptions === 'boolean' ? {\n block: 'nearest',\n inline: 'nearest'\n } : scrollIntoViewOptions);\n }\n });\n });\n index(() => {\n document.createElement('div').focus({\n get preventScroll() {\n isPreventScrollSupported = true;\n return false;\n }\n });\n }, []);\n\n // Sync `selectedIndex` to be the `activeIndex` upon opening the floating\n // element. Also, reset `activeIndex` upon closing the floating element.\n index(() => {\n if (!enabled) {\n return;\n }\n if (open && floating) {\n if (focusItemOnOpenRef.current && selectedIndex != null) {\n // Regardless of the pointer modality, we want to ensure the selected\n // item comes into view when the floating element is opened.\n forceScrollIntoViewRef.current = true;\n onNavigate(selectedIndex);\n }\n } else if (previousMountedRef.current) {\n // Since the user can specify `onNavigate` conditionally\n // (onNavigate: open ? setActiveIndex : setSelectedIndex),\n // we store and call the previous function.\n indexRef.current = -1;\n previousOnNavigateRef.current(null);\n }\n }, [enabled, open, floating, selectedIndex, onNavigate]);\n\n // Sync `activeIndex` to be the focused item while the floating element is\n // open.\n index(() => {\n if (!enabled) {\n return;\n }\n if (open && floating) {\n if (activeIndex == null) {\n forceSyncFocus.current = false;\n if (selectedIndex != null) {\n return;\n }\n\n // Reset while the floating element was open (e.g. the list changed).\n if (previousMountedRef.current) {\n indexRef.current = -1;\n focusItem(listRef, indexRef);\n }\n\n // Initial sync.\n if (!previousMountedRef.current && focusItemOnOpenRef.current && (keyRef.current != null || focusItemOnOpenRef.current === true && keyRef.current == null)) {\n let runs = 0;\n const waitForListPopulated = () => {\n if (listRef.current[0] == null) {\n // Avoid letting the browser paint if possible on the first try,\n // otherwise use rAF. Don't try more than twice, since something\n // is wrong otherwise.\n if (runs < 2) {\n const scheduler = runs ? requestAnimationFrame : queueMicrotask;\n scheduler(waitForListPopulated);\n }\n runs++;\n } else {\n indexRef.current = keyRef.current == null || isMainOrientationToEndKey(keyRef.current, orientation, rtl) || nested ? getMinIndex(listRef, disabledIndicesRef.current) : getMaxIndex(listRef, disabledIndicesRef.current);\n keyRef.current = null;\n onNavigate(indexRef.current);\n }\n };\n waitForListPopulated();\n }\n } else if (!isIndexOutOfBounds(listRef, activeIndex)) {\n indexRef.current = activeIndex;\n focusItem(listRef, indexRef, forceScrollIntoViewRef.current);\n forceScrollIntoViewRef.current = false;\n }\n }\n }, [enabled, open, floating, activeIndex, selectedIndex, nested, listRef, orientation, rtl, onNavigate, focusItem, disabledIndicesRef]);\n\n // Ensure the parent floating element has focus when a nested child closes\n // to allow arrow key navigation to work after the pointer leaves the child.\n index(() => {\n var _nodes$find, _nodes$find$context;\n if (!enabled || floating || !tree || virtual || !previousMountedRef.current) {\n return;\n }\n const nodes = tree.nodesRef.current;\n const parent = (_nodes$find = nodes.find(node => node.id === parentId)) == null ? void 0 : (_nodes$find$context = _nodes$find.context) == null ? void 0 : _nodes$find$context.elements.floating;\n const activeEl = activeElement(getDocument(floating));\n const treeContainsActiveEl = nodes.some(node => node.context && contains(node.context.elements.floating, activeEl));\n if (parent && !treeContainsActiveEl && isPointerModalityRef.current) {\n parent.focus({\n preventScroll: true\n });\n }\n }, [enabled, floating, tree, parentId, virtual]);\n index(() => {\n if (!enabled || !tree || !virtual || parentId) return;\n function handleVirtualFocus(item) {\n setVirtualId(item.id);\n if (virtualItemRef) {\n virtualItemRef.current = item;\n }\n }\n tree.events.on('virtualfocus', handleVirtualFocus);\n return () => {\n tree.events.off('virtualfocus', handleVirtualFocus);\n };\n }, [enabled, tree, virtual, parentId, virtualItemRef]);\n index(() => {\n previousOnNavigateRef.current = onNavigate;\n previousMountedRef.current = !!floating;\n });\n index(() => {\n if (!open) {\n keyRef.current = null;\n }\n }, [open]);\n const hasActiveIndex = activeIndex != null;\n const item = React.useMemo(() => {\n function syncCurrentTarget(currentTarget) {\n if (!open) return;\n const index = listRef.current.indexOf(currentTarget);\n if (index !== -1) {\n onNavigate(index);\n }\n }\n const props = {\n onFocus(_ref) {\n let {\n currentTarget\n } = _ref;\n syncCurrentTarget(currentTarget);\n },\n onClick: _ref2 => {\n let {\n currentTarget\n } = _ref2;\n return currentTarget.focus({\n preventScroll: true\n });\n },\n // Safari\n ...(focusItemOnHover && {\n onMouseMove(_ref3) {\n let {\n currentTarget\n } = _ref3;\n syncCurrentTarget(currentTarget);\n },\n onPointerLeave(_ref4) {\n let {\n pointerType\n } = _ref4;\n if (!isPointerModalityRef.current || pointerType === 'touch') {\n return;\n }\n indexRef.current = -1;\n focusItem(listRef, indexRef);\n onNavigate(null);\n if (!virtual) {\n enqueueFocus(refs.floating.current, {\n preventScroll: true\n });\n }\n }\n })\n };\n return props;\n }, [open, refs, focusItem, focusItemOnHover, listRef, onNavigate, virtual]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n const disabledIndices = disabledIndicesRef.current;\n function onKeyDown(event) {\n isPointerModalityRef.current = false;\n forceSyncFocus.current = true;\n\n // If the floating element is animating out, ignore navigation. Otherwise,\n // the `activeIndex` gets set to 0 despite not being open so the next time\n // the user ArrowDowns, the first item won't be focused.\n if (!latestOpenRef.current && event.currentTarget === refs.floating.current) {\n return;\n }\n if (nested && isCrossOrientationCloseKey(event.key, orientation, rtl)) {\n stopEvent(event);\n onOpenChange(false, event.nativeEvent);\n if (isHTMLElement(domReference) && !virtual) {\n domReference.focus();\n }\n return;\n }\n const currentIndex = indexRef.current;\n const minIndex = getMinIndex(listRef, disabledIndices);\n const maxIndex = getMaxIndex(listRef, disabledIndices);\n if (event.key === 'Home') {\n stopEvent(event);\n indexRef.current = minIndex;\n onNavigate(indexRef.current);\n }\n if (event.key === 'End') {\n stopEvent(event);\n indexRef.current = maxIndex;\n onNavigate(indexRef.current);\n }\n\n // Grid navigation.\n if (cols > 1) {\n indexRef.current = getGridNavigatedIndex(listRef, {\n event,\n orientation,\n loop,\n cols,\n disabledIndices,\n minIndex,\n maxIndex,\n prevIndex: indexRef.current,\n stopEvent: true\n });\n onNavigate(indexRef.current);\n if (orientation === 'both') {\n return;\n }\n }\n if (isMainOrientationKey(event.key, orientation)) {\n stopEvent(event);\n\n // Reset the index if no item is focused.\n if (open && !virtual && activeElement(event.currentTarget.ownerDocument) === event.currentTarget) {\n indexRef.current = isMainOrientationToEndKey(event.key, orientation, rtl) ? minIndex : maxIndex;\n onNavigate(indexRef.current);\n return;\n }\n if (isMainOrientationToEndKey(event.key, orientation, rtl)) {\n if (loop) {\n indexRef.current = currentIndex >= maxIndex ? allowEscape && currentIndex !== listRef.current.length ? -1 : minIndex : findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n });\n } else {\n indexRef.current = Math.min(maxIndex, findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n }));\n }\n } else {\n if (loop) {\n indexRef.current = currentIndex <= minIndex ? allowEscape && currentIndex !== -1 ? listRef.current.length : maxIndex : findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n });\n } else {\n indexRef.current = Math.max(minIndex, findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n }));\n }\n }\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n onNavigate(null);\n } else {\n onNavigate(indexRef.current);\n }\n }\n }\n function checkVirtualMouse(event) {\n if (focusItemOnOpen === 'auto' && isVirtualClick(event.nativeEvent)) {\n focusItemOnOpenRef.current = true;\n }\n }\n function checkVirtualPointer(event) {\n // `pointerdown` fires first, reset the state then perform the checks.\n focusItemOnOpenRef.current = focusItemOnOpen;\n if (focusItemOnOpen === 'auto' && isVirtualPointerEvent(event.nativeEvent)) {\n focusItemOnOpenRef.current = true;\n }\n }\n const ariaActiveDescendantProp = virtual && open && hasActiveIndex && {\n 'aria-activedescendant': virtualId || activeId\n };\n const activeItem = listRef.current.find(item => (item == null ? void 0 : item.id) === activeId);\n return {\n reference: {\n ...ariaActiveDescendantProp,\n onKeyDown(event) {\n isPointerModalityRef.current = false;\n const isArrowKey = event.key.indexOf('Arrow') === 0;\n const isCrossOpenKey = isCrossOrientationOpenKey(event.key, orientation, rtl);\n const isCrossCloseKey = isCrossOrientationCloseKey(event.key, orientation, rtl);\n const isMainKey = isMainOrientationKey(event.key, orientation);\n const isNavigationKey = (nested ? isCrossOpenKey : isMainKey) || event.key === 'Enter' || event.key.trim() === '';\n if (virtual && open) {\n const rootNode = tree == null ? void 0 : tree.nodesRef.current.find(node => node.parentId == null);\n const deepestNode = tree && rootNode ? getDeepestNode(tree.nodesRef.current, rootNode.id) : null;\n if (isArrowKey && deepestNode && virtualItemRef) {\n const eventObject = new KeyboardEvent('keydown', {\n key: event.key,\n bubbles: true\n });\n if (isCrossOpenKey || isCrossCloseKey) {\n var _deepestNode$context, _deepestNode$context2;\n const isCurrentTarget = ((_deepestNode$context = deepestNode.context) == null ? void 0 : _deepestNode$context.elements.domReference) === event.currentTarget;\n const dispatchItem = isCrossCloseKey && !isCurrentTarget ? (_deepestNode$context2 = deepestNode.context) == null ? void 0 : _deepestNode$context2.elements.domReference : isCrossOpenKey ? activeItem : null;\n if (dispatchItem) {\n stopEvent(event);\n dispatchItem.dispatchEvent(eventObject);\n setVirtualId(undefined);\n }\n }\n if (isMainKey && deepestNode.context) {\n if (deepestNode.context.open && deepestNode.parentId && event.currentTarget !== deepestNode.context.elements.domReference) {\n var _deepestNode$context$;\n stopEvent(event);\n (_deepestNode$context$ = deepestNode.context.elements.domReference) == null ? void 0 : _deepestNode$context$.dispatchEvent(eventObject);\n return;\n }\n }\n }\n return onKeyDown(event);\n }\n\n // If a floating element should not open on arrow key down, avoid\n // setting `activeIndex` while it's closed.\n if (!open && !openOnArrowKeyDown && isArrowKey) {\n return;\n }\n if (isNavigationKey) {\n keyRef.current = nested && isMainKey ? null : event.key;\n }\n if (nested) {\n if (isCrossOpenKey) {\n stopEvent(event);\n if (open) {\n indexRef.current = getMinIndex(listRef, disabledIndices);\n onNavigate(indexRef.current);\n } else {\n onOpenChange(true, event.nativeEvent);\n }\n }\n return;\n }\n if (isMainKey) {\n if (selectedIndex != null) {\n indexRef.current = selectedIndex;\n }\n stopEvent(event);\n if (!open && openOnArrowKeyDown) {\n onOpenChange(true, event.nativeEvent);\n } else {\n onKeyDown(event);\n }\n if (open) {\n onNavigate(indexRef.current);\n }\n }\n },\n onFocus() {\n if (open) {\n onNavigate(null);\n }\n },\n onPointerDown: checkVirtualPointer,\n onMouseDown: checkVirtualMouse,\n onClick: checkVirtualMouse\n },\n floating: {\n 'aria-orientation': orientation === 'both' ? undefined : orientation,\n ...ariaActiveDescendantProp,\n onKeyDown,\n onPointerMove() {\n isPointerModalityRef.current = true;\n }\n },\n item\n };\n }, [domReference, refs, activeId, virtualId, disabledIndicesRef, latestOpenRef, listRef, enabled, orientation, rtl, virtual, open, hasActiveIndex, nested, selectedIndex, openOnArrowKeyDown, allowEscape, cols, loop, focusItemOnOpen, onNavigate, onOpenChange, item, tree, virtualItemRef]);\n}\n\n/**\n * Adds base screen reader props to the reference and floating elements for a\n * given floating element `role`.\n * @see https://floating-ui.com/docs/useRole\n */\nfunction useRole(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n floatingId\n } = context;\n const {\n enabled = true,\n role = 'dialog'\n } = props;\n const referenceId = useId();\n return React.useMemo(() => {\n const floatingProps = {\n id: floatingId,\n role\n };\n if (!enabled) {\n return {};\n }\n if (role === 'tooltip') {\n return {\n reference: {\n 'aria-describedby': open ? floatingId : undefined\n },\n floating: floatingProps\n };\n }\n return {\n reference: {\n 'aria-expanded': open ? 'true' : 'false',\n 'aria-haspopup': role === 'alertdialog' ? 'dialog' : role,\n 'aria-controls': open ? floatingId : undefined,\n ...(role === 'listbox' && {\n role: 'combobox'\n }),\n ...(role === 'menu' && {\n id: referenceId\n })\n },\n floating: {\n ...floatingProps,\n ...(role === 'menu' && {\n 'aria-labelledby': referenceId\n })\n }\n };\n }, [enabled, role, open, floatingId, referenceId]);\n}\n\n// Converts a JS style key like `backgroundColor` to a CSS transition-property\n// like `background-color`.\nconst camelCaseToKebabCase = str => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? '-' : '') + $.toLowerCase());\nfunction execWithArgsOrReturn(valueOrFn, args) {\n return typeof valueOrFn === 'function' ? valueOrFn(args) : valueOrFn;\n}\nfunction useDelayUnmount(open, durationMs) {\n const [isMounted, setIsMounted] = React.useState(open);\n if (open && !isMounted) {\n setIsMounted(true);\n }\n React.useEffect(() => {\n if (!open) {\n const timeout = setTimeout(() => setIsMounted(false), durationMs);\n return () => clearTimeout(timeout);\n }\n }, [open, durationMs]);\n return isMounted;\n}\n/**\n * Provides a status string to apply CSS transitions to a floating element,\n * correctly handling placement-aware transitions.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstatus\n */\nfunction useTransitionStatus(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n elements: {\n floating\n }\n } = context;\n const {\n duration = 250\n } = props;\n const isNumberDuration = typeof duration === 'number';\n const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n const [initiated, setInitiated] = React.useState(false);\n const [status, setStatus] = React.useState('unmounted');\n const isMounted = useDelayUnmount(open, closeDuration);\n\n // `initiated` check prevents this `setState` call from breaking\n // <FloatingPortal />. This call is necessary to ensure subsequent opens\n // after the initial one allows the correct side animation to play when the\n // placement has changed.\n index(() => {\n if (initiated && !isMounted) {\n setStatus('unmounted');\n }\n }, [initiated, isMounted]);\n index(() => {\n if (!floating) return;\n if (open) {\n setStatus('initial');\n const frame = requestAnimationFrame(() => {\n setStatus('open');\n });\n return () => {\n cancelAnimationFrame(frame);\n };\n } else {\n setInitiated(true);\n setStatus('close');\n }\n }, [open, floating]);\n return {\n isMounted,\n status\n };\n}\n/**\n * Provides styles to apply CSS transitions to a floating element, correctly\n * handling placement-aware transitions. Wrapper around `useTransitionStatus`.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstyles\n */\nfunction useTransitionStyles(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n initial: unstable_initial = {\n opacity: 0\n },\n open: unstable_open,\n close: unstable_close,\n common: unstable_common,\n duration = 250\n } = props;\n const placement = context.placement;\n const side = placement.split('-')[0];\n const fnArgs = React.useMemo(() => ({\n side,\n placement\n }), [side, placement]);\n const isNumberDuration = typeof duration === 'number';\n const openDuration = (isNumberDuration ? duration : duration.open) || 0;\n const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n const [styles, setStyles] = React.useState(() => ({\n ...execWithArgsOrReturn(unstable_common, fnArgs),\n ...execWithArgsOrReturn(unstable_initial, fnArgs)\n }));\n const {\n isMounted,\n status\n } = useTransitionStatus(context, {\n duration\n });\n const initialRef = useLatestRef(unstable_initial);\n const openRef = useLatestRef(unstable_open);\n const closeRef = useLatestRef(unstable_close);\n const commonRef = useLatestRef(unstable_common);\n index(() => {\n const initialStyles = execWithArgsOrReturn(initialRef.current, fnArgs);\n const closeStyles = execWithArgsOrReturn(closeRef.current, fnArgs);\n const commonStyles = execWithArgsOrReturn(commonRef.current, fnArgs);\n const openStyles = execWithArgsOrReturn(openRef.current, fnArgs) || Object.keys(initialStyles).reduce((acc, key) => {\n acc[key] = '';\n return acc;\n }, {});\n if (status === 'initial') {\n setStyles(styles => ({\n transitionProperty: styles.transitionProperty,\n ...commonStyles,\n ...initialStyles\n }));\n }\n if (status === 'open') {\n setStyles({\n transitionProperty: Object.keys(openStyles).map(camelCaseToKebabCase).join(','),\n transitionDuration: openDuration + \"ms\",\n ...commonStyles,\n ...openStyles\n });\n }\n if (status === 'close') {\n const styles = closeStyles || initialStyles;\n setStyles({\n transitionProperty: Object.keys(styles).map(camelCaseToKebabCase).join(','),\n transitionDuration: closeDuration + \"ms\",\n ...commonStyles,\n ...styles\n });\n }\n }, [closeDuration, closeRef, initialRef, openRef, commonRef, openDuration, status, fnArgs]);\n return {\n isMounted,\n styles\n };\n}\n\n/**\n * Provides a matching callback that can be used to focus an item as the user\n * types, often used in tandem with `useListNavigation()`.\n * @see https://floating-ui.com/docs/useTypeahead\n */\nfunction useTypeahead(context, props) {\n var _ref;\n const {\n open,\n dataRef\n } = context;\n const {\n listRef,\n activeIndex,\n onMatch: unstable_onMatch,\n onTypingChange: unstable_onTypingChange,\n enabled = true,\n findMatch = null,\n resetMs = 750,\n ignoreKeys = [],\n selectedIndex = null\n } = props;\n const timeoutIdRef = React.useRef();\n const stringRef = React.useRef('');\n const prevIndexRef = React.useRef((_ref = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref : -1);\n const matchIndexRef = React.useRef(null);\n const onMatch = useEffectEvent(unstable_onMatch);\n const onTypingChange = useEffectEvent(unstable_onTypingChange);\n const findMatchRef = useLatestRef(findMatch);\n const ignoreKeysRef = useLatestRef(ignoreKeys);\n index(() => {\n if (open) {\n clearTimeout(timeoutIdRef.current);\n matchIndexRef.current = null;\n stringRef.current = '';\n }\n }, [open]);\n index(() => {\n // Sync arrow key navigation but not typeahead navigation.\n if (open && stringRef.current === '') {\n var _ref2;\n prevIndexRef.current = (_ref2 = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref2 : -1;\n }\n }, [open, selectedIndex, activeIndex]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n function setTypingChange(value) {\n if (value) {\n if (!dataRef.current.typing) {\n dataRef.current.typing = value;\n onTypingChange(value);\n }\n } else {\n if (dataRef.current.typing) {\n dataRef.current.typing = value;\n onTypingChange(value);\n }\n }\n }\n function getMatchingIndex(list, orderedList, string) {\n const str = findMatchRef.current ? findMatchRef.current(orderedList, string) : orderedList.find(text => (text == null ? void 0 : text.toLocaleLowerCase().indexOf(string.toLocaleLowerCase())) === 0);\n return str ? list.indexOf(str) : -1;\n }\n function onKeyDown(event) {\n const listContent = listRef.current;\n if (stringRef.current.length > 0 && stringRef.current[0] !== ' ') {\n if (getMatchingIndex(listContent, listContent, stringRef.current) === -1) {\n setTypingChange(false);\n } else if (event.key === ' ') {\n stopEvent(event);\n }\n }\n if (listContent == null || ignoreKeysRef.current.includes(event.key) ||\n // Character key.\n event.key.length !== 1 ||\n // Modifier key.\n event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n if (open && event.key !== ' ') {\n stopEvent(event);\n setTypingChange(true);\n }\n\n // Bail out if the list contains a word like \"llama\" or \"aaron\". TODO:\n // allow it in this case, too.\n const allowRapidSuccessionOfFirstLetter = listContent.every(text => {\n var _text$, _text$2;\n return text ? ((_text$ = text[0]) == null ? void 0 : _text$.toLocaleLowerCase()) !== ((_text$2 = text[1]) == null ? void 0 : _text$2.toLocaleLowerCase()) : true;\n });\n\n // Allows the user to cycle through items that start with the same letter\n // in rapid succession.\n if (allowRapidSuccessionOfFirstLetter && stringRef.current === event.key) {\n stringRef.current = '';\n prevIndexRef.current = matchIndexRef.current;\n }\n stringRef.current += event.key;\n clearTimeout(timeoutIdRef.current);\n timeoutIdRef.current = setTimeout(() => {\n stringRef.current = '';\n prevIndexRef.current = matchIndexRef.current;\n setTypingChange(false);\n }, resetMs);\n const prevIndex = prevIndexRef.current;\n const index = getMatchingIndex(listContent, [...listContent.slice((prevIndex || 0) + 1), ...listContent.slice(0, (prevIndex || 0) + 1)], stringRef.current);\n if (index !== -1) {\n onMatch(index);\n matchIndexRef.current = index;\n } else if (event.key !== ' ') {\n stringRef.current = '';\n setTypingChange(false);\n }\n }\n return {\n reference: {\n onKeyDown\n },\n floating: {\n onKeyDown,\n onKeyUp(event) {\n if (event.key === ' ') {\n setTypingChange(false);\n }\n }\n }\n };\n }, [enabled, open, dataRef, listRef, resetMs, ignoreKeysRef, findMatchRef, onMatch, onTypingChange]);\n}\n\nfunction getArgsWithCustomFloatingHeight(state, height) {\n return {\n ...state,\n rects: {\n ...state.rects,\n floating: {\n ...state.rects.floating,\n height\n }\n }\n };\n}\n/**\n * Positions the floating element such that an inner element inside\n * of it is anchored to the reference element.\n * @see https://floating-ui.com/docs/inner\n */\nconst inner = props => ({\n name: 'inner',\n options: props,\n async fn(state) {\n const {\n listRef,\n overflowRef,\n onFallbackChange,\n offset: innerOffset = 0,\n index = 0,\n minItemsVisible = 4,\n referenceOverflowThreshold = 0,\n scrollRef,\n ...detectOverflowOptions\n } = props;\n const {\n rects,\n elements: {\n floating\n }\n } = state;\n const item = listRef.current[index];\n if (process.env.NODE_ENV !== \"production\") {\n if (!state.placement.startsWith('bottom')) {\n console.warn(['Floating UI: `placement` side must be \"bottom\" when using the', '`inner` middleware.'].join(' '));\n }\n }\n if (!item) {\n return {};\n }\n const nextArgs = {\n ...state,\n ...(await offset(-item.offsetTop - floating.clientTop - rects.reference.height / 2 - item.offsetHeight / 2 - innerOffset).fn(state))\n };\n const el = (scrollRef == null ? void 0 : scrollRef.current) || floating;\n const overflow = await detectOverflow(getArgsWithCustomFloatingHeight(nextArgs, el.scrollHeight), detectOverflowOptions);\n const refOverflow = await detectOverflow(nextArgs, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const diffY = Math.max(0, overflow.top);\n const nextY = nextArgs.y + diffY;\n const maxHeight = Math.max(0, el.scrollHeight - diffY - Math.max(0, overflow.bottom));\n el.style.maxHeight = maxHeight + \"px\";\n el.scrollTop = diffY;\n\n // There is not enough space, fallback to standard anchored positioning\n if (onFallbackChange) {\n if (el.offsetHeight < item.offsetHeight * Math.min(minItemsVisible, listRef.current.length - 1) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold) {\n flushSync(() => onFallbackChange(true));\n } else {\n flushSync(() => onFallbackChange(false));\n }\n }\n if (overflowRef) {\n overflowRef.current = await detectOverflow(getArgsWithCustomFloatingHeight({\n ...nextArgs,\n y: nextY\n }, el.offsetHeight), detectOverflowOptions);\n }\n return {\n y: nextY\n };\n }\n});\n/**\n * Changes the `inner` middleware's `offset` upon a `wheel` event to\n * expand the floating element's height, revealing more list items.\n * @see https://floating-ui.com/docs/inner\n */\nfunction useInnerOffset(context, props) {\n const {\n open,\n elements\n } = context;\n const {\n enabled = true,\n overflowRef,\n scrollRef,\n onChange: unstable_onChange\n } = props;\n const onChange = useEffectEvent(unstable_onChange);\n const controlledScrollingRef = React.useRef(false);\n const prevScrollTopRef = React.useRef(null);\n const initialOverflowRef = React.useRef(null);\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function onWheel(e) {\n if (e.ctrlKey || !el || overflowRef.current == null) {\n return;\n }\n const dY = e.deltaY;\n const isAtTop = overflowRef.current.top >= -0.5;\n const isAtBottom = overflowRef.current.bottom >= -0.5;\n const remainingScroll = el.scrollHeight - el.clientHeight;\n const sign = dY < 0 ? -1 : 1;\n const method = dY < 0 ? 'max' : 'min';\n if (el.scrollHeight <= el.clientHeight) {\n return;\n }\n if (!isAtTop && dY > 0 || !isAtBottom && dY < 0) {\n e.preventDefault();\n flushSync(() => {\n onChange(d => d + Math[method](dY, remainingScroll * sign));\n });\n } else if (/firefox/i.test(getUserAgent())) {\n // Needed to propagate scrolling during momentum scrolling phase once\n // it gets limited by the boundary. UX improvement, not critical.\n el.scrollTop += dY;\n }\n }\n const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n if (open && el) {\n el.addEventListener('wheel', onWheel);\n\n // Wait for the position to be ready.\n requestAnimationFrame(() => {\n prevScrollTopRef.current = el.scrollTop;\n if (overflowRef.current != null) {\n initialOverflowRef.current = {\n ...overflowRef.current\n };\n }\n });\n return () => {\n prevScrollTopRef.current = null;\n initialOverflowRef.current = null;\n el.removeEventListener('wheel', onWheel);\n };\n }\n }, [enabled, open, elements.floating, overflowRef, scrollRef, onChange]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n floating: {\n onKeyDown() {\n controlledScrollingRef.current = true;\n },\n onWheel() {\n controlledScrollingRef.current = false;\n },\n onPointerMove() {\n controlledScrollingRef.current = false;\n },\n onScroll() {\n const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n if (!overflowRef.current || !el || !controlledScrollingRef.current) {\n return;\n }\n if (prevScrollTopRef.current !== null) {\n const scrollDiff = el.scrollTop - prevScrollTopRef.current;\n if (overflowRef.current.bottom < -0.5 && scrollDiff < -1 || overflowRef.current.top < -0.5 && scrollDiff > 1) {\n flushSync(() => onChange(d => d + scrollDiff));\n }\n }\n\n // [Firefox] Wait for the height change to have been applied.\n requestAnimationFrame(() => {\n prevScrollTopRef.current = el.scrollTop;\n });\n }\n }\n };\n }, [enabled, overflowRef, elements.floating, scrollRef, onChange]);\n}\n\nfunction isPointInPolygon(point, polygon) {\n const [x, y] = point;\n let isInside = false;\n const length = polygon.length;\n for (let i = 0, j = length - 1; i < length; j = i++) {\n const [xi, yi] = polygon[i] || [0, 0];\n const [xj, yj] = polygon[j] || [0, 0];\n const intersect = yi >= y !== yj >= y && x <= (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) {\n isInside = !isInside;\n }\n }\n return isInside;\n}\nfunction isInside(point, rect) {\n return point[0] >= rect.x && point[0] <= rect.x + rect.width && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n}\n/**\n * Generates a safe polygon area that the user can traverse without closing the\n * floating element once leaving the reference element.\n * @see https://floating-ui.com/docs/useHover#safePolygon\n */\nfunction safePolygon(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n buffer = 0.5,\n blockPointerEvents = false,\n requireIntent = true\n } = options;\n let timeoutId;\n let hasLanded = false;\n let lastX = null;\n let lastY = null;\n let lastCursorTime = performance.now();\n function getCursorSpeed(x, y) {\n const currentTime = performance.now();\n const elapsedTime = currentTime - lastCursorTime;\n if (lastX === null || lastY === null || elapsedTime === 0) {\n lastX = x;\n lastY = y;\n lastCursorTime = currentTime;\n return null;\n }\n const deltaX = x - lastX;\n const deltaY = y - lastY;\n const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n const speed = distance / elapsedTime; // px / ms\n\n lastX = x;\n lastY = y;\n lastCursorTime = currentTime;\n return speed;\n }\n const fn = _ref => {\n let {\n x,\n y,\n placement,\n elements,\n onClose,\n nodeId,\n tree\n } = _ref;\n return function onMouseMove(event) {\n function close() {\n clearTimeout(timeoutId);\n onClose();\n }\n clearTimeout(timeoutId);\n if (!elements.domReference || !elements.floating || placement == null || x == null || y == null) {\n return;\n }\n const {\n clientX,\n clientY\n } = event;\n const clientPoint = [clientX, clientY];\n const target = getTarget(event);\n const isLeave = event.type === 'mouseleave';\n const isOverFloatingEl = contains(elements.floating, target);\n const isOverReferenceEl = contains(elements.domReference, target);\n const refRect = elements.domReference.getBoundingClientRect();\n const rect = elements.floating.getBoundingClientRect();\n const side = placement.split('-')[0];\n const cursorLeaveFromRight = x > rect.right - rect.width / 2;\n const cursorLeaveFromBottom = y > rect.bottom - rect.height / 2;\n const isOverReferenceRect = isInside(clientPoint, refRect);\n const isFloatingWider = rect.width > refRect.width;\n const isFloatingTaller = rect.height > refRect.height;\n const left = (isFloatingWider ? refRect : rect).left;\n const right = (isFloatingWider ? refRect : rect).right;\n const top = (isFloatingTaller ? refRect : rect).top;\n const bottom = (isFloatingTaller ? refRect : rect).bottom;\n if (isOverFloatingEl) {\n hasLanded = true;\n if (!isLeave) {\n return;\n }\n }\n if (isOverReferenceEl) {\n hasLanded = false;\n }\n if (isOverReferenceEl && !isLeave) {\n hasLanded = true;\n return;\n }\n\n // Prevent overlapping floating element from being stuck in an open-close\n // loop: https://github.com/floating-ui/floating-ui/issues/1910\n if (isLeave && isElement(event.relatedTarget) && contains(elements.floating, event.relatedTarget)) {\n return;\n }\n\n // If any nested child is open, abort.\n if (tree && getChildren(tree.nodesRef.current, nodeId).some(_ref2 => {\n let {\n context\n } = _ref2;\n return context == null ? void 0 : context.open;\n })) {\n return;\n }\n\n // If the pointer is leaving from the opposite side, the \"buffer\" logic\n // creates a point where the floating element remains open, but should be\n // ignored.\n // A constant of 1 handles floating point rounding errors.\n if (side === 'top' && y >= refRect.bottom - 1 || side === 'bottom' && y <= refRect.top + 1 || side === 'left' && x >= refRect.right - 1 || side === 'right' && x <= refRect.left + 1) {\n return close();\n }\n\n // Ignore when the cursor is within the rectangular trough between the\n // two elements. Since the triangle is created from the cursor point,\n // which can start beyond the ref element's edge, traversing back and\n // forth from the ref to the floating element can cause it to close. This\n // ensures it always remains open in that case.\n let rectPoly = [];\n switch (side) {\n case 'top':\n rectPoly = [[left, refRect.top + 1], [left, rect.bottom - 1], [right, rect.bottom - 1], [right, refRect.top + 1]];\n break;\n case 'bottom':\n rectPoly = [[left, rect.top + 1], [left, refRect.bottom - 1], [right, refRect.bottom - 1], [right, rect.top + 1]];\n break;\n case 'left':\n rectPoly = [[rect.right - 1, bottom], [rect.right - 1, top], [refRect.left + 1, top], [refRect.left + 1, bottom]];\n break;\n case 'right':\n rectPoly = [[refRect.right - 1, bottom], [refRect.right - 1, top], [rect.left + 1, top], [rect.left + 1, bottom]];\n break;\n }\n function getPolygon(_ref3) {\n let [x, y] = _ref3;\n switch (side) {\n case 'top':\n {\n const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.bottom - buffer : isFloatingWider ? rect.bottom - buffer : rect.top], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.bottom - buffer : rect.top : rect.bottom - buffer]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n case 'bottom':\n {\n const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.top + buffer : isFloatingWider ? rect.top + buffer : rect.bottom], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.top + buffer : rect.bottom : rect.top + buffer]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n case 'left':\n {\n const cursorPointOne = [x + buffer + 1, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const cursorPointTwo = [x + buffer + 1, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const commonPoints = [[cursorLeaveFromBottom ? rect.right - buffer : isFloatingTaller ? rect.right - buffer : rect.left, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.right - buffer : rect.left : rect.right - buffer, rect.bottom]];\n return [...commonPoints, cursorPointOne, cursorPointTwo];\n }\n case 'right':\n {\n const cursorPointOne = [x - buffer, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const cursorPointTwo = [x - buffer, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const commonPoints = [[cursorLeaveFromBottom ? rect.left + buffer : isFloatingTaller ? rect.left + buffer : rect.right, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.left + buffer : rect.right : rect.left + buffer, rect.bottom]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n }\n }\n if (isPointInPolygon([clientX, clientY], rectPoly)) {\n return;\n } else if (hasLanded && !isOverReferenceRect) {\n return close();\n }\n if (!isLeave && requireIntent) {\n const cursorSpeed = getCursorSpeed(event.clientX, event.clientY);\n const cursorSpeedThreshold = 0.1;\n if (cursorSpeed !== null && cursorSpeed < cursorSpeedThreshold) {\n return close();\n }\n }\n if (!isPointInPolygon([clientX, clientY], getPolygon([x, y]))) {\n close();\n } else if (!hasLanded && requireIntent) {\n timeoutId = window.setTimeout(close, 40);\n }\n };\n };\n fn.__options = {\n blockPointerEvents\n };\n return fn;\n}\n\nexport { Composite, CompositeItem, FloatingArrow, FloatingDelayGroup, FloatingFocusManager, FloatingList, FloatingNode, FloatingOverlay, FloatingPortal, FloatingTree, inner, safePolygon, useClick, useClientPoint, useDelayGroup, useDelayGroupContext, useDismiss, useFloating, useFloatingNodeId, useFloatingParentNodeId, useFloatingPortalNode, useFloatingTree, useFocus, useHover, useId, useInnerOffset, useInteractions, useListItem, useListNavigation, useMergeRefs, useRole, useTransitionStatus, useTransitionStyles, useTypeahead };\n","import styled from '@emotion/styled';\n\nexport const InputBase = styled.input`\n flex: 1;\n\n background: ${({ theme }) => theme.colors.white};\n border-radius: 12px;\n background-origin: border-box;\n background-clip: padding-box, border-box;\n\n border: ${({ theme }) => `1px solid ${theme.colors.grey}`};\n\n color: ${({ theme }) => theme.colors.greyDarker};\n\n width: 100%;\n height: 44px;\n padding: 14px;\n\n font-weight: 400;\n font-size: 0.875rem;\n line-height: 1rem;\n\n &::placeholder {\n color: ${({ theme }) => theme.colors.greyDarker60};\n }\n\n &:disabled {\n color: ${({ theme }) => `${theme.colors.grey}`};\n\n background: ${({ theme }) => theme.colors.greyLighter};\n\n &::placeholder {\n color: ${({ theme }) => theme.colors.grey};\n }\n\n &:disabled,\n &:disabled:hover {\n border: ${({ theme }) => `1px solid ${theme.colors.grey}`};\n background-image: none;\n }\n }\n`;\n","import styled from '@emotion/styled';\n\nexport const InputGroup = styled.div<{ disabled?: boolean }>`\n position: relative;\n\n width: 100%;\n\n * {\n color: ${({ theme, disabled }) =>\n disabled ? `${theme.colors.grey} !important` : 'inherit'};\n }\n`;\n","import { css, Theme } from '@emotion/react';\n\nimport { InputBase } from './InputBase';\n\nexport const basic = (theme: Theme) =>\n css({\n [`& ${InputBase}`]: {\n border: `1px solid ${theme.colors.grey}`,\n '&:hover': {\n border: `1.4px solid ${theme.colors.greyDarker60}`,\n },\n '&:focus': {\n border: `2px solid ${theme.colors.grey40}`,\n },\n },\n });\n\nexport const error = (theme: Theme) =>\n css({\n [`& ${InputBase}`]: {\n border: 'double 1px transparent',\n backgroundImage: `linear-gradient(white, white),\n linear-gradient(to right, ${theme.colors.red}, ${theme.colors.redLighter})`,\n '&:hover': {\n border: 'double 1.4px transparent',\n },\n '&:focus': {\n border: 'double 2px transparent',\n backgroundImage: `linear-gradient(white, white),\n linear-gradient(\n to right,\n ${theme.colors.red40},\n ${theme.colors.redLighter40}\n )`,\n },\n },\n });\n\nexport const success = (theme: Theme) =>\n css({\n [`& ${InputBase}`]: {\n border: 'double 1px transparent',\n backgroundImage: `linear-gradient(white, white),\n linear-gradient(\n to right,\n ${theme.colors.greenLighter},\n ${theme.colors.green}\n )`,\n '&:hover': {\n border: 'double 1.4px transparent',\n },\n '&:focus': {\n border: 'double 2px transparent',\n backgroundImage: `linear-gradient(white, white),\n linear-gradient(\n to right,\n ${theme.colors.greenLighter40},\n ${theme.colors.green40}\n )`,\n },\n },\n svg: {\n stroke: `${theme.colors.green}`,\n },\n });\n\nexport const custom = () => css({});\n\nexport const inputStatus = css`\n position: absolute;\n top: 34%;\n right: 14px;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n border-radius: 10px;\n width: 14px;\n height: 14px;\n`;\n\nexport const startElement = css`\n position: absolute;\n top: 0;\n left: 14px;\n\n height: 100%;\n width: auto;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n border-radius: 10px;\n`;\n\nexport const endElement = css`\n position: absolute;\n top: 0;\n right: 14px;\n\n height: 100%;\n width: auto;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n border-radius: 10px;\n`;\n","import styled from '@emotion/styled';\n\nimport Icon from '@components/Icon';\n\nimport { inputStatus } from './styles';\n\nexport const InputError = styled.div`\n background: ${({ theme }) =>\n `linear-gradient(117.5deg, ${theme.colors.red}, ${theme.colors.redLighter});`};\n\n svg {\n transform: rotateX(180deg);\n }\n`;\n\nexport const InputStatusError = () => (\n <InputError css={inputStatus}>\n <Icon name=\"union\" size={10} color=\"#fff\" />\n </InputError>\n);\n","import styled from '@emotion/styled';\n\nimport Icon from '@components/Icon';\n\nimport { inputStatus } from './styles';\n\nexport const InputSuccess = styled.div`\n background: ${({ theme }) =>\n `linear-gradient(68.38deg, ${theme.colors.greenLighter}, ${theme.colors.green});`};\n`;\n\nexport const InputStatusSuccess = () => (\n <InputSuccess css={inputStatus}>\n <Icon name=\"check\" size={10} color=\"#fff\" />\n </InputSuccess>\n);\n","import { forwardRef } from 'react';\nimport { useMergeRefs } from '@floating-ui/react';\nimport { InputBase } from './InputBase';\nimport { InputGroup } from './InputGroup';\nimport { InputProps, InputStatusColors } from './types';\nimport { InputStatusError } from './InputStatusError';\nimport { InputStatusSuccess } from './InputStatusSuccess';\nimport * as S from './styles';\n\nconst mapColors: InputStatusColors = {\n basic: S.basic,\n error: S.error,\n success: S.success,\n custom: S.custom,\n};\n\nconst InputInner = (\n {\n name,\n type = 'text',\n placeholder,\n validationSchema,\n status = 'basic',\n disabled = false,\n startElement,\n endElement,\n className,\n inputProps = {},\n register,\n onKeyUp,\n }: InputProps,\n inputRef?: React.ForwardedRef<HTMLInputElement | null>,\n) => {\n if (!register) {\n throw new Error('Input component must be used within a Form component');\n }\n\n const showStatusIcon = () => !disabled && !endElement;\n\n const registerResult = register(name, validationSchema);\n return (\n <InputGroup css={[mapColors[status]]} disabled={disabled}>\n {startElement ? <div css={S.startElement}>{startElement}</div> : null}\n <InputBase\n type={type}\n id={`formElement-${name}`}\n placeholder={placeholder}\n disabled={disabled}\n css={{\n paddingLeft: startElement && 40,\n paddingRight: endElement && 40,\n }}\n className={className}\n onKeyUp={onKeyUp}\n {...inputProps}\n {...register(name, validationSchema)}\n ref={useMergeRefs([registerResult.ref, inputRef])}\n />\n\n {status === 'error' && showStatusIcon() ? <InputStatusError /> : null}\n {status === 'success' && showStatusIcon() ? <InputStatusSuccess /> : null}\n\n {endElement ? <div css={S.endElement}>{endElement}</div> : null}\n </InputGroup>\n );\n};\n\nconst Input = forwardRef<HTMLInputElement, InputProps>(InputInner);\n\nexport default Input;\n","import { createContext } from 'react';\nimport { ModalContextProps } from './types';\n\nexport const ModalContext = createContext<ModalContextProps>([\n false,\n () => {\n /* noop */\n },\n]);\n","import { useState } from 'react';\n\nimport { ModalContext } from './Modal.context';\nimport { ModalProps } from './types';\n\nconst Modal = ({ isOpen: isInitOpen, ...rest }: ModalProps) => {\n const [isOpen, setIsOpen] = useState(isInitOpen || false);\n\n return <ModalContext.Provider value={[isOpen, setIsOpen]} {...rest} />;\n};\n\nexport default Modal;\n","import { useContext, cloneElement } from 'react';\n\nimport { callAll } from '@ssa-ui-kit/utils';\n\nimport { ModalContext } from '../Modal/Modal.context';\n\nfunction ModalDismissButton({ children: child }: { children: JSX.Element }) {\n const [, setIsOpen] = useContext(ModalContext);\n\n return cloneElement(child, {\n onClick: callAll(() => setIsOpen(false), child.props.onClick),\n });\n}\n\nexport default ModalDismissButton;\n","import { css, Theme, useTheme } from '@emotion/react';\n\nimport { ModalDialogProps } from './types';\n\nconst modalDialogWrapper = (\n theme: Theme,\n isOpen: ModalDialogProps['isOpen'],\n noBackground: ModalDialogProps['noBackground'],\n) => css`\n display: ${isOpen ? 'flex' : 'none'};\n\n position: fixed;\n inset: 0;\n\n justify-content: center;\n align-items: center;\n\n background-color: ${noBackground ? 'transparent' : theme.colors.grey20};\n\n z-index: 1000;\n`;\n\nconst modalDialogContent = (\n theme: Theme,\n isOpen: ModalDialogProps['isOpen'],\n) => css`\n display: ${isOpen ? 'flex' : 'none'};\n\n flex-direction: column;\n position: relative;\n\n width: 100%;\n max-width: 400px;\n padding: 20px;\n\n background-color: white;\n box-shadow: 0 5px 15px ${theme.colors.grey20};\n border-radius: 20px;\n`;\n\nconst ModalDialog = ({\n isOpen,\n noBackground,\n children,\n 'aria-label': ariaLabel,\n ...props\n}: ModalDialogProps) => {\n const theme = useTheme();\n\n return (\n <div\n role=\"button\"\n tabIndex={-1}\n css={modalDialogWrapper(theme, isOpen, noBackground)}>\n <div\n aria-modal=\"true\"\n aria-labelledby={ariaLabel}\n role=\"dialog\"\n css={modalDialogContent(theme, isOpen)}\n {...props}>\n {children}\n </div>\n </div>\n );\n};\n\nexport default ModalDialog;\n","import { useContext } from 'react';\n\nimport ModalDialog from '@components/ModalDialog';\nimport { ModalProps } from '@components/Modal/types';\nimport { ModalContext } from '../Modal/Modal.context';\n\nfunction ModalContent({\n children,\n 'aria-label': ariaLabel,\n ...props\n}: ModalProps) {\n const [isOpen] = useContext(ModalContext);\n\n return (\n <ModalDialog aria-label={ariaLabel} isOpen={isOpen} {...props}>\n {isOpen ? children : null}\n </ModalDialog>\n );\n}\n\nexport default ModalContent;\n","import { useContext, cloneElement } from 'react';\n\nimport { ModalContext } from '@components/Modal';\n\nimport { callAll } from '@ssa-ui-kit/utils';\n\nfunction ModalOpenButton({ children: child }: { children: JSX.Element }) {\n const [, setIsOpen] = useContext(ModalContext);\n\n return cloneElement(child, {\n onClick: callAll(() => setIsOpen(true), child.props.onClick),\n });\n}\n\nexport default ModalOpenButton;\n","import * as React from 'react';\nimport {\n useFloating,\n autoUpdate,\n offset,\n flip,\n shift,\n useClick,\n useDismiss,\n useRole,\n useInteractions,\n useHover,\n safePolygon,\n} from '@floating-ui/react';\nimport { PopoverOptions, UsePopover } from '../types';\n\nexport const usePopover: UsePopover = ({\n initialOpen = false,\n placement = 'bottom',\n modal,\n open: controlledOpen,\n onOpenChange: setControlledOpen,\n floatingOptions = {},\n interactionsEnabled = 'click',\n}: PopoverOptions = {}) => {\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(initialOpen);\n const [labelId, setLabelId] = React.useState<string | undefined>();\n const [descriptionId, setDescriptionId] = React.useState<\n string | undefined\n >();\n\n const open = controlledOpen ?? uncontrolledOpen;\n const setOpen = setControlledOpen ?? setUncontrolledOpen;\n\n const data = useFloating({\n placement,\n open,\n onOpenChange: setOpen,\n whileElementsMounted: autoUpdate,\n middleware: [\n offset(5),\n flip({\n crossAxis: placement.includes('-'),\n padding: 5,\n }),\n shift({ padding: 5 }),\n ],\n ...floatingOptions,\n });\n\n const context = data.context;\n\n const click = useClick(context, {\n enabled:\n controlledOpen == null && ['click', 'both'].includes(interactionsEnabled),\n });\n const dismiss = useDismiss(context);\n const role = useRole(context);\n const hover = useHover(context, {\n enabled:\n controlledOpen == null && ['hover', 'both'].includes(interactionsEnabled),\n handleClose: safePolygon(),\n });\n\n const interactionsHooks = [dismiss, role];\n\n switch (interactionsEnabled) {\n case 'click': {\n interactionsHooks.push(click);\n break;\n }\n case 'hover': {\n interactionsHooks.push(hover);\n break;\n }\n default: {\n interactionsHooks.push(click, hover);\n }\n }\n\n const interactions = useInteractions(interactionsHooks);\n\n const result = React.useMemo(\n () => ({\n open,\n setOpen,\n ...interactions,\n ...data,\n modal,\n labelId,\n descriptionId,\n floatingOptions,\n setLabelId,\n setDescriptionId,\n }),\n [\n open,\n setOpen,\n interactions,\n data,\n modal,\n labelId,\n descriptionId,\n floatingOptions,\n ],\n );\n\n return result;\n};\n","import * as React from 'react';\nimport { ContextType } from '../types';\n\nexport const PopoverContext = React.createContext<ContextType>(\n {} as ContextType,\n);\n\nexport const usePopoverContext = () => {\n const context = React.useContext(PopoverContext);\n\n if (context == null) {\n throw new Error('Popover components must be wrapped in <Popover />');\n }\n\n return context as ContextType;\n};\n","import * as React from 'react';\nimport { PopoverOptions } from './types';\nimport { usePopover } from './hooks/usePopover';\nimport { PopoverContext } from './hooks/usePopoverContext';\n\nexport const Popover = ({\n children,\n modal = false,\n ...restOptions\n}: {\n children: React.ReactNode;\n} & PopoverOptions) => {\n // This can accept any props as options, e.g. `placement`,\n // or other positioning options.\n const popover = usePopover({ modal, ...restOptions });\n return (\n <PopoverContext.Provider value={popover}>\n {children}\n </PopoverContext.Provider>\n );\n};\n","import * as React from 'react';\nimport Button from '@components/Button';\nimport { usePopoverContext } from './hooks/usePopoverContext';\n\nexport const PopoverClose = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(function PopoverClose(props, ref) {\n const { setOpen } = usePopoverContext();\n return (\n <Button\n ref={ref}\n variant=\"secondary\"\n {...props}\n onClick={(event) => {\n props.onClick?.(event);\n setOpen(false);\n }}\n />\n );\n});\n","import * as React from 'react';\nimport {\n useMergeRefs,\n FloatingPortal,\n FloatingFocusManager,\n} from '@floating-ui/react';\nimport { usePopoverContext } from './hooks/usePopoverContext';\nimport Wrapper from '@components/Wrapper';\n\nexport const PopoverContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLProps<HTMLDivElement>\n>(function PopoverContent({ style, ...props }, propRef) {\n const { context: floatingContext, ...context } = usePopoverContext();\n const ref = useMergeRefs([context.refs.setFloating, propRef]);\n\n if (!floatingContext.open) return null;\n\n return (\n <FloatingPortal>\n <FloatingFocusManager context={floatingContext} modal={context.modal}>\n <Wrapper\n ref={ref}\n css={{\n width: 'auto',\n }}\n style={{ ...context.floatingStyles, ...style }}\n aria-labelledby={context.labelId}\n aria-describedby={context.descriptionId}\n direction=\"column\"\n {...context.getFloatingProps(props)}>\n {props.children}\n </Wrapper>\n </FloatingFocusManager>\n </FloatingPortal>\n );\n});\n","import { css, Theme } from '@emotion/react';\n\nexport const h1 = css`\n font-size: 2.488rem; //39px\n line-height: 3.375rem;\n`;\nexport const h2 = (theme: Theme) => css`\n font-size: 1.188rem; // 19px\n line-height: 1.375rem; //26.23px;\n\n ${theme.mediaQueries.md} {\n font-size: 1.719rem; //27px\n }\n ${theme.mediaQueries.lg} {\n font-size: 2.074rem; //33px\n line-height: 2.813rem; // 45px\n }\n`;\nexport const h3 = (theme: Theme) => css`\n font-size: 1.438rem; // 23px\n line-height: 1.625rem;\n\n ${theme.mediaQueries.lg} {\n font-size: 1.728rem; //27px\n }\n`;\nexport const h4 = css`\n font-size: 1.44rem; // 23px\n line-height: 1.625rem;\n`;\nexport const h5 = (theme: Theme) => css`\n font-size: 1rem; //16px\n line-height: 1.5rem;\n\n ${theme.mediaQueries.md} {\n font-size: 1.2rem; //19px\n }\n`;\nexport const h6 = css`\n font-size: 1rem; // 16px\n line-height: 1.375rem;\n`;\nexport const subtitle = css`\n font-size: 0.833rem; // 13.2px\n line-height: 0.938rem;\n`;\nexport const body1 = css`\n font-size: 0.694rem; //11px\n line-height: 0.938rem;\n`;\nexport const body2 = css`\n font-size: 0.579rem; //9px\n line-height: 0.938rem;\n`;\nexport const body3 = css`\n font-size: 0.5rem; //8px\n line-height: 0.938rem;\n`;\nexport const caption = css`\n display: block;\n font-size: 0.481rem; //7.6px\n line-height: 0.75rem;\n`;\n\n// font-weight variants\nexport const lighter = css`\n font-style: normal;\n font-weight: 400;\n`;\nexport const regular = css`\n font-style: normal;\n font-weight: 500;\n`;\nexport const medium = css`\n font-style: normal;\n font-weight: 600;\n`;\nexport const bold = css`\n font-style: normal;\n font-weight: 700;\n`;\n\nexport const gutter = css`\n margin-block-end: 1rem;\n`;\n","import { forwardRef } from 'react';\nimport { css } from '@emotion/react';\n\nimport { TypographyProps } from './types';\nimport * as style from './styles';\n\nconst variantsMapping = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n h6: 'h6',\n subtitle: 'h6',\n body1: 'p',\n body2: 'p',\n body3: 'p',\n caption: 'span',\n};\n\nconst Typography = forwardRef<HTMLElement, TypographyProps>(function Typography(\n {\n children,\n weight = 'regular',\n variant = 'body1',\n gutter = false,\n color = 'rgba(43, 45, 49, 1)',\n as,\n ...props\n },\n ref,\n) {\n const Component = as || variantsMapping[variant];\n\n return (\n <Component\n ref={ref}\n css={[\n style[variant],\n style[weight],\n css`\n color: ${color};\n `,\n gutter && style.gutter,\n ]}\n {...props}>\n {children}\n </Component>\n );\n});\n\nexport default Typography;\n","import * as React from 'react';\nimport { useId } from '@floating-ui/react';\nimport { usePopoverContext } from './hooks/usePopoverContext';\nimport Typography from '@components/Typography';\n\nexport const PopoverDescription = React.forwardRef<\n HTMLParagraphElement,\n Parameters<typeof Typography>[0]\n>(function PopoverDescription(props, ref) {\n const { setDescriptionId } = usePopoverContext();\n const id = useId();\n\n // Only sets `aria-describedby` on the Popover root element\n // if this component is mounted inside it.\n React.useLayoutEffect(() => {\n setDescriptionId(id);\n return () => setDescriptionId(undefined);\n }, [id, setDescriptionId]);\n\n return <Typography as=\"div\" {...props} ref={ref} id={id} />;\n});\n","import * as React from 'react';\nimport { useId } from '@floating-ui/react';\nimport { usePopoverContext } from './hooks/usePopoverContext';\nimport Typography from '@components/Typography';\n\nexport const PopoverHeading = React.forwardRef<\n HTMLHeadingElement,\n Parameters<typeof Typography>[0]\n>(function PopoverHeading(props, ref) {\n const { setLabelId } = usePopoverContext();\n const id = useId();\n\n // Only sets `aria-labelledby` on the Popover root element\n // if this component is mounted inside it.\n React.useLayoutEffect(() => {\n setLabelId(id);\n return () => setLabelId(undefined);\n }, [id, setLabelId]);\n\n return (\n <Typography {...props} ref={ref} id={id}>\n {props.children}\n </Typography>\n );\n});\n","import * as React from 'react';\nimport { useMergeRefs } from '@floating-ui/react';\nimport Button from '@components/Button';\nimport { PopoverTriggerProps } from './types';\nimport { usePopoverContext } from './hooks/usePopoverContext';\nimport { IButtonProps } from '@components/Button/types';\n\nexport const PopoverTrigger = React.forwardRef<\n HTMLElement,\n React.HTMLProps<HTMLElement> & IButtonProps & PopoverTriggerProps\n>(function PopoverTrigger(\n { children, asChild = false, dataTestId = 'trigger-button', ...props },\n propRef,\n) {\n const context = usePopoverContext();\n const childrenRef = (\n children as React.ReactNode & { ref: React.Ref<unknown> }\n )?.ref;\n const ref = useMergeRefs([context?.refs.setReference, propRef, childrenRef]);\n\n // `asChild` allows the user to pass any element as the anchor\n if (asChild && React.isValidElement(children)) {\n return React.cloneElement(\n children,\n context?.getReferenceProps({\n ref,\n ...props,\n ...children.props,\n 'data-state': context.open ? 'open' : 'closed',\n }),\n );\n }\n\n return (\n <Button\n css={{\n color: '#fff',\n }}\n data-testid={dataTestId}\n ref={ref}\n // The user can style the trigger based on the state\n data-state={context?.open ? 'open' : 'closed'}\n {...context?.getReferenceProps(props)}>\n {children}\n </Button>\n );\n});\n","import * as React from 'react';\n\nimport { DropdownContextType } from './types';\nimport { IDropdownOption } from '@components/MultipleDropdownOptions';\n\nconst MultipleDropdownContext = React.createContext<\n DropdownContextType<IDropdownOption>\n>({\n allItems: {},\n isMultiple: false,\n onChange: () => {\n /* noop */\n },\n});\n\nexport function useMultipleDropdownContext(): DropdownContextType<IDropdownOption> {\n return React.useContext(MultipleDropdownContext);\n}\n\nexport default MultipleDropdownContext;\n","import React, { BaseSyntheticEvent } from 'react';\nimport styled from '@emotion/styled';\n\nimport Checkbox from '@components/Checkbox';\nimport { useMultipleDropdownContext } from '@components/MultipleDropdown/MultipleDropdown.context';\nimport DropdownOption from '@components/DropdownOption';\n\nimport { IDropdownItemsListProps } from './types';\nimport { checkboxStyles } from '@components/Checkbox/styles';\n\nconst DropdownOptionsBase = styled.ul<{ tabindex?: string }>`\n position: absolute;\n width: 100%;\n\n list-style: none;\n\n margin: 4px 0 0;\n padding: 0;\n\n background: #fff;\n border-radius: 8px;\n\n overflow-x: hidden;\n overflow-y: auto;\n\n z-index: 2;\n\n filter: ${({ theme }) =>\n `drop-shadow(-4px 4px 14px ${theme.colors.greyDarker14})`};\n backdrop-filter: ${({ theme }) =>\n `drop-shadow(-4px 4px 14px ${theme.colors.greyDarker14})`};\n\n ${({ theme }) => checkboxStyles.blueInput(theme)}\n`;\n\nconst DropdownOptionButton = styled.div<{\n checked?: boolean;\n isDisabled?: boolean;\n}>(({ theme, isDisabled }) => ({\n display: 'block',\n cursor: isDisabled ? 'default' : 'pointer',\n font: 'inherit',\n fontSize: '0.813rem',\n outline: 'inherit',\n textAlign: 'left',\n\n width: '100%',\n padding: 0,\n margin: 0,\n\n background: 'none',\n color: 'inherit',\n border: 'none',\n\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n\n userSelect: 'none',\n\n '& label': {\n margin: '0 16px 0 0',\n '& input + div': {\n borderRadius: '2px',\n '&::before': {\n borderRadius: '2px',\n },\n },\n },\n\n '&:has(> label > input:checked)': {\n fontWeight: '800',\n },\n\n [`&:hover input:not(:checked, :indeterminate) + div::before`]: {\n borderColor: theme.colors.greyDropdownFocused,\n },\n}));\n\nconst noItemsMsg = { id: Number.NaN, value: 'No items' };\n\nconst MultipleDropdownOptions = ({\n ariaLabelledby,\n id,\n children,\n}: IDropdownItemsListProps) => {\n const { onChange, allItems, isMultiple } = useMultipleDropdownContext();\n\n const toggleItem = (value: string | number, isDisabled: boolean) => {\n if (!isDisabled) {\n const item = allItems[value];\n onChange(item);\n }\n };\n\n const childrenArray = React.Children.toArray(children).filter(Boolean);\n\n const options = (childrenArray as React.ReactElement[]).map((child) => {\n const element = allItems[child.props.value];\n const isActive = Boolean(element?.isSelected);\n const isDisabled = Boolean(element?.isDisabled);\n\n return React.cloneElement(\n child,\n {\n ...child.props,\n isActive,\n isMultiple,\n 'aria-selected': isActive,\n onClick: (event: BaseSyntheticEvent) => {\n event.preventDefault();\n toggleItem(child.props.value, isDisabled);\n },\n },\n <DropdownOptionButton\n checked={isActive}\n isDisabled={isDisabled}\n role=\"button\">\n {isMultiple && (\n <Checkbox\n initialState={isActive}\n externalState={isActive}\n isDisabled={isDisabled}\n css={{\n margin: 0,\n }}\n color=\"blue\"\n />\n )}\n {child.props.children || child.props.label || child.props.value}\n </DropdownOptionButton>,\n );\n });\n\n if (options.length === 0) {\n options.push(\n <DropdownOption key={noItemsMsg.id} value={''} aria-selected={false}>\n <DropdownOptionButton as=\"button\">\n {noItemsMsg.value}\n </DropdownOptionButton>\n </DropdownOption>,\n );\n }\n\n return (\n <DropdownOptionsBase\n role=\"listbox\"\n tabindex=\"-1\"\n id={id}\n aria-labelledby={ariaLabelledby}>\n {options}\n </DropdownOptionsBase>\n );\n};\n\nexport default MultipleDropdownOptions;\n","import BadgeBase from '@components/Badge/BadgeBase';\nimport styled from '@emotion/styled';\n\nconst MultipleDropdownNotification = styled(BadgeBase)`\n min-width: 18px;\n width: 18px;\n color: ${({ theme }) => theme.colors.white};\n background-color: ${({ theme }) => theme.colors.blueNotification};\n font-size: 10px;\n border-radius: 50%;\n`;\n\nexport default MultipleDropdownNotification;\n","import React, { useState, useEffect, useId, useRef } from 'react';\nimport { useTheme } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { useClickOutside } from '@ssa-ui-kit/hooks';\nimport { mapObjIndexed } from '@ssa-ui-kit/utils';\nimport { useMergeRefs } from '@floating-ui/react';\n\nimport DropdownBase from '@components/DropdownBase';\nimport DropdownToggle from '@components/DropdownToggle';\nimport DropdownArrow from '@components/DropdownArrow';\nimport MultipleDropdownOptions from '@components/MultipleDropdownOptions';\nimport MultipleDropdownContext from '@components/MultipleDropdown/MultipleDropdown.context';\nimport { IDropdownOption } from '@components/DropdownOptions/types';\n\nimport { DropdownContextType, IDropdownProps } from './types';\nimport { getActiveItems } from '@components/MultipleDropdown/utils';\nimport MultipleDropdownNotification from '@components/MultipleDropdownNotification';\n\nconst DropdownPlaceholderLabel = styled.div`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\n/**\n * The structure of the component:\n *\n * MultipleDropdown\n * DropdownToggle\n * MultipleDropdownOptions\n * DropdownOption\n *\n * Aria attributes are set according to\n * https://www.w3.org/WAI/ARIA/apg/example-index/combobox/combobox-select-only.html\n **/\nfunction MultipleDropdownInner<T extends IDropdownOption>(\n {\n selectedItems = [],\n isDisabled,\n isOpen: isInitOpen,\n isMultiple = true,\n placeholder = 'Select something',\n showPlaceholder = true,\n label,\n children,\n onChange: handleChange,\n className,\n }: IDropdownProps<T>,\n ref?: React.ForwardedRef<HTMLDivElement | null>,\n) {\n const theme = useTheme();\n const dropdownBaseRef: React.MutableRefObject<HTMLDivElement | null> =\n useRef<HTMLDivElement>(null);\n const dropdownId = useId();\n const [isFocused, setIsFocused] = useState(false);\n const [isOpen, setIsOpen] = useState(isInitOpen || false);\n const [colors, setColors] = useState<Array<string | undefined>>([]);\n const [optionsWithKey, setOptionsWithKey] = useState<\n Record<number | string, T>\n >({});\n const [items, setItems] = useState<Array<React.ReactElement>>([]);\n const [values, setValues] = useState<Array<unknown>>([]);\n const [valuesWithoutPlaceholder, setValuesWithoutPlaceholder] = useState<\n Array<unknown>\n >([]);\n\n const memoSelectedItems = React.useMemo(\n () => selectedItems,\n [JSON.stringify(selectedItems)],\n );\n\n const onChange = (item: IDropdownOption) => {\n if (isDisabled || !item) {\n return;\n }\n if (!isMultiple && optionsWithKey[item.value].isSelected) {\n return;\n }\n let newOptionsWithKey = {};\n let isSelected = true;\n if (isMultiple) {\n isSelected = !optionsWithKey[item.value].isSelected;\n newOptionsWithKey = {\n ...optionsWithKey,\n [item.value]: {\n ...optionsWithKey[item.value],\n isSelected,\n },\n };\n setOptionsWithKey(newOptionsWithKey);\n } else {\n newOptionsWithKey = mapObjIndexed(\n (option) => ({\n ...option,\n isSelected: option.value === item.value,\n }),\n optionsWithKey,\n );\n setOptionsWithKey(newOptionsWithKey);\n setIsOpen(false);\n }\n\n handleChange && handleChange(item.value, isSelected);\n };\n\n useClickOutside(dropdownBaseRef, () => isOpen && setIsOpen(false));\n\n useEffect(() => {\n if (isDisabled) {\n setColors([theme.colors.greyDarker60, theme.colors.grey20]);\n } else if (isOpen) {\n setColors([theme.colors.white, theme.colors.white60]);\n } else if (isFocused) {\n setColors([theme.colors.greyDarker, theme.colors.greyDarker60]);\n }\n }, [isOpen, isDisabled, isFocused]);\n\n useEffect(() => {\n if (isDisabled && isOpen) {\n setIsOpen(false);\n }\n }, [isDisabled]);\n\n useEffect(() => {\n const childrenArray = React.Children.toArray(children).filter(Boolean);\n const newOptions: T[] = [];\n const keyedOptions: Record<number | string, T> = {};\n const childItems: Array<React.ReactElement> = (\n childrenArray as React.ReactElement[]\n ).map((child, index) => {\n const newOption = {\n ...child.props,\n isSelected: !!memoSelectedItems.find(\n (selectedItem) => selectedItem.value === child.props.value,\n ),\n };\n newOptions.push(newOption);\n keyedOptions[newOption.value] = newOption;\n\n return React.cloneElement(child, {\n index,\n onClick: onChange.bind(null),\n ...child.props,\n });\n });\n\n setOptionsWithKey(keyedOptions);\n setItems(childItems);\n }, [memoSelectedItems, children]);\n\n const contextValue: DropdownContextType<IDropdownOption> = React.useMemo(\n () => ({ onChange, allItems: optionsWithKey, isMultiple }),\n [onChange, optionsWithKey, isMultiple],\n );\n\n useEffect(() => {\n const newValues = getActiveItems({ allItems: optionsWithKey, placeholder });\n const newValuesWithoutPlaceholder = newValues.filter(\n (item) => item !== placeholder,\n );\n setValues(newValues);\n setValuesWithoutPlaceholder(newValuesWithoutPlaceholder);\n }, [optionsWithKey]);\n\n return (\n <MultipleDropdownContext.Provider value={contextValue}>\n <DropdownBase\n ref={useMergeRefs([dropdownBaseRef, ref])}\n data-testid=\"dropdown\">\n <DropdownToggle\n className={className}\n isOpen={isOpen}\n disabled={isDisabled}\n onClick={setIsOpen.bind(null, !isOpen)}\n onFocus={setIsFocused.bind(null, true)}\n colors={colors}\n ariaLabelledby={`dropdown-label-${dropdownId}`}\n ariaControls={`dropdown-popup-${dropdownId}`}\n isMultiple={isMultiple}\n selectedCount={valuesWithoutPlaceholder.length}>\n {isMultiple ? (\n <>\n <DropdownPlaceholderLabel>\n {label}\n {showPlaceholder\n ? values.length > 0 && `: ${values[0]}`\n : valuesWithoutPlaceholder.length > 0 &&\n `: ${valuesWithoutPlaceholder[0]}`}\n </DropdownPlaceholderLabel>\n {values.length > 1 ? (\n <MultipleDropdownNotification as={'div'}>\n +{values.length - 1}\n </MultipleDropdownNotification>\n ) : (\n ''\n )}\n </>\n ) : (\n values.join('')\n )}\n <DropdownArrow isUp={isOpen} />\n </DropdownToggle>\n\n {isOpen ? (\n <MultipleDropdownOptions>{items}</MultipleDropdownOptions>\n ) : null}\n </DropdownBase>\n </MultipleDropdownContext.Provider>\n );\n}\n\nconst MultipleDropdown = React.forwardRef<\n HTMLDivElement,\n IDropdownProps<IDropdownOption>\n>(MultipleDropdownInner);\n\nexport default MultipleDropdown;\n","import { IDropdownOption } from '../..';\n\nconst getActiveItem = <T>({\n activeItem,\n placeholder,\n}: {\n activeItem: Record<number | string, T>;\n placeholder: string;\n}) =>\n activeItem\n ? activeItem.label ||\n activeItem.children ||\n activeItem.value ||\n activeItem ||\n placeholder\n : placeholder;\n\ninterface GetActiveItems<T> {\n allItems: T;\n placeholder: string;\n}\nexport const getActiveItems = <\n T extends Record<string | number, IDropdownOption>,\n>({\n allItems = {} as T,\n placeholder,\n}: GetActiveItems<T>) => {\n const activeItems = Object.values(allItems)\n .filter((item) => item.isSelected)\n .map((activeItem) => getActiveItem({ activeItem, placeholder }));\n return activeItems.length ? activeItems : [placeholder];\n};\n","import { ProgressProps } from './types';\n\nconst Progress = ({ children }: ProgressProps) => {\n return <div>{children}</div>;\n};\n\nexport default Progress;\n","import { css, Theme } from '@emotion/react';\n\nexport const wrapper = (theme: Theme) => css`\n position: relative;\n background-color: ${theme.colors.greyLighter};\n border-radius: 12px;\n box-shadow: inset 0 -1px 1px ${theme.colors.white30};\n`;\n\nexport const bar = () => css`\n position: absolute;\n display: block;\n bottom: 0;\n border-radius: 12px;\n`;\n","import {\n pink,\n yellow,\n green,\n turquoise,\n purple,\n blue,\n blueLight,\n yellowWarm,\n} from '@styles/global';\n\nimport { ProgressBarProps } from './types';\nimport { wrapper, bar } from './styles';\n\nconst mapColors: MainColors = {\n pink,\n yellow,\n green,\n turquoise,\n purple,\n blue,\n blueLight,\n yellowWarm,\n};\n\nexport const ProgressBar = ({\n percentage,\n color = 'green',\n vertical = false,\n bgColor = 'rgba(238, 241, 247, 1)',\n size = 12,\n}: ProgressBarProps) => {\n const mapBarWrapper = {\n horizontal: {\n height: size,\n width: '100%',\n },\n vertical: {\n height: '100%',\n width: size,\n },\n };\n const mapBarContainer = {\n horizontal: {\n width: `${percentage}%`,\n height: size,\n },\n vertical: {\n width: size,\n height: `${percentage}%`,\n },\n };\n\n return (\n <div\n css={[wrapper, { backgroundColor: bgColor }]}\n style={{\n ...mapBarWrapper[vertical ? 'vertical' : 'horizontal'],\n }}>\n <span\n role=\"progressbar\"\n css={[bar, mapColors[color]]}\n style={mapBarContainer[vertical ? 'vertical' : 'horizontal']}></span>\n </div>\n );\n};\n\nexport default ProgressBar;\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import styled from '@emotion/styled';\nimport { ColorsKeys } from '../..';\n\nexport const ProgressCircleBase = styled.div<{\n gradientId: string;\n fullStroke: number;\n svgOffset: number;\n color: string;\n size: number;\n}>`\n width: ${({ size }) => size}px;\n height: ${({ size }) => size}px;\n\n position: relative;\n\n svg {\n position: absolute;\n top: 0;\n left: 0;\n\n filter: ${({ theme, color }) =>\n `drop-shadow(3px 5px 10px ${\n theme.colors[`${color}Lighter40` as ColorsKeys] ||\n theme.colors[color as ColorsKeys]\n })`};\n }\n\n circle {\n fill: none;\n\n stroke: url(#${({ gradientId }) => gradientId});\n stroke-width: ${({ size }) => size / 10}px;\n stroke-linecap: round;\n stroke-dasharray: ${({ fullStroke }) => fullStroke};\n stroke-dashoffset: ${({ fullStroke }) => fullStroke};\n\n animation: ${({ gradientId }) => gradientId} 1s linear forwards;\n }\n\n @keyframes ${({ gradientId }) => gradientId} {\n 100% {\n stroke-dashoffset: ${(props) => props.svgOffset};\n }\n }\n`;\n","import styled from '@emotion/styled';\n\nexport const ProgressCircleOuter = styled.div<{\n size: number;\n}>`\n width: ${({ size }) => size}px;\n height: ${({ size }) => size}px;\n\n border-radius: 50%;\n\n padding: ${({ size }) => size / 10}px;\n\n background: ${({ theme }) => theme.colors.greyLighter};\n`;\n","import styled from '@emotion/styled';\n\nexport const ProgressCircleInner = styled.div<{\n size: number;\n}>`\n width: ${({ size }) => size - (size / 10) * 2}px;\n height: ${({ size }) => size - (size / 10) * 2}px;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n border-radius: 50%;\n\n background: #fff;\n`;\n","import { useTheme } from '@emotion/react';\nimport { ColorsKeys } from '@global-types/emotion';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { ProgressCircleBase } from './ProgressCircleBase';\nimport { ProgressCircleOuter } from './ProgressCircleOuter';\nimport { ProgressCircleInner } from './ProgressCircleInner';\nimport { ProgressCircleProps } from './types';\n\nconst ProgressCircle = ({\n max,\n currentValue,\n color = 'green',\n size = 160,\n infoContent,\n}: ProgressCircleProps) => {\n const theme = useTheme();\n\n const gradientId = `gradient-${uuidv4()}`;\n const barStroke = size / 10 / 2;\n const currentPercentage = (currentValue / max) * 100;\n const fullStroke = 2 * (22 / 7) * (size / 2 - barStroke);\n const svgOffset =\n fullStroke -\n (((2 * 22) / 7) * (size / 2 - barStroke) * currentPercentage) / 100;\n const colorName = `${color}Lighter` as ColorsKeys;\n const colorValue = theme.colors[colorName] || theme.colors[color];\n\n return (\n <ProgressCircleBase\n gradientId={gradientId}\n role=\"progressbar\"\n fullStroke={fullStroke}\n svgOffset={svgOffset}\n color={color}\n size={size}>\n <ProgressCircleOuter size={size}>\n <ProgressCircleInner size={size}>{infoContent}</ProgressCircleInner>\n </ProgressCircleOuter>\n\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n version=\"1.1\"\n viewBox={`0 0 ${size} ${size}`}\n preserveAspectRatio=\"xMinYMin slice\"\n width=\"100%\"\n height=\"100%\">\n <defs>\n <linearGradient id={gradientId}>\n <stop offset=\"0%\" stopColor={theme.colors[color]} />\n <stop offset=\"100%\" stopColor={colorValue} />\n </linearGradient>\n </defs>\n <circle cx={size / 2} cy={size / 2} r={size / 2 - barStroke} />\n </svg>\n </ProgressCircleBase>\n );\n};\n\nexport default ProgressCircle;\n","import { Children, isValidElement, cloneElement } from 'react';\n\nimport { ProgressLegendProps } from './types';\n\nconst ProgressLegend = ({\n children,\n vertical = false,\n}: ProgressLegendProps) => {\n const mapPosition = {\n horizontal: {\n width: '100%',\n height: `12px`,\n },\n vertical: {\n height: '100%',\n width: `35px`,\n },\n };\n\n return (\n <div\n style={{\n position: 'relative',\n fontSize: '10px',\n fontWeight: 700,\n ...mapPosition[vertical ? 'vertical' : 'horizontal'],\n }}>\n {Children.map(children, (child) => {\n // istanbul ignore else\n if (isValidElement(child)) {\n return cloneElement(child, {\n ...child.props,\n vertical,\n });\n }\n })}\n </div>\n );\n};\n\nexport default ProgressLegend;\n","import { ProgressLegendItemProps } from './types';\n\nconst ProgressLegendItem = ({\n position = 'current',\n percentage,\n vertical = false,\n children,\n}: ProgressLegendItemProps) => {\n const mapPosition = {\n horizontal: {\n top: 0,\n left:\n position === 'start'\n ? 0\n : position === 'current'\n ? `${percentage}%`\n : '100%',\n transform:\n position === 'current' || position === 'end'\n ? 'translateX(-50%)'\n : 'none',\n },\n vertical: {\n width: '100%',\n top:\n position === 'start'\n ? '100%'\n : position === 'current'\n ? `${100 - percentage}%`\n : 0,\n transform:\n position === 'start'\n ? 'translateY(-100%)'\n : position === 'current'\n ? 'translateY(-50%)'\n : 'none',\n },\n };\n return (\n <div\n style={{\n position: 'absolute',\n display: 'block',\n lineHeight: 1,\n ...mapPosition[vertical ? 'vertical' : 'horizontal'],\n }}>\n {children}\n </div>\n );\n};\n\nexport default ProgressLegendItem;\n","import { Children, isValidElement, cloneElement } from 'react';\n\nimport { ProgressVerticalProps } from './types';\n\nconst ProgressVertical = ({ children }: ProgressVerticalProps) => {\n return (\n <div\n style={{\n display: 'flex',\n height: '100%',\n }}>\n {Children.map(children, (child) => {\n // istanbul ignore else\n if (isValidElement(child)) {\n return cloneElement(child, {\n vertical: true,\n });\n }\n })}\n </div>\n );\n};\nexport default ProgressVertical;\n","import * as React from 'react';\n\nimport { StepperContextType } from './types';\n\nconst StepperContext = React.createContext<StepperContextType>({\n activeStep: 0,\n orientation: 'horizontal',\n color: 'grey',\n inverted: false,\n});\n\nexport function useStepperContext(): StepperContextType {\n return React.useContext(StepperContext);\n}\n\nexport default StepperContext;\n","import React from 'react';\nimport { css } from '@emotion/react';\n\nimport { StepperContextType, StepperProps } from './types';\nimport { StepperContext } from '.';\n\nconst Stepper = ({\n activeStep = 0,\n orientation = 'horizontal',\n color = '#4178e1',\n inverted = false,\n children,\n sx,\n}: StepperProps) => {\n const childrenArray = React.Children.toArray(children).filter(Boolean);\n\n if (inverted) {\n childrenArray.reverse();\n }\n\n const steps = (childrenArray as React.ReactElement[]).map((child, index) => {\n return React.cloneElement(child, {\n index: inverted ? childrenArray.length - index - 1 : index,\n ...child.props,\n });\n });\n\n const contextValue: StepperContextType = React.useMemo(\n () => ({ activeStep, orientation, color, inverted }),\n [activeStep, orientation, color, inverted],\n );\n\n return (\n <StepperContext.Provider value={contextValue}>\n <div\n data-testid=\"stepper\"\n css={css`\n display: flex;\n flex-direction: ${orientation === 'vertical' ? 'column' : 'row'};\n row-gap: 8px;\n `}\n style={{ ...sx }}>\n {steps}\n </div>\n </StepperContext.Provider>\n );\n};\n\nexport default Stepper;\n","import * as React from 'react';\n\nexport interface StepContextType {\n index: number;\n active: boolean;\n completed: boolean;\n disabled: boolean;\n}\n\nconst StepContext = React.createContext<StepContextType>({\n index: 0,\n active: false,\n completed: false,\n disabled: false,\n});\n\nexport function useStepContext(): StepContextType {\n return React.useContext(StepContext);\n}\n\nexport default StepContext;\n","import { css } from '@emotion/react';\n\nexport const StepConnectorWrapper = (inverted?: boolean) => css`\n position: absolute;\n top: 10px;\n\n left: calc(${inverted ? '50%' : '-50%'} + 16px);\n right: calc(${inverted ? '-50%' : '50%'} + 16px);\n`;\n\nexport const StepConnectorLineVertical = (color?: string) => css`\n display: block;\n border-color: ${color};\n border-left-style: solid;\n border-left-width: 2px;\n min-height: 20px;\n`;\n\nexport const StepConnectorLine = (color?: string) => css`\n display: block;\n border-color: ${color};\n border-top-width: 2px;\n border-top-style: solid;\n`;\n","import { css, useTheme } from '@emotion/react';\n\nimport { useStepperContext } from '@components/Stepper';\nimport { useStepContext } from '@components/Step';\n\nimport {\n StepConnectorLineVertical,\n StepConnectorWrapper,\n StepConnectorLine,\n} from './style';\n\nconst StepConnector = () => {\n const theme = useTheme();\n const { orientation, color, inverted } = useStepperContext();\n const { active, completed } = useStepContext();\n\n const selectedColor = active || completed ? color : theme.colors.grey;\n\n return orientation === 'vertical' ? (\n <div\n css={css`\n flex: 1 1 auto;\n margin-left: calc(12px - 1px);\n `}>\n <span css={StepConnectorLineVertical(selectedColor)}></span>\n </div>\n ) : (\n <div css={StepConnectorWrapper(inverted)}>\n <span css={StepConnectorLine(selectedColor)}></span>\n </div>\n );\n};\n\nexport default StepConnector;\n","import { useMemo } from 'react';\nimport { css } from '@emotion/react';\n\nimport { useStepperContext } from '@components/Stepper';\nimport StepConnector from '@components/StepConnector';\n\nimport StepContext from './Step.context';\n\nconst Step = ({\n index = 0,\n children,\n Connector = StepConnector,\n}: {\n index?: number;\n children?: React.ReactElement<React.PropsWithChildren>;\n Connector?: React.FC<{ completed: boolean; active: boolean }>;\n}) => {\n const { activeStep, orientation, inverted } = useStepperContext();\n\n let [active, completed, disabled] = [false, false, false];\n\n if (activeStep === index) {\n active = activeStep === index;\n } else if (activeStep > index) {\n completed = true;\n } else if (activeStep < index) {\n disabled = true;\n }\n\n const contextValue = useMemo(\n () => ({ index, active, completed, disabled }),\n [index, active, completed, disabled],\n );\n\n return (\n <StepContext.Provider value={contextValue}>\n {!inverted && orientation === 'vertical' && index !== 0 ? (\n <Connector active={active} completed={completed} />\n ) : null}\n\n <div\n css={css`\n flex: 1 1 0%;\n position: relative;\n `}>\n {orientation === 'horizontal' && index !== 0 ? (\n <Connector active={active} completed={completed} />\n ) : null}\n {children}\n </div>\n {inverted && orientation === 'vertical' && index !== 0 && (\n <Connector active={active} completed={completed} />\n )}\n </StepContext.Provider>\n );\n};\n\nexport default Step;\n","import { css } from '@emotion/react';\n\nexport const label = css`\n display: flex;\n align-items: center;\n flex-direction: column;\n`;\nexport const labelIcon = css`\n display: flex;\n height: 22px;\n\n align-items: center;\n`;\nexport const labelIconVertical = css`\n display: flex;\n flex-shrink: 0;\n justify-content: center;\n align-items: center;\n\n width: 24px;\n height: 24px;\n\n margin-right: 5px;\n`;\nexport const labelText = css`\n text-align: center;\n`;\nexport const labelTitle = (color: string) => css`\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 24px;\n height: 24px;\n\n border-radius: 50%;\n background-color: ${color};\n`;\n","import React from 'react';\n\nimport Icon from '@components/Icon';\nimport { useStepperContext } from '@components/Stepper';\nimport { useStepContext } from '@components/Step';\n\nimport {\n label,\n labelIcon,\n labelIconVertical,\n labelText,\n labelTitle,\n} from './styles';\nimport { useTheme } from '@emotion/react';\n\nconst StepLabel = ({\n children,\n StepIcon,\n}: {\n children?: React.ReactNode;\n StepIcon?: React.FC<{ index: number; completed: boolean; active: boolean }>;\n}) => {\n const theme = useTheme();\n const { orientation, color } = useStepperContext();\n const { index, active, completed } = useStepContext();\n\n const styleIcon = orientation === 'vertical' ? labelIconVertical : labelIcon;\n\n return (\n <div\n role=\"listitem\"\n css={label}\n style={{\n flexDirection: orientation === 'vertical' ? 'row' : 'column',\n }}>\n <div css={styleIcon}>\n {/* If user set a custom icon, overwrite default */}\n {StepIcon ? (\n <StepIcon index={index} completed={completed} active={completed} />\n ) : completed ? (\n <Icon name=\"check\" size={16} color={color} />\n ) : (\n <div\n css={labelTitle(\n active || completed\n ? color\n : (theme.colors.greyLighter as string),\n )}>\n <span\n style={{\n color:\n active || completed ? theme.colors.white : theme.colors.grey,\n }}>\n {index + 1}\n </span>\n </div>\n )}\n </div>\n\n <div css={labelText}>{children}</div>\n </div>\n );\n};\n\nexport default StepLabel;\n","import styled from '@emotion/styled';\nimport { outlineStyles } from '@styles/safari-focus-outline';\n\nconst SwitchBase = styled.button`\n width: 44px;\n height: 24px;\n border: 0;\n outline: 0;\n padding: 0;\n border-radius: 50px;\n position: relative;\n background: ${({ theme }) =>\n `linear-gradient(117.5deg, ${theme.colors.greenLighter}, ${theme.colors.green});`};\n cursor: pointer;\n\n &::before {\n position: absolute;\n content: '';\n height: 14px;\n width: 14px;\n right: 5px;\n bottom: calc(50% - 7px);\n background-color: ${({ theme }) => theme.colors.white};\n\n transition: 0.4s;\n\n border-radius: 50%;\n }\n\n &[aria-checked='false'] {\n background: ${({ theme }) => theme.colors.greyFocused};\n }\n\n &:focus {\n box-shadow: ${({ theme }) => `-4px 4px 10px ${theme.colors.green40}`};\n outline: 0;\n }\n\n &:disabled {\n background: ${({ theme }) => theme.colors.greyDisabled};\n cursor: auto;\n }\n\n &:not(:disabled):hover {\n box-shadow: ${({ theme }) => `-4px 4px 10px ${theme.colors.green40}`};\n }\n\n &[aria-checked='false']:focus::after,\n &:not(:disabled)[aria-checked='false']:hover::after {\n ${({ theme }) => outlineStyles(theme, 'greenLighter', '50px')}\n }\n\n &[aria-checked='true']::before {\n transform: translateX(0);\n }\n\n &[aria-checked='false']::before {\n transform: translateX(-20px);\n }\n`;\n\nexport default SwitchBase;\n","import { createContext, useState, useCallback, useContext } from 'react';\n\nexport interface ISwitchContext {\n isOn: boolean;\n toggle: () => void;\n}\n\nexport const SwitchContext = createContext<ISwitchContext>({\n isOn: true,\n toggle: () => {\n /* default no-op */\n },\n});\n\nexport const useSwitchContext = () => useContext(SwitchContext);\n\nconst useSwitch = (initialState = false): [boolean, () => void] => {\n const [isOn, setIsOn] = useState(initialState);\n const toggle = useCallback(() => setIsOn((state) => !state), []);\n\n return [isOn, toggle];\n};\n\nexport const SwitchContextProvider = ({\n initialState,\n children,\n}: {\n initialState?: boolean;\n children: React.ReactNode;\n}) => {\n const [isOn, toggle] = useSwitch(initialState);\n\n return (\n <SwitchContext.Provider value={{ isOn, toggle }}>\n {children}\n </SwitchContext.Provider>\n );\n};\n","import SwitchBase from './SwitchBase';\nimport { useSwitchContext } from './SwitchContext';\n\nimport { ISwitchProps } from './types';\n\nconst Switch = ({ label, isDisabled = false }: ISwitchProps) => {\n const { isOn, toggle } = useSwitchContext();\n\n return (\n <SwitchBase\n type=\"button\"\n role=\"switch\"\n aria-readonly={isDisabled}\n aria-checked={isOn}\n aria-label={label}\n disabled={isDisabled}\n onClick={() => !isDisabled && toggle()}\n />\n );\n};\nexport default Switch;\n","import styled from '@emotion/styled';\nimport { CommonProps } from '@global-types/emotion';\n\nconst Table = styled.table<CommonProps>`\n display: table;\n\n width: 100%;\n\n border-collapse: collapse;\n border-spacing: 0;\n`;\n\nexport default Table;\n","import styled from '@emotion/styled';\nimport { CommonProps } from '@global-types/emotion';\n\nconst TableCell = styled.td<{ align?: string } & CommonProps>`\n display: table-cell;\n\n vertical-align: inherit;\n text-align: ${({ align }) => (align ? align : 'left')};\n\n border-bottom: 1px solid #eef1f7;\n border-right: 1px solid #eef1f7;\n\n padding: 14px;\n`;\n\nexport default TableCell;\n","import styled from '@emotion/styled';\n\nimport TableCell from '@components/TableCell';\nimport { CommonProps } from '@global-types/emotion';\n\nconst TableHead = styled.thead<CommonProps>({\n display: 'table-header-group',\n background: '#eef1f7',\n [`& ${TableCell}`]: {\n borderBottom: '1px solid white',\n borderRight: '1px solid white',\n },\n});\n\nexport default TableHead;\n","import styled from '@emotion/styled';\nimport { CommonProps } from '@global-types/emotion';\n\nconst TableRow = styled.tr<CommonProps>`\n display: table-row;\n\n outline: 0;\n\n vertical-align: middle;\n`;\n\nexport default TableRow;\n","import styled from '@emotion/styled';\nimport { CommonProps } from '@global-types/emotion';\n\nconst TableBody = styled.tbody<CommonProps>`\n display: table-row-group;\n`;\n\nexport default TableBody;\n","import { useState, useMemo, useRef } from 'react';\nimport {\n useFloating,\n offset,\n flip,\n shift,\n arrow,\n autoUpdate,\n useHover,\n useClick,\n useDismiss,\n useRole,\n useInteractions,\n} from '@floating-ui/react';\nimport { UseTooltip } from './types';\n\nexport const useTooltip: UseTooltip = ({\n placement,\n enableClick = true,\n enableHover = false,\n offsetPx = 12,\n size = 'small',\n hasArrow = true,\n arrowProps = {},\n isOpen: isInitOpen = false,\n}) => {\n const [isOpen, setIsOpen] = useState(isInitOpen || false);\n const arrowRef = useRef(null);\n\n const floatingData = useFloating({\n open: isOpen,\n onOpenChange: setIsOpen,\n placement,\n middleware: [\n offset(offsetPx),\n flip(),\n shift(),\n arrow({\n element: arrowRef,\n }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const { context } = floatingData;\n\n const hover = useHover(context, { enabled: enableHover, move: true });\n const click = useClick(context, { enabled: enableClick });\n const dismiss = useDismiss(context);\n const role = useRole(context);\n\n const interactionsData = useInteractions([hover, click, dismiss, role]);\n\n return useMemo(\n () => ({\n isOpen,\n arrowRef,\n size,\n hasArrow,\n arrowProps,\n ...floatingData,\n ...interactionsData,\n }),\n [\n isOpen,\n arrowRef,\n size,\n hasArrow,\n arrowProps,\n floatingData,\n interactionsData,\n ],\n );\n};\n","import { createContext, useContext } from 'react';\nimport { TooltipContextType, UseTooltipContext } from './types';\n\nexport const TooltipContext = createContext<TooltipContextType>(null);\n\nexport const useTooltipContext: UseTooltipContext = () => {\n const tooltipContext = useContext(TooltipContext);\n\n if (tooltipContext == null) {\n throw new Error(\n 'The component should be wrapped with <Tooltip> to have access to the context',\n );\n }\n\n return tooltipContext;\n};\n","import { useTooltip } from './useTooltip';\nimport { TooltipContext } from './useTooltipContext';\nimport { ITooltipProps } from './types';\n\n/*\n * <Tooltip>\n * <TooltipTrigger>\n * <Button />\n * </TooltipTrigger>\n * <TooltipContent>Tooltip</TooltipContent>\n * </Tooltip>\n * */\nconst Tooltip = ({ children, ...props }: ITooltipProps) => {\n const tooltip = useTooltip(props);\n\n return (\n <TooltipContext.Provider value={tooltip}>\n {children}\n </TooltipContext.Provider>\n );\n};\nexport default Tooltip;\n","import { cloneElement, isValidElement } from 'react';\n\nimport { ITooltipTriggerProps } from '@components/Tooltip/types';\nimport { useTooltipContext } from '@components/Tooltip/useTooltipContext';\n\nconst TooltipTrigger = ({ children }: ITooltipTriggerProps) => {\n const tooltipCtx = useTooltipContext();\n\n if (isValidElement(children)) {\n return cloneElement(\n children,\n tooltipCtx?.getReferenceProps({\n ref: tooltipCtx.refs.setReference,\n }),\n );\n }\n\n return null;\n};\n\nexport default TooltipTrigger;\n","import { useTheme } from '@emotion/react';\nimport { FloatingArrow } from '@floating-ui/react';\nimport { useTooltipContext } from './useTooltipContext';\nimport { TooltipArrowProps } from './types';\n\nexport const TooltipArrow = ({\n width = 10,\n height = 10,\n fill,\n ...props\n}: TooltipArrowProps) => {\n const { context, arrowRef } = useTooltipContext();\n const theme = useTheme();\n\n return (\n <FloatingArrow\n data-testid=\"floating-arrow\"\n ref={arrowRef}\n context={context}\n width={width}\n height={height}\n fill={fill || theme.colors.greyLighter}\n {...props}\n />\n );\n};\n","import styled from '@emotion/styled';\n\nexport const TooltipContentBase = styled.div`\n line-height: 0.75rem; /* 12px */\n background: ${({ theme }) => theme.colors.greyLighter};\n border-radius: 8px;\n color: ${({ theme }) => theme.colors.greyDarker};\n font-weight: 600;\n`;\n","import { css } from '@emotion/react';\n\nexport const small = css`\n font-size: 0.579rem; // 9.26px\n padding: 6px 12px;\n`;\n\nexport const medium = css`\n font-size: 0.694rem; // 11.11px\n padding: 8px 16px;\n`;\n\nexport const large = css`\n font-size: 0.833rem; // 13.33px\n padding: 10px 20px;\n`;\n","import { ITooltipContentSizes } from './types';\nimport { small, medium, large } from './styles';\n\nexport const mapSizes: ITooltipContentSizes = {\n small,\n medium,\n large,\n};\n","import { forwardRef } from 'react';\nimport {\n FloatingPortal,\n FloatingFocusManager,\n useMergeRefs,\n} from '@floating-ui/react';\n\nimport { TooltipArrow } from '@components/Tooltip/TooltipArrow';\nimport { TooltipContentBase } from '@components/Tooltip/TooltipContentBase';\nimport { ITooltipContentProps, TooltipSize } from '@components/Tooltip/types';\nimport { useTooltipContext } from '@components/Tooltip/useTooltipContext';\nimport { mapSizes } from '@components/Tooltip/utils';\n\nconst TooltipContent = forwardRef<HTMLDivElement, ITooltipContentProps>(\n function TooltipContent({ children, className, style }, refProp) {\n const tooltipCtx = useTooltipContext();\n const ref = useMergeRefs([tooltipCtx?.refs.setFloating, refProp]);\n\n return (\n <FloatingPortal>\n {tooltipCtx?.isOpen && (\n <FloatingFocusManager context={tooltipCtx.context} modal={false}>\n <TooltipContentBase\n {...tooltipCtx.getFloatingProps({\n ref,\n css:\n tooltipCtx.size && mapSizes[tooltipCtx.size as TooltipSize],\n className,\n style: {\n position: tooltipCtx.strategy,\n top: tooltipCtx.y ?? 0,\n left: tooltipCtx.x ?? 0,\n width: 'max-content',\n ...style,\n },\n })}>\n {tooltipCtx.hasArrow && (\n <TooltipArrow {...tooltipCtx.arrowProps} />\n )}\n {children}\n </TooltipContentBase>\n </FloatingFocusManager>\n )}\n </FloatingPortal>\n );\n },\n);\n\nexport default TooltipContent;\n","import { TooltipContentBase } from './TooltipContentBase';\nimport { SimpleChartTooltipProps } from './types';\nimport { mapSizes } from './utils';\n\nexport const SimpleChartTooltip = ({\n point,\n size = 'small',\n renderValue,\n}: SimpleChartTooltipProps) => {\n const { data } = point;\n const { xFormatted, yFormatted } = data;\n\n return (\n <TooltipContentBase css={mapSizes[size]}>\n {typeof renderValue === 'function'\n ? renderValue(data)\n : `${xFormatted} - ${yFormatted}`}\n </TooltipContentBase>\n );\n};\n","import ProgressBar from '@components/ProgressBar';\nimport Icon from '@components/Icon';\nimport Typography from '@components/Typography';\n\nimport { TooltipContentBase } from './TooltipContentBase';\nimport { IProgressChartTooltipProps } from './types';\nimport { mapSizes } from './utils';\n\nexport const ProgressChartTooltip = ({\n caption,\n value,\n valueFormatted,\n iconName,\n barProps = {},\n}: IProgressChartTooltipProps) => {\n const { color } = barProps;\n\n return (\n <TooltipContentBase\n css={[mapSizes.small, { padding: '12px', width: '112px' }]}>\n <div\n css={{\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n lineHeight: '1rem',\n marginBottom: '6px',\n }}>\n <Typography variant=\"body2\" weight=\"medium\">\n {caption}\n </Typography>\n <Typography\n variant=\"body3\"\n weight=\"lighter\"\n css={{\n display: 'flex',\n alignItems: 'center',\n }}>\n {valueFormatted}\n {iconName && <Icon name={iconName} size={8} />}\n </Typography>\n </div>\n\n <ProgressBar percentage={value} color={color} bgColor={'#fff'} size={6} />\n </TooltipContentBase>\n );\n};\n","import { createContext, useState, useContext } from 'react';\nimport { ITab, ITabBarContext } from './types';\n\nconst defaultTab: ITab = {\n tabId: Number.NaN,\n renderContent() {\n return null;\n },\n};\n\nexport const TabBarContext = createContext<ITabBarContext>({\n activeTab: defaultTab,\n setActiveTab() {\n /* default no-op */\n },\n});\n\nexport const useTabBarContext = () => useContext(TabBarContext);\n\nconst useTabBar = (initialTab?: ITab): ITabBarContext => {\n const [tab, setTab] = useState<ITab | undefined>(initialTab);\n\n return {\n activeTab: tab,\n setActiveTab: (tab) => setTab(tab),\n };\n};\n\nexport const TabBarContextProvider = ({\n initialTab = defaultTab,\n children,\n}: {\n initialTab?: ITab;\n children: React.ReactNode;\n}) => {\n const { activeTab, setActiveTab } = useTabBar(initialTab);\n\n return (\n <TabBarContext.Provider value={{ activeTab, setActiveTab }}>\n {children}\n </TabBarContext.Provider>\n );\n};\n","import styled from '@emotion/styled';\nimport { Children, cloneElement, isValidElement } from 'react';\nimport { useTabBarContext } from './TabBarContext';\nimport { ITabBarProps } from './types';\n\nconst TabBarBase = styled.div``;\n\n/**\n * This component doesn't show contents of the selected tab,\n * however it accepts a required `renderContent()` render\n * prop and stores it into the Context. This lets the parent\n * component to decide where to render the contents of the\n * selected tab.\n * */\nconst TabBar = ({ children }: ITabBarProps) => {\n const { activeTab, setActiveTab } = useTabBarContext();\n const activeTabId = activeTab?.tabId;\n\n return (\n <TabBarBase role=\"tablist\">\n {Children.map(children, (child) => {\n // istanbul ignore else\n if (isValidElement(child)) {\n const { renderContent, ...rest } = child.props;\n const tabId = rest.tabId;\n\n return cloneElement(child, {\n key: tabId,\n isActive: activeTabId === tabId,\n onClick: () =>\n activeTabId !== tabId &&\n setActiveTab({\n tabId,\n renderContent: renderContent.bind(null, rest),\n }),\n });\n }\n })}\n </TabBarBase>\n );\n};\n\nexport default TabBar;\n","import styled from '@emotion/styled';\n\nimport { ISmallTabProps } from '@components/TabBar/types';\n\nexport const TabBase = styled.button<Pick<ISmallTabProps, 'isActive'>>`\n height: 34px;\n border: 0;\n outline: 0;\n padding: 0 14px;\n margin: 0 1px 0 0;\n color: ${({ theme }) => theme.colors.greyDarker};\n background: ${({ isActive, theme }) =>\n isActive ? theme.colors.greyFocused : theme.colors.greyLighter};\n font-size: 14px;\n line-height: 15px;\n cursor: pointer;\n\n &:first-of-type {\n border-radius: 12px 0 0 12px;\n }\n\n &:last-child {\n border-radius: 0 12px 12px 0;\n margin-right: 0;\n }\n\n &:focus {\n background: ${({ isActive, theme }) =>\n isActive ? theme.colors.greyFocused : theme.colors.greySelectedMenuItem};\n }\n`;\n","import { ISmallTabProps } from '@components/TabBar/types';\n\nimport { TabBase } from './TabBase';\n\nconst Tab = ({\n onClick,\n isActive,\n text,\n ariaControls,\n tabId,\n}: ISmallTabProps) => {\n return (\n <TabBase\n role=\"tab\"\n id={`${tabId}`}\n aria-selected={isActive}\n aria-controls={ariaControls}\n tabIndex={0}\n isActive={isActive}\n title={text}\n onClick={() => {\n // istanbul ignore else\n if (typeof onClick === 'function') {\n onClick();\n }\n }}>\n {text}\n </TabBase>\n );\n};\nexport default Tab;\n","import styled from '@emotion/styled';\nimport { ILargeTabProps } from '@components/TabBar/types';\n\nexport const LargeTabBase = styled.button<Pick<ILargeTabProps, 'isActive'>>`\n width: 100px;\n max-width: 100px;\n height: 60px;\n border: 0;\n border-radius: 12px;\n outline: 0;\n margin: 0 12px 0 0;\n padding: 0;\n color: ${({ theme }) => theme.colors.greyDarker};\n background: ${({ isActive, theme }) =>\n isActive ? theme.colors.greyFocused : theme.colors.greyLighter};\n box-shadow: ${({ isActive, theme }) =>\n isActive ? `0px 10px 40px ${theme.colors.greyShadow24}` : null};\n cursor: pointer;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:focus {\n background: ${({ isActive, theme }) =>\n isActive ? theme.colors.greyFocused : theme.colors.greySelectedMenuItem};\n }\n\n p {\n letter-spacing: 0.1px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n @media (max-width: 900px) {\n max-width: 70px;\n }\n`;\n","import { css, Theme } from '@emotion/react';\n\nexport const topTextStyle = (theme: Theme) => css`\n fontSize: '15.5px',\n lineHeight: '22px',\n fontWeight: 300,\n color: ${theme.colors.greyDarker60},\n margin: 0,\n`;\n\nexport const bottomTextStyle = (theme: Theme) => css`\n fontSize: '14px',\n fontWeight: 500,\n lineHeight: '18px',\n color: ${theme.colors.greyDarker},\n margin: '3px 0 0 0',\n`;\n","import { useTheme } from '@emotion/react';\n\nimport { ILargeTabProps } from '@components/TabBar/types';\n\nimport { LargeTabBase } from './LargeTabBase';\n\nimport { topTextStyle, bottomTextStyle } from './styles';\n\nconst LargeTab = ({\n topText,\n bottomText,\n isActive,\n onClick,\n ariaControls,\n tabId,\n}: ILargeTabProps) => {\n const theme = useTheme();\n return (\n <LargeTabBase\n role=\"tab\"\n id={`${tabId}`}\n aria-selected={isActive}\n aria-controls={ariaControls}\n tabIndex={0}\n isActive={isActive}\n title={`${topText}-${bottomText}`}\n onClick={() => {\n // istanbul ignore else\n if (typeof onClick === 'function') {\n onClick();\n }\n }}>\n <p css={topTextStyle(theme)}>{topText}</p>\n <p css={bottomTextStyle(theme)}>{bottomText}</p>\n </LargeTabBase>\n );\n};\nexport default LargeTab;\n","import { css, Theme } from '@emotion/react';\n\nimport theme from '@themes/main';\n\nexport const pinkBorder = css`\n border: 1px solid ${theme.colors.pink};\n`;\nexport const yellowBorder = css`\n border: 1px solid ${theme.colors.yellow};\n`;\nexport const greenBorder = css`\n border: 1px solid ${theme.colors.green};\n`;\nexport const turquoiseBorder = css`\n border: 1px solid ${theme.colors.turquoise};\n`;\nexport const purpleBorder = css`\n border: 1px solid ${theme.colors.purple};\n`;\nexport const blueLightBorder = css`\n border: 1px solid ${theme.colors.blueLight};\n`;\nexport const blueBorder = css`\n border: 1px solid ${theme.colors.blue};\n`;\nexport const yellowWarmBorder = css`\n border: 1px solid ${theme.colors.yellowWarm};\n`;\n\nexport const pink = (theme: Theme) => css`\n color: ${theme.colors.pink};\n\n background-color: ${theme.colors.pink20};\n background: linear-gradient(\n 90deg,\n ${theme.colors.pink20} 0%,\n ${theme.colors.pinkLighter20} 100%\n );\n box-shadow: -4px 4px 10px ${theme.colors.pinkShadow40};\n`;\n\nexport const yellow = (theme: Theme) => css`\n color: ${theme.colors.yellow};\n\n background-color: ${theme.colors.yellow20};\n background: linear-gradient(\n 90deg,\n ${theme.colors.yellow20} 0%,\n ${theme.colors.yellowLighter20} 100%\n );\n box-shadow: -4px 4px 10px ${theme.colors.yellowLighter40};\n`;\n\nexport const yellowWarm = (theme: Theme) => css`\n color: ${theme.colors.yellowLighter};\n\n background-color: ${theme.colors.yellowLighter20};\n background: linear-gradient(\n 90deg,\n ${theme.colors.yellowLighter20} 0%,\n ${theme.colors.yellowWarm20} 100%\n );\n box-shadow: -4px 4px 10px ${theme.colors.yellowWarm40};\n`;\n\nexport const green = (theme: Theme) => css`\n color: ${theme.colors.green};\n\n background-color: ${theme.colors.green20};\n background: linear-gradient(\n 270deg,\n ${theme.colors.greenLighter20} 0%,\n ${theme.colors.green20} 100%\n );\n box-shadow: -4px 4px 10px ${theme.colors.greenLighter40};\n`;\n\nexport const turquoise = (theme: Theme) => css`\n color: ${theme.colors.turquoise};\n\n background-color: ${theme.colors.turquoise20};\n background: linear-gradient(\n 90deg,\n ${theme.colors.turquoise20} 0%,\n ${theme.colors.turquoiseLighter20} 100%\n );\n box-shadow: -4px 4px 10px ${theme.colors.turquoiseShadow40};\n`;\n\nexport const purple = (theme: Theme) => css`\n color: ${theme.colors.purple};\n\n background-color: ${theme.colors.purpleLighter20};\n background: linear-gradient(\n 270deg,\n ${theme.colors.purpleLighter20} 0%,\n ${theme.colors.purple20} 100%\n );\n box-shadow: -4px 4px 10px ${theme.colors.purpleLighter40};\n`;\nexport const blue = (theme: Theme) => css`\n color: ${theme.colors.blue};\n\n background-color: ${theme.colors.blue20};\n background: linear-gradient(\n 90deg,\n ${theme.colors.blueLighter20},\n ${theme.colors.blue20}\n );\n box-shadow: -4px 4px 10px ${theme.colors.blueLightDarker40};\n`;\n\nexport const blueLight = (theme: Theme) => css`\n color: ${theme.colors.blueLight};\n\n background-color: ${theme.colors.blueLight20};\n background: linear-gradient(\n 270deg,\n ${theme.colors.blueLight20} 0%,\n ${theme.colors.blueLightLighter20} 100%\n );\n box-shadow: -4px 4px 10px ${theme.colors.blueLightLighter40};\n`;\n","import Badge from '@components/Badge';\nimport {\n blue,\n green,\n blueLight,\n pink,\n purple,\n turquoise,\n yellow,\n yellowWarm,\n} from './styles';\n\nimport {\n pinkBorder,\n yellowBorder,\n greenBorder,\n turquoiseBorder,\n purpleBorder,\n blueLightBorder,\n blueBorder,\n yellowWarmBorder,\n} from './styles';\nimport { TagsProps } from './types';\n\nconst mapColors: MainColors = {\n pink: [pink, pinkBorder],\n yellow: [yellow, yellowBorder],\n green: [green, greenBorder],\n turquoise: [turquoise, turquoiseBorder],\n purple: [purple, purpleBorder],\n blueLight: [blueLight, blueLightBorder],\n blue: [blue, blueBorder],\n yellowWarm: [yellowWarm, yellowWarmBorder],\n};\n\nconst Tag = ({\n color = 'purple',\n size = 'medium',\n className,\n children,\n}: TagsProps) => (\n <Badge color={color} size={size} css={mapColors[color]} className={className}>\n {children}\n </Badge>\n);\n\nexport default Tag;\n","import styled from '@emotion/styled';\n\nexport const TextareaBase = styled.textarea`\n flex: 1 100%;\n\n background: ${({ theme }) => theme.colors.white};\n border-radius: 12px;\n background-origin: border-box;\n background-clip: padding-box, border-box;\n\n border: none;\n box-shadow: ${({ theme }) => `inset 0 0 1.5px 0 ${theme.colors.grey}`};\n\n color: ${({ theme }) => theme.colors.greyDarker};\n\n width: 100%;\n min-height: 114px;\n padding: 14px;\n\n font-weight: 400;\n font-size: 0.875rem;\n line-height: 1rem;\n\n &::placeholder {\n color: ${({ theme }) => theme.colors.greyDarker60};\n }\n\n &:hover {\n box-shadow: ${({ theme }) =>\n `inset 0 0 1.5px 0 ${theme.colors.greyDarker60}`};\n }\n\n &:focus {\n box-shadow: ${({ theme }) => `inset 0 0 1.5px 0 ${theme.colors.grey40}`};\n }\n\n &:disabled {\n color: ${({ theme }) => `${theme.colors.grey}`};\n box-shadow: ${({ theme }) => `inset 0 0 1.5px 0 ${theme.colors.grey}`};\n background: ${({ theme }) => theme.colors.greyLighter};\n\n &::placeholder {\n color: ${({ theme }) => theme.colors.grey};\n }\n }\n`;\n","import { callAll } from '@ssa-ui-kit/utils';\n\nimport { TextareaProps } from './types';\nimport { TextareaBase } from './TextareaBase';\n\nconst Textarea = ({\n name,\n placeholder,\n register,\n validationSchema,\n disabled = false,\n rows = 10,\n setCountChar,\n maxLength,\n title,\n}: TextareaProps) => {\n if (!register) {\n throw new Error('Input component must be used within a Form component');\n }\n\n const { onChange, ...options } = register(name, validationSchema);\n\n return (\n <TextareaBase\n id={`formElement-${name}`}\n placeholder={placeholder}\n disabled={disabled}\n rows={rows}\n maxLength={maxLength}\n onChange={callAll(setCountChar, onChange)}\n title={title}\n {...options}\n />\n );\n};\n\nexport default Textarea;\n","import styled from '@emotion/styled';\n\nimport { InputColors } from '@components/Input/types';\n\nconst statusColor: Record<string, InputColors> = {\n error: 'red',\n success: 'greenLighter',\n basic: 'greyDarker60',\n};\n\nexport const FormHelperTextBase = styled.span<{\n status?: string;\n}>`\n display: block;\n\n font-weight: 400;\n font-size: 0.688rem;\n\n margin: 6px 0 0 4px;\n\n color: ${({ theme, status = 'basic' }) => theme.colors[statusColor[status]]};\n`;\n","import { IFormHelperText } from './types';\nimport { FormHelperTextBase } from './FormHelperTextBase';\n\nconst FormHelperText = ({\n role,\n status,\n disabled,\n children,\n}: IFormHelperText) => {\n status = disabled ? 'basic' : status;\n return (\n <FormHelperTextBase role={role} status={status}>\n {children}\n </FormHelperTextBase>\n );\n};\n\nexport default FormHelperText;\n","import React from 'react';\n\nimport Label from '@components/Label';\nimport FormHelperText from '@components/FormHelperText';\nimport Input from '@components/Input';\nimport Textarea from '@components/Textarea';\n\nimport { TextFieldProps } from './types';\n\nconst TextField = ({\n multirow,\n name,\n label,\n errors,\n helperText,\n success,\n disabled,\n maxLength,\n ...props\n}: TextFieldProps) => {\n const [countChar, setCountChar] = React.useState(0);\n\n const status = success ? 'success' : errors ? 'error' : 'basic';\n\n const handleCount = (e: React.ChangeEvent<HTMLInputElement>) =>\n setCountChar(e.currentTarget.value.length);\n\n return (\n <>\n <Label htmlFor={`formElement-${name}`}>{label}</Label>\n\n {multirow ? (\n <Textarea\n name={name}\n disabled={disabled}\n maxLength={maxLength}\n setCountChar={handleCount}\n {...props}\n />\n ) : (\n <Input name={name} status={status} disabled={disabled} {...props} />\n )}\n\n <div\n css={{\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n }}>\n <FormHelperText role=\"status\" status={status} disabled={disabled}>\n {errors ? errors?.message : helperText}\n </FormHelperText>\n <FormHelperText role=\"meter\">\n {maxLength ? `${countChar} / ${maxLength}` : null}\n </FormHelperText>\n </div>\n </>\n );\n};\n\nexport default TextField;\n","import styled from '@emotion/styled';\nimport Label from '@components/Label';\n\nexport const RadioBase = styled(Label)`\n display: inline-flex;\n flex-grow: 0;\n align-items: center;\n cursor: pointer;\n\n &:has(input:disabled) {\n cursor: default;\n }\n\n input:focus + svg {\n filter: drop-shadow(\n ${({ theme }) => `-4px 4px 10px ${theme.colors.green40}`}\n );\n }\n\n input {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n }\n\n span {\n margin-left: 10px;\n font-size: 14px;\n font-weight: 100;\n }\n`;\n","import { useId, useState } from 'react';\nimport { useTheme } from '@emotion/react';\n\nimport Icon from '@components/Icon';\n\nimport { RadioBase } from './RadioBase';\nimport { IRadioProps } from './types';\n\nconst Radio = ({\n id,\n name = '',\n value,\n isChecked,\n isDisabled,\n isRequired,\n onChange,\n text,\n className,\n}: IRadioProps) => {\n const theme = useTheme();\n\n const autoGenId = useId();\n const [isHovered, setIsHovered] = useState(false);\n const radioId = id || autoGenId;\n\n return (\n <RadioBase\n htmlFor={radioId}\n className={className}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}>\n <input\n id={radioId}\n type=\"radio\"\n value={value}\n checked={isChecked}\n onChange={() => typeof onChange === 'function' && onChange(value)}\n disabled={isDisabled}\n required={isRequired}\n name={name}\n />\n <Icon\n name={isChecked ? 'radio-on' : 'circle'}\n size={20}\n color={\n theme.colors[\n isDisabled ? 'greyFocused40' : isHovered ? 'green60' : 'green'\n ]\n }\n />\n {text ? <span data-testid={id}>{text}</span> : null}\n </RadioBase>\n );\n};\n\nexport default Radio;\n","import styled from '@emotion/styled';\n\nexport const RadioGroupBase = styled.div``;\n","import { Children, isValidElement, cloneElement, useState } from 'react';\n\nimport Radio from '@components/Radio';\n\nimport { RadioGroupBase } from './RadioGroupBase';\nimport { IRadioGroupProps } from './types';\n\nconst RadioGroup = ({\n name,\n isRequired,\n initialState,\n onChange,\n children,\n className,\n}: IRadioGroupProps) => {\n const [activeValue, setActiveValue] = useState(initialState);\n\n const onRadioValueChange = (value: string) => {\n setActiveValue(value);\n onChange(value);\n };\n\n return (\n <RadioGroupBase\n role=\"radiogroup\"\n aria-required={isRequired}\n className={className}>\n {Children.map(children, (child) => {\n /* istanbul ignore else*/\n if (isValidElement(child) && child.type === Radio) {\n const { id, value, isDisabled, text } = child.props;\n\n return cloneElement(child, {\n key: id,\n name,\n value,\n isChecked: activeValue === value,\n isDisabled,\n isRequired,\n text,\n onChange: onRadioValueChange,\n });\n }\n })}\n </RadioGroupBase>\n );\n};\n\nexport default RadioGroup;\n","import { useController } from 'react-hook-form';\nimport type { FieldValues } from 'react-hook-form';\n\nimport RadioGroup from '@components/RadioGroup';\n\nimport { IFormRadioGroupProps } from './types';\nimport { ChangeEvent } from 'react';\n\nconst FormRadioGroup = <T extends FieldValues>({\n name,\n isRequired = false,\n control,\n children,\n ...props\n}: IFormRadioGroupProps<T>) => {\n const { field } = useController<T>({\n control,\n name,\n rules: { required: isRequired },\n });\n\n return (\n <RadioGroup\n name={field.name}\n onChange={(value) => {\n field.onChange(value as unknown as ChangeEvent);\n }}\n isRequired={isRequired}\n {...props}>\n {children}\n </RadioGroup>\n );\n};\n\nexport default FormRadioGroup;\n","import { IResponsiveImageProps } from './types';\n\n/**\n * A simple wrapper over the `<img />` tag.\n *\n * Don't forget to adjust Device Pixel Ratio in DevTools\n * when testing srcSet, and use Hard Reload to force the\n * browser to load an image of another resolution.\n * */\nconst ResponsiveImage = ({ src, alt, ...props }: IResponsiveImageProps) => {\n return <img src={src} alt={alt} {...props} />;\n};\n\nexport default ResponsiveImage;\n","import styled from '@emotion/styled';\nimport { CommonProps } from '@global-types/emotion';\n\nconst Form = styled.form<CommonProps>`\n display: flex;\n flex-flow: row wrap;\n`;\n\nexport default Form;\n","import styled from '@emotion/styled';\nimport { CommonProps } from '@global-types/emotion';\n\nconst FormGroup = styled.div<CommonProps>`\n display: flex;\n\n margin: 10px 0;\n\n flex: 1 1 100%;\n flex-wrap: wrap;\n\n align-items: flex-start;\n`;\n\nexport default FormGroup;\n","import styled from '@emotion/styled';\nimport { CommonProps } from '@global-types/emotion';\n\nconst FormAction = styled.div<CommonProps>`\n flex: 1 1 100%;\n`;\n\nexport default FormAction;\n","import styled from '@emotion/styled';\n\nconst IndicatorBase = styled.div<{ background?: string }>`\n position: absolute;\n left: 0;\n z-index: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n min-width: 5px;\n min-height: 5px;\n padding: 2px;\n border-radius: 50%;\n aspect-ratio: 1;\n background: ${({ theme, background }) =>\n background\n ? background\n : `linear-gradient(291.8deg, ${theme.colors.blueLightDarker}, ${theme.colors.blueDark})`};\n\n ${({ theme }) => theme.mediaQueries.md} {\n min-width: 8px;\n min-height: 8px;\n padding: 3px;\n }\n`;\n\nexport default IndicatorBase;\n","import React from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport { css, useTheme } from '@emotion/react';\nimport IndicatorBase from './IndicatorBase';\nimport { ChildrenDataProps, IndicatorProps } from './types';\nimport { useWindowSize } from '@ssa-ui-kit/hooks';\n\nconst Indicator = ({\n isVisible = true,\n position = 'left',\n background,\n text,\n children,\n}: IndicatorProps) => {\n const indicatorRef = useRef<HTMLDivElement>(null);\n const childrenRef = useRef<HTMLDivElement | null>(null);\n const [width, setWidth] = useState<number>(0);\n const [childrenData, setChildrenData] = useState<ChildrenDataProps | null>(\n {} || null,\n );\n const { width: windowWidth } = useWindowSize();\n const theme = useTheme();\n\n const refValue = indicatorRef.current ? indicatorRef.current.offsetWidth : 0;\n const isRight = position === 'right';\n\n useEffect(() => {\n if (indicatorRef.current && childrenRef.current) {\n const refData = {\n top: childrenRef.current.offsetTop,\n left: childrenRef.current.offsetLeft,\n width: childrenRef.current.offsetWidth,\n right: childrenRef.current.offsetWidth + childrenRef.current.offsetLeft,\n };\n setWidth(refValue);\n setChildrenData(refData);\n }\n }, [width, childrenRef.current, windowWidth]);\n\n return (\n <React.Fragment>\n {isVisible ? (\n <IndicatorBase\n data-testid={`indicator-${position}`}\n ref={indicatorRef}\n css={\n childrenData && [\n css`\n top: ${childrenData.top + 2}px;\n left: ${isRight ? '-6px' : '1px'};\n transform: translate(${childrenData?.[position]}px, -50%);\n\n ${theme.mediaQueries.md} {\n left: ${isRight ? '-10px' : '1px'};\n }\n `,\n width > 8 &&\n css`\n left: ${isRight ? '4px' : '-4px'};\n transform: ${isRight\n ? `translate(${childrenData?.[position] - width}px, -50%)`\n : `translate(${childrenData?.[position]}px, -50%)`};\n\n ${theme.mediaQueries.md} {\n left: ${isRight ? '4px' : '-4px'};\n }\n `,\n width > 24 &&\n css`\n border-radius: 10px;\n aspect-ratio: 0;\n `,\n ]\n }\n background={background}>\n {text}\n </IndicatorBase>\n ) : null}\n {React.cloneElement(children, {\n ref: (ref: HTMLDivElement | null) => (childrenRef.current = ref),\n })}\n </React.Fragment>\n );\n};\n\nexport default Indicator;\n","import { Theme, css } from '@emotion/react';\n\nexport const ButtonItem = (theme: Theme) => css`\n justify-content: center;\n min-width: 40px;\n height: auto;\n padding: 8px;\n text-align: center;\n letter-spacing: 0em;\n border-radius: 0;\n box-shadow: none;\n user-select: none;\n\n &:hover,\n &:focus,\n &:active {\n box-shadow: none;\n }\n\n &:first-of-type {\n border-radius: 6px 0 0 6px;\n }\n\n &:last-child {\n border-radius: 0 6px 6px 0;\n }\n\n &:not(:last-child) {\n margin-right: 1px;\n }\n\n &.active {\n background: ${theme.colors.greyFocused};\n }\n\n &:disabled {\n background: ${theme.colors.grey};\n\n p {\n color: ${theme.colors.grey40};\n }\n }\n\n ${theme.mediaQueries.md} {\n min-width: 65px;\n padding: 12px;\n\n p {\n font-size: 13.3px;\n line-height: 15px;\n }\n }\n`;\n","import React, { useState } from 'react';\nimport Button from '@components/Button';\nimport Typography from '@components/Typography';\nimport { ButtonGroupProps, ButtonGroupItem } from './types';\nimport { ButtonItem } from './styles';\n\nexport const ButtonGroup = ({\n items,\n buttonStyles,\n selectedItem,\n onClick,\n}: ButtonGroupProps) => {\n const [activeBtn, setActiveBtn] = useState(selectedItem || items[0]);\n const handleClick = (item: ButtonGroupItem) => () => {\n setActiveBtn(item);\n onClick(item);\n };\n\n return (\n <React.Fragment>\n {items.map((item) => {\n const isActive = activeBtn.id === item.id && !item.isDisabled;\n return (\n <Button\n key={item.id}\n aria-pressed={isActive}\n variant=\"secondary\"\n size=\"small\"\n isDisabled={item.isDisabled}\n aria-disabled={item.isDisabled}\n onClick={handleClick(item)}\n css={[ButtonItem, buttonStyles]}\n className={isActive ? 'active' : ''}>\n <Typography variant=\"body1\">{item.text}</Typography>\n </Button>\n );\n })}\n </React.Fragment>\n );\n};\n","import styled from '@emotion/styled';\n\nexport const LinkBase = styled.a`\n display: inline-block;\n`;\n","import Typography from '@components/Typography';\n\nimport { LinkProps } from './Link.types';\nimport { LinkBase } from './LinkBase';\n\nexport const Link = ({ children, href, ...props }: LinkProps) => (\n <LinkBase href={href} {...props}>\n <Typography variant=\"subtitle\">{children}</Typography>\n </LinkBase>\n);\n"],"names":["root","factory","exports","module","require","define","amd","self","__WEBPACK_EXTERNAL_MODULE__435__","__WEBPACK_EXTERNAL_MODULE__156__","__WEBPACK_EXTERNAL_MODULE__111__","leafPrototypes","getProto","e","t","d","n","r","o","Object","defineProperty","enumerable","get","prototype","hasOwnProperty","call","Symbol","toStringTag","value","assocPath","m","callAll","dateFormatters","debounce","u","dissocPath","w","generateRange","g","mapObjIndexed","h","path","y","pathOr","S","prop","b","propOr","v","throttle","formatDate","f","formatDayOfWeek","s","formatTime","a","getTimeAgo","printDayOfTheWeek","l","forEach","i","setTimeout","clearTimeout","c","year","month","week","day","hour","min","Date","toLocaleTimeString","minute","getDay","toLocaleDateString","getTime","Number","isNaN","Error","Math","floor","now","keys","reduce","p","push","isInteger","unshift","concat","JSON","parse","stringify","length","useApi","useClickOutside","usePaginationRange","useTextSizeDecrease","useWindowSize","useState","isLoading","error","data","query","async","width","window","innerWidth","height","innerHeight","useEffect","addEventListener","removeEventListener","current","contains","target","document","pagesCount","selectedPage","useMemo","scrollWidth","clientWidth","getComputedStyle","fontSize","match","style","useRef","parentNode","wordBreak","T","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","__esModule","getPrototypeOf","obj","__proto__","mode","this","then","ns","create","def","indexOf","getOwnPropertyNames","key","definition","colors","black25","black45","white","white80","white60","white30","greyLighter","greySelectedMenuItem","greyFocused","greyFocused40","greyDropdownMain","greyDropdownFocused","greyDropdownText","greyArrowSidebar","grey","grey20","grey40","greyShadow24","greyDarker","greyDarker60","greyDarker80","greyDarker14","greyDark","greyDisabled","greyDisabledCheckbox","greyButtonGradient","greyButtonGradientLight","greyBackground","greyBackgroundLight","greyPopoverLight","greyGraphite","greyGraphite70","greyShadow","greyShadowHover","greyOutline","greyFilterIcon","greyCancelClearButton","redLighter","redLighter40","red","red40","greenLighter","greenLighter20","greenLighter40","greenLighter60","green","green20","green40","green60","greenMint","greenDark","pink","pink20","pinkDark","pinkDarker","pinkLighter","pinkLighter20","pinkLighter40","pinkShadow40","yellow","yellow20","yellowLighter","yellowLighter20","yellowLighter40","yellowWarm","yellowWarm20","yellowWarm40","turquoise","turquoise20","turquoiseShadow40","turquoiseLighter","turquoiseLighter20","turquoiseLighter40","purple","purple20","purpleLighter","purpleLighter20","purpleLighter40","purpleDark","purpleDark40","blue","blue20","blueDark","blueLightDarker","blueDropdownWithSelectedItems","blueDropdownWithSelectedItemsBorder","blueLighter","blueLighter20","blueLighter40","blueLight","blueLight20","blueLightDarker40","blueLightLighter","blueLightLighter20","blueLightLighter40","blueNotification","blueNotification40","blueButtonHoverGradientFrom","blueButtonHoverGradientTo","blueButtonActive","blueRoyal","mediaQueries","xs","sm","md","lg","xlg","theme","css","focusOutline","color","borderRadius","outlineStyles","borderStyle","_extends","assign","bind","arguments","source","apply","memoize","fn","cache","arg","reactPropsRegex","isPropValid","test","charCodeAt","registerStyles","serialized","isStringTag","className","name","registered","styles","unitlessKeys","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","hyphenateRegex","animationRegex","isCustomProperty","property","isProcessableValue","processStyleName","styleName","replace","toLowerCase","processStyleValue","p1","p2","cursor","next","handleInterpolation","mergedProps","interpolation","__emotion_styles","anim","string","Array","isArray","_key","interpolated","_i","createStringFromObject","previousCursor","result","cached","labelPattern","useInsertionEffect","useInsertionEffectAlwaysWithSyncFallback","testOmitPropsOnStringTag","testOmitPropsOnComponent","getDefaultShouldForwardProp","tag","composeShouldForwardProps","options","isReal","shouldForwardProp","optionsShouldForwardProp","__emotion_forwardProp","propName","Insertion","_ref","inserted","insert","sheet","insertStyles","createStyled","identifierName","targetClassName","__emotion_real","baseTag","__emotion_base","label","defaultShouldForwardProp","shouldUseAs","args","slice","raw","len","Styled","withEmotionCache","props","ref","registeredStyles","classNames","rawClassName","FinalTag","as","classInterpolations","ThemeContext","split","stringMode","strings","lastIndex","exec","str","k","toString","serializeStyles","finalShouldForwardProp","newProps","displayName","defaultProps","withComponent","nextTag","nextOptions","AccordionGroupContext","createContext","useAccordionGroupContext","useContext","AccordionGroupContextProvider","children","openedAccordions","stayOpen","setOpenedAccordions","toggleOpenedAccordion","setStayOpen","useAccordionGroup","accordion","isOpened","find","activeAccordion","id","newOpenedAccordions","filter","___EmotionJSX","Provider","AccordionBase","_styled","AccordionGroup","size","accordionsStayOpen","rest","useLayoutEffect","initialAccordions","Children","map","child","isValidElement","renderContent","renderTitle","tabIndex","cloneElement","onClick","direction","CardContent","CardContentBase","wrapperStyles","empty","small","medium","large","baseTitleStyles","createBaseContentStyles","isActive","AccordionContent","createContentStyles","useTheme","transparent","hasIcon","iconsList","componentsList","Diet","fill","viewBox","xmlns","xmlnsXlink","Calendar","Home","Stats","Sleep","Trainings","Measurements","stroke","Settings","fillRule","clipRule","Plus","strokeLinecap","strokeLinejoin","Minus","More","MoreVertical","cx","cy","Check","CheckCircle","Cross","User","Union","Notification","Information","Warning","Attention","Visible","Invisible","LogOut","LogIn","Email","Lock","CarrotDown","CarrotUp","CarrotLeft","CarrotRight","RadioOn","x","rx","Circle","ArrowUp","ArrowDown","Filter","Search","Archive","clipPath","Bin","Change","Copy","Robot","Chart","Clock","iconsMap","res","index","IconMapComponent","Component","Icon","IconsMap","CardHeaderBaseButton","CardHeaderBase","AccordionTitle","title","ariaControls","createTitleStyles","type","Fragment","noShadow","Accordion","CardBase","role","Avatar","image","mapSizes","mapColors","Badge","React","BadgeBase","alignItems","ButtonBase","ButtonText","text","testId","WhiteButtonText","_css","GreyButtonText","GreyLightButtonText","DisabledButtonText","buttonBlock","iconWrapperRight","iconWrapperLeft","mapVariants","primary","secondary","tertiary","info","attention","Button","forwardRef","block","startIcon","endIcon","variant","isDisabled","ariaProps","isHovered","setIsHovered","isPrimary","isInfo","isTertiary","isAttention","noMargin","margin","variantStyles","btn","disabled","onMouseEnter","onMouseLeave","Wrapper","Card","CardHeader","icon","position","left","top","ColorMarker","active","ColorPicker","onChange","initColor","activeColor","setActiveColor","handleColorChange","LabelBase","Label","htmlFor","checkboxStyles","blueInput","greenInput","CheckboxBase","Checkbox","externalState","initialState","isIndeterminate","isRequired","register","isChecked","setIsChecked","Boolean","autoGenId","useId","checkboxInputRef","indeterminate","checkboxId","checked","newIsChecked","node","required","isCheckBoxInput","element","isDateObject","isNullOrUndefined","isObjectType","isObject","getEventValue","event","isNameInFieldArray","names","has","substring","search","getNodeParentName","isPlainObject","tempObject","prototypeCopy","constructor","isWeb","HTMLElement","cloneObject","copy","Set","Blob","FileList","compact","isUndefined","val","defaultValue","EVENTS","BLUR","FOCUS_OUT","CHANGE","VALIDATION_MODE","onBlur","onSubmit","onTouched","all","HookFormContext","useFormContext","getProxyFormState","formState","control","localProxyFormState","isRoot","defaultValues","_defaultValues","_proxyFormState","isEmptyObject","shouldRenderFormState","formStateData","updateFormState","convertToArrayPayload","shouldSubscribeByName","signalName","exact","some","currentName","startsWith","useSubscribe","_props","subscription","subject","subscribe","unsubscribe","isString","generateWatchOutput","_names","formValues","isGlobal","watch","add","fieldName","watchAll","isKey","stringToPath","input","set","object","tempPath","newValue","objValue","useController","methods","shouldUnregister","isArrayField","array","_name","_subjects","values","updateValue","_formValues","_getWatch","_removeUnmounted","useWatch","_formState","_mounted","_localProxyFormState","isDirty","dirtyFields","touchedFields","isValidating","isValid","errors","_updateFormState","state","_updateValid","useFormState","_registerProps","rules","_shouldUnregisterField","_options","updateMounted","field","_fields","_f","mount","_state","action","unregister","_updateDisabledField","fields","elm","focus","select","setCustomValidity","message","reportValidity","fieldState","defineProperties","invalid","isTouched","FormCheckbox","DropdownToggleBase","isMultiple","isOpen","selectedCount","multipleStyles","borderColor","borderColorFocused","backgroundColor","DropdownToggle","onFocus","ariaLabelledby","currentTarget","DropdownArrowBase","DropdownArrow","isUp","DropdownContext","activeItem","DropdownOptionsBase","dropdownOptionButton","noItemsMsg","NaN","DropdownOptions","toArray","DropdownOption","tabindex","DropdownBase","Dropdown","selectedItem","isInitOpen","handleChange","dropdownRef","placeholder","dropdownId","isFocused","setIsFocused","setIsOpen","setColors","setActiveItem","item","innerItem","option","items","contextValue","getNodeName","isNode","nodeName","_node$ownerDocument","ownerDocument","defaultView","getDocumentElement","documentElement","Node","Element","isShadowRoot","ShadowRoot","isOverflowElement","overflow","overflowX","overflowY","display","includes","isTableElement","isContainingBlock","webkit","isWebKit","transform","perspective","containerType","backdropFilter","willChange","contain","CSS","supports","isLastTraversableNode","getNodeScroll","scrollLeft","scrollTop","pageXOffset","pageYOffset","getParentNode","assignedSlot","host","getNearestOverflowAncestor","body","getOverflowAncestors","list","_node$ownerDocument2","scrollableAncestor","isBody","win","visualViewport","doc","activeElement","_activeElement","_activeElement$shadow","shadowRoot","parent","rootNode","getRootNode","uaData","navigator","userAgentData","platform","mozInputSource","isTrusted","androidRe","brands","brand","version","join","userAgent","pointerType","buttons","detail","pressure","strict","composedPath","TYPEABLE_SELECTOR","isTypeableElement","matches","preventDefault","stopPropagation","max","round","createCoords","oppositeSideMap","right","bottom","oppositeAlignmentMap","start","end","clamp","param","placement","axis","getAxisLength","getAlignmentAxis","alignment","getOppositePlacement","side","padding","expandPaddingObject","rect","computeCoordsFromPlacement","rtl","reference","floating","sideAxis","alignmentAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","_await$platform$isEle","rects","elements","strategy","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","getClippingRect","isElement","contextElement","offsetParent","getOffsetParent","offsetScale","getScale","elementClientRect","convertOffsetParentRelativeRectToViewportRelativeRect","arrow","arrowDimensions","getDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","offset","alignmentOffset","centerOffset","flip","_middlewareData$flip","middlewareData","initialPlacement","mainAxis","checkMainAxis","crossAxis","checkCrossAxis","fallbackPlacements","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","flipAlignment","detectOverflowOptions","isBasePlacement","isRTL","oppositePlacement","getExpandedPlacements","isStart","lr","rl","tb","bt","getSideList","getOppositeAxisPlacements","placements","overflows","overflowsData","sides","mainAlignmentSide","every","_middlewareData$flip2","_overflowsData$filter","nextIndex","nextPlacement","reset","resetPlacement","sort","_overflowsData$map$so","acc","diffCoords","mainAxisMulti","crossAxisMulti","rawValue","convertValueToCoords","shift","limiter","mainAxisCoord","crossAxisCoord","maxSide","limitedCoords","getCssDimensions","parseFloat","hasOffset","offsetWidth","offsetHeight","shouldFallback","$","unwrapElement","domElement","getBoundingClientRect","isFinite","noOffsets","getVisualOffsets","offsetLeft","offsetTop","includeScale","isFixedStrategy","clientRect","scale","visualOffsets","isFixed","floatingOffsetParent","shouldAddVisualOffsets","offsetWin","currentIFrame","frameElement","iframeScale","iframeRect","clientLeft","paddingLeft","clientTop","paddingTop","getWindowScrollBarX","getClientRectFromClippingAncestor","clippingAncestor","html","clientHeight","visualViewportBased","getViewportRect","scroll","scrollHeight","getDocumentRect","getInnerBoundingClientRect","hasFixedPositionAncestor","stopNode","getRectRelativeToOffsetParent","isOffsetParentAnElement","offsets","offsetRect","getTrueOffsetParent","polyfill","currentNode","getContainingBlock","clippingAncestors","cachedResult","el","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","getClippingElementAncestors","_c","firstClippingAncestor","clippingRect","accRect","getElementRects","getOffsetParentFn","getDimensionsFn","getClientRects","from","autoUpdate","update","ancestorScroll","ancestorResize","elementResize","ResizeObserver","layoutShift","IntersectionObserver","animationFrame","referenceEl","ancestors","passive","cleanupIo","onMove","timeoutId","io","cleanup","disconnect","refresh","skip","threshold","rootMargin","isFirstUpdate","handleObserve","entries","ratio","intersectionRatio","observe","observeMove","frameId","reobserveFrame","resizeObserver","firstEntry","unobserve","cancelAnimationFrame","requestAnimationFrame","prevRefRect","frameLoop","nextRefRect","Map","mergedOptions","platformWithCache","config","middleware","validMiddleware","statefulPlacement","resetCount","nextX","nextY","computePosition","$$typeof","getDPR","devicePixelRatio","roundByDPR","dpr","useLatestRef","candidateSelectors","candidateSelector","NoElement","msMatchesSelector","webkitMatchesSelector","_element$getRootNode","isInert","lookUp","_node$getAttribute","inertAtt","getAttribute","getCandidates","includeContainer","candidates","querySelectorAll","getCandidatesIteratively","elementsToCheck","tagName","assigned","assignedElements","nestedCandidates","flatten","scopeParent","getShadowRoot","validShadowRoot","shadowRootFilter","_nestedCandidates","getTabindex","isScope","_node$getAttribute2","attValue","isContentEditable","parseInt","sortOrderedTabbables","documentOrder","isInput","isNonTabbableRadio","isRadio","radioSet","radioScope","form","queryRadios","escape","err","console","nodes","getCheckedRadio","isTabbableRadio","isZeroArea","_node$getBoundingClie","isHidden","displayCheck","visibility","nodeUnderDetails","parentElement","originalNode","_nodeRoot","_nodeRootHost","_nodeRootHost$ownerDo","nodeRoot","nodeRootHost","attached","_nodeRoot2","_nodeRootHost2","_nodeRootHost2$ownerD","isNodeAttached","isNodeMatchingSelectorFocusable","isHiddenInput","isDetailsWithSummary","isDisabledFromFieldset","isNodeMatchingSelectorTabbable","isValidShadowRootTabbable","shadowHostNode","sortByOrder","regularTabbables","orderedTabbables","candidateTabindex","content","sortable","tabbable","useMergeRefs","refs","ARROW_UP","ARROW_DOWN","ARROW_LEFT","ARROW_RIGHT","rafId","enqueueFocus","preventScroll","cancelPrevious","sync","horizontalKeys","verticalKeys","serverHandoffComplete","count","genId","setId","FloatingArrow","context","tipRadius","staticOffset","restStyle","clipPathId","halfStrokeWidth","svgX","svgY","isCustomShape","isVerticalSide","yOffsetProp","xOffsetProp","arrowX","arrowY","dValue","rotation","pointerEvents","createPubSub","emit","_map$get","handler","on","listener","off","_map$get2","FloatingNodeContext","FloatingTreeContext","useFloatingParentNodeId","_React$useContext","useFloatingTree","createAttribute","safePolygonIdentifier","getDelay","useHover","open","onOpenChange","dataRef","events","domReference","enabled","delay","handleClose","mouseOnly","restMs","move","tree","parentId","handleCloseRef","delayRef","pointerTypeRef","timeoutRef","handlerRef","restTimeoutRef","blockMouseMoveRef","performedPointerEventsMutationRef","unbindMouseMoveRef","isHoverOpen","_dataRef$current$open","openEvent","onDismiss","onLeave","closeWithDelay","runElseBranch","closeDelay","cleanupMouseMoveHandler","clearPointerEvents","removeAttribute","onScrollMouseLeave","once","isClickLikeOpenEvent","openDelay","clientX","clientY","onClose","relatedTarget","_handleCloseRef$curre","__options","blockPointerEvents","setAttribute","_tree$nodesRef$curren","_tree$nodesRef$curren2","parentFloating","nodesRef","setPointerRef","onPointerDown","onPointerEnter","onMouseMove","nativeEvent","returnFocus","getChildren","allChildren","_node$context","currentChildren","_currentChildren","_node$context2","counterMap","WeakMap","uncontrolledElementsSet","WeakSet","markerMap","lockCount","unwrapHost","correctElements","targets","correctedTarget","markOthers","avoidElements","ariaHidden","inert","uncorrectedAvoidElements","markerName","controlAttribute","elementsToKeep","elementsToStop","hiddenElements","markerCounter","keep","deep","attr","alreadyHidden","counterValue","markerValue","clear","delete","applyAttributeToOthers","getTabbableOptions","getTabbableIn","container","allTabbable","reverse","activeIndex","getNextTabbable","getPreviousTabbable","isOutsideEvent","containerElement","disableFocusInside","dataset","enableFocusInside","HIDDEN_STYLES","border","clip","whiteSpace","setActiveElementOnTab","FocusGuard","setRole","vendor","restProps","PortalContext","FloatingPortal","preserveTabOrder","portalNode","_temp","setPortalNode","uniqueId","portalContext","usePortalContext","remove","existingIdRoot","getElementById","subRoot","createElement","appendChild","idWrapper","useFloatingPortalNode","focusManagerState","setFocusManagerState","beforeOutsideRef","afterOutsideRef","beforeInsideRef","afterInsideRef","shouldRenderGuards","modal","_beforeInsideRef$curr","prevTabbable","createPortal","_afterInsideRef$curre","nextTabbable","closeOnFocusOut","VisuallyHiddenDismiss","FloatingFocusManager","guards","_guards","initialFocus","visuallyHiddenDismiss","nodeId","orderRef","initialFocusRef","returnFocusRef","ignoreInitialFocus","startDismissButtonRef","endDismissButtonRef","preventReturnFocusRef","previouslyFocusedElementRef","isPointerDownRef","isInsidePortal","isUntrappedTypeableCombobox","getTabbableContent","getTabbableElements","flat","renderDismissButton","location","onKeyDown","els","shiftKey","handleFocusOutside","handlePointerDown","queueMicrotask","movedToUnrelatedNode","hasAttribute","_nodes$find","allAncestors","currentParentId","getAncestors","_node$context3","_node$context4","_portalContext$portal","portalNodes","insideElements","previouslyFocusedElement","focusableElements","initialFocusValue","elToFocus","focusAlreadyInsideFloatingEl","preventReturnFocusScroll","contextData","payload","activeEl","_node$context5","MutationObserver","handleMutation","observer","childList","subtree","attributes","_portalContext$before","_portalContext$afterO","isButtonTarget","isSpaceIgnored","useClick","eventOption","toggle","ignoreMouse","keyboardHandlers","didKeyDownRef","onMouseDown","button","defaultPrevented","onKeyUp","useSafeInsertionEffect","useEffectEvent","callback","_len","bubbleHandlerKeys","pointerdown","mousedown","click","captureHandlerKeys","useDismiss","escapeKey","outsidePress","unstable_outsidePress","outsidePressEvent","referencePress","referencePressEvent","bubbles","nested","outsidePressFn","insideReactTreeRef","escapeKeyBubbles","outsidePressBubbles","_bubbles$escapeKey","_bubbles$outsidePress","normalizeBubblesProp","closeOnEscapeKeyDown","shouldDismiss","_child$context","__escapeKeyBubbles","isReactEvent","closeOnPressOutside","insideReactTree","inertSelector","markers","targetRootAncestor","nextParent","marker","canScrollX","canScrollY","xCond","offsetX","offsetY","targetIsInsideChildren","_child$context2","__outsidePressBubbles","onScroll","_doc$defaultView","_options$elements2","unstable_onOpenChange","_domReference","setDomReference","externalReference","externalFloating","whileElementsMounted","setData","isPositioned","latestMiddleware","setLatestMiddleware","_reference","_setReference","_floating","_setFloating","setReference","referenceRef","setFloating","floatingRef","floatingEl","whileElementsMountedRef","platformRef","fullData","isMountedRef","floatingStyles","initialStyles","useFloating","domReferenceRef","floatingId","setPositionReference","positionReference","mergeProps","userProps","propsList","elementKey","useInteractions","deps","getReferenceProps","getFloatingProps","getItemProps","useRole","referenceId","floatingProps","isPointInPolygon","point","polygon","isInside","j","xi","yi","xj","yj","safePolygon","buffer","requireIntent","hasLanded","lastX","lastY","lastCursorTime","performance","close","clientPoint","isLeave","isOverFloatingEl","isOverReferenceEl","refRect","cursorLeaveFromRight","cursorLeaveFromBottom","isOverReferenceRect","isFloatingWider","isFloatingTaller","_ref2","rectPoly","cursorSpeed","currentTime","elapsedTime","deltaX","deltaY","distance","sqrt","getCursorSpeed","_ref3","cursorPointOne","cursorPointTwo","getPolygon","InputBase","InputGroup","inputStatus","startElement","endElement","InputError","InputStatusError","InputSuccess","InputStatusSuccess","basic","backgroundImage","success","svg","custom","InputInner","validationSchema","status","inputProps","inputRef","showStatusIcon","registerResult","paddingRight","ModalContext","Modal","modalDialogWrapper","noBackground","modalDialogContent","ModalDialog","ariaLabel","PopoverContext","usePopoverContext","Popover","restOptions","popover","usePopover","initialOpen","controlledOpen","setControlledOpen","floatingOptions","interactionsEnabled","uncontrolledOpen","setUncontrolledOpen","labelId","setLabelId","descriptionId","setDescriptionId","setOpen","dismiss","hover","interactionsHooks","interactions","PopoverClose","PopoverContent","propRef","floatingContext","h1","h2","h3","h4","h5","h6","subtitle","body1","body2","body3","caption","lighter","regular","bold","gutter","variantsMapping","weight","PopoverDescription","Typography","PopoverHeading","PopoverTrigger","asChild","dataTestId","childrenRef","MultipleDropdownContext","allItems","DropdownOptionButton","font","outline","textAlign","background","textOverflow","userSelect","MultipleDropdownOptions","isSelected","toggleItem","DropdownPlaceholderLabel","MultipleDropdownInner","selectedItems","showPlaceholder","dropdownBaseRef","optionsWithKey","setOptionsWithKey","setItems","setValues","valuesWithoutPlaceholder","setValuesWithoutPlaceholder","memoSelectedItems","newOptionsWithKey","childrenArray","newOptions","keyedOptions","childItems","newOption","newValues","getActiveItems","activeItems","getActiveItem","newValuesWithoutPlaceholder","MultipleDropdownNotification","Progress","wrapper","bar","ProgressBar","percentage","vertical","bgColor","mapBarWrapper","horizontal","mapBarContainer","randomUUID","crypto","getRandomValues","rnds8","Uint8Array","rng","byteToHex","unsafeStringify","arr","buf","rnds","random","ProgressCircleBase","gradientId","fullStroke","svgOffset","ProgressCircleOuter","ProgressCircleInner","ProgressCircle","currentValue","infoContent","uuidv4","barStroke","colorName","colorValue","preserveAspectRatio","stopColor","ProgressLegend","mapPosition","ProgressLegendItem","ProgressVertical","StepperContext","activeStep","orientation","inverted","useStepperContext","Stepper","sx","steps","StepContext","completed","useStepContext","StepConnectorWrapper","StepConnectorLineVertical","StepConnectorLine","StepConnector","selectedColor","Step","Connector","labelIcon","labelIconVertical","labelText","labelTitle","StepLabel","StepIcon","styleIcon","flexDirection","SwitchContext","isOn","useSwitchContext","SwitchContextProvider","useSwitch","setIsOn","useCallback","Switch","SwitchBase","align","TableCell","borderBottom","borderRight","TooltipContext","useTooltipContext","tooltipContext","Tooltip","tooltip","useTooltip","enableClick","enableHover","offsetPx","hasArrow","arrowProps","arrowRef","floatingData","interactionsData","TooltipTrigger","tooltipCtx","TooltipArrow","TooltipContentBase","refProp","SimpleChartTooltip","renderValue","xFormatted","yFormatted","ProgressChartTooltip","valueFormatted","iconName","barProps","defaultTab","tabId","TabBarContext","activeTab","setActiveTab","useTabBarContext","TabBarContextProvider","initialTab","tab","setTab","useTabBar","TabBarBase","TabBar","activeTabId","TabBase","Tab","LargeTabBase","topTextStyle","bottomTextStyle","LargeTab","topText","bottomText","Tag","TextareaBase","Textarea","rows","setCountChar","maxLength","statusColor","FormHelperTextBase","FormHelperText","TextField","multirow","helperText","countChar","Input","RadioBase","Radio","radioId","RadioGroupBase","RadioGroup","activeValue","setActiveValue","onRadioValueChange","FormRadioGroup","ResponsiveImage","src","alt","Indicator","isVisible","indicatorRef","setWidth","childrenData","setChildrenData","windowWidth","refValue","isRight","refData","IndicatorBase","ButtonItem","ButtonGroup","buttonStyles","activeBtn","setActiveBtn","handleClick","LinkBase","Link","href"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"index.js","mappings":"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","sources":["webpack://SSACore/webpack/universalModuleDefinition","webpack://SSACore/webpack/runtime/create fake namespace object","webpack://SSACore/../hooks/dist/index.js","webpack://SSACore/../utils/dist/index.js","webpack://SSACore/external umd \"@emotion/react\"","webpack://SSACore/external umd \"react\"","webpack://SSACore/external umd \"react-dom\"","webpack://SSACore/webpack/bootstrap","webpack://SSACore/webpack/runtime/compat get default export","webpack://SSACore/webpack/runtime/define property getters","webpack://SSACore/webpack/runtime/hasOwnProperty shorthand","webpack://SSACore/webpack/runtime/make namespace object","webpack://SSACore/./src/themes/main.ts","webpack://SSACore/./src/styles/global.ts","webpack://SSACore/./src/styles/safari-focus-outline.ts","webpack://SSACore/../../node_modules/.pnpm/@babel+runtime@7.21.5/node_modules/@babel/runtime/helpers/esm/extends.js","webpack://SSACore/../../node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/extends.js","webpack://SSACore/../../node_modules/.pnpm/@emotion+memoize@0.8.1/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","webpack://SSACore/../../node_modules/.pnpm/@emotion+is-prop-valid@1.2.1/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","webpack://SSACore/../../node_modules/.pnpm/@emotion+utils@1.2.1/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","webpack://SSACore/../../node_modules/.pnpm/@emotion+unitless@0.8.1/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","webpack://SSACore/../../node_modules/.pnpm/@emotion+serialize@1.1.2/node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","webpack://SSACore/../../node_modules/.pnpm/@emotion+use-insertion-effect-with-fallbacks@1.0.1_react@18.2.0/node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","webpack://SSACore/../../node_modules/.pnpm/@emotion+styled@11.11.0_@emotion+react@11.11.1_@types+react@18.2.8_react@18.2.0/node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","webpack://SSACore/../../node_modules/.pnpm/@emotion+hash@0.9.1/node_modules/@emotion/hash/dist/emotion-hash.esm.js","webpack://SSACore/./src/components/AccordionGroup/AccordionContext.tsx","webpack://SSACore/./src/components/AccordionGroup/AccordionGroup.tsx","webpack://SSACore/./src/components/CardContent/CardContentBase.tsx","webpack://SSACore/./src/components/CardContent/CardContent.tsx","webpack://SSACore/./src/components/AccordionGroup/styles.ts","webpack://SSACore/./src/components/AccordionGroup/AccordionContent.tsx","webpack://SSACore/./src/components/CardHeader/CardHeaderBase.tsx","webpack://SSACore/./src/components/Icon/icons/Calendar.tsx","webpack://SSACore/./src/components/Icon/icons/iconsList.tsx","webpack://SSACore/./src/components/Icon/icons/index.tsx","webpack://SSACore/./src/components/Icon/icons/Diet.tsx","webpack://SSACore/./src/components/Icon/icons/Home.tsx","webpack://SSACore/./src/components/Icon/icons/Stats.tsx","webpack://SSACore/./src/components/Icon/icons/Sleep.tsx","webpack://SSACore/./src/components/Icon/icons/Trainings.tsx","webpack://SSACore/./src/components/Icon/icons/Measurements.tsx","webpack://SSACore/./src/components/Icon/icons/Settings.tsx","webpack://SSACore/./src/components/Icon/icons/Plus.tsx","webpack://SSACore/./src/components/Icon/icons/Minus.tsx","webpack://SSACore/./src/components/Icon/icons/More.tsx","webpack://SSACore/./src/components/Icon/icons/MoreVertical.tsx","webpack://SSACore/./src/components/Icon/icons/Check.tsx","webpack://SSACore/./src/components/Icon/icons/CheckCircle.tsx","webpack://SSACore/./src/components/Icon/icons/Cross.tsx","webpack://SSACore/./src/components/Icon/icons/User.tsx","webpack://SSACore/./src/components/Icon/icons/Union.tsx","webpack://SSACore/./src/components/Icon/icons/Notification.tsx","webpack://SSACore/./src/components/Icon/icons/Information.tsx","webpack://SSACore/./src/components/Icon/icons/Warning.tsx","webpack://SSACore/./src/components/Icon/icons/Attention.tsx","webpack://SSACore/./src/components/Icon/icons/Visible.tsx","webpack://SSACore/./src/components/Icon/icons/Invisible.tsx","webpack://SSACore/./src/components/Icon/icons/LogOut.tsx","webpack://SSACore/./src/components/Icon/icons/LogIn.tsx","webpack://SSACore/./src/components/Icon/icons/Email.tsx","webpack://SSACore/./src/components/Icon/icons/Lock.tsx","webpack://SSACore/./src/components/Icon/icons/CarrotDown.tsx","webpack://SSACore/./src/components/Icon/icons/CarrotUp.tsx","webpack://SSACore/./src/components/Icon/icons/CarrotLeft.tsx","webpack://SSACore/./src/components/Icon/icons/CarrotRight.tsx","webpack://SSACore/./src/components/Icon/icons/RadioOn.tsx","webpack://SSACore/./src/components/Icon/icons/Circle.tsx","webpack://SSACore/./src/components/Icon/icons/ArrowUp.tsx","webpack://SSACore/./src/components/Icon/icons/ArrowDown.tsx","webpack://SSACore/./src/components/Icon/icons/Filter.tsx","webpack://SSACore/./src/components/Icon/icons/Search.tsx","webpack://SSACore/./src/components/Icon/icons/Archive.tsx","webpack://SSACore/./src/components/Icon/icons/Bin.tsx","webpack://SSACore/./src/components/Icon/icons/Change.tsx","webpack://SSACore/./src/components/Icon/icons/Copy.tsx","webpack://SSACore/./src/components/Icon/icons/Robot.tsx","webpack://SSACore/./src/components/Icon/icons/Chart.tsx","webpack://SSACore/./src/components/Icon/icons/Clock.tsx","webpack://SSACore/./src/components/Icon/icons/UnArchive.tsx","webpack://SSACore/./src/components/Icon/Icon.tsx","webpack://SSACore/./src/components/AccordionGroup/AccordionTitle.tsx","webpack://SSACore/./src/components/Card/CardBase.tsx","webpack://SSACore/./src/components/AccordionGroup/Accordion.tsx","webpack://SSACore/./src/components/Avatar/Avatar.tsx","webpack://SSACore/./src/components/Badge/BadgeBase.tsx","webpack://SSACore/./src/components/Badge/styles.ts","webpack://SSACore/./src/components/Badge/Badge.tsx","webpack://SSACore/./src/components/Wrapper/Wrapper.tsx","webpack://SSACore/./src/components/Button/ButtonBase.tsx","webpack://SSACore/./src/components/Button/ButtonText.tsx","webpack://SSACore/./src/components/Button/styles.ts","webpack://SSACore/./src/components/Button/Button.tsx","webpack://SSACore/./src/components/Card/Card.tsx","webpack://SSACore/./src/components/CardHeader/CardHeader.tsx","webpack://SSACore/./src/components/ColorPicker/styles.ts","webpack://SSACore/./src/components/ColorPicker/ColorPicker.tsx","webpack://SSACore/./src/components/Label/LabelBase.tsx","webpack://SSACore/./src/components/Label/Label.tsx","webpack://SSACore/./src/components/Checkbox/styles.tsx","webpack://SSACore/./src/components/Checkbox/CheckboxBase.tsx","webpack://SSACore/./src/components/Checkbox/Checkbox.tsx","webpack://SSACore/../../node_modules/.pnpm/react-hook-form@7.46.1_react@18.2.0/node_modules/react-hook-form/dist/index.esm.mjs","webpack://SSACore/./src/components/FormCheckbox/FormCheckbox.tsx","webpack://SSACore/./src/components/DropdownToggle/DropdownToggle.tsx","webpack://SSACore/./src/components/DropdownArrow/DropdownArrow.tsx","webpack://SSACore/./src/components/Dropdown/Dropdown.context.ts","webpack://SSACore/./src/components/DropdownOption/DropdownOption.tsx","webpack://SSACore/./src/components/DropdownOptions/DropdownOptions.tsx","webpack://SSACore/./src/components/Dropdown/Dropdown.tsx","webpack://SSACore/./src/components/DropdownBase/DropdownBase.tsx","webpack://SSACore/../../node_modules/.pnpm/@floating-ui+utils@0.1.1/node_modules/@floating-ui/utils/dom/dist/floating-ui.utils.dom.mjs","webpack://SSACore/../../node_modules/.pnpm/@floating-ui+utils@0.1.1/node_modules/@floating-ui/utils/react/dist/floating-ui.utils.react.mjs","webpack://SSACore/../../node_modules/.pnpm/@floating-ui+utils@0.1.1/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","webpack://SSACore/../../node_modules/.pnpm/@floating-ui+core@1.4.1/node_modules/@floating-ui/core/dist/floating-ui.core.mjs","webpack://SSACore/../../node_modules/.pnpm/@floating-ui+dom@1.5.1/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","webpack://SSACore/../../node_modules/.pnpm/@floating-ui+react-dom@2.0.2_react-dom@18.2.0_react@18.2.0/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","webpack://SSACore/../../node_modules/.pnpm/tabbable@6.1.2/node_modules/tabbable/dist/index.esm.js","webpack://SSACore/../../node_modules/.pnpm/@floating-ui+react@0.25.4_react-dom@18.2.0_react@18.2.0/node_modules/@floating-ui/react/dist/floating-ui.react.mjs","webpack://SSACore/./src/components/Input/InputBase.tsx","webpack://SSACore/./src/components/Input/InputGroup.tsx","webpack://SSACore/./src/components/Input/styles.ts","webpack://SSACore/./src/components/Input/InputStatusError.tsx","webpack://SSACore/./src/components/Input/InputStatusSuccess.tsx","webpack://SSACore/./src/components/Input/Input.tsx","webpack://SSACore/./src/components/Modal/Modal.context.tsx","webpack://SSACore/./src/components/Modal/Modal.tsx","webpack://SSACore/./src/components/ModalDismissButton/ModalDismissButton.tsx","webpack://SSACore/./src/components/ModalDialog/ModalDialog.tsx","webpack://SSACore/./src/components/ModalContent/ModalContent.tsx","webpack://SSACore/./src/components/ModalOpenButton/ModalOpenButton.tsx","webpack://SSACore/./src/components/Popover/hooks/usePopover.tsx","webpack://SSACore/./src/components/Popover/hooks/usePopoverContext.tsx","webpack://SSACore/./src/components/Popover/Popover.tsx","webpack://SSACore/./src/components/Popover/PopoverClose.tsx","webpack://SSACore/./src/components/Popover/PopoverContent.tsx","webpack://SSACore/./src/components/Typography/styles.ts","webpack://SSACore/./src/components/Typography/Typography.tsx","webpack://SSACore/./src/components/Popover/PopoverDescription.tsx","webpack://SSACore/./src/components/Popover/PopoverHeading.tsx","webpack://SSACore/./src/components/Popover/PopoverTrigger.tsx","webpack://SSACore/./src/components/MultipleDropdown/MultipleDropdown.context.ts","webpack://SSACore/./src/components/MultipleDropdownOptions/MultipleDropdownOptions.tsx","webpack://SSACore/./src/components/MultipleDropdownNotification/MultipleDropdownNotification.tsx","webpack://SSACore/./src/components/MultipleDropdown/MultipleDropdown.tsx","webpack://SSACore/./src/components/MultipleDropdown/utils.ts","webpack://SSACore/./src/components/Progress/Progress.tsx","webpack://SSACore/./src/components/ProgressBar/styles.ts","webpack://SSACore/./src/components/ProgressBar/ProgressBar.tsx","webpack://SSACore/../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/native.js","webpack://SSACore/../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/rng.js","webpack://SSACore/../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/stringify.js","webpack://SSACore/../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/v4.js","webpack://SSACore/./src/components/ProgressCircle/ProgressCircleBase.tsx","webpack://SSACore/./src/components/ProgressCircle/ProgressCircleOuter.tsx","webpack://SSACore/./src/components/ProgressCircle/ProgressCircleInner.tsx","webpack://SSACore/./src/components/ProgressCircle/ProgressCircle.tsx","webpack://SSACore/./src/components/ProgressLegend/ProgressLegend.tsx","webpack://SSACore/./src/components/ProgressLegendItem/ProgressLegendItem.tsx","webpack://SSACore/./src/components/ProgressVertical/ProgressVertical.tsx","webpack://SSACore/./src/components/Stepper/Stepper.context.ts","webpack://SSACore/./src/components/Stepper/Stepper.tsx","webpack://SSACore/./src/components/Step/Step.context.ts","webpack://SSACore/./src/components/StepConnector/style.ts","webpack://SSACore/./src/components/StepConnector/StepConnector.tsx","webpack://SSACore/./src/components/Step/Step.tsx","webpack://SSACore/./src/components/StepLabel/styles.ts","webpack://SSACore/./src/components/StepLabel/StepLabel.tsx","webpack://SSACore/./src/components/Switch/SwitchBase.tsx","webpack://SSACore/./src/components/Switch/SwitchContext.tsx","webpack://SSACore/./src/components/Switch/Switch.tsx","webpack://SSACore/./src/components/Table/Table.tsx","webpack://SSACore/./src/components/TableCell/TableCell.tsx","webpack://SSACore/./src/components/TableHead/TableHead.tsx","webpack://SSACore/./src/components/TableRow/TableRow.tsx","webpack://SSACore/./src/components/TableBody/TableBody.tsx","webpack://SSACore/./src/components/Tooltip/useTooltip.tsx","webpack://SSACore/./src/components/Tooltip/useTooltipContext.tsx","webpack://SSACore/./src/components/Tooltip/Tooltip.tsx","webpack://SSACore/./src/components/TooltipTrigger/TooltipTrigger.tsx","webpack://SSACore/./src/components/Tooltip/TooltipArrow.tsx","webpack://SSACore/./src/components/Tooltip/TooltipContentBase.tsx","webpack://SSACore/./src/components/Tooltip/styles.ts","webpack://SSACore/./src/components/Tooltip/utils.tsx","webpack://SSACore/./src/components/TooltipContent/TooltipContent.tsx","webpack://SSACore/./src/components/Tooltip/SimpleChartTooltip.tsx","webpack://SSACore/./src/components/Tooltip/ProgressChartTooltip.tsx","webpack://SSACore/./src/components/TabBar/TabBarContext.tsx","webpack://SSACore/./src/components/TabBar/TabBar.tsx","webpack://SSACore/./src/components/Tab/TabBase.tsx","webpack://SSACore/./src/components/Tab/Tab.tsx","webpack://SSACore/./src/components/LargeTab/LargeTabBase.tsx","webpack://SSACore/./src/components/LargeTab/styles.ts","webpack://SSACore/./src/components/LargeTab/LargeTab.tsx","webpack://SSACore/./src/components/Tag/styles.ts","webpack://SSACore/./src/components/Tag/Tag.tsx","webpack://SSACore/./src/components/Textarea/TextareaBase.tsx","webpack://SSACore/./src/components/Textarea/Textarea.tsx","webpack://SSACore/./src/components/FormHelperText/FormHelperTextBase.tsx","webpack://SSACore/./src/components/FormHelperText/FormHelperText.tsx","webpack://SSACore/./src/components/TextField/TextField.tsx","webpack://SSACore/./src/components/Radio/RadioBase.tsx","webpack://SSACore/./src/components/Radio/Radio.tsx","webpack://SSACore/./src/components/RadioGroup/RadioGroupBase.tsx","webpack://SSACore/./src/components/RadioGroup/RadioGroup.tsx","webpack://SSACore/./src/components/FormRadioGroup/FormRadioGroup.tsx","webpack://SSACore/./src/components/ResponsiveImage/ResponsiveImage.tsx","webpack://SSACore/./src/components/Form/Form.tsx","webpack://SSACore/./src/components/FormGroup/FormGroup.tsx","webpack://SSACore/./src/components/FormAction/FormAction.tsx","webpack://SSACore/./src/components/Indicator/IndicatorBase.tsx","webpack://SSACore/./src/components/Indicator/Indicator.tsx","webpack://SSACore/./src/components/ButtonGroup/styles.ts","webpack://SSACore/./src/components/ButtonGroup/ButtonGroup.tsx","webpack://SSACore/./src/components/Link/LinkBase.ts","webpack://SSACore/./src/components/Link/Link.tsx"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@emotion/react\"), require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"@emotion/react\", \"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"SSACore\"] = factory(require(\"@emotion/react\"), require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"SSACore\"] = factory(root[\"@emotion/react\"], root[\"react\"], root[\"react-dom\"]);\n})(self, function(__WEBPACK_EXTERNAL_MODULE__435__, __WEBPACK_EXTERNAL_MODULE__156__, __WEBPACK_EXTERNAL_MODULE__111__) {\nreturn ","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"react\")):\"function\"==typeof define&&define.amd?define([\"react\"],t):\"object\"==typeof exports?exports.SSAHooks=t(require(\"react\")):e.SSAHooks=t(e.react)}(self,(function(e){return function(){var t={468:function(e){self,e.exports=function(){\"use strict\";var e={d:function(t,n){for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})}},t={};e.r(t),e.d(t,{assocPath:function(){return m},callAll:function(){return r},dateFormatters:function(){return n},debounce:function(){return u},dissocPath:function(){return w},generateRange:function(){return g},mapObjIndexed:function(){return h},path:function(){return y},pathOr:function(){return S},prop:function(){return b},propOr:function(){return v},throttle:function(){return o}});var n={};e.r(n),e.d(n,{formatDate:function(){return f},formatDayOfWeek:function(){return s},formatTime:function(){return a},getTimeAgo:function(){return d},printDayOfTheWeek:function(){return l}});const r=(...e)=>(...t)=>e.forEach((e=>e?.(...t))),o=(e,t)=>{let n=!1,r=null,o=null;return[function u(...i){n?r=i:(n=!0,e(...i),o=setTimeout((()=>{n=!1,r&&(u(...r),r=null)}),t))},function(){o&&clearTimeout(o)}]},u=(e,t=200)=>{let n=null;return[(...r)=>{n&&clearTimeout(n),n=setTimeout((()=>{n&&clearTimeout(n),e(...r)}),t)},function(){n&&clearTimeout(n)}]},i=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],c={year:31536e3,month:2592e3,week:604800,day:86400,hour:3600,min:60},a=e=>new Date(e).toLocaleTimeString(\"en-US\",{hour:\"2-digit\",minute:\"2-digit\"}),s=e=>i[new Date(e).getDay()],f=e=>new Date(e).toLocaleDateString(\"en-US\",{day:\"2-digit\",month:\"short\"}),l=e=>{switch(e){case 0:return\"Sun\";case 1:return\"Mon\";case 2:return\"Tue\";case 3:return\"Wed\";case 4:return\"Thu\";case 5:return\"Fri\";case 6:return\"Sat\"}},d=e=>{const t=new Date(e).getTime();if(Number.isNaN(t))throw new Error(\"Invalid date\");const n=Math.floor((Date.now()-t)/1e3);let r;for(const e in c)if(r=Math.floor(n/c[e]),r>=1)return`${r} ${e}${r>1?\"s\":\"\"} ago`;return\"Just Now\"},h=(e,t)=>Object.keys(t).reduce(((n,r)=>(n[r]=e(t[r],r,t),n)),{}),p=(e,t,n)=>{for(let r=t;r<n;++r)e.push(r)};var g=(e,t)=>{if(null==e||!Number.isInteger(e))throw new Error(\"Pages count should be an integer\");if(e<=0)return[];let n=[1];if(1===e)return n;if(null!=t&&!Number.isInteger(t))throw new Error(\"Selected page should be an integer\");if(null!=t&&(t<1||t>e))throw new Error(`Selected page ${t} is out of range`);if(t&&t>2){const r=((e,t)=>{const n=[];return t!==e&&n.push(t),t>1&&n.unshift(t-1),t+1<e&&n.push(t+1),n})(e,t),[o,,u]=r;o-2>1?n.push(-1):p(n,2,o),n=n.concat(r),e-u>2?n.push(-1):p(n,u+1,e)}else e<=5?p(n,2,e):n.push(2,3,-1);return n.push(e),n};const m=([e,...t],n)=>r=>JSON.parse(JSON.stringify({...r,[e]:t.length?m(t,n)(r[e]):n})),w=e=>t=>{const n=JSON.parse(JSON.stringify(t));return e.reduce(((t,n,r)=>(r===e.length-1&&delete t[n],t[n])),n),n},y=e=>t=>e.reduce(((e,t)=>e?.[t]),t),S=(e,t)=>n=>{const r=y(t)(n);return null==r?e:r},b=e=>t=>t?.[e],v=(e,t)=>n=>{const r=b(t)(n);return null==r?e:r};return t}()},156:function(t){\"use strict\";t.exports=e}},n={};function r(e){var o=n[e];if(void 0!==o)return o.exports;var u=n[e]={exports:{}};return t[e](u,u.exports,r),u.exports}r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})};var o={};return function(){\"use strict\";r.r(o),r.d(o,{useApi:function(){return t},useClickOutside:function(){return u},usePaginationRange:function(){return c},useTextSizeDecrease:function(){return l},useWindowSize:function(){return n}});var e=r(156);function t(t,n){const[r,o]=(0,e.useState)(!1),[u,i]=(0,e.useState)(null),[c,a]=(0,e.useState)(n);return{isLoading:r,error:u,data:c,query:async(...e)=>{o(!0),i(null);try{const n=await t(...e);a(n)}catch(e){i(e)}finally{o(!1)}}}}const n=()=>{const[t,n]=(0,e.useState)({width:window.innerWidth,height:window.innerHeight});return(0,e.useEffect)((()=>{function e(){n({width:window.innerWidth,height:window.innerHeight})}return window.addEventListener(\"resize\",e),e(),()=>window.removeEventListener(\"resize\",e)}),[]),t},u=(t,n)=>{const r=[\"mousedown\",\"touchstart\"];(0,e.useEffect)((()=>{const e=e=>{null==t.current||t.current.contains(e.target)||n(e)};return r.forEach((t=>document.addEventListener(t,e))),()=>r.forEach((t=>document.removeEventListener(t,e)))}),[t,n])};var i=r(468);const c=({pagesCount:t,selectedPage:n})=>(0,e.useMemo)((()=>(0,i.generateRange)(t,n)),[t,n]),a=/(\\d+\\.?\\d+)(\\S+)/,s=(e,t)=>e.scrollWidth>Number(t?.clientWidth),f=(e,t)=>{const n=window.getComputedStyle(e).fontSize.match(a);if(n){const[,r,o]=n;e.style.fontSize=`${Number(r)-t}${o}`}},l=(t=5,r=1)=>{const o=(0,e.useRef)(null),u=(0,e.useRef)(0),{width:i}=n();return(0,e.useEffect)((()=>{(()=>{if(null==o.current)return;const e=o.current,n=e.parentNode;let i=s(e,n);for(;u.current<t&&i;)f(e,r),i=s(e,n),++u.current;i&&(e.style.wordBreak=\"break-all\")})()}),[o,i]),o}}(),o}()}));\n//# sourceMappingURL=index.js.map","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.SSAUtils=t():e.SSAUtils=t()}(self,(function(){return function(){\"use strict\";var e={d:function(t,n){for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})}},t={};e.r(t),e.d(t,{assocPath:function(){return m},callAll:function(){return r},dateFormatters:function(){return n},debounce:function(){return u},dissocPath:function(){return S},generateRange:function(){return g},mapObjIndexed:function(){return h},path:function(){return y},pathOr:function(){return b},prop:function(){return w},propOr:function(){return T},throttle:function(){return o}});var n={};e.r(n),e.d(n,{formatDate:function(){return l},formatDayOfWeek:function(){return f},formatTime:function(){return a},getTimeAgo:function(){return d},printDayOfTheWeek:function(){return s}});const r=(...e)=>(...t)=>e.forEach((e=>e?.(...t))),o=(e,t)=>{let n=!1,r=null,o=null;return[function u(...i){n?r=i:(n=!0,e(...i),o=setTimeout((()=>{n=!1,r&&(u(...r),r=null)}),t))},function(){o&&clearTimeout(o)}]},u=(e,t=200)=>{let n=null;return[(...r)=>{n&&clearTimeout(n),n=setTimeout((()=>{n&&clearTimeout(n),e(...r)}),t)},function(){n&&clearTimeout(n)}]},i=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],c={year:31536e3,month:2592e3,week:604800,day:86400,hour:3600,min:60},a=e=>new Date(e).toLocaleTimeString(\"en-US\",{hour:\"2-digit\",minute:\"2-digit\"}),f=e=>i[new Date(e).getDay()],l=e=>new Date(e).toLocaleDateString(\"en-US\",{day:\"2-digit\",month:\"short\"}),s=e=>{switch(e){case 0:return\"Sun\";case 1:return\"Mon\";case 2:return\"Tue\";case 3:return\"Wed\";case 4:return\"Thu\";case 5:return\"Fri\";case 6:return\"Sat\"}},d=e=>{const t=new Date(e).getTime();if(Number.isNaN(t))throw new Error(\"Invalid date\");const n=Math.floor((Date.now()-t)/1e3);let r;for(const e in c)if(r=Math.floor(n/c[e]),r>=1){return`${r} ${e}${r>1?\"s\":\"\"} ago`}return\"Just Now\"},h=(e,t)=>Object.keys(t).reduce(((n,r)=>(n[r]=e(t[r],r,t),n)),{}),p=(e,t,n)=>{for(let r=t;r<n;++r)e.push(r)};var g=(e,t)=>{if(null==e||!Number.isInteger(e))throw new Error(\"Pages count should be an integer\");if(e<=0)return[];let n=[1];if(1===e)return n;if(null!=t&&!Number.isInteger(t))throw new Error(\"Selected page should be an integer\");if(null!=t&&(t<1||t>e))throw new Error(`Selected page ${t} is out of range`);if(t&&t>2){const r=((e,t)=>{const n=[];return t!==e&&n.push(t),t>1&&n.unshift(t-1),t+1<e&&n.push(t+1),n})(e,t),[o,,u]=r;o-2>1?n.push(-1):p(n,2,o),n=n.concat(r),e-u>2?n.push(-1):p(n,u+1,e)}else e<=5?p(n,2,e):n.push(2,3,-1);return n.push(e),n};const m=([e,...t],n)=>r=>JSON.parse(JSON.stringify({...r,[e]:t.length?m(t,n)(r[e]):n})),S=e=>t=>{const n=JSON.parse(JSON.stringify(t));return e.reduce(((t,n,r)=>(r===e.length-1&&delete t[n],t[n])),n),n},y=e=>t=>e.reduce(((e,t)=>e?.[t]),t),b=(e,t)=>n=>{const r=y(t)(n);return null==r?e:r},w=e=>t=>t?.[e],T=(e,t)=>n=>{const r=w(t)(n);return null==r?e:r};return t}()}));\n//# sourceMappingURL=index.js.map","module.exports = __WEBPACK_EXTERNAL_MODULE__435__;","module.exports = __WEBPACK_EXTERNAL_MODULE__156__;","module.exports = __WEBPACK_EXTERNAL_MODULE__111__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { Theme } from '@emotion/react';\r\n\r\nconst main: Theme = {\r\n colors: {\r\n black25: 'rgba(0, 0, 0, 0.25)', // #000000\r\n black45: 'rgba(0, 0, 0, 0.45)', // #000000\r\n white: 'rgba(255, 255, 255, 1)', // #ffffff\r\n white80: 'rgba(255, 255, 255, 0.8)', // #ffffff\r\n white60: 'rgba(255, 255, 255, 0.6)', // #ffffff\r\n white30: 'rgba(255, 255, 255, 0.3)', // #ffffff\r\n greyLighter: 'rgba(238, 241, 247, 1)', // #eef1f7\r\n greySelectedMenuItem: 'rgba(222, 225, 236, 1)', // #dee1ec\r\n greyFocused: 'rgba(210, 212, 219, 1)', // #d2d4db\r\n greyFocused40: 'rgba(210, 212, 219, 0.4)', // #d2d4db\r\n greyDropdownMain: 'rgba(222, 224, 232, 1)', // #dee0e8\r\n greyDropdownFocused: 'rgba(128, 129, 131)', // #808183\r\n greyDropdownText: 'rgba(21, 21, 21, 1)', // #151515\r\n greyArrowSidebar: 'rgba(218, 219, 220)', // #dadbdc\r\n grey: 'rgba(195, 197, 204, 1)', // #c3c5cc\r\n grey20: 'rgba(43, 45, 49, 0.2)', // #c3c5cc\r\n grey40: 'rgba(43, 45, 49, 0.4)', // #c3c5cc\r\n greyShadow24: 'rgba(93, 102, 112, 0.24)', // #5d6670\r\n greyDarker: 'rgba(43, 45, 49, 1)', // #2b2d31\r\n greyDarker60: 'rgba(43, 45, 49, 0.6)', // #2b2d31\r\n greyDarker80: 'rgba(43, 45, 49, 0.8)', // #2b2d31\r\n greyDarker14: 'rgba(43, 45, 49, 0.14)', // #2b2d31\r\n greyDark: 'rgb(64, 72, 83)', // #404853\r\n greyDisabled: 'rgba(85, 87, 90, 1)', // #55575a\r\n greyDisabledCheckbox: 'rgba(164, 167, 171, 1)', // #A4A7AB\r\n greyButtonGradient: 'rgba(77, 82, 87, 1)', // #4d5257\r\n greyButtonGradientLight: 'rgba(94, 103, 114, 1)', // #5e6772\r\n greyBackground: 'rgb(64, 68, 73)', // #404449\r\n greyBackgroundLight: 'rgb(76, 84, 93)', // #4c545d\r\n greyPopoverLight: 'rgba(242, 244, 247, 1)', // #F2F4F7\r\n greyGraphite: 'rgba(71, 74, 80, 1)', //#474a50\r\n greyGraphite70: 'rgb(122, 124, 127, 0.7)', // #7a7c7f\r\n greyShadow: 'rgba(42, 48, 57, 0.08)', // #2a3039\r\n greyShadowHover: 'rgba(93, 102, 112, 0.24)', // #5d6670\r\n greyOutline: 'rgba(208,\t210,\t220, 1)', // #d0d2dc\r\n greyFilterIcon: 'rgb(133, 137, 147)', // #858993\r\n greyCancelClearButton: 'rgb(101, 101, 103)', // #656567\r\n redLighter: 'rgba(242, 136, 142, 1)', // #f2888e\r\n redLighter40: 'rgba(242, 136, 142, 0.4)', // #f2888e\r\n red: 'rgba(235, 117, 86, 1)', // #eb7556\r\n red40: 'rgba(235, 117, 86, 0.4)', // #eb7556\r\n greenLighter: 'rgba(137, 217, 150, 1)', // #89d996\r\n greenLighter20: 'rgba(137, 217, 150, 0.2)', // #89d996\r\n greenLighter40: 'rgba(137, 217, 150, 0.4)', // #89d996\r\n greenLighter60: 'rgba(137, 217, 150, 0.6)', // #89d996\r\n green: 'rgba(82, 197, 135, 1)', // #52c587\r\n green20: 'rgba(82, 197, 135, 0.2)', // #52c587\r\n green40: 'rgba(82, 197, 135, 0.4)', // #52c587\r\n green60: 'rgba(82, 197, 135, 0.6)', // #52c587\r\n greenMint: 'rgba(236, 253, 243, 1)', // #ecfdf3\r\n greenDark: 'rgba(11, 159, 67, 1)', // #0b9f43\r\n pink: 'rgba(240, 129, 107, 1)', // #f0816b\r\n pink20: 'rgba(240, 129, 107, 0.2)', // #f0816b\r\n pinkDark: 'rgba(221, 99, 75, 1)', // #DD634B\r\n pinkDarker: 'rgba(241, 132, 122, 1)', // #F1847A\r\n pinkLighter: 'rgba(249, 153, 144, 1)', // #f99990\r\n pinkLighter20: 'rgba(249, 153, 144, 0.2)', // #f99990\r\n pinkLighter40: 'rgba(249, 153, 144, 0.4)', // #f99990\r\n pinkShadow40: 'rgba(236, 119, 91, 0.4)', // #ec775b\r\n yellow: 'rgba(237, 153, 93, 1)', // #ed995d\r\n yellow20: 'rgba(237, 153, 93, 0.2)', // #ed995d\r\n yellowLighter: 'rgba(237, 186, 93, 1)', // #edba5d\r\n yellowLighter20: 'rgba(237, 186, 93, 0.2)', // #edba5d\r\n yellowLighter40: 'rgba(237, 186, 93, 0.4)', // #edba5d\r\n yellowWarm: 'rgba(237, 223, 93, 1)', // #eddf5d\r\n yellowWarm20: 'rgba(237, 223, 93, 0.2)', // #eddf5d\r\n yellowWarm40: 'rgba(237, 223, 93, 0.4)', // #eddf5d\r\n turquoise: 'rgba(65, 187, 187, 1)', // #41bbbb\r\n turquoise20: 'rgba(65, 187, 187, 0.2)', // #41bbbb\r\n turquoiseShadow40: 'rgba(143, 207, 207, 0.4)', // #8fcfcf\r\n turquoiseLighter: 'rgba(125, 203, 203, 1)', // #7dcbcb\r\n turquoiseLighter20: 'rgba(125, 203, 203, 0.2)', // #7dcbcb\r\n turquoiseLighter40: 'rgba(125, 203, 203, 0.4)', // #7dcbcb\r\n purple: 'rgba(123, 71, 235, 1)', // #7b47eb\r\n purple20: 'rgba(123, 71, 235, 0.2)', // #7b47eb\r\n purpleLighter: 'rgba(160, 120, 245, 1)', // #a078f5\r\n purpleLighter20: 'rgba(160, 120, 245, 0.2)', // #a078f5\r\n purpleLighter40: 'rgba(160, 120, 245, 0.4)', // #a078f5\r\n purpleDark: 'rgba(156, 122, 235, 1)', // #9c7aeb\r\n purpleDark40: 'rgba(156, 122, 235, 0.4)', // #9c7aeb\r\n blue: 'rgba(65, 120, 225, 1)', // #4178e1\r\n blue20: 'rgba(65, 120, 225, 0.2)', // #4178e1\r\n blueDark: 'rgba(36, 101, 227, 1)', // #2465e3\r\n blueLightDarker: 'rgba(127, 159, 221)', // #7f9fdd\r\n blueDropdownWithSelectedItems: 'rgba(236, 247, 255, 1)', // #ECF7FF\r\n blueDropdownWithSelectedItemsBorder: 'rgba(166, 213, 244, 1)', // #A6D5F4\r\n blueLighter: 'rgba(117, 153, 222, 1)', // #7599de\r\n blueLighter20: 'rgba(117, 153, 222, 0.2)', // #7599de\r\n blueLighter40: 'rgba(117, 153, 222, 0.4)', // #7599de\r\n blueLight: 'rgba(68, 179, 252, 1)', // #44b3fc\r\n blueLight20: 'rgba(68, 179, 252, 0.2)', // #44b3fc\r\n blueLightDarker40: 'rgba(127, 159, 221, 0.4)', // #7f9fdd\r\n blueLightLighter: 'rgba(133, 199, 242, 1)', // #85c7f2\r\n blueLightLighter20: 'rgba(133, 199, 242, 0.2)', // #85c7f2\r\n blueLightLighter40: 'rgba(133, 199, 242, 0.4)', // #85c7f2\r\n blueNotification: 'rgba(0, 133, 226, 1)', //#0085e2\r\n blueNotification40: 'rgba(0, 133, 226, 0.4)', //#0085e2\r\n blueButtonHoverGradientFrom: 'rgb(72, 122, 218)', //#487ada\r\n blueButtonHoverGradientTo: 'rgb(14, 75, 193)', //#0e4bc1\r\n blueButtonActive: 'rgb(7, 69, 189)', //#0745bd\r\n blueRoyal: 'rgba(72, 125, 225, 1)', //#487de1\r\n },\r\n mediaQueries: {\r\n xs: '@media screen and (max-width: 389px)',\r\n sm: '@media screen and (min-width: 390px)',\r\n md: '@media screen and (min-width: 900px)',\r\n lg: '@media screen and (min-width: 1440px)',\r\n xlg: '@media screen and (min-width: 1920px)',\r\n },\r\n};\r\n\r\nexport default main;\r\n","import { css, Theme } from '@emotion/react';\r\n\r\nexport const pink = (theme: Theme) => css`\r\n background-color: ${theme.colors.pink};\r\n background: linear-gradient(\r\n 99.26deg,\r\n ${theme.colors.pink},\r\n ${theme.colors.pinkLighter}\r\n );\r\n box-shadow: -4px 4px 10px ${theme.colors.pinkLighter40};\r\n`;\r\n\r\nexport const yellow = (theme: Theme) => css`\r\n background-color: ${theme.colors.yellow};\r\n background: linear-gradient(\r\n 90deg,\r\n ${theme.colors.yellow},\r\n ${theme.colors.yellowLighter}\r\n );\r\n box-shadow: -4px 4px 10px ${theme.colors.yellowLighter40};\r\n`;\r\n\r\nexport const yellowWarm = (theme: Theme) => css`\r\n background-color: ${theme.colors.yellowLighter};\r\n background: linear-gradient(\r\n 90deg,\r\n ${theme.colors.yellowLighter},\r\n ${theme.colors.yellowWarm}\r\n );\r\n box-shadow: -4px 4px 10px ${theme.colors.yellowLighter40};\r\n`;\r\n\r\nexport const green = (theme: Theme) => css`\r\n background-color: ${theme.colors.green};\r\n background: linear-gradient(\r\n 295.98deg,\r\n ${theme.colors.green},\r\n ${theme.colors.greenLighter}\r\n );\r\n box-shadow: -4px 4px 10px ${theme.colors.greenLighter40};\r\n`;\r\n\r\nexport const turquoise = (theme: Theme) => css`\r\n background-color: ${theme.colors.turquoise};\r\n background: linear-gradient(\r\n 116.22deg,\r\n ${theme.colors.turquoise},\r\n ${theme.colors.turquoiseLighter}\r\n );\r\n box-shadow: -4px 4px 10px ${theme.colors.turquoiseLighter40};\r\n`;\r\n\r\nexport const purple = (theme: Theme) => css`\r\n background-color: ${theme.colors.purple};\r\n background: linear-gradient(\r\n 243.84deg,\r\n ${theme.colors.purpleLighter},\r\n ${theme.colors.purple}\r\n );\r\n box-shadow: -4px 4px 10px ${theme.colors.purpleLighter40};\r\n`;\r\n\r\nexport const blue = (theme: Theme) => css`\r\n background-color: ${theme.colors.blue};\r\n background: linear-gradient(\r\n 90deg,\r\n ${theme.colors.blue},\r\n ${theme.colors.blueLighter}\r\n );\r\n box-shadow: -4px 4px 10px ${theme.colors.blueLighter40};\r\n`;\r\n\r\nexport const blueLight = (theme: Theme) => css`\r\n background-color: ${theme.colors.blueLight};\r\n background: linear-gradient(\r\n 247.37deg,\r\n ${theme.colors.blueLightLighter},\r\n ${theme.colors.blueLight}\r\n );\r\n box-shadow: -4px 4px 10px ${theme.colors.blueLightLighter40};\r\n`;\r\n\r\nexport const blueLightDarker = (theme: Theme) => css`\r\n background-color: ${theme.colors.blueLightDarker};\r\n background: linear-gradient(\r\n 247.37deg,\r\n ${theme.colors.blueDark},\r\n ${theme.colors.blueLightDarker}\r\n );\r\n box-shadow: -4px 4px 10px ${theme.colors.blueLightDarker40};\r\n`;\r\n","import { css, Theme, SerializedStyles } from '@emotion/react';\r\n\r\ntype OutlineFn = (\r\n theme: Theme,\r\n color?: keyof Theme['colors'],\r\n borderRadius?: string,\r\n borderStyle?: React.CSSProperties['borderStyle'],\r\n) => SerializedStyles;\r\n\r\n/* This is for Safari to make a rounded outline */\r\nexport const focusOutline: OutlineFn = (\r\n theme,\r\n color?,\r\n borderRadius = '12px',\r\n) => css`\r\n &:focus::before {\r\n ${outlineStyles(theme, color, borderRadius)}\r\n }\r\n`;\r\n\r\nexport const outlineStyles: OutlineFn = (\r\n theme,\r\n color?,\r\n borderRadius = '12px',\r\n borderStyle = 'solid',\r\n) => css`\r\n content: '';\r\n position: absolute;\r\n top: 0px;\r\n right: 0px;\r\n bottom: 0px;\r\n left: 0px;\r\n border-style: ${borderStyle};\r\n border-width: 1px;\r\n border-color: ${theme.colors[color || 'greyDarker']};\r\n border-radius: ${borderRadius};\r\n`;\r\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|element|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error(noComponentSelectorMessage);\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n if (process.env.NODE_ENV !== 'production') {\n if (tag === undefined) {\n throw new Error('You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.');\n }\n }\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n if (process.env.NODE_ENV !== 'production' && args[0][0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n if (process.env.NODE_ENV !== 'production' && args[0][i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[i], args[0][i]);\n }\n } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class\n\n\n var Styled = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = React.useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if ( // $FlowFixMe\n finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n newProps.ref = ref;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/React.createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && process.env.NODE_ENV !== 'production') {\n return 'NO_COMPONENT_SELECTOR';\n } // $FlowFixMe: coerce undefined to string\n\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n return createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport { createStyled as default };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","import { createContext, useState, useContext } from 'react';\r\nimport { AccordionProps, IAccordionGroupContext } from './types';\r\n\r\nexport const AccordionGroupContext = createContext<IAccordionGroupContext>(\r\n {} as IAccordionGroupContext,\r\n);\r\n\r\nexport const useAccordionGroupContext = () => useContext(AccordionGroupContext);\r\n\r\nconst useAccordionGroup = (): IAccordionGroupContext => {\r\n const [openedAccordions, setOpenedAccordions] = useState<AccordionProps[]>(\r\n [],\r\n );\r\n const [stayOpen, setStayOpen] = useState<boolean>(false);\r\n\r\n const toggleOpenedAccordion = (accordion: AccordionProps) => {\r\n const isOpened = !!openedAccordions.find(\r\n (activeAccordion) => activeAccordion.id === accordion.id,\r\n );\r\n if (stayOpen) {\r\n const newOpenedAccordions = isOpened\r\n ? openedAccordions.filter(\r\n (activeAccordion) => activeAccordion.id !== accordion.id,\r\n )\r\n : openedAccordions.concat([accordion]);\r\n setOpenedAccordions(newOpenedAccordions);\r\n } else {\r\n setOpenedAccordions(isOpened ? [] : [accordion]);\r\n }\r\n };\r\n\r\n return {\r\n openedAccordions,\r\n stayOpen,\r\n setOpenedAccordions,\r\n toggleOpenedAccordion,\r\n setStayOpen,\r\n };\r\n};\r\n\r\nexport const AccordionGroupContextProvider = ({\r\n children,\r\n}: {\r\n children: React.ReactNode;\r\n}) => {\r\n const {\r\n openedAccordions,\r\n stayOpen,\r\n setOpenedAccordions,\r\n toggleOpenedAccordion,\r\n setStayOpen,\r\n } = useAccordionGroup();\r\n\r\n return (\r\n <AccordionGroupContext.Provider\r\n value={{\r\n openedAccordions,\r\n stayOpen,\r\n setOpenedAccordions,\r\n toggleOpenedAccordion,\r\n setStayOpen,\r\n }}>\r\n {children}\r\n </AccordionGroupContext.Provider>\r\n );\r\n};\r\n","import styled from '@emotion/styled';\r\nimport {\r\n Children,\r\n cloneElement,\r\n isValidElement,\r\n useEffect,\r\n useLayoutEffect,\r\n} from 'react';\r\nimport { useAccordionGroupContext } from './AccordionContext';\r\nimport { AccordionGroupProps, AccordionProps } from './types';\r\n\r\nconst AccordionBase = styled.div``;\r\n\r\nexport const AccordionGroup = ({\r\n children,\r\n size = 'empty',\r\n accordionsStayOpen = true,\r\n ...rest\r\n}: AccordionGroupProps) => {\r\n const {\r\n openedAccordions,\r\n setOpenedAccordions,\r\n toggleOpenedAccordion,\r\n setStayOpen,\r\n } = useAccordionGroupContext();\r\n\r\n useEffect(() => {\r\n setStayOpen(accordionsStayOpen);\r\n }, []);\r\n\r\n useLayoutEffect(() => {\r\n const initialAccordions: AccordionProps[] = [];\r\n Children.map(children, (child) => {\r\n if (isValidElement(child) && child.props.isOpened) {\r\n const { renderContent, renderTitle, ...rest } = child.props;\r\n initialAccordions.push({\r\n id: rest.id,\r\n renderContent: renderContent.bind(null, rest),\r\n renderTitle: renderTitle.bind(null, rest),\r\n });\r\n }\r\n });\r\n setOpenedAccordions(initialAccordions);\r\n }, []);\r\n\r\n return (\r\n <AccordionBase data-testid=\"accordion-group\" tabIndex={0} {...rest}>\r\n {Children.map(children, (child) => {\r\n if (isValidElement(child)) {\r\n const { renderContent, renderTitle, ...rest } = child.props;\r\n const id = rest.id;\r\n const isOpened = !!openedAccordions?.find(\r\n (activeAccordion) => activeAccordion.id === id,\r\n );\r\n\r\n return cloneElement(child, {\r\n key: id,\r\n isOpened,\r\n size,\r\n onClick: () =>\r\n toggleOpenedAccordion({\r\n id,\r\n renderContent: renderContent.bind(null, rest),\r\n renderTitle: renderTitle.bind(null, rest),\r\n }),\r\n });\r\n }\r\n })}\r\n </AccordionBase>\r\n );\r\n};\r\n","import styled from '@emotion/styled';\r\n\r\nconst CardContentBase = styled.div<{ direction?: string }>`\r\n display: flex;\r\n justify-content: space-between;\r\n\r\n flex-direction: ${({ direction }) => (direction ? direction : 'row')};\r\n align-items: ${({ direction }) =>\r\n direction === 'column' ? 'normal' : 'center'};\r\n`;\r\n\r\nexport default CardContentBase;\r\n","import { CommonProps } from '@global-types/emotion';\r\nimport CardContentBase from './CardContentBase';\r\n\r\nexport interface CardProps extends CommonProps {\r\n children: React.ReactNode;\r\n style?: React.CSSProperties;\r\n direction?: 'row' | 'row-reverse' | 'column' | 'column-reverse';\r\n className?: string;\r\n ariaLabelledby?: string;\r\n role?: string;\r\n}\r\n\r\nconst CardContent = ({ children, ...props }: CardProps) => (\r\n <CardContentBase {...props}>{children}</CardContentBase>\r\n);\r\n\r\nexport default CardContent;\r\n","import { css, Theme } from '@emotion/react';\r\n\r\nexport const wrapperStyles = {\r\n empty: css``,\r\n small: css`\r\n background: none;\r\n border-radius: 0;\r\n box-shadow: none;\r\n `,\r\n medium: css`\r\n border-radius: 0;\r\n box-shadow: none;\r\n `,\r\n large: css`\r\n margin-bottom: 25px;\r\n min-height: 70px;\r\n border-radius: 20px;\r\n padding: 0;\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n `,\r\n};\r\n\r\nexport const baseTitleStyles = css`\r\n user-select: none;\r\n align-items: center;\r\n cursor: pointer;\r\n border: none;\r\n`;\r\n\r\nexport const createTitleStyles = (theme: Theme, isActive?: boolean) => ({\r\n empty: css`\r\n ${baseTitleStyles}\r\n `,\r\n small: css`\r\n ${baseTitleStyles}\r\n color: ${theme.colors.white80};\r\n margin-bottom: 0;\r\n height: 20px;\r\n font-size: 16px;\r\n font-weight: 500;\r\n & svg {\r\n width: 16px;\r\n height: 16px;\r\n & path {\r\n stroke: ${theme.colors.greyArrowSidebar};\r\n stroke-width: 1.6px;\r\n }\r\n }\r\n `,\r\n medium: css`\r\n ${baseTitleStyles}\r\n color: ${theme.colors.greyDropdownText};\r\n margin-bottom: 0;\r\n height: 40px;\r\n font-weight: 500;\r\n font-size: 14px;\r\n padding: 11px 22px 9px 17px;\r\n border: 1px solid ${theme.colors.greyDropdownMain};\r\n border-radius: 5px;\r\n & svg {\r\n width: 16px;\r\n height: 8px;\r\n & path {\r\n stroke: ${theme.colors.greyDropdownText};\r\n stroke-width: 1.2px;\r\n }\r\n }\r\n `,\r\n large: css`\r\n ${baseTitleStyles}\r\n margin-bottom: 0;\r\n height: 70px;\r\n font-weight: 700;\r\n font-size: 20px;\r\n padding: 23px 22px 23px 30px;\r\n background: ${isActive ? theme.colors.greyLighter : 'none'};\r\n border-top-left-radius: 20px;\r\n border-top-right-radius: 20px;\r\n & svg {\r\n width: 20px;\r\n height: 10px;\r\n & path {\r\n stroke: ${theme.colors.greyDarker};\r\n stroke-width: 1.2px;\r\n }\r\n }\r\n `,\r\n});\r\n\r\nexport const createBaseContentStyles = (isActive?: boolean) => css`\r\n flex-direction: column;\r\n align-self: flex-start;\r\n height: ${isActive ? 'auto' : 0};\r\n max-height: ${isActive ? 'initial' : 0};\r\n overflow: ${isActive ? 'visible' : 'hidden'};\r\n align-items: flex-start;\r\n`;\r\n\r\nexport const createContentStyles = (theme: Theme, isActive?: boolean) => ({\r\n empty: css`\r\n ${createBaseContentStyles(isActive)};\r\n `,\r\n small: css`\r\n ${createBaseContentStyles(isActive)};\r\n color: ${theme.colors.white80};\r\n & p {\r\n color: ${theme.colors.white80};\r\n margin: 15px 0;\r\n }\r\n `,\r\n medium: css`\r\n ${createBaseContentStyles(isActive)};\r\n padding: ${isActive ? '18px 8px 23px 8px' : 0};\r\n `,\r\n large: css`\r\n ${createBaseContentStyles(isActive)};\r\n padding: ${isActive ? '19px 30px 23px 30px' : 0};\r\n `,\r\n});\r\n","import CardContent from '@components/CardContent';\r\nimport { RenderContentProps } from './types';\r\nimport { createContentStyles } from './styles';\r\nimport { useTheme } from '@emotion/react';\r\n\r\nexport const AccordionContent = ({\r\n isOpened,\r\n children,\r\n size = 'empty',\r\n ...rest\r\n}: RenderContentProps & {\r\n children: React.ReactNode;\r\n}) => {\r\n const theme = useTheme();\r\n const styles = createContentStyles(theme, isOpened);\r\n return (\r\n <CardContent css={styles[size]} {...rest}>\r\n {children}\r\n </CardContent>\r\n );\r\n};\r\n","import styled from '@emotion/styled';\r\n\r\nconst CardHeaderBase = styled.div<{ transparent?: boolean; hasIcon?: boolean }>`\r\n position: relative;\r\n\r\n display: flex;\r\n justify-content: space-between;\r\n\r\n width: 100%;\r\n margin-bottom: 20px;\r\n\r\n background: ${(props) => (props.transparent ? 'transparent' : 'initial')};\r\n\r\n padding-left: ${(props) => (props.hasIcon ? '30px' : null)};\r\n\r\n ${({ theme }) => theme.mediaQueries.md} {\r\n padding-left: ${(props) => (props.hasIcon ? '40px' : null)};\r\n }\r\n`;\r\n\r\nexport default CardHeaderBase;\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Calendar = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 20 20\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>Calendar</title>\r\n <path\r\n d=\"M3.61111 0C1.6267 0 0 1.6267 0 3.61111V16.3889C0 18.3733 1.6267 20 3.61111 20H16.3889C18.3733 20 20 18.3733 20 16.3889V3.61111C20 1.6267 18.3733 0 16.3889 0H3.61111ZM3.61111 1.66667H16.3889C17.4723 1.66667 18.3333 2.52774 18.3333 3.61111V4.44444H1.66667V3.61111C1.66667 2.52774 2.52774 1.66667 3.61111 1.66667ZM1.66667 6.11111H18.3333V16.3889C18.3333 17.4723 17.4723 18.3333 16.3889 18.3333H3.61111C2.52774 18.3333 1.66667 17.4723 1.66667 16.3889V6.11111ZM5.27778 8.33333C4.90942 8.33333 4.55615 8.47966 4.29569 8.74013C4.03522 9.0006 3.88889 9.35387 3.88889 9.72222C3.88889 10.0906 4.03522 10.4438 4.29569 10.7043C4.55615 10.9648 4.90942 11.1111 5.27778 11.1111C5.64613 11.1111 5.9994 10.9648 6.25987 10.7043C6.52034 10.4438 6.66667 10.0906 6.66667 9.72222C6.66667 9.35387 6.52034 9.0006 6.25987 8.74013C5.9994 8.47966 5.64613 8.33333 5.27778 8.33333ZM10 8.33333C9.63164 8.33333 9.27837 8.47966 9.01791 8.74013C8.75744 9.0006 8.61111 9.35387 8.61111 9.72222C8.61111 10.0906 8.75744 10.4438 9.01791 10.7043C9.27837 10.9648 9.63164 11.1111 10 11.1111C10.3684 11.1111 10.7216 10.9648 10.9821 10.7043C11.2426 10.4438 11.3889 10.0906 11.3889 9.72222C11.3889 9.35387 11.2426 9.0006 10.9821 8.74013C10.7216 8.47966 10.3684 8.33333 10 8.33333ZM14.7222 8.33333C14.3539 8.33333 14.0006 8.47966 13.7401 8.74013C13.4797 9.0006 13.3333 9.35387 13.3333 9.72222C13.3333 10.0906 13.4797 10.4438 13.7401 10.7043C14.0006 10.9648 14.3539 11.1111 14.7222 11.1111C15.0906 11.1111 15.4438 10.9648 15.7043 10.7043C15.9648 10.4438 16.1111 10.0906 16.1111 9.72222C16.1111 9.35387 15.9648 9.0006 15.7043 8.74013C15.4438 8.47966 15.0906 8.33333 14.7222 8.33333ZM5.27778 13.3333C4.90942 13.3333 4.55615 13.4797 4.29569 13.7401C4.03522 14.0006 3.88889 14.3539 3.88889 14.7222C3.88889 15.0906 4.03522 15.4438 4.29569 15.7043C4.55615 15.9648 4.90942 16.1111 5.27778 16.1111C5.64613 16.1111 5.9994 15.9648 6.25987 15.7043C6.52034 15.4438 6.66667 15.0906 6.66667 14.7222C6.66667 14.3539 6.52034 14.0006 6.25987 13.7401C5.9994 13.4797 5.64613 13.3333 5.27778 13.3333ZM10 13.3333C9.63164 13.3333 9.27837 13.4797 9.01791 13.7401C8.75744 14.0006 8.61111 14.3539 8.61111 14.7222C8.61111 15.0906 8.75744 15.4438 9.01791 15.7043C9.27837 15.9648 9.63164 16.1111 10 16.1111C10.3684 16.1111 10.7216 15.9648 10.9821 15.7043C11.2426 15.4438 11.3889 15.0906 11.3889 14.7222C11.3889 14.3539 11.2426 14.0006 10.9821 13.7401C10.7216 13.4797 10.3684 13.3333 10 13.3333Z\"\r\n fill={fill}\r\n />\r\n </svg>\r\n);\r\n","// This file is also imported into the Button/Button.stories.tsx\r\n// and into the ./index.tsx\r\n// We need such a file to let webpack create a chunk for\r\n// the <Icon /> component which uses React.lazy().\r\n// If we import <Icon /> directly into the Button/Button.stories.tsx,\r\n// webpack will consider that as an objection to the chunk creation.\r\n//\r\n// Make sure the order in this array corresponds to the one in the\r\n// ./index.tsx\r\nexport const iconsList = [\r\n 'diet',\r\n 'calendar',\r\n 'home',\r\n 'stats',\r\n 'sleep',\r\n 'trainings',\r\n 'measurements',\r\n 'settings',\r\n 'plus',\r\n 'minus',\r\n 'more',\r\n 'more-vertical',\r\n 'check',\r\n 'check-circle',\r\n 'cross',\r\n 'user',\r\n 'union',\r\n 'notification',\r\n 'information',\r\n 'warning',\r\n 'attention',\r\n 'visible',\r\n 'invisible',\r\n 'log-out',\r\n 'log-in',\r\n 'email',\r\n 'lock',\r\n 'carrot-down',\r\n 'carrot-up',\r\n 'carrot-left',\r\n 'carrot-right',\r\n 'radio-on',\r\n 'circle',\r\n 'arrow-up',\r\n 'arrow-down',\r\n 'filter',\r\n 'search',\r\n 'archive',\r\n 'bin',\r\n 'change',\r\n 'copy',\r\n 'robot',\r\n 'chart',\r\n 'clock',\r\n 'unarchive',\r\n] as const;\r\n","import { IconProps, IMapIcons } from '../types';\r\n\r\nimport { Calendar } from './Calendar';\r\nimport { Diet } from './Diet';\r\nimport { Home } from './Home';\r\nimport { Measurements } from './Measurements';\r\nimport { Settings } from './Settings';\r\nimport { Sleep } from './Sleep';\r\nimport { Stats } from './Stats';\r\nimport { Trainings } from './Trainings';\r\n\r\nimport { Plus } from './Plus';\r\nimport { Minus } from './Minus';\r\nimport { Cross } from './Cross';\r\nimport { Check } from './Check';\r\nimport { CheckCircle } from './CheckCircle';\r\nimport { More } from './More';\r\nimport { MoreVertical } from './MoreVertical';\r\nimport { Notification } from './Notification';\r\nimport { User } from './User';\r\nimport { Union } from './Union';\r\nimport { Visible } from './Visible';\r\nimport { Invisible } from './Invisible';\r\nimport { LogIn } from './LogIn';\r\nimport { LogOut } from './LogOut';\r\nimport { Email } from './Email';\r\nimport { Lock } from './Lock';\r\nimport { Information } from './Information';\r\nimport { Warning } from './Warning';\r\nimport { Attention } from './Attention';\r\n\r\nimport { CarrotDown } from './CarrotDown';\r\nimport { CarrotUp } from './CarrotUp';\r\nimport { CarrotLeft } from './CarrotLeft';\r\nimport { CarrotRight } from './CarrotRight';\r\n\r\nimport { RadioOn } from './RadioOn';\r\nimport { Circle } from './Circle';\r\n\r\nimport { ArrowUp } from './ArrowUp';\r\nimport { ArrowDown } from './ArrowDown';\r\n\r\nimport { iconsList } from './iconsList';\r\nimport { Filter } from './Filter';\r\nimport { Search } from './Search';\r\nimport { Archive } from './Archive';\r\nimport { UnArchive } from './UnArchive';\r\nimport { Bin } from './Bin';\r\nimport { Change } from './Change';\r\nimport { Copy } from './Copy';\r\nimport { Robot } from './Robot';\r\nimport { Chart } from './Chart';\r\nimport { Clock } from './Clock';\r\n\r\nconst componentsList = [\r\n Diet,\r\n Calendar,\r\n Home,\r\n Stats,\r\n Sleep,\r\n Trainings,\r\n Measurements,\r\n Settings,\r\n Plus,\r\n Minus,\r\n More,\r\n MoreVertical,\r\n Check,\r\n CheckCircle,\r\n Cross,\r\n User,\r\n Union,\r\n Notification,\r\n Information,\r\n Warning,\r\n Attention,\r\n Visible,\r\n Invisible,\r\n LogOut,\r\n LogIn,\r\n Email,\r\n Lock,\r\n CarrotDown,\r\n CarrotUp,\r\n CarrotLeft,\r\n CarrotRight,\r\n RadioOn,\r\n Circle,\r\n ArrowUp,\r\n ArrowDown,\r\n Filter,\r\n Search,\r\n Archive,\r\n Bin,\r\n Change,\r\n Copy,\r\n Robot,\r\n Chart,\r\n Clock,\r\n UnArchive,\r\n];\r\n\r\nconst iconsMap: IMapIcons = iconsList.reduce((res, name, index) => {\r\n res[name] = componentsList[index];\r\n return res;\r\n}, {} as IMapIcons);\r\n\r\nconst IconMapComponent = ({ name, color, ...props }: IconProps) => {\r\n const Component = iconsMap[name];\r\n\r\n if (Component == null) {\r\n return null;\r\n }\r\n\r\n return <Component fill={color} {...props} />;\r\n};\r\nexport default IconMapComponent;\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Diet = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>Diet</title>\r\n <path\r\n d=\"M15.3794 1.6875C15.3294 1.68734 15.2788 1.69189 15.2278 1.70215C14.1195 1.92375 13.0319 2.82406 12.4431 3.96241C8.37168 4.3361 5.25 9.29549 5.25 15.5625C5.25 19.2844 8.27812 22.3125 12 22.3125C15.7219 22.3125 18.75 19.2844 18.75 15.5625C18.75 13.7303 18.0635 12.4566 17.3994 11.2251C16.7443 10.009 16.125 8.86013 16.125 7.125C16.125 5.77573 15.2807 4.62307 14.094 4.1587C14.5181 3.61873 15.077 3.26196 15.5222 3.17286C15.9283 3.09186 16.1917 2.69641 16.1104 2.29029C16.0395 1.93493 15.7292 1.68864 15.3794 1.6875ZM12.9441 5.43824C13.8714 5.4419 14.625 6.19689 14.625 7.125C14.625 9.2385 15.3982 10.6714 16.0796 11.9363C16.7077 13.1018 17.25 14.1086 17.25 15.5625C17.25 18.4575 14.895 20.8125 12 20.8125C9.105 20.8125 6.75 18.4575 6.75 15.5625C6.75 10.0089 9.49693 5.4871 12.884 5.4397C12.9054 5.44185 12.9236 5.43802 12.9441 5.43824ZM12 11.4375C10.2319 11.4375 9 13.6247 9 15.5874C9 17.5599 10.2337 18.9375 12 18.9375C13.7662 18.9375 15 17.5599 15 15.5874C15 13.6247 13.7681 11.4375 12 11.4375ZM12 12.9375C12.6611 12.9375 13.5 14.1849 13.5 15.5874C13.5 16.7109 12.9113 17.4375 12 17.4375C11.0887 17.4375 10.5 16.7109 10.5 15.5874C10.5 14.1849 11.3389 12.9375 12 12.9375Z\"\r\n fill={fill}\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Home = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 18 20\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>Home</title>\r\n <path\r\n d=\"M8.97559 0.250119C8.81566 0.25558 8.66168 0.312041 8.53613 0.411252L1.42969 6.00988C0.527739 6.7207 0 7.80687 0 8.9552V18.5001C0 19.1819 0.568203 19.7501 1.25 19.7501H6.25C6.9318 19.7501 7.5 19.1819 7.5 18.5001V13.5001C7.5 13.3526 7.60248 13.2501 7.75 13.2501H10.25C10.3975 13.2501 10.5 13.3526 10.5 13.5001V18.5001C10.5 19.1819 11.0682 19.7501 11.75 19.7501H16.75C17.4318 19.7501 18 19.1819 18 18.5001V8.9552C18 7.80687 17.4723 6.7207 16.5703 6.00988L9.46387 0.411252C9.32518 0.301689 9.15225 0.244623 8.97559 0.250119ZM9 1.9552L15.6426 7.1886C16.1846 7.61578 16.5 8.26552 16.5 8.9552V18.2501H12V13.5001C12 12.5426 11.2075 11.7501 10.25 11.7501H7.75C6.79252 11.7501 6 12.5426 6 13.5001V18.2501H1.5V8.9552C1.5 8.26552 1.81537 7.61578 2.35742 7.1886L9 1.9552Z\"\r\n fill={fill}\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Stats = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 22 20\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>Stats</title>\r\n <path\r\n d=\"M8.60653 3.62364C7.65543 3.81726 6.74357 4.19357 5.9236 4.73666C4.6787 5.56119 3.7015 6.73312 3.11555 8.10427C2.52961 9.47541 2.36125 10.9842 2.63175 12.4398C2.90226 13.8954 3.59949 15.2324 4.63526 16.2818C5.67104 17.3313 6.99885 18.0459 8.45078 18.3355C9.90272 18.625 11.4136 18.4764 12.7923 17.9085C14.1709 17.3405 15.3556 16.3787 16.1963 15.1447C16.7501 14.332 17.1383 13.4251 17.3444 12.4766L14.2451 12.4766C14.116 12.8294 13.943 13.1672 13.7288 13.4816C13.2234 14.2233 12.5114 14.8014 11.6827 15.1427C10.8541 15.4841 9.94598 15.5734 9.0733 15.3994C8.20061 15.2253 7.40253 14.7958 6.77997 14.165C6.15741 13.5343 5.73834 12.7306 5.57575 11.8557C5.41317 10.9809 5.51436 10.074 5.86654 9.24988C6.21873 8.42575 6.80608 7.72135 7.55433 7.22577C7.87147 7.01572 8.21151 6.84716 8.56596 6.72268L8.60653 3.62364ZM9.12977 2.0268C9.67978 1.96553 10.1232 2.41922 10.116 2.97178L10.0637 6.96592C10.0564 7.51848 9.59085 7.95088 9.06614 8.13122C8.82267 8.2149 8.58921 8.32964 8.37184 8.47361C7.87257 8.80429 7.48066 9.27429 7.24567 9.82419C7.01067 10.3741 6.94315 10.9792 7.05164 11.563C7.16013 12.1467 7.43975 12.683 7.85515 13.1038C8.27055 13.5247 8.80308 13.8113 9.38538 13.9274C9.96768 14.0436 10.5736 13.984 11.1265 13.7562C11.6795 13.5284 12.1546 13.1427 12.4917 12.6478C12.6385 12.4323 12.7563 12.2004 12.8432 11.958C13.0304 11.4357 13.4688 10.9759 14.0214 10.9759L18.0159 10.9759C18.5685 10.9759 19.0164 11.4252 18.9479 11.9743C18.7699 13.402 18.2526 14.776 17.4334 15.9785C16.4245 17.4593 15.0029 18.6135 13.3485 19.295C11.694 19.9765 9.88102 20.1548 8.13871 19.8074C6.39639 19.46 4.80302 18.6024 3.56008 17.343C2.31715 16.0837 1.48047 14.4793 1.15587 12.7326C0.83126 10.9858 1.0333 9.17532 1.73643 7.52995C2.43956 5.88458 3.61221 4.47826 5.10608 3.48882C6.31919 2.68535 7.69987 2.18609 9.12977 2.0268Z\"\r\n fill={fill}\r\n />\r\n <path\r\n d=\"M19.4116 7.47417C19.3221 7.00597 19.1878 6.54685 19.0098 6.10324C18.6446 5.19277 18.1026 4.3655 17.4148 3.66865C16.7271 2.97181 15.9069 2.41904 15.0013 2.04191C14.5601 1.85816 14.1028 1.71786 13.6358 1.62229L13.5952 4.72155C13.6706 4.74828 13.7454 4.77706 13.8193 4.80786C14.3637 5.03454 14.8566 5.36678 15.27 5.78562C15.6834 6.20446 16.0091 6.7017 16.2287 7.24894C16.2585 7.32331 16.2863 7.39842 16.312 7.47417H19.4116ZM21.0021 7.97651C21.0562 8.52571 20.5965 8.97504 20.0439 8.97504H16.0491C15.4964 8.97504 15.07 8.51513 14.8965 7.99278C14.8775 7.93573 14.8568 7.8792 14.8344 7.8233C14.6879 7.45815 14.4705 7.12637 14.1947 6.8469C13.9189 6.56743 13.59 6.34574 13.2268 6.19449C13.1712 6.17133 13.1149 6.1499 13.0581 6.1302C12.5381 5.94984 12.0838 5.51742 12.091 4.96481L12.1433 0.970385C12.1506 0.417779 12.6059 -0.0359408 13.1543 0.0253343C13.9929 0.119031 14.8143 0.330651 15.5939 0.655286C16.6806 1.10784 17.6648 1.77116 18.4901 2.60738C19.3154 3.44359 19.9658 4.43632 20.4041 5.52888C20.7185 6.31262 20.9194 7.13672 21.0021 7.97651Z\"\r\n fill={fill}\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Sleep = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>Sleep</title>\r\n <path\r\n d=\"M6.00833 2.0001C5.86499 2.002 5.7252 2.04501 5.60557 2.12402C4.00925 3.14394 2.65193 4.502 1.63258 6.0992C1.57541 6.18206 1.53552 6.2756 1.51529 6.37424C1.49506 6.47287 1.4949 6.57457 1.51482 6.67327C1.53474 6.77196 1.57434 6.86563 1.63124 6.94868C1.68814 7.03172 1.76119 7.10245 1.84601 7.15662C1.93084 7.2108 2.0257 7.24732 2.12495 7.264C2.22419 7.28068 2.32577 7.27718 2.42363 7.25371C2.52149 7.23024 2.61363 7.18728 2.69453 7.12739C2.77543 7.06751 2.84343 6.99192 2.89449 6.90516C3.79647 5.49188 4.99859 4.2891 6.41109 3.38663C6.55019 3.30043 6.65725 3.17103 6.71591 3.01821C6.77458 2.86538 6.78161 2.69754 6.73595 2.54034C6.69028 2.38314 6.59443 2.24522 6.46304 2.14766C6.33164 2.05011 6.17194 1.99828 6.00833 2.0001ZM17.9692 2.0001C17.8075 2.00312 17.6512 2.05841 17.5235 2.15772C17.3958 2.25703 17.3037 2.39502 17.2609 2.55107C17.2181 2.70711 17.2269 2.87282 17.286 3.02343C17.3451 3.17404 17.4514 3.30146 17.5889 3.38663C19.0014 4.2891 20.2035 5.49188 21.1055 6.90516C21.1566 6.99192 21.2246 7.06751 21.3055 7.12739C21.3864 7.18727 21.4785 7.23024 21.5764 7.25371C21.6742 7.27718 21.7758 7.28068 21.8751 7.26399C21.9743 7.24731 22.0692 7.2108 22.154 7.15662C22.2388 7.10244 22.3119 7.03172 22.3688 6.94868C22.4257 6.86563 22.4653 6.77196 22.4852 6.67327C22.5051 6.57457 22.5049 6.47287 22.4847 6.37424C22.4645 6.2756 22.4246 6.18206 22.3674 6.0992C21.3481 4.502 19.9907 3.14394 18.3944 2.12402C18.2684 2.04078 18.1202 1.99759 17.9692 2.0001ZM12 3.00512C6.76945 3.00512 2.51319 7.26371 2.51319 12.4971C2.51319 15.3532 3.80753 17.8881 5.80939 19.6298L4.72983 20.71C4.65795 20.779 4.60057 20.8617 4.56104 20.9532C4.5215 21.0448 4.50062 21.1432 4.49961 21.2429C4.49859 21.3426 4.51747 21.4415 4.55514 21.5338C4.5928 21.6261 4.6485 21.71 4.71896 21.7805C4.78942 21.851 4.87323 21.9067 4.96548 21.9444C5.05773 21.9821 5.15658 22.001 5.25622 22C5.35586 21.9989 5.4543 21.9781 5.54576 21.9385C5.63723 21.8989 5.71989 21.8415 5.78891 21.7696L7.01864 20.5392C8.47058 21.4429 10.168 21.9892 12 21.9892C13.832 21.9892 15.5294 21.4429 16.9814 20.5392L18.2111 21.7696C18.2801 21.8415 18.3628 21.8989 18.4542 21.9385C18.5457 21.9781 18.6441 21.9989 18.7438 22C18.8434 22.001 18.9423 21.9821 19.0345 21.9444C19.1268 21.9067 19.2106 21.851 19.281 21.7805C19.3515 21.71 19.4072 21.6261 19.4449 21.5338C19.4825 21.4415 19.5014 21.3426 19.5004 21.2429C19.4994 21.1432 19.4785 21.0448 19.439 20.9532C19.3994 20.8617 19.342 20.779 19.2702 20.71L18.1906 19.6298C20.1925 17.8881 21.4868 15.3532 21.4868 12.4971C21.4868 7.26371 17.2306 3.00512 12 3.00512ZM12 4.50386C16.421 4.50386 19.9889 8.07369 19.9889 12.4971C19.9889 16.9206 16.421 20.4904 12 20.4904C7.57898 20.4904 4.01111 16.9206 4.01111 12.4971C4.01111 8.07369 7.57898 4.50386 12 4.50386ZM10.8 13.3439L10.7992 7.7003C10.7992 7.3137 11.1125 7.00025 11.4991 7.0002C11.8857 7.00014 12.1992 7.31349 12.1992 7.70009L12.1999 12.6035L17.3302 11.3209C17.7053 11.2271 18.0853 11.4552 18.1791 11.8302C18.2729 12.2053 18.0448 12.5853 17.6698 12.6791L11.6698 14.1791C11.2947 14.2729 10.9147 14.0448 10.8209 13.6698C10.8 13.586 10.7951 13.5021 10.8043 13.4211C10.8015 13.3957 10.8001 13.37 10.8 13.3439Z\"\r\n fill={fill}\r\n />\r\n <path\r\n d=\"M5.60557 2.12402L5.63249 2.16616L5.63313 2.16574L5.60557 2.12402ZM6.00833 2.0001L6.00777 1.95011L6.00767 1.95011L6.00833 2.0001ZM1.63258 6.0992L1.67376 6.1276L1.67472 6.12609L1.63258 6.0992ZM1.51529 6.37424L1.46631 6.36419L1.51529 6.37424ZM1.51482 6.67327L1.56383 6.66337H1.56383L1.51482 6.67327ZM1.63124 6.94868L1.58999 6.97694H1.58999L1.63124 6.94868ZM2.12495 7.264L2.13323 7.21469H2.13323L2.12495 7.264ZM2.42363 7.25371L2.43529 7.30233H2.4353L2.42363 7.25371ZM2.69453 7.12739L2.66478 7.0872H2.66478L2.69453 7.12739ZM2.89449 6.90516L2.85232 6.87824L2.8514 6.8798L2.89449 6.90516ZM6.41109 3.38663L6.38475 3.34413L6.38417 3.3445L6.41109 3.38663ZM6.71591 3.01821L6.76259 3.03612L6.71591 3.01821ZM6.73595 2.54034L6.78396 2.52639V2.52639L6.73595 2.54034ZM6.46304 2.14766L6.43323 2.18781V2.18781L6.46304 2.14766ZM17.5235 2.15772L17.5542 2.19719L17.5235 2.15772ZM17.9692 2.0001L17.9684 1.95011L17.9683 1.95011L17.9692 2.0001ZM17.2609 2.55107L17.2126 2.53784V2.53784L17.2609 2.55107ZM17.5889 3.38663L17.6158 3.34449L17.6152 3.34413L17.5889 3.38663ZM21.1055 6.90516L21.1486 6.87978L21.1477 6.87826L21.1055 6.90516ZM21.3055 7.12739L21.3352 7.0872L21.3055 7.12739ZM21.5764 7.25371L21.588 7.20508L21.5764 7.25371ZM21.8751 7.26399L21.8668 7.21469L21.8751 7.26399ZM22.154 7.15662L22.1809 7.19876V7.19876L22.154 7.15662ZM22.3688 6.94868L22.3275 6.92041V6.92041L22.3688 6.94868ZM22.4852 6.67327L22.4362 6.66337V6.66337L22.4852 6.67327ZM22.3674 6.0992L22.3253 6.12611L22.3263 6.12759L22.3674 6.0992ZM18.3944 2.12402L18.3669 2.16575L18.3675 2.16616L18.3944 2.12402ZM5.80939 19.6298L5.84475 19.6652L5.88263 19.6273L5.84221 19.5921L5.80939 19.6298ZM4.72983 20.71L4.76448 20.746L4.7652 20.7453L4.72983 20.71ZM4.56104 20.9532L4.60694 20.9731L4.56104 20.9532ZM4.55514 21.5338L4.60143 21.5149L4.55514 21.5338ZM4.71896 21.7805L4.68359 21.8158L4.71896 21.7805ZM4.96548 21.9444L4.94657 21.9907H4.94657L4.96548 21.9444ZM5.25622 22L5.25571 21.95H5.25571L5.25622 22ZM5.54576 21.9385L5.52592 21.8926H5.52592L5.54576 21.9385ZM5.78891 21.7696L5.75354 21.7343L5.75283 21.735L5.78891 21.7696ZM7.01864 20.5392L7.04507 20.4967L7.01135 20.4758L6.98328 20.5039L7.01864 20.5392ZM16.9814 20.5392L17.0167 20.5039L16.9886 20.4758L16.9549 20.4967L16.9814 20.5392ZM18.2111 21.7696L18.2472 21.735L18.2465 21.7343L18.2111 21.7696ZM18.4542 21.9385L18.4741 21.8926L18.4542 21.9385ZM18.7438 22L18.7433 22.05L18.7438 22ZM19.0345 21.9444L19.0534 21.9907H19.0534L19.0345 21.9444ZM19.281 21.7805L19.3164 21.8158L19.281 21.7805ZM19.439 20.9532L19.3931 20.9731L19.439 20.9532ZM19.2702 20.71L19.2348 20.7453L19.2355 20.746L19.2702 20.71ZM18.1906 19.6298L18.1578 19.5921L18.1174 19.6273L18.1552 19.6652L18.1906 19.6298ZM10.7992 7.7003L10.8492 7.70029V7.70029L10.7992 7.7003ZM10.8 13.3439L10.85 13.3438L10.8 13.3439ZM11.4991 7.0002L11.4991 7.0502L11.4991 7.0002ZM12.1992 7.70009L12.1492 7.7001L12.1992 7.70009ZM12.1999 12.6035L12.1499 12.6035L12.1499 12.6675L12.2121 12.652L12.1999 12.6035ZM17.3302 11.3209L17.3181 11.2724L17.3302 11.3209ZM18.1791 11.8302L18.2276 11.8181L18.1791 11.8302ZM11.6698 14.1791L11.6819 14.2276H11.6819L11.6698 14.1791ZM10.8209 13.6698L10.8694 13.6576L10.8209 13.6698ZM10.8043 13.4211L10.8552 13.4269L10.854 13.4156L10.8043 13.4211ZM5.63313 2.16574C5.74477 2.092 5.87523 2.05187 6.00899 2.0501L6.00767 1.95011C5.85476 1.95213 5.70564 1.99801 5.57801 2.0823L5.63313 2.16574ZM1.67472 6.12609C2.69017 4.53503 4.0423 3.18216 5.63249 2.16616L5.57865 2.08189C3.97621 3.10571 2.61369 4.46898 1.59043 6.0723L1.67472 6.12609ZM1.56427 6.38428C1.58316 6.29223 1.62038 6.20493 1.67373 6.12759L1.59142 6.0708C1.53044 6.1592 1.48789 6.25898 1.46631 6.36419L1.56427 6.38428ZM1.56383 6.66337C1.54524 6.57126 1.54539 6.47634 1.56427 6.38428L1.46631 6.36419C1.44473 6.4694 1.44456 6.57788 1.46581 6.68316L1.56383 6.66337ZM1.67249 6.92041C1.61938 6.84291 1.58243 6.75549 1.56383 6.66337L1.46581 6.68316C1.48706 6.78844 1.5293 6.88835 1.58999 6.97694L1.67249 6.92041ZM1.87293 7.11448C1.79376 7.06392 1.72559 6.99792 1.67249 6.92041L1.58999 6.97694C1.65069 7.06552 1.72861 7.14097 1.8191 7.19876L1.87293 7.11448ZM2.13323 7.21469C2.04062 7.19912 1.95209 7.16504 1.87293 7.11448L1.8191 7.19876C1.90959 7.25655 2.01079 7.29551 2.11666 7.3133L2.13323 7.21469ZM2.41197 7.20509C2.32065 7.22699 2.22585 7.23025 2.13323 7.21469L2.11666 7.3133C2.22253 7.3311 2.3309 7.32737 2.43529 7.30233L2.41197 7.20509ZM2.66478 7.0872C2.58928 7.14309 2.5033 7.18318 2.41197 7.20509L2.4353 7.30233C2.53969 7.27729 2.63797 7.23146 2.72427 7.16758L2.66478 7.0872ZM2.8514 6.8798C2.80375 6.96078 2.74028 7.03132 2.66478 7.0872L2.72427 7.16758C2.81057 7.1037 2.88312 7.02307 2.93759 6.93052L2.8514 6.8798ZM6.38417 3.3445C4.96554 4.25088 3.75823 5.45886 2.85235 6.87826L2.93664 6.93206C3.83471 5.5249 5.03163 4.32733 6.43801 3.42877L6.38417 3.3445ZM6.66923 3.00029C6.61448 3.14292 6.51456 3.26369 6.38475 3.34413L6.43743 3.42913C6.58581 3.33718 6.70002 3.19914 6.76259 3.03612L6.66923 3.00029ZM6.68793 2.55429C6.73055 2.70101 6.72399 2.85765 6.66923 3.00029L6.76259 3.03612C6.82517 2.87311 6.83267 2.69408 6.78396 2.52639L6.68793 2.55429ZM6.43323 2.18781C6.55585 2.27885 6.64531 2.40757 6.68793 2.55429L6.78396 2.52639C6.73525 2.3587 6.63301 2.21158 6.49284 2.10752L6.43323 2.18781ZM6.00889 2.0501C6.16157 2.0484 6.31061 2.09676 6.43323 2.18781L6.49284 2.10752C6.35268 2.00345 6.18231 1.94816 6.00777 1.95011L6.00889 2.0501ZM17.5542 2.19719C17.6733 2.10451 17.8193 2.05291 17.9702 2.0501L17.9683 1.95011C17.7958 1.95333 17.629 2.01231 17.4928 2.11825L17.5542 2.19719ZM17.3091 2.56429C17.349 2.41865 17.435 2.28987 17.5542 2.19719L17.4928 2.11825C17.3566 2.22419 17.2583 2.37139 17.2126 2.53784L17.3091 2.56429ZM17.3326 3.00516C17.2774 2.86459 17.2691 2.70993 17.3091 2.56429L17.2126 2.53784C17.167 2.70429 17.1764 2.88105 17.2395 3.0417L17.3326 3.00516ZM17.6152 3.34413C17.4869 3.26464 17.3877 3.14572 17.3326 3.00516L17.2395 3.0417C17.3025 3.20236 17.4159 3.33828 17.5626 3.42914L17.6152 3.34413ZM21.1477 6.87826C20.2418 5.45886 19.0345 4.25088 17.6158 3.3445L17.562 3.42877C18.9684 4.32733 20.1653 5.5249 21.0634 6.93206L21.1477 6.87826ZM21.3352 7.0872C21.2597 7.03132 21.1963 6.96078 21.1486 6.8798L21.0624 6.93052C21.1169 7.02307 21.1894 7.1037 21.2757 7.16758L21.3352 7.0872ZM21.588 7.20508C21.4967 7.18318 21.4107 7.14309 21.3352 7.0872L21.2757 7.16758C21.362 7.23146 21.4603 7.27729 21.5647 7.30233L21.588 7.20508ZM21.8668 7.21469C21.7742 7.23025 21.6794 7.22699 21.588 7.20508L21.5647 7.30233C21.6691 7.32736 21.7775 7.3311 21.8833 7.3133L21.8668 7.21469ZM22.1271 7.11448C22.0479 7.16504 21.9594 7.19912 21.8668 7.21469L21.8833 7.3133C21.9892 7.29551 22.0904 7.25655 22.1809 7.19876L22.1271 7.11448ZM22.3275 6.92041C22.2744 6.99792 22.2062 7.06392 22.1271 7.11448L22.1809 7.19876C22.2714 7.14097 22.3493 7.06552 22.41 6.97694L22.3275 6.92041ZM22.4362 6.66337C22.4176 6.75549 22.3806 6.84291 22.3275 6.92041L22.41 6.97694C22.4707 6.88835 22.5129 6.78843 22.5342 6.68316L22.4362 6.66337ZM22.4357 6.38428C22.4546 6.47634 22.4548 6.57126 22.4362 6.66337L22.5342 6.68316C22.5554 6.57788 22.5553 6.4694 22.5337 6.36419L22.4357 6.38428ZM22.3263 6.12759C22.3796 6.20493 22.4168 6.29223 22.4357 6.38428L22.5337 6.36419C22.5121 6.25898 22.4696 6.1592 22.4086 6.0708L22.3263 6.12759ZM18.3675 2.16616C19.9577 3.18216 21.3098 4.53503 22.3253 6.12609L22.4096 6.0723C21.3863 4.46898 20.0238 3.10571 18.4214 2.08189L18.3675 2.16616ZM17.9701 2.0501C18.111 2.04775 18.2493 2.08806 18.3669 2.16574L18.422 2.0823C18.2876 1.99351 18.1295 1.94743 17.9684 1.95011L17.9701 2.0501ZM2.56319 12.4971C2.56319 7.2913 6.79709 3.05512 12 3.05512V2.95512C6.74181 2.95512 2.46319 7.23613 2.46319 12.4971H2.56319ZM5.84221 19.5921C3.85037 17.8591 2.56319 15.3376 2.56319 12.4971H2.46319C2.46319 15.3688 3.76469 17.9171 5.77657 19.6675L5.84221 19.5921ZM4.7652 20.7453L5.84475 19.6652L5.77402 19.5945L4.69447 20.6746L4.7652 20.7453ZM4.60694 20.9731C4.64383 20.8876 4.69739 20.8105 4.76447 20.746L4.69519 20.6739C4.61852 20.7476 4.55731 20.8358 4.51514 20.9334L4.60694 20.9731ZM4.5496 21.2434C4.55055 21.1504 4.57004 21.0585 4.60694 20.9731L4.51514 20.9334C4.47297 21.031 4.45069 21.1361 4.44961 21.2424L4.5496 21.2434ZM4.60143 21.5149C4.56628 21.4288 4.54866 21.3365 4.5496 21.2434L4.44961 21.2424C4.44853 21.3488 4.46867 21.4543 4.50884 21.5527L4.60143 21.5149ZM4.75432 21.7451C4.68856 21.6794 4.63658 21.6011 4.60143 21.5149L4.50884 21.5527C4.54902 21.6512 4.60843 21.7406 4.68359 21.8158L4.75432 21.7451ZM4.98439 21.8981C4.89829 21.8629 4.82008 21.8109 4.75432 21.7451L4.68359 21.8158C4.75875 21.891 4.84816 21.9505 4.94657 21.9907L4.98439 21.8981ZM5.25571 21.95C5.16272 21.9509 5.07048 21.9333 4.98439 21.8981L4.94657 21.9907C5.04499 22.0309 5.15043 22.051 5.25673 22.05L5.25571 21.95ZM5.52592 21.8926C5.44056 21.9295 5.34869 21.949 5.25571 21.95L5.25673 22.05C5.36302 22.0489 5.46803 22.0266 5.56561 21.9844L5.52592 21.8926ZM5.75283 21.735C5.68842 21.8021 5.61128 21.8557 5.52592 21.8926L5.56561 21.9844C5.66319 21.9422 5.75137 21.8809 5.82498 21.8042L5.75283 21.735ZM6.98328 20.5039L5.75354 21.7343L5.82427 21.805L7.05401 20.5745L6.98328 20.5039ZM12 21.9392C10.1782 21.9392 8.4898 21.396 7.04507 20.4967L6.99222 20.5816C8.45137 21.4899 10.1578 22.0392 12 22.0392V21.9392ZM16.9549 20.4967C15.5102 21.396 13.8218 21.9392 12 21.9392V22.0392C13.8422 22.0392 15.5486 21.4899 17.0078 20.5816L16.9549 20.4967ZM18.2465 21.7343L17.0167 20.5039L16.946 20.5745L18.1757 21.805L18.2465 21.7343ZM18.4741 21.8926C18.3887 21.8557 18.3116 21.8021 18.2472 21.735L18.175 21.8042C18.2486 21.8809 18.3368 21.9422 18.4344 21.9844L18.4741 21.8926ZM18.7443 21.95C18.6513 21.949 18.5594 21.9295 18.4741 21.8926L18.4344 21.9844C18.532 22.0266 18.637 22.0489 18.7433 22.05L18.7443 21.95ZM19.0156 21.8981C18.9295 21.9333 18.8373 21.9509 18.7443 21.95L18.7433 22.05C18.8496 22.051 18.955 22.0309 19.0534 21.9907L19.0156 21.8981ZM19.2457 21.7451C19.1799 21.8109 19.1017 21.8629 19.0156 21.8981L19.0534 21.9907C19.1518 21.9505 19.2412 21.891 19.3164 21.8158L19.2457 21.7451ZM19.3986 21.5149C19.3634 21.6011 19.3114 21.6794 19.2457 21.7451L19.3164 21.8158C19.3916 21.7406 19.451 21.6512 19.4912 21.5527L19.3986 21.5149ZM19.4504 21.2434C19.4513 21.3365 19.4337 21.4288 19.3986 21.5149L19.4912 21.5527C19.5313 21.4543 19.5515 21.3488 19.5504 21.2424L19.4504 21.2434ZM19.3931 20.9731C19.43 21.0585 19.4495 21.1504 19.4504 21.2434L19.5504 21.2424C19.5493 21.1361 19.527 21.031 19.4849 20.9334L19.3931 20.9731ZM19.2355 20.746C19.3026 20.8105 19.3562 20.8876 19.3931 20.9731L19.4849 20.9334C19.4427 20.8358 19.3815 20.7476 19.3048 20.6739L19.2355 20.746ZM18.1552 19.6652L19.2348 20.7453L19.3055 20.6746L18.226 19.5945L18.1552 19.6652ZM21.4368 12.4971C21.4368 15.3376 20.1496 17.8591 18.1578 19.5921L18.2234 19.6675C20.2353 17.9171 21.5368 15.3688 21.5368 12.4971H21.4368ZM12 3.05512C17.2029 3.05512 21.4368 7.2913 21.4368 12.4971H21.5368C21.5368 7.23613 17.2582 2.95512 12 2.95512V3.05512ZM20.0389 12.4971C20.0389 8.0461 16.4487 4.45386 12 4.45386V4.55386C16.3934 4.55386 19.9389 8.10128 19.9389 12.4971H20.0389ZM12 20.5404C16.4487 20.5404 20.0389 16.9482 20.0389 12.4971H19.9389C19.9389 16.893 16.3934 20.4404 12 20.4404V20.5404ZM3.96111 12.4971C3.96111 16.9482 7.55134 20.5404 12 20.5404V20.4404C7.60662 20.4404 4.06111 16.893 4.06111 12.4971H3.96111ZM12 4.45386C7.55134 4.45386 3.96111 8.0461 3.96111 12.4971H4.06111C4.06111 8.10128 7.60662 4.55386 12 4.55386V4.45386ZM10.7492 7.70031L10.75 13.3439L10.85 13.3438L10.8492 7.70029L10.7492 7.70031ZM11.4991 6.9502C11.0849 6.95026 10.7492 7.28609 10.7492 7.70031L10.8492 7.70029C10.8492 7.34131 11.1401 7.05025 11.4991 7.0502L11.4991 6.9502ZM12.2492 7.70009C12.2492 7.28587 11.9133 6.95013 11.4991 6.9502L11.4991 7.0502C11.8581 7.05014 12.1492 7.34111 12.1492 7.7001L12.2492 7.70009ZM12.2499 12.6035L12.2492 7.70009L12.1492 7.7001L12.1499 12.6035L12.2499 12.6035ZM12.2121 12.652L17.3424 11.3694L17.3181 11.2724L12.1878 12.555L12.2121 12.652ZM17.3424 11.3694C17.6906 11.2823 18.0435 11.4941 18.1306 11.8424L18.2276 11.8181C18.1271 11.4163 17.7199 11.1719 17.3181 11.2724L17.3424 11.3694ZM18.1306 11.8424C18.2177 12.1906 18.0059 12.5435 17.6576 12.6306L17.6819 12.7276C18.0837 12.6271 18.3281 12.2199 18.2276 11.8181L18.1306 11.8424ZM17.6576 12.6306L11.6576 14.1306L11.6819 14.2276L17.6819 12.7276L17.6576 12.6306ZM11.6576 14.1306C11.3094 14.2177 10.9565 14.0059 10.8694 13.6576L10.7724 13.6819C10.8729 14.0837 11.2801 14.3281 11.6819 14.2276L11.6576 14.1306ZM10.8694 13.6576C10.8499 13.5798 10.8454 13.5019 10.854 13.4267L10.7546 13.4154C10.7447 13.5023 10.75 13.5923 10.7724 13.6819L10.8694 13.6576ZM10.75 13.3439C10.7501 13.3718 10.7516 13.3994 10.7546 13.4265L10.854 13.4156C10.8514 13.3921 10.8501 13.3681 10.85 13.3438L10.75 13.3439Z\"\r\n fill={fill}\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Trainings = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>Trainings</title>\r\n <path\r\n d=\"M6.75 3.75C5.51634 3.75 4.5 4.76634 4.5 6V6.89062C4.26408 6.80564 4.01367 6.75 3.75 6.75C2.51634 6.75 1.5 7.76634 1.5 9V11.25H0V12.75H1.5V15C1.5 16.2329 2.51544 17.25 3.75 17.25C4.01342 17.25 4.26327 17.1968 4.5 17.1123V18C4.5 19.2329 5.51544 20.25 6.75 20.25C7.3669 20.25 7.93454 19.9971 8.34082 19.5908C8.7471 19.1845 9 18.6169 9 18V12.75H15V18C15 18.6169 15.2529 19.1845 15.6592 19.5908C16.0655 19.9971 16.6331 20.25 17.25 20.25C18.4846 20.25 19.5 19.2329 19.5 18V17.1123C19.7367 17.1968 19.9866 17.25 20.25 17.25C21.4846 17.25 22.5 16.2329 22.5 15V12.75H24V11.25H22.5V9C22.5 7.76634 21.4837 6.75 20.25 6.75C19.9863 6.75 19.7359 6.80564 19.5 6.89062V6C19.5 4.76634 18.4837 3.75 17.25 3.75C16.0154 3.75 15 4.76711 15 6V11.25H9V6C9 4.76711 7.98456 3.75 6.75 3.75ZM6.75 5.25C7.17444 5.25 7.5 5.57689 7.5 6V18C7.5 18.2111 7.41699 18.3936 7.28027 18.5303C7.14355 18.667 6.9611 18.75 6.75 18.75C6.32556 18.75 6 18.4231 6 18V6C6 5.57466 6.32466 5.25 6.75 5.25ZM17.25 5.25C17.6753 5.25 18 5.57466 18 6V9V11.4785V15V18C18 18.4231 17.6744 18.75 17.25 18.75C17.0389 18.75 16.8564 18.667 16.7197 18.5303C16.583 18.3936 16.5 18.2111 16.5 18V6C16.5 5.57689 16.8256 5.25 17.25 5.25ZM3.75 8.25C4.17444 8.25 4.5 8.57689 4.5 9V11.4785V15C4.5 15.2111 4.41699 15.3936 4.28027 15.5303C4.14355 15.667 3.9611 15.75 3.75 15.75C3.32556 15.75 3 15.4231 3 15V9C3 8.57466 3.32466 8.25 3.75 8.25ZM20.25 8.25C20.6753 8.25 21 8.57466 21 9V15C21 15.4231 20.6744 15.75 20.25 15.75C20.0389 15.75 19.8564 15.667 19.7197 15.5303C19.583 15.3936 19.5 15.2111 19.5 15V9C19.5 8.57689 19.8256 8.25 20.25 8.25Z\"\r\n fill={fill}\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Measurements = ({\r\n fill = '#000',\r\n size = 24,\r\n ...props\r\n}: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>Measurements</title>\r\n <path\r\n d=\"M8.8254 2C5 2 2 3.60317 2 5.65079V13.5873C2 15.2222 3.95238 16.6349 6.84127 17.0794H6.92064C7.15873 17.0794 7.34921 16.9048 7.39683 16.6825C7.44444 16.4286 7.25397 16.1745 7 16.1428C4.65079 15.7777 2.95238 14.6984 2.95238 13.5873V7.53974C4.12698 8.60324 6.30159 9.30159 8.8254 9.30159H19.1429C20.1905 9.30159 21.0476 10.1587 21.0476 11.2063C21.0476 12.254 20.1905 13.1111 19.1429 13.1111H10.4127C9.26984 13.1111 8.34921 14.0317 8.34921 15.1746V19.9365C8.34921 21.0794 9.26984 22 10.4127 22H19.1429C20.7143 22 22 20.7143 22 19.1429V11.2063C22 9.63492 20.7143 8.34921 19.1429 8.34921H8.8254C5.31746 8.34921 2.95238 6.95238 2.95238 5.65079C2.95238 4.34921 5.31746 2.95238 8.8254 2.95238C12.3333 2.95238 14.6984 4.34921 14.6984 5.65079V6.92064C14.6984 7.19048 14.9048 7.39683 15.1746 7.39683C15.4444 7.39683 15.6508 7.19048 15.6508 6.92064V5.65079C15.6508 3.60317 12.6508 2 8.8254 2ZM8.8254 4.85714C8.40442 4.85714 8.00068 4.94076 7.70301 5.0896C7.40533 5.23844 7.2381 5.4403 7.2381 5.65079C7.2381 5.86128 7.40533 6.06315 7.70301 6.21199C8.00068 6.36083 8.40442 6.44444 8.8254 6.44444C9.24638 6.44444 9.65011 6.36083 9.94779 6.21199C10.2455 6.06315 10.4127 5.86128 10.4127 5.65079C10.4127 5.4403 10.2455 5.23844 9.94779 5.0896C9.65011 4.94076 9.24638 4.85714 8.8254 4.85714ZM21.0476 13.3334V19.1429C21.0476 20.1905 20.1905 21.0476 19.1429 21.0476H10.4127C9.79365 21.0476 9.30159 20.5556 9.30159 19.9365V15.1746C9.30159 14.5556 9.79365 14.0635 10.4127 14.0635H13.1111V15.9683C13.1111 16.2381 13.3175 16.4444 13.5873 16.4444C13.8571 16.4444 14.0635 16.2381 14.0635 15.9683V14.0635H17.873V15.9683C17.873 16.2381 18.0794 16.4444 18.3492 16.4444C18.619 16.4444 18.8254 16.2381 18.8254 15.9683V14.0635H19.1429C19.873 14.0635 20.5397 13.7937 21.0476 13.3334Z\"\r\n fill={fill}\r\n stroke={fill}\r\n strokeWidth=\"0.4\"\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Settings = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>Settings</title>\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M11.9673 14.5016C13.349 14.5016 14.4837 13.3816 14.5017 12.0001C14.5198 10.6186 13.4145 9.49868 12.0328 9.49868C10.6512 9.49868 9.5165 10.6186 9.49841 12.0001C9.48033 13.3816 10.5857 14.5016 11.9673 14.5016ZM16.0028 12.0001C15.9738 14.2106 14.1583 16.0025 11.9477 16.0025C9.73707 16.0025 7.96848 14.2106 7.99741 12.0001C8.02635 9.78971 9.84186 7.9978 12.0525 7.9978C14.2631 7.9978 16.0317 9.78971 16.0028 12.0001Z\"\r\n fill={fill}\r\n />\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M11.0239 2.83721L10.6209 4.00046C10.281 4.98131 9.55444 5.67613 8.79735 6.0946C8.73279 6.13028 8.66885 6.16698 8.60556 6.20468C7.86065 6.64834 6.89517 6.92307 5.88366 6.71555L4.68439 6.4695C4.47399 6.42633 4.25779 6.52299 4.14768 6.70947L3.51224 7.78559C3.40213 7.97206 3.42281 8.20651 3.56357 8.36762L4.36704 9.2872C5.0414 10.059 5.27384 11.0262 5.2489 11.8881C5.24674 11.9626 5.24576 12.0373 5.24597 12.1118C5.24834 12.9737 4.99057 13.9409 4.29602 14.7127L3.46847 15.6323C3.32349 15.7934 3.29668 16.0278 3.40191 16.2143L4.00917 17.2904C4.1144 17.4769 4.32806 17.5736 4.5396 17.5304L5.74522 17.2844C6.76218 17.0768 7.72048 17.3516 8.45378 17.7952C8.5161 17.8329 8.5791 17.8697 8.64274 17.9053C9.38887 18.3238 10.0973 19.0186 10.4114 19.9995L10.784 21.1627C10.8494 21.367 11.0388 21.5048 11.2541 21.5048H12.4968C12.7122 21.5048 12.9052 21.367 12.9759 21.1627L13.3789 19.9995C13.7188 19.0186 14.4454 18.3238 15.2025 17.9053C15.267 17.8697 15.331 17.8329 15.3943 17.7952C16.1392 17.3516 17.1047 17.0768 18.1162 17.2844L19.3154 17.5304C19.5258 17.5736 19.742 17.4769 19.8521 17.2904L20.4875 16.2143C20.5976 16.0278 20.5769 15.7934 20.4362 15.6323L19.6328 14.7127C18.9584 13.9409 18.726 12.9737 18.7509 12.1118C18.7531 12.0373 18.754 11.9626 18.7538 11.8881C18.7515 11.0262 19.0092 10.059 19.7038 9.28714L20.5313 8.36762C20.6763 8.20651 20.7031 7.97206 20.5979 7.78559L19.9906 6.70947C19.8854 6.52299 19.6717 6.42633 19.4602 6.4695L18.2545 6.71554C17.2375 6.92307 16.2793 6.64834 15.546 6.20468C15.4837 6.16698 15.4207 6.13028 15.3571 6.0946C14.6109 5.67613 13.9025 4.98131 13.5884 4.00046L13.2158 2.83721C13.1504 2.63293 12.961 2.49515 12.7457 2.49515L11.503 2.49515C11.2876 2.49515 11.0946 2.63293 11.0239 2.83721ZM9.20321 3.52588C9.01369 4.07288 8.59184 4.50289 8.08436 4.7834C8.00543 4.82702 7.92726 4.87189 7.84989 4.91797C7.35101 5.2151 6.7679 5.36099 6.20381 5.24525L5.00454 4.9992C4.16291 4.82653 3.29814 5.21318 2.85769 5.95909L2.22226 7.0352C1.78181 7.78111 1.86451 8.7189 2.42756 9.36333L3.23104 10.2829C3.60754 10.7138 3.76517 11.2885 3.74851 11.8643C3.74589 11.9547 3.74471 12.0452 3.74495 12.1356C3.74654 12.7114 3.57386 13.2861 3.18608 13.717L2.35854 14.6366C1.7786 15.281 1.67135 16.2188 2.09227 16.9647L2.69954 18.0408C3.12046 18.7867 3.9751 19.1733 4.82125 19.0007L6.02688 18.7546C6.59401 18.6389 7.17331 18.7848 7.66441 19.0819C7.7406 19.128 7.81761 19.1729 7.89542 19.2166C8.39556 19.4971 8.80615 19.9271 8.98134 20.4741L9.3539 21.6373C9.61559 22.4544 10.3731 23.0056 11.2345 23.0056H12.4772C13.3386 23.0056 14.1105 22.4544 14.3936 21.6373L14.7966 20.4741C14.9861 19.9271 15.408 19.4971 15.9154 19.2166C15.9944 19.1729 16.0726 19.128 16.15 19.0819C16.6488 18.7848 17.232 18.6389 17.7961 18.7546L18.9952 19.0007C19.8368 19.1733 20.7016 18.7867 21.1421 18.0408L21.7775 16.9647C22.2179 16.2188 22.1352 15.281 21.5722 14.6366L20.7688 13.717C20.3923 13.2861 20.2346 12.7115 20.2513 12.1356C20.2539 12.0452 20.2551 11.9547 20.2549 11.8643C20.2533 11.2884 20.4259 10.7138 20.8137 10.2829L21.6412 9.36333C22.2212 8.7189 22.3284 7.78111 21.9075 7.03521L21.3002 5.95909C20.8793 5.21318 20.0247 4.82653 19.1785 4.9992L17.9728 5.24525C17.4057 5.36098 16.8264 5.21509 16.3353 4.91797C16.2592 4.87189 16.1822 4.82702 16.1044 4.7834C15.6042 4.50289 15.1937 4.07288 15.0185 3.52588L14.6459 2.36262C14.3842 1.54552 13.6267 0.994385 12.7653 0.994385H11.5226C10.6613 0.994385 9.8893 1.54552 9.60622 2.36262L9.20321 3.52588Z\"\r\n fill={fill}\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Plus = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 10 10\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>Plus</title>\r\n <path\r\n d=\"M1 5H9\"\r\n stroke={fill}\r\n strokeWidth=\"1.4\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n <path\r\n d=\"M5 9V1\"\r\n stroke={fill}\r\n strokeWidth=\"1.4\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Minus = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n fill=\"none\"\r\n viewBox=\"0 0 10 2\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>Minus</title>\r\n <path\r\n d=\"M1 1H9\"\r\n stroke={fill}\r\n strokeWidth=\"1.4\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const More = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>More</title>\r\n <path\r\n d=\"M5.4001 10.2C4.4101 10.2 3.6001 11.01 3.6001 12C3.6001 12.99 4.4101 13.8 5.4001 13.8C6.3901 13.8 7.2001 12.99 7.2001 12C7.2001 11.01 6.3901 10.2 5.4001 10.2Z\"\r\n fill={fill}\r\n />\r\n <path\r\n d=\"M12.0002 10.2C11.0102 10.2 10.2002 11.01 10.2002 12C10.2002 12.99 11.0102 13.8 12.0002 13.8C12.9902 13.8 13.8002 12.99 13.8002 12C13.8002 11.01 12.9902 10.2 12.0002 10.2Z\"\r\n fill={fill}\r\n />\r\n <path\r\n d=\"M18.6003 10.2C17.6103 10.2 16.8003 11.01 16.8003 12C16.8003 12.99 17.6103 13.8 18.6003 13.8C19.5903 13.8 20.4003 12.99 20.4003 12C20.4003 11.01 19.5903 10.2 18.6003 10.2Z\"\r\n fill={fill}\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const MoreVertical = ({\r\n fill = '#000',\r\n size = 24,\r\n ...props\r\n}: SVGProps) => (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width={`${size / 4}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 4 16\"\r\n fill=\"none\"\r\n {...props}>\r\n <title>More vertical</title>\r\n <circle cx=\"1.66016\" cy=\"2\" r=\"1.5\" fill={fill} />\r\n <circle cx=\"1.66016\" cy=\"8\" r=\"1.5\" fill={fill} />\r\n <circle cx=\"1.66016\" cy=\"14\" r=\"1.5\" fill={fill} />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Check = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n fill=\"none\"\r\n viewBox=\"0 0 11 8\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>Check</title>\r\n <path\r\n d=\"M1 3.83L3.83 6.66L9.5 1\"\r\n stroke={fill}\r\n strokeWidth=\"1.4\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const CheckCircle = ({\r\n fill = '#000',\r\n size = 24,\r\n ...props\r\n}: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 20 20\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n {...props}>\r\n <title>Check circle</title>\r\n <path\r\n d=\"M10.0003 18.3334C14.5837 18.3334 18.3337 14.5834 18.3337 10.0001C18.3337 5.41675 14.5837 1.66675 10.0003 1.66675C5.41699 1.66675 1.66699 5.41675 1.66699 10.0001C1.66699 14.5834 5.41699 18.3334 10.0003 18.3334Z\"\r\n stroke={fill}\r\n strokeWidth=\"1.4\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n <path\r\n d=\"M6.45801 9.99993L8.81634 12.3583L13.5413 7.6416\"\r\n stroke={fill}\r\n strokeWidth=\"1.4\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Cross = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n fill=\"none\"\r\n viewBox=\"0 0 8 8\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>Cross</title>\r\n <path\r\n d=\"M1 6.66L6.66 1\"\r\n stroke={fill}\r\n strokeWidth=\"1.4\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n <path\r\n d=\"M6.66 6.66L1 1\"\r\n stroke={fill}\r\n strokeWidth=\"1.4\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const User = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>User</title>\r\n <path\r\n d=\"M12.1202 12.78C12.0502 12.77 11.9602 12.77 11.8802 12.78C10.1202 12.72 8.72021 11.28 8.72021 9.50998C8.72021 7.69998 10.1802 6.22998 12.0002 6.22998C13.8102 6.22998 15.2802 7.69998 15.2802 9.50998C15.2702 11.28 13.8802 12.72 12.1202 12.78Z\"\r\n stroke={fill}\r\n strokeWidth=\"1.4\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n <path\r\n d=\"M18.7398 19.3801C16.9598 21.0101 14.5998 22.0001 11.9998 22.0001C9.39977 22.0001 7.03977 21.0101 5.25977 19.3801C5.35977 18.4401 5.95977 17.5201 7.02977 16.8001C9.76977 14.9801 14.2498 14.9801 16.9698 16.8001C18.0398 17.5201 18.6398 18.4401 18.7398 19.3801Z\"\r\n stroke={fill}\r\n strokeWidth=\"1.4\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n <path\r\n d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\"\r\n stroke={fill}\r\n strokeWidth=\"1.4\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Union = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n fill=\"none\"\r\n viewBox=\"0 0 3 10\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>Union</title>\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M1.50879 2C0.956504 2 0.508789 1.55228 0.508789 1C0.508789 0.447715 0.956504 0 1.50879 0H1.51777C2.07006 0 2.51777 0.447715 2.51777 1C2.51777 1.55228 2.07006 2 1.51777 2H1.50879ZM2.21416 9C2.21416 9.3866 1.90076 9.7 1.51416 9.7C1.12756 9.7 0.81416 9.3866 0.81416 9V4C0.81416 3.6134 1.12756 3.3 1.51416 3.3C1.90076 3.3 2.21416 3.6134 2.21416 4V9Z\"\r\n fill={fill}\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Notification = ({\r\n fill = '#000',\r\n size = 24,\r\n ...props\r\n}: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 20 22\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>Notification</title>\r\n <path\r\n d=\"M0.776752 7.36345C0.819992 7.37426 0.865032 7.37966 0.908271 7.37966C1.14969 7.37966 1.37129 7.21572 1.43255 6.97069C1.9334 4.96728 3.12608 3.19267 4.78899 1.97837C5.0304 1.80181 5.08265 1.46491 4.90609 1.22349C4.72953 0.98207 4.39263 0.929823 4.15121 1.10638C2.28472 2.47022 0.946106 4.45922 0.383997 6.70946C0.31013 6.99772 0.48669 7.29138 0.776752 7.36345ZM15.2114 1.97837C16.8743 3.19267 18.0652 4.96548 18.5679 6.97069C18.6291 7.21572 18.8489 7.37966 19.0921 7.37966C19.1354 7.37966 19.1804 7.37426 19.2237 7.36345C19.5137 7.29138 19.6885 6.99772 19.6164 6.70765C19.0543 4.45922 17.7157 2.46842 15.8492 1.10458C15.6078 0.928021 15.2709 0.980269 15.0943 1.22169C14.9178 1.46491 14.97 1.80181 15.2114 1.97837ZM1.92799 15.3879C1.75144 16.0924 1.90638 16.8256 2.35498 17.3967C2.80179 17.9697 3.4756 18.2976 4.20165 18.2976H6.80681C7.06445 19.8289 8.39765 21 10.0011 21C11.6046 21 12.936 19.8289 13.1954 18.2976H15.8006C16.5266 18.2976 17.2004 17.9697 17.6472 17.3967C18.094 16.8238 18.249 16.0924 18.0742 15.3879L16.1194 7.58325C15.4168 4.7691 12.8999 2.80352 9.9993 2.80352C7.09868 2.80352 4.5818 4.7691 3.87916 7.58325L1.92799 15.3879ZM9.9993 19.919C8.99399 19.919 8.14903 19.229 7.90761 18.2976H12.0892C11.8496 19.229 11.0046 19.919 9.9993 19.919ZM9.9993 3.8845C12.4027 3.8845 14.489 5.51317 15.0709 7.84448L17.0221 15.6492C17.1176 16.0293 17.0329 16.4221 16.7933 16.7319C16.5518 17.04 16.1897 17.2166 15.7988 17.2166H4.19985C3.8089 17.2166 3.44677 17.04 3.20535 16.7319C2.96393 16.4239 2.88106 16.0293 2.97654 15.6492L4.92771 7.84448C5.50964 5.51317 7.59593 3.8845 9.9993 3.8845Z\"\r\n fill={fill}\r\n stroke={fill}\r\n strokeWidth=\"0.3\"\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Information = ({\r\n fill = '#000',\r\n size = 24,\r\n ...props\r\n}: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n fill=\"none\"\r\n viewBox=\"0 0 20 20\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>Information</title>\r\n <path\r\n d=\"M9.99998 17.8889C14.3651 17.8889 17.9365 14.3175 17.9365 9.95238C17.9365 5.5873 14.3651 2.01587 9.99998 2.01587C5.6349 2.01587 2.06348 5.5873 2.06348 9.95238C2.06348 14.3175 5.6349 17.8889 9.99998 17.8889Z\"\r\n stroke={fill}\r\n strokeWidth=\"1.4\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n <path\r\n d=\"M9.99573 7.77759C9.44344 7.77759 8.99573 7.32987 8.99573 6.77759C8.99573 6.2253 9.44344 5.77759 9.99573 5.77759H10.0029C10.5551 5.77759 11.0029 6.2253 11.0029 6.77759C11.0029 7.32987 10.5551 7.77759 10.0029 7.77759H9.99573ZM10.7 13.1268C10.7 13.5134 10.3866 13.8268 9.99999 13.8268C9.61339 13.8268 9.29999 13.5134 9.29999 13.1268V9.15854C9.29999 8.77194 9.61339 8.45854 9.99999 8.45854C10.3866 8.45854 10.7 8.77194 10.7 9.15854V13.1268Z\"\r\n fill={fill}\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Warning = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n fill=\"none\"\r\n viewBox=\"0 0 20 20\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>Warning</title>\r\n <path\r\n d=\"M9.65357 1.32393C9.80753 1.05726 10.1924 1.05726 10.3464 1.32393L18.5118 15.4668C18.6657 15.7334 18.4733 16.0668 18.1654 16.0668H1.8346C1.52668 16.0668 1.33423 15.7334 1.48819 15.4668L9.65357 1.32393Z\"\r\n stroke={fill}\r\n strokeWidth=\"1.2\"\r\n />\r\n <path\r\n d=\"M10.7003 6.19072C10.7003 5.80412 10.3869 5.49072 10.0003 5.49072C9.61368 5.49072 9.30028 5.80412 9.30028 6.19072V10.159C9.30028 10.5456 9.61368 10.859 10.0003 10.859C10.3869 10.859 10.7003 10.5456 10.7003 10.159V6.19072ZM9.99609 12.1749C9.44381 12.1749 8.99609 12.6226 8.99609 13.1749C8.99609 13.7272 9.44381 14.1749 9.99609 14.1749H10.0032C10.5555 14.1749 11.0032 13.7272 11.0032 13.1749C11.0032 12.6226 10.5555 12.1749 10.0032 12.1749H9.99609Z\"\r\n fill={fill}\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Attention = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n fill=\"none\"\r\n viewBox=\"0 0 20 20\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>Attention</title>\r\n <path\r\n d=\"M10 1.90479L2.85718 6.1905V13.8095L10 18.5715L17.1429 13.8095V6.1905L10 1.90479Z\"\r\n stroke={fill}\r\n strokeWidth=\"1.2\"\r\n />\r\n <path\r\n d=\"M10.7004 6.19048C10.7004 5.80388 10.387 5.49048 10.0004 5.49048C9.6138 5.49048 9.3004 5.80388 9.3004 6.19048V10.1587C9.3004 10.5453 9.6138 10.8587 10.0004 10.8587C10.387 10.8587 10.7004 10.5453 10.7004 10.1587V6.19048ZM9.99622 12.1746C9.44393 12.1746 8.99622 12.6224 8.99622 13.1746C8.99622 13.7269 9.44393 14.1746 9.99622 14.1746H10.0033C10.5556 14.1746 11.0033 13.7269 11.0033 13.1746C11.0033 12.6224 10.5556 12.1746 10.0033 12.1746H9.99622Z\"\r\n fill={fill}\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Visible = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>Visible</title>\r\n <path\r\n d=\"M15.5799 11.9999C15.5799 13.9799 13.9799 15.5799 11.9999 15.5799C10.0199 15.5799 8.41992 13.9799 8.41992 11.9999C8.41992 10.0199 10.0199 8.41992 11.9999 8.41992C13.9799 8.41992 15.5799 10.0199 15.5799 11.9999Z\"\r\n stroke={fill}\r\n strokeWidth=\"1.4\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n <path\r\n d=\"M11.9998 20.27C15.5298 20.27 18.8198 18.19 21.1098 14.59C22.0098 13.18 22.0098 10.81 21.1098 9.39997C18.8198 5.79997 15.5298 3.71997 11.9998 3.71997C8.46984 3.71997 5.17984 5.79997 2.88984 9.39997C1.98984 10.81 1.98984 13.18 2.88984 14.59C5.17984 18.19 8.46984 20.27 11.9998 20.27Z\"\r\n stroke={fill}\r\n strokeWidth=\"1.4\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Invisible = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>Invisible</title>\r\n <path\r\n d=\"M14.5299 9.46992L9.46992 14.5299C8.81992 13.8799 8.41992 12.9899 8.41992 11.9999C8.41992 10.0199 10.0199 8.41992 11.9999 8.41992C12.9899 8.41992 13.8799 8.81992 14.5299 9.46992Z\"\r\n stroke={fill}\r\n strokeWidth=\"1.4\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n <path\r\n d=\"M17.8198 5.76998C16.0698 4.44998 14.0698 3.72998 11.9998 3.72998C8.46984 3.72998 5.17984 5.80998 2.88984 9.40998C1.98984 10.82 1.98984 13.19 2.88984 14.6C3.67984 15.84 4.59984 16.91 5.59984 17.77\"\r\n stroke={fill}\r\n strokeWidth=\"1.4\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n <path\r\n d=\"M8.41992 19.5299C9.55992 20.0099 10.7699 20.2699 11.9999 20.2699C15.5299 20.2699 18.8199 18.1899 21.1099 14.5899C22.0099 13.1799 22.0099 10.8099 21.1099 9.39993C20.7799 8.87993 20.4199 8.38993 20.0499 7.92993\"\r\n stroke={fill}\r\n strokeWidth=\"1.4\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n <path\r\n d=\"M15.5099 12.7C15.2499 14.11 14.0999 15.26 12.6899 15.52\"\r\n stroke={fill}\r\n strokeWidth=\"1.4\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n <path\r\n d=\"M9.47 14.53L2 22\"\r\n stroke={fill}\r\n strokeWidth=\"1.4\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n <path\r\n d=\"M21.9998 2L14.5298 9.47\"\r\n stroke={fill}\r\n strokeWidth=\"1.4\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const LogOut = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n fill=\"none\"\r\n viewBox=\"0 0 16 15\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>Log out</title>\r\n <path\r\n d=\"M7.9751 13.7292H2.36876C2.0249 13.7292 1.74585 13.4502 1.74585 13.1063V1.89369C1.74585 1.54983 2.02493 1.27078 2.36876 1.27078H7.9751C8.31957 1.27078 8.59801 0.992344 8.59801 0.647871C8.59801 0.303398 8.31957 0.0249023 7.9751 0.0249023H2.36876C1.33845 0.0249023 0.5 0.863379 0.5 1.89369V13.1063C0.5 14.1366 1.33845 14.9751 2.36876 14.9751H7.9751C8.31957 14.9751 8.59801 14.6966 8.59801 14.3522C8.59801 14.0077 8.31957 13.7292 7.9751 13.7292Z\"\r\n fill={fill}\r\n />\r\n <path\r\n d=\"M15.3144 7.05653L11.527 3.31898C11.2828 3.07729 10.8879 3.08042 10.6462 3.32522C10.4045 3.57003 10.407 3.96434 10.6524 4.20604L13.359 6.87712H6.10631C5.76184 6.87712 5.4834 7.15556 5.4834 7.50003C5.4834 7.8445 5.76184 8.12297 6.10631 8.12297H13.359L10.6524 10.7941C10.407 11.0358 10.4051 11.4301 10.6462 11.6749C10.7683 11.7982 10.929 11.8605 11.0897 11.8605C11.2479 11.8605 11.4061 11.8007 11.527 11.6811L15.3144 7.94353C15.4327 7.82643 15.5 7.66693 15.5 7.5C15.5 7.33313 15.4333 7.17428 15.3144 7.05653Z\"\r\n fill={fill}\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const LogIn = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n fill=\"none\"\r\n viewBox=\"0 0 15 20\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>Log in</title>\r\n <path\r\n d=\"M7.39504 9.17067C8.58623 9.17067 9.61771 8.74344 10.4605 7.90051C11.3033 7.05773 11.7305 6.02652 11.7305 4.8352C11.7305 3.64428 11.3033 2.61294 10.4604 1.76988C9.61743 0.92723 8.58609 0.5 7.39504 0.5C6.20371 0.5 5.17251 0.92723 4.32972 1.77002C3.48694 2.6128 3.05957 3.64414 3.05957 4.8352C3.05957 6.02652 3.48694 7.05786 4.32986 7.90065C5.17279 8.7433 6.20413 9.17067 7.39504 9.17067Z\"\r\n fill={fill}\r\n />\r\n <path\r\n d=\"M14.9811 14.341C14.9568 13.9902 14.9076 13.6076 14.8352 13.2036C14.7622 12.7966 14.6681 12.4118 14.5555 12.0601C14.4392 11.6966 14.281 11.3376 14.0854 10.9936C13.8824 10.6365 13.644 10.3256 13.3765 10.0698C13.0968 9.80212 12.7543 9.58693 12.3582 9.42996C11.9635 9.27382 11.5261 9.19472 11.0583 9.19472C10.8745 9.19472 10.6968 9.27011 10.3536 9.49354C10.1424 9.63129 9.89537 9.79059 9.61961 9.96678C9.38382 10.117 9.06439 10.2578 8.66985 10.3852C8.28491 10.5098 7.89407 10.5729 7.50832 10.5729C7.12256 10.5729 6.73186 10.5098 6.34652 10.3852C5.95238 10.2579 5.63296 10.1172 5.39744 9.96692C5.12429 9.79237 4.8771 9.63307 4.66273 9.49341C4.31995 9.26997 4.14211 9.19458 3.95837 9.19458C3.49035 9.19458 3.0531 9.27382 2.65855 9.4301C2.26277 9.58679 1.92013 9.80199 1.64012 10.0699C1.37274 10.3259 1.1342 10.6367 0.931502 10.9936C0.736083 11.3376 0.57788 11.6964 0.461425 12.0602C0.348953 12.4119 0.254882 12.7966 0.181823 13.2036C0.109451 13.6071 0.0602874 13.9898 0.0359802 14.3414C0.0120849 14.6858 0 15.0433 0 15.4043C0 16.3439 0.29869 17.1046 0.887694 17.6656C1.46942 18.2191 2.23915 18.5 3.17518 18.5H11.8423C12.7783 18.5 13.5478 18.2193 14.1296 17.6656C14.7188 17.105 15.0175 16.3442 15.0175 15.4042C15.0173 15.0415 15.0051 14.6838 14.9811 14.341Z\"\r\n fill={fill}\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Email = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n fill=\"none\"\r\n viewBox=\"0 0 18 14\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>Email</title>\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M0.718587 2.52762C0.823606 2.04828 1.08177 1.62029 1.4508 1.31376C1.81982 1.00722 2.27784 0.840299 2.74984 0.840332H15.2498C15.7218 0.840299 16.1799 1.00722 16.5489 1.31376C16.9179 1.62029 17.1761 2.04828 17.2811 2.52762L8.99984 7.79997L0.718587 2.52762ZM0.666504 3.76676V11.4751L6.7113 7.61442L0.666504 3.76676ZM7.70921 8.25136L0.865462 12.6209C1.03455 12.9923 1.30143 13.3061 1.63503 13.5256C1.96863 13.7452 2.35523 13.8616 2.74984 13.8612H15.2498C15.6444 13.8613 16.0308 13.7446 16.3642 13.5249C16.6977 13.3051 16.9643 12.9913 17.1332 12.6198L10.2894 8.25027L8.99984 9.07167L7.70921 8.25027V8.25136ZM11.2884 7.61551L17.3332 11.4751V3.76676L11.2884 7.61442V7.61551Z\"\r\n fill={fill}\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Lock = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n fill=\"none\"\r\n viewBox=\"0 0 16 21\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>Lock</title>\r\n <path\r\n d=\"M13.625 8.41602H13V5.91602C13 3.15852 10.7575 0.916016 8 0.916016C5.2425 0.916016 3 3.15852 3 5.91602V8.41602H2.375C1.34167 8.41602 0.5 9.25685 0.5 10.291V19.041C0.5 20.0752 1.34167 20.916 2.375 20.916H13.625C14.6583 20.916 15.5 20.0752 15.5 19.041V10.291C15.5 9.25685 14.6583 8.41602 13.625 8.41602ZM4.66667 5.91602C4.66667 4.07768 6.16167 2.58268 8 2.58268C9.83833 2.58268 11.3333 4.07768 11.3333 5.91602V8.41602H4.66667V5.91602ZM8.83333 14.851V16.7493C8.83333 17.2093 8.46083 17.5827 8 17.5827C7.53917 17.5827 7.16667 17.2093 7.16667 16.7493V14.851C6.67083 14.5618 6.33333 14.0302 6.33333 13.416C6.33333 12.4968 7.08083 11.7493 8 11.7493C8.91917 11.7493 9.66667 12.4968 9.66667 13.416C9.66667 14.0302 9.32917 14.5618 8.83333 14.851Z\"\r\n fill={fill}\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const CarrotDown = ({\r\n fill = '#000',\r\n size = 24,\r\n ...props\r\n}: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 18 10\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>Carrot down</title>\r\n <path\r\n d=\"M17 1L9 9L1 1\"\r\n stroke={fill}\r\n strokeWidth=\"1.8\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n fill=\"none\"\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const CarrotUp = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 18 10\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>Carrot up</title>\r\n <path\r\n d=\"M17 9.5L9 1.5L1 9.5\"\r\n stroke={fill}\r\n strokeWidth=\"1.8\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n fill=\"none\"\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const CarrotLeft = ({\r\n fill = '#000',\r\n size = 24,\r\n ...props\r\n}: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 11 18\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>Carrot left</title>\r\n <path\r\n d=\"M9.5 0.999999L1.5 9L9.5 17\"\r\n stroke={fill}\r\n strokeWidth=\"1.8\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n fill=\"none\"\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const CarrotRight = ({\r\n fill = '#000',\r\n size = 24,\r\n ...props\r\n}: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 11 18\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n {...props}>\r\n <title>Carrot right</title>\r\n <path\r\n d=\"M1.5 0.999999L9.5 9L1.5 17\"\r\n stroke={fill}\r\n strokeWidth=\"1.8\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n fill=\"none\"\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const RadioOn = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 20 21\"\r\n fill=\"#fff\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n {...props}>\r\n <title>Radio on</title>\r\n <rect x=\"0.7\" y=\"1.39995\" width=\"18.6\" height=\"18.6\" rx=\"9.3\" fill={fill} />\r\n <rect\r\n x=\"0.7\"\r\n y=\"1.39995\"\r\n width=\"18.6\"\r\n height=\"18.6\"\r\n rx=\"9.3\"\r\n stroke={fill}\r\n strokeWidth=\"1.4\"\r\n />\r\n <circle cx=\"10\" cy=\"10.7\" r=\"5\" fill={fill} />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Circle = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 20 21\"\r\n fill=\"#fff\"\r\n {...props}>\r\n <title>Circle</title>\r\n <rect x=\"0.7\" y=\"1.39995\" width=\"18.6\" height=\"18.6\" rx=\"9.3\" fill=\"none\" />\r\n <rect\r\n x=\"0.7\"\r\n y=\"1.39995\"\r\n width=\"18.6\"\r\n height=\"18.6\"\r\n rx=\"9.3\"\r\n stroke={fill}\r\n strokeWidth=\"1.4\"\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const ArrowUp = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 7 8\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n {...props}>\r\n <title>Arrow Up</title>\r\n <path\r\n d=\"M3.17757 0.92293L3.17757 7.07727\"\r\n stroke={fill}\r\n strokeWidth=\"0.8\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n <path\r\n d=\"M0.416507 3.40515L3.17751 0.922901L5.93896 3.40515\"\r\n stroke={fill}\r\n strokeWidth=\"0.8\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const ArrowDown = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 7 8\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n {...props}>\r\n <title>Arrow Down</title>\r\n <path\r\n d=\"M3.1779 7.07707L3.1779 0.922729\"\r\n stroke={fill}\r\n strokeWidth=\"0.8\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n <path\r\n d=\"M5.93896 4.59485L3.17796 7.0771L0.416504 4.59485\"\r\n stroke={fill}\r\n strokeWidth=\"0.8\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Filter = ({ fill = '#000', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 21 20\"\r\n fill=\"none\"\r\n {...props}>\r\n <title>Filter</title>\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M15.0189 10.0002C16.8598 10.0002 18.3522 8.50775 18.3522 6.66683C18.3522 4.82588 16.8598 3.3335 15.0189 3.3335C13.4657 3.3335 12.1606 4.3958 11.7905 5.8335H2.51888C2.05865 5.8335 1.68555 6.2066 1.68555 6.66683C1.68555 7.12707 2.05865 7.50016 2.51888 7.50016H11.7905C12.1606 8.93783 13.4657 10.0002 15.0189 10.0002ZM13.3522 6.66683C13.3522 7.5873 14.0984 8.3335 15.0189 8.3335C15.9394 8.3335 16.6855 7.5873 16.6855 6.66683C16.6855 5.74635 15.9394 5.00016 15.0189 5.00016C14.0984 5.00016 13.3522 5.74635 13.3522 6.66683ZM1.68555 13.3335C1.68555 11.4926 3.17793 10.0002 5.01888 10.0002C6.57208 10.0002 7.87716 11.0625 8.2472 12.5002H17.5189C17.9791 12.5002 18.3522 12.8732 18.3522 13.3335C18.3522 13.7937 17.9791 14.1668 17.5189 14.1668H8.2472C7.87716 15.6045 6.57208 16.6668 5.01888 16.6668C3.17793 16.6668 1.68555 15.1744 1.68555 13.3335ZM6.68555 13.3335C6.68555 12.413 5.93936 11.6668 5.01888 11.6668C4.09841 11.6668 3.35221 12.413 3.35221 13.3335C3.35221 14.254 4.09841 15.0002 5.01888 15.0002C5.93936 15.0002 6.68555 14.254 6.68555 13.3335Z\"\r\n fill={fill}\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Search = ({ fill = '#55575A', size = 24, ...props }: SVGProps) => (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 20 20\"\r\n fill=\"none\"\r\n {...props}>\r\n <title>Search</title>\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M12.8292 4.47028C15.1756 6.5284 15.5224 10.0541 13.6219 12.53L18 16.9081L16.9081 18L12.53 13.6219C10.0541 15.5224 6.5284 15.1756 4.47028 12.8292C2.41216 10.4828 2.52792 6.94189 4.73491 4.73491C6.94189 2.52792 10.4828 2.41216 12.8292 4.47028ZM4.5 9C4.5 11.4853 6.51472 13.5 9 13.5C11.4853 13.5 13.5 11.4853 13.5 9C13.5 6.51472 11.4853 4.5 9 4.5C6.51472 4.5 4.5 6.51472 4.5 9Z\"\r\n fill={fill}\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Archive = ({ fill = '#000', size = 15, ...props }: SVGProps) => (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 15 15\"\r\n fill=\"none\"\r\n {...props}>\r\n <title>Archive</title>\r\n <g clipPath=\"url(#clip0_532_12720)\">\r\n <path\r\n d=\"M12.5 14.2188H2.5C2.04426 14.2184 1.60728 14.0372 1.28503 13.715C0.96277 13.3927 0.781581 12.9557 0.78125 12.5V5C0.78125 4.87568 0.830636 4.75645 0.918544 4.66854C1.00645 4.58064 1.12568 4.53125 1.25 4.53125H13.75C13.8743 4.53125 13.9936 4.58064 14.0815 4.66854C14.1694 4.75645 14.2188 4.87568 14.2188 5V12.5C14.2184 12.9557 14.0372 13.3927 13.715 13.715C13.3927 14.0372 12.9557 14.2184 12.5 14.2188ZM1.71875 5.46875V12.5C1.71908 12.7071 1.8015 12.9056 1.94794 13.0521C2.09438 13.1985 2.2929 13.2809 2.5 13.2813H12.5C12.7071 13.2809 12.9056 13.1985 13.0521 13.0521C13.1985 12.9056 13.2809 12.7071 13.2813 12.5V5.46875H1.71875Z\"\r\n fill={fill}\r\n />\r\n <path\r\n d=\"M13.75 5.46876H1.24998C1.17011 5.46875 1.09156 5.44834 1.02179 5.40945C0.952017 5.37056 0.893342 5.31449 0.851329 5.24656C0.809316 5.17862 0.78536 5.10108 0.781733 5.02129C0.778107 4.94149 0.794931 4.8621 0.830609 4.79063L2.53311 1.38563C2.62339 1.20356 2.76288 1.05043 2.93577 0.943609C3.10865 0.836785 3.30801 0.780542 3.51123 0.781257H11.4887C11.692 0.780526 11.8915 0.836833 12.0644 0.943779C12.2373 1.05073 12.3767 1.20402 12.4669 1.38626L14.1694 4.79063C14.205 4.8621 14.2219 4.94149 14.2182 5.02129C14.2146 5.10108 14.1907 5.17862 14.1486 5.24656C14.1066 5.31449 14.048 5.37056 13.9782 5.40945C13.9084 5.44834 13.8299 5.46875 13.75 5.46876ZM2.00873 4.53126H12.9912L11.6281 1.80501C11.6153 1.779 11.5955 1.75711 11.5708 1.74186C11.5462 1.7266 11.5177 1.7186 11.4887 1.71876H3.51123C3.48234 1.71869 3.45401 1.72666 3.42939 1.74178C3.40477 1.7569 3.38485 1.77858 3.37186 1.80438L2.00873 4.53126Z\"\r\n fill={fill}\r\n />\r\n <path\r\n d=\"M7.5 11.7188C7.37568 11.7188 7.25645 11.6694 7.16854 11.5815C7.08064 11.4935 7.03125 11.3743 7.03125 11.25V7.5C7.03125 7.37568 7.08064 7.25645 7.16854 7.16854C7.25645 7.08064 7.37568 7.03125 7.5 7.03125C7.62432 7.03125 7.74355 7.08064 7.83146 7.16854C7.91936 7.25645 7.96875 7.37568 7.96875 7.5V11.25C7.96875 11.3743 7.91936 11.4935 7.83146 11.5815C7.74355 11.6694 7.62432 11.7188 7.5 11.7188Z\"\r\n fill={fill}\r\n />\r\n <path\r\n d=\"M7.50003 11.7188C7.43846 11.7189 7.37747 11.7069 7.32061 11.6832C7.26375 11.6596 7.21214 11.625 7.16878 11.5813L5.29378 9.70628C5.21098 9.61742 5.1659 9.49989 5.16804 9.37845C5.17018 9.25701 5.21938 9.14115 5.30526 9.05526C5.39115 8.96938 5.50701 8.92018 5.62845 8.91804C5.74989 8.9159 5.86742 8.96098 5.95628 9.04378L7.50003 10.5869L9.04378 9.04378C9.13264 8.96098 9.25016 8.9159 9.3716 8.91804C9.49304 8.92018 9.60891 8.96938 9.69479 9.05526C9.78067 9.14115 9.82987 9.25701 9.83201 9.37845C9.83415 9.49989 9.78908 9.61742 9.70628 9.70628L7.83128 11.5813C7.78791 11.625 7.7363 11.6596 7.67944 11.6832C7.62258 11.7069 7.56159 11.7189 7.50003 11.7188Z\"\r\n fill={fill}\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_532_12720\">\r\n <rect width={size} height={size} fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Bin = ({ fill = '#000', size = 15, ...props }: SVGProps) => (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 15 15\"\r\n fill=\"none\"\r\n {...props}>\r\n <title>Bin</title>\r\n <path\r\n d=\"M9.14062 11.1328C9.39947 11.1328 9.60938 10.9229 9.60938 10.6641V5.97656C9.60938 5.71772 9.39947 5.50781 9.14062 5.50781C8.88178 5.50781 8.67188 5.71772 8.67188 5.97656V10.6641C8.67188 10.9229 8.88178 11.1328 9.14062 11.1328Z\"\r\n fill={fill}\r\n />\r\n <path\r\n d=\"M5.85938 11.1328C6.11822 11.1328 6.32812 10.9229 6.32812 10.6641V5.97656C6.32812 5.71772 6.11822 5.50781 5.85938 5.50781C5.60053 5.50781 5.39062 5.71772 5.39062 5.97656V10.6641C5.39062 10.9229 5.60053 11.1328 5.85938 11.1328Z\"\r\n fill={fill}\r\n />\r\n <path\r\n d=\"M9.375 1.99219C9.63384 1.99219 9.84375 1.78228 9.84375 1.52344C9.84375 1.26459 9.63384 1.05469 9.375 1.05469H5.625C5.36616 1.05469 5.15625 1.26459 5.15625 1.52344C5.15625 1.78228 5.36616 1.99219 5.625 1.99219H9.375Z\"\r\n fill={fill}\r\n />\r\n <path\r\n d=\"M2.34375 2.46094C2.08491 2.46094 1.875 2.67084 1.875 2.92969C1.875 3.18853 2.08491 3.39844 2.34375 3.39844H2.8125V12.0234C2.8125 13.0828 3.675 13.9453 4.73438 13.9453H10.2656C11.325 13.9453 12.1875 13.0828 12.1875 12.0234V3.39844H12.6562C12.9151 3.39844 13.125 3.18853 13.125 2.92969C13.125 2.67084 12.9151 2.46094 12.6562 2.46094H11.7188H3.28125H2.34375ZM11.25 3.39844V12.0234C11.25 12.5672 10.8094 13.0078 10.2656 13.0078H4.73438C4.19063 13.0078 3.75 12.5672 3.75 12.0234V3.39844H11.25Z\"\r\n fill={fill}\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Change = ({ fill = '#000', size = 15, ...props }: SVGProps) => (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 15 15\"\r\n fill=\"none\"\r\n {...props}>\r\n <title>Change</title>\r\n <path\r\n d=\"M4.3628 1.24246C4.20043 1.2473 4.04632 1.31518 3.93312 1.43169L1.43311 3.93289C1.37491 3.99095 1.32874 4.05988 1.29723 4.13582C1.26573 4.21175 1.24951 4.29316 1.24951 4.37537C1.24951 4.45758 1.26573 4.53898 1.29723 4.61492C1.32874 4.69085 1.37491 4.75979 1.43311 4.81785L3.93312 7.31911C3.99087 7.37893 4.05998 7.42662 4.1364 7.4594C4.21283 7.49217 4.29502 7.50939 4.37817 7.51C4.46132 7.51062 4.54376 7.49464 4.62066 7.463C4.69755 7.43136 4.76736 7.38463 4.826 7.32567C4.88463 7.26671 4.93092 7.19671 4.96213 7.11964C4.99335 7.04257 5.00888 6.95999 5.0078 6.87685C5.00673 6.7937 4.98907 6.71159 4.95588 6.63535C4.92268 6.55911 4.8746 6.49028 4.81446 6.43285L3.38258 4.99857H13.1238C13.2897 4.99857 13.4488 4.93265 13.5662 4.81532C13.6835 4.698 13.7494 4.53884 13.7494 4.37292C13.7494 4.20699 13.6835 4.04791 13.5662 3.93058C13.4488 3.81325 13.2897 3.74733 13.1238 3.74733H3.38868L4.81446 2.31788C4.90548 2.23039 4.96787 2.11734 4.99342 1.9937C5.01897 1.87006 5.00647 1.74158 4.95759 1.62518C4.9087 1.50878 4.82571 1.4099 4.71954 1.34158C4.61337 1.27326 4.489 1.23873 4.3628 1.24246ZM10.6189 7.49364C10.4953 7.49464 10.3747 7.53226 10.2725 7.60177C10.1703 7.67128 10.091 7.76955 10.0446 7.88414C9.99819 7.99873 9.98683 8.12455 10.0119 8.2456C10.037 8.36665 10.0974 8.47752 10.1856 8.56423L11.6199 9.99973H1.87623C1.71284 10.0033 1.55734 10.0708 1.44306 10.1876C1.32877 10.3044 1.26477 10.4613 1.26477 10.6247C1.26477 10.7882 1.32877 10.9451 1.44306 11.062C1.55734 11.1788 1.71284 11.2462 1.87623 11.2498H11.6162L10.1856 12.6841C10.1201 12.7401 10.067 12.8091 10.0295 12.8866C9.99196 12.9641 9.97088 13.0486 9.96756 13.1347C9.96424 13.2208 9.97874 13.3066 10.0102 13.3868C10.0416 13.467 10.0893 13.5399 10.1502 13.6009C10.2111 13.6618 10.2839 13.7094 10.3641 13.7409C10.4444 13.7723 10.5302 13.7868 10.6163 13.7835C10.7024 13.7801 10.7868 13.759 10.8644 13.7215C10.9419 13.684 11.0109 13.6309 11.0669 13.5655L13.5669 11.0654C13.6833 10.9483 13.7487 10.7899 13.7487 10.6247C13.7487 10.4596 13.6833 10.3012 13.5669 10.1841L11.0669 7.68287C11.0087 7.623 10.939 7.57537 10.8621 7.54287C10.7851 7.51038 10.7024 7.49364 10.6189 7.49364Z\"\r\n fill={fill}\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Copy = ({ fill = '#000', size = 15, ...props }: SVGProps) => (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 15 15\"\r\n fill=\"none\"\r\n {...props}>\r\n <title>Copy</title>\r\n <g clipPath=\"url(#clip0_532_12716)\">\r\n <path\r\n d=\"M12.8755 14.5239H5.40479C4.49601 14.5239 3.75684 13.7848 3.75684 12.876V5.40527C3.75684 4.4965 4.49601 3.75732 5.40479 3.75732H12.8755C13.7843 3.75732 14.5234 4.4965 14.5234 5.40527V12.876C14.5234 13.7848 13.7843 14.5239 12.8755 14.5239ZM5.40479 4.85596C5.10189 4.85596 4.85547 5.10238 4.85547 5.40527V12.876C4.85547 13.1789 5.10189 13.4253 5.40479 13.4253H12.8755C13.1784 13.4253 13.4248 13.1789 13.4248 12.876V5.40527C13.4248 5.10238 13.1784 4.85596 12.8755 4.85596H5.40479ZM2.6582 10.1294H2.10889C1.80599 10.1294 1.55957 9.88297 1.55957 9.58008V2.10938C1.55957 1.80648 1.80599 1.56006 2.10889 1.56006H9.57959C9.88249 1.56006 10.1289 1.80648 10.1289 2.10938V2.63123H11.2275V2.10938C11.2275 1.2006 10.4884 0.461426 9.57959 0.461426H2.10889C1.20011 0.461426 0.460938 1.2006 0.460938 2.10938V9.58008C0.460938 10.4889 1.20011 11.228 2.10889 11.228H2.6582V10.1294Z\"\r\n fill={fill}\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_532_12716\">\r\n <rect width={size} height={size} fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Robot = ({ fill = '#000', size = 50, ...props }: SVGProps) => (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 54 50\"\r\n fill=\"none\"\r\n {...props}>\r\n <title>Robot</title>\r\n <path\r\n d=\"M32.7144 16.6105H32.7143H27.6714V15.0526C27.6714 14.8784 27.5998 14.7121 27.4736 14.59L27.4043 14.6617L27.4736 14.59C27.3474 14.468 27.177 14.4 27 14.4C26.823 14.4 26.6526 14.468 26.5264 14.59C26.4002 14.7121 26.3286 14.8784 26.3286 15.0526V16.6105L21.2857 16.6105L21.2856 16.6105C20.5026 16.6112 19.7513 16.9123 19.1967 17.4487C18.6419 17.9852 18.3293 18.7134 18.3286 19.4736V19.4737L18.3286 29.4211L18.3286 29.4212C18.3293 30.1814 18.6419 30.9096 19.1967 31.4461C19.7513 31.9825 20.5026 32.2836 21.2856 32.2843H21.2857H24.356L26.4422 35.3107L26.5246 35.254L26.4422 35.3107C26.5039 35.4001 26.5872 35.4731 26.6844 35.5234C26.7817 35.5738 26.8901 35.6 27 35.6C27.1099 35.6 27.2183 35.5738 27.3156 35.5234C27.4128 35.4731 27.4961 35.4001 27.5578 35.3107L27.4754 35.254L27.5578 35.3107L29.644 32.2843H32.7143H32.7144C33.4974 32.2836 34.2487 31.9825 34.8033 31.4461C35.3581 30.9096 35.6707 30.1814 35.6714 29.4212V29.4211V19.4737V19.4736C35.6707 18.7134 35.3581 17.9852 34.8033 17.4487C34.2487 16.9123 33.4974 16.6112 32.7144 16.6105ZM28.728 31.2683L27 33.775L25.272 31.2683L25.272 31.2682C25.2102 31.1789 25.127 31.106 25.0298 31.0557C24.9326 31.0054 24.8243 30.9791 24.7144 30.979H24.7143H21.2858C20.8567 30.9785 20.446 30.8135 20.1436 30.521C19.8413 30.2286 19.6719 29.833 19.6714 29.421V27.8632H34.3286V29.421C34.3281 29.833 34.1587 30.2286 33.8564 30.521C33.554 30.8135 33.1433 30.9785 32.7142 30.979H29.2857H29.2856C29.1757 30.9791 29.0674 31.0055 28.9702 31.0558C28.873 31.1061 28.7898 31.1789 28.728 31.2682L28.728 31.2683ZM34.3286 26.5579H19.6714V19.4738C19.6719 19.0618 19.8413 18.6662 20.1436 18.3738C20.446 18.0813 20.8567 17.9163 21.2858 17.9158H32.7142C33.1433 17.9163 33.554 18.0813 33.8564 18.3738C34.1587 18.6662 34.3281 19.0618 34.3286 19.4738V26.5579ZM24.604 23.4604C24.7409 23.2621 24.8143 23.0286 24.8143 22.7895C24.8143 22.4687 24.6825 22.1618 24.4491 21.9361C24.2158 21.7104 23.9 21.5842 23.5714 21.5842C23.3263 21.5842 23.0865 21.6545 22.8822 21.7865C22.6779 21.9185 22.5181 22.1066 22.4236 22.3272C22.3291 22.5478 22.3044 22.7908 22.3526 23.0253C22.4008 23.2597 22.5197 23.4746 22.6938 23.6429C22.8678 23.8112 23.0891 23.9255 23.3296 23.9717C23.57 24.018 23.8193 23.9943 24.046 23.9035C24.2727 23.8126 24.467 23.6586 24.604 23.4604ZM31.4611 23.4604C31.5981 23.2621 31.6714 23.0286 31.6714 22.7895C31.6714 22.4687 31.5396 22.1618 31.3062 21.9361C31.0729 21.7104 30.7571 21.5842 30.4286 21.5842C30.1835 21.5842 29.9436 21.6545 29.7394 21.7865C29.535 21.9185 29.3753 22.1066 29.2808 22.3272C29.1863 22.5478 29.1615 22.7908 29.2097 23.0253C29.2579 23.2597 29.3769 23.4746 29.5509 23.6429C29.725 23.8112 29.9463 23.9255 30.1867 23.9717C30.4272 24.018 30.6764 23.9943 30.9031 23.9035C31.1298 23.8126 31.3241 23.6586 31.4611 23.4604ZM16.2429 25V20.579C16.2429 20.4048 16.1713 20.2384 16.045 20.1163C15.9189 19.9943 15.7484 19.9263 15.5714 19.9263C15.3944 19.9263 15.224 19.9943 15.0978 20.1163C14.9716 20.2384 14.9 20.4048 14.9 20.579V25C14.9 25.1742 14.9716 25.3406 15.0978 25.4627C15.224 25.5847 15.3944 25.6527 15.5714 25.6527C15.7484 25.6527 15.9189 25.5847 16.045 25.4627C16.1713 25.3406 16.2429 25.1742 16.2429 25ZM39.1 25V20.579C39.1 20.4048 39.0284 20.2384 38.9022 20.1163C38.776 19.9943 38.6056 19.9263 38.4286 19.9263C38.2516 19.9263 38.0811 19.9943 37.955 20.1163C37.8287 20.2384 37.7571 20.4048 37.7571 20.579V25C37.7571 25.1742 37.8287 25.3406 37.955 25.4627C38.0811 25.5847 38.2516 25.6527 38.4286 25.6527C38.6056 25.6527 38.776 25.5847 38.9022 25.4627C39.0284 25.3406 39.1 25.1742 39.1 25Z\"\r\n fill={fill}\r\n stroke={fill}\r\n strokeWidth=\"0.2\"\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Chart = ({ fill = '#000', size = 15, ...props }: SVGProps) => (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 22 22\"\r\n fill=\"none\"\r\n {...props}>\r\n <title>Chart</title>\r\n <g clipPath=\"url(#clip0_2353_10249)\">\r\n <path\r\n d=\"M15.9118 19.3153L15.9119 19.3152C16.1279 19.1374 16.1629 18.8202 15.9915 18.5992L15.9914 18.5991L10.2667 11.2396V2.24969C10.2667 1.96446 10.0352 1.73301 9.75 1.73301C4.8614 1.73301 0.9 6.08572 0.9 11.4163C0.9 16.7557 5.24395 21.0997 10.5833 21.0997C11.771 21.0997 12.6938 20.9922 13.526 20.7137C14.359 20.4349 15.0948 19.987 15.9118 19.3153ZM10.5833 20.0664C5.81355 20.0664 1.93332 16.1861 1.93332 11.4164C1.93332 6.83058 5.17123 3.0801 9.23332 2.78478V11.4164C9.23332 11.531 9.27152 11.6427 9.34279 11.7337C9.34284 11.7338 9.3429 11.7338 9.34295 11.7339L14.8604 18.8277C14.2411 19.2904 13.6698 19.5955 13.0225 19.7874C12.346 19.9879 11.5811 20.0664 10.5833 20.0664Z\"\r\n fill={fill}\r\n stroke={fill}\r\n strokeWidth=\"0.2\"\r\n />\r\n <path\r\n d=\"M11.4167 11.1H20.5834C20.8686 11.1 21.1 10.8685 21.1 10.5833C21.1 5.24395 16.756 0.9 11.4167 0.9C11.1315 0.9 10.9 1.13145 10.9 1.41668V10.5834C10.9 10.8686 11.1315 11.1 11.4167 11.1ZM11.9333 10.0666V1.94877C16.2925 2.20673 19.7933 5.70751 20.0512 10.0666H11.9333Z\"\r\n fill={fill}\r\n stroke={fill}\r\n strokeWidth=\"0.2\"\r\n />\r\n <path\r\n d=\"M18.0192 19.3336L18.0189 19.3339C17.9231 19.4225 17.7972 19.4721 17.6668 19.4721L18.0192 19.3336ZM18.0192 19.3336C19.9769 17.5072 21.1001 14.9258 21.1001 12.2497C21.1001 11.9645 20.8687 11.733 20.5835 11.733H12.2501M18.0192 19.3336L12.2501 11.733M12.2501 11.733C12.0517 11.733 11.8691 11.8475 11.7832 12.0274M12.2501 11.733L11.7832 12.0274M11.7832 12.0274C11.6974 12.2073 11.7232 12.4202 11.8482 12.5743M11.7832 12.0274L11.8482 12.5743M11.8482 12.5743C11.8483 12.5743 11.8483 12.5743 11.8483 12.5744M11.8482 12.5743L11.8483 12.5744M11.8483 12.5744L17.2645 19.2795C17.2645 19.2796 17.2646 19.2797 17.2647 19.2797C17.3549 19.3926 17.4872 19.4606 17.63 19.471C17.6298 19.471 17.6296 19.471 17.6295 19.471L11.8483 12.5744ZM20.0512 12.7664C19.9288 14.7847 19.0958 16.7118 17.7089 18.185L13.332 12.7664H20.0512Z\"\r\n fill={fill}\r\n stroke={fill}\r\n strokeWidth=\"0.2\"\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2353_10249\">\r\n <rect width=\"22\" height=\"22\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const Clock = ({ fill = '#000', size = 15, ...props }: SVGProps) => (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n {...props}>\r\n <title>Clock</title>\r\n <circle\r\n cx=\"12.1001\"\r\n cy=\"12.1001\"\r\n r=\"11.1001\"\r\n stroke={fill}\r\n strokeWidth=\"1.4\"\r\n />\r\n <path\r\n d=\"M11.4824 6.18066L11.4835 13.1411\"\r\n stroke={fill}\r\n strokeWidth=\"1.4\"\r\n strokeLinecap=\"round\"\r\n />\r\n <path\r\n d=\"M18.8843 11.4834L11.4842 13.3334\"\r\n stroke={fill}\r\n strokeWidth=\"1.4\"\r\n strokeLinecap=\"round\"\r\n />\r\n </svg>\r\n);\r\n","import { SVGProps } from '@components/Icon/types';\r\n\r\nexport const UnArchive = ({ fill = '#000', size = 20, ...props }: SVGProps) => (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width={`${size}px`}\r\n height={`${size}px`}\r\n viewBox=\"0 0 21 20\"\r\n fill=\"none\"\r\n {...props}>\r\n <title>Unarchive</title>\r\n <g clipPath=\"url(#clip0_1141_12546)\">\r\n <path\r\n d=\"M16.8271 18.9582H3.49382C2.88616 18.9577 2.30352 18.7161 1.87385 18.2865C1.44417 17.8568 1.20259 17.2742 1.20215 16.6665V6.6665C1.20215 6.50074 1.268 6.34177 1.38521 6.22456C1.50242 6.10735 1.66139 6.0415 1.82715 6.0415H18.4938C18.6596 6.0415 18.8185 6.10735 18.9358 6.22456C19.053 6.34177 19.1188 6.50074 19.1188 6.6665V16.6665C19.1184 17.2742 18.8768 17.8568 18.4471 18.2865C18.0174 18.7161 17.4348 18.9577 16.8271 18.9582ZM2.45215 7.2915V16.6665C2.45259 16.9426 2.56248 17.2073 2.75773 17.4026C2.95299 17.5978 3.21768 17.7077 3.49382 17.7082H16.8271C17.1033 17.7077 17.368 17.5978 17.5632 17.4026C17.7585 17.2073 17.8684 16.9426 17.8688 16.6665V7.2915H2.45215Z\"\r\n fill={fill}\r\n />\r\n <path\r\n d=\"M10.1602 15.625C9.9944 15.625 9.83543 15.5592 9.71821 15.4419C9.601 15.3247 9.53516 15.1658 9.53516 15V10C9.53516 9.83424 9.601 9.67527 9.71821 9.55806C9.83543 9.44085 9.9944 9.375 10.1602 9.375C10.3259 9.375 10.4849 9.44085 10.6021 9.55806C10.7193 9.67527 10.7852 9.83424 10.7852 10V15C10.7852 15.1658 10.7193 15.3247 10.6021 15.4419C10.4849 15.5592 10.3259 15.625 10.1602 15.625Z\"\r\n fill={fill}\r\n />\r\n <path\r\n d=\"M10.1601 8.89059C10.2422 8.89039 10.3235 8.90649 10.3993 8.93796C10.4752 8.96943 10.544 9.01565 10.6018 9.07392L13.1018 11.5739C13.2122 11.6924 13.2723 11.8491 13.2694 12.011C13.2666 12.1729 13.201 12.3274 13.0865 12.4419C12.972 12.5565 12.8175 12.622 12.6556 12.6249C12.4936 12.6278 12.3369 12.5677 12.2185 12.4573L10.1601 10.3998L8.10179 12.4573C7.98331 12.5677 7.8266 12.6278 7.66469 12.6249C7.50277 12.622 7.34828 12.5565 7.23377 12.4419C7.11926 12.3274 7.05366 12.1729 7.05081 12.011C7.04795 11.8491 7.10805 11.6924 7.21845 11.5739L9.71845 9.07392C9.77627 9.01565 9.84508 8.96943 9.9209 8.93796C9.99672 8.90649 10.078 8.89039 10.1601 8.89059Z\"\r\n fill={fill}\r\n />\r\n <path\r\n d=\"M1.25056 0.447437C1.21048 0.17422 0.956494 -0.0147705 0.683277 0.0253158C0.410059 0.0654021 0.221069 0.319385 0.261156 0.592602L1.25056 0.447437ZM2.23794 7.17712L1.25056 0.447437L0.261156 0.592602L1.24853 7.32229L2.23794 7.17712Z\"\r\n fill={fill}\r\n />\r\n <path\r\n d=\"M19.0102 0.447437C19.0503 0.17422 19.3042 -0.0147705 19.5775 0.0253158C19.8507 0.0654021 20.0397 0.319385 19.9996 0.592602L19.0102 0.447437ZM18.0228 7.17712L19.0102 0.447437L19.9996 0.592602L19.0122 7.32229L18.0228 7.17712Z\"\r\n fill={fill}\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1141_12546\">\r\n <rect\r\n width=\"20\"\r\n height=\"20\"\r\n fill=\"white\"\r\n transform=\"translate(0.160156)\"\r\n />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n);\r\n","import { IconProps } from './types';\r\nimport IconsMap from './icons';\r\n\r\nconst Icon = ({ name, color = '#000', size, ...props }: IconProps) => {\r\n return <IconsMap name={name} color={color} size={size} {...props} />;\r\n};\r\nexport default Icon;\r\n","import { Fragment } from 'react';\r\nimport { useTheme } from '@emotion/react';\r\nimport CardHeaderBase from '@components/CardHeader/CardHeaderBase';\r\nimport Icon from '@components/Icon';\r\nimport { AccordionProps } from './types';\r\nimport { createTitleStyles } from './styles';\r\n\r\nconst CardHeaderBaseButton = CardHeaderBase.withComponent('button');\r\n\r\nexport const AccordionTitle: AccordionProps['renderTitle'] = ({\r\n title,\r\n size = 'empty',\r\n id,\r\n isOpened,\r\n ariaControls,\r\n className,\r\n onClick,\r\n}) => {\r\n const theme = useTheme();\r\n const styles = createTitleStyles(theme, isOpened);\r\n return (\r\n <CardHeaderBaseButton\r\n type=\"button\"\r\n data-testid=\"accordion-title\"\r\n css={styles[size]}\r\n className={className}\r\n id={`${id}`}\r\n aria-expanded={isOpened}\r\n aria-controls={ariaControls}\r\n onClick={() => {\r\n if (typeof onClick === 'function') {\r\n onClick();\r\n }\r\n }}>\r\n <Fragment>\r\n {title}\r\n {isOpened ? <Icon name=\"carrot-down\" /> : <Icon name=\"carrot-up\" />}\r\n </Fragment>\r\n </CardHeaderBaseButton>\r\n );\r\n};\r\n","import styled from '@emotion/styled';\r\n\r\nconst CardBase = styled.div<{ noShadow?: boolean }>`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n\r\n padding: 20px;\r\n\r\n background: #fff;\r\n\r\n box-shadow: ${({ theme, noShadow }) =>\r\n !noShadow && `0px 10px 40px ${theme.colors.greyDarker60}`};\r\n border-radius: 10px;\r\n border: none;\r\n\r\n cursor: ${({ onClick }) => (onClick ? 'pointer' : 'default')};\r\n`;\r\n\r\nexport default CardBase;\r\n","import CardBase from '@components/Card/CardBase';\r\nimport { AccordionViewProps } from './types';\r\nimport { wrapperStyles } from './styles';\r\n\r\nexport const Accordion = ({\r\n title,\r\n isOpened,\r\n ariaControls,\r\n id,\r\n size = 'empty',\r\n renderTitle,\r\n renderContent,\r\n onClick,\r\n ...rest\r\n}: AccordionViewProps) => (\r\n <CardBase role=\"region\" tabIndex={0} css={wrapperStyles[size]} {...rest}>\r\n {renderTitle({ id, isOpened, title, size, ariaControls, onClick })}\r\n {renderContent({\r\n id: `${ariaControls}`,\r\n isOpened,\r\n size,\r\n ...{ ['aria-labelledby']: `${id}` },\r\n })}\r\n </CardBase>\r\n);\r\n","import styled from '@emotion/styled';\r\nimport { CommonProps } from '@global-types/emotion';\r\n\r\nconst Avatar = styled.div<{ size: number; image: string } & CommonProps>`\r\n border-radius: 100px;\r\n\r\n overflow: hidden;\r\n\r\n width: ${({ size }) => size}px;\r\n height: ${({ size }) => size}px;\r\n\r\n background: ${({ image }) => `url(${image})`} center no-repeat;\r\n`;\r\n\r\nexport default Avatar;\r\n","import styled from '@emotion/styled';\r\nimport { CommonProps } from '@global-types/emotion';\r\n\r\nconst BadgeBase = styled.div<CommonProps>`\r\n display: inline-block;\r\n\r\n font-family: Manrope, sans-serif;\r\n font-style: normal;\r\n font-weight: 500;\r\n\r\n border-radius: 6px;\r\n\r\n text-align: center;\r\n color: #fff;\r\n\r\n white-space: pre;\r\n`;\r\n\r\nexport default BadgeBase;\r\n","import { css } from '@emotion/react';\r\n\r\nexport const large = css`\r\n height: 32px;\r\n padding: 4px 18px;\r\n\r\n font-size: 1rem;\r\n`;\r\nexport const medium = css`\r\n height: 24px;\r\n padding: 4px 15px;\r\n\r\n font-size: 0.688rem;\r\n`;\r\nexport const small = css`\r\n height: 18px;\r\n padding: 4px 8px;\r\n\r\n font-size: 0.438rem;\r\n`;\r\n","import React from 'react';\r\nimport {\r\n blue,\r\n green,\r\n blueLight,\r\n pink,\r\n purple,\r\n turquoise,\r\n yellow,\r\n yellowWarm,\r\n} from '@styles/global';\r\n\r\nimport BadgeBase from './BadgeBase';\r\nimport { BadgeProps } from './types';\r\nimport { large, medium, small } from './styles';\r\n\r\nconst mapSizes: MainSizes = {\r\n small,\r\n medium,\r\n large,\r\n};\r\n\r\nconst mapColors: MainColors = {\r\n pink,\r\n yellow,\r\n yellowWarm,\r\n green,\r\n turquoise,\r\n purple,\r\n blueLight,\r\n blue,\r\n};\r\n\r\nconst Badge = React.forwardRef<HTMLDivElement, BadgeProps>(function Badge(\r\n { color = 'purple', size = 'medium', children, ...props },\r\n ref,\r\n) {\r\n return (\r\n <BadgeBase ref={ref} css={[mapColors[color], mapSizes[size]]} {...props}>\r\n {children ? children : null}\r\n </BadgeBase>\r\n );\r\n});\r\n\r\nexport default Badge;\r\n","import styled from '@emotion/styled';\r\nimport { CommonProps } from '@global-types/emotion';\r\n\r\nconst Wrapper = styled.div<\r\n {\r\n avatarSize?: number;\r\n direction?: string;\r\n alignItems?: string;\r\n } & CommonProps\r\n>`\r\n display: flex;\r\n align-items: ${({ alignItems }) => (alignItems ? alignItems : 'center')};\r\n\r\n width: 100%;\r\n\r\n flex-direction: ${({ direction }) => (direction ? direction : 'row')};\r\n`;\r\n\r\nexport default Wrapper;\r\n","import styled from '@emotion/styled';\r\n\r\nexport const ButtonBase = styled.button`\r\n display: inline-flex;\r\n align-items: center;\r\n position: relative;\r\n border: none;\r\n padding: 0 16px;\r\n font: inherit;\r\n cursor: pointer;\r\n outline: inherit;\r\n\r\n border-radius: 12px;\r\n`;\r\n","import { useTheme } from '@emotion/react';\r\n\r\nimport { IColoredButtonTextProps, IButtonTextProps } from './types';\r\n\r\nexport const ButtonText = ({ text, className, testId }: IButtonTextProps) => {\r\n return (\r\n <span className={className} data-testid={testId}>\r\n {text}\r\n </span>\r\n );\r\n};\r\n\r\nexport const WhiteButtonText = ({ text }: IColoredButtonTextProps) => {\r\n const theme = useTheme();\r\n\r\n return (\r\n <ButtonText\r\n testId=\"white-button-text\"\r\n text={text}\r\n css={{\r\n color: theme.colors.white,\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport const GreyButtonText = ({ text }: IColoredButtonTextProps) => {\r\n const theme = useTheme();\r\n\r\n return (\r\n <ButtonText\r\n testId=\"grey-button-text\"\r\n text={text}\r\n css={{\r\n color: theme.colors.greyDarker,\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport const GreyLightButtonText = ({ text }: IColoredButtonTextProps) => {\r\n const theme = useTheme();\r\n\r\n return (\r\n <ButtonText\r\n testId=\"greylight-button-text\"\r\n text={text}\r\n css={{\r\n color: theme.colors.greyButtonGradient,\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport const DisabledButtonText = ({ text }: IColoredButtonTextProps) => {\r\n const theme = useTheme();\r\n\r\n return (\r\n <ButtonText\r\n testId=\"disabled-button-text\"\r\n text={text}\r\n css={{\r\n color: theme.colors.grey40,\r\n }}\r\n />\r\n );\r\n};\r\n","import { css, Theme } from '@emotion/react';\r\nimport { focusOutline } from '@styles/safari-focus-outline';\r\n\r\nexport const buttonBlock = css`\r\n display: grid;\r\n\r\n span {\r\n display: inline-block;\r\n margin: auto;\r\n }\r\n`;\r\n\r\nexport const iconWrapperRight = css`\r\n display: inline-flex;\r\n margin-right: 6px;\r\n`;\r\n\r\nexport const iconWrapperLeft = css`\r\n display: inline-flex;\r\n margin-left: 6px;\r\n`;\r\n\r\nexport const large = css`\r\n height: 54px;\r\n\r\n font-weight: 400;\r\n font-size: 16px;\r\n letter-spacing: 0.8px;\r\n\r\n padding: 0 32px;\r\n`;\r\n\r\nexport const medium = css`\r\n height: 46px;\r\n\r\n font-weight: 500;\r\n font-size: 16px;\r\n letter-spacing: 0.8px;\r\n\r\n padding: 0 24px;\r\n`;\r\n\r\nexport const small = css`\r\n height: 36px;\r\n\r\n font-size: 13.33px;\r\n font-weight: 400;\r\n letter-spacing: 0.8px;\r\n\r\n padding: 0 16px;\r\n`;\r\n\r\nexport const primary = (theme: Theme) => css`\r\n color: ${theme.colors.white};\r\n background: linear-gradient(\r\n 108.3deg,\r\n ${theme.colors.greyDarker} -0.36%,\r\n ${theme.colors.greyDark} 100%\r\n );\r\n\r\n &:hover {\r\n background: linear-gradient(\r\n 108.3deg,\r\n ${theme.colors.greyButtonGradient} -0.36%,\r\n ${theme.colors.greyButtonGradientLight} 100%\r\n );\r\n box-shadow: -4px 4px 14px ${theme.colors.greyDarker14};\r\n }\r\n\r\n &:active {\r\n background: ${theme.colors.greyDarker};\r\n box-shadow: -4px 4px 14px ${theme.colors.greyDarker14};\r\n }\r\n\r\n &:disabled {\r\n background: ${theme.colors.grey};\r\n }\r\n\r\n &:focus {\r\n background: linear-gradient(\r\n 108.3deg,\r\n ${theme.colors.greyBackground} -0.36%,\r\n ${theme.colors.greyBackgroundLight} 100%\r\n );\r\n box-shadow: -4px 4px 14px ${theme.colors.greyDarker14};\r\n }\r\n`;\r\n\r\nexport const info = (theme: Theme) => css`\r\n color: ${theme.colors.white};\r\n background: linear-gradient(\r\n 247deg,\r\n ${theme.colors.blueLighter} 14.71%,\r\n ${theme.colors.blue} 85.29%\r\n );\r\n\r\n &:hover {\r\n background: linear-gradient(\r\n 247deg,\r\n ${theme.colors.blueButtonHoverGradientFrom} 14.71%,\r\n ${theme.colors.blueButtonHoverGradientTo} 85.29%\r\n );\r\n }\r\n\r\n &:active {\r\n background: ${theme.colors.blueButtonActive};\r\n }\r\n\r\n &:disabled {\r\n background: ${theme.colors.grey};\r\n }\r\n`;\r\n\r\nexport const secondary = (theme: Theme) => css`\r\n background: ${theme.colors.greyLighter};\r\n box-shadow: 0px 10px 40px ${theme.colors.greyShadow};\r\n\r\n &:hover {\r\n background: ${theme.colors.white};\r\n box-shadow: 0px 10px 40px ${theme.colors.greyShadowHover};\r\n }\r\n\r\n &:active {\r\n background: ${theme.colors.greyFocused};\r\n box-shadow: 0px 10px 40px ${theme.colors.greyShadow};\r\n }\r\n\r\n &:disabled {\r\n background: ${theme.colors.grey};\r\n box-shadow: 0px 10px 40px ${theme.colors.greyShadow};\r\n }\r\n\r\n &:focus {\r\n background: ${theme.colors.greySelectedMenuItem};\r\n box-shadow: 0px 10px 40px ${theme.colors.greyShadow};\r\n }\r\n`;\r\n\r\nexport const tertiary = (theme: Theme) => css`\r\n background: transparent;\r\n\r\n ${focusOutline(theme, 'greyOutline')}\r\n`;\r\n\r\nexport const attention = (theme: Theme) => css`\r\n color: ${theme.colors.white};\r\n background: linear-gradient(\r\n 99.26deg,\r\n ${theme.colors.pink} -7.01%,\r\n ${theme.colors.pinkLighter} 92.87%\r\n );\r\n\r\n &:hover {\r\n background: linear-gradient(\r\n 99.26deg,\r\n ${theme.colors.pinkDark} 7.01%,\r\n ${theme.colors.pinkDarker} 92.87%\r\n );\r\n }\r\n\r\n &:active {\r\n background: ${theme.colors.pinkDark};\r\n }\r\n\r\n &:disabled {\r\n background: ${theme.colors.grey};\r\n }\r\n`;\r\n","import { useState, forwardRef } from 'react';\r\nimport { useTheme } from '@emotion/react';\r\n\r\nimport Wrapper from '@components/Wrapper/Wrapper';\r\n\r\nimport { ButtonBase } from './ButtonBase';\r\nimport {\r\n WhiteButtonText,\r\n GreyButtonText,\r\n GreyLightButtonText,\r\n DisabledButtonText,\r\n} from './ButtonText';\r\nimport { IButtonProps, IButtonVariants } from './types';\r\nimport {\r\n large,\r\n medium,\r\n small,\r\n primary,\r\n info,\r\n secondary,\r\n tertiary,\r\n attention,\r\n buttonBlock,\r\n iconWrapperLeft,\r\n iconWrapperRight,\r\n} from './styles';\r\n\r\nconst mapSizes: MainSizes = {\r\n small,\r\n medium,\r\n large,\r\n};\r\n\r\nconst mapVariants: IButtonVariants = {\r\n primary,\r\n secondary,\r\n tertiary,\r\n info,\r\n attention,\r\n};\r\n\r\nexport const Button = forwardRef<HTMLButtonElement, IButtonProps>(\r\n function Button(\r\n {\r\n block = false,\r\n size = 'small',\r\n text,\r\n startIcon,\r\n endIcon,\r\n variant = 'primary',\r\n type = 'button',\r\n className,\r\n isDisabled,\r\n onClick,\r\n children,\r\n ...ariaProps\r\n },\r\n ref,\r\n ) {\r\n if (!text && !startIcon && !endIcon && !children) {\r\n throw new Error('Button must have either text or icon or children');\r\n }\r\n\r\n const theme = useTheme();\r\n\r\n const [isHovered, setIsHovered] = useState(false);\r\n\r\n const isPrimary = variant === 'primary';\r\n const isInfo = variant === 'info';\r\n const isSecondary = variant === 'secondary';\r\n const isTertiary = variant === 'tertiary';\r\n const isAttention = variant === 'attention';\r\n const noMargin = !text ? { margin: 0 } : {};\r\n\r\n const variantStyles =\r\n isPrimary || isInfo || isTertiary || isSecondary || isAttention\r\n ? mapVariants[variant] && mapVariants[variant](theme)\r\n : undefined;\r\n\r\n const btn = (\r\n <ButtonBase\r\n ref={ref}\r\n css={[mapSizes[size], variantStyles]}\r\n type={type}\r\n disabled={isDisabled}\r\n className={className}\r\n onMouseEnter={() => setIsHovered(true)}\r\n onMouseLeave={() => setIsHovered(false)}\r\n onClick={onClick}\r\n {...ariaProps}>\r\n {startIcon ? (\r\n <span style={noMargin} css={[iconWrapperRight]}>\r\n {startIcon}\r\n </span>\r\n ) : null}\r\n {children ? (\r\n children\r\n ) : text ? (\r\n isDisabled ? (\r\n <DisabledButtonText text={text} size={size} />\r\n ) : isPrimary || isInfo || isAttention ? (\r\n <WhiteButtonText text={text} size={size} />\r\n ) : isTertiary && isHovered ? (\r\n <GreyLightButtonText text={text} size={size} />\r\n ) : (\r\n <GreyButtonText text={text} size={size} />\r\n )\r\n ) : null}\r\n {endIcon ? (\r\n <span style={noMargin} css={iconWrapperLeft}>\r\n {endIcon}\r\n </span>\r\n ) : null}\r\n </ButtonBase>\r\n );\r\n\r\n return block ? <Wrapper css={buttonBlock}>{btn}</Wrapper> : btn;\r\n },\r\n);\r\n\r\nexport default Button;\r\n","import CardBase from './CardBase';\r\n\r\nimport { CardProps } from './types';\r\n\r\nconst Card = ({ children, onClick, ...props }: CardProps) => {\r\n return (\r\n <CardBase {...props} as={onClick ? 'button' : 'div'} onClick={onClick}>\r\n {children}\r\n </CardBase>\r\n );\r\n};\r\n\r\nexport default Card;\r\n","import { CommonProps } from '@global-types/emotion';\r\nimport CardHeaderBase from './CardHeaderBase';\r\n\r\nexport interface CardProps extends CommonProps {\r\n children: React.ReactNode;\r\n icon?: React.ReactNode;\r\n transparent?: boolean;\r\n}\r\n\r\nconst CardHeader = ({ children, icon, transparent, ...props }: CardProps) => (\r\n <CardHeaderBase transparent={transparent} hasIcon={!!icon} {...props}>\r\n {icon ? (\r\n <span\r\n style={{\r\n position: 'absolute',\r\n left: '-30px',\r\n top: '-30px',\r\n }}>\r\n {icon}\r\n </span>\r\n ) : null}\r\n {children}\r\n </CardHeaderBase>\r\n);\r\n\r\nexport default CardHeader;\r\n","import styled from '@emotion/styled';\r\n\r\nexport const ColorMarker = styled.button<{ active: boolean }>`\r\n cursor: pointer;\r\n\r\n width: 24px;\r\n height: 24px;\r\n\r\n border: none;\r\n border-radius: 50%;\r\n\r\n border: ${({ active }) => (active ? '1.4px solid #fff' : 'none')};\r\n box-shadow: ${({ active }) => (active ? 'inherit' : 'none !important')};\r\n`;\r\n","import { useState } from 'react';\r\nimport {\r\n blue,\r\n green,\r\n blueLight,\r\n pink,\r\n purple,\r\n turquoise,\r\n yellow,\r\n} from '@styles/global';\r\n\r\nimport { ColorPickerProps, Colors, ColorsList } from './types';\r\nimport { ColorMarker } from './styles';\r\n\r\nexport const mapColors: Colors = {\r\n pink,\r\n yellow,\r\n green,\r\n turquoise,\r\n blueLight,\r\n blue,\r\n purple,\r\n};\r\n\r\nconst ColorPicker = ({ onChange, initColor }: ColorPickerProps) => {\r\n const [activeColor, setActiveColor] = useState(initColor || '');\r\n\r\n const handleColorChange = (color: ColorsList) => {\r\n onChange(color);\r\n setActiveColor(color);\r\n };\r\n\r\n return (\r\n <ul css={{ display: 'flex', gap: 10, listStyle: 'none', padding: 0 }}>\r\n {(Object.keys(mapColors) as ColorsList[]).map((color) => (\r\n <li key={color}>\r\n <ColorMarker\r\n active={color === activeColor}\r\n onClick={() => handleColorChange(color)}\r\n css={[mapColors[color]]}\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n );\r\n};\r\nexport default ColorPicker;\r\n","import styled from '@emotion/styled';\r\n\r\nexport const LabelBase = styled.label`\r\n display: inline-block;\r\n\r\n flex: 1;\r\n font-weight: 500;\r\n font-size: 1rem;\r\n line-height: 22px;\r\n\r\n color: ${({ theme }) => theme.colors.greyDarker};\r\n\r\n margin: 0 0 6px 4px;\r\n`;\r\n","import { LabelProps } from './types';\r\nimport { LabelBase } from './LabelBase';\r\n\r\nconst Label = ({\r\n children,\r\n htmlFor,\r\n className,\r\n onMouseEnter,\r\n onMouseLeave,\r\n}: LabelProps) => (\r\n <LabelBase\r\n htmlFor={htmlFor}\r\n className={className}\r\n onMouseEnter={onMouseEnter}\r\n onMouseLeave={onMouseLeave}>\r\n {children}\r\n </LabelBase>\r\n);\r\n\r\nexport default Label;\r\n","import { css, Theme } from '@emotion/react';\r\n\r\nconst blueInput = (theme: Theme) => css`\r\n & input:focus + div {\r\n box-shadow: -4px 4px 10px ${theme.colors.blueNotification40};\r\n }\r\n & input:disabled + div,\r\n & input:indeterminate:disabled + div {\r\n background: ${theme.colors.greyFocused};\r\n }\r\n & input:not(:checked, :indeterminate, :disabled) + div::before {\r\n border: 1.5px solid ${theme.colors.greyDropdownMain};\r\n }\r\n & input:not(:checked, :indeterminate, :disabled) + div:hover::before {\r\n border: 1.5px solid ${theme.colors.greyDropdownMain};\r\n }\r\n & input:not(:disabled):checked + div::before,\r\n & input:not(:disabled):indeterminate + div::before {\r\n background: ${theme.colors.blueNotification};\r\n }\r\n & input:not(:disabled):checked + div:hover::before {\r\n background: ${theme.colors.blueNotification};\r\n }\r\n & input:not(:disabled):checked + div + span {\r\n font-weight: 500;\r\n color: ${theme.colors.greyDropdownText};\r\n }\r\n`;\r\n\r\nconst greenInput = (theme: Theme) => css`\r\n & input:focus + div {\r\n box-shadow: -4px 4px 10px ${theme.colors.green40};\r\n }\r\n\r\n & input:disabled + div,\r\n & input:indeterminate:disabled + div {\r\n background: ${theme.colors.greyFocused};\r\n }\r\n\r\n & input:not(:checked, :indeterminate, :disabled) + div::before {\r\n border: 1.5px solid ${theme.colors.green};\r\n }\r\n\r\n & input:not(:checked, :indeterminate, :disabled) + div:hover::before {\r\n border: 1.5px solid ${theme.colors.green60};\r\n }\r\n\r\n & input:not(:disabled):checked + div::before,\r\n & input:not(:disabled):indeterminate + div::before {\r\n background: linear-gradient(\r\n 117.5deg,\r\n ${theme.colors.greenLighter} 17.12%,\r\n ${theme.colors.green} 85.53%\r\n );\r\n }\r\n\r\n & input:not(:disabled):checked + div:hover::before,\r\n & input:not(:disabled):indeterminate + div:hover::before {\r\n background: linear-gradient(\r\n 117.5deg,\r\n ${theme.colors.greenLighter60} 17.12%,\r\n ${theme.colors.green60} 85.53%\r\n );\r\n }\r\n`;\r\n\r\nexport const checkboxStyles = {\r\n blueInput,\r\n greenInput,\r\n};\r\n","import styled from '@emotion/styled';\r\nimport Label from '@components/Label';\r\nimport { checkboxStyles } from './styles';\r\nimport { ICheckboxProps } from './types';\r\n\r\nexport const CheckboxBase = styled(Label)<Pick<ICheckboxProps, 'color'>>`\r\n position: relative;\r\n display: inline-flex;\r\n flex-grow: 0;\r\n align-items: center;\r\n vertical-align: middle;\r\n cursor: pointer;\r\n &:has(input:disabled) {\r\n cursor: default;\r\n }\r\n\r\n div {\r\n position: relative;\r\n height: 20px;\r\n width: 20px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n border-radius: 6px;\r\n }\r\n\r\n input + div {\r\n svg {\r\n z-index: 2;\r\n }\r\n\r\n &::before {\r\n content: '';\r\n position: absolute;\r\n box-sizing: border-box;\r\n height: 20px;\r\n width: 20px;\r\n top: 0;\r\n left: 0;\r\n border-radius: 6px;\r\n z-index: 1;\r\n }\r\n }\r\n\r\n ${({ color = 'green', theme }) => {\r\n switch (color) {\r\n case 'blue':\r\n return checkboxStyles.blueInput(theme);\r\n case 'green':\r\n return checkboxStyles.greenInput(theme);\r\n default:\r\n }\r\n }}\r\n\r\n input {\r\n border: 0;\r\n clip: rect(0 0 0 0);\r\n height: 1px;\r\n margin: -1px;\r\n overflow: hidden;\r\n padding: 0;\r\n position: absolute;\r\n width: 1px;\r\n }\r\n\r\n span {\r\n margin-left: 10px;\r\n font-size: 14px;\r\n font-weight: 100;\r\n }\r\n`;\r\n","import { useState, useId, useEffect, useRef } from 'react';\r\nimport { useTheme } from '@emotion/react';\r\nimport { CheckboxBase } from './CheckboxBase';\r\nimport Icon from '@components/Icon';\r\n\r\nimport { ICheckboxProps } from './types';\r\n\r\nconst Checkbox = ({\r\n text,\r\n id,\r\n onChange,\r\n isDisabled,\r\n externalState,\r\n initialState,\r\n isIndeterminate,\r\n name = '',\r\n isRequired = false,\r\n ref,\r\n register,\r\n ...rest\r\n}: ICheckboxProps) => {\r\n const [isChecked, setIsChecked] = useState(Boolean(initialState));\r\n const autoGenId = useId();\r\n const theme = useTheme();\r\n const checkboxInputRef = useRef<HTMLInputElement | null>(null);\r\n\r\n useEffect(() => {\r\n // istanbul ignore else\r\n if (checkboxInputRef.current) {\r\n // Browsers drop the \"indeterminate\" state after the \"checked\" state\r\n // changes. We keep the component in the \"indeterminate\" state until the\r\n // prop's value changes to false or is removed.\r\n checkboxInputRef.current.indeterminate = Boolean(isIndeterminate);\r\n }\r\n }, [isIndeterminate, isChecked]);\r\n\r\n useEffect(() => {\r\n if (typeof externalState === 'boolean') {\r\n setIsChecked(Boolean(externalState));\r\n }\r\n }, [externalState]);\r\n\r\n const checkboxId = id || autoGenId;\r\n\r\n return (\r\n <CheckboxBase htmlFor={checkboxId} {...rest}>\r\n <input\r\n id={checkboxId}\r\n type=\"checkbox\"\r\n checked={isChecked}\r\n onChange={() => {\r\n const newIsChecked = !isChecked;\r\n setIsChecked(newIsChecked);\r\n onChange?.(newIsChecked);\r\n }}\r\n disabled={isDisabled}\r\n ref={(node: HTMLInputElement) => {\r\n checkboxInputRef.current = node;\r\n if (ref) {\r\n ref.current = node;\r\n }\r\n }}\r\n name={name}\r\n required={isRequired}\r\n {...register}\r\n />\r\n <div>\r\n {isIndeterminate ? (\r\n <Icon name=\"minus\" size={12} color={theme.colors.white} />\r\n ) : isChecked ? (\r\n <Icon name=\"check\" size={12} color={theme.colors.white} />\r\n ) : null}\r\n </div>\r\n {text ? <span>{text}</span> : null}\r\n </CheckboxBase>\r\n );\r\n};\r\n\r\nexport default Checkbox;\r\n","import React from 'react';\n\nvar isCheckBoxInput = (element) => element.type === 'checkbox';\n\nvar isDateObject = (value) => value instanceof Date;\n\nvar isNullOrUndefined = (value) => value == null;\n\nconst isObjectType = (value) => typeof value === 'object';\nvar isObject = (value) => !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n\nvar getEventValue = (event) => isObject(event) && event.target\n ? isCheckBoxInput(event.target)\n ? event.target.checked\n : event.target.value\n : event;\n\nvar getNodeParentName = (name) => name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n\nvar isNameInFieldArray = (names, name) => names.has(getNodeParentName(name));\n\nvar isPlainObject = (tempObject) => {\n const prototypeCopy = tempObject.constructor && tempObject.constructor.prototype;\n return (isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf'));\n};\n\nvar isWeb = typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n\nfunction cloneObject(data) {\n let copy;\n const isArray = Array.isArray(data);\n if (data instanceof Date) {\n copy = new Date(data);\n }\n else if (data instanceof Set) {\n copy = new Set(data);\n }\n else if (!(isWeb && (data instanceof Blob || data instanceof FileList)) &&\n (isArray || isObject(data))) {\n copy = isArray ? [] : {};\n if (!isArray && !isPlainObject(data)) {\n copy = data;\n }\n else {\n for (const key in data) {\n if (data.hasOwnProperty(key)) {\n copy[key] = cloneObject(data[key]);\n }\n }\n }\n }\n else {\n return data;\n }\n return copy;\n}\n\nvar compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];\n\nvar isUndefined = (val) => val === undefined;\n\nvar get = (obj, path, defaultValue) => {\n if (!path || !isObject(obj)) {\n return defaultValue;\n }\n const result = compact(path.split(/[,[\\].]+?/)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], obj);\n return isUndefined(result) || result === obj\n ? isUndefined(obj[path])\n ? defaultValue\n : obj[path]\n : result;\n};\n\nconst EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n CHANGE: 'change',\n};\nconst VALIDATION_MODE = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n};\nconst INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n};\n\nconst HookFormContext = React.createContext(null);\n/**\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @returns return all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\n * }\n * ```\n */\nconst useFormContext = () => React.useContext(HookFormContext);\n/**\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useFrom methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\n * }\n * ```\n */\nconst FormProvider = (props) => {\n const { children, ...data } = props;\n return (React.createElement(HookFormContext.Provider, { value: data }, children));\n};\n\nvar getProxyFormState = (formState, control, localProxyFormState, isRoot = true) => {\n const result = {\n defaultValues: control._defaultValues,\n };\n for (const key in formState) {\n Object.defineProperty(result, key, {\n get: () => {\n const _key = key;\n if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\n control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n }\n localProxyFormState && (localProxyFormState[_key] = true);\n return formState[_key];\n },\n });\n }\n return result;\n};\n\nvar isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;\n\nvar shouldRenderFormState = (formStateData, _proxyFormState, updateFormState, isRoot) => {\n updateFormState(formStateData);\n const { name, ...formState } = formStateData;\n return (isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n Object.keys(formState).find((key) => _proxyFormState[key] ===\n (!isRoot || VALIDATION_MODE.all)));\n};\n\nvar convertToArrayPayload = (value) => (Array.isArray(value) ? value : [value]);\n\nvar shouldSubscribeByName = (name, signalName, exact) => exact && signalName\n ? name === signalName ||\n (Array.isArray(name) &&\n name.some((currentName) => currentName && exact && currentName === signalName))\n : !name ||\n !signalName ||\n name === signalName ||\n convertToArrayPayload(name).some((currentName) => currentName &&\n (currentName.startsWith(signalName) ||\n signalName.startsWith(currentName)));\n\nfunction useSubscribe(props) {\n const _props = React.useRef(props);\n _props.current = props;\n React.useEffect(() => {\n const subscription = !props.disabled &&\n _props.current.subject &&\n _props.current.subject.subscribe({\n next: _props.current.next,\n });\n return () => {\n subscription && subscription.unsubscribe();\n };\n }, [props.disabled]);\n}\n\n/**\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\n *\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, control } = useForm({\n * defaultValues: {\n * firstName: \"firstName\"\n * }});\n * const { dirtyFields } = useFormState({\n * control\n * });\n * const onSubmit = (data) => console.log(data);\n *\n * return (\n * <form onSubmit={handleSubmit(onSubmit)}>\n * <input {...register(\"firstName\")} placeholder=\"First Name\" />\n * {dirtyFields.firstName && <p>Field is dirty.</p>}\n * <input type=\"submit\" />\n * </form>\n * );\n * }\n * ```\n */\nfunction useFormState(props) {\n const methods = useFormContext();\n const { control = methods.control, disabled, name, exact } = props || {};\n const [formState, updateFormState] = React.useState(control._formState);\n const _mounted = React.useRef(true);\n const _localProxyFormState = React.useRef({\n isDirty: false,\n isLoading: false,\n dirtyFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n });\n const _name = React.useRef(name);\n _name.current = name;\n useSubscribe({\n disabled,\n next: (value) => _mounted.current &&\n shouldSubscribeByName(_name.current, value.name, exact) &&\n shouldRenderFormState(value, _localProxyFormState.current, control._updateFormState) &&\n updateFormState({\n ...control._formState,\n ...value,\n }),\n subject: control._subjects.state,\n });\n React.useEffect(() => {\n _mounted.current = true;\n _localProxyFormState.current.isValid && control._updateValid(true);\n return () => {\n _mounted.current = false;\n };\n }, [control]);\n return getProxyFormState(formState, control, _localProxyFormState.current, false);\n}\n\nvar isString = (value) => typeof value === 'string';\n\nvar generateWatchOutput = (names, _names, formValues, isGlobal, defaultValue) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names, defaultValue);\n }\n if (Array.isArray(names)) {\n return names.map((fieldName) => (isGlobal && _names.watch.add(fieldName), get(formValues, fieldName)));\n }\n isGlobal && (_names.watchAll = true);\n return formValues;\n};\n\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * const { watch } = useForm();\n * const values = useWatch({\n * name: \"fieldName\"\n * control,\n * })\n * ```\n */\nfunction useWatch(props) {\n const methods = useFormContext();\n const { control = methods.control, name, defaultValue, disabled, exact, } = props || {};\n const _name = React.useRef(name);\n _name.current = name;\n useSubscribe({\n disabled,\n subject: control._subjects.values,\n next: (formState) => {\n if (shouldSubscribeByName(_name.current, formState.name, exact)) {\n updateValue(cloneObject(generateWatchOutput(_name.current, control._names, formState.values || control._formValues, false, defaultValue)));\n }\n },\n });\n const [value, updateValue] = React.useState(control._getWatch(name, defaultValue));\n React.useEffect(() => control._removeUnmounted());\n return value;\n}\n\nvar isKey = (value) => /^\\w*$/.test(value);\n\nvar stringToPath = (input) => compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n\nfunction set(object, path, value) {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n object[key] = newValue;\n object = object[key];\n }\n return object;\n}\n\n/**\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns field properties, field and form state. {@link UseControllerReturn}\n *\n * @example\n * ```tsx\n * function Input(props) {\n * const { field, fieldState, formState } = useController(props);\n * return (\n * <div>\n * <input {...field} placeholder={props.name} />\n * <p>{fieldState.isTouched && \"Touched\"}</p>\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * </div>\n * );\n * }\n * ```\n */\nfunction useController(props) {\n const methods = useFormContext();\n const { name, disabled, control = methods.control, shouldUnregister } = props;\n const isArrayField = isNameInFieldArray(control._names.array, name);\n const value = useWatch({\n control,\n name,\n defaultValue: get(control._formValues, name, get(control._defaultValues, name, props.defaultValue)),\n exact: true,\n });\n const formState = useFormState({\n control,\n name,\n });\n const _registerProps = React.useRef(control.register(name, {\n ...props.rules,\n value,\n }));\n _registerProps.current = control.register(name, props.rules);\n React.useEffect(() => {\n const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;\n const updateMounted = (name, value) => {\n const field = get(control._fields, name);\n if (field) {\n field._f.mount = value;\n }\n };\n updateMounted(name, true);\n if (_shouldUnregisterField) {\n const value = cloneObject(get(control._options.defaultValues, name));\n set(control._defaultValues, name, value);\n if (isUndefined(get(control._formValues, name))) {\n set(control._formValues, name, value);\n }\n }\n return () => {\n (isArrayField\n ? _shouldUnregisterField && !control._state.action\n : _shouldUnregisterField)\n ? control.unregister(name)\n : updateMounted(name, false);\n };\n }, [name, control, isArrayField, shouldUnregister]);\n React.useEffect(() => {\n control._updateDisabledField({\n disabled,\n fields: control._fields,\n name,\n });\n }, [disabled, name, control]);\n return {\n field: {\n name,\n value,\n disabled,\n onChange: React.useCallback((event) => _registerProps.current.onChange({\n target: {\n value: getEventValue(event),\n name: name,\n },\n type: EVENTS.CHANGE,\n }), [name]),\n onBlur: React.useCallback(() => _registerProps.current.onBlur({\n target: {\n value: get(control._formValues, name),\n name: name,\n },\n type: EVENTS.BLUR,\n }), [name, control]),\n ref: (elm) => {\n const field = get(control._fields, name);\n if (field && elm) {\n field._f.ref = {\n focus: () => elm.focus(),\n select: () => elm.select(),\n setCustomValidity: (message) => elm.setCustomValidity(message),\n reportValidity: () => elm.reportValidity(),\n };\n }\n },\n },\n formState,\n fieldState: Object.defineProperties({}, {\n invalid: {\n enumerable: true,\n get: () => !!get(formState.errors, name),\n },\n isDirty: {\n enumerable: true,\n get: () => !!get(formState.dirtyFields, name),\n },\n isTouched: {\n enumerable: true,\n get: () => !!get(formState.touchedFields, name),\n },\n error: {\n enumerable: true,\n get: () => get(formState.errors, name),\n },\n }),\n };\n}\n\n/**\n * Component based on `useController` hook to work with controlled component.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns provide field handler functions, field and form state.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control } = useForm<FormValues>({\n * defaultValues: {\n * test: \"\"\n * }\n * });\n *\n * return (\n * <form>\n * <Controller\n * control={control}\n * name=\"test\"\n * render={({ field: { onChange, onBlur, value, ref }, formState, fieldState }) => (\n * <>\n * <input\n * onChange={onChange} // send value to hook form\n * onBlur={onBlur} // notify when input is touched\n * value={value} // return updated value\n * ref={ref} // set ref for focus management\n * />\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * <p>{fieldState.isTouched ? \"touched\" : \"\"}</p>\n * </>\n * )}\n * />\n * </form>\n * );\n * }\n * ```\n */\nconst Controller = (props) => props.render(useController(props));\n\nconst POST_REQUEST = 'post';\n/**\n * Form component to manage submission.\n *\n * @param props - to setup submission detail. {@link FormProps}\n *\n * @returns form component or headless render prop.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control, formState: { errors } } = useForm();\n *\n * return (\n * <Form action=\"/api\" control={control}>\n * <input {...register(\"name\")} />\n * <p>{errors?.root?.server && 'Server error'}</p>\n * <button>Submit</button>\n * </Form>\n * );\n * }\n * ```\n */\nfunction Form(props) {\n const methods = useFormContext();\n const [mounted, setMounted] = React.useState(false);\n const { control = methods.control, onSubmit, children, action, method = POST_REQUEST, headers, encType, onError, render, onSuccess, validateStatus, ...rest } = props;\n const submit = async (event) => {\n let hasError = false;\n let type = '';\n await control.handleSubmit(async (data) => {\n const formData = new FormData();\n let formDataJson = '';\n try {\n formDataJson = JSON.stringify(data);\n }\n catch (_a) { }\n for (const name of control._names.mount) {\n formData.append(name, get(data, name));\n }\n if (onSubmit) {\n await onSubmit({\n data,\n event,\n method,\n formData,\n formDataJson,\n });\n }\n if (action) {\n try {\n const shouldStringifySubmissionData = [\n headers && headers['Content-Type'],\n encType,\n ].some((value) => value && value.includes('json'));\n const response = await fetch(action, {\n method,\n headers: {\n ...headers,\n ...(encType ? { 'Content-Type': encType } : {}),\n },\n body: shouldStringifySubmissionData ? formDataJson : formData,\n });\n if (response &&\n (validateStatus\n ? !validateStatus(response.status)\n : response.status < 200 || response.status >= 300)) {\n hasError = true;\n onError && onError({ response });\n type = String(response.status);\n }\n else {\n onSuccess && onSuccess({ response });\n }\n }\n catch (error) {\n hasError = true;\n onError && onError({ error });\n }\n }\n })(event);\n if (hasError && props.control) {\n props.control._subjects.state.next({\n isSubmitSuccessful: false,\n });\n props.control.setError('root.server', {\n type,\n });\n }\n };\n React.useEffect(() => {\n setMounted(true);\n }, []);\n return render ? (React.createElement(React.Fragment, null, render({\n submit,\n }))) : (React.createElement(\"form\", { noValidate: mounted, action: action, method: method, encType: encType, onSubmit: submit, ...rest }, children));\n}\n\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name].types ? errors[name].types : {}),\n [type]: message || true,\n },\n }\n : {};\n\nconst focusFieldBy = (fields, callback, fieldsNames) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n if (field) {\n const { _f, ...currentField } = field;\n if (_f && callback(_f.name)) {\n if (_f.ref.focus) {\n _f.ref.focus();\n break;\n }\n else if (_f.refs && _f.refs[0].focus) {\n _f.refs[0].focus();\n break;\n }\n }\n else if (isObject(currentField)) {\n focusFieldBy(currentField, callback);\n }\n }\n }\n};\n\nvar generateId = () => {\n const d = typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16 + d) % 16 | 0;\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n\nvar getFocusFieldName = (name, index, options = {}) => options.shouldFocus || isUndefined(options.shouldFocus)\n ? options.focusName ||\n `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.`\n : '';\n\nvar getValidationModes = (mode) => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n\nvar isWatched = (name, _names, isBlurEvent) => !isBlurEvent &&\n (_names.watchAll ||\n _names.watch.has(name) ||\n [..._names.watch].some((watchName) => name.startsWith(watchName) &&\n /^\\.\\w+/.test(name.slice(watchName.length))));\n\nvar updateFieldArrayRootError = (errors, error, name) => {\n const fieldArrayErrors = compact(get(errors, name));\n set(fieldArrayErrors, 'root', error[name]);\n set(errors, name, fieldArrayErrors);\n return errors;\n};\n\nvar isBoolean = (value) => typeof value === 'boolean';\n\nvar isFileInput = (element) => element.type === 'file';\n\nvar isFunction = (value) => typeof value === 'function';\n\nvar isHTMLElement = (value) => {\n if (!isWeb) {\n return false;\n }\n const owner = value ? value.ownerDocument : 0;\n return (value instanceof\n (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement));\n};\n\nvar isMessage = (value) => isString(value);\n\nvar isRadioInput = (element) => element.type === 'radio';\n\nvar isRegex = (value) => value instanceof RegExp;\n\nconst defaultResult = {\n value: false,\n isValid: false,\n};\nconst validResult = { value: true, isValid: true };\nvar getCheckboxValue = (options) => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n return defaultResult;\n};\n\nconst defaultReturn = {\n isValid: false,\n value: null,\n};\nvar getRadioValue = (options) => Array.isArray(options)\n ? options.reduce((previous, option) => option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous, defaultReturn)\n : defaultReturn;\n\nfunction getValidateError(result, ref, type = 'validate') {\n if (isMessage(result) ||\n (Array.isArray(result) && result.every(isMessage)) ||\n (isBoolean(result) && !result)) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref,\n };\n }\n}\n\nvar getValueAndMessage = (validationData) => isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n\nvar validateField = async (field, formValues, validateAllFieldCriteria, shouldUseNativeValidation, isFieldArray) => {\n const { ref, refs, required, maxLength, minLength, min, max, pattern, validate, name, valueAsNumber, mount, disabled, } = field._f;\n const inputValue = get(formValues, name);\n if (!mount || disabled) {\n return {};\n }\n const inputRef = refs ? refs[0] : ref;\n const setCustomValidity = (message) => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n inputRef.reportValidity();\n }\n };\n const error = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty = ((valueAsNumber || isFileInput(ref)) &&\n isUndefined(ref.value) &&\n isUndefined(inputValue)) ||\n (isHTMLElement(ref) && ref.value === '') ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);\n const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = INPUT_VALIDATION_RULES.minLength) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n if (isFieldArray\n ? !Array.isArray(inputValue) || !inputValue.length\n : required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))) {\n const { value, message } = isMessage(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue)) {\n const valueNumber = ref.valueAsNumber ||\n (inputValue ? +inputValue : inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n }\n else {\n const valueDate = ref.valueAsDate || new Date(inputValue);\n const convertTimeToDate = (time) => new Date(new Date().toDateString() + ' ' + time);\n const isTime = ref.type == 'time';\n const isWeek = ref.type == 'week';\n if (isString(maxOutput.value) && inputValue) {\n exceedMax = isTime\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n : isWeek\n ? inputValue > maxOutput.value\n : valueDate > new Date(maxOutput.value);\n }\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n : isWeek\n ? inputValue < minOutput.value\n : valueDate < new Date(minOutput.value);\n }\n }\n if (exceedMax || exceedMin) {\n getMinMaxMessage(!!exceedMax, maxOutput.message, minOutput.message, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if ((maxLength || minLength) &&\n !isEmpty &&\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax = !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > +maxLengthOutput.value;\n const exceedMin = !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < +minLengthOutput.value;\n if (exceedMax || exceedMin) {\n getMinMaxMessage(exceedMax, maxLengthOutput.message, minLengthOutput.message);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if (pattern && !isEmpty && isString(inputValue)) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue, formValues);\n const validateError = getValidateError(result, inputRef);\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n }\n else if (isObject(validate)) {\n let validationResult = {};\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n const validateError = getValidateError(await validate[key](inputValue, formValues), inputRef, key);\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n setCustomValidity(validateError.message);\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n setCustomValidity(true);\n return error;\n};\n\nfunction append(data, value) {\n return [...data, ...convertToArrayPayload(value)];\n}\n\nvar fillEmptyArray = (value) => Array.isArray(value) ? value.map(() => undefined) : undefined;\n\nfunction insert(data, index, value) {\n return [\n ...data.slice(0, index),\n ...convertToArrayPayload(value),\n ...data.slice(index),\n ];\n}\n\nvar moveArrayAt = (data, from, to) => {\n if (!Array.isArray(data)) {\n return [];\n }\n if (isUndefined(data[to])) {\n data[to] = undefined;\n }\n data.splice(to, 0, data.splice(from, 1)[0]);\n return data;\n};\n\nfunction prepend(data, value) {\n return [...convertToArrayPayload(value), ...convertToArrayPayload(data)];\n}\n\nfunction removeAtIndexes(data, indexes) {\n let i = 0;\n const temp = [...data];\n for (const index of indexes) {\n temp.splice(index - i, 1);\n i++;\n }\n return compact(temp).length ? temp : [];\n}\nvar removeArrayAt = (data, index) => isUndefined(index)\n ? []\n : removeAtIndexes(data, convertToArrayPayload(index).sort((a, b) => a - b));\n\nvar swapArrayAt = (data, indexA, indexB) => {\n data[indexA] = [data[indexB], (data[indexB] = data[indexA])][0];\n};\n\nfunction baseGet(object, updatePath) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n return object;\n}\nfunction isEmptyArray(obj) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && !isUndefined(obj[key])) {\n return false;\n }\n }\n return true;\n}\nfunction unset(object, path) {\n const paths = Array.isArray(path)\n ? path\n : isKey(path)\n ? [path]\n : stringToPath(path);\n const childObject = paths.length === 1 ? object : baseGet(object, paths);\n const index = paths.length - 1;\n const key = paths[index];\n if (childObject) {\n delete childObject[key];\n }\n if (index !== 0 &&\n ((isObject(childObject) && isEmptyObject(childObject)) ||\n (Array.isArray(childObject) && isEmptyArray(childObject)))) {\n unset(object, paths.slice(0, -1));\n }\n return object;\n}\n\nvar updateAt = (fieldValues, index, value) => {\n fieldValues[index] = value;\n return fieldValues;\n};\n\n/**\n * A custom hook that exposes convenient methods to perform operations with a list of dynamic inputs that need to be appended, updated, removed etc. • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn) • [Video](https://youtu.be/4MrbfGSFY2A)\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usefieldarray) • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn)\n *\n * @param props - useFieldArray props\n *\n * @returns methods - functions to manipulate with the Field Arrays (dynamic inputs) {@link UseFieldArrayReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, control, handleSubmit, reset, trigger, setError } = useForm({\n * defaultValues: {\n * test: []\n * }\n * });\n * const { fields, append } = useFieldArray({\n * control,\n * name: \"test\"\n * });\n *\n * return (\n * <form onSubmit={handleSubmit(data => console.log(data))}>\n * {fields.map((item, index) => (\n * <input key={item.id} {...register(`test.${index}.firstName`)} />\n * ))}\n * <button type=\"button\" onClick={() => append({ firstName: \"bill\" })}>\n * append\n * </button>\n * <input type=\"submit\" />\n * </form>\n * );\n * }\n * ```\n */\nfunction useFieldArray(props) {\n const methods = useFormContext();\n const { control = methods.control, name, keyName = 'id', shouldUnregister, } = props;\n const [fields, setFields] = React.useState(control._getFieldArray(name));\n const ids = React.useRef(control._getFieldArray(name).map(generateId));\n const _fieldIds = React.useRef(fields);\n const _name = React.useRef(name);\n const _actioned = React.useRef(false);\n _name.current = name;\n _fieldIds.current = fields;\n control._names.array.add(name);\n props.rules &&\n control.register(name, props.rules);\n useSubscribe({\n next: ({ values, name: fieldArrayName, }) => {\n if (fieldArrayName === _name.current || !fieldArrayName) {\n const fieldValues = get(values, _name.current);\n if (Array.isArray(fieldValues)) {\n setFields(fieldValues);\n ids.current = fieldValues.map(generateId);\n }\n }\n },\n subject: control._subjects.array,\n });\n const updateValues = React.useCallback((updatedFieldArrayValues) => {\n _actioned.current = true;\n control._updateFieldArray(name, updatedFieldArrayValues);\n }, [control, name]);\n const append$1 = (value, options) => {\n const appendValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = append(control._getFieldArray(name), appendValue);\n control._names.focus = getFocusFieldName(name, updatedFieldArrayValues.length - 1, options);\n ids.current = append(ids.current, appendValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, append, {\n argA: fillEmptyArray(value),\n });\n };\n const prepend$1 = (value, options) => {\n const prependValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = prepend(control._getFieldArray(name), prependValue);\n control._names.focus = getFocusFieldName(name, 0, options);\n ids.current = prepend(ids.current, prependValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, prepend, {\n argA: fillEmptyArray(value),\n });\n };\n const remove = (index) => {\n const updatedFieldArrayValues = removeArrayAt(control._getFieldArray(name), index);\n ids.current = removeArrayAt(ids.current, index);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, removeArrayAt, {\n argA: index,\n });\n };\n const insert$1 = (index, value, options) => {\n const insertValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = insert(control._getFieldArray(name), index, insertValue);\n control._names.focus = getFocusFieldName(name, index, options);\n ids.current = insert(ids.current, index, insertValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, insert, {\n argA: index,\n argB: fillEmptyArray(value),\n });\n };\n const swap = (indexA, indexB) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n swapArrayAt(updatedFieldArrayValues, indexA, indexB);\n swapArrayAt(ids.current, indexA, indexB);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, swapArrayAt, {\n argA: indexA,\n argB: indexB,\n }, false);\n };\n const move = (from, to) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n moveArrayAt(updatedFieldArrayValues, from, to);\n moveArrayAt(ids.current, from, to);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, moveArrayAt, {\n argA: from,\n argB: to,\n }, false);\n };\n const update = (index, value) => {\n const updateValue = cloneObject(value);\n const updatedFieldArrayValues = updateAt(control._getFieldArray(name), index, updateValue);\n ids.current = [...updatedFieldArrayValues].map((item, i) => !item || i === index ? generateId() : ids.current[i]);\n updateValues(updatedFieldArrayValues);\n setFields([...updatedFieldArrayValues]);\n control._updateFieldArray(name, updatedFieldArrayValues, updateAt, {\n argA: index,\n argB: updateValue,\n }, true, false);\n };\n const replace = (value) => {\n const updatedFieldArrayValues = convertToArrayPayload(cloneObject(value));\n ids.current = updatedFieldArrayValues.map(generateId);\n updateValues([...updatedFieldArrayValues]);\n setFields([...updatedFieldArrayValues]);\n control._updateFieldArray(name, [...updatedFieldArrayValues], (data) => data, {}, true, false);\n };\n React.useEffect(() => {\n control._state.action = false;\n isWatched(name, control._names) &&\n control._subjects.state.next({\n ...control._formState,\n });\n if (_actioned.current &&\n (!getValidationModes(control._options.mode).isOnSubmit ||\n control._formState.isSubmitted)) {\n if (control._options.resolver) {\n control._executeSchema([name]).then((result) => {\n const error = get(result.errors, name);\n const existingError = get(control._formState.errors, name);\n if (existingError\n ? (!error && existingError.type) ||\n (error &&\n (existingError.type !== error.type ||\n existingError.message !== error.message))\n : error && error.type) {\n error\n ? set(control._formState.errors, name, error)\n : unset(control._formState.errors, name);\n control._subjects.state.next({\n errors: control._formState.errors,\n });\n }\n });\n }\n else {\n const field = get(control._fields, name);\n if (field && field._f) {\n validateField(field, control._formValues, control._options.criteriaMode === VALIDATION_MODE.all, control._options.shouldUseNativeValidation, true).then((error) => !isEmptyObject(error) &&\n control._subjects.state.next({\n errors: updateFieldArrayRootError(control._formState.errors, error, name),\n }));\n }\n }\n }\n control._subjects.values.next({\n name,\n values: { ...control._formValues },\n });\n control._names.focus &&\n focusFieldBy(control._fields, (key) => !!key && key.startsWith(control._names.focus || ''));\n control._names.focus = '';\n control._updateValid();\n _actioned.current = false;\n }, [fields, name, control]);\n React.useEffect(() => {\n !get(control._formValues, name) && control._updateFieldArray(name);\n return () => {\n (control._options.shouldUnregister || shouldUnregister) &&\n control.unregister(name);\n };\n }, [name, control, keyName, shouldUnregister]);\n return {\n swap: React.useCallback(swap, [updateValues, name, control]),\n move: React.useCallback(move, [updateValues, name, control]),\n prepend: React.useCallback(prepend$1, [updateValues, name, control]),\n append: React.useCallback(append$1, [updateValues, name, control]),\n remove: React.useCallback(remove, [updateValues, name, control]),\n insert: React.useCallback(insert$1, [updateValues, name, control]),\n update: React.useCallback(update, [updateValues, name, control]),\n replace: React.useCallback(replace, [updateValues, name, control]),\n fields: React.useMemo(() => fields.map((field, index) => ({\n ...field,\n [keyName]: ids.current[index] || generateId(),\n })), [fields, keyName]),\n };\n}\n\nfunction createSubject() {\n let _observers = [];\n const next = (value) => {\n for (const observer of _observers) {\n observer.next && observer.next(value);\n }\n };\n const subscribe = (observer) => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter((o) => o !== observer);\n },\n };\n };\n const unsubscribe = () => {\n _observers = [];\n };\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe,\n };\n}\n\nvar isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);\n\nfunction deepEqual(object1, object2) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return object1 === object2;\n }\n if (isDateObject(object1) && isDateObject(object2)) {\n return object1.getTime() === object2.getTime();\n }\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n if (keys1.length !== keys2.length) {\n return false;\n }\n for (const key of keys1) {\n const val1 = object1[key];\n if (!keys2.includes(key)) {\n return false;\n }\n if (key !== 'ref') {\n const val2 = object2[key];\n if ((isDateObject(val1) && isDateObject(val2)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2)\n : val1 !== val2) {\n return false;\n }\n }\n }\n return true;\n}\n\nvar isMultipleSelect = (element) => element.type === `select-multiple`;\n\nvar isRadioOrCheckbox = (ref) => isRadioInput(ref) || isCheckBoxInput(ref);\n\nvar live = (ref) => isHTMLElement(ref) && ref.isConnected;\n\nvar objectHasFunction = (data) => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n\nfunction markFieldsDirty(data, fields = {}) {\n const isParentNodeArray = Array.isArray(data);\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\n fields[key] = Array.isArray(data[key]) ? [] : {};\n markFieldsDirty(data[key], fields[key]);\n }\n else if (!isNullOrUndefined(data[key])) {\n fields[key] = true;\n }\n }\n }\n return fields;\n}\nfunction getDirtyFieldsFromDefaultValues(data, formValues, dirtyFieldsFromValues) {\n const isParentNodeArray = Array.isArray(data);\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\n if (isUndefined(formValues) ||\n isPrimitive(dirtyFieldsFromValues[key])) {\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\n ? markFieldsDirty(data[key], [])\n : { ...markFieldsDirty(data[key]) };\n }\n else {\n getDirtyFieldsFromDefaultValues(data[key], isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);\n }\n }\n else {\n dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\n }\n }\n }\n return dirtyFieldsFromValues;\n}\nvar getDirtyFields = (defaultValues, formValues) => getDirtyFieldsFromDefaultValues(defaultValues, formValues, markFieldsDirty(formValues));\n\nvar getFieldValueAs = (value, { valueAsNumber, valueAsDate, setValueAs }) => isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : value\n ? +value\n : value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n\nfunction getFieldValue(_f) {\n const ref = _f.ref;\n if (_f.refs ? _f.refs.every((ref) => ref.disabled) : ref.disabled) {\n return;\n }\n if (isFileInput(ref)) {\n return ref.files;\n }\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(({ value }) => value);\n }\n if (isCheckBoxInput(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n\nvar getResolverOptions = (fieldsNames, _fields, criteriaMode, shouldUseNativeValidation) => {\n const fields = {};\n for (const name of fieldsNames) {\n const field = get(_fields, name);\n field && set(fields, name, field._f);\n }\n return {\n criteriaMode,\n names: [...fieldsNames],\n fields,\n shouldUseNativeValidation,\n };\n};\n\nvar getRuleValue = (rule) => isUndefined(rule)\n ? rule\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n\nvar hasValidation = (options) => options.mount &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n\nfunction schemaErrorLookup(errors, _fields, name) {\n const error = get(errors, name);\n if (error || isKey(name)) {\n return {\n error,\n name,\n };\n }\n const names = name.split('.');\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n if (field && !Array.isArray(field) && name !== fieldName) {\n return { name };\n }\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError,\n };\n }\n names.pop();\n }\n return {\n name,\n };\n}\n\nvar skipValidation = (isBlurEvent, isTouched, isSubmitted, reValidateMode, mode) => {\n if (mode.isOnAll) {\n return false;\n }\n else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n }\n else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n }\n else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n\nvar unsetEmptyArray = (ref, name) => !compact(get(ref, name)).length && unset(ref, name);\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n};\nfunction createFormControl(props = {}, flushRootRender) {\n let _options = {\n ...defaultOptions,\n ...props,\n };\n let _formState = {\n submitCount: 0,\n isDirty: false,\n isLoading: isFunction(_options.defaultValues),\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n touchedFields: {},\n dirtyFields: {},\n errors: {},\n };\n let _fields = {};\n let _defaultValues = isObject(_options.defaultValues) || isObject(_options.values)\n ? cloneObject(_options.defaultValues || _options.values) || {}\n : {};\n let _formValues = _options.shouldUnregister\n ? {}\n : cloneObject(_defaultValues);\n let _state = {\n action: false,\n mount: false,\n watch: false,\n };\n let _names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n };\n let delayErrorCallback;\n let timer = 0;\n const _proxyFormState = {\n isDirty: false,\n dirtyFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n };\n const _subjects = {\n values: createSubject(),\n array: createSubject(),\n state: createSubject(),\n };\n const shouldCaptureDirtyFields = props.resetOptions && props.resetOptions.keepDirtyValues;\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n const shouldDisplayAllAssociatedErrors = _options.criteriaMode === VALIDATION_MODE.all;\n const debounce = (callback) => (wait) => {\n clearTimeout(timer);\n timer = setTimeout(callback, wait);\n };\n const _updateValid = async (shouldUpdateValid) => {\n if (_proxyFormState.isValid || shouldUpdateValid) {\n const isValid = _options.resolver\n ? isEmptyObject((await _executeSchema()).errors)\n : await executeBuiltInValidation(_fields, true);\n if (isValid !== _formState.isValid) {\n _subjects.state.next({\n isValid,\n });\n }\n }\n };\n const _updateIsValidating = (value) => _proxyFormState.isValidating &&\n _subjects.state.next({\n isValidating: value,\n });\n const _updateFieldArray = (name, values = [], method, args, shouldSetValues = true, shouldUpdateFieldsAndState = true) => {\n if (args && method) {\n _state.action = true;\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n if (shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.errors, name))) {\n const errors = method(get(_formState.errors, name), args.argA, args.argB);\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n if (_proxyFormState.touchedFields &&\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.touchedFields, name))) {\n const touchedFields = method(get(_formState.touchedFields, name), args.argA, args.argB);\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n if (_proxyFormState.dirtyFields) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n }\n _subjects.state.next({\n name,\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid,\n });\n }\n else {\n set(_formValues, name, values);\n }\n };\n const updateErrors = (name, error) => {\n set(_formState.errors, name, error);\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n const updateValidAndValue = (name, shouldSkipSetValueAs, value, ref) => {\n const field = get(_fields, name);\n if (field) {\n const defaultValue = get(_formValues, name, isUndefined(value) ? get(_defaultValues, name) : value);\n isUndefined(defaultValue) ||\n (ref && ref.defaultChecked) ||\n shouldSkipSetValueAs\n ? set(_formValues, name, shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f))\n : setFieldValue(name, defaultValue);\n _state.mount && _updateValid();\n }\n };\n const updateTouchAndDirty = (name, fieldValue, isBlurEvent, shouldDirty, shouldRender) => {\n let shouldUpdateField = false;\n let isPreviousDirty = false;\n const output = {\n name,\n };\n if (!isBlurEvent || shouldDirty) {\n if (_proxyFormState.isDirty) {\n isPreviousDirty = _formState.isDirty;\n _formState.isDirty = output.isDirty = _getDirty();\n shouldUpdateField = isPreviousDirty !== output.isDirty;\n }\n const isCurrentFieldPristine = deepEqual(get(_defaultValues, name), fieldValue);\n isPreviousDirty = get(_formState.dirtyFields, name);\n isCurrentFieldPristine\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields, name, true);\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.dirtyFields &&\n isPreviousDirty !== !isCurrentFieldPristine);\n }\n if (isBlurEvent) {\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n if (!isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.touchedFields &&\n isPreviousFieldTouched !== isBlurEvent);\n }\n }\n shouldUpdateField && shouldRender && _subjects.state.next(output);\n return shouldUpdateField ? output : {};\n };\n const shouldRenderByError = (name, isValid, error, fieldState) => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid = _proxyFormState.isValid &&\n isBoolean(isValid) &&\n _formState.isValid !== isValid;\n if (props.delayError && error) {\n delayErrorCallback = debounce(() => updateErrors(name, error));\n delayErrorCallback(props.delayError);\n }\n else {\n clearTimeout(timer);\n delayErrorCallback = null;\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n if ((error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n _subjects.state.next(updatedFormState);\n }\n _updateIsValidating(false);\n };\n const _executeSchema = async (name) => _options.resolver(_formValues, _options.context, getResolverOptions(name || _names.mount, _fields, _options.criteriaMode, _options.shouldUseNativeValidation));\n const executeSchemaAndUpdateState = async (names) => {\n const { errors } = await _executeSchema(names);\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n }\n else {\n _formState.errors = errors;\n }\n return errors;\n };\n const executeBuiltInValidation = async (fields, shouldOnlyCheckValid, context = {\n valid: true,\n }) => {\n for (const name in fields) {\n const field = fields[name];\n if (field) {\n const { _f, ...fieldValue } = field;\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n const fieldError = await validateField(field, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation && !shouldOnlyCheckValid, isFieldArrayRoot);\n if (fieldError[_f.name]) {\n context.valid = false;\n if (shouldOnlyCheckValid) {\n break;\n }\n }\n !shouldOnlyCheckValid &&\n (get(fieldError, _f.name)\n ? isFieldArrayRoot\n ? updateFieldArrayRootError(_formState.errors, fieldError, _f.name)\n : set(_formState.errors, _f.name, fieldError[_f.name])\n : unset(_formState.errors, _f.name));\n }\n fieldValue &&\n (await executeBuiltInValidation(fieldValue, shouldOnlyCheckValid, context));\n }\n }\n return context.valid;\n };\n const _removeUnmounted = () => {\n for (const name of _names.unMount) {\n const field = get(_fields, name);\n field &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name);\n }\n _names.unMount = new Set();\n };\n const _getDirty = (name, data) => (name && data && set(_formValues, name, data),\n !deepEqual(getValues(), _defaultValues));\n const _getWatch = (names, defaultValue, isGlobal) => generateWatchOutput(names, _names, {\n ...(_state.mount\n ? _formValues\n : isUndefined(defaultValue)\n ? _defaultValues\n : isString(names)\n ? { [names]: defaultValue }\n : defaultValue),\n }, isGlobal, defaultValue);\n const _getFieldArray = (name) => compact(get(_state.mount ? _formValues : _defaultValues, name, props.shouldUnregister ? get(_defaultValues, name, []) : []));\n const setFieldValue = (name, value, options = {}) => {\n const field = get(_fields, name);\n let fieldValue = value;\n if (field) {\n const fieldReference = field._f;\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n fieldValue =\n isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach((optionRef) => (optionRef.selected = fieldValue.includes(optionRef.value)));\n }\n else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.length > 1\n ? fieldReference.refs.forEach((checkboxRef) => (!checkboxRef.defaultChecked || !checkboxRef.disabled) &&\n (checkboxRef.checked = Array.isArray(fieldValue)\n ? !!fieldValue.find((data) => data === checkboxRef.value)\n : fieldValue === checkboxRef.value))\n : fieldReference.refs[0] &&\n (fieldReference.refs[0].checked = !!fieldValue);\n }\n else {\n fieldReference.refs.forEach((radioRef) => (radioRef.checked = radioRef.value === fieldValue));\n }\n }\n else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n }\n else {\n fieldReference.ref.value = fieldValue;\n if (!fieldReference.ref.type) {\n _subjects.values.next({\n name,\n values: { ..._formValues },\n });\n }\n }\n }\n }\n (options.shouldDirty || options.shouldTouch) &&\n updateTouchAndDirty(name, fieldValue, options.shouldTouch, options.shouldDirty, true);\n options.shouldValidate && trigger(name);\n };\n const setValues = (name, value, options) => {\n for (const fieldKey in value) {\n const fieldValue = value[fieldKey];\n const fieldName = `${name}.${fieldKey}`;\n const field = get(_fields, fieldName);\n (_names.array.has(name) ||\n !isPrimitive(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setValues(fieldName, fieldValue, options)\n : setFieldValue(fieldName, fieldValue, options);\n }\n };\n const setValue = (name, value, options = {}) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = cloneObject(value);\n set(_formValues, name, cloneValue);\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: { ..._formValues },\n });\n if ((_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\n options.shouldDirty) {\n _subjects.state.next({\n name,\n dirtyFields: getDirtyFields(_defaultValues, _formValues),\n isDirty: _getDirty(name, cloneValue),\n });\n }\n }\n else {\n field && !field._f && !isNullOrUndefined(cloneValue)\n ? setValues(name, cloneValue, options)\n : setFieldValue(name, cloneValue, options);\n }\n isWatched(name, _names) && _subjects.state.next({ ..._formState });\n _subjects.values.next({\n name,\n values: { ..._formValues },\n });\n !_state.mount && flushRootRender();\n };\n const onChange = async (event) => {\n const target = event.target;\n let name = target.name;\n let isFieldValueUpdated = true;\n const field = get(_fields, name);\n const getCurrentFieldValue = () => target.type ? getFieldValue(field._f) : getEventValue(event);\n if (field) {\n let error;\n let isValid;\n const fieldValue = getCurrentFieldValue();\n const isBlurEvent = event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const shouldSkipValidation = (!hasValidation(field._f) &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps) ||\n skipValidation(isBlurEvent, get(_formState.touchedFields, name), _formState.isSubmitted, validationModeAfterSubmit, validationModeBeforeSubmit);\n const watched = isWatched(name, _names, isBlurEvent);\n set(_formValues, name, fieldValue);\n if (isBlurEvent) {\n field._f.onBlur && field._f.onBlur(event);\n delayErrorCallback && delayErrorCallback(0);\n }\n else if (field._f.onChange) {\n field._f.onChange(event);\n }\n const fieldState = updateTouchAndDirty(name, fieldValue, isBlurEvent, false);\n const shouldRender = !isEmptyObject(fieldState) || watched;\n !isBlurEvent &&\n _subjects.values.next({\n name,\n type: event.type,\n values: { ..._formValues },\n });\n if (shouldSkipValidation) {\n _proxyFormState.isValid && _updateValid();\n return (shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) }));\n }\n !isBlurEvent && watched && _subjects.state.next({ ..._formState });\n _updateIsValidating(true);\n if (_options.resolver) {\n const { errors } = await _executeSchema([name]);\n const previousErrorLookupResult = schemaErrorLookup(_formState.errors, _fields, name);\n const errorLookupResult = schemaErrorLookup(errors, _fields, previousErrorLookupResult.name || name);\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n isValid = isEmptyObject(errors);\n }\n else {\n error = (await validateField(field, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation))[name];\n isFieldValueUpdated =\n isNaN(fieldValue) ||\n fieldValue === get(_formValues, name, fieldValue);\n if (isFieldValueUpdated) {\n if (error) {\n isValid = false;\n }\n else if (_proxyFormState.isValid) {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n }\n }\n if (isFieldValueUpdated) {\n field._f.deps &&\n trigger(field._f.deps);\n shouldRenderByError(name, isValid, error, fieldState);\n }\n }\n };\n const trigger = async (name, options = {}) => {\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name);\n _updateIsValidating(true);\n if (_options.resolver) {\n const errors = await executeSchemaAndUpdateState(isUndefined(name) ? name : fieldNames);\n isValid = isEmptyObject(errors);\n validationResult = name\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n }\n else if (name) {\n validationResult = (await Promise.all(fieldNames.map(async (fieldName) => {\n const field = get(_fields, fieldName);\n return await executeBuiltInValidation(field && field._f ? { [fieldName]: field } : field);\n }))).every(Boolean);\n !(!validationResult && !_formState.isValid) && _updateValid();\n }\n else {\n validationResult = isValid = await executeBuiltInValidation(_fields);\n }\n _subjects.state.next({\n ...(!isString(name) ||\n (_proxyFormState.isValid && isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver || !name ? { isValid } : {}),\n errors: _formState.errors,\n isValidating: false,\n });\n options.shouldFocus &&\n !validationResult &&\n focusFieldBy(_fields, (key) => key && get(_formState.errors, key), name ? fieldNames : _names.mount);\n return validationResult;\n };\n const getValues = (fieldNames) => {\n const values = {\n ..._defaultValues,\n ...(_state.mount ? _formValues : {}),\n };\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames)\n : fieldNames.map((name) => get(values, name));\n };\n const getFieldState = (name, formState) => ({\n invalid: !!get((formState || _formState).errors, name),\n isDirty: !!get((formState || _formState).dirtyFields, name),\n isTouched: !!get((formState || _formState).touchedFields, name),\n error: get((formState || _formState).errors, name),\n });\n const clearErrors = (name) => {\n name &&\n convertToArrayPayload(name).forEach((inputName) => unset(_formState.errors, inputName));\n _subjects.state.next({\n errors: name ? _formState.errors : {},\n });\n };\n const setError = (name, error, options) => {\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n set(_formState.errors, name, {\n ...error,\n ref,\n });\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false,\n });\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n const watch = (name, defaultValue) => isFunction(name)\n ? _subjects.values.subscribe({\n next: (payload) => name(_getWatch(undefined, defaultValue), payload),\n })\n : _getWatch(name, defaultValue, true);\n const unregister = (name, options = {}) => {\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n !options.keepError && unset(_formState.errors, fieldName);\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !_options.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n _subjects.values.next({\n values: { ..._formValues },\n });\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n });\n !options.keepIsValid && _updateValid();\n };\n const _updateDisabledField = ({ disabled, name, field, fields, }) => {\n if (isBoolean(disabled)) {\n const value = disabled\n ? undefined\n : get(_formValues, name, getFieldValue(field ? field._f : get(fields, name)._f));\n set(_formValues, name, value);\n updateTouchAndDirty(name, value, false, false, true);\n }\n };\n const register = (name, options = {}) => {\n let field = get(_fields, name);\n const disabledIsDefined = isBoolean(options.disabled);\n set(_fields, name, {\n ...(field || {}),\n _f: {\n ...(field && field._f ? field._f : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n if (field) {\n _updateDisabledField({\n field,\n disabled: options.disabled,\n name,\n });\n }\n else {\n updateValidAndValue(name, true, options.value);\n }\n return {\n ...(disabledIsDefined ? { disabled: options.disabled } : {}),\n ...(_options.progressive\n ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue(options.minLength),\n maxLength: getRuleValue(options.maxLength),\n pattern: getRuleValue(options.pattern),\n }\n : {}),\n name,\n onChange,\n onBlur: onChange,\n ref: (ref) => {\n if (ref) {\n register(name, options);\n field = get(_fields, name);\n const fieldRef = isUndefined(ref.value)\n ? ref.querySelectorAll\n ? ref.querySelectorAll('input,select,textarea')[0] || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n if (radioOrCheckbox\n ? refs.find((option) => option === fieldRef)\n : fieldRef === field._f.ref) {\n return;\n }\n set(_fields, name, {\n _f: {\n ...field._f,\n ...(radioOrCheckbox\n ? {\n refs: [\n ...refs.filter(live),\n fieldRef,\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n ],\n ref: { type: fieldRef.type, name },\n }\n : { ref: fieldRef }),\n },\n });\n updateValidAndValue(name, false, undefined, fieldRef);\n }\n else {\n field = get(_fields, name, {});\n if (field._f) {\n field._f.mount = false;\n }\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _state.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n const _focusError = () => _options.shouldFocusError &&\n focusFieldBy(_fields, (key) => key && get(_formState.errors, key), _names.mount);\n const handleSubmit = (onValid, onInvalid) => async (e) => {\n if (e) {\n e.preventDefault && e.preventDefault();\n e.persist && e.persist();\n }\n let fieldValues = cloneObject(_formValues);\n _subjects.state.next({\n isSubmitting: true,\n });\n if (_options.resolver) {\n const { errors, values } = await _executeSchema();\n _formState.errors = errors;\n fieldValues = values;\n }\n else {\n await executeBuiltInValidation(_fields);\n }\n unset(_formState.errors, 'root');\n if (isEmptyObject(_formState.errors)) {\n _subjects.state.next({\n errors: {},\n });\n await onValid(fieldValues, e);\n }\n else {\n if (onInvalid) {\n await onInvalid({ ..._formState.errors }, e);\n }\n _focusError();\n setTimeout(_focusError);\n }\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors),\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors,\n });\n };\n const resetField = (name, options = {}) => {\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, get(_defaultValues, name));\n }\n else {\n setValue(name, options.defaultValue);\n set(_defaultValues, name, options.defaultValue);\n }\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue\n ? _getDirty(name, get(_defaultValues, name))\n : _getDirty();\n }\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _updateValid();\n }\n _subjects.state.next({ ..._formState });\n }\n };\n const _reset = (formValues, keepStateOptions = {}) => {\n const updatedValues = formValues ? cloneObject(formValues) : _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const values = formValues && !isEmptyObject(formValues)\n ? cloneUpdatedValues\n : _defaultValues;\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues || shouldCaptureDirtyFields) {\n for (const fieldName of _names.mount) {\n get(_formState.dirtyFields, fieldName)\n ? set(values, fieldName, get(_formValues, fieldName))\n : setValue(fieldName, get(values, fieldName));\n }\n }\n else {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n if (isHTMLElement(fieldReference)) {\n const form = fieldReference.closest('form');\n if (form) {\n form.reset();\n break;\n }\n }\n }\n }\n }\n _fields = {};\n }\n _formValues = props.shouldUnregister\n ? keepStateOptions.keepDefaultValues\n ? cloneObject(_defaultValues)\n : {}\n : cloneObject(values);\n _subjects.array.next({\n values: { ...values },\n });\n _subjects.values.next({\n values: { ...values },\n });\n }\n _names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: '',\n };\n !_state.mount && flushRootRender();\n _state.mount = !_proxyFormState.isValid || !!keepStateOptions.keepIsValid;\n _state.watch = !!props.shouldUnregister;\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount\n ? _formState.submitCount\n : 0,\n isDirty: keepStateOptions.keepDirty\n ? _formState.isDirty\n : !!(keepStateOptions.keepDefaultValues &&\n !deepEqual(formValues, _defaultValues)),\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields: keepStateOptions.keepDirtyValues\n ? _formState.dirtyFields\n : keepStateOptions.keepDefaultValues && formValues\n ? getDirtyFields(_defaultValues, formValues)\n : {},\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : {},\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitting: false,\n isSubmitSuccessful: false,\n });\n };\n const reset = (formValues, keepStateOptions) => _reset(isFunction(formValues)\n ? formValues(_formValues)\n : formValues, keepStateOptions);\n const setFocus = (name, options = {}) => {\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n if (fieldReference) {\n const fieldRef = fieldReference.refs\n ? fieldReference.refs[0]\n : fieldReference.ref;\n if (fieldRef.focus) {\n fieldRef.focus();\n options.shouldSelect && fieldRef.select();\n }\n }\n };\n const _updateFormState = (updatedFormState) => {\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n };\n const _resetDefaultValues = () => isFunction(_options.defaultValues) &&\n _options.defaultValues().then((values) => {\n reset(values, _options.resetOptions);\n _subjects.state.next({\n isLoading: false,\n });\n });\n return {\n control: {\n register,\n unregister,\n getFieldState,\n handleSubmit,\n setError,\n _executeSchema,\n _getWatch,\n _getDirty,\n _updateValid,\n _removeUnmounted,\n _updateFieldArray,\n _updateDisabledField,\n _getFieldArray,\n _reset,\n _resetDefaultValues,\n _updateFormState,\n _subjects,\n _proxyFormState,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _state() {\n return _state;\n },\n set _state(value) {\n _state = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n set _formState(value) {\n _formState = value;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = {\n ..._options,\n ...value,\n };\n },\n },\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n resetField,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState,\n };\n}\n\n/**\n * Custom hook to manage the entire form.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\n *\n * @param props - form configuration and validation parameters.\n *\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\n * const onSubmit = data => console.log(data);\n *\n * console.log(watch(\"example\"));\n *\n * return (\n * <form onSubmit={handleSubmit(onSubmit)}>\n * <input defaultValue=\"test\" {...register(\"example\")} />\n * <input {...register(\"exampleRequired\", { required: true })} />\n * {errors.exampleRequired && <span>This field is required</span>}\n * <button>Submit</button>\n * </form>\n * );\n * }\n * ```\n */\nfunction useForm(props = {}) {\n const _formControl = React.useRef();\n const _values = React.useRef();\n const [formState, updateFormState] = React.useState({\n isDirty: false,\n isValidating: false,\n isLoading: isFunction(props.defaultValues),\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n submitCount: 0,\n dirtyFields: {},\n touchedFields: {},\n errors: {},\n defaultValues: isFunction(props.defaultValues)\n ? undefined\n : props.defaultValues,\n });\n if (!_formControl.current) {\n _formControl.current = {\n ...createFormControl(props, () => updateFormState((formState) => ({ ...formState }))),\n formState,\n };\n }\n const control = _formControl.current.control;\n control._options = props;\n useSubscribe({\n subject: control._subjects.state,\n next: (value) => {\n if (shouldRenderFormState(value, control._proxyFormState, control._updateFormState, true)) {\n updateFormState({ ...control._formState });\n }\n },\n });\n React.useEffect(() => {\n if (props.values && !deepEqual(props.values, _values.current)) {\n control._reset(props.values, control._options.resetOptions);\n _values.current = props.values;\n }\n else {\n control._resetDefaultValues();\n }\n }, [props.values, control]);\n React.useEffect(() => {\n if (!control._state.mount) {\n control._updateValid();\n control._state.mount = true;\n }\n if (control._state.watch) {\n control._state.watch = false;\n control._subjects.state.next({ ...control._formState });\n }\n control._removeUnmounted();\n });\n _formControl.current.formState = getProxyFormState(formState, control);\n return _formControl.current;\n}\n\nexport { Controller, Form, FormProvider, appendErrors, get, set, useController, useFieldArray, useForm, useFormContext, useFormState, useWatch };\n//# sourceMappingURL=index.esm.mjs.map\n","import { useController } from 'react-hook-form';\r\nimport type { FieldValues } from 'react-hook-form';\r\n\r\nimport Checkbox from '@components/Checkbox';\r\n\r\nimport { IFormCheckboxProps } from './types';\r\nimport { ChangeEvent } from 'react';\r\n\r\nconst FormCheckbox = <T extends FieldValues>({\r\n control,\r\n name,\r\n isRequired = false,\r\n ...props\r\n}: IFormCheckboxProps<T>) => {\r\n const { field } = useController({\r\n control,\r\n name,\r\n rules: { required: isRequired },\r\n });\r\n\r\n return (\r\n <Checkbox\r\n name={name}\r\n onChange={(value) => {\r\n field.onChange(value as unknown as ChangeEvent);\r\n }}\r\n isRequired={isRequired}\r\n {...props}\r\n />\r\n );\r\n};\r\n\r\nexport default FormCheckbox;\r\n","import { css } from '@emotion/react';\r\nimport styled from '@emotion/styled';\r\nimport { focusOutline } from '@styles/safari-focus-outline';\r\nimport { IDropdownToggleProps, MultipleStylesProps } from './types';\r\n\r\nconst multipleStyles = ({ theme, selectedCount = 0 }: MultipleStylesProps) => {\r\n let borderColor = theme.colors.greyDropdownMain;\r\n let borderColorFocused = theme.colors.greyDropdownFocused;\r\n let backgroundColor = theme.colors.white;\r\n if (selectedCount > 0) {\r\n borderColor = theme.colors.blueDropdownWithSelectedItemsBorder;\r\n borderColorFocused = theme.colors.blueDropdownWithSelectedItemsBorder;\r\n backgroundColor = theme.colors.blueDropdownWithSelectedItems;\r\n }\r\n\r\n return css`\r\n justify-content: space-between;\r\n height: 40px;\r\n padding: 11px 15px 9px 10px;\r\n font-size: 14px;\r\n font-weight: 500;\r\n color: ${theme.colors.greyDropdownText};\r\n border: 1px solid ${borderColor};\r\n border-radius: 5px;\r\n background: ${backgroundColor};\r\n max-width: 250px;\r\n\r\n &:focus {\r\n color: ${theme.colors.greyDropdownText};\r\n background: ${backgroundColor};\r\n &::before {\r\n border-color: ${borderColorFocused};\r\n }\r\n }\r\n\r\n svg {\r\n path {\r\n stroke: ${theme.colors.greyDarker};\r\n }\r\n }\r\n `;\r\n};\r\n\r\nexport const DropdownToggleBase = styled.button<\r\n Pick<\r\n IDropdownToggleProps,\r\n 'colors' | 'isOpen' | 'disabled' | 'isMultiple' | 'selectedCount'\r\n >\r\n>`\r\n ${({ isMultiple, theme }) =>\r\n isMultiple\r\n ? focusOutline(theme, 'greyDropdownFocused', '5px')\r\n : focusOutline(theme)}\r\n\r\n display: flex;\r\n flex-flow: row nowrap;\r\n align-items: center;\r\n justify-content: flex-start;\r\n gap: 10px;\r\n\r\n position: relative;\r\n\r\n color: ${({ colors, isOpen }) =>\r\n isOpen ? colors?.[0] || 'initial' : 'initial'};\r\n\r\n width: auto;\r\n padding: 8px 14px;\r\n\r\n font: inherit;\r\n font-size: 13px;\r\n text-align: left;\r\n line-height: 18px;\r\n\r\n border: none;\r\n cursor: pointer;\r\n outline: inherit;\r\n\r\n border-radius: 12px;\r\n\r\n background: ${({ isOpen, theme }) =>\r\n isOpen\r\n ? `linear-gradient(108.3deg, ${theme.colors.greyDarker} -0.36%, ${theme.colors.greyDark} 100%)`\r\n : theme.colors.greyLighter};\r\n\r\n &:disabled {\r\n background: ${({ theme }) => theme.colors.grey};\r\n cursor: default;\r\n }\r\n\r\n &:focus {\r\n color: ${({ colors, theme }) => colors?.[0] || theme.colors.greyDarker};\r\n background: ${({ isOpen, theme }) =>\r\n isOpen\r\n ? `linear-gradient(108.3deg, ${theme.colors.greyDarker} -0.36%, ${theme.colors.greyDark} 100%)`\r\n : theme.colors.greyFocused};\r\n }\r\n\r\n svg {\r\n path {\r\n stroke: ${({ colors, theme }) => colors?.[0] || theme.colors.greyDarker};\r\n }\r\n }\r\n\r\n ${({ isMultiple, selectedCount, theme }) =>\r\n isMultiple &&\r\n multipleStyles({\r\n theme,\r\n selectedCount,\r\n })}\r\n`;\r\n\r\nconst DropdownToggle = ({\r\n onClick,\r\n onFocus,\r\n isOpen,\r\n isMultiple,\r\n selectedCount,\r\n disabled,\r\n children,\r\n ariaLabelledby,\r\n ariaControls,\r\n colors,\r\n className,\r\n}: IDropdownToggleProps) => (\r\n <DropdownToggleBase\r\n className={className}\r\n colors={colors}\r\n isOpen={isOpen}\r\n type=\"button\"\r\n isMultiple={isMultiple}\r\n selectedCount={selectedCount}\r\n onClick={(e) => {\r\n // Safari doesn't support focus on buttons 🤔\r\n (e.currentTarget as HTMLButtonElement).focus();\r\n onClick && onClick(e);\r\n }}\r\n onFocus={onFocus}\r\n disabled={disabled}\r\n role=\"combobox\"\r\n aria-labelledby={ariaLabelledby}\r\n aria-controls={ariaControls}\r\n aria-expanded={isOpen}\r\n aria-haspopup=\"listbox\">\r\n {children}\r\n </DropdownToggleBase>\r\n);\r\n\r\nexport default DropdownToggle;\r\n","import styled from '@emotion/styled';\r\n\r\nimport Icon from '@components/Icon';\r\nimport { CommonProps } from '@global-types/emotion';\r\n\r\nexport const DropdownArrowBase = styled.div<CommonProps>`\r\n display: flex;\r\n align-items: center;\r\n`;\r\n\r\nconst DropdownArrow = ({ isUp }: { isUp: boolean }) => (\r\n <DropdownArrowBase>\r\n <Icon name={`carrot-${isUp ? 'up' : 'down'}`} size={12} />\r\n </DropdownArrowBase>\r\n);\r\n\r\nexport default DropdownArrow;\r\n","import * as React from 'react';\r\n\r\nimport { DropdownContextType } from './types';\r\n\r\nconst DropdownContext = React.createContext<DropdownContextType>({\r\n activeItem: null,\r\n onChange: () => {\r\n /* noop */\r\n },\r\n});\r\n\r\nexport function useDropdownContext(): DropdownContextType {\r\n return React.useContext(DropdownContext);\r\n}\r\n\r\nexport default DropdownContext;\r\n","import React from 'react';\r\nimport { Theme, css } from '@emotion/react';\r\nimport styled from '@emotion/styled';\r\nimport { CommonProps } from '@global-types/emotion';\r\n\r\ninterface IDropdownItemProps extends CommonProps {\r\n onClick?: (e: React.MouseEvent<HTMLElement>) => void;\r\n isActive?: boolean;\r\n isMultiple?: boolean;\r\n isDisabled?: boolean;\r\n noHover?: boolean;\r\n value?: string | number | boolean;\r\n label?: string | number;\r\n children?: React.ReactNode;\r\n}\r\n\r\ninterface MultipleStylesProps {\r\n theme: Theme;\r\n isDisabled?: boolean;\r\n}\r\n\r\nconst multipleStyles = ({ theme, isDisabled }: MultipleStylesProps) => {\r\n return css`\r\n background: none;\r\n color: ${isDisabled\r\n ? theme.colors.greyDisabledCheckbox\r\n : theme.colors.greyDisabled};\r\n &:hover {\r\n background: none;\r\n }\r\n `;\r\n};\r\n\r\nconst DropdownOption = styled.li<IDropdownItemProps>`\r\n overflow: hidden;\r\n\r\n height: 34px;\r\n padding: 8px 16px;\r\n\r\n border: none;\r\n background: ${({ isActive, theme }) =>\r\n isActive ? theme.colors.greySelectedMenuItem : 'inherit'};\r\n\r\n &:hover {\r\n background: ${({ theme }) => theme.colors.greyLighter};\r\n }\r\n\r\n ${({ isMultiple, isDisabled, theme }) =>\r\n isMultiple &&\r\n multipleStyles({\r\n theme,\r\n isDisabled,\r\n })}\r\n`;\r\n\r\nexport default DropdownOption;\r\n","import React from 'react';\r\nimport styled from '@emotion/styled';\r\nimport { css } from '@emotion/react';\r\n\r\nimport { useDropdownContext } from '@components/Dropdown/Dropdown.context';\r\nimport DropdownOption from '@components/DropdownOption';\r\n\r\nimport { IDropdownItemsListProps } from './types';\r\n\r\nconst DropdownOptionsBase = styled.ul<{ tabindex?: string }>`\r\n position: absolute;\r\n width: 100%;\r\n\r\n list-style: none;\r\n\r\n margin: 4px 0 0;\r\n padding: 0;\r\n\r\n background: #fff;\r\n border-radius: 8px;\r\n\r\n overflow-x: hidden;\r\n overflow-y: auto;\r\n\r\n z-index: 2;\r\n\r\n filter: ${({ theme }) =>\r\n `drop-shadow(-4px 4px 14px ${theme.colors.greyDarker14})`};\r\n backdrop-filter: ${({ theme }) =>\r\n `drop-shadow(-4px 4px 14px ${theme.colors.greyDarker14})`};\r\n`;\r\n\r\nconst dropdownOptionButton = css`\r\n display: flex;\r\n align-items: center;\r\n cursor: pointer;\r\n font: inherit;\r\n font-size: 0.813rem;\r\n outline: inherit;\r\n text-align: left;\r\n\r\n width: 100%;\r\n padding: 0;\r\n margin: 0;\r\n\r\n background: none;\r\n color: inherit;\r\n border: none;\r\n`;\r\n\r\nconst noItemsMsg = { id: Number.NaN, value: 'No items' };\r\n\r\nconst DropdownOptions = ({\r\n ariaLabelledby,\r\n id,\r\n children,\r\n}: IDropdownItemsListProps) => {\r\n const { onChange, activeItem } = useDropdownContext();\r\n\r\n const childrenArray = React.Children.toArray(children).filter(Boolean);\r\n\r\n const options = (childrenArray as React.ReactElement[]).map((child) => {\r\n const isActive = activeItem?.value === child.props.value;\r\n\r\n return React.cloneElement(\r\n child,\r\n {\r\n ...child.props,\r\n isActive,\r\n 'aria-selected': isActive,\r\n onClick: onChange.bind(null, child.props.value),\r\n },\r\n <button type=\"button\" css={dropdownOptionButton}>\r\n {child.props.children || child.props.label || child.props.value}\r\n </button>,\r\n );\r\n });\r\n\r\n if (options.length === 0) {\r\n options.push(\r\n <DropdownOption\r\n key={noItemsMsg.id}\r\n value={''}\r\n onClick={onChange.bind(null, '')}\r\n aria-selected={false}>\r\n <button css={dropdownOptionButton}>{noItemsMsg.value}</button>\r\n </DropdownOption>,\r\n );\r\n }\r\n\r\n return (\r\n <DropdownOptionsBase\r\n role=\"listbox\"\r\n tabindex=\"-1\"\r\n id={id}\r\n aria-labelledby={ariaLabelledby}>\r\n {options}\r\n </DropdownOptionsBase>\r\n );\r\n};\r\n\r\nexport default DropdownOptions;\r\n","import React, { useState, useEffect, useRef, useId, ReactNode } from 'react';\r\nimport styled from '@emotion/styled';\r\nimport { useTheme } from '@emotion/react';\r\nimport { useClickOutside } from '@ssa-ui-kit/hooks';\r\n\r\nimport DropdownToggle from '@components/DropdownToggle';\r\nimport DropdownArrow from '@components/DropdownArrow';\r\nimport DropdownOptions from '@components/DropdownOptions';\r\nimport DropdownContext from '@components/Dropdown/Dropdown.context';\r\nimport { IDropdownOption } from '@components/DropdownOptions/types';\r\n\r\nimport { DropdownContextType, IDropdownProps } from './types';\r\n\r\n/**\r\n * The structure of the component:\r\n *\r\n * Dropdown\r\n * DropdownToggle\r\n * DropdownOptions\r\n * DropdownOption\r\n *\r\n * Aria attributes are set according to\r\n * https://www.w3.org/WAI/ARIA/apg/example-index/combobox/combobox-select-only.html\r\n **/\r\n\r\nconst DropdownBase = styled.div`\r\n display: inline-block;\r\n position: relative;\r\n`;\r\n\r\nconst Dropdown = <T extends IDropdownOption>({\r\n selectedItem,\r\n isDisabled,\r\n isOpen: isInitOpen,\r\n children,\r\n onChange: handleChange,\r\n className,\r\n}: IDropdownProps<T>) => {\r\n const theme = useTheme();\r\n const dropdownRef = useRef<HTMLDivElement>(null);\r\n\r\n const placeholder = 'Select something';\r\n const dropdownId = useId();\r\n const options: T[] = [];\r\n\r\n const [isFocused, setIsFocused] = useState(false);\r\n const [isOpen, setIsOpen] = useState(isInitOpen || false);\r\n const [colors, setColors] = useState<Array<string | undefined>>([]);\r\n const [activeItem, setActiveItem] = useState<T | undefined>(selectedItem);\r\n\r\n const onChange: DropdownContextType['onChange'] = (item) => {\r\n const innerItem = options.filter((option) => option.value === item)[0];\r\n\r\n setIsOpen(false);\r\n\r\n if (isDisabled || !item) {\r\n return;\r\n }\r\n\r\n if (innerItem.value === activeItem?.value) {\r\n return;\r\n }\r\n\r\n setActiveItem(innerItem);\r\n handleChange && handleChange(innerItem);\r\n };\r\n\r\n useClickOutside(dropdownRef, () => isOpen && setIsOpen(false));\r\n\r\n useEffect(() => {\r\n if (isDisabled) {\r\n setColors([theme.colors.greyDarker60, theme.colors.grey20]);\r\n } else if (isOpen) {\r\n setColors([theme.colors.white, theme.colors.white60]);\r\n } else if (isFocused) {\r\n setColors([theme.colors.greyDarker, theme.colors.greyDarker60]);\r\n }\r\n }, [isOpen, isDisabled, isFocused]);\r\n\r\n useEffect(() => {\r\n if (isDisabled && isOpen) {\r\n setIsOpen(false);\r\n }\r\n }, [isDisabled]);\r\n\r\n const childrenArray = React.Children.toArray(children).filter(Boolean);\r\n\r\n const items = (childrenArray as React.ReactElement[]).map((child, index) => {\r\n options.push(child.props);\r\n\r\n return React.cloneElement(child, {\r\n index,\r\n onClick: onChange.bind(this),\r\n ...child.props,\r\n });\r\n });\r\n\r\n const contextValue: DropdownContextType = React.useMemo(\r\n () => ({ onChange, activeItem }),\r\n [onChange, activeItem],\r\n );\r\n\r\n const value = (\r\n activeItem\r\n ? activeItem.label ||\r\n activeItem.children ||\r\n activeItem.value ||\r\n activeItem ||\r\n placeholder\r\n : placeholder\r\n ) as ReactNode;\r\n\r\n return (\r\n <DropdownContext.Provider value={contextValue}>\r\n <DropdownBase ref={dropdownRef} data-testid=\"dropdown\">\r\n <DropdownToggle\r\n className={className}\r\n isOpen={isOpen}\r\n disabled={isDisabled}\r\n onClick={setIsOpen.bind(null, !isOpen)}\r\n onFocus={setIsFocused.bind(null, true)}\r\n colors={colors}\r\n ariaLabelledby={`dropdown-label-${dropdownId}`}\r\n ariaControls={`dropdown-popup-${dropdownId}`}>\r\n {value}\r\n <DropdownArrow isUp={isOpen} />\r\n </DropdownToggle>\r\n\r\n {isOpen ? <DropdownOptions>{items}</DropdownOptions> : null}\r\n </DropdownBase>\r\n </DropdownContext.Provider>\r\n );\r\n};\r\n\r\nexport default Dropdown;\r\n","import styled from '@emotion/styled';\r\nimport { CommonProps } from '@global-types/emotion';\r\n\r\nconst DropdownBase = styled.div<CommonProps>`\r\n display: inline-block;\r\n position: relative;\r\n min-width: 180px;\r\n`;\r\n\r\nexport default DropdownBase;\r\n","function getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null ? void 0 : (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n // Browsers without `ShadowRoot` support.\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n const webkit = isWebKit();\n const css = getComputedStyle(element);\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else {\n currentNode = getParentNode(currentNode);\n }\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor));\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isWebKit };\n","import { isShadowRoot, isHTMLElement } from '@floating-ui/utils/dom';\n\nfunction activeElement(doc) {\n let activeElement = doc.activeElement;\n while (((_activeElement = activeElement) == null ? void 0 : (_activeElement$shadow = _activeElement.shadowRoot) == null ? void 0 : _activeElement$shadow.activeElement) != null) {\n var _activeElement, _activeElement$shadow;\n activeElement = activeElement.shadowRoot.activeElement;\n }\n return activeElement;\n}\nfunction contains(parent, child) {\n if (!parent || !child) {\n return false;\n }\n const rootNode = child.getRootNode && child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n\n // then fallback to custom implementation with Shadow DOM support\n if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n while (next) {\n if (parent === next) {\n return true;\n }\n // @ts-ignore\n next = next.parentNode || next.host;\n }\n }\n\n // Give up, the result is false\n return false;\n}\n// Avoid Chrome DevTools blue warning.\nfunction getPlatform() {\n const uaData = navigator.userAgentData;\n if (uaData != null && uaData.platform) {\n return uaData.platform;\n }\n return navigator.platform;\n}\nfunction getUserAgent() {\n const uaData = navigator.userAgentData;\n if (uaData && Array.isArray(uaData.brands)) {\n return uaData.brands.map(_ref => {\n let {\n brand,\n version\n } = _ref;\n return brand + \"/\" + version;\n }).join(' ');\n }\n return navigator.userAgent;\n}\n\n// License: https://github.com/adobe/react-spectrum/blob/b35d5c02fe900badccd0cf1a8f23bb593419f238/packages/@react-aria/utils/src/isVirtualEvent.ts\nfunction isVirtualClick(event) {\n if (event.mozInputSource === 0 && event.isTrusted) {\n return true;\n }\n const androidRe = /Android/i;\n if ((androidRe.test(getPlatform()) || androidRe.test(getUserAgent())) && event.pointerType) {\n return event.type === 'click' && event.buttons === 1;\n }\n return event.detail === 0 && !event.pointerType;\n}\nfunction isVirtualPointerEvent(event) {\n return event.width === 0 && event.height === 0 || event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType !== 'mouse' ||\n // iOS VoiceOver returns 0.333• for width/height.\n event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0;\n}\nfunction isSafari() {\n // Chrome DevTools does not complain about navigator.vendor\n return /apple/i.test(navigator.vendor);\n}\nfunction isMac() {\n return getPlatform().toLowerCase().startsWith('mac') && !navigator.maxTouchPoints;\n}\nfunction isMouseLikePointerType(pointerType, strict) {\n // On some Linux machines with Chromium, mouse inputs return a `pointerType`\n // of \"pen\": https://github.com/floating-ui/floating-ui/issues/2015\n const values = ['mouse', 'pen'];\n if (!strict) {\n values.push('', undefined);\n }\n return values.includes(pointerType);\n}\nfunction isReactEvent(event) {\n return 'nativeEvent' in event;\n}\nfunction isRootElement(element) {\n return element.matches('html,body');\n}\nfunction getDocument(node) {\n return (node == null ? void 0 : node.ownerDocument) || document;\n}\nfunction isEventTargetWithin(event, node) {\n if (node == null) {\n return false;\n }\n if ('composedPath' in event) {\n return event.composedPath().includes(node);\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support composedPath, but browsers without shadow dom don't\n const e = event;\n return e.target != null && node.contains(e.target);\n}\nfunction getTarget(event) {\n if ('composedPath' in event) {\n return event.composedPath()[0];\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support\n // `composedPath()`, but browsers without shadow DOM don't.\n return event.target;\n}\nconst TYPEABLE_SELECTOR = \"input:not([type='hidden']):not([disabled]),\" + \"[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";\nfunction isTypeableElement(element) {\n return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\nfunction stopEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n}\n\nexport { TYPEABLE_SELECTOR, activeElement, contains, getDocument, getPlatform, getTarget, getUserAgent, isEventTargetWithin, isMac, isMouseLikePointerType, isReactEvent, isRootElement, isSafari, isTypeableElement, isVirtualClick, isVirtualPointerEvent, stopEvent };\n","const sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n return {\n ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain positioning strategy.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n continue;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n ...rects.floating,\n x,\n y\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. This stops `shift()` from taking action, but can\n // be worked around by calling it again after the `arrow()` if desired.\n const shouldAddOffset = getAlignment(placement) != null && center != offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? min$1 - center : max - center : 0;\n return {\n [axis]: coords[axis] - alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset + alignmentOffset\n }\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const side = getSide(placement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== 'none') {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$map$so;\n const placement = (_overflowsData$map$so = overflowsData.map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n const {\n x,\n y\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const overflowAvailableHeight = height - overflow[heightSide];\n const overflowAvailableWidth = width - overflow[widthSide];\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (isYAxis) {\n const maximumClippingWidth = width - overflow.left - overflow.right;\n availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n } else {\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","import { rectToClientRect, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { arrow, autoPlacement, detectOverflow, flip, hide, inline, limitShift, offset, shift, size } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getDocumentElement, getNodeName, isOverflowElement, getNodeScroll, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentIFrame = win.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== win) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentIFrame = getWindow(currentIFrame).frameElement;\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n if (offsetParent === documentElement) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\nfunction getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n return getCssDimensions(element);\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const window = getWindow(element);\n if (!isHTMLElement(element)) {\n return window;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n return offsetParent || getContainingBlock(element) || window;\n}\n\nconst getElementRects = async function (_ref) {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n return {\n reference: getRectRelativeToOffsetParent(reference, await getOffsetParentFn(floating), strategy),\n floating: {\n x: 0,\n y: 0,\n ...(await getDimensionsFn(floating))\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n clearTimeout(timeoutId);\n io && io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 100);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n resizeObserver && resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo && cleanupIo();\n resizeObserver && resizeObserver.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain CSS positioning\n * strategy.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { autoUpdate, computePosition, platform };\n","import { arrow as arrow$1, computePosition } from '@floating-ui/dom';\nexport { autoPlacement, autoUpdate, computePosition, detectOverflow, flip, getOverflowAncestors, hide, inline, limitShift, offset, platform, shift, size } from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect, useEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => {\n function isRef(value) {\n return {}.hasOwnProperty.call(value, 'current');\n }\n return {\n name: 'arrow',\n options,\n fn(state) {\n const {\n element,\n padding\n } = typeof options === 'function' ? options(state) : options;\n if (element && isRef(element)) {\n if (element.current != null) {\n return arrow$1({\n element: element.current,\n padding\n }).fn(state);\n }\n return {};\n } else if (element) {\n return arrow$1({\n element,\n padding\n }).fn(state);\n }\n return {};\n }\n };\n};\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (typeof a === 'function' && a.toString() === b.toString()) {\n return true;\n }\n let length, i, keys;\n if (a && b && typeof a == 'object') {\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) {\n return false;\n }\n for (i = length; i-- !== 0;) {\n if (!{}.hasOwnProperty.call(b, keys[i])) {\n return false;\n }\n }\n for (i = length; i-- !== 0;) {\n const key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n continue;\n }\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n return a !== a && b !== b;\n}\n\nfunction getDPR(element) {\n if (typeof window === 'undefined') {\n return 1;\n }\n const win = element.ownerDocument.defaultView || window;\n return win.devicePixelRatio || 1;\n}\n\nfunction roundByDPR(element, value) {\n const dpr = getDPR(element);\n return Math.round(value * dpr) / dpr;\n}\n\nfunction useLatestRef(value) {\n const ref = React.useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\n/**\n * Provides data to position a floating element.\n * @see https://floating-ui.com/docs/react\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform,\n elements: {\n reference: externalReference,\n floating: externalFloating\n } = {},\n transform = true,\n whileElementsMounted,\n open\n } = options;\n const [data, setData] = React.useState({\n x: 0,\n y: 0,\n strategy,\n placement,\n middlewareData: {},\n isPositioned: false\n });\n const [latestMiddleware, setLatestMiddleware] = React.useState(middleware);\n if (!deepEqual(latestMiddleware, middleware)) {\n setLatestMiddleware(middleware);\n }\n const [_reference, _setReference] = React.useState(null);\n const [_floating, _setFloating] = React.useState(null);\n const setReference = React.useCallback(node => {\n if (node != referenceRef.current) {\n referenceRef.current = node;\n _setReference(node);\n }\n }, [_setReference]);\n const setFloating = React.useCallback(node => {\n if (node !== floatingRef.current) {\n floatingRef.current = node;\n _setFloating(node);\n }\n }, [_setFloating]);\n const referenceEl = externalReference || _reference;\n const floatingEl = externalFloating || _floating;\n const referenceRef = React.useRef(null);\n const floatingRef = React.useRef(null);\n const dataRef = React.useRef(data);\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n const platformRef = useLatestRef(platform);\n const update = React.useCallback(() => {\n if (!referenceRef.current || !floatingRef.current) {\n return;\n }\n const config = {\n placement,\n strategy,\n middleware: latestMiddleware\n };\n if (platformRef.current) {\n config.platform = platformRef.current;\n }\n computePosition(referenceRef.current, floatingRef.current, config).then(data => {\n const fullData = {\n ...data,\n isPositioned: true\n };\n if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n dataRef.current = fullData;\n ReactDOM.flushSync(() => {\n setData(fullData);\n });\n }\n });\n }, [latestMiddleware, placement, strategy, platformRef]);\n index(() => {\n if (open === false && dataRef.current.isPositioned) {\n dataRef.current.isPositioned = false;\n setData(data => ({\n ...data,\n isPositioned: false\n }));\n }\n }, [open]);\n const isMountedRef = React.useRef(false);\n index(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n index(() => {\n if (referenceEl) referenceRef.current = referenceEl;\n if (floatingEl) floatingRef.current = floatingEl;\n if (referenceEl && floatingEl) {\n if (whileElementsMountedRef.current) {\n return whileElementsMountedRef.current(referenceEl, floatingEl, update);\n } else {\n update();\n }\n }\n }, [referenceEl, floatingEl, update, whileElementsMountedRef]);\n const refs = React.useMemo(() => ({\n reference: referenceRef,\n floating: floatingRef,\n setReference,\n setFloating\n }), [setReference, setFloating]);\n const elements = React.useMemo(() => ({\n reference: referenceEl,\n floating: floatingEl\n }), [referenceEl, floatingEl]);\n const floatingStyles = React.useMemo(() => {\n const initialStyles = {\n position: strategy,\n left: 0,\n top: 0\n };\n if (!elements.floating) {\n return initialStyles;\n }\n const x = roundByDPR(elements.floating, data.x);\n const y = roundByDPR(elements.floating, data.y);\n if (transform) {\n return {\n ...initialStyles,\n transform: \"translate(\" + x + \"px, \" + y + \"px)\",\n ...(getDPR(elements.floating) >= 1.5 && {\n willChange: 'transform'\n })\n };\n }\n return {\n position: strategy,\n left: x,\n top: y\n };\n }, [strategy, transform, elements.floating, data.x, data.y]);\n return React.useMemo(() => ({\n ...data,\n update,\n refs,\n elements,\n floatingStyles\n }), [data, update, refs, elements, floatingStyles]);\n}\n\nexport { arrow, useFloating };\n","/*!\n* tabbable 6.1.2\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\n// NOTE: separate `:not()` selectors has broader browser support than the newer\n// `:not([inert], [inert] *)` (Feb 2023)\n// CAREFUL: JSDom does not support `:not([inert] *)` as a selector; using it causes\n// the entire query to fail, resulting in no nodes found, which will break a lot\n// of things... so we have to rely on JS to identify nodes inside an inert container\nvar candidateSelectors = ['input:not([inert])', 'select:not([inert])', 'textarea:not([inert])', 'a[href]:not([inert])', 'button:not([inert])', '[tabindex]:not(slot):not([inert])', 'audio[controls]:not([inert])', 'video[controls]:not([inert])', '[contenteditable]:not([contenteditable=\"false\"]):not([inert])', 'details>summary:first-of-type:not([inert])', 'details:not([inert])'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar NoElement = typeof Element === 'undefined';\nvar matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {\n var _element$getRootNode;\n return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element);\n} : function (element) {\n return element === null || element === void 0 ? void 0 : element.ownerDocument;\n};\n\n/**\n * Determines if a node is inert or in an inert ancestor.\n * @param {Element} [node]\n * @param {boolean} [lookUp] If true and `node` is not inert, looks up at ancestors to\n * see if any of them are inert. If false, only `node` itself is considered.\n * @returns {boolean} True if inert itself or by way of being in an inert ancestor.\n * False if `node` is falsy.\n */\nvar isInert = function isInert(node, lookUp) {\n var _node$getAttribute;\n if (lookUp === void 0) {\n lookUp = true;\n }\n // CAREFUL: JSDom does not support inert at all, so we can't use the `HTMLElement.inert`\n // JS API property; we have to check the attribute, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's an active element\n var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'inert');\n var inert = inertAtt === '' || inertAtt === 'true';\n\n // NOTE: this could also be handled with `node.matches('[inert], :is([inert] *)')`\n // if it weren't for `matches()` not being a function on shadow roots; the following\n // code works for any kind of node\n // CAREFUL: JSDom does not appear to support certain selectors like `:not([inert] *)`\n // so it likely would not support `:is([inert] *)` either...\n var result = inert || lookUp && node && isInert(node.parentNode); // recursive\n\n return result;\n};\n\n/**\n * Determines if a node's content is editable.\n * @param {Element} [node]\n * @returns True if it's content-editable; false if it's not or `node` is falsy.\n */\nvar isContentEditable = function isContentEditable(node) {\n var _node$getAttribute2;\n // CAREFUL: JSDom does not support the `HTMLElement.isContentEditable` API so we have\n // to use the attribute directly to check for this, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's a non-editable element\n var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, 'contenteditable');\n return attValue === '' || attValue === 'true';\n};\n\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n // even if `includeContainer=false`, we still have to check it for inertness because\n // if it's inert, all its children are inert\n if (isInert(el)) {\n return [];\n }\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n};\n\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidateScope\n * @property {Element} scopeParent contains inner candidates\n * @property {Element[]} candidates list of candidates found in the scope parent\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidateScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.<Element|CandidateScope>}\n */\nvar getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n if (isInert(element, false)) {\n // no need to look up since we're drilling down\n // anything inside this container will also be inert\n continue;\n }\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = getCandidatesIteratively(content, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates\n });\n }\n } else {\n // check candidate element\n var validCandidate = matches.call(element, candidateSelector);\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n }\n\n // iterate over shadow content if possible\n var shadowRoot = element.shadowRoot ||\n // check for an undisclosed shadow\n typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);\n\n // no inert look up because we're already drilling down and checking for inertness\n // on the way down, so all containers to this root node should have already been\n // vetted as non-inert\n var validShadowRoot = !isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element));\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n return candidates;\n};\nvar getTabindex = function getTabindex(node, isScope) {\n if (node.tabIndex < 0) {\n // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n // Also browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n //\n // isScope is positive for custom element with shadow root or slot that by default\n // have tabIndex -1, but need to be sorted by document order in order for their\n // content to be inserted in the correct position\n if ((isScope || /^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && isNaN(parseInt(node.getAttribute('tabindex'), 10))) {\n return 0;\n }\n }\n return node.tabIndex;\n};\nvar sortOrderedTabbables = function sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n};\nvar isInput = function isInput(node) {\n return node.tagName === 'INPUT';\n};\nvar isHiddenInput = function isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n};\nvar isDetailsWithSummary = function isDetailsWithSummary(node) {\n var r = node.tagName === 'DETAILS' && Array.prototype.slice.apply(node.children).some(function (child) {\n return child.tagName === 'SUMMARY';\n });\n return r;\n};\nvar getCheckedRadio = function getCheckedRadio(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\nvar isTabbableRadio = function isTabbableRadio(node) {\n if (!node.name) {\n return true;\n }\n var radioScope = node.form || getRootNode(node);\n var queryRadios = function queryRadios(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n var radioSet;\n if (typeof window !== 'undefined' && typeof window.CSS !== 'undefined' && typeof window.CSS.escape === 'function') {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s', err.message);\n return false;\n }\n }\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\nvar isRadio = function isRadio(node) {\n return isInput(node) && node.type === 'radio';\n};\nvar isNonTabbableRadio = function isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\n\n// determines if a node is ultimately attached to the window's document\nvar isNodeAttached = function isNodeAttached(node) {\n var _nodeRoot;\n // The root node is the shadow root if the node is in a shadow DOM; some document otherwise\n // (but NOT _the_ document; see second 'If' comment below for more).\n // If rootNode is shadow root, it'll have a host, which is the element to which the shadow\n // is attached, and the one we need to check if it's in the document or not (because the\n // shadow, and all nodes it contains, is never considered in the document since shadows\n // behave like self-contained DOMs; but if the shadow's HOST, which is part of the document,\n // is hidden, or is not in the document itself but is detached, it will affect the shadow's\n // visibility, including all the nodes it contains). The host could be any normal node,\n // or a custom element (i.e. web component). Either way, that's the one that is considered\n // part of the document, not the shadow root, nor any of its children (i.e. the node being\n // tested).\n // To further complicate things, we have to look all the way up until we find a shadow HOST\n // that is attached (or find none) because the node might be in nested shadows...\n // If rootNode is not a shadow root, it won't have a host, and so rootNode should be the\n // document (per the docs) and while it's a Document-type object, that document does not\n // appear to be the same as the node's `ownerDocument` for some reason, so it's safer\n // to ignore the rootNode at this point, and use `node.ownerDocument`. Otherwise,\n // using `rootNode.contains(node)` will _always_ be true we'll get false-positives when\n // node is actually detached.\n // NOTE: If `nodeRootHost` or `node` happens to be the `document` itself (which is possible\n // if a tabbable/focusable node was quickly added to the DOM, focused, and then removed\n // from the DOM as in https://github.com/focus-trap/focus-trap-react/issues/905), then\n // `ownerDocument` will be `null`, hence the optional chaining on it.\n var nodeRoot = node && getRootNode(node);\n var nodeRootHost = (_nodeRoot = nodeRoot) === null || _nodeRoot === void 0 ? void 0 : _nodeRoot.host;\n\n // in some cases, a detached node will return itself as the root instead of a document or\n // shadow root object, in which case, we shouldn't try to look further up the host chain\n var attached = false;\n if (nodeRoot && nodeRoot !== node) {\n var _nodeRootHost, _nodeRootHost$ownerDo, _node$ownerDocument;\n attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && (_nodeRootHost$ownerDo = _nodeRootHost.ownerDocument) !== null && _nodeRootHost$ownerDo !== void 0 && _nodeRootHost$ownerDo.contains(nodeRootHost) || node !== null && node !== void 0 && (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 && _node$ownerDocument.contains(node));\n while (!attached && nodeRootHost) {\n var _nodeRoot2, _nodeRootHost2, _nodeRootHost2$ownerD;\n // since it's not attached and we have a root host, the node MUST be in a nested shadow DOM,\n // which means we need to get the host's host and check if that parent host is contained\n // in (i.e. attached to) the document\n nodeRoot = getRootNode(nodeRootHost);\n nodeRootHost = (_nodeRoot2 = nodeRoot) === null || _nodeRoot2 === void 0 ? void 0 : _nodeRoot2.host;\n attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && (_nodeRootHost2$ownerD = _nodeRootHost2.ownerDocument) !== null && _nodeRootHost2$ownerD !== void 0 && _nodeRootHost2$ownerD.contains(nodeRootHost));\n }\n }\n return attached;\n};\nvar isZeroArea = function isZeroArea(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n width = _node$getBoundingClie.width,\n height = _node$getBoundingClie.height;\n return width === 0 && height === 0;\n};\nvar isHidden = function isHidden(node, _ref) {\n var displayCheck = _ref.displayCheck,\n getShadowRoot = _ref.getShadowRoot;\n // NOTE: visibility will be `undefined` if node is detached from the document\n // (see notes about this further down), which means we will consider it visible\n // (this is legacy behavior from a very long way back)\n // NOTE: we check this regardless of `displayCheck=\"none\"` because this is a\n // _visibility_ check, not a _display_ check\n if (getComputedStyle(node).visibility === 'hidden') {\n return true;\n }\n var isDirectSummary = matches.call(node, 'details>summary:first-of-type');\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {\n return true;\n }\n if (!displayCheck || displayCheck === 'full' || displayCheck === 'legacy-full') {\n if (typeof getShadowRoot === 'function') {\n // figure out if we should consider the node to be in an undisclosed shadow and use the\n // 'non-zero-area' fallback\n var originalNode = node;\n while (node) {\n var parentElement = node.parentElement;\n var rootNode = getRootNode(node);\n if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true // check if there's an undisclosed shadow\n ) {\n // node has an undisclosed shadow which means we can only treat it as a black box, so we\n // fall back to a non-zero-area test\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n // iterate up slot\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n // cross shadow boundary\n node = rootNode.host;\n } else {\n // iterate up normal dom\n node = parentElement;\n }\n }\n node = originalNode;\n }\n // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support\n // (i.e. it does not also presume that all nodes might have undisclosed shadows); or\n // it might be a falsy value, which means shadow DOM support is disabled\n\n // Since we didn't find it sitting in an undisclosed shadow (or shadows are disabled)\n // now we can just test to see if it would normally be visible or not, provided it's\n // attached to the main document.\n // NOTE: We must consider case where node is inside a shadow DOM and given directly to\n // `isTabbable()` or `isFocusable()` -- regardless of `getShadowRoot` option setting.\n\n if (isNodeAttached(node)) {\n // this works wherever the node is: if there's at least one client rect, it's\n // somehow displayed; it also covers the CSS 'display: contents' case where the\n // node itself is hidden in place of its contents; and there's no need to search\n // up the hierarchy either\n return !node.getClientRects().length;\n }\n\n // Else, the node isn't attached to the document, which means the `getClientRects()`\n // API will __always__ return zero rects (this can happen, for example, if React\n // is used to render nodes onto a detached tree, as confirmed in this thread:\n // https://github.com/facebook/react/issues/9117#issuecomment-284228870)\n //\n // It also means that even window.getComputedStyle(node).display will return `undefined`\n // because styles are only computed for nodes that are in the document.\n //\n // NOTE: THIS HAS BEEN THE CASE FOR YEARS. It is not new, nor is it caused by tabbable\n // somehow. Though it was never stated officially, anyone who has ever used tabbable\n // APIs on nodes in detached containers has actually implicitly used tabbable in what\n // was later (as of v5.2.0 on Apr 9, 2021) called `displayCheck=\"none\"` mode -- essentially\n // considering __everything__ to be visible because of the innability to determine styles.\n //\n // v6.0.0: As of this major release, the default 'full' option __no longer treats detached\n // nodes as visible with the 'none' fallback.__\n if (displayCheck !== 'legacy-full') {\n return true; // hidden\n }\n // else, fallback to 'none' mode and consider the node visible\n } else if (displayCheck === 'non-zero-area') {\n // NOTE: Even though this tests that the node's client rect is non-zero to determine\n // whether it's displayed, and that a detached node will __always__ have a zero-area\n // client rect, we don't special-case for whether the node is attached or not. In\n // this mode, we do want to consider nodes that have a zero area to be hidden at all\n // times, and that includes attached or not.\n return isZeroArea(node);\n }\n\n // visible, as far as we can tell, or per current `displayCheck=none` mode, we assume\n // it's visible\n return false;\n};\n\n// form fields (nested) inside a disabled fieldset are not focusable/tabbable\n// unless they are in the _first_ <legend> element of the top-most disabled\n// fieldset\nvar isDisabledFromFieldset = function isDisabledFromFieldset(node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n var parentNode = node.parentElement;\n // check if `node` is contained in a disabled <fieldset>\n while (parentNode) {\n if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {\n // look for the first <legend> among the children of the disabled <fieldset>\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i);\n // when the first <legend> (in document order) is found\n if (child.tagName === 'LEGEND') {\n // if its parent <fieldset> is not nested in another disabled <fieldset>,\n // return whether `node` is a descendant of its first <legend>\n return matches.call(parentNode, 'fieldset[disabled] *') ? true : !child.contains(node);\n }\n }\n // the disabled <fieldset> containing `node` has no <legend>\n return true;\n }\n parentNode = parentNode.parentElement;\n }\n }\n\n // else, node's tabbable/focusable state should not be affected by a fieldset's\n // enabled/disabled state\n return false;\n};\nvar isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {\n if (node.disabled ||\n // we must do an inert look up to filter out any elements inside an inert ancestor\n // because we're limited in the type of selectors we can use in JSDom (see related\n // note related to `candidateSelectors`)\n isInert(node) || isHiddenInput(node) || isHidden(node, options) ||\n // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n return true;\n};\nvar isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {\n if (isNonTabbableRadio(node) || getTabindex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n return true;\n};\nvar isValidShadowRootTabbable = function isValidShadowRootTabbable(shadowHostNode) {\n var tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n }\n // If a custom element has an explicit negative tabindex,\n // browsers will not allow tab targeting said element's children.\n return false;\n};\n\n/**\n * @param {Array.<Element|CandidateScope>} candidates\n * @returns Element[]\n */\nvar sortByOrder = function sortByOrder(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function (item, i) {\n var isScope = !!item.scopeParent;\n var element = isScope ? item.scopeParent : item;\n var candidateTabindex = getTabindex(element, isScope);\n var elements = isScope ? sortByOrder(item.candidates) : element;\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item: item,\n isScope: isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function (acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n};\nvar tabbable = function tabbable(el, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isValidShadowRootTabbable\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n return sortByOrder(candidates);\n};\nvar focusable = function focusable(el, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n return candidates;\n};\nvar isTabbable = function isTabbable(node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorTabbable(options, node);\n};\nvar focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe').join(',');\nvar isFocusable = function isFocusable(node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\nexport { focusable, isFocusable, isTabbable, tabbable };\n//# sourceMappingURL=index.esm.js.map\n","import * as React from 'react';\nimport { useLayoutEffect, useEffect, useRef } from 'react';\nimport { floor } from '@floating-ui/utils';\nimport { stopEvent, getDocument, isMouseLikePointerType, contains, activeElement, isSafari, isTypeableElement, getTarget, getPlatform, isReactEvent, isRootElement, isEventTargetWithin, isVirtualClick, isVirtualPointerEvent, isMac, getUserAgent } from '@floating-ui/utils/react';\nimport { platform, getOverflowAncestors, useFloating as useFloating$1, offset, detectOverflow } from '@floating-ui/react-dom';\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, getOverflowAncestors, hide, inline, limitShift, offset, platform, shift, size } from '@floating-ui/react-dom';\nimport { isElement, isHTMLElement, getWindow, isLastTraversableNode, getParentNode, getComputedStyle } from '@floating-ui/utils/dom';\nimport { tabbable } from 'tabbable';\nimport { createPortal, flushSync } from 'react-dom';\n\n/**\n * Merges an array of refs into a single memoized callback ref or `null`.\n * @see https://floating-ui.com/docs/useMergeRefs\n */\nfunction useMergeRefs(refs) {\n return React.useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null;\n }\n return value => {\n refs.forEach(ref => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref != null) {\n ref.current = value;\n }\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}\n\nconst ARROW_UP = 'ArrowUp';\nconst ARROW_DOWN = 'ArrowDown';\nconst ARROW_LEFT = 'ArrowLeft';\nconst ARROW_RIGHT = 'ArrowRight';\nfunction isDifferentRow(index, cols, prevRow) {\n return Math.floor(index / cols) !== prevRow;\n}\nfunction isIndexOutOfBounds(listRef, index) {\n return index < 0 || index >= listRef.current.length;\n}\nfunction getMinIndex(listRef, disabledIndices) {\n return findNonDisabledIndex(listRef, {\n disabledIndices\n });\n}\nfunction getMaxIndex(listRef, disabledIndices) {\n return findNonDisabledIndex(listRef, {\n decrement: true,\n startingIndex: listRef.current.length,\n disabledIndices\n });\n}\nfunction findNonDisabledIndex(listRef, _temp) {\n let {\n startingIndex = -1,\n decrement = false,\n disabledIndices,\n amount = 1\n } = _temp === void 0 ? {} : _temp;\n const list = listRef.current;\n let index = startingIndex;\n do {\n var _list$index, _list$index2;\n index = index + (decrement ? -amount : amount);\n } while (index >= 0 && index <= list.length - 1 && (disabledIndices ? disabledIndices.includes(index) : list[index] == null || ((_list$index = list[index]) == null ? void 0 : _list$index.hasAttribute('disabled')) || ((_list$index2 = list[index]) == null ? void 0 : _list$index2.getAttribute('aria-disabled')) === 'true'));\n return index;\n}\nfunction getGridNavigatedIndex(elementsRef, _ref) {\n let {\n event,\n orientation,\n loop,\n cols,\n disabledIndices,\n minIndex,\n maxIndex,\n prevIndex,\n stopEvent: stop = false\n } = _ref;\n let nextIndex = prevIndex;\n if (event.key === ARROW_UP) {\n stop && stopEvent(event);\n if (prevIndex === -1) {\n nextIndex = maxIndex;\n } else {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: nextIndex,\n amount: cols,\n decrement: true,\n disabledIndices\n });\n if (loop && (prevIndex - cols < minIndex || nextIndex < 0)) {\n const col = prevIndex % cols;\n const maxCol = maxIndex % cols;\n const offset = maxIndex - (maxCol - col);\n if (maxCol === col) {\n nextIndex = maxIndex;\n } else {\n nextIndex = maxCol > col ? offset : offset - cols;\n }\n }\n }\n if (isIndexOutOfBounds(elementsRef, nextIndex)) {\n nextIndex = prevIndex;\n }\n }\n if (event.key === ARROW_DOWN) {\n stop && stopEvent(event);\n if (prevIndex === -1) {\n nextIndex = minIndex;\n } else {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex,\n amount: cols,\n disabledIndices\n });\n if (loop && prevIndex + cols > maxIndex) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex % cols - cols,\n amount: cols,\n disabledIndices\n });\n }\n }\n if (isIndexOutOfBounds(elementsRef, nextIndex)) {\n nextIndex = prevIndex;\n }\n }\n\n // Remains on the same row/column.\n if (orientation === 'both') {\n const prevRow = floor(prevIndex / cols);\n if (event.key === ARROW_RIGHT) {\n stop && stopEvent(event);\n if (prevIndex % cols !== cols - 1) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex,\n disabledIndices\n });\n if (loop && isDifferentRow(nextIndex, cols, prevRow)) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n } else if (loop) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n if (isDifferentRow(nextIndex, cols, prevRow)) {\n nextIndex = prevIndex;\n }\n }\n if (event.key === ARROW_LEFT) {\n stop && stopEvent(event);\n if (prevIndex % cols !== 0) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex,\n disabledIndices,\n decrement: true\n });\n if (loop && isDifferentRow(nextIndex, cols, prevRow)) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n } else if (loop) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n if (isDifferentRow(nextIndex, cols, prevRow)) {\n nextIndex = prevIndex;\n }\n }\n const lastRow = floor(maxIndex / cols) === prevRow;\n if (isIndexOutOfBounds(elementsRef, nextIndex)) {\n if (loop && lastRow) {\n nextIndex = event.key === ARROW_LEFT ? maxIndex : findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n } else {\n nextIndex = prevIndex;\n }\n }\n }\n return nextIndex;\n}\n\nlet rafId = 0;\nfunction enqueueFocus(el, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n preventScroll = false,\n cancelPrevious = true,\n sync = false\n } = options;\n cancelPrevious && cancelAnimationFrame(rafId);\n const exec = () => el == null ? void 0 : el.focus({\n preventScroll\n });\n if (sync) {\n exec();\n } else {\n rafId = requestAnimationFrame(exec);\n }\n}\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\nfunction sortByDocumentPosition(a, b) {\n const position = a.compareDocumentPosition(b);\n if (position & Node.DOCUMENT_POSITION_FOLLOWING || position & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return -1;\n }\n if (position & Node.DOCUMENT_POSITION_PRECEDING || position & Node.DOCUMENT_POSITION_CONTAINS) {\n return 1;\n }\n return 0;\n}\nfunction areMapsEqual(map1, map2) {\n if (map1.size !== map2.size) {\n return false;\n }\n for (const [key, value] of map1.entries()) {\n if (value !== map2.get(key)) {\n return false;\n }\n }\n return true;\n}\nconst FloatingListContext = /*#__PURE__*/React.createContext({\n register: () => {},\n unregister: () => {},\n map: /*#__PURE__*/new Map(),\n elementsRef: {\n current: []\n }\n});\n/**\n * Provides context for a list of items within the floating element.\n * @see https://floating-ui.com/docs/FloatingList\n */\nfunction FloatingList(_ref) {\n let {\n children,\n elementsRef,\n labelsRef\n } = _ref;\n const [map, setMap] = React.useState(() => new Map());\n const register = React.useCallback(node => {\n setMap(prevMap => new Map(prevMap).set(node, null));\n }, []);\n const unregister = React.useCallback(node => {\n setMap(prevMap => {\n const map = new Map(prevMap);\n map.delete(node);\n return map;\n });\n }, []);\n index(() => {\n const newMap = new Map(map);\n const nodes = Array.from(newMap.keys()).sort(sortByDocumentPosition);\n nodes.forEach((node, index) => {\n newMap.set(node, index);\n });\n if (!areMapsEqual(map, newMap)) {\n setMap(newMap);\n }\n }, [map]);\n return /*#__PURE__*/React.createElement(FloatingListContext.Provider, {\n value: React.useMemo(() => ({\n register,\n unregister,\n map,\n elementsRef,\n labelsRef\n }), [register, unregister, map, elementsRef, labelsRef])\n }, children);\n}\nfunction useListItem(_temp) {\n let {\n label\n } = _temp === void 0 ? {} : _temp;\n const [index$1, setIndex] = React.useState(null);\n const componentRef = React.useRef(null);\n const {\n register,\n unregister,\n map,\n elementsRef,\n labelsRef\n } = React.useContext(FloatingListContext);\n const ref = React.useCallback(node => {\n componentRef.current = node;\n if (index$1 !== null) {\n elementsRef.current[index$1] = node;\n if (labelsRef) {\n var _node$textContent;\n const isLabelDefined = label !== undefined;\n labelsRef.current[index$1] = isLabelDefined ? label : (_node$textContent = node == null ? void 0 : node.textContent) != null ? _node$textContent : null;\n }\n }\n }, [index$1, elementsRef, labelsRef, label]);\n index(() => {\n const node = componentRef.current;\n if (node) {\n register(node);\n return () => {\n unregister(node);\n };\n }\n }, [register, unregister]);\n index(() => {\n const index = componentRef.current ? map.get(componentRef.current) : null;\n if (index != null) {\n setIndex(index);\n }\n }, [map]);\n return React.useMemo(() => ({\n ref,\n index: index$1 == null ? -1 : index$1\n }), [index$1, ref]);\n}\n\nfunction renderJsx(render, computedProps) {\n if (typeof render === 'function') {\n return render(computedProps);\n } else if (render) {\n return /*#__PURE__*/React.cloneElement(render, computedProps);\n }\n return /*#__PURE__*/React.createElement(\"div\", computedProps);\n}\nconst CompositeContext = /*#__PURE__*/React.createContext({\n activeIndex: 0,\n setActiveIndex: () => {}\n});\nconst horizontalKeys = [ARROW_LEFT, ARROW_RIGHT];\nconst verticalKeys = [ARROW_UP, ARROW_DOWN];\nconst allKeys = [...horizontalKeys, ...verticalKeys];\nconst Composite = /*#__PURE__*/React.forwardRef(function Composite(_ref, forwardedRef) {\n let {\n render,\n orientation = 'both',\n loop = true,\n cols = 1,\n disabledIndices,\n ...props\n } = _ref;\n const [activeIndex, setActiveIndex] = React.useState(0);\n const elementsRef = React.useRef([]);\n const renderElementProps = render && typeof render !== 'function' ? render.props : {};\n const contextValue = React.useMemo(() => ({\n activeIndex,\n setActiveIndex\n }), [activeIndex]);\n const isGrid = cols > 1;\n function handleKeyDown(event) {\n if (!allKeys.includes(event.key)) return;\n const minIndex = getMinIndex(elementsRef, disabledIndices);\n const maxIndex = getMaxIndex(elementsRef, disabledIndices);\n const prevIndex = activeIndex;\n let nextIndex = activeIndex;\n if (isGrid) {\n nextIndex = getGridNavigatedIndex(elementsRef, {\n event,\n orientation,\n loop,\n cols,\n disabledIndices,\n minIndex,\n maxIndex,\n prevIndex\n });\n }\n const toEndKeys = {\n horizontal: [ARROW_RIGHT],\n vertical: [ARROW_DOWN],\n both: [ARROW_RIGHT, ARROW_DOWN]\n }[orientation];\n const toStartKeys = {\n horizontal: [ARROW_LEFT],\n vertical: [ARROW_UP],\n both: [ARROW_LEFT, ARROW_UP]\n }[orientation];\n const preventedKeys = isGrid ? allKeys : {\n horizontal: horizontalKeys,\n vertical: verticalKeys,\n both: allKeys\n }[orientation];\n if (nextIndex === activeIndex && [...toEndKeys, ...toStartKeys].includes(event.key)) {\n if (loop && nextIndex === maxIndex && toEndKeys.includes(event.key)) {\n nextIndex = minIndex;\n } else if (loop && nextIndex === minIndex && toStartKeys.includes(event.key)) {\n nextIndex = maxIndex;\n } else {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: nextIndex,\n decrement: toStartKeys.includes(event.key),\n disabledIndices\n });\n }\n }\n if (nextIndex !== activeIndex && !isIndexOutOfBounds(elementsRef, nextIndex)) {\n event.stopPropagation();\n if (preventedKeys.includes(event.key)) {\n event.preventDefault();\n }\n setActiveIndex(nextIndex);\n\n // Wait for FocusManager `returnFocus` to execute.\n queueMicrotask(() => {\n enqueueFocus(elementsRef.current[nextIndex]);\n });\n }\n }\n const computedProps = {\n ...props,\n ...renderElementProps,\n ref: forwardedRef,\n 'aria-orientation': orientation === 'both' ? undefined : orientation,\n onKeyDown(e) {\n props.onKeyDown == null ? void 0 : props.onKeyDown(e);\n renderElementProps.onKeyDown == null ? void 0 : renderElementProps.onKeyDown(e);\n handleKeyDown(e);\n }\n };\n return /*#__PURE__*/React.createElement(CompositeContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(FloatingList, {\n elementsRef: elementsRef\n }, renderJsx(render, computedProps)));\n});\nconst CompositeItem = /*#__PURE__*/React.forwardRef(function CompositeItem(_ref2, forwardedRef) {\n let {\n render,\n ...props\n } = _ref2;\n const renderElementProps = render && typeof render !== 'function' ? render.props : {};\n const {\n activeIndex,\n setActiveIndex\n } = React.useContext(CompositeContext);\n const {\n ref,\n index\n } = useListItem();\n const mergedRef = useMergeRefs([ref, forwardedRef, renderElementProps.ref]);\n const isActive = activeIndex === index;\n const computedProps = {\n ...props,\n ...renderElementProps,\n ref: mergedRef,\n tabIndex: isActive ? 0 : -1,\n 'data-active': isActive ? '' : undefined,\n onFocus(e) {\n props.onFocus == null ? void 0 : props.onFocus(e);\n renderElementProps.onFocus == null ? void 0 : renderElementProps.onFocus(e);\n setActiveIndex(index);\n }\n };\n return renderJsx(render, computedProps);\n});\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nlet serverHandoffComplete = false;\nlet count = 0;\nconst genId = () => \"floating-ui-\" + count++;\nfunction useFloatingId() {\n const [id, setId] = React.useState(() => serverHandoffComplete ? genId() : undefined);\n index(() => {\n if (id == null) {\n setId(genId());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n React.useEffect(() => {\n if (!serverHandoffComplete) {\n serverHandoffComplete = true;\n }\n }, []);\n return id;\n}\n\n// `toString()` prevents bundlers from trying to `import { useId } from 'react'`\nconst useReactId = React[/*#__PURE__*/'useId'.toString()];\n\n/**\n * Uses React 18's built-in `useId()` when available, or falls back to a\n * slightly less performant (requiring a double render) implementation for\n * earlier React versions.\n * @see https://floating-ui.com/docs/useId\n */\nconst useId = useReactId || useFloatingId;\n\n/**\n * Renders a pointing arrow triangle.\n * @see https://floating-ui.com/docs/FloatingArrow\n */\nconst FloatingArrow = /*#__PURE__*/React.forwardRef(function FloatingArrow(_ref, ref) {\n let {\n context: {\n placement,\n elements: {\n floating\n },\n middlewareData: {\n arrow\n }\n },\n width = 14,\n height = 7,\n tipRadius = 0,\n strokeWidth = 0,\n staticOffset,\n stroke,\n d,\n style: {\n transform,\n ...restStyle\n } = {},\n ...rest\n } = _ref;\n if (process.env.NODE_ENV !== \"production\") {\n if (!ref) {\n console.warn('Floating UI: The `ref` prop is required for the `FloatingArrow`', 'component.');\n }\n }\n const clipPathId = useId();\n if (!floating) {\n return null;\n }\n\n // Strokes must be double the border width, this ensures the stroke's width\n // works as you'd expect.\n strokeWidth *= 2;\n const halfStrokeWidth = strokeWidth / 2;\n const svgX = width / 2 * (tipRadius / -8 + 1);\n const svgY = height / 2 * tipRadius / 4;\n const [side, alignment] = placement.split('-');\n const isRTL = platform.isRTL(floating);\n const isCustomShape = !!d;\n const isVerticalSide = side === 'top' || side === 'bottom';\n const yOffsetProp = staticOffset && alignment === 'end' ? 'bottom' : 'top';\n let xOffsetProp = staticOffset && alignment === 'end' ? 'right' : 'left';\n if (staticOffset && isRTL) {\n xOffsetProp = alignment === 'end' ? 'left' : 'right';\n }\n const arrowX = (arrow == null ? void 0 : arrow.x) != null ? staticOffset || arrow.x : '';\n const arrowY = (arrow == null ? void 0 : arrow.y) != null ? staticOffset || arrow.y : '';\n const dValue = d || 'M0,0' + (\" H\" + width) + (\" L\" + (width - svgX) + \",\" + (height - svgY)) + (\" Q\" + width / 2 + \",\" + height + \" \" + svgX + \",\" + (height - svgY)) + ' Z';\n const rotation = {\n top: isCustomShape ? 'rotate(180deg)' : '',\n left: isCustomShape ? 'rotate(90deg)' : 'rotate(-90deg)',\n bottom: isCustomShape ? '' : 'rotate(180deg)',\n right: isCustomShape ? 'rotate(-90deg)' : 'rotate(90deg)'\n }[side];\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, rest, {\n \"aria-hidden\": true,\n ref: ref,\n width: isCustomShape ? width : width + strokeWidth,\n height: width,\n viewBox: \"0 0 \" + width + \" \" + (height > width ? height : width),\n style: {\n position: 'absolute',\n pointerEvents: 'none',\n [xOffsetProp]: arrowX,\n [yOffsetProp]: arrowY,\n [side]: isVerticalSide || isCustomShape ? '100%' : \"calc(100% - \" + strokeWidth / 2 + \"px)\",\n transform: \"\" + rotation + (transform != null ? transform : ''),\n ...restStyle\n }\n }), strokeWidth > 0 && /*#__PURE__*/React.createElement(\"path\", {\n clipPath: \"url(#\" + clipPathId + \")\",\n fill: \"none\",\n stroke: stroke\n // Account for the stroke on the fill path rendered below.\n ,\n strokeWidth: strokeWidth + (d ? 0 : 1),\n d: dValue\n }), /*#__PURE__*/React.createElement(\"path\", {\n stroke: strokeWidth && !d ? rest.fill : 'none',\n d: dValue\n }), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: clipPathId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: -halfStrokeWidth,\n y: halfStrokeWidth * (isCustomShape ? -1 : 1),\n width: width + strokeWidth,\n height: width\n })));\n});\n\nfunction createPubSub() {\n const map = new Map();\n return {\n emit(event, data) {\n var _map$get;\n (_map$get = map.get(event)) == null ? void 0 : _map$get.forEach(handler => handler(data));\n },\n on(event, listener) {\n map.set(event, [...(map.get(event) || []), listener]);\n },\n off(event, listener) {\n var _map$get2;\n map.set(event, ((_map$get2 = map.get(event)) == null ? void 0 : _map$get2.filter(l => l !== listener)) || []);\n }\n };\n}\n\nconst FloatingNodeContext = /*#__PURE__*/React.createContext(null);\nconst FloatingTreeContext = /*#__PURE__*/React.createContext(null);\nconst useFloatingParentNodeId = () => {\n var _React$useContext;\n return ((_React$useContext = React.useContext(FloatingNodeContext)) == null ? void 0 : _React$useContext.id) || null;\n};\nconst useFloatingTree = () => React.useContext(FloatingTreeContext);\n\n/**\n * Registers a node into the floating tree, returning its id.\n */\nfunction useFloatingNodeId(customParentId) {\n const id = useId();\n const tree = useFloatingTree();\n const reactParentId = useFloatingParentNodeId();\n const parentId = customParentId || reactParentId;\n index(() => {\n const node = {\n id,\n parentId\n };\n tree == null ? void 0 : tree.addNode(node);\n return () => {\n tree == null ? void 0 : tree.removeNode(node);\n };\n }, [tree, id, parentId]);\n return id;\n}\n\n/**\n * Provides parent node context for nested floating elements.\n * @see https://floating-ui.com/docs/FloatingTree\n */\nfunction FloatingNode(_ref) {\n let {\n children,\n id\n } = _ref;\n const parentId = useFloatingParentNodeId();\n return /*#__PURE__*/React.createElement(FloatingNodeContext.Provider, {\n value: React.useMemo(() => ({\n id,\n parentId\n }), [id, parentId])\n }, children);\n}\n\n/**\n * Provides context for nested floating elements when they are not children of\n * each other on the DOM (i.e. portalled to a common node, rather than their\n * respective parent).\n * @see https://floating-ui.com/docs/FloatingTree\n */\nfunction FloatingTree(_ref2) {\n let {\n children\n } = _ref2;\n const nodesRef = React.useRef([]);\n const addNode = React.useCallback(node => {\n nodesRef.current = [...nodesRef.current, node];\n }, []);\n const removeNode = React.useCallback(node => {\n nodesRef.current = nodesRef.current.filter(n => n !== node);\n }, []);\n const events = React.useState(() => createPubSub())[0];\n return /*#__PURE__*/React.createElement(FloatingTreeContext.Provider, {\n value: React.useMemo(() => ({\n nodesRef,\n addNode,\n removeNode,\n events\n }), [nodesRef, addNode, removeNode, events])\n }, children);\n}\n\nfunction createAttribute(name) {\n return \"data-floating-ui-\" + name;\n}\n\nfunction useLatestRef(value) {\n const ref = useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\nconst safePolygonIdentifier = /*#__PURE__*/createAttribute('safe-polygon');\nfunction getDelay(value, prop, pointerType) {\n if (pointerType && !isMouseLikePointerType(pointerType)) {\n return 0;\n }\n if (typeof value === 'number') {\n return value;\n }\n return value == null ? void 0 : value[prop];\n}\n/**\n * Opens the floating element while hovering over the reference element, like\n * CSS `:hover`.\n * @see https://floating-ui.com/docs/useHover\n */\nfunction useHover(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n dataRef,\n events,\n elements: {\n domReference,\n floating\n },\n refs\n } = context;\n const {\n enabled = true,\n delay = 0,\n handleClose = null,\n mouseOnly = false,\n restMs = 0,\n move = true\n } = props;\n const tree = useFloatingTree();\n const parentId = useFloatingParentNodeId();\n const handleCloseRef = useLatestRef(handleClose);\n const delayRef = useLatestRef(delay);\n const pointerTypeRef = React.useRef();\n const timeoutRef = React.useRef();\n const handlerRef = React.useRef();\n const restTimeoutRef = React.useRef();\n const blockMouseMoveRef = React.useRef(true);\n const performedPointerEventsMutationRef = React.useRef(false);\n const unbindMouseMoveRef = React.useRef(() => {});\n const isHoverOpen = React.useCallback(() => {\n var _dataRef$current$open;\n const type = (_dataRef$current$open = dataRef.current.openEvent) == null ? void 0 : _dataRef$current$open.type;\n return (type == null ? void 0 : type.includes('mouse')) && type !== 'mousedown';\n }, [dataRef]);\n\n // When dismissing before opening, clear the delay timeouts to cancel it\n // from showing.\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function onDismiss() {\n clearTimeout(timeoutRef.current);\n clearTimeout(restTimeoutRef.current);\n blockMouseMoveRef.current = true;\n }\n events.on('dismiss', onDismiss);\n return () => {\n events.off('dismiss', onDismiss);\n };\n }, [enabled, events]);\n React.useEffect(() => {\n if (!enabled || !handleCloseRef.current || !open) {\n return;\n }\n function onLeave(event) {\n if (isHoverOpen()) {\n onOpenChange(false, event);\n }\n }\n const html = getDocument(floating).documentElement;\n html.addEventListener('mouseleave', onLeave);\n return () => {\n html.removeEventListener('mouseleave', onLeave);\n };\n }, [floating, open, onOpenChange, enabled, handleCloseRef, dataRef, isHoverOpen]);\n const closeWithDelay = React.useCallback(function (event, runElseBranch) {\n if (runElseBranch === void 0) {\n runElseBranch = true;\n }\n const closeDelay = getDelay(delayRef.current, 'close', pointerTypeRef.current);\n if (closeDelay && !handlerRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = setTimeout(() => onOpenChange(false, event), closeDelay);\n } else if (runElseBranch) {\n clearTimeout(timeoutRef.current);\n onOpenChange(false, event);\n }\n }, [delayRef, onOpenChange]);\n const cleanupMouseMoveHandler = React.useCallback(() => {\n unbindMouseMoveRef.current();\n handlerRef.current = undefined;\n }, []);\n const clearPointerEvents = React.useCallback(() => {\n if (performedPointerEventsMutationRef.current) {\n const body = getDocument(refs.floating.current).body;\n body.style.pointerEvents = '';\n body.removeAttribute(safePolygonIdentifier);\n performedPointerEventsMutationRef.current = false;\n }\n }, [refs]);\n\n // Registering the mouse events on the reference directly to bypass React's\n // delegation system. If the cursor was on a disabled element and then entered\n // the reference (no gap), `mouseenter` doesn't fire in the delegation system.\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function isClickLikeOpenEvent() {\n return dataRef.current.openEvent ? ['click', 'mousedown'].includes(dataRef.current.openEvent.type) : false;\n }\n function onMouseEnter(event) {\n clearTimeout(timeoutRef.current);\n blockMouseMoveRef.current = false;\n if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current) || restMs > 0 && getDelay(delayRef.current, 'open') === 0) {\n return;\n }\n const openDelay = getDelay(delayRef.current, 'open', pointerTypeRef.current);\n if (openDelay) {\n timeoutRef.current = setTimeout(() => {\n onOpenChange(true, event);\n }, openDelay);\n } else {\n onOpenChange(true, event);\n }\n }\n function onMouseLeave(event) {\n if (isClickLikeOpenEvent()) {\n return;\n }\n unbindMouseMoveRef.current();\n const doc = getDocument(floating);\n clearTimeout(restTimeoutRef.current);\n if (handleCloseRef.current) {\n // Prevent clearing `onScrollMouseLeave` timeout.\n if (!open) {\n clearTimeout(timeoutRef.current);\n }\n handlerRef.current = handleCloseRef.current({\n ...context,\n tree,\n x: event.clientX,\n y: event.clientY,\n onClose() {\n clearPointerEvents();\n cleanupMouseMoveHandler();\n // Should the event expose that it was closed by `safePolygon`?\n closeWithDelay(event);\n }\n });\n const handler = handlerRef.current;\n doc.addEventListener('mousemove', handler);\n unbindMouseMoveRef.current = () => {\n doc.removeEventListener('mousemove', handler);\n };\n return;\n }\n\n // Allow interactivity without `safePolygon` on touch devices. With a\n // pointer, a short close delay is an alternative, so it should work\n // consistently.\n const shouldClose = pointerTypeRef.current === 'touch' ? !contains(floating, event.relatedTarget) : true;\n if (shouldClose) {\n closeWithDelay(event);\n }\n }\n\n // Ensure the floating element closes after scrolling even if the pointer\n // did not move.\n // https://github.com/floating-ui/floating-ui/discussions/1692\n function onScrollMouseLeave(event) {\n if (isClickLikeOpenEvent()) {\n return;\n }\n handleCloseRef.current == null ? void 0 : handleCloseRef.current({\n ...context,\n tree,\n x: event.clientX,\n y: event.clientY,\n onClose() {\n clearPointerEvents();\n cleanupMouseMoveHandler();\n closeWithDelay(event);\n }\n })(event);\n }\n if (isElement(domReference)) {\n const ref = domReference;\n open && ref.addEventListener('mouseleave', onScrollMouseLeave);\n floating == null ? void 0 : floating.addEventListener('mouseleave', onScrollMouseLeave);\n move && ref.addEventListener('mousemove', onMouseEnter, {\n once: true\n });\n ref.addEventListener('mouseenter', onMouseEnter);\n ref.addEventListener('mouseleave', onMouseLeave);\n return () => {\n open && ref.removeEventListener('mouseleave', onScrollMouseLeave);\n floating == null ? void 0 : floating.removeEventListener('mouseleave', onScrollMouseLeave);\n move && ref.removeEventListener('mousemove', onMouseEnter);\n ref.removeEventListener('mouseenter', onMouseEnter);\n ref.removeEventListener('mouseleave', onMouseLeave);\n };\n }\n }, [domReference, floating, enabled, context, mouseOnly, restMs, move, closeWithDelay, cleanupMouseMoveHandler, clearPointerEvents, onOpenChange, open, tree, delayRef, handleCloseRef, dataRef]);\n\n // Block pointer-events of every element other than the reference and floating\n // while the floating element is open and has a `handleClose` handler. Also\n // handles nested floating elements.\n // https://github.com/floating-ui/floating-ui/issues/1722\n index(() => {\n var _handleCloseRef$curre;\n if (!enabled) {\n return;\n }\n if (open && (_handleCloseRef$curre = handleCloseRef.current) != null && _handleCloseRef$curre.__options.blockPointerEvents && isHoverOpen()) {\n const body = getDocument(floating).body;\n body.setAttribute(safePolygonIdentifier, '');\n body.style.pointerEvents = 'none';\n performedPointerEventsMutationRef.current = true;\n if (isElement(domReference) && floating) {\n var _tree$nodesRef$curren, _tree$nodesRef$curren2;\n const ref = domReference;\n const parentFloating = tree == null ? void 0 : (_tree$nodesRef$curren = tree.nodesRef.current.find(node => node.id === parentId)) == null ? void 0 : (_tree$nodesRef$curren2 = _tree$nodesRef$curren.context) == null ? void 0 : _tree$nodesRef$curren2.elements.floating;\n if (parentFloating) {\n parentFloating.style.pointerEvents = '';\n }\n ref.style.pointerEvents = 'auto';\n floating.style.pointerEvents = 'auto';\n return () => {\n ref.style.pointerEvents = '';\n floating.style.pointerEvents = '';\n };\n }\n }\n }, [enabled, open, parentId, floating, domReference, tree, handleCloseRef, dataRef, isHoverOpen]);\n index(() => {\n if (!open) {\n pointerTypeRef.current = undefined;\n cleanupMouseMoveHandler();\n clearPointerEvents();\n }\n }, [open, cleanupMouseMoveHandler, clearPointerEvents]);\n React.useEffect(() => {\n return () => {\n cleanupMouseMoveHandler();\n clearTimeout(timeoutRef.current);\n clearTimeout(restTimeoutRef.current);\n clearPointerEvents();\n };\n }, [enabled, domReference, cleanupMouseMoveHandler, clearPointerEvents]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n function setPointerRef(event) {\n pointerTypeRef.current = event.pointerType;\n }\n return {\n reference: {\n onPointerDown: setPointerRef,\n onPointerEnter: setPointerRef,\n onMouseMove(event) {\n if (open || restMs === 0) {\n return;\n }\n clearTimeout(restTimeoutRef.current);\n restTimeoutRef.current = setTimeout(() => {\n if (!blockMouseMoveRef.current) {\n onOpenChange(true, event.nativeEvent);\n }\n }, restMs);\n }\n },\n floating: {\n onMouseEnter() {\n clearTimeout(timeoutRef.current);\n },\n onMouseLeave(event) {\n events.emit('dismiss', {\n type: 'mouseLeave',\n data: {\n returnFocus: false\n }\n });\n closeWithDelay(event.nativeEvent, false);\n }\n }\n };\n }, [events, enabled, restMs, open, onOpenChange, closeWithDelay]);\n}\n\nconst FloatingDelayGroupContext = /*#__PURE__*/React.createContext({\n delay: 0,\n initialDelay: 0,\n timeoutMs: 0,\n currentId: null,\n setCurrentId: () => {},\n setState: () => {},\n isInstantPhase: false\n});\nconst useDelayGroupContext = () => React.useContext(FloatingDelayGroupContext);\n/**\n * Provides context for a group of floating elements that should share a\n * `delay`.\n * @see https://floating-ui.com/docs/FloatingDelayGroup\n */\nconst FloatingDelayGroup = _ref => {\n let {\n children,\n delay,\n timeoutMs = 0\n } = _ref;\n const [state, setState] = React.useReducer((prev, next) => ({\n ...prev,\n ...next\n }), {\n delay,\n timeoutMs,\n initialDelay: delay,\n currentId: null,\n isInstantPhase: false\n });\n const initialCurrentIdRef = React.useRef(null);\n const setCurrentId = React.useCallback(currentId => {\n setState({\n currentId\n });\n }, []);\n index(() => {\n if (state.currentId) {\n if (initialCurrentIdRef.current === null) {\n initialCurrentIdRef.current = state.currentId;\n } else {\n setState({\n isInstantPhase: true\n });\n }\n } else {\n setState({\n isInstantPhase: false\n });\n initialCurrentIdRef.current = null;\n }\n }, [state.currentId]);\n return /*#__PURE__*/React.createElement(FloatingDelayGroupContext.Provider, {\n value: React.useMemo(() => ({\n ...state,\n setState,\n setCurrentId\n }), [state, setState, setCurrentId])\n }, children);\n};\nconst useDelayGroup = (_ref2, _ref3) => {\n let {\n open,\n onOpenChange\n } = _ref2;\n let {\n id\n } = _ref3;\n const {\n currentId,\n setCurrentId,\n initialDelay,\n setState,\n timeoutMs\n } = useDelayGroupContext();\n index(() => {\n if (currentId) {\n setState({\n delay: {\n open: 1,\n close: getDelay(initialDelay, 'close')\n }\n });\n if (currentId !== id) {\n onOpenChange(false);\n }\n }\n }, [id, onOpenChange, setState, currentId, initialDelay]);\n index(() => {\n function unset() {\n onOpenChange(false);\n setState({\n delay: initialDelay,\n currentId: null\n });\n }\n if (!open && currentId === id) {\n if (timeoutMs) {\n const timeout = window.setTimeout(unset, timeoutMs);\n return () => {\n clearTimeout(timeout);\n };\n } else {\n unset();\n }\n }\n }, [open, setState, currentId, id, onOpenChange, initialDelay, timeoutMs]);\n index(() => {\n if (open) {\n setCurrentId(id);\n }\n }, [open, setCurrentId, id]);\n};\n\nfunction getAncestors(nodes, id) {\n var _nodes$find;\n let allAncestors = [];\n let currentParentId = (_nodes$find = nodes.find(node => node.id === id)) == null ? void 0 : _nodes$find.parentId;\n while (currentParentId) {\n const currentNode = nodes.find(node => node.id === currentParentId);\n currentParentId = currentNode == null ? void 0 : currentNode.parentId;\n if (currentNode) {\n allAncestors = allAncestors.concat(currentNode);\n }\n }\n return allAncestors;\n}\n\nfunction getChildren(nodes, id) {\n let allChildren = nodes.filter(node => {\n var _node$context;\n return node.parentId === id && ((_node$context = node.context) == null ? void 0 : _node$context.open);\n });\n let currentChildren = allChildren;\n while (currentChildren.length) {\n currentChildren = nodes.filter(node => {\n var _currentChildren;\n return (_currentChildren = currentChildren) == null ? void 0 : _currentChildren.some(n => {\n var _node$context2;\n return node.parentId === n.id && ((_node$context2 = node.context) == null ? void 0 : _node$context2.open);\n });\n });\n allChildren = allChildren.concat(currentChildren);\n }\n return allChildren;\n}\nfunction getDeepestNode(nodes, id) {\n let deepestNodeId;\n let maxDepth = -1;\n function findDeepest(nodeId, depth) {\n if (depth > maxDepth) {\n deepestNodeId = nodeId;\n maxDepth = depth;\n }\n const children = getChildren(nodes, nodeId);\n children.forEach(child => {\n findDeepest(child.id, depth + 1);\n });\n }\n findDeepest(id, 0);\n return nodes.find(node => node.id === deepestNodeId);\n}\n\n// Modified to add conditional `aria-hidden` support:\n// https://github.com/theKashey/aria-hidden/blob/9220c8f4a4fd35f63bee5510a9f41a37264382d4/src/index.ts\nlet counterMap = /*#__PURE__*/new WeakMap();\nlet uncontrolledElementsSet = /*#__PURE__*/new WeakSet();\nlet markerMap = {};\nlet lockCount = 0;\nconst supportsInert = () => typeof HTMLElement !== 'undefined' && 'inert' in HTMLElement.prototype;\nconst unwrapHost = node => node && (node.host || unwrapHost(node.parentNode));\nconst correctElements = (parent, targets) => targets.map(target => {\n if (parent.contains(target)) {\n return target;\n }\n const correctedTarget = unwrapHost(target);\n if (parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n return null;\n}).filter(x => x != null);\nfunction applyAttributeToOthers(uncorrectedAvoidElements, body, ariaHidden, inert) {\n const markerName = 'data-floating-ui-inert';\n const controlAttribute = inert ? 'inert' : ariaHidden ? 'aria-hidden' : null;\n const avoidElements = correctElements(body, uncorrectedAvoidElements);\n const elementsToKeep = new Set();\n const elementsToStop = new Set(avoidElements);\n const hiddenElements = [];\n if (!markerMap[markerName]) {\n markerMap[markerName] = new WeakMap();\n }\n const markerCounter = markerMap[markerName];\n avoidElements.forEach(keep);\n deep(body);\n elementsToKeep.clear();\n function keep(el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n el.parentNode && keep(el.parentNode);\n }\n function deep(parent) {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n Array.prototype.forEach.call(parent.children, node => {\n if (elementsToKeep.has(node)) {\n deep(node);\n } else {\n const attr = controlAttribute ? node.getAttribute(controlAttribute) : null;\n const alreadyHidden = attr !== null && attr !== 'false';\n const counterValue = (counterMap.get(node) || 0) + 1;\n const markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenElements.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledElementsSet.add(node);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, '');\n }\n if (!alreadyHidden && controlAttribute) {\n node.setAttribute(controlAttribute, 'true');\n }\n }\n });\n }\n lockCount++;\n return () => {\n hiddenElements.forEach(element => {\n const counterValue = (counterMap.get(element) || 0) - 1;\n const markerValue = (markerCounter.get(element) || 0) - 1;\n counterMap.set(element, counterValue);\n markerCounter.set(element, markerValue);\n if (!counterValue) {\n if (!uncontrolledElementsSet.has(element) && controlAttribute) {\n element.removeAttribute(controlAttribute);\n }\n uncontrolledElementsSet.delete(element);\n }\n if (!markerValue) {\n element.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n counterMap = new WeakMap();\n counterMap = new WeakMap();\n uncontrolledElementsSet = new WeakSet();\n markerMap = {};\n }\n };\n}\nfunction markOthers(avoidElements, ariaHidden, inert) {\n if (ariaHidden === void 0) {\n ariaHidden = false;\n }\n if (inert === void 0) {\n inert = false;\n }\n const body = getDocument(avoidElements[0]).body;\n return applyAttributeToOthers(avoidElements.concat(Array.from(body.querySelectorAll('[aria-live]'))), body, ariaHidden, inert);\n}\n\nconst getTabbableOptions = () => ({\n getShadowRoot: true,\n displayCheck:\n // JSDOM does not support the `tabbable` library. To solve this we can\n // check if `ResizeObserver` is a real function (not polyfilled), which\n // determines if the current environment is JSDOM-like.\n typeof ResizeObserver === 'function' && ResizeObserver.toString().includes('[native code]') ? 'full' : 'none'\n});\nfunction getTabbableIn(container, direction) {\n const allTabbable = tabbable(container, getTabbableOptions());\n if (direction === 'prev') {\n allTabbable.reverse();\n }\n const activeIndex = allTabbable.indexOf(activeElement(getDocument(container)));\n const nextTabbableElements = allTabbable.slice(activeIndex + 1);\n return nextTabbableElements[0];\n}\nfunction getNextTabbable() {\n return getTabbableIn(document.body, 'next');\n}\nfunction getPreviousTabbable() {\n return getTabbableIn(document.body, 'prev');\n}\nfunction isOutsideEvent(event, container) {\n const containerElement = container || event.currentTarget;\n const relatedTarget = event.relatedTarget;\n return !relatedTarget || !contains(containerElement, relatedTarget);\n}\nfunction disableFocusInside(container) {\n const tabbableElements = tabbable(container, getTabbableOptions());\n tabbableElements.forEach(element => {\n element.dataset.tabindex = element.getAttribute('tabindex') || '';\n element.setAttribute('tabindex', '-1');\n });\n}\nfunction enableFocusInside(container) {\n const elements = container.querySelectorAll('[data-tabindex]');\n elements.forEach(element => {\n const tabindex = element.dataset.tabindex;\n delete element.dataset.tabindex;\n if (tabindex) {\n element.setAttribute('tabindex', tabindex);\n } else {\n element.removeAttribute('tabindex');\n }\n });\n}\n\n// See Diego Haz's Sandbox for making this logic work well on Safari/iOS:\n// https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/FocusTrap.tsx\n\nconst HIDDEN_STYLES = {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: 0,\n position: 'fixed',\n whiteSpace: 'nowrap',\n width: '1px',\n top: 0,\n left: 0\n};\nlet timeoutId;\nfunction setActiveElementOnTab(event) {\n if (event.key === 'Tab') {\n event.target;\n clearTimeout(timeoutId);\n }\n}\nconst FocusGuard = /*#__PURE__*/React.forwardRef(function FocusGuard(props, ref) {\n const [role, setRole] = React.useState();\n index(() => {\n if (isSafari()) {\n // Unlike other screen readers such as NVDA and JAWS, the virtual cursor\n // on VoiceOver does trigger the onFocus event, so we can use the focus\n // trap element. On Safari, only buttons trigger the onFocus event.\n // NB: \"group\" role in the Sandbox no longer appears to work, must be a\n // button role.\n setRole('button');\n }\n document.addEventListener('keydown', setActiveElementOnTab);\n return () => {\n document.removeEventListener('keydown', setActiveElementOnTab);\n };\n }, []);\n const restProps = {\n ref,\n tabIndex: 0,\n // Role is only for VoiceOver\n role,\n 'aria-hidden': role ? undefined : true,\n [createAttribute('focus-guard')]: '',\n style: HIDDEN_STYLES\n };\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, props, restProps));\n});\n\nconst PortalContext = /*#__PURE__*/React.createContext(null);\nfunction useFloatingPortalNode(_temp) {\n let {\n id,\n root\n } = _temp === void 0 ? {} : _temp;\n const [portalNode, setPortalNode] = React.useState(null);\n const uniqueId = useId();\n const portalContext = usePortalContext();\n const data = React.useMemo(() => ({\n id,\n root,\n portalContext,\n uniqueId\n }), [id, root, portalContext, uniqueId]);\n const dataRef = React.useRef();\n index(() => {\n return () => {\n portalNode == null ? void 0 : portalNode.remove();\n };\n }, [portalNode, data]);\n index(() => {\n if (dataRef.current === data) return;\n dataRef.current = data;\n const {\n id,\n root,\n portalContext,\n uniqueId\n } = data;\n const existingIdRoot = id ? document.getElementById(id) : null;\n const attr = createAttribute('portal');\n if (existingIdRoot) {\n const subRoot = document.createElement('div');\n subRoot.id = uniqueId;\n subRoot.setAttribute(attr, '');\n existingIdRoot.appendChild(subRoot);\n setPortalNode(subRoot);\n } else {\n let container = root || (portalContext == null ? void 0 : portalContext.portalNode);\n if (container && !isElement(container)) container = container.current;\n container = container || document.body;\n let idWrapper = null;\n if (id) {\n idWrapper = document.createElement('div');\n idWrapper.id = id;\n container.appendChild(idWrapper);\n }\n const subRoot = document.createElement('div');\n subRoot.id = uniqueId;\n subRoot.setAttribute(attr, '');\n container = idWrapper || container;\n container.appendChild(subRoot);\n setPortalNode(subRoot);\n }\n }, [data]);\n return portalNode;\n}\n/**\n * Portals the floating element into a given container element — by default,\n * outside of the app root and into the body.\n * @see https://floating-ui.com/docs/FloatingPortal\n */\nfunction FloatingPortal(_ref) {\n let {\n children,\n id,\n root = null,\n preserveTabOrder = true\n } = _ref;\n const portalNode = useFloatingPortalNode({\n id,\n root\n });\n const [focusManagerState, setFocusManagerState] = React.useState(null);\n const beforeOutsideRef = React.useRef(null);\n const afterOutsideRef = React.useRef(null);\n const beforeInsideRef = React.useRef(null);\n const afterInsideRef = React.useRef(null);\n const shouldRenderGuards =\n // The FocusManager and therefore floating element are currently open/\n // rendered.\n !!focusManagerState &&\n // Guards are only for non-modal focus management.\n !focusManagerState.modal &&\n // Don't render if unmount is transitioning.\n focusManagerState.open && preserveTabOrder && !!(root || portalNode);\n\n // https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/TabbablePortal.tsx\n React.useEffect(() => {\n if (!portalNode || !preserveTabOrder || focusManagerState != null && focusManagerState.modal) {\n return;\n }\n\n // Make sure elements inside the portal element are tabbable only when the\n // portal has already been focused, either by tabbing into a focus trap\n // element outside or using the mouse.\n function onFocus(event) {\n if (portalNode && isOutsideEvent(event)) {\n const focusing = event.type === 'focusin';\n const manageFocus = focusing ? enableFocusInside : disableFocusInside;\n manageFocus(portalNode);\n }\n }\n // Listen to the event on the capture phase so they run before the focus\n // trap elements onFocus prop is called.\n portalNode.addEventListener('focusin', onFocus, true);\n portalNode.addEventListener('focusout', onFocus, true);\n return () => {\n portalNode.removeEventListener('focusin', onFocus, true);\n portalNode.removeEventListener('focusout', onFocus, true);\n };\n }, [portalNode, preserveTabOrder, focusManagerState == null ? void 0 : focusManagerState.modal]);\n return /*#__PURE__*/React.createElement(PortalContext.Provider, {\n value: React.useMemo(() => ({\n preserveTabOrder,\n beforeOutsideRef,\n afterOutsideRef,\n beforeInsideRef,\n afterInsideRef,\n portalNode,\n setFocusManagerState\n }), [preserveTabOrder, portalNode])\n }, shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"outside\",\n ref: beforeOutsideRef,\n onFocus: event => {\n if (isOutsideEvent(event, portalNode)) {\n var _beforeInsideRef$curr;\n (_beforeInsideRef$curr = beforeInsideRef.current) == null ? void 0 : _beforeInsideRef$curr.focus();\n } else {\n const prevTabbable = getPreviousTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);\n prevTabbable == null ? void 0 : prevTabbable.focus();\n }\n }\n }), shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(\"span\", {\n \"aria-owns\": portalNode.id,\n style: HIDDEN_STYLES\n }), portalNode && /*#__PURE__*/createPortal(children, portalNode), shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"outside\",\n ref: afterOutsideRef,\n onFocus: event => {\n if (isOutsideEvent(event, portalNode)) {\n var _afterInsideRef$curre;\n (_afterInsideRef$curre = afterInsideRef.current) == null ? void 0 : _afterInsideRef$curre.focus();\n } else {\n const nextTabbable = getNextTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);\n nextTabbable == null ? void 0 : nextTabbable.focus();\n (focusManagerState == null ? void 0 : focusManagerState.closeOnFocusOut) && (focusManagerState == null ? void 0 : focusManagerState.onOpenChange(false, event.nativeEvent));\n }\n }\n }));\n}\nconst usePortalContext = () => React.useContext(PortalContext);\n\nconst VisuallyHiddenDismiss = /*#__PURE__*/React.forwardRef(function VisuallyHiddenDismiss(props, ref) {\n return /*#__PURE__*/React.createElement(\"button\", _extends({}, props, {\n type: \"button\",\n ref: ref,\n tabIndex: -1,\n style: HIDDEN_STYLES\n }));\n});\n/**\n * Provides focus management for the floating element.\n * @see https://floating-ui.com/docs/FloatingFocusManager\n */\nfunction FloatingFocusManager(props) {\n const {\n context,\n children,\n disabled = false,\n order = ['content'],\n guards: _guards = true,\n initialFocus = 0,\n returnFocus = true,\n modal = true,\n visuallyHiddenDismiss = false,\n closeOnFocusOut = true\n } = props;\n const {\n open,\n refs,\n nodeId,\n onOpenChange,\n events,\n dataRef,\n elements: {\n domReference,\n floating\n }\n } = context;\n\n // Force the guards to be rendered if the `inert` attribute is not supported.\n const guards = supportsInert() ? _guards : true;\n const orderRef = useLatestRef(order);\n const initialFocusRef = useLatestRef(initialFocus);\n const returnFocusRef = useLatestRef(returnFocus);\n const tree = useFloatingTree();\n const portalContext = usePortalContext();\n\n // Controlled by `useListNavigation`.\n const ignoreInitialFocus = typeof initialFocus === 'number' && initialFocus < 0;\n const startDismissButtonRef = React.useRef(null);\n const endDismissButtonRef = React.useRef(null);\n const preventReturnFocusRef = React.useRef(false);\n const previouslyFocusedElementRef = React.useRef(null);\n const isPointerDownRef = React.useRef(false);\n const isInsidePortal = portalContext != null;\n\n // If the reference is a combobox and is typeable (e.g. input/textarea),\n // there are different focus semantics. The guards should not be rendered, but\n // aria-hidden should be applied to all nodes still. Further, the visually\n // hidden dismiss button should only appear at the end of the list, not the\n // start.\n const isUntrappedTypeableCombobox = domReference && domReference.getAttribute('role') === 'combobox' && isTypeableElement(domReference) && ignoreInitialFocus;\n const getTabbableContent = React.useCallback(function (container) {\n if (container === void 0) {\n container = floating;\n }\n return container ? tabbable(container, getTabbableOptions()) : [];\n }, [floating]);\n const getTabbableElements = React.useCallback(container => {\n const content = getTabbableContent(container);\n return orderRef.current.map(type => {\n if (domReference && type === 'reference') {\n return domReference;\n }\n if (floating && type === 'floating') {\n return floating;\n }\n return content;\n }).filter(Boolean).flat();\n }, [domReference, floating, orderRef, getTabbableContent]);\n React.useEffect(() => {\n if (disabled || !modal) return;\n function onKeyDown(event) {\n if (event.key === 'Tab') {\n // The focus guards have nothing to focus, so we need to stop the event.\n if (contains(floating, activeElement(getDocument(floating))) && getTabbableContent().length === 0 && !isUntrappedTypeableCombobox) {\n stopEvent(event);\n }\n const els = getTabbableElements();\n const target = getTarget(event);\n if (orderRef.current[0] === 'reference' && target === domReference) {\n stopEvent(event);\n if (event.shiftKey) {\n enqueueFocus(els[els.length - 1]);\n } else {\n enqueueFocus(els[1]);\n }\n }\n if (orderRef.current[1] === 'floating' && target === floating && event.shiftKey) {\n stopEvent(event);\n enqueueFocus(els[0]);\n }\n }\n }\n const doc = getDocument(floating);\n doc.addEventListener('keydown', onKeyDown);\n return () => {\n doc.removeEventListener('keydown', onKeyDown);\n };\n }, [disabled, domReference, floating, modal, orderRef, refs, isUntrappedTypeableCombobox, getTabbableContent, getTabbableElements]);\n React.useEffect(() => {\n if (disabled || !closeOnFocusOut) return;\n\n // In Safari, buttons lose focus when pressing them.\n function handlePointerDown() {\n isPointerDownRef.current = true;\n setTimeout(() => {\n isPointerDownRef.current = false;\n });\n }\n function handleFocusOutside(event) {\n const relatedTarget = event.relatedTarget;\n queueMicrotask(() => {\n const movedToUnrelatedNode = !(contains(domReference, relatedTarget) || contains(floating, relatedTarget) || contains(relatedTarget, floating) || contains(portalContext == null ? void 0 : portalContext.portalNode, relatedTarget) || relatedTarget != null && relatedTarget.hasAttribute(createAttribute('focus-guard')) || tree && (getChildren(tree.nodesRef.current, nodeId).find(node => {\n var _node$context, _node$context2;\n return contains((_node$context = node.context) == null ? void 0 : _node$context.elements.floating, relatedTarget) || contains((_node$context2 = node.context) == null ? void 0 : _node$context2.elements.domReference, relatedTarget);\n }) || getAncestors(tree.nodesRef.current, nodeId).find(node => {\n var _node$context3, _node$context4;\n return ((_node$context3 = node.context) == null ? void 0 : _node$context3.elements.floating) === relatedTarget || ((_node$context4 = node.context) == null ? void 0 : _node$context4.elements.domReference) === relatedTarget;\n })));\n\n // Focus did not move inside the floating tree, and there are no tabbable\n // portal guards to handle closing.\n if (relatedTarget && movedToUnrelatedNode && !isPointerDownRef.current &&\n // Fix React 18 Strict Mode returnFocus due to double rendering.\n relatedTarget !== previouslyFocusedElementRef.current) {\n preventReturnFocusRef.current = true;\n onOpenChange(false, event);\n }\n });\n }\n if (floating && isHTMLElement(domReference)) {\n domReference.addEventListener('focusout', handleFocusOutside);\n domReference.addEventListener('pointerdown', handlePointerDown);\n !modal && floating.addEventListener('focusout', handleFocusOutside);\n return () => {\n domReference.removeEventListener('focusout', handleFocusOutside);\n domReference.removeEventListener('pointerdown', handlePointerDown);\n !modal && floating.removeEventListener('focusout', handleFocusOutside);\n };\n }\n }, [disabled, domReference, floating, modal, nodeId, tree, portalContext, onOpenChange, closeOnFocusOut]);\n React.useEffect(() => {\n var _portalContext$portal;\n if (disabled) return;\n\n // Don't hide portals nested within the parent portal.\n const portalNodes = Array.from((portalContext == null ? void 0 : (_portalContext$portal = portalContext.portalNode) == null ? void 0 : _portalContext$portal.querySelectorAll(\"[\" + createAttribute('portal') + \"]\")) || []);\n if (floating) {\n const insideElements = [floating, ...portalNodes, startDismissButtonRef.current, endDismissButtonRef.current, orderRef.current.includes('reference') || isUntrappedTypeableCombobox ? domReference : null].filter(x => x != null);\n const cleanup = modal ? markOthers(insideElements, guards, !guards) : markOthers(insideElements);\n return () => {\n cleanup();\n };\n }\n }, [disabled, domReference, floating, modal, orderRef, portalContext, isUntrappedTypeableCombobox, guards]);\n index(() => {\n if (disabled || !floating) return;\n const doc = getDocument(floating);\n const previouslyFocusedElement = activeElement(doc);\n\n // Wait for any layout effect state setters to execute to set `tabIndex`.\n queueMicrotask(() => {\n const focusableElements = getTabbableElements(floating);\n const initialFocusValue = initialFocusRef.current;\n const elToFocus = (typeof initialFocusValue === 'number' ? focusableElements[initialFocusValue] : initialFocusValue.current) || floating;\n const focusAlreadyInsideFloatingEl = contains(floating, previouslyFocusedElement);\n if (!ignoreInitialFocus && !focusAlreadyInsideFloatingEl && open) {\n enqueueFocus(elToFocus, {\n preventScroll: elToFocus === floating\n });\n }\n });\n }, [disabled, open, floating, ignoreInitialFocus, getTabbableElements, initialFocusRef]);\n index(() => {\n if (disabled || !floating) return;\n let preventReturnFocusScroll = false;\n const doc = getDocument(floating);\n const previouslyFocusedElement = activeElement(doc);\n const contextData = dataRef.current;\n previouslyFocusedElementRef.current = previouslyFocusedElement;\n\n // Dismissing via outside press should always ignore `returnFocus` to\n // prevent unwanted scrolling.\n function onDismiss(payload) {\n if (payload.type === 'escapeKey' && refs.domReference.current) {\n previouslyFocusedElementRef.current = refs.domReference.current;\n }\n if (['referencePress', 'escapeKey'].includes(payload.type)) {\n return;\n }\n const returnFocus = payload.data.returnFocus;\n if (typeof returnFocus === 'object') {\n preventReturnFocusRef.current = false;\n preventReturnFocusScroll = returnFocus.preventScroll;\n } else {\n preventReturnFocusRef.current = !returnFocus;\n }\n }\n events.on('dismiss', onDismiss);\n return () => {\n events.off('dismiss', onDismiss);\n const activeEl = activeElement(doc);\n const shouldFocusReference = contains(floating, activeEl) || tree && getChildren(tree.nodesRef.current, nodeId).some(node => {\n var _node$context5;\n return contains((_node$context5 = node.context) == null ? void 0 : _node$context5.elements.floating, activeEl);\n }) || contextData.openEvent && ['click', 'mousedown'].includes(contextData.openEvent.type);\n if (shouldFocusReference && refs.domReference.current) {\n previouslyFocusedElementRef.current = refs.domReference.current;\n }\n if (\n // eslint-disable-next-line react-hooks/exhaustive-deps\n returnFocusRef.current && isHTMLElement(previouslyFocusedElementRef.current) && !preventReturnFocusRef.current) {\n enqueueFocus(previouslyFocusedElementRef.current, {\n // When dismissing nested floating elements, by the time the rAF has\n // executed, the menus will all have been unmounted. When they try\n // to get focused, the calls get ignored — leaving the root\n // reference focused as desired.\n cancelPrevious: false,\n preventScroll: preventReturnFocusScroll\n });\n }\n };\n }, [disabled, floating, returnFocusRef, dataRef, refs, events, tree, nodeId]);\n\n // Synchronize the `context` & `modal` value to the FloatingPortal context.\n // It will decide whether or not it needs to render its own guards.\n index(() => {\n if (disabled || !portalContext) return;\n portalContext.setFocusManagerState({\n modal,\n closeOnFocusOut,\n open,\n onOpenChange,\n refs\n });\n return () => {\n portalContext.setFocusManagerState(null);\n };\n }, [disabled, portalContext, modal, open, onOpenChange, refs, closeOnFocusOut]);\n index(() => {\n if (disabled) return;\n if (floating && typeof MutationObserver === 'function' && !ignoreInitialFocus) {\n const handleMutation = () => {\n const tabIndex = floating.getAttribute('tabindex');\n if (orderRef.current.includes('floating') || activeElement(getDocument(floating)) !== refs.domReference.current && getTabbableContent().length === 0) {\n if (tabIndex !== '0') {\n floating.setAttribute('tabindex', '0');\n }\n } else if (tabIndex !== '-1') {\n floating.setAttribute('tabindex', '-1');\n }\n };\n handleMutation();\n const observer = new MutationObserver(handleMutation);\n observer.observe(floating, {\n childList: true,\n subtree: true,\n attributes: true\n });\n return () => {\n observer.disconnect();\n };\n }\n }, [disabled, floating, refs, orderRef, getTabbableContent, ignoreInitialFocus]);\n function renderDismissButton(location) {\n if (disabled || !visuallyHiddenDismiss || !modal) {\n return null;\n }\n return /*#__PURE__*/React.createElement(VisuallyHiddenDismiss, {\n ref: location === 'start' ? startDismissButtonRef : endDismissButtonRef,\n onClick: event => onOpenChange(false, event.nativeEvent)\n }, typeof visuallyHiddenDismiss === 'string' ? visuallyHiddenDismiss : 'Dismiss');\n }\n const shouldRenderGuards = !disabled && guards && !isUntrappedTypeableCombobox && (isInsidePortal || modal);\n return /*#__PURE__*/React.createElement(React.Fragment, null, shouldRenderGuards && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"inside\",\n ref: portalContext == null ? void 0 : portalContext.beforeInsideRef,\n onFocus: event => {\n if (modal) {\n const els = getTabbableElements();\n enqueueFocus(order[0] === 'reference' ? els[0] : els[els.length - 1]);\n } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n preventReturnFocusRef.current = false;\n if (isOutsideEvent(event, portalContext.portalNode)) {\n const nextTabbable = getNextTabbable() || domReference;\n nextTabbable == null ? void 0 : nextTabbable.focus();\n } else {\n var _portalContext$before;\n (_portalContext$before = portalContext.beforeOutsideRef.current) == null ? void 0 : _portalContext$before.focus();\n }\n }\n }\n }), !isUntrappedTypeableCombobox && renderDismissButton('start'), children, renderDismissButton('end'), shouldRenderGuards && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"inside\",\n ref: portalContext == null ? void 0 : portalContext.afterInsideRef,\n onFocus: event => {\n if (modal) {\n enqueueFocus(getTabbableElements()[0]);\n } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n if (closeOnFocusOut) {\n preventReturnFocusRef.current = true;\n }\n if (isOutsideEvent(event, portalContext.portalNode)) {\n const prevTabbable = getPreviousTabbable() || domReference;\n prevTabbable == null ? void 0 : prevTabbable.focus();\n } else {\n var _portalContext$afterO;\n (_portalContext$afterO = portalContext.afterOutsideRef.current) == null ? void 0 : _portalContext$afterO.focus();\n }\n }\n }\n }));\n}\n\nconst activeLocks = /*#__PURE__*/new Set();\n\n/**\n * Provides base styling for a fixed overlay element to dim content or block\n * pointer events behind a floating element.\n * It's a regular `<div>`, so it can be styled via any CSS solution you prefer.\n * @see https://floating-ui.com/docs/FloatingOverlay\n */\nconst FloatingOverlay = /*#__PURE__*/React.forwardRef(function FloatingOverlay(_ref, ref) {\n let {\n lockScroll = false,\n ...rest\n } = _ref;\n const lockId = useId();\n index(() => {\n if (!lockScroll) return;\n activeLocks.add(lockId);\n const isIOS = /iP(hone|ad|od)|iOS/.test(getPlatform());\n const bodyStyle = document.body.style;\n // RTL <body> scrollbar\n const scrollbarX = Math.round(document.documentElement.getBoundingClientRect().left) + document.documentElement.scrollLeft;\n const paddingProp = scrollbarX ? 'paddingLeft' : 'paddingRight';\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n const scrollX = bodyStyle.left ? parseFloat(bodyStyle.left) : window.pageXOffset;\n const scrollY = bodyStyle.top ? parseFloat(bodyStyle.top) : window.pageYOffset;\n bodyStyle.overflow = 'hidden';\n if (scrollbarWidth) {\n bodyStyle[paddingProp] = scrollbarWidth + \"px\";\n }\n\n // Only iOS doesn't respect `overflow: hidden` on document.body, and this\n // technique has fewer side effects.\n if (isIOS) {\n var _window$visualViewpor, _window$visualViewpor2;\n // iOS 12 does not support `visualViewport`.\n const offsetLeft = ((_window$visualViewpor = window.visualViewport) == null ? void 0 : _window$visualViewpor.offsetLeft) || 0;\n const offsetTop = ((_window$visualViewpor2 = window.visualViewport) == null ? void 0 : _window$visualViewpor2.offsetTop) || 0;\n Object.assign(bodyStyle, {\n position: 'fixed',\n top: -(scrollY - Math.floor(offsetTop)) + \"px\",\n left: -(scrollX - Math.floor(offsetLeft)) + \"px\",\n right: '0'\n });\n }\n return () => {\n activeLocks.delete(lockId);\n if (activeLocks.size === 0) {\n Object.assign(bodyStyle, {\n overflow: '',\n [paddingProp]: ''\n });\n if (isIOS) {\n Object.assign(bodyStyle, {\n position: '',\n top: '',\n left: '',\n right: ''\n });\n window.scrollTo(scrollX, scrollY);\n }\n }\n };\n }, [lockId, lockScroll]);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref\n }, rest, {\n style: {\n position: 'fixed',\n overflow: 'auto',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...rest.style\n }\n }));\n});\n\nfunction isButtonTarget(event) {\n return isHTMLElement(event.target) && event.target.tagName === 'BUTTON';\n}\nfunction isSpaceIgnored(element) {\n return isTypeableElement(element);\n}\n/**\n * Opens or closes the floating element when clicking the reference element.\n * @see https://floating-ui.com/docs/useClick\n */\nfunction useClick(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n dataRef,\n elements: {\n domReference\n }\n } = context;\n const {\n enabled = true,\n event: eventOption = 'click',\n toggle = true,\n ignoreMouse = false,\n keyboardHandlers = true\n } = props;\n const pointerTypeRef = React.useRef();\n const didKeyDownRef = React.useRef(false);\n return React.useMemo(() => {\n if (!enabled) return {};\n return {\n reference: {\n onPointerDown(event) {\n pointerTypeRef.current = event.pointerType;\n },\n onMouseDown(event) {\n // Ignore all buttons except for the \"main\" button.\n // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button\n if (event.button !== 0) {\n return;\n }\n if (isMouseLikePointerType(pointerTypeRef.current, true) && ignoreMouse) {\n return;\n }\n if (eventOption === 'click') {\n return;\n }\n if (open && toggle && (dataRef.current.openEvent ? dataRef.current.openEvent.type === 'mousedown' : true)) {\n onOpenChange(false, event.nativeEvent);\n } else {\n // Prevent stealing focus from the floating element\n event.preventDefault();\n onOpenChange(true, event.nativeEvent);\n }\n },\n onClick(event) {\n if (eventOption === 'mousedown' && pointerTypeRef.current) {\n pointerTypeRef.current = undefined;\n return;\n }\n if (isMouseLikePointerType(pointerTypeRef.current, true) && ignoreMouse) {\n return;\n }\n if (open && toggle && (dataRef.current.openEvent ? dataRef.current.openEvent.type === 'click' : true)) {\n onOpenChange(false, event.nativeEvent);\n } else {\n onOpenChange(true, event.nativeEvent);\n }\n },\n onKeyDown(event) {\n pointerTypeRef.current = undefined;\n if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event)) {\n return;\n }\n if (event.key === ' ' && !isSpaceIgnored(domReference)) {\n // Prevent scrolling\n event.preventDefault();\n didKeyDownRef.current = true;\n }\n if (event.key === 'Enter') {\n if (open && toggle) {\n onOpenChange(false, event.nativeEvent);\n } else {\n onOpenChange(true, event.nativeEvent);\n }\n }\n },\n onKeyUp(event) {\n if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event) || isSpaceIgnored(domReference)) {\n return;\n }\n if (event.key === ' ' && didKeyDownRef.current) {\n didKeyDownRef.current = false;\n if (open && toggle) {\n onOpenChange(false, event.nativeEvent);\n } else {\n onOpenChange(true, event.nativeEvent);\n }\n }\n }\n }\n };\n }, [enabled, dataRef, eventOption, ignoreMouse, keyboardHandlers, domReference, toggle, open, onOpenChange]);\n}\n\n// `toString()` prevents bundlers from trying to `import { useInsertionEffect } from 'react'`\nconst useInsertionEffect = React[/*#__PURE__*/'useInsertionEffect'.toString()];\nconst useSafeInsertionEffect = useInsertionEffect || (fn => fn());\nfunction useEffectEvent(callback) {\n const ref = React.useRef(() => {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error('Cannot call an event handler while rendering.');\n }\n });\n useSafeInsertionEffect(() => {\n ref.current = callback;\n });\n return React.useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return ref.current == null ? void 0 : ref.current(...args);\n }, []);\n}\n\nfunction createVirtualElement(domRef, data) {\n let offsetX = null;\n let offsetY = null;\n let isAutoUpdateEvent = false;\n return {\n contextElement: domRef.current || undefined,\n getBoundingClientRect() {\n var _domRef$current, _data$dataRef$current;\n const domRect = ((_domRef$current = domRef.current) == null ? void 0 : _domRef$current.getBoundingClientRect()) || {\n width: 0,\n height: 0,\n x: 0,\n y: 0\n };\n const isXAxis = data.axis === 'x' || data.axis === 'both';\n const isYAxis = data.axis === 'y' || data.axis === 'both';\n const canTrackCursorOnAutoUpdate = ['mouseenter', 'mousemove'].includes(((_data$dataRef$current = data.dataRef.current.openEvent) == null ? void 0 : _data$dataRef$current.type) || '') && data.pointerType !== 'touch';\n let width = domRect.width;\n let height = domRect.height;\n let x = domRect.x;\n let y = domRect.y;\n if (offsetX == null && data.x && isXAxis) {\n offsetX = domRect.x - data.x;\n }\n if (offsetY == null && data.y && isYAxis) {\n offsetY = domRect.y - data.y;\n }\n x -= offsetX || 0;\n y -= offsetY || 0;\n width = 0;\n height = 0;\n if (!isAutoUpdateEvent || canTrackCursorOnAutoUpdate) {\n width = data.axis === 'y' ? domRect.width : 0;\n height = data.axis === 'x' ? domRect.height : 0;\n x = isXAxis && data.x != null ? data.x : x;\n y = isYAxis && data.y != null ? data.y : y;\n } else if (isAutoUpdateEvent && !canTrackCursorOnAutoUpdate) {\n height = data.axis === 'x' ? domRect.height : height;\n width = data.axis === 'y' ? domRect.width : width;\n }\n isAutoUpdateEvent = true;\n return {\n width,\n height,\n x,\n y,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x\n };\n }\n };\n}\nfunction isMouseBasedEvent(event) {\n return event != null && event.clientX != null;\n}\n/**\n * Positions the floating element relative to a client point (in the viewport),\n * such as the mouse position. By default, it follows the mouse cursor.\n * @see https://floating-ui.com/docs/useClientPoint\n */\nfunction useClientPoint(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n refs,\n dataRef,\n elements: {\n floating\n }\n } = context;\n const {\n enabled = true,\n axis = 'both',\n x = null,\n y = null\n } = props;\n const initialRef = React.useRef(false);\n const cleanupListenerRef = React.useRef(null);\n const [pointerType, setPointerType] = React.useState();\n const [reactive, setReactive] = React.useState([]);\n const setReference = useEffectEvent((x, y) => {\n if (initialRef.current) return;\n\n // Prevent setting if the open event was not a mouse-like one\n // (e.g. focus to open, then hover over the reference element).\n // Only apply if the event exists.\n if (dataRef.current.openEvent && !isMouseBasedEvent(dataRef.current.openEvent)) {\n return;\n }\n refs.setPositionReference(createVirtualElement(refs.domReference, {\n x,\n y,\n axis,\n dataRef,\n pointerType\n }));\n });\n const handleReferenceEnterOrMove = useEffectEvent(event => {\n if (x != null || y != null) return;\n if (!open) {\n setReference(event.clientX, event.clientY);\n } else if (!cleanupListenerRef.current) {\n // If there's no cleanup, there's no listener, but we want to ensure\n // we add the listener if the cursor landed on the floating element and\n // then back on the reference (i.e. it's interactive).\n setReactive([]);\n }\n });\n\n // If the pointer is a mouse-like pointer, we want to continue following the\n // mouse even if the floating element is transitioning out. On touch\n // devices, this is undesirable because the floating element will move to\n // the dismissal touch point.\n const openCheck = isMouseLikePointerType(pointerType) ? floating : open;\n const addListener = React.useCallback(() => {\n // Explicitly specified `x`/`y` coordinates shouldn't add a listener.\n if (!openCheck || !enabled || x != null || y != null) return;\n const win = getWindow(refs.floating.current);\n function handleMouseMove(event) {\n const target = getTarget(event);\n if (!contains(refs.floating.current, target)) {\n setReference(event.clientX, event.clientY);\n } else {\n win.removeEventListener('mousemove', handleMouseMove);\n cleanupListenerRef.current = null;\n }\n }\n if (!dataRef.current.openEvent || isMouseBasedEvent(dataRef.current.openEvent)) {\n win.addEventListener('mousemove', handleMouseMove);\n const cleanup = () => {\n win.removeEventListener('mousemove', handleMouseMove);\n cleanupListenerRef.current = null;\n };\n cleanupListenerRef.current = cleanup;\n return cleanup;\n }\n refs.setPositionReference(refs.domReference.current);\n }, [dataRef, enabled, openCheck, refs, setReference, x, y]);\n React.useEffect(() => {\n return addListener();\n }, [addListener, reactive]);\n React.useEffect(() => {\n if (enabled && !floating) {\n initialRef.current = false;\n }\n }, [enabled, floating]);\n React.useEffect(() => {\n if (!enabled && open) {\n initialRef.current = true;\n }\n }, [enabled, open]);\n index(() => {\n if (enabled && (x != null || y != null)) {\n initialRef.current = false;\n setReference(x, y);\n }\n }, [enabled, x, y, setReference]);\n return React.useMemo(() => {\n if (!enabled) return {};\n function setPointerTypeRef(_ref) {\n let {\n pointerType\n } = _ref;\n setPointerType(pointerType);\n }\n return {\n reference: {\n onPointerDown: setPointerTypeRef,\n onPointerEnter: setPointerTypeRef,\n onMouseMove: handleReferenceEnterOrMove,\n onMouseEnter: handleReferenceEnterOrMove\n }\n };\n }, [enabled, handleReferenceEnterOrMove]);\n}\n\nconst bubbleHandlerKeys = {\n pointerdown: 'onPointerDown',\n mousedown: 'onMouseDown',\n click: 'onClick'\n};\nconst captureHandlerKeys = {\n pointerdown: 'onPointerDownCapture',\n mousedown: 'onMouseDownCapture',\n click: 'onClickCapture'\n};\nconst normalizeBubblesProp = bubbles => {\n var _bubbles$escapeKey, _bubbles$outsidePress;\n return {\n escapeKeyBubbles: typeof bubbles === 'boolean' ? bubbles : (_bubbles$escapeKey = bubbles == null ? void 0 : bubbles.escapeKey) != null ? _bubbles$escapeKey : false,\n outsidePressBubbles: typeof bubbles === 'boolean' ? bubbles : (_bubbles$outsidePress = bubbles == null ? void 0 : bubbles.outsidePress) != null ? _bubbles$outsidePress : true\n };\n};\n/**\n * Closes the floating element when a dismissal is requested — by default, when\n * the user presses the `escape` key or outside of the floating element.\n * @see https://floating-ui.com/docs/useDismiss\n */\nfunction useDismiss(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n events,\n nodeId,\n elements: {\n reference,\n domReference,\n floating\n },\n dataRef\n } = context;\n const {\n enabled = true,\n escapeKey = true,\n outsidePress: unstable_outsidePress = true,\n outsidePressEvent = 'pointerdown',\n referencePress = false,\n referencePressEvent = 'pointerdown',\n ancestorScroll = false,\n bubbles\n } = props;\n const tree = useFloatingTree();\n const nested = useFloatingParentNodeId() != null;\n const outsidePressFn = useEffectEvent(typeof unstable_outsidePress === 'function' ? unstable_outsidePress : () => false);\n const outsidePress = typeof unstable_outsidePress === 'function' ? outsidePressFn : unstable_outsidePress;\n const insideReactTreeRef = React.useRef(false);\n const {\n escapeKeyBubbles,\n outsidePressBubbles\n } = normalizeBubblesProp(bubbles);\n const closeOnEscapeKeyDown = useEffectEvent(event => {\n if (!open || !enabled || !escapeKey || event.key !== 'Escape') {\n return;\n }\n const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n if (!escapeKeyBubbles) {\n event.stopPropagation();\n if (children.length > 0) {\n let shouldDismiss = true;\n children.forEach(child => {\n var _child$context;\n if ((_child$context = child.context) != null && _child$context.open && !child.context.dataRef.current.__escapeKeyBubbles) {\n shouldDismiss = false;\n return;\n }\n });\n if (!shouldDismiss) {\n return;\n }\n }\n }\n events.emit('dismiss', {\n type: 'escapeKey',\n data: {\n returnFocus: {\n preventScroll: false\n }\n }\n });\n onOpenChange(false, isReactEvent(event) ? event.nativeEvent : event);\n });\n const closeOnPressOutside = useEffectEvent(event => {\n // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n const insideReactTree = insideReactTreeRef.current;\n insideReactTreeRef.current = false;\n if (insideReactTree) {\n return;\n }\n if (typeof outsidePress === 'function' && !outsidePress(event)) {\n return;\n }\n const target = getTarget(event);\n const inertSelector = \"[\" + createAttribute('inert') + \"]\";\n const markers = getDocument(floating).querySelectorAll(inertSelector);\n let targetRootAncestor = isElement(target) ? target : null;\n while (targetRootAncestor && !isLastTraversableNode(targetRootAncestor)) {\n const nextParent = getParentNode(targetRootAncestor);\n if (nextParent === getDocument(floating).body || !isElement(nextParent)) {\n break;\n } else {\n targetRootAncestor = nextParent;\n }\n }\n\n // Check if the click occurred on a third-party element injected after the\n // floating element rendered.\n if (markers.length && isElement(target) && !isRootElement(target) &&\n // Clicked on a direct ancestor (e.g. FloatingOverlay).\n !contains(target, floating) &&\n // If the target root element contains none of the markers, then the\n // element was injected after the floating element rendered.\n Array.from(markers).every(marker => !contains(targetRootAncestor, marker))) {\n return;\n }\n\n // Check if the click occurred on the scrollbar\n if (isHTMLElement(target) && floating) {\n // In Firefox, `target.scrollWidth > target.clientWidth` for inline\n // elements.\n const canScrollX = target.clientWidth > 0 && target.scrollWidth > target.clientWidth;\n const canScrollY = target.clientHeight > 0 && target.scrollHeight > target.clientHeight;\n let xCond = canScrollY && event.offsetX > target.clientWidth;\n\n // In some browsers it is possible to change the <body> (or window)\n // scrollbar to the left side, but is very rare and is difficult to\n // check for. Plus, for modal dialogs with backdrops, it is more\n // important that the backdrop is checked but not so much the window.\n if (canScrollY) {\n const isRTL = getComputedStyle(target).direction === 'rtl';\n if (isRTL) {\n xCond = event.offsetX <= target.offsetWidth - target.clientWidth;\n }\n }\n if (xCond || canScrollX && event.offsetY > target.clientHeight) {\n return;\n }\n }\n const targetIsInsideChildren = tree && getChildren(tree.nodesRef.current, nodeId).some(node => {\n var _node$context;\n return isEventTargetWithin(event, (_node$context = node.context) == null ? void 0 : _node$context.elements.floating);\n });\n if (isEventTargetWithin(event, floating) || isEventTargetWithin(event, domReference) || targetIsInsideChildren) {\n return;\n }\n const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n if (children.length > 0) {\n let shouldDismiss = true;\n children.forEach(child => {\n var _child$context2;\n if ((_child$context2 = child.context) != null && _child$context2.open && !child.context.dataRef.current.__outsidePressBubbles) {\n shouldDismiss = false;\n return;\n }\n });\n if (!shouldDismiss) {\n return;\n }\n }\n events.emit('dismiss', {\n type: 'outsidePress',\n data: {\n returnFocus: nested ? {\n preventScroll: true\n } : isVirtualClick(event) || isVirtualPointerEvent(event)\n }\n });\n onOpenChange(false, event);\n });\n React.useEffect(() => {\n if (!open || !enabled) {\n return;\n }\n dataRef.current.__escapeKeyBubbles = escapeKeyBubbles;\n dataRef.current.__outsidePressBubbles = outsidePressBubbles;\n function onScroll(event) {\n onOpenChange(false, event);\n }\n const doc = getDocument(floating);\n escapeKey && doc.addEventListener('keydown', closeOnEscapeKeyDown);\n outsidePress && doc.addEventListener(outsidePressEvent, closeOnPressOutside);\n let ancestors = [];\n if (ancestorScroll) {\n if (isElement(domReference)) {\n ancestors = getOverflowAncestors(domReference);\n }\n if (isElement(floating)) {\n ancestors = ancestors.concat(getOverflowAncestors(floating));\n }\n if (!isElement(reference) && reference && reference.contextElement) {\n ancestors = ancestors.concat(getOverflowAncestors(reference.contextElement));\n }\n }\n\n // Ignore the visual viewport for scrolling dismissal (allow pinch-zoom)\n ancestors = ancestors.filter(ancestor => {\n var _doc$defaultView;\n return ancestor !== ((_doc$defaultView = doc.defaultView) == null ? void 0 : _doc$defaultView.visualViewport);\n });\n ancestors.forEach(ancestor => {\n ancestor.addEventListener('scroll', onScroll, {\n passive: true\n });\n });\n return () => {\n escapeKey && doc.removeEventListener('keydown', closeOnEscapeKeyDown);\n outsidePress && doc.removeEventListener(outsidePressEvent, closeOnPressOutside);\n ancestors.forEach(ancestor => {\n ancestor.removeEventListener('scroll', onScroll);\n });\n };\n }, [dataRef, floating, domReference, reference, escapeKey, outsidePress, outsidePressEvent, open, onOpenChange, ancestorScroll, enabled, escapeKeyBubbles, outsidePressBubbles, closeOnEscapeKeyDown, closeOnPressOutside]);\n React.useEffect(() => {\n insideReactTreeRef.current = false;\n }, [outsidePress, outsidePressEvent]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n reference: {\n onKeyDown: closeOnEscapeKeyDown,\n [bubbleHandlerKeys[referencePressEvent]]: event => {\n if (referencePress) {\n events.emit('dismiss', {\n type: 'referencePress',\n data: {\n returnFocus: false\n }\n });\n onOpenChange(false, event.nativeEvent);\n }\n }\n },\n floating: {\n onKeyDown: closeOnEscapeKeyDown,\n [captureHandlerKeys[outsidePressEvent]]: () => {\n insideReactTreeRef.current = true;\n }\n }\n };\n }, [enabled, events, referencePress, outsidePressEvent, referencePressEvent, onOpenChange, closeOnEscapeKeyDown]);\n}\n\nlet devMessageSet;\nif (process.env.NODE_ENV !== \"production\") {\n devMessageSet = /*#__PURE__*/new Set();\n}\n\n/**\n * Provides data to position a floating element and context to add interactions.\n * @see https://floating-ui.com/docs/react\n */\nfunction useFloating(options) {\n var _options$elements2;\n if (options === void 0) {\n options = {};\n }\n const {\n open = false,\n onOpenChange: unstable_onOpenChange,\n nodeId\n } = options;\n if (process.env.NODE_ENV !== \"production\") {\n var _options$elements;\n const err = 'Floating UI: Cannot pass a virtual element to the ' + '`elements.reference` option, as it must be a real DOM element. ' + 'Use `refs.setPositionReference` instead.';\n if ((_options$elements = options.elements) != null && _options$elements.reference && !isElement(options.elements.reference)) {\n var _devMessageSet;\n if (!((_devMessageSet = devMessageSet) != null && _devMessageSet.has(err))) {\n var _devMessageSet2;\n (_devMessageSet2 = devMessageSet) == null ? void 0 : _devMessageSet2.add(err);\n console.error(err);\n }\n }\n }\n const [_domReference, setDomReference] = React.useState(null);\n const domReference = ((_options$elements2 = options.elements) == null ? void 0 : _options$elements2.reference) || _domReference;\n const position = useFloating$1(options);\n const tree = useFloatingTree();\n const onOpenChange = useEffectEvent((open, event) => {\n if (open) {\n dataRef.current.openEvent = event;\n }\n unstable_onOpenChange == null ? void 0 : unstable_onOpenChange(open, event);\n });\n const domReferenceRef = React.useRef(null);\n const dataRef = React.useRef({});\n const events = React.useState(() => createPubSub())[0];\n const floatingId = useId();\n const setPositionReference = React.useCallback(node => {\n const positionReference = isElement(node) ? {\n getBoundingClientRect: () => node.getBoundingClientRect(),\n contextElement: node\n } : node;\n position.refs.setReference(positionReference);\n }, [position.refs]);\n const setReference = React.useCallback(node => {\n if (isElement(node) || node === null) {\n domReferenceRef.current = node;\n setDomReference(node);\n }\n\n // Backwards-compatibility for passing a virtual element to `reference`\n // after it has set the DOM reference.\n if (isElement(position.refs.reference.current) || position.refs.reference.current === null ||\n // Don't allow setting virtual elements using the old technique back to\n // `null` to support `positionReference` + an unstable `reference`\n // callback ref.\n node !== null && !isElement(node)) {\n position.refs.setReference(node);\n }\n }, [position.refs]);\n const refs = React.useMemo(() => ({\n ...position.refs,\n setReference,\n setPositionReference,\n domReference: domReferenceRef\n }), [position.refs, setReference, setPositionReference]);\n const elements = React.useMemo(() => ({\n ...position.elements,\n domReference: domReference\n }), [position.elements, domReference]);\n const context = React.useMemo(() => ({\n ...position,\n refs,\n elements,\n dataRef,\n nodeId,\n floatingId,\n events,\n open,\n onOpenChange\n }), [position, nodeId, floatingId, events, open, onOpenChange, refs, elements]);\n index(() => {\n const node = tree == null ? void 0 : tree.nodesRef.current.find(node => node.id === nodeId);\n if (node) {\n node.context = context;\n }\n });\n return React.useMemo(() => ({\n ...position,\n context,\n refs,\n elements\n }), [position, refs, elements, context]);\n}\n\n/**\n * Opens the floating element while the reference element has focus, like CSS\n * `:focus`.\n * @see https://floating-ui.com/docs/useFocus\n */\nfunction useFocus(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n dataRef,\n events,\n refs,\n elements: {\n floating,\n domReference\n }\n } = context;\n const {\n enabled = true,\n keyboardOnly = true\n } = props;\n const pointerTypeRef = React.useRef('');\n const blockFocusRef = React.useRef(false);\n const timeoutRef = React.useRef();\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n const doc = getDocument(floating);\n const win = doc.defaultView || window;\n\n // If the reference was focused and the user left the tab/window, and the\n // floating element was not open, the focus should be blocked when they\n // return to the tab/window.\n function onBlur() {\n if (!open && isHTMLElement(domReference) && domReference === activeElement(getDocument(domReference))) {\n blockFocusRef.current = true;\n }\n }\n win.addEventListener('blur', onBlur);\n return () => {\n win.removeEventListener('blur', onBlur);\n };\n }, [floating, domReference, open, enabled]);\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function onDismiss(payload) {\n if (payload.type === 'referencePress' || payload.type === 'escapeKey') {\n blockFocusRef.current = true;\n }\n }\n events.on('dismiss', onDismiss);\n return () => {\n events.off('dismiss', onDismiss);\n };\n }, [events, enabled]);\n React.useEffect(() => {\n return () => {\n clearTimeout(timeoutRef.current);\n };\n }, []);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n reference: {\n onPointerDown(_ref) {\n let {\n pointerType\n } = _ref;\n pointerTypeRef.current = pointerType;\n blockFocusRef.current = !!(pointerType && keyboardOnly);\n },\n onMouseLeave() {\n blockFocusRef.current = false;\n },\n onFocus(event) {\n var _dataRef$current$open;\n if (blockFocusRef.current) {\n return;\n }\n\n // Dismiss with click should ignore the subsequent `focus` trigger,\n // but only if the click originated inside the reference element.\n if (event.type === 'focus' && ((_dataRef$current$open = dataRef.current.openEvent) == null ? void 0 : _dataRef$current$open.type) === 'mousedown' && isEventTargetWithin(dataRef.current.openEvent, domReference)) {\n return;\n }\n onOpenChange(true, event.nativeEvent);\n },\n onBlur(event) {\n blockFocusRef.current = false;\n const relatedTarget = event.relatedTarget;\n\n // Hit the non-modal focus management portal guard. Focus will be\n // moved into the floating element immediately after.\n const movedToFocusGuard = isElement(relatedTarget) && relatedTarget.hasAttribute(createAttribute('focus-guard')) && relatedTarget.getAttribute('data-type') === 'outside';\n\n // Wait for the window blur listener to fire.\n timeoutRef.current = setTimeout(() => {\n // When focusing the reference element (e.g. regular click), then\n // clicking into the floating element, prevent it from hiding.\n // Note: it must be focusable, e.g. `tabindex=\"-1\"`.\n if (contains(refs.floating.current, relatedTarget) || contains(domReference, relatedTarget) || movedToFocusGuard) {\n return;\n }\n onOpenChange(false, event.nativeEvent);\n });\n }\n }\n };\n }, [enabled, keyboardOnly, domReference, refs, dataRef, onOpenChange]);\n}\n\nfunction mergeProps(userProps, propsList, elementKey) {\n const map = new Map();\n return {\n ...(elementKey === 'floating' && {\n tabIndex: -1\n }),\n ...userProps,\n ...propsList.map(value => value ? value[elementKey] : null).concat(userProps).reduce((acc, props) => {\n if (!props) {\n return acc;\n }\n Object.entries(props).forEach(_ref => {\n let [key, value] = _ref;\n if (key.indexOf('on') === 0) {\n if (!map.has(key)) {\n map.set(key, []);\n }\n if (typeof value === 'function') {\n var _map$get;\n (_map$get = map.get(key)) == null ? void 0 : _map$get.push(value);\n acc[key] = function () {\n var _map$get2;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_map$get2 = map.get(key)) == null ? void 0 : _map$get2.map(fn => fn(...args)).find(val => val !== undefined);\n };\n }\n } else {\n acc[key] = value;\n }\n });\n return acc;\n }, {})\n };\n}\n\n/**\n * Merges an array of interaction hooks' props into prop getters, allowing\n * event handler functions to be composed together without overwriting one\n * another.\n * @see https://floating-ui.com/docs/react#interaction-hooks\n */\nfunction useInteractions(propsList) {\n if (propsList === void 0) {\n propsList = [];\n }\n // The dependencies are a dynamic array, so we can't use the linter's\n // suggestion to add it to the deps array.\n const deps = propsList;\n const getReferenceProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'reference'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n deps);\n const getFloatingProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'floating'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n deps);\n const getItemProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'item'),\n // Granularly check for `item` changes, because the `getItemProps` getter\n // should be as referentially stable as possible since it may be passed as\n // a prop to many components. All `item` key values must therefore be\n // memoized.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n propsList.map(key => key == null ? void 0 : key.item));\n return React.useMemo(() => ({\n getReferenceProps,\n getFloatingProps,\n getItemProps\n }), [getReferenceProps, getFloatingProps, getItemProps]);\n}\n\nlet isPreventScrollSupported = false;\nfunction doSwitch(orientation, vertical, horizontal) {\n switch (orientation) {\n case 'vertical':\n return vertical;\n case 'horizontal':\n return horizontal;\n default:\n return vertical || horizontal;\n }\n}\nfunction isMainOrientationKey(key, orientation) {\n const vertical = key === ARROW_UP || key === ARROW_DOWN;\n const horizontal = key === ARROW_LEFT || key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isMainOrientationToEndKey(key, orientation, rtl) {\n const vertical = key === ARROW_DOWN;\n const horizontal = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal) || key === 'Enter' || key == ' ' || key === '';\n}\nfunction isCrossOrientationOpenKey(key, orientation, rtl) {\n const vertical = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n const horizontal = key === ARROW_DOWN;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isCrossOrientationCloseKey(key, orientation, rtl) {\n const vertical = rtl ? key === ARROW_RIGHT : key === ARROW_LEFT;\n const horizontal = key === ARROW_UP;\n return doSwitch(orientation, vertical, horizontal);\n}\n/**\n * Adds arrow key-based navigation of a list of items, either using real DOM\n * focus or virtual focus.\n * @see https://floating-ui.com/docs/useListNavigation\n */\nfunction useListNavigation(context, props) {\n const {\n open,\n onOpenChange,\n refs,\n elements: {\n domReference,\n floating\n }\n } = context;\n const {\n listRef,\n activeIndex,\n onNavigate: unstable_onNavigate = () => {},\n enabled = true,\n selectedIndex = null,\n allowEscape = false,\n loop = false,\n nested = false,\n rtl = false,\n virtual = false,\n focusItemOnOpen = 'auto',\n focusItemOnHover = true,\n openOnArrowKeyDown = true,\n disabledIndices = undefined,\n orientation = 'vertical',\n cols = 1,\n scrollItemIntoView = true,\n virtualItemRef\n } = props;\n if (process.env.NODE_ENV !== \"production\") {\n if (allowEscape) {\n if (!loop) {\n console.warn(['Floating UI: `useListNavigation` looping must be enabled to allow', 'escaping.'].join(' '));\n }\n if (!virtual) {\n console.warn(['Floating UI: `useListNavigation` must be virtual to allow', 'escaping.'].join(' '));\n }\n }\n if (orientation === 'vertical' && cols > 1) {\n console.warn(['Floating UI: In grid list navigation mode (`cols` > 1), the', '`orientation` should be either \"horizontal\" or \"both\".'].join(' '));\n }\n }\n const parentId = useFloatingParentNodeId();\n const tree = useFloatingTree();\n const onNavigate = useEffectEvent(unstable_onNavigate);\n const focusItemOnOpenRef = React.useRef(focusItemOnOpen);\n const indexRef = React.useRef(selectedIndex != null ? selectedIndex : -1);\n const keyRef = React.useRef(null);\n const isPointerModalityRef = React.useRef(true);\n const previousOnNavigateRef = React.useRef(onNavigate);\n const previousMountedRef = React.useRef(!!floating);\n const forceSyncFocus = React.useRef(false);\n const forceScrollIntoViewRef = React.useRef(false);\n const disabledIndicesRef = useLatestRef(disabledIndices);\n const latestOpenRef = useLatestRef(open);\n const scrollItemIntoViewRef = useLatestRef(scrollItemIntoView);\n const [activeId, setActiveId] = React.useState();\n const [virtualId, setVirtualId] = React.useState();\n const focusItem = useEffectEvent(function (listRef, indexRef, forceScrollIntoView) {\n if (forceScrollIntoView === void 0) {\n forceScrollIntoView = false;\n }\n const item = listRef.current[indexRef.current];\n if (!item) return;\n if (virtual) {\n setActiveId(item.id);\n tree == null ? void 0 : tree.events.emit('virtualfocus', item);\n if (virtualItemRef) {\n virtualItemRef.current = item;\n }\n } else {\n enqueueFocus(item, {\n preventScroll: true,\n // Mac Safari does not move the virtual cursor unless the focus call\n // is sync. However, for the very first focus call, we need to wait\n // for the position to be ready in order to prevent unwanted\n // scrolling. This means the virtual cursor will not move to the first\n // item when first opening the floating element, but will on\n // subsequent calls. `preventScroll` is supported in modern Safari,\n // so we can use that instead.\n // iOS Safari must be async or the first item will not be focused.\n sync: isMac() && isSafari() ? isPreventScrollSupported || forceSyncFocus.current : false\n });\n }\n requestAnimationFrame(() => {\n const scrollIntoViewOptions = scrollItemIntoViewRef.current;\n const shouldScrollIntoView = scrollIntoViewOptions && item && (forceScrollIntoView || !isPointerModalityRef.current);\n if (shouldScrollIntoView) {\n // JSDOM doesn't support `.scrollIntoView()` but it's widely supported\n // by all browsers.\n item.scrollIntoView == null ? void 0 : item.scrollIntoView(typeof scrollIntoViewOptions === 'boolean' ? {\n block: 'nearest',\n inline: 'nearest'\n } : scrollIntoViewOptions);\n }\n });\n });\n index(() => {\n document.createElement('div').focus({\n get preventScroll() {\n isPreventScrollSupported = true;\n return false;\n }\n });\n }, []);\n\n // Sync `selectedIndex` to be the `activeIndex` upon opening the floating\n // element. Also, reset `activeIndex` upon closing the floating element.\n index(() => {\n if (!enabled) {\n return;\n }\n if (open && floating) {\n if (focusItemOnOpenRef.current && selectedIndex != null) {\n // Regardless of the pointer modality, we want to ensure the selected\n // item comes into view when the floating element is opened.\n forceScrollIntoViewRef.current = true;\n onNavigate(selectedIndex);\n }\n } else if (previousMountedRef.current) {\n // Since the user can specify `onNavigate` conditionally\n // (onNavigate: open ? setActiveIndex : setSelectedIndex),\n // we store and call the previous function.\n indexRef.current = -1;\n previousOnNavigateRef.current(null);\n }\n }, [enabled, open, floating, selectedIndex, onNavigate]);\n\n // Sync `activeIndex` to be the focused item while the floating element is\n // open.\n index(() => {\n if (!enabled) {\n return;\n }\n if (open && floating) {\n if (activeIndex == null) {\n forceSyncFocus.current = false;\n if (selectedIndex != null) {\n return;\n }\n\n // Reset while the floating element was open (e.g. the list changed).\n if (previousMountedRef.current) {\n indexRef.current = -1;\n focusItem(listRef, indexRef);\n }\n\n // Initial sync.\n if (!previousMountedRef.current && focusItemOnOpenRef.current && (keyRef.current != null || focusItemOnOpenRef.current === true && keyRef.current == null)) {\n let runs = 0;\n const waitForListPopulated = () => {\n if (listRef.current[0] == null) {\n // Avoid letting the browser paint if possible on the first try,\n // otherwise use rAF. Don't try more than twice, since something\n // is wrong otherwise.\n if (runs < 2) {\n const scheduler = runs ? requestAnimationFrame : queueMicrotask;\n scheduler(waitForListPopulated);\n }\n runs++;\n } else {\n indexRef.current = keyRef.current == null || isMainOrientationToEndKey(keyRef.current, orientation, rtl) || nested ? getMinIndex(listRef, disabledIndicesRef.current) : getMaxIndex(listRef, disabledIndicesRef.current);\n keyRef.current = null;\n onNavigate(indexRef.current);\n }\n };\n waitForListPopulated();\n }\n } else if (!isIndexOutOfBounds(listRef, activeIndex)) {\n indexRef.current = activeIndex;\n focusItem(listRef, indexRef, forceScrollIntoViewRef.current);\n forceScrollIntoViewRef.current = false;\n }\n }\n }, [enabled, open, floating, activeIndex, selectedIndex, nested, listRef, orientation, rtl, onNavigate, focusItem, disabledIndicesRef]);\n\n // Ensure the parent floating element has focus when a nested child closes\n // to allow arrow key navigation to work after the pointer leaves the child.\n index(() => {\n var _nodes$find, _nodes$find$context;\n if (!enabled || floating || !tree || virtual || !previousMountedRef.current) {\n return;\n }\n const nodes = tree.nodesRef.current;\n const parent = (_nodes$find = nodes.find(node => node.id === parentId)) == null ? void 0 : (_nodes$find$context = _nodes$find.context) == null ? void 0 : _nodes$find$context.elements.floating;\n const activeEl = activeElement(getDocument(floating));\n const treeContainsActiveEl = nodes.some(node => node.context && contains(node.context.elements.floating, activeEl));\n if (parent && !treeContainsActiveEl && isPointerModalityRef.current) {\n parent.focus({\n preventScroll: true\n });\n }\n }, [enabled, floating, tree, parentId, virtual]);\n index(() => {\n if (!enabled || !tree || !virtual || parentId) return;\n function handleVirtualFocus(item) {\n setVirtualId(item.id);\n if (virtualItemRef) {\n virtualItemRef.current = item;\n }\n }\n tree.events.on('virtualfocus', handleVirtualFocus);\n return () => {\n tree.events.off('virtualfocus', handleVirtualFocus);\n };\n }, [enabled, tree, virtual, parentId, virtualItemRef]);\n index(() => {\n previousOnNavigateRef.current = onNavigate;\n previousMountedRef.current = !!floating;\n });\n index(() => {\n if (!open) {\n keyRef.current = null;\n }\n }, [open]);\n const hasActiveIndex = activeIndex != null;\n const item = React.useMemo(() => {\n function syncCurrentTarget(currentTarget) {\n if (!open) return;\n const index = listRef.current.indexOf(currentTarget);\n if (index !== -1) {\n onNavigate(index);\n }\n }\n const props = {\n onFocus(_ref) {\n let {\n currentTarget\n } = _ref;\n syncCurrentTarget(currentTarget);\n },\n onClick: _ref2 => {\n let {\n currentTarget\n } = _ref2;\n return currentTarget.focus({\n preventScroll: true\n });\n },\n // Safari\n ...(focusItemOnHover && {\n onMouseMove(_ref3) {\n let {\n currentTarget\n } = _ref3;\n syncCurrentTarget(currentTarget);\n },\n onPointerLeave(_ref4) {\n let {\n pointerType\n } = _ref4;\n if (!isPointerModalityRef.current || pointerType === 'touch') {\n return;\n }\n indexRef.current = -1;\n focusItem(listRef, indexRef);\n onNavigate(null);\n if (!virtual) {\n enqueueFocus(refs.floating.current, {\n preventScroll: true\n });\n }\n }\n })\n };\n return props;\n }, [open, refs, focusItem, focusItemOnHover, listRef, onNavigate, virtual]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n const disabledIndices = disabledIndicesRef.current;\n function onKeyDown(event) {\n isPointerModalityRef.current = false;\n forceSyncFocus.current = true;\n\n // If the floating element is animating out, ignore navigation. Otherwise,\n // the `activeIndex` gets set to 0 despite not being open so the next time\n // the user ArrowDowns, the first item won't be focused.\n if (!latestOpenRef.current && event.currentTarget === refs.floating.current) {\n return;\n }\n if (nested && isCrossOrientationCloseKey(event.key, orientation, rtl)) {\n stopEvent(event);\n onOpenChange(false, event.nativeEvent);\n if (isHTMLElement(domReference) && !virtual) {\n domReference.focus();\n }\n return;\n }\n const currentIndex = indexRef.current;\n const minIndex = getMinIndex(listRef, disabledIndices);\n const maxIndex = getMaxIndex(listRef, disabledIndices);\n if (event.key === 'Home') {\n stopEvent(event);\n indexRef.current = minIndex;\n onNavigate(indexRef.current);\n }\n if (event.key === 'End') {\n stopEvent(event);\n indexRef.current = maxIndex;\n onNavigate(indexRef.current);\n }\n\n // Grid navigation.\n if (cols > 1) {\n indexRef.current = getGridNavigatedIndex(listRef, {\n event,\n orientation,\n loop,\n cols,\n disabledIndices,\n minIndex,\n maxIndex,\n prevIndex: indexRef.current,\n stopEvent: true\n });\n onNavigate(indexRef.current);\n if (orientation === 'both') {\n return;\n }\n }\n if (isMainOrientationKey(event.key, orientation)) {\n stopEvent(event);\n\n // Reset the index if no item is focused.\n if (open && !virtual && activeElement(event.currentTarget.ownerDocument) === event.currentTarget) {\n indexRef.current = isMainOrientationToEndKey(event.key, orientation, rtl) ? minIndex : maxIndex;\n onNavigate(indexRef.current);\n return;\n }\n if (isMainOrientationToEndKey(event.key, orientation, rtl)) {\n if (loop) {\n indexRef.current = currentIndex >= maxIndex ? allowEscape && currentIndex !== listRef.current.length ? -1 : minIndex : findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n });\n } else {\n indexRef.current = Math.min(maxIndex, findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n }));\n }\n } else {\n if (loop) {\n indexRef.current = currentIndex <= minIndex ? allowEscape && currentIndex !== -1 ? listRef.current.length : maxIndex : findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n });\n } else {\n indexRef.current = Math.max(minIndex, findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n }));\n }\n }\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n onNavigate(null);\n } else {\n onNavigate(indexRef.current);\n }\n }\n }\n function checkVirtualMouse(event) {\n if (focusItemOnOpen === 'auto' && isVirtualClick(event.nativeEvent)) {\n focusItemOnOpenRef.current = true;\n }\n }\n function checkVirtualPointer(event) {\n // `pointerdown` fires first, reset the state then perform the checks.\n focusItemOnOpenRef.current = focusItemOnOpen;\n if (focusItemOnOpen === 'auto' && isVirtualPointerEvent(event.nativeEvent)) {\n focusItemOnOpenRef.current = true;\n }\n }\n const ariaActiveDescendantProp = virtual && open && hasActiveIndex && {\n 'aria-activedescendant': virtualId || activeId\n };\n const activeItem = listRef.current.find(item => (item == null ? void 0 : item.id) === activeId);\n return {\n reference: {\n ...ariaActiveDescendantProp,\n onKeyDown(event) {\n isPointerModalityRef.current = false;\n const isArrowKey = event.key.indexOf('Arrow') === 0;\n const isCrossOpenKey = isCrossOrientationOpenKey(event.key, orientation, rtl);\n const isCrossCloseKey = isCrossOrientationCloseKey(event.key, orientation, rtl);\n const isMainKey = isMainOrientationKey(event.key, orientation);\n const isNavigationKey = (nested ? isCrossOpenKey : isMainKey) || event.key === 'Enter' || event.key.trim() === '';\n if (virtual && open) {\n const rootNode = tree == null ? void 0 : tree.nodesRef.current.find(node => node.parentId == null);\n const deepestNode = tree && rootNode ? getDeepestNode(tree.nodesRef.current, rootNode.id) : null;\n if (isArrowKey && deepestNode && virtualItemRef) {\n const eventObject = new KeyboardEvent('keydown', {\n key: event.key,\n bubbles: true\n });\n if (isCrossOpenKey || isCrossCloseKey) {\n var _deepestNode$context, _deepestNode$context2;\n const isCurrentTarget = ((_deepestNode$context = deepestNode.context) == null ? void 0 : _deepestNode$context.elements.domReference) === event.currentTarget;\n const dispatchItem = isCrossCloseKey && !isCurrentTarget ? (_deepestNode$context2 = deepestNode.context) == null ? void 0 : _deepestNode$context2.elements.domReference : isCrossOpenKey ? activeItem : null;\n if (dispatchItem) {\n stopEvent(event);\n dispatchItem.dispatchEvent(eventObject);\n setVirtualId(undefined);\n }\n }\n if (isMainKey && deepestNode.context) {\n if (deepestNode.context.open && deepestNode.parentId && event.currentTarget !== deepestNode.context.elements.domReference) {\n var _deepestNode$context$;\n stopEvent(event);\n (_deepestNode$context$ = deepestNode.context.elements.domReference) == null ? void 0 : _deepestNode$context$.dispatchEvent(eventObject);\n return;\n }\n }\n }\n return onKeyDown(event);\n }\n\n // If a floating element should not open on arrow key down, avoid\n // setting `activeIndex` while it's closed.\n if (!open && !openOnArrowKeyDown && isArrowKey) {\n return;\n }\n if (isNavigationKey) {\n keyRef.current = nested && isMainKey ? null : event.key;\n }\n if (nested) {\n if (isCrossOpenKey) {\n stopEvent(event);\n if (open) {\n indexRef.current = getMinIndex(listRef, disabledIndices);\n onNavigate(indexRef.current);\n } else {\n onOpenChange(true, event.nativeEvent);\n }\n }\n return;\n }\n if (isMainKey) {\n if (selectedIndex != null) {\n indexRef.current = selectedIndex;\n }\n stopEvent(event);\n if (!open && openOnArrowKeyDown) {\n onOpenChange(true, event.nativeEvent);\n } else {\n onKeyDown(event);\n }\n if (open) {\n onNavigate(indexRef.current);\n }\n }\n },\n onFocus() {\n if (open) {\n onNavigate(null);\n }\n },\n onPointerDown: checkVirtualPointer,\n onMouseDown: checkVirtualMouse,\n onClick: checkVirtualMouse\n },\n floating: {\n 'aria-orientation': orientation === 'both' ? undefined : orientation,\n ...ariaActiveDescendantProp,\n onKeyDown,\n onPointerMove() {\n isPointerModalityRef.current = true;\n }\n },\n item\n };\n }, [domReference, refs, activeId, virtualId, disabledIndicesRef, latestOpenRef, listRef, enabled, orientation, rtl, virtual, open, hasActiveIndex, nested, selectedIndex, openOnArrowKeyDown, allowEscape, cols, loop, focusItemOnOpen, onNavigate, onOpenChange, item, tree, virtualItemRef]);\n}\n\n/**\n * Adds base screen reader props to the reference and floating elements for a\n * given floating element `role`.\n * @see https://floating-ui.com/docs/useRole\n */\nfunction useRole(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n floatingId\n } = context;\n const {\n enabled = true,\n role = 'dialog'\n } = props;\n const referenceId = useId();\n return React.useMemo(() => {\n const floatingProps = {\n id: floatingId,\n role\n };\n if (!enabled) {\n return {};\n }\n if (role === 'tooltip') {\n return {\n reference: {\n 'aria-describedby': open ? floatingId : undefined\n },\n floating: floatingProps\n };\n }\n return {\n reference: {\n 'aria-expanded': open ? 'true' : 'false',\n 'aria-haspopup': role === 'alertdialog' ? 'dialog' : role,\n 'aria-controls': open ? floatingId : undefined,\n ...(role === 'listbox' && {\n role: 'combobox'\n }),\n ...(role === 'menu' && {\n id: referenceId\n })\n },\n floating: {\n ...floatingProps,\n ...(role === 'menu' && {\n 'aria-labelledby': referenceId\n })\n }\n };\n }, [enabled, role, open, floatingId, referenceId]);\n}\n\n// Converts a JS style key like `backgroundColor` to a CSS transition-property\n// like `background-color`.\nconst camelCaseToKebabCase = str => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? '-' : '') + $.toLowerCase());\nfunction execWithArgsOrReturn(valueOrFn, args) {\n return typeof valueOrFn === 'function' ? valueOrFn(args) : valueOrFn;\n}\nfunction useDelayUnmount(open, durationMs) {\n const [isMounted, setIsMounted] = React.useState(open);\n if (open && !isMounted) {\n setIsMounted(true);\n }\n React.useEffect(() => {\n if (!open) {\n const timeout = setTimeout(() => setIsMounted(false), durationMs);\n return () => clearTimeout(timeout);\n }\n }, [open, durationMs]);\n return isMounted;\n}\n/**\n * Provides a status string to apply CSS transitions to a floating element,\n * correctly handling placement-aware transitions.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstatus\n */\nfunction useTransitionStatus(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n elements: {\n floating\n }\n } = context;\n const {\n duration = 250\n } = props;\n const isNumberDuration = typeof duration === 'number';\n const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n const [initiated, setInitiated] = React.useState(false);\n const [status, setStatus] = React.useState('unmounted');\n const isMounted = useDelayUnmount(open, closeDuration);\n\n // `initiated` check prevents this `setState` call from breaking\n // <FloatingPortal />. This call is necessary to ensure subsequent opens\n // after the initial one allows the correct side animation to play when the\n // placement has changed.\n index(() => {\n if (initiated && !isMounted) {\n setStatus('unmounted');\n }\n }, [initiated, isMounted]);\n index(() => {\n if (!floating) return;\n if (open) {\n setStatus('initial');\n const frame = requestAnimationFrame(() => {\n setStatus('open');\n });\n return () => {\n cancelAnimationFrame(frame);\n };\n } else {\n setInitiated(true);\n setStatus('close');\n }\n }, [open, floating]);\n return {\n isMounted,\n status\n };\n}\n/**\n * Provides styles to apply CSS transitions to a floating element, correctly\n * handling placement-aware transitions. Wrapper around `useTransitionStatus`.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstyles\n */\nfunction useTransitionStyles(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n initial: unstable_initial = {\n opacity: 0\n },\n open: unstable_open,\n close: unstable_close,\n common: unstable_common,\n duration = 250\n } = props;\n const placement = context.placement;\n const side = placement.split('-')[0];\n const fnArgs = React.useMemo(() => ({\n side,\n placement\n }), [side, placement]);\n const isNumberDuration = typeof duration === 'number';\n const openDuration = (isNumberDuration ? duration : duration.open) || 0;\n const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n const [styles, setStyles] = React.useState(() => ({\n ...execWithArgsOrReturn(unstable_common, fnArgs),\n ...execWithArgsOrReturn(unstable_initial, fnArgs)\n }));\n const {\n isMounted,\n status\n } = useTransitionStatus(context, {\n duration\n });\n const initialRef = useLatestRef(unstable_initial);\n const openRef = useLatestRef(unstable_open);\n const closeRef = useLatestRef(unstable_close);\n const commonRef = useLatestRef(unstable_common);\n index(() => {\n const initialStyles = execWithArgsOrReturn(initialRef.current, fnArgs);\n const closeStyles = execWithArgsOrReturn(closeRef.current, fnArgs);\n const commonStyles = execWithArgsOrReturn(commonRef.current, fnArgs);\n const openStyles = execWithArgsOrReturn(openRef.current, fnArgs) || Object.keys(initialStyles).reduce((acc, key) => {\n acc[key] = '';\n return acc;\n }, {});\n if (status === 'initial') {\n setStyles(styles => ({\n transitionProperty: styles.transitionProperty,\n ...commonStyles,\n ...initialStyles\n }));\n }\n if (status === 'open') {\n setStyles({\n transitionProperty: Object.keys(openStyles).map(camelCaseToKebabCase).join(','),\n transitionDuration: openDuration + \"ms\",\n ...commonStyles,\n ...openStyles\n });\n }\n if (status === 'close') {\n const styles = closeStyles || initialStyles;\n setStyles({\n transitionProperty: Object.keys(styles).map(camelCaseToKebabCase).join(','),\n transitionDuration: closeDuration + \"ms\",\n ...commonStyles,\n ...styles\n });\n }\n }, [closeDuration, closeRef, initialRef, openRef, commonRef, openDuration, status, fnArgs]);\n return {\n isMounted,\n styles\n };\n}\n\n/**\n * Provides a matching callback that can be used to focus an item as the user\n * types, often used in tandem with `useListNavigation()`.\n * @see https://floating-ui.com/docs/useTypeahead\n */\nfunction useTypeahead(context, props) {\n var _ref;\n const {\n open,\n dataRef\n } = context;\n const {\n listRef,\n activeIndex,\n onMatch: unstable_onMatch,\n onTypingChange: unstable_onTypingChange,\n enabled = true,\n findMatch = null,\n resetMs = 750,\n ignoreKeys = [],\n selectedIndex = null\n } = props;\n const timeoutIdRef = React.useRef();\n const stringRef = React.useRef('');\n const prevIndexRef = React.useRef((_ref = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref : -1);\n const matchIndexRef = React.useRef(null);\n const onMatch = useEffectEvent(unstable_onMatch);\n const onTypingChange = useEffectEvent(unstable_onTypingChange);\n const findMatchRef = useLatestRef(findMatch);\n const ignoreKeysRef = useLatestRef(ignoreKeys);\n index(() => {\n if (open) {\n clearTimeout(timeoutIdRef.current);\n matchIndexRef.current = null;\n stringRef.current = '';\n }\n }, [open]);\n index(() => {\n // Sync arrow key navigation but not typeahead navigation.\n if (open && stringRef.current === '') {\n var _ref2;\n prevIndexRef.current = (_ref2 = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref2 : -1;\n }\n }, [open, selectedIndex, activeIndex]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n function setTypingChange(value) {\n if (value) {\n if (!dataRef.current.typing) {\n dataRef.current.typing = value;\n onTypingChange(value);\n }\n } else {\n if (dataRef.current.typing) {\n dataRef.current.typing = value;\n onTypingChange(value);\n }\n }\n }\n function getMatchingIndex(list, orderedList, string) {\n const str = findMatchRef.current ? findMatchRef.current(orderedList, string) : orderedList.find(text => (text == null ? void 0 : text.toLocaleLowerCase().indexOf(string.toLocaleLowerCase())) === 0);\n return str ? list.indexOf(str) : -1;\n }\n function onKeyDown(event) {\n const listContent = listRef.current;\n if (stringRef.current.length > 0 && stringRef.current[0] !== ' ') {\n if (getMatchingIndex(listContent, listContent, stringRef.current) === -1) {\n setTypingChange(false);\n } else if (event.key === ' ') {\n stopEvent(event);\n }\n }\n if (listContent == null || ignoreKeysRef.current.includes(event.key) ||\n // Character key.\n event.key.length !== 1 ||\n // Modifier key.\n event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n if (open && event.key !== ' ') {\n stopEvent(event);\n setTypingChange(true);\n }\n\n // Bail out if the list contains a word like \"llama\" or \"aaron\". TODO:\n // allow it in this case, too.\n const allowRapidSuccessionOfFirstLetter = listContent.every(text => {\n var _text$, _text$2;\n return text ? ((_text$ = text[0]) == null ? void 0 : _text$.toLocaleLowerCase()) !== ((_text$2 = text[1]) == null ? void 0 : _text$2.toLocaleLowerCase()) : true;\n });\n\n // Allows the user to cycle through items that start with the same letter\n // in rapid succession.\n if (allowRapidSuccessionOfFirstLetter && stringRef.current === event.key) {\n stringRef.current = '';\n prevIndexRef.current = matchIndexRef.current;\n }\n stringRef.current += event.key;\n clearTimeout(timeoutIdRef.current);\n timeoutIdRef.current = setTimeout(() => {\n stringRef.current = '';\n prevIndexRef.current = matchIndexRef.current;\n setTypingChange(false);\n }, resetMs);\n const prevIndex = prevIndexRef.current;\n const index = getMatchingIndex(listContent, [...listContent.slice((prevIndex || 0) + 1), ...listContent.slice(0, (prevIndex || 0) + 1)], stringRef.current);\n if (index !== -1) {\n onMatch(index);\n matchIndexRef.current = index;\n } else if (event.key !== ' ') {\n stringRef.current = '';\n setTypingChange(false);\n }\n }\n return {\n reference: {\n onKeyDown\n },\n floating: {\n onKeyDown,\n onKeyUp(event) {\n if (event.key === ' ') {\n setTypingChange(false);\n }\n }\n }\n };\n }, [enabled, open, dataRef, listRef, resetMs, ignoreKeysRef, findMatchRef, onMatch, onTypingChange]);\n}\n\nfunction getArgsWithCustomFloatingHeight(state, height) {\n return {\n ...state,\n rects: {\n ...state.rects,\n floating: {\n ...state.rects.floating,\n height\n }\n }\n };\n}\n/**\n * Positions the floating element such that an inner element inside\n * of it is anchored to the reference element.\n * @see https://floating-ui.com/docs/inner\n */\nconst inner = props => ({\n name: 'inner',\n options: props,\n async fn(state) {\n const {\n listRef,\n overflowRef,\n onFallbackChange,\n offset: innerOffset = 0,\n index = 0,\n minItemsVisible = 4,\n referenceOverflowThreshold = 0,\n scrollRef,\n ...detectOverflowOptions\n } = props;\n const {\n rects,\n elements: {\n floating\n }\n } = state;\n const item = listRef.current[index];\n if (process.env.NODE_ENV !== \"production\") {\n if (!state.placement.startsWith('bottom')) {\n console.warn(['Floating UI: `placement` side must be \"bottom\" when using the', '`inner` middleware.'].join(' '));\n }\n }\n if (!item) {\n return {};\n }\n const nextArgs = {\n ...state,\n ...(await offset(-item.offsetTop - floating.clientTop - rects.reference.height / 2 - item.offsetHeight / 2 - innerOffset).fn(state))\n };\n const el = (scrollRef == null ? void 0 : scrollRef.current) || floating;\n const overflow = await detectOverflow(getArgsWithCustomFloatingHeight(nextArgs, el.scrollHeight), detectOverflowOptions);\n const refOverflow = await detectOverflow(nextArgs, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const diffY = Math.max(0, overflow.top);\n const nextY = nextArgs.y + diffY;\n const maxHeight = Math.max(0, el.scrollHeight - diffY - Math.max(0, overflow.bottom));\n el.style.maxHeight = maxHeight + \"px\";\n el.scrollTop = diffY;\n\n // There is not enough space, fallback to standard anchored positioning\n if (onFallbackChange) {\n if (el.offsetHeight < item.offsetHeight * Math.min(minItemsVisible, listRef.current.length - 1) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold) {\n flushSync(() => onFallbackChange(true));\n } else {\n flushSync(() => onFallbackChange(false));\n }\n }\n if (overflowRef) {\n overflowRef.current = await detectOverflow(getArgsWithCustomFloatingHeight({\n ...nextArgs,\n y: nextY\n }, el.offsetHeight), detectOverflowOptions);\n }\n return {\n y: nextY\n };\n }\n});\n/**\n * Changes the `inner` middleware's `offset` upon a `wheel` event to\n * expand the floating element's height, revealing more list items.\n * @see https://floating-ui.com/docs/inner\n */\nfunction useInnerOffset(context, props) {\n const {\n open,\n elements\n } = context;\n const {\n enabled = true,\n overflowRef,\n scrollRef,\n onChange: unstable_onChange\n } = props;\n const onChange = useEffectEvent(unstable_onChange);\n const controlledScrollingRef = React.useRef(false);\n const prevScrollTopRef = React.useRef(null);\n const initialOverflowRef = React.useRef(null);\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function onWheel(e) {\n if (e.ctrlKey || !el || overflowRef.current == null) {\n return;\n }\n const dY = e.deltaY;\n const isAtTop = overflowRef.current.top >= -0.5;\n const isAtBottom = overflowRef.current.bottom >= -0.5;\n const remainingScroll = el.scrollHeight - el.clientHeight;\n const sign = dY < 0 ? -1 : 1;\n const method = dY < 0 ? 'max' : 'min';\n if (el.scrollHeight <= el.clientHeight) {\n return;\n }\n if (!isAtTop && dY > 0 || !isAtBottom && dY < 0) {\n e.preventDefault();\n flushSync(() => {\n onChange(d => d + Math[method](dY, remainingScroll * sign));\n });\n } else if (/firefox/i.test(getUserAgent())) {\n // Needed to propagate scrolling during momentum scrolling phase once\n // it gets limited by the boundary. UX improvement, not critical.\n el.scrollTop += dY;\n }\n }\n const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n if (open && el) {\n el.addEventListener('wheel', onWheel);\n\n // Wait for the position to be ready.\n requestAnimationFrame(() => {\n prevScrollTopRef.current = el.scrollTop;\n if (overflowRef.current != null) {\n initialOverflowRef.current = {\n ...overflowRef.current\n };\n }\n });\n return () => {\n prevScrollTopRef.current = null;\n initialOverflowRef.current = null;\n el.removeEventListener('wheel', onWheel);\n };\n }\n }, [enabled, open, elements.floating, overflowRef, scrollRef, onChange]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n floating: {\n onKeyDown() {\n controlledScrollingRef.current = true;\n },\n onWheel() {\n controlledScrollingRef.current = false;\n },\n onPointerMove() {\n controlledScrollingRef.current = false;\n },\n onScroll() {\n const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n if (!overflowRef.current || !el || !controlledScrollingRef.current) {\n return;\n }\n if (prevScrollTopRef.current !== null) {\n const scrollDiff = el.scrollTop - prevScrollTopRef.current;\n if (overflowRef.current.bottom < -0.5 && scrollDiff < -1 || overflowRef.current.top < -0.5 && scrollDiff > 1) {\n flushSync(() => onChange(d => d + scrollDiff));\n }\n }\n\n // [Firefox] Wait for the height change to have been applied.\n requestAnimationFrame(() => {\n prevScrollTopRef.current = el.scrollTop;\n });\n }\n }\n };\n }, [enabled, overflowRef, elements.floating, scrollRef, onChange]);\n}\n\nfunction isPointInPolygon(point, polygon) {\n const [x, y] = point;\n let isInside = false;\n const length = polygon.length;\n for (let i = 0, j = length - 1; i < length; j = i++) {\n const [xi, yi] = polygon[i] || [0, 0];\n const [xj, yj] = polygon[j] || [0, 0];\n const intersect = yi >= y !== yj >= y && x <= (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) {\n isInside = !isInside;\n }\n }\n return isInside;\n}\nfunction isInside(point, rect) {\n return point[0] >= rect.x && point[0] <= rect.x + rect.width && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n}\n/**\n * Generates a safe polygon area that the user can traverse without closing the\n * floating element once leaving the reference element.\n * @see https://floating-ui.com/docs/useHover#safePolygon\n */\nfunction safePolygon(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n buffer = 0.5,\n blockPointerEvents = false,\n requireIntent = true\n } = options;\n let timeoutId;\n let hasLanded = false;\n let lastX = null;\n let lastY = null;\n let lastCursorTime = performance.now();\n function getCursorSpeed(x, y) {\n const currentTime = performance.now();\n const elapsedTime = currentTime - lastCursorTime;\n if (lastX === null || lastY === null || elapsedTime === 0) {\n lastX = x;\n lastY = y;\n lastCursorTime = currentTime;\n return null;\n }\n const deltaX = x - lastX;\n const deltaY = y - lastY;\n const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n const speed = distance / elapsedTime; // px / ms\n\n lastX = x;\n lastY = y;\n lastCursorTime = currentTime;\n return speed;\n }\n const fn = _ref => {\n let {\n x,\n y,\n placement,\n elements,\n onClose,\n nodeId,\n tree\n } = _ref;\n return function onMouseMove(event) {\n function close() {\n clearTimeout(timeoutId);\n onClose();\n }\n clearTimeout(timeoutId);\n if (!elements.domReference || !elements.floating || placement == null || x == null || y == null) {\n return;\n }\n const {\n clientX,\n clientY\n } = event;\n const clientPoint = [clientX, clientY];\n const target = getTarget(event);\n const isLeave = event.type === 'mouseleave';\n const isOverFloatingEl = contains(elements.floating, target);\n const isOverReferenceEl = contains(elements.domReference, target);\n const refRect = elements.domReference.getBoundingClientRect();\n const rect = elements.floating.getBoundingClientRect();\n const side = placement.split('-')[0];\n const cursorLeaveFromRight = x > rect.right - rect.width / 2;\n const cursorLeaveFromBottom = y > rect.bottom - rect.height / 2;\n const isOverReferenceRect = isInside(clientPoint, refRect);\n const isFloatingWider = rect.width > refRect.width;\n const isFloatingTaller = rect.height > refRect.height;\n const left = (isFloatingWider ? refRect : rect).left;\n const right = (isFloatingWider ? refRect : rect).right;\n const top = (isFloatingTaller ? refRect : rect).top;\n const bottom = (isFloatingTaller ? refRect : rect).bottom;\n if (isOverFloatingEl) {\n hasLanded = true;\n if (!isLeave) {\n return;\n }\n }\n if (isOverReferenceEl) {\n hasLanded = false;\n }\n if (isOverReferenceEl && !isLeave) {\n hasLanded = true;\n return;\n }\n\n // Prevent overlapping floating element from being stuck in an open-close\n // loop: https://github.com/floating-ui/floating-ui/issues/1910\n if (isLeave && isElement(event.relatedTarget) && contains(elements.floating, event.relatedTarget)) {\n return;\n }\n\n // If any nested child is open, abort.\n if (tree && getChildren(tree.nodesRef.current, nodeId).some(_ref2 => {\n let {\n context\n } = _ref2;\n return context == null ? void 0 : context.open;\n })) {\n return;\n }\n\n // If the pointer is leaving from the opposite side, the \"buffer\" logic\n // creates a point where the floating element remains open, but should be\n // ignored.\n // A constant of 1 handles floating point rounding errors.\n if (side === 'top' && y >= refRect.bottom - 1 || side === 'bottom' && y <= refRect.top + 1 || side === 'left' && x >= refRect.right - 1 || side === 'right' && x <= refRect.left + 1) {\n return close();\n }\n\n // Ignore when the cursor is within the rectangular trough between the\n // two elements. Since the triangle is created from the cursor point,\n // which can start beyond the ref element's edge, traversing back and\n // forth from the ref to the floating element can cause it to close. This\n // ensures it always remains open in that case.\n let rectPoly = [];\n switch (side) {\n case 'top':\n rectPoly = [[left, refRect.top + 1], [left, rect.bottom - 1], [right, rect.bottom - 1], [right, refRect.top + 1]];\n break;\n case 'bottom':\n rectPoly = [[left, rect.top + 1], [left, refRect.bottom - 1], [right, refRect.bottom - 1], [right, rect.top + 1]];\n break;\n case 'left':\n rectPoly = [[rect.right - 1, bottom], [rect.right - 1, top], [refRect.left + 1, top], [refRect.left + 1, bottom]];\n break;\n case 'right':\n rectPoly = [[refRect.right - 1, bottom], [refRect.right - 1, top], [rect.left + 1, top], [rect.left + 1, bottom]];\n break;\n }\n function getPolygon(_ref3) {\n let [x, y] = _ref3;\n switch (side) {\n case 'top':\n {\n const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.bottom - buffer : isFloatingWider ? rect.bottom - buffer : rect.top], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.bottom - buffer : rect.top : rect.bottom - buffer]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n case 'bottom':\n {\n const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.top + buffer : isFloatingWider ? rect.top + buffer : rect.bottom], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.top + buffer : rect.bottom : rect.top + buffer]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n case 'left':\n {\n const cursorPointOne = [x + buffer + 1, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const cursorPointTwo = [x + buffer + 1, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const commonPoints = [[cursorLeaveFromBottom ? rect.right - buffer : isFloatingTaller ? rect.right - buffer : rect.left, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.right - buffer : rect.left : rect.right - buffer, rect.bottom]];\n return [...commonPoints, cursorPointOne, cursorPointTwo];\n }\n case 'right':\n {\n const cursorPointOne = [x - buffer, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const cursorPointTwo = [x - buffer, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const commonPoints = [[cursorLeaveFromBottom ? rect.left + buffer : isFloatingTaller ? rect.left + buffer : rect.right, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.left + buffer : rect.right : rect.left + buffer, rect.bottom]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n }\n }\n if (isPointInPolygon([clientX, clientY], rectPoly)) {\n return;\n } else if (hasLanded && !isOverReferenceRect) {\n return close();\n }\n if (!isLeave && requireIntent) {\n const cursorSpeed = getCursorSpeed(event.clientX, event.clientY);\n const cursorSpeedThreshold = 0.1;\n if (cursorSpeed !== null && cursorSpeed < cursorSpeedThreshold) {\n return close();\n }\n }\n if (!isPointInPolygon([clientX, clientY], getPolygon([x, y]))) {\n close();\n } else if (!hasLanded && requireIntent) {\n timeoutId = window.setTimeout(close, 40);\n }\n };\n };\n fn.__options = {\n blockPointerEvents\n };\n return fn;\n}\n\nexport { Composite, CompositeItem, FloatingArrow, FloatingDelayGroup, FloatingFocusManager, FloatingList, FloatingNode, FloatingOverlay, FloatingPortal, FloatingTree, inner, safePolygon, useClick, useClientPoint, useDelayGroup, useDelayGroupContext, useDismiss, useFloating, useFloatingNodeId, useFloatingParentNodeId, useFloatingPortalNode, useFloatingTree, useFocus, useHover, useId, useInnerOffset, useInteractions, useListItem, useListNavigation, useMergeRefs, useRole, useTransitionStatus, useTransitionStyles, useTypeahead };\n","import styled from '@emotion/styled';\r\n\r\nexport const InputBase = styled.input`\r\n flex: 1;\r\n\r\n background: ${({ theme }) => theme.colors.white};\r\n border-radius: 12px;\r\n background-origin: border-box;\r\n background-clip: padding-box, border-box;\r\n\r\n border: ${({ theme }) => `1px solid ${theme.colors.grey}`};\r\n\r\n color: ${({ theme }) => theme.colors.greyDarker};\r\n\r\n width: 100%;\r\n height: 44px;\r\n padding: 14px;\r\n\r\n font-weight: 400;\r\n font-size: 0.875rem;\r\n line-height: 1rem;\r\n\r\n &::placeholder {\r\n color: ${({ theme }) => theme.colors.greyDarker60};\r\n }\r\n\r\n &:disabled {\r\n color: ${({ theme }) => `${theme.colors.grey}`};\r\n\r\n background: ${({ theme }) => theme.colors.greyLighter};\r\n\r\n &::placeholder {\r\n color: ${({ theme }) => theme.colors.grey};\r\n }\r\n\r\n &:disabled,\r\n &:disabled:hover {\r\n border: ${({ theme }) => `1px solid ${theme.colors.grey}`};\r\n background-image: none;\r\n }\r\n }\r\n`;\r\n","import styled from '@emotion/styled';\r\n\r\nexport const InputGroup = styled.div<{ disabled?: boolean }>`\r\n position: relative;\r\n\r\n width: 100%;\r\n\r\n * {\r\n color: ${({ theme, disabled }) =>\r\n disabled ? `${theme.colors.grey} !important` : 'inherit'};\r\n }\r\n`;\r\n","import { css, Theme } from '@emotion/react';\r\n\r\nimport { InputBase } from './InputBase';\r\n\r\nexport const basic = (theme: Theme) =>\r\n css({\r\n [`& ${InputBase}`]: {\r\n border: `1px solid ${theme.colors.grey}`,\r\n '&:hover': {\r\n border: `1.4px solid ${theme.colors.greyDarker60}`,\r\n },\r\n '&:focus': {\r\n border: `2px solid ${theme.colors.grey40}`,\r\n },\r\n },\r\n });\r\n\r\nexport const error = (theme: Theme) =>\r\n css({\r\n [`& ${InputBase}`]: {\r\n border: 'double 1px transparent',\r\n backgroundImage: `linear-gradient(white, white),\r\n linear-gradient(to right, ${theme.colors.red}, ${theme.colors.redLighter})`,\r\n '&:hover': {\r\n border: 'double 1.4px transparent',\r\n },\r\n '&:focus': {\r\n border: 'double 2px transparent',\r\n backgroundImage: `linear-gradient(white, white),\r\n linear-gradient(\r\n to right,\r\n ${theme.colors.red40},\r\n ${theme.colors.redLighter40}\r\n )`,\r\n },\r\n },\r\n });\r\n\r\nexport const success = (theme: Theme) =>\r\n css({\r\n [`& ${InputBase}`]: {\r\n border: 'double 1px transparent',\r\n backgroundImage: `linear-gradient(white, white),\r\n linear-gradient(\r\n to right,\r\n ${theme.colors.greenLighter},\r\n ${theme.colors.green}\r\n )`,\r\n '&:hover': {\r\n border: 'double 1.4px transparent',\r\n },\r\n '&:focus': {\r\n border: 'double 2px transparent',\r\n backgroundImage: `linear-gradient(white, white),\r\n linear-gradient(\r\n to right,\r\n ${theme.colors.greenLighter40},\r\n ${theme.colors.green40}\r\n )`,\r\n },\r\n },\r\n svg: {\r\n stroke: `${theme.colors.green}`,\r\n },\r\n });\r\n\r\nexport const custom = () => css({});\r\n\r\nexport const inputStatus = css`\r\n position: absolute;\r\n top: 34%;\r\n right: 14px;\r\n\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n\r\n border-radius: 10px;\r\n width: 14px;\r\n height: 14px;\r\n`;\r\n\r\nexport const startElement = css`\r\n position: absolute;\r\n top: 0;\r\n left: 14px;\r\n\r\n height: 100%;\r\n width: auto;\r\n\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n\r\n border-radius: 10px;\r\n`;\r\n\r\nexport const endElement = css`\r\n position: absolute;\r\n top: 0;\r\n right: 14px;\r\n\r\n height: 100%;\r\n width: auto;\r\n\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n\r\n border-radius: 10px;\r\n`;\r\n","import styled from '@emotion/styled';\r\n\r\nimport Icon from '@components/Icon';\r\n\r\nimport { inputStatus } from './styles';\r\n\r\nexport const InputError = styled.div`\r\n background: ${({ theme }) =>\r\n `linear-gradient(117.5deg, ${theme.colors.red}, ${theme.colors.redLighter});`};\r\n\r\n svg {\r\n transform: rotateX(180deg);\r\n }\r\n`;\r\n\r\nexport const InputStatusError = () => (\r\n <InputError css={inputStatus}>\r\n <Icon name=\"union\" size={10} color=\"#fff\" />\r\n </InputError>\r\n);\r\n","import styled from '@emotion/styled';\r\n\r\nimport Icon from '@components/Icon';\r\n\r\nimport { inputStatus } from './styles';\r\n\r\nexport const InputSuccess = styled.div`\r\n background: ${({ theme }) =>\r\n `linear-gradient(68.38deg, ${theme.colors.greenLighter}, ${theme.colors.green});`};\r\n`;\r\n\r\nexport const InputStatusSuccess = () => (\r\n <InputSuccess css={inputStatus}>\r\n <Icon name=\"check\" size={10} color=\"#fff\" />\r\n </InputSuccess>\r\n);\r\n","import { forwardRef } from 'react';\r\nimport { useMergeRefs } from '@floating-ui/react';\r\nimport { InputBase } from './InputBase';\r\nimport { InputGroup } from './InputGroup';\r\nimport { InputProps, InputStatusColors } from './types';\r\nimport { InputStatusError } from './InputStatusError';\r\nimport { InputStatusSuccess } from './InputStatusSuccess';\r\nimport * as S from './styles';\r\n\r\nconst mapColors: InputStatusColors = {\r\n basic: S.basic,\r\n error: S.error,\r\n success: S.success,\r\n custom: S.custom,\r\n};\r\n\r\nconst InputInner = (\r\n {\r\n name,\r\n type = 'text',\r\n placeholder,\r\n validationSchema,\r\n status = 'basic',\r\n disabled = false,\r\n startElement,\r\n endElement,\r\n className,\r\n inputProps = {},\r\n register,\r\n onKeyUp,\r\n }: InputProps,\r\n inputRef?: React.ForwardedRef<HTMLInputElement | null>,\r\n) => {\r\n if (!register) {\r\n throw new Error('Input component must be used within a Form component');\r\n }\r\n\r\n const showStatusIcon = () => !disabled && !endElement;\r\n\r\n const registerResult = register(name, validationSchema);\r\n return (\r\n <InputGroup css={[mapColors[status]]} disabled={disabled}>\r\n {startElement ? <div css={S.startElement}>{startElement}</div> : null}\r\n <InputBase\r\n type={type}\r\n id={`formElement-${name}`}\r\n placeholder={placeholder}\r\n disabled={disabled}\r\n css={{\r\n paddingLeft: startElement && 40,\r\n paddingRight: endElement && 40,\r\n }}\r\n className={className}\r\n onKeyUp={onKeyUp}\r\n {...inputProps}\r\n {...register(name, validationSchema)}\r\n ref={useMergeRefs([registerResult.ref, inputRef])}\r\n />\r\n\r\n {status === 'error' && showStatusIcon() ? <InputStatusError /> : null}\r\n {status === 'success' && showStatusIcon() ? <InputStatusSuccess /> : null}\r\n\r\n {endElement ? <div css={S.endElement}>{endElement}</div> : null}\r\n </InputGroup>\r\n );\r\n};\r\n\r\nconst Input = forwardRef<HTMLInputElement, InputProps>(InputInner);\r\n\r\nexport default Input;\r\n","import { createContext } from 'react';\r\nimport { ModalContextProps } from './types';\r\n\r\nexport const ModalContext = createContext<ModalContextProps>([\r\n false,\r\n () => {\r\n /* noop */\r\n },\r\n]);\r\n","import { useState } from 'react';\r\n\r\nimport { ModalContext } from './Modal.context';\r\nimport { ModalProps } from './types';\r\n\r\nconst Modal = ({ isOpen: isInitOpen, ...rest }: ModalProps) => {\r\n const [isOpen, setIsOpen] = useState(isInitOpen || false);\r\n\r\n return <ModalContext.Provider value={[isOpen, setIsOpen]} {...rest} />;\r\n};\r\n\r\nexport default Modal;\r\n","import { useContext, cloneElement } from 'react';\r\n\r\nimport { callAll } from '@ssa-ui-kit/utils';\r\n\r\nimport { ModalContext } from '../Modal/Modal.context';\r\n\r\nfunction ModalDismissButton({ children: child }: { children: JSX.Element }) {\r\n const [, setIsOpen] = useContext(ModalContext);\r\n\r\n return cloneElement(child, {\r\n onClick: callAll(() => setIsOpen(false), child.props.onClick),\r\n });\r\n}\r\n\r\nexport default ModalDismissButton;\r\n","import { css, Theme, useTheme } from '@emotion/react';\r\n\r\nimport { ModalDialogProps } from './types';\r\n\r\nconst modalDialogWrapper = (\r\n theme: Theme,\r\n isOpen: ModalDialogProps['isOpen'],\r\n noBackground: ModalDialogProps['noBackground'],\r\n) => css`\r\n display: ${isOpen ? 'flex' : 'none'};\r\n\r\n position: fixed;\r\n inset: 0;\r\n\r\n justify-content: center;\r\n align-items: center;\r\n\r\n background-color: ${noBackground ? 'transparent' : theme.colors.grey20};\r\n\r\n z-index: 1000;\r\n`;\r\n\r\nconst modalDialogContent = (\r\n theme: Theme,\r\n isOpen: ModalDialogProps['isOpen'],\r\n) => css`\r\n display: ${isOpen ? 'flex' : 'none'};\r\n\r\n flex-direction: column;\r\n position: relative;\r\n\r\n width: 100%;\r\n max-width: 400px;\r\n padding: 20px;\r\n\r\n background-color: white;\r\n box-shadow: 0 5px 15px ${theme.colors.grey20};\r\n border-radius: 20px;\r\n`;\r\n\r\nconst ModalDialog = ({\r\n isOpen,\r\n noBackground,\r\n children,\r\n 'aria-label': ariaLabel,\r\n ...props\r\n}: ModalDialogProps) => {\r\n const theme = useTheme();\r\n\r\n return (\r\n <div\r\n role=\"button\"\r\n tabIndex={-1}\r\n css={modalDialogWrapper(theme, isOpen, noBackground)}>\r\n <div\r\n aria-modal=\"true\"\r\n aria-labelledby={ariaLabel}\r\n role=\"dialog\"\r\n css={modalDialogContent(theme, isOpen)}\r\n {...props}>\r\n {children}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default ModalDialog;\r\n","import { useContext } from 'react';\r\n\r\nimport ModalDialog from '@components/ModalDialog';\r\nimport { ModalProps } from '@components/Modal/types';\r\nimport { ModalContext } from '../Modal/Modal.context';\r\n\r\nfunction ModalContent({\r\n children,\r\n 'aria-label': ariaLabel,\r\n ...props\r\n}: ModalProps) {\r\n const [isOpen] = useContext(ModalContext);\r\n\r\n return (\r\n <ModalDialog aria-label={ariaLabel} isOpen={isOpen} {...props}>\r\n {isOpen ? children : null}\r\n </ModalDialog>\r\n );\r\n}\r\n\r\nexport default ModalContent;\r\n","import { useContext, cloneElement } from 'react';\r\n\r\nimport { ModalContext } from '@components/Modal';\r\n\r\nimport { callAll } from '@ssa-ui-kit/utils';\r\n\r\nfunction ModalOpenButton({ children: child }: { children: JSX.Element }) {\r\n const [, setIsOpen] = useContext(ModalContext);\r\n\r\n return cloneElement(child, {\r\n onClick: callAll(() => setIsOpen(true), child.props.onClick),\r\n });\r\n}\r\n\r\nexport default ModalOpenButton;\r\n","import * as React from 'react';\r\nimport {\r\n useFloating,\r\n autoUpdate,\r\n offset,\r\n flip,\r\n shift,\r\n useClick,\r\n useDismiss,\r\n useRole,\r\n useInteractions,\r\n useHover,\r\n safePolygon,\r\n} from '@floating-ui/react';\r\nimport { PopoverOptions, UsePopover } from '../types';\r\n\r\nexport const usePopover: UsePopover = ({\r\n initialOpen = false,\r\n placement = 'bottom',\r\n modal,\r\n open: controlledOpen,\r\n onOpenChange: setControlledOpen,\r\n floatingOptions = {},\r\n interactionsEnabled = 'click',\r\n}: PopoverOptions = {}) => {\r\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(initialOpen);\r\n const [labelId, setLabelId] = React.useState<string | undefined>();\r\n const [descriptionId, setDescriptionId] = React.useState<\r\n string | undefined\r\n >();\r\n\r\n const open = controlledOpen ?? uncontrolledOpen;\r\n const setOpen = setControlledOpen ?? setUncontrolledOpen;\r\n\r\n const data = useFloating({\r\n placement,\r\n open,\r\n onOpenChange: setOpen,\r\n whileElementsMounted: autoUpdate,\r\n middleware: [\r\n offset(5),\r\n flip({\r\n crossAxis: placement.includes('-'),\r\n padding: 5,\r\n }),\r\n shift({ padding: 5 }),\r\n ],\r\n ...floatingOptions,\r\n });\r\n\r\n const context = data.context;\r\n\r\n const click = useClick(context, {\r\n enabled:\r\n controlledOpen == null && ['click', 'both'].includes(interactionsEnabled),\r\n });\r\n const dismiss = useDismiss(context);\r\n const role = useRole(context);\r\n const hover = useHover(context, {\r\n enabled:\r\n controlledOpen == null && ['hover', 'both'].includes(interactionsEnabled),\r\n handleClose: safePolygon(),\r\n });\r\n\r\n const interactionsHooks = [dismiss, role];\r\n\r\n switch (interactionsEnabled) {\r\n case 'click': {\r\n interactionsHooks.push(click);\r\n break;\r\n }\r\n case 'hover': {\r\n interactionsHooks.push(hover);\r\n break;\r\n }\r\n default: {\r\n interactionsHooks.push(click, hover);\r\n }\r\n }\r\n\r\n const interactions = useInteractions(interactionsHooks);\r\n\r\n const result = React.useMemo(\r\n () => ({\r\n open,\r\n setOpen,\r\n ...interactions,\r\n ...data,\r\n modal,\r\n labelId,\r\n descriptionId,\r\n floatingOptions,\r\n setLabelId,\r\n setDescriptionId,\r\n }),\r\n [\r\n open,\r\n setOpen,\r\n interactions,\r\n data,\r\n modal,\r\n labelId,\r\n descriptionId,\r\n floatingOptions,\r\n ],\r\n );\r\n\r\n return result;\r\n};\r\n","import * as React from 'react';\r\nimport { ContextType } from '../types';\r\n\r\nexport const PopoverContext = React.createContext<ContextType>(\r\n {} as ContextType,\r\n);\r\n\r\nexport const usePopoverContext = () => {\r\n const context = React.useContext(PopoverContext);\r\n\r\n if (context == null) {\r\n throw new Error('Popover components must be wrapped in <Popover />');\r\n }\r\n\r\n return context as ContextType;\r\n};\r\n","import * as React from 'react';\r\nimport { PopoverOptions } from './types';\r\nimport { usePopover } from './hooks/usePopover';\r\nimport { PopoverContext } from './hooks/usePopoverContext';\r\n\r\nexport const Popover = ({\r\n children,\r\n modal = false,\r\n ...restOptions\r\n}: {\r\n children: React.ReactNode;\r\n} & PopoverOptions) => {\r\n // This can accept any props as options, e.g. `placement`,\r\n // or other positioning options.\r\n const popover = usePopover({ modal, ...restOptions });\r\n return (\r\n <PopoverContext.Provider value={popover}>\r\n {children}\r\n </PopoverContext.Provider>\r\n );\r\n};\r\n","import * as React from 'react';\r\nimport Button from '@components/Button';\r\nimport { usePopoverContext } from './hooks/usePopoverContext';\r\n\r\nexport const PopoverClose = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ButtonHTMLAttributes<HTMLButtonElement>\r\n>(function PopoverClose(props, ref) {\r\n const { setOpen } = usePopoverContext();\r\n return (\r\n <Button\r\n ref={ref}\r\n variant=\"secondary\"\r\n {...props}\r\n onClick={(event) => {\r\n props.onClick?.(event);\r\n setOpen(false);\r\n }}\r\n />\r\n );\r\n});\r\n","import * as React from 'react';\r\nimport {\r\n useMergeRefs,\r\n FloatingPortal,\r\n FloatingFocusManager,\r\n} from '@floating-ui/react';\r\nimport { usePopoverContext } from './hooks/usePopoverContext';\r\nimport Wrapper from '@components/Wrapper';\r\n\r\nexport const PopoverContent = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLProps<HTMLDivElement>\r\n>(function PopoverContent({ style, ...props }, propRef) {\r\n const { context: floatingContext, ...context } = usePopoverContext();\r\n const ref = useMergeRefs([context.refs.setFloating, propRef]);\r\n\r\n if (!floatingContext.open) return null;\r\n\r\n return (\r\n <FloatingPortal>\r\n <FloatingFocusManager context={floatingContext} modal={context.modal}>\r\n <Wrapper\r\n ref={ref}\r\n css={{\r\n width: 'auto',\r\n }}\r\n style={{ ...context.floatingStyles, ...style }}\r\n aria-labelledby={context.labelId}\r\n aria-describedby={context.descriptionId}\r\n direction=\"column\"\r\n {...context.getFloatingProps(props)}>\r\n {props.children}\r\n </Wrapper>\r\n </FloatingFocusManager>\r\n </FloatingPortal>\r\n );\r\n});\r\n","import { css, Theme } from '@emotion/react';\r\n\r\nexport const h1 = css`\r\n font-size: 2.488rem; //39px\r\n line-height: 3.375rem;\r\n`;\r\nexport const h2 = (theme: Theme) => css`\r\n font-size: 1.188rem; // 19px\r\n line-height: 1.375rem; //26.23px;\r\n\r\n ${theme.mediaQueries.md} {\r\n font-size: 1.719rem; //27px\r\n }\r\n ${theme.mediaQueries.lg} {\r\n font-size: 2.074rem; //33px\r\n line-height: 2.813rem; // 45px\r\n }\r\n`;\r\nexport const h3 = (theme: Theme) => css`\r\n font-size: 1.438rem; // 23px\r\n line-height: 1.625rem;\r\n\r\n ${theme.mediaQueries.lg} {\r\n font-size: 1.728rem; //27px\r\n }\r\n`;\r\nexport const h4 = css`\r\n font-size: 1.44rem; // 23px\r\n line-height: 1.625rem;\r\n`;\r\nexport const h5 = (theme: Theme) => css`\r\n font-size: 1rem; //16px\r\n line-height: 1.5rem;\r\n\r\n ${theme.mediaQueries.md} {\r\n font-size: 1.2rem; //19px\r\n }\r\n`;\r\nexport const h6 = css`\r\n font-size: 1rem; // 16px\r\n line-height: 1.375rem;\r\n`;\r\nexport const subtitle = css`\r\n font-size: 0.833rem; // 13.2px\r\n line-height: 0.938rem;\r\n`;\r\nexport const body1 = css`\r\n font-size: 0.694rem; //11px\r\n line-height: 0.938rem;\r\n`;\r\nexport const body2 = css`\r\n font-size: 0.579rem; //9px\r\n line-height: 0.938rem;\r\n`;\r\nexport const body3 = css`\r\n font-size: 0.5rem; //8px\r\n line-height: 0.938rem;\r\n`;\r\nexport const caption = css`\r\n display: block;\r\n font-size: 0.481rem; //7.6px\r\n line-height: 0.75rem;\r\n`;\r\n\r\n// font-weight variants\r\nexport const lighter = css`\r\n font-style: normal;\r\n font-weight: 400;\r\n`;\r\nexport const regular = css`\r\n font-style: normal;\r\n font-weight: 500;\r\n`;\r\nexport const medium = css`\r\n font-style: normal;\r\n font-weight: 600;\r\n`;\r\nexport const bold = css`\r\n font-style: normal;\r\n font-weight: 700;\r\n`;\r\n\r\nexport const gutter = css`\r\n margin-block-end: 1rem;\r\n`;\r\n","import { forwardRef } from 'react';\r\nimport { css } from '@emotion/react';\r\n\r\nimport { TypographyProps } from './types';\r\nimport * as style from './styles';\r\n\r\nconst variantsMapping = {\r\n h1: 'h1',\r\n h2: 'h2',\r\n h3: 'h3',\r\n h4: 'h4',\r\n h5: 'h5',\r\n h6: 'h6',\r\n subtitle: 'h6',\r\n body1: 'p',\r\n body2: 'p',\r\n body3: 'p',\r\n caption: 'span',\r\n};\r\n\r\nconst Typography = forwardRef<HTMLElement, TypographyProps>(function Typography(\r\n {\r\n children,\r\n weight = 'regular',\r\n variant = 'body1',\r\n gutter = false,\r\n color = 'rgba(43, 45, 49, 1)',\r\n as,\r\n ...props\r\n },\r\n ref,\r\n) {\r\n const Component = as || variantsMapping[variant];\r\n\r\n return (\r\n <Component\r\n ref={ref}\r\n css={[\r\n style[variant],\r\n style[weight],\r\n css`\r\n color: ${color};\r\n `,\r\n gutter && style.gutter,\r\n ]}\r\n {...props}>\r\n {children}\r\n </Component>\r\n );\r\n});\r\n\r\nexport default Typography;\r\n","import * as React from 'react';\r\nimport { useId } from '@floating-ui/react';\r\nimport { usePopoverContext } from './hooks/usePopoverContext';\r\nimport Typography from '@components/Typography';\r\n\r\nexport const PopoverDescription = React.forwardRef<\r\n HTMLParagraphElement,\r\n Parameters<typeof Typography>[0]\r\n>(function PopoverDescription(props, ref) {\r\n const { setDescriptionId } = usePopoverContext();\r\n const id = useId();\r\n\r\n // Only sets `aria-describedby` on the Popover root element\r\n // if this component is mounted inside it.\r\n React.useLayoutEffect(() => {\r\n setDescriptionId(id);\r\n return () => setDescriptionId(undefined);\r\n }, [id, setDescriptionId]);\r\n\r\n return <Typography as=\"div\" {...props} ref={ref} id={id} />;\r\n});\r\n","import * as React from 'react';\r\nimport { useId } from '@floating-ui/react';\r\nimport { usePopoverContext } from './hooks/usePopoverContext';\r\nimport Typography from '@components/Typography';\r\n\r\nexport const PopoverHeading = React.forwardRef<\r\n HTMLHeadingElement,\r\n Parameters<typeof Typography>[0]\r\n>(function PopoverHeading(props, ref) {\r\n const { setLabelId } = usePopoverContext();\r\n const id = useId();\r\n\r\n // Only sets `aria-labelledby` on the Popover root element\r\n // if this component is mounted inside it.\r\n React.useLayoutEffect(() => {\r\n setLabelId(id);\r\n return () => setLabelId(undefined);\r\n }, [id, setLabelId]);\r\n\r\n return (\r\n <Typography {...props} ref={ref} id={id}>\r\n {props.children}\r\n </Typography>\r\n );\r\n});\r\n","import * as React from 'react';\r\nimport { useMergeRefs } from '@floating-ui/react';\r\nimport Button from '@components/Button';\r\nimport { PopoverTriggerProps } from './types';\r\nimport { usePopoverContext } from './hooks/usePopoverContext';\r\nimport { IButtonProps } from '@components/Button/types';\r\n\r\nexport const PopoverTrigger = React.forwardRef<\r\n HTMLElement,\r\n React.HTMLProps<HTMLElement> & IButtonProps & PopoverTriggerProps\r\n>(function PopoverTrigger(\r\n { children, asChild = false, dataTestId = 'trigger-button', ...props },\r\n propRef,\r\n) {\r\n const context = usePopoverContext();\r\n const childrenRef = (\r\n children as React.ReactNode & { ref: React.Ref<unknown> }\r\n )?.ref;\r\n const ref = useMergeRefs([context?.refs.setReference, propRef, childrenRef]);\r\n\r\n // `asChild` allows the user to pass any element as the anchor\r\n if (asChild && React.isValidElement(children)) {\r\n return React.cloneElement(\r\n children,\r\n context?.getReferenceProps({\r\n ref,\r\n ...props,\r\n ...children.props,\r\n 'data-state': context.open ? 'open' : 'closed',\r\n }),\r\n );\r\n }\r\n\r\n return (\r\n <Button\r\n css={{\r\n color: '#fff',\r\n }}\r\n data-testid={dataTestId}\r\n ref={ref}\r\n // The user can style the trigger based on the state\r\n data-state={context?.open ? 'open' : 'closed'}\r\n {...context?.getReferenceProps(props)}>\r\n {children}\r\n </Button>\r\n );\r\n});\r\n","import * as React from 'react';\r\n\r\nimport { DropdownContextType } from './types';\r\nimport { IDropdownOption } from '@components/MultipleDropdownOptions';\r\n\r\nconst MultipleDropdownContext = React.createContext<\r\n DropdownContextType<IDropdownOption>\r\n>({\r\n allItems: {},\r\n isMultiple: false,\r\n onChange: () => {\r\n /* noop */\r\n },\r\n});\r\n\r\nexport function useMultipleDropdownContext(): DropdownContextType<IDropdownOption> {\r\n return React.useContext(MultipleDropdownContext);\r\n}\r\n\r\nexport default MultipleDropdownContext;\r\n","import React, { BaseSyntheticEvent } from 'react';\r\nimport styled from '@emotion/styled';\r\n\r\nimport Checkbox from '@components/Checkbox';\r\nimport { useMultipleDropdownContext } from '@components/MultipleDropdown/MultipleDropdown.context';\r\nimport DropdownOption from '@components/DropdownOption';\r\n\r\nimport { IDropdownItemsListProps } from './types';\r\nimport { checkboxStyles } from '@components/Checkbox/styles';\r\n\r\nconst DropdownOptionsBase = styled.ul<{ tabindex?: string }>`\r\n position: absolute;\r\n width: 100%;\r\n\r\n list-style: none;\r\n\r\n margin: 4px 0 0;\r\n padding: 0;\r\n\r\n background: #fff;\r\n border-radius: 8px;\r\n\r\n overflow-x: hidden;\r\n overflow-y: auto;\r\n\r\n z-index: 2;\r\n\r\n filter: ${({ theme }) =>\r\n `drop-shadow(-4px 4px 14px ${theme.colors.greyDarker14})`};\r\n backdrop-filter: ${({ theme }) =>\r\n `drop-shadow(-4px 4px 14px ${theme.colors.greyDarker14})`};\r\n\r\n ${({ theme }) => checkboxStyles.blueInput(theme)}\r\n`;\r\n\r\nconst DropdownOptionButton = styled.div<{\r\n checked?: boolean;\r\n isDisabled?: boolean;\r\n}>(({ theme, isDisabled }) => ({\r\n display: 'block',\r\n cursor: isDisabled ? 'default' : 'pointer',\r\n font: 'inherit',\r\n fontSize: '0.813rem',\r\n outline: 'inherit',\r\n textAlign: 'left',\r\n\r\n width: '100%',\r\n padding: 0,\r\n margin: 0,\r\n\r\n background: 'none',\r\n color: 'inherit',\r\n border: 'none',\r\n\r\n whiteSpace: 'nowrap',\r\n textOverflow: 'ellipsis',\r\n overflow: 'hidden',\r\n\r\n userSelect: 'none',\r\n\r\n '& label': {\r\n margin: '0 16px 0 0',\r\n '& input + div': {\r\n borderRadius: '2px',\r\n '&::before': {\r\n borderRadius: '2px',\r\n },\r\n },\r\n },\r\n\r\n '&:has(> label > input:checked)': {\r\n fontWeight: '800',\r\n },\r\n\r\n [`&:hover input:not(:checked, :indeterminate) + div::before`]: {\r\n borderColor: theme.colors.greyDropdownFocused,\r\n },\r\n}));\r\n\r\nconst noItemsMsg = { id: Number.NaN, value: 'No items' };\r\n\r\nconst MultipleDropdownOptions = ({\r\n ariaLabelledby,\r\n id,\r\n children,\r\n}: IDropdownItemsListProps) => {\r\n const { onChange, allItems, isMultiple } = useMultipleDropdownContext();\r\n\r\n const toggleItem = (value: string | number, isDisabled: boolean) => {\r\n if (!isDisabled) {\r\n const item = allItems[value];\r\n onChange(item);\r\n }\r\n };\r\n\r\n const childrenArray = React.Children.toArray(children).filter(Boolean);\r\n\r\n const options = (childrenArray as React.ReactElement[]).map((child) => {\r\n const element = allItems[child.props.value];\r\n const isActive = Boolean(element?.isSelected);\r\n const isDisabled = Boolean(element?.isDisabled);\r\n\r\n return React.cloneElement(\r\n child,\r\n {\r\n ...child.props,\r\n isActive,\r\n isMultiple,\r\n 'aria-selected': isActive,\r\n onClick: (event: BaseSyntheticEvent) => {\r\n event.preventDefault();\r\n toggleItem(child.props.value, isDisabled);\r\n },\r\n },\r\n <DropdownOptionButton\r\n checked={isActive}\r\n isDisabled={isDisabled}\r\n role=\"button\">\r\n {isMultiple && (\r\n <Checkbox\r\n initialState={isActive}\r\n externalState={isActive}\r\n isDisabled={isDisabled}\r\n css={{\r\n margin: 0,\r\n }}\r\n color=\"blue\"\r\n />\r\n )}\r\n {child.props.children || child.props.label || child.props.value}\r\n </DropdownOptionButton>,\r\n );\r\n });\r\n\r\n if (options.length === 0) {\r\n options.push(\r\n <DropdownOption key={noItemsMsg.id} value={''} aria-selected={false}>\r\n <DropdownOptionButton as=\"button\">\r\n {noItemsMsg.value}\r\n </DropdownOptionButton>\r\n </DropdownOption>,\r\n );\r\n }\r\n\r\n return (\r\n <DropdownOptionsBase\r\n role=\"listbox\"\r\n tabindex=\"-1\"\r\n id={id}\r\n aria-labelledby={ariaLabelledby}>\r\n {options}\r\n </DropdownOptionsBase>\r\n );\r\n};\r\n\r\nexport default MultipleDropdownOptions;\r\n","import BadgeBase from '@components/Badge/BadgeBase';\r\nimport styled from '@emotion/styled';\r\n\r\nconst MultipleDropdownNotification = styled(BadgeBase)`\r\n min-width: 18px;\r\n width: 18px;\r\n color: ${({ theme }) => theme.colors.white};\r\n background-color: ${({ theme }) => theme.colors.blueNotification};\r\n font-size: 10px;\r\n border-radius: 50%;\r\n`;\r\n\r\nexport default MultipleDropdownNotification;\r\n","import React, { useState, useEffect, useId, useRef } from 'react';\r\nimport { useTheme } from '@emotion/react';\r\nimport styled from '@emotion/styled';\r\nimport { useClickOutside } from '@ssa-ui-kit/hooks';\r\nimport { mapObjIndexed } from '@ssa-ui-kit/utils';\r\nimport { useMergeRefs } from '@floating-ui/react';\r\n\r\nimport DropdownBase from '@components/DropdownBase';\r\nimport DropdownToggle from '@components/DropdownToggle';\r\nimport DropdownArrow from '@components/DropdownArrow';\r\nimport MultipleDropdownOptions from '@components/MultipleDropdownOptions';\r\nimport MultipleDropdownContext from '@components/MultipleDropdown/MultipleDropdown.context';\r\nimport { IDropdownOption } from '@components/DropdownOptions/types';\r\n\r\nimport { DropdownContextType, IDropdownProps } from './types';\r\nimport { getActiveItems } from '@components/MultipleDropdown/utils';\r\nimport MultipleDropdownNotification from '@components/MultipleDropdownNotification';\r\n\r\nconst DropdownPlaceholderLabel = styled.div`\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n`;\r\n\r\n/**\r\n * The structure of the component:\r\n *\r\n * MultipleDropdown\r\n * DropdownToggle\r\n * MultipleDropdownOptions\r\n * DropdownOption\r\n *\r\n * Aria attributes are set according to\r\n * https://www.w3.org/WAI/ARIA/apg/example-index/combobox/combobox-select-only.html\r\n **/\r\nfunction MultipleDropdownInner<T extends IDropdownOption>(\r\n {\r\n selectedItems = [],\r\n isDisabled,\r\n isOpen: isInitOpen,\r\n isMultiple = true,\r\n placeholder = 'Select something',\r\n showPlaceholder = true,\r\n label,\r\n children,\r\n onChange: handleChange,\r\n className,\r\n }: IDropdownProps<T>,\r\n ref?: React.ForwardedRef<HTMLDivElement | null>,\r\n) {\r\n const theme = useTheme();\r\n const dropdownBaseRef: React.MutableRefObject<HTMLDivElement | null> =\r\n useRef<HTMLDivElement>(null);\r\n const dropdownId = useId();\r\n const [isFocused, setIsFocused] = useState(false);\r\n const [isOpen, setIsOpen] = useState(isInitOpen || false);\r\n const [colors, setColors] = useState<Array<string | undefined>>([]);\r\n const [optionsWithKey, setOptionsWithKey] = useState<\r\n Record<number | string, T>\r\n >({});\r\n const [items, setItems] = useState<Array<React.ReactElement>>([]);\r\n const [values, setValues] = useState<Array<unknown>>([]);\r\n const [valuesWithoutPlaceholder, setValuesWithoutPlaceholder] = useState<\r\n Array<unknown>\r\n >([]);\r\n\r\n const memoSelectedItems = React.useMemo(\r\n () => selectedItems,\r\n [JSON.stringify(selectedItems)],\r\n );\r\n\r\n const onChange = (item: IDropdownOption) => {\r\n if (isDisabled || !item) {\r\n return;\r\n }\r\n if (!isMultiple && optionsWithKey[item.value].isSelected) {\r\n return;\r\n }\r\n let newOptionsWithKey = {};\r\n let isSelected = true;\r\n if (isMultiple) {\r\n isSelected = !optionsWithKey[item.value].isSelected;\r\n newOptionsWithKey = {\r\n ...optionsWithKey,\r\n [item.value]: {\r\n ...optionsWithKey[item.value],\r\n isSelected,\r\n },\r\n };\r\n setOptionsWithKey(newOptionsWithKey);\r\n } else {\r\n newOptionsWithKey = mapObjIndexed(\r\n (option) => ({\r\n ...option,\r\n isSelected: option.value === item.value,\r\n }),\r\n optionsWithKey,\r\n );\r\n setOptionsWithKey(newOptionsWithKey);\r\n setIsOpen(false);\r\n }\r\n\r\n handleChange && handleChange(item.value, isSelected);\r\n };\r\n\r\n useClickOutside(dropdownBaseRef, () => isOpen && setIsOpen(false));\r\n\r\n useEffect(() => {\r\n if (isDisabled) {\r\n setColors([theme.colors.greyDarker60, theme.colors.grey20]);\r\n } else if (isOpen) {\r\n setColors([theme.colors.white, theme.colors.white60]);\r\n } else if (isFocused) {\r\n setColors([theme.colors.greyDarker, theme.colors.greyDarker60]);\r\n }\r\n }, [isOpen, isDisabled, isFocused]);\r\n\r\n useEffect(() => {\r\n if (isDisabled && isOpen) {\r\n setIsOpen(false);\r\n }\r\n }, [isDisabled]);\r\n\r\n useEffect(() => {\r\n const childrenArray = React.Children.toArray(children).filter(Boolean);\r\n const newOptions: T[] = [];\r\n const keyedOptions: Record<number | string, T> = {};\r\n const childItems: Array<React.ReactElement> = (\r\n childrenArray as React.ReactElement[]\r\n ).map((child, index) => {\r\n const newOption = {\r\n ...child.props,\r\n isSelected: !!memoSelectedItems.find(\r\n (selectedItem) => selectedItem.value === child.props.value,\r\n ),\r\n };\r\n newOptions.push(newOption);\r\n keyedOptions[newOption.value] = newOption;\r\n\r\n return React.cloneElement(child, {\r\n index,\r\n onClick: onChange.bind(null),\r\n ...child.props,\r\n });\r\n });\r\n\r\n setOptionsWithKey(keyedOptions);\r\n setItems(childItems);\r\n }, [memoSelectedItems, children]);\r\n\r\n const contextValue: DropdownContextType<IDropdownOption> = React.useMemo(\r\n () => ({ onChange, allItems: optionsWithKey, isMultiple }),\r\n [onChange, optionsWithKey, isMultiple],\r\n );\r\n\r\n useEffect(() => {\r\n const newValues = getActiveItems({ allItems: optionsWithKey, placeholder });\r\n const newValuesWithoutPlaceholder = newValues.filter(\r\n (item) => item !== placeholder,\r\n );\r\n setValues(newValues);\r\n setValuesWithoutPlaceholder(newValuesWithoutPlaceholder);\r\n }, [optionsWithKey]);\r\n\r\n return (\r\n <MultipleDropdownContext.Provider value={contextValue}>\r\n <DropdownBase\r\n ref={useMergeRefs([dropdownBaseRef, ref])}\r\n data-testid=\"dropdown\">\r\n <DropdownToggle\r\n className={className}\r\n isOpen={isOpen}\r\n disabled={isDisabled}\r\n onClick={setIsOpen.bind(null, !isOpen)}\r\n onFocus={setIsFocused.bind(null, true)}\r\n colors={colors}\r\n ariaLabelledby={`dropdown-label-${dropdownId}`}\r\n ariaControls={`dropdown-popup-${dropdownId}`}\r\n isMultiple={isMultiple}\r\n selectedCount={valuesWithoutPlaceholder.length}>\r\n {isMultiple ? (\r\n <>\r\n <DropdownPlaceholderLabel>\r\n {label}\r\n {showPlaceholder\r\n ? values.length > 0 && `: ${values[0]}`\r\n : valuesWithoutPlaceholder.length > 0 &&\r\n `: ${valuesWithoutPlaceholder[0]}`}\r\n </DropdownPlaceholderLabel>\r\n {values.length > 1 ? (\r\n <MultipleDropdownNotification as={'div'}>\r\n +{values.length - 1}\r\n </MultipleDropdownNotification>\r\n ) : (\r\n ''\r\n )}\r\n </>\r\n ) : (\r\n values.join('')\r\n )}\r\n <DropdownArrow isUp={isOpen} />\r\n </DropdownToggle>\r\n\r\n {isOpen ? (\r\n <MultipleDropdownOptions>{items}</MultipleDropdownOptions>\r\n ) : null}\r\n </DropdownBase>\r\n </MultipleDropdownContext.Provider>\r\n );\r\n}\r\n\r\nconst MultipleDropdown = React.forwardRef<\r\n HTMLDivElement,\r\n IDropdownProps<IDropdownOption>\r\n>(MultipleDropdownInner);\r\n\r\nexport default MultipleDropdown;\r\n","import { IDropdownOption } from '../..';\r\n\r\nconst getActiveItem = <T>({\r\n activeItem,\r\n placeholder,\r\n}: {\r\n activeItem: Record<number | string, T>;\r\n placeholder: string;\r\n}) =>\r\n activeItem\r\n ? activeItem.label ||\r\n activeItem.children ||\r\n activeItem.value ||\r\n activeItem ||\r\n placeholder\r\n : placeholder;\r\n\r\ninterface GetActiveItems<T> {\r\n allItems: T;\r\n placeholder: string;\r\n}\r\nexport const getActiveItems = <\r\n T extends Record<string | number, IDropdownOption>,\r\n>({\r\n allItems = {} as T,\r\n placeholder,\r\n}: GetActiveItems<T>) => {\r\n const activeItems = Object.values(allItems)\r\n .filter((item) => item.isSelected)\r\n .map((activeItem) => getActiveItem({ activeItem, placeholder }));\r\n return activeItems.length ? activeItems : [placeholder];\r\n};\r\n","import { ProgressProps } from './types';\r\n\r\nconst Progress = ({ children }: ProgressProps) => {\r\n return <div>{children}</div>;\r\n};\r\n\r\nexport default Progress;\r\n","import { css, Theme } from '@emotion/react';\r\n\r\nexport const wrapper = (theme: Theme) => css`\r\n position: relative;\r\n background-color: ${theme.colors.greyLighter};\r\n border-radius: 12px;\r\n box-shadow: inset 0 -1px 1px ${theme.colors.white30};\r\n`;\r\n\r\nexport const bar = () => css`\r\n position: absolute;\r\n display: block;\r\n bottom: 0;\r\n border-radius: 12px;\r\n`;\r\n","import {\r\n pink,\r\n yellow,\r\n green,\r\n turquoise,\r\n purple,\r\n blue,\r\n blueLight,\r\n yellowWarm,\r\n} from '@styles/global';\r\n\r\nimport { ProgressBarProps } from './types';\r\nimport { wrapper, bar } from './styles';\r\n\r\nconst mapColors: MainColors = {\r\n pink,\r\n yellow,\r\n green,\r\n turquoise,\r\n purple,\r\n blue,\r\n blueLight,\r\n yellowWarm,\r\n};\r\n\r\nexport const ProgressBar = ({\r\n percentage,\r\n color = 'green',\r\n vertical = false,\r\n bgColor = 'rgba(238, 241, 247, 1)',\r\n size = 12,\r\n}: ProgressBarProps) => {\r\n const mapBarWrapper = {\r\n horizontal: {\r\n height: size,\r\n width: '100%',\r\n },\r\n vertical: {\r\n height: '100%',\r\n width: size,\r\n },\r\n };\r\n const mapBarContainer = {\r\n horizontal: {\r\n width: `${percentage}%`,\r\n height: size,\r\n },\r\n vertical: {\r\n width: size,\r\n height: `${percentage}%`,\r\n },\r\n };\r\n\r\n return (\r\n <div\r\n css={[wrapper, { backgroundColor: bgColor }]}\r\n style={{\r\n ...mapBarWrapper[vertical ? 'vertical' : 'horizontal'],\r\n }}>\r\n <span\r\n role=\"progressbar\"\r\n css={[bar, mapColors[color]]}\r\n style={mapBarContainer[vertical ? 'vertical' : 'horizontal']}></span>\r\n </div>\r\n );\r\n};\r\n\r\nexport default ProgressBar;\r\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import styled from '@emotion/styled';\r\nimport { ColorsKeys } from '../..';\r\n\r\nexport const ProgressCircleBase = styled.div<{\r\n gradientId: string;\r\n fullStroke: number;\r\n svgOffset: number;\r\n color: string;\r\n size: number;\r\n}>`\r\n width: ${({ size }) => size}px;\r\n height: ${({ size }) => size}px;\r\n\r\n position: relative;\r\n\r\n svg {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n\r\n filter: ${({ theme, color }) =>\r\n `drop-shadow(3px 5px 10px ${\r\n theme.colors[`${color}Lighter40` as ColorsKeys] ||\r\n theme.colors[color as ColorsKeys]\r\n })`};\r\n }\r\n\r\n circle {\r\n fill: none;\r\n\r\n stroke: url(#${({ gradientId }) => gradientId});\r\n stroke-width: ${({ size }) => size / 10}px;\r\n stroke-linecap: round;\r\n stroke-dasharray: ${({ fullStroke }) => fullStroke};\r\n stroke-dashoffset: ${({ fullStroke }) => fullStroke};\r\n\r\n animation: ${({ gradientId }) => gradientId} 1s linear forwards;\r\n }\r\n\r\n @keyframes ${({ gradientId }) => gradientId} {\r\n 100% {\r\n stroke-dashoffset: ${(props) => props.svgOffset};\r\n }\r\n }\r\n`;\r\n","import styled from '@emotion/styled';\r\n\r\nexport const ProgressCircleOuter = styled.div<{\r\n size: number;\r\n}>`\r\n width: ${({ size }) => size}px;\r\n height: ${({ size }) => size}px;\r\n\r\n border-radius: 50%;\r\n\r\n padding: ${({ size }) => size / 10}px;\r\n\r\n background: ${({ theme }) => theme.colors.greyLighter};\r\n`;\r\n","import styled from '@emotion/styled';\r\n\r\nexport const ProgressCircleInner = styled.div<{\r\n size: number;\r\n}>`\r\n width: ${({ size }) => size - (size / 10) * 2}px;\r\n height: ${({ size }) => size - (size / 10) * 2}px;\r\n\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n border-radius: 50%;\r\n\r\n background: #fff;\r\n`;\r\n","import { useTheme } from '@emotion/react';\r\nimport { ColorsKeys } from '@global-types/emotion';\r\nimport { v4 as uuidv4 } from 'uuid';\r\n\r\nimport { ProgressCircleBase } from './ProgressCircleBase';\r\nimport { ProgressCircleOuter } from './ProgressCircleOuter';\r\nimport { ProgressCircleInner } from './ProgressCircleInner';\r\nimport { ProgressCircleProps } from './types';\r\n\r\nconst ProgressCircle = ({\r\n max,\r\n currentValue,\r\n color = 'green',\r\n size = 160,\r\n infoContent,\r\n}: ProgressCircleProps) => {\r\n const theme = useTheme();\r\n\r\n const gradientId = `gradient-${uuidv4()}`;\r\n const barStroke = size / 10 / 2;\r\n const currentPercentage = (currentValue / max) * 100;\r\n const fullStroke = 2 * (22 / 7) * (size / 2 - barStroke);\r\n const svgOffset =\r\n fullStroke -\r\n (((2 * 22) / 7) * (size / 2 - barStroke) * currentPercentage) / 100;\r\n const colorName = `${color}Lighter` as ColorsKeys;\r\n const colorValue = theme.colors[colorName] || theme.colors[color];\r\n\r\n return (\r\n <ProgressCircleBase\r\n gradientId={gradientId}\r\n role=\"progressbar\"\r\n fullStroke={fullStroke}\r\n svgOffset={svgOffset}\r\n color={color}\r\n size={size}>\r\n <ProgressCircleOuter size={size}>\r\n <ProgressCircleInner size={size}>{infoContent}</ProgressCircleInner>\r\n </ProgressCircleOuter>\r\n\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n version=\"1.1\"\r\n viewBox={`0 0 ${size} ${size}`}\r\n preserveAspectRatio=\"xMinYMin slice\"\r\n width=\"100%\"\r\n height=\"100%\">\r\n <defs>\r\n <linearGradient id={gradientId}>\r\n <stop offset=\"0%\" stopColor={theme.colors[color]} />\r\n <stop offset=\"100%\" stopColor={colorValue} />\r\n </linearGradient>\r\n </defs>\r\n <circle cx={size / 2} cy={size / 2} r={size / 2 - barStroke} />\r\n </svg>\r\n </ProgressCircleBase>\r\n );\r\n};\r\n\r\nexport default ProgressCircle;\r\n","import { Children, isValidElement, cloneElement } from 'react';\r\n\r\nimport { ProgressLegendProps } from './types';\r\n\r\nconst ProgressLegend = ({\r\n children,\r\n vertical = false,\r\n}: ProgressLegendProps) => {\r\n const mapPosition = {\r\n horizontal: {\r\n width: '100%',\r\n height: `12px`,\r\n },\r\n vertical: {\r\n height: '100%',\r\n width: `35px`,\r\n },\r\n };\r\n\r\n return (\r\n <div\r\n style={{\r\n position: 'relative',\r\n fontSize: '10px',\r\n fontWeight: 700,\r\n ...mapPosition[vertical ? 'vertical' : 'horizontal'],\r\n }}>\r\n {Children.map(children, (child) => {\r\n // istanbul ignore else\r\n if (isValidElement(child)) {\r\n return cloneElement(child, {\r\n ...child.props,\r\n vertical,\r\n });\r\n }\r\n })}\r\n </div>\r\n );\r\n};\r\n\r\nexport default ProgressLegend;\r\n","import { ProgressLegendItemProps } from './types';\r\n\r\nconst ProgressLegendItem = ({\r\n position = 'current',\r\n percentage,\r\n vertical = false,\r\n children,\r\n}: ProgressLegendItemProps) => {\r\n const mapPosition = {\r\n horizontal: {\r\n top: 0,\r\n left:\r\n position === 'start'\r\n ? 0\r\n : position === 'current'\r\n ? `${percentage}%`\r\n : '100%',\r\n transform:\r\n position === 'current' || position === 'end'\r\n ? 'translateX(-50%)'\r\n : 'none',\r\n },\r\n vertical: {\r\n width: '100%',\r\n top:\r\n position === 'start'\r\n ? '100%'\r\n : position === 'current'\r\n ? `${100 - percentage}%`\r\n : 0,\r\n transform:\r\n position === 'start'\r\n ? 'translateY(-100%)'\r\n : position === 'current'\r\n ? 'translateY(-50%)'\r\n : 'none',\r\n },\r\n };\r\n return (\r\n <div\r\n style={{\r\n position: 'absolute',\r\n display: 'block',\r\n lineHeight: 1,\r\n ...mapPosition[vertical ? 'vertical' : 'horizontal'],\r\n }}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n\r\nexport default ProgressLegendItem;\r\n","import { Children, isValidElement, cloneElement } from 'react';\r\n\r\nimport { ProgressVerticalProps } from './types';\r\n\r\nconst ProgressVertical = ({ children }: ProgressVerticalProps) => {\r\n return (\r\n <div\r\n style={{\r\n display: 'flex',\r\n height: '100%',\r\n }}>\r\n {Children.map(children, (child) => {\r\n // istanbul ignore else\r\n if (isValidElement(child)) {\r\n return cloneElement(child, {\r\n vertical: true,\r\n });\r\n }\r\n })}\r\n </div>\r\n );\r\n};\r\nexport default ProgressVertical;\r\n","import * as React from 'react';\r\n\r\nimport { StepperContextType } from './types';\r\n\r\nconst StepperContext = React.createContext<StepperContextType>({\r\n activeStep: 0,\r\n orientation: 'horizontal',\r\n color: 'grey',\r\n inverted: false,\r\n});\r\n\r\nexport function useStepperContext(): StepperContextType {\r\n return React.useContext(StepperContext);\r\n}\r\n\r\nexport default StepperContext;\r\n","import React from 'react';\r\nimport { css } from '@emotion/react';\r\n\r\nimport { StepperContextType, StepperProps } from './types';\r\nimport { StepperContext } from '.';\r\n\r\nconst Stepper = ({\r\n activeStep = 0,\r\n orientation = 'horizontal',\r\n color = '#4178e1',\r\n inverted = false,\r\n children,\r\n sx,\r\n}: StepperProps) => {\r\n const childrenArray = React.Children.toArray(children).filter(Boolean);\r\n\r\n if (inverted) {\r\n childrenArray.reverse();\r\n }\r\n\r\n const steps = (childrenArray as React.ReactElement[]).map((child, index) => {\r\n return React.cloneElement(child, {\r\n index: inverted ? childrenArray.length - index - 1 : index,\r\n ...child.props,\r\n });\r\n });\r\n\r\n const contextValue: StepperContextType = React.useMemo(\r\n () => ({ activeStep, orientation, color, inverted }),\r\n [activeStep, orientation, color, inverted],\r\n );\r\n\r\n return (\r\n <StepperContext.Provider value={contextValue}>\r\n <div\r\n data-testid=\"stepper\"\r\n css={css`\r\n display: flex;\r\n flex-direction: ${orientation === 'vertical' ? 'column' : 'row'};\r\n row-gap: 8px;\r\n `}\r\n style={{ ...sx }}>\r\n {steps}\r\n </div>\r\n </StepperContext.Provider>\r\n );\r\n};\r\n\r\nexport default Stepper;\r\n","import * as React from 'react';\r\n\r\nexport interface StepContextType {\r\n index: number;\r\n active: boolean;\r\n completed: boolean;\r\n disabled: boolean;\r\n}\r\n\r\nconst StepContext = React.createContext<StepContextType>({\r\n index: 0,\r\n active: false,\r\n completed: false,\r\n disabled: false,\r\n});\r\n\r\nexport function useStepContext(): StepContextType {\r\n return React.useContext(StepContext);\r\n}\r\n\r\nexport default StepContext;\r\n","import { css } from '@emotion/react';\r\n\r\nexport const StepConnectorWrapper = (inverted?: boolean) => css`\r\n position: absolute;\r\n top: 10px;\r\n\r\n left: calc(${inverted ? '50%' : '-50%'} + 16px);\r\n right: calc(${inverted ? '-50%' : '50%'} + 16px);\r\n`;\r\n\r\nexport const StepConnectorLineVertical = (color?: string) => css`\r\n display: block;\r\n border-color: ${color};\r\n border-left-style: solid;\r\n border-left-width: 2px;\r\n min-height: 20px;\r\n`;\r\n\r\nexport const StepConnectorLine = (color?: string) => css`\r\n display: block;\r\n border-color: ${color};\r\n border-top-width: 2px;\r\n border-top-style: solid;\r\n`;\r\n","import { css, useTheme } from '@emotion/react';\r\n\r\nimport { useStepperContext } from '@components/Stepper';\r\nimport { useStepContext } from '@components/Step';\r\n\r\nimport {\r\n StepConnectorLineVertical,\r\n StepConnectorWrapper,\r\n StepConnectorLine,\r\n} from './style';\r\n\r\nconst StepConnector = () => {\r\n const theme = useTheme();\r\n const { orientation, color, inverted } = useStepperContext();\r\n const { active, completed } = useStepContext();\r\n\r\n const selectedColor = active || completed ? color : theme.colors.grey;\r\n\r\n return orientation === 'vertical' ? (\r\n <div\r\n css={css`\r\n flex: 1 1 auto;\r\n margin-left: calc(12px - 1px);\r\n `}>\r\n <span css={StepConnectorLineVertical(selectedColor)}></span>\r\n </div>\r\n ) : (\r\n <div css={StepConnectorWrapper(inverted)}>\r\n <span css={StepConnectorLine(selectedColor)}></span>\r\n </div>\r\n );\r\n};\r\n\r\nexport default StepConnector;\r\n","import { useMemo } from 'react';\r\nimport { css } from '@emotion/react';\r\n\r\nimport { useStepperContext } from '@components/Stepper';\r\nimport StepConnector from '@components/StepConnector';\r\n\r\nimport StepContext from './Step.context';\r\n\r\nconst Step = ({\r\n index = 0,\r\n children,\r\n Connector = StepConnector,\r\n}: {\r\n index?: number;\r\n children?: React.ReactElement<React.PropsWithChildren>;\r\n Connector?: React.FC<{ completed: boolean; active: boolean }>;\r\n}) => {\r\n const { activeStep, orientation, inverted } = useStepperContext();\r\n\r\n let [active, completed, disabled] = [false, false, false];\r\n\r\n if (activeStep === index) {\r\n active = activeStep === index;\r\n } else if (activeStep > index) {\r\n completed = true;\r\n } else if (activeStep < index) {\r\n disabled = true;\r\n }\r\n\r\n const contextValue = useMemo(\r\n () => ({ index, active, completed, disabled }),\r\n [index, active, completed, disabled],\r\n );\r\n\r\n return (\r\n <StepContext.Provider value={contextValue}>\r\n {!inverted && orientation === 'vertical' && index !== 0 ? (\r\n <Connector active={active} completed={completed} />\r\n ) : null}\r\n\r\n <div\r\n css={css`\r\n flex: 1 1 0%;\r\n position: relative;\r\n `}>\r\n {orientation === 'horizontal' && index !== 0 ? (\r\n <Connector active={active} completed={completed} />\r\n ) : null}\r\n {children}\r\n </div>\r\n {inverted && orientation === 'vertical' && index !== 0 && (\r\n <Connector active={active} completed={completed} />\r\n )}\r\n </StepContext.Provider>\r\n );\r\n};\r\n\r\nexport default Step;\r\n","import { css } from '@emotion/react';\r\n\r\nexport const label = css`\r\n display: flex;\r\n align-items: center;\r\n flex-direction: column;\r\n`;\r\nexport const labelIcon = css`\r\n display: flex;\r\n height: 22px;\r\n\r\n align-items: center;\r\n`;\r\nexport const labelIconVertical = css`\r\n display: flex;\r\n flex-shrink: 0;\r\n justify-content: center;\r\n align-items: center;\r\n\r\n width: 24px;\r\n height: 24px;\r\n\r\n margin-right: 5px;\r\n`;\r\nexport const labelText = css`\r\n text-align: center;\r\n`;\r\nexport const labelTitle = (color: string) => css`\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n width: 24px;\r\n height: 24px;\r\n\r\n border-radius: 50%;\r\n background-color: ${color};\r\n`;\r\n","import React from 'react';\r\n\r\nimport Icon from '@components/Icon';\r\nimport { useStepperContext } from '@components/Stepper';\r\nimport { useStepContext } from '@components/Step';\r\n\r\nimport {\r\n label,\r\n labelIcon,\r\n labelIconVertical,\r\n labelText,\r\n labelTitle,\r\n} from './styles';\r\nimport { useTheme } from '@emotion/react';\r\n\r\nconst StepLabel = ({\r\n children,\r\n StepIcon,\r\n}: {\r\n children?: React.ReactNode;\r\n StepIcon?: React.FC<{ index: number; completed: boolean; active: boolean }>;\r\n}) => {\r\n const theme = useTheme();\r\n const { orientation, color } = useStepperContext();\r\n const { index, active, completed } = useStepContext();\r\n\r\n const styleIcon = orientation === 'vertical' ? labelIconVertical : labelIcon;\r\n\r\n return (\r\n <div\r\n role=\"listitem\"\r\n css={label}\r\n style={{\r\n flexDirection: orientation === 'vertical' ? 'row' : 'column',\r\n }}>\r\n <div css={styleIcon}>\r\n {/* If user set a custom icon, overwrite default */}\r\n {StepIcon ? (\r\n <StepIcon index={index} completed={completed} active={completed} />\r\n ) : completed ? (\r\n <Icon name=\"check\" size={16} color={color} />\r\n ) : (\r\n <div\r\n css={labelTitle(\r\n active || completed\r\n ? color\r\n : (theme.colors.greyLighter as string),\r\n )}>\r\n <span\r\n style={{\r\n color:\r\n active || completed ? theme.colors.white : theme.colors.grey,\r\n }}>\r\n {index + 1}\r\n </span>\r\n </div>\r\n )}\r\n </div>\r\n\r\n <div css={labelText}>{children}</div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default StepLabel;\r\n","import styled from '@emotion/styled';\r\nimport { outlineStyles } from '@styles/safari-focus-outline';\r\n\r\nconst SwitchBase = styled.button`\r\n width: 44px;\r\n height: 24px;\r\n border: 0;\r\n outline: 0;\r\n padding: 0;\r\n border-radius: 50px;\r\n position: relative;\r\n background: ${({ theme }) =>\r\n `linear-gradient(117.5deg, ${theme.colors.greenLighter}, ${theme.colors.green});`};\r\n cursor: pointer;\r\n\r\n &::before {\r\n position: absolute;\r\n content: '';\r\n height: 14px;\r\n width: 14px;\r\n right: 5px;\r\n bottom: calc(50% - 7px);\r\n background-color: ${({ theme }) => theme.colors.white};\r\n\r\n transition: 0.4s;\r\n\r\n border-radius: 50%;\r\n }\r\n\r\n &[aria-checked='false'] {\r\n background: ${({ theme }) => theme.colors.greyFocused};\r\n }\r\n\r\n &:focus {\r\n box-shadow: ${({ theme }) => `-4px 4px 10px ${theme.colors.green40}`};\r\n outline: 0;\r\n }\r\n\r\n &:disabled {\r\n background: ${({ theme }) => theme.colors.greyDisabled};\r\n cursor: auto;\r\n }\r\n\r\n &:not(:disabled):hover {\r\n box-shadow: ${({ theme }) => `-4px 4px 10px ${theme.colors.green40}`};\r\n }\r\n\r\n &[aria-checked='false']:focus::after,\r\n &:not(:disabled)[aria-checked='false']:hover::after {\r\n ${({ theme }) => outlineStyles(theme, 'greenLighter', '50px')}\r\n }\r\n\r\n &[aria-checked='true']::before {\r\n transform: translateX(0);\r\n }\r\n\r\n &[aria-checked='false']::before {\r\n transform: translateX(-20px);\r\n }\r\n`;\r\n\r\nexport default SwitchBase;\r\n","import { createContext, useState, useCallback, useContext } from 'react';\r\n\r\nexport interface ISwitchContext {\r\n isOn: boolean;\r\n toggle: () => void;\r\n}\r\n\r\nexport const SwitchContext = createContext<ISwitchContext>({\r\n isOn: true,\r\n toggle: () => {\r\n /* default no-op */\r\n },\r\n});\r\n\r\nexport const useSwitchContext = () => useContext(SwitchContext);\r\n\r\nconst useSwitch = (initialState = false): [boolean, () => void] => {\r\n const [isOn, setIsOn] = useState(initialState);\r\n const toggle = useCallback(() => setIsOn((state) => !state), []);\r\n\r\n return [isOn, toggle];\r\n};\r\n\r\nexport const SwitchContextProvider = ({\r\n initialState,\r\n children,\r\n}: {\r\n initialState?: boolean;\r\n children: React.ReactNode;\r\n}) => {\r\n const [isOn, toggle] = useSwitch(initialState);\r\n\r\n return (\r\n <SwitchContext.Provider value={{ isOn, toggle }}>\r\n {children}\r\n </SwitchContext.Provider>\r\n );\r\n};\r\n","import SwitchBase from './SwitchBase';\r\nimport { useSwitchContext } from './SwitchContext';\r\n\r\nimport { ISwitchProps } from './types';\r\n\r\nconst Switch = ({ label, isDisabled = false }: ISwitchProps) => {\r\n const { isOn, toggle } = useSwitchContext();\r\n\r\n return (\r\n <SwitchBase\r\n type=\"button\"\r\n role=\"switch\"\r\n aria-readonly={isDisabled}\r\n aria-checked={isOn}\r\n aria-label={label}\r\n disabled={isDisabled}\r\n onClick={() => !isDisabled && toggle()}\r\n />\r\n );\r\n};\r\nexport default Switch;\r\n","import styled from '@emotion/styled';\r\nimport { CommonProps } from '@global-types/emotion';\r\n\r\nconst Table = styled.table<CommonProps>`\r\n display: table;\r\n\r\n width: 100%;\r\n\r\n border-collapse: collapse;\r\n border-spacing: 0;\r\n`;\r\n\r\nexport default Table;\r\n","import styled from '@emotion/styled';\r\nimport { CommonProps } from '@global-types/emotion';\r\n\r\nconst TableCell = styled.td<{ align?: string } & CommonProps>`\r\n display: table-cell;\r\n\r\n vertical-align: inherit;\r\n text-align: ${({ align }) => (align ? align : 'left')};\r\n\r\n border-bottom: 1px solid #eef1f7;\r\n border-right: 1px solid #eef1f7;\r\n\r\n padding: 14px;\r\n`;\r\n\r\nexport default TableCell;\r\n","import styled from '@emotion/styled';\r\n\r\nimport TableCell from '@components/TableCell';\r\nimport { CommonProps } from '@global-types/emotion';\r\n\r\nconst TableHead = styled.thead<CommonProps>({\r\n display: 'table-header-group',\r\n background: '#eef1f7',\r\n [`& ${TableCell}`]: {\r\n borderBottom: '1px solid white',\r\n borderRight: '1px solid white',\r\n },\r\n});\r\n\r\nexport default TableHead;\r\n","import styled from '@emotion/styled';\r\nimport { CommonProps } from '@global-types/emotion';\r\n\r\nconst TableRow = styled.tr<CommonProps>`\r\n display: table-row;\r\n\r\n outline: 0;\r\n\r\n vertical-align: middle;\r\n`;\r\n\r\nexport default TableRow;\r\n","import styled from '@emotion/styled';\r\nimport { CommonProps } from '@global-types/emotion';\r\n\r\nconst TableBody = styled.tbody<CommonProps>`\r\n display: table-row-group;\r\n`;\r\n\r\nexport default TableBody;\r\n","import { useState, useMemo, useRef } from 'react';\r\nimport {\r\n useFloating,\r\n offset,\r\n flip,\r\n shift,\r\n arrow,\r\n autoUpdate,\r\n useHover,\r\n useClick,\r\n useDismiss,\r\n useRole,\r\n useInteractions,\r\n} from '@floating-ui/react';\r\nimport { UseTooltip } from './types';\r\n\r\nexport const useTooltip: UseTooltip = ({\r\n placement,\r\n enableClick = true,\r\n enableHover = false,\r\n offsetPx = 12,\r\n size = 'small',\r\n hasArrow = true,\r\n arrowProps = {},\r\n isOpen: isInitOpen = false,\r\n}) => {\r\n const [isOpen, setIsOpen] = useState(isInitOpen || false);\r\n const arrowRef = useRef(null);\r\n\r\n const floatingData = useFloating({\r\n open: isOpen,\r\n onOpenChange: setIsOpen,\r\n placement,\r\n middleware: [\r\n offset(offsetPx),\r\n flip(),\r\n shift(),\r\n arrow({\r\n element: arrowRef,\r\n }),\r\n ],\r\n whileElementsMounted: autoUpdate,\r\n });\r\n\r\n const { context } = floatingData;\r\n\r\n const hover = useHover(context, { enabled: enableHover, move: true });\r\n const click = useClick(context, { enabled: enableClick });\r\n const dismiss = useDismiss(context);\r\n const role = useRole(context);\r\n\r\n const interactionsData = useInteractions([hover, click, dismiss, role]);\r\n\r\n return useMemo(\r\n () => ({\r\n isOpen,\r\n arrowRef,\r\n size,\r\n hasArrow,\r\n arrowProps,\r\n ...floatingData,\r\n ...interactionsData,\r\n }),\r\n [\r\n isOpen,\r\n arrowRef,\r\n size,\r\n hasArrow,\r\n arrowProps,\r\n floatingData,\r\n interactionsData,\r\n ],\r\n );\r\n};\r\n","import { createContext, useContext } from 'react';\r\nimport { TooltipContextType, UseTooltipContext } from './types';\r\n\r\nexport const TooltipContext = createContext<TooltipContextType>(null);\r\n\r\nexport const useTooltipContext: UseTooltipContext = () => {\r\n const tooltipContext = useContext(TooltipContext);\r\n\r\n if (tooltipContext == null) {\r\n throw new Error(\r\n 'The component should be wrapped with <Tooltip> to have access to the context',\r\n );\r\n }\r\n\r\n return tooltipContext;\r\n};\r\n","import { useTooltip } from './useTooltip';\r\nimport { TooltipContext } from './useTooltipContext';\r\nimport { ITooltipProps } from './types';\r\n\r\n/*\r\n * <Tooltip>\r\n * <TooltipTrigger>\r\n * <Button />\r\n * </TooltipTrigger>\r\n * <TooltipContent>Tooltip</TooltipContent>\r\n * </Tooltip>\r\n * */\r\nconst Tooltip = ({ children, ...props }: ITooltipProps) => {\r\n const tooltip = useTooltip(props);\r\n\r\n return (\r\n <TooltipContext.Provider value={tooltip}>\r\n {children}\r\n </TooltipContext.Provider>\r\n );\r\n};\r\nexport default Tooltip;\r\n","import { cloneElement, isValidElement } from 'react';\r\n\r\nimport { ITooltipTriggerProps } from '@components/Tooltip/types';\r\nimport { useTooltipContext } from '@components/Tooltip/useTooltipContext';\r\n\r\nconst TooltipTrigger = ({ children }: ITooltipTriggerProps) => {\r\n const tooltipCtx = useTooltipContext();\r\n\r\n if (isValidElement(children)) {\r\n return cloneElement(\r\n children,\r\n tooltipCtx?.getReferenceProps({\r\n ref: tooltipCtx.refs.setReference,\r\n }),\r\n );\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport default TooltipTrigger;\r\n","import { useTheme } from '@emotion/react';\r\nimport { FloatingArrow } from '@floating-ui/react';\r\nimport { useTooltipContext } from './useTooltipContext';\r\nimport { TooltipArrowProps } from './types';\r\n\r\nexport const TooltipArrow = ({\r\n width = 10,\r\n height = 10,\r\n fill,\r\n ...props\r\n}: TooltipArrowProps) => {\r\n const { context, arrowRef } = useTooltipContext();\r\n const theme = useTheme();\r\n\r\n return (\r\n <FloatingArrow\r\n data-testid=\"floating-arrow\"\r\n ref={arrowRef}\r\n context={context}\r\n width={width}\r\n height={height}\r\n fill={fill || theme.colors.greyLighter}\r\n {...props}\r\n />\r\n );\r\n};\r\n","import styled from '@emotion/styled';\r\n\r\nexport const TooltipContentBase = styled.div`\r\n line-height: 0.75rem; /* 12px */\r\n background: ${({ theme }) => theme.colors.greyLighter};\r\n border-radius: 8px;\r\n color: ${({ theme }) => theme.colors.greyDarker};\r\n font-weight: 600;\r\n`;\r\n","import { css } from '@emotion/react';\r\n\r\nexport const small = css`\r\n font-size: 0.579rem; // 9.26px\r\n padding: 6px 12px;\r\n`;\r\n\r\nexport const medium = css`\r\n font-size: 0.694rem; // 11.11px\r\n padding: 8px 16px;\r\n`;\r\n\r\nexport const large = css`\r\n font-size: 0.833rem; // 13.33px\r\n padding: 10px 20px;\r\n`;\r\n","import { ITooltipContentSizes } from './types';\r\nimport { small, medium, large } from './styles';\r\n\r\nexport const mapSizes: ITooltipContentSizes = {\r\n small,\r\n medium,\r\n large,\r\n};\r\n","import { forwardRef } from 'react';\r\nimport {\r\n FloatingPortal,\r\n FloatingFocusManager,\r\n useMergeRefs,\r\n} from '@floating-ui/react';\r\n\r\nimport { TooltipArrow } from '@components/Tooltip/TooltipArrow';\r\nimport { TooltipContentBase } from '@components/Tooltip/TooltipContentBase';\r\nimport { ITooltipContentProps, TooltipSize } from '@components/Tooltip/types';\r\nimport { useTooltipContext } from '@components/Tooltip/useTooltipContext';\r\nimport { mapSizes } from '@components/Tooltip/utils';\r\n\r\nconst TooltipContent = forwardRef<HTMLDivElement, ITooltipContentProps>(\r\n function TooltipContent({ children, className, style }, refProp) {\r\n const tooltipCtx = useTooltipContext();\r\n const ref = useMergeRefs([tooltipCtx?.refs.setFloating, refProp]);\r\n\r\n return (\r\n <FloatingPortal>\r\n {tooltipCtx?.isOpen && (\r\n <FloatingFocusManager context={tooltipCtx.context} modal={false}>\r\n <TooltipContentBase\r\n {...tooltipCtx.getFloatingProps({\r\n ref,\r\n css:\r\n tooltipCtx.size && mapSizes[tooltipCtx.size as TooltipSize],\r\n className,\r\n style: {\r\n position: tooltipCtx.strategy,\r\n top: tooltipCtx.y ?? 0,\r\n left: tooltipCtx.x ?? 0,\r\n width: 'max-content',\r\n ...style,\r\n },\r\n })}>\r\n {tooltipCtx.hasArrow && (\r\n <TooltipArrow {...tooltipCtx.arrowProps} />\r\n )}\r\n {children}\r\n </TooltipContentBase>\r\n </FloatingFocusManager>\r\n )}\r\n </FloatingPortal>\r\n );\r\n },\r\n);\r\n\r\nexport default TooltipContent;\r\n","import { TooltipContentBase } from './TooltipContentBase';\r\nimport { SimpleChartTooltipProps } from './types';\r\nimport { mapSizes } from './utils';\r\n\r\nexport const SimpleChartTooltip = ({\r\n point,\r\n size = 'small',\r\n renderValue,\r\n}: SimpleChartTooltipProps) => {\r\n const { data } = point;\r\n const { xFormatted, yFormatted } = data;\r\n\r\n return (\r\n <TooltipContentBase css={mapSizes[size]}>\r\n {typeof renderValue === 'function'\r\n ? renderValue(data)\r\n : `${xFormatted} - ${yFormatted}`}\r\n </TooltipContentBase>\r\n );\r\n};\r\n","import ProgressBar from '@components/ProgressBar';\r\nimport Icon from '@components/Icon';\r\nimport Typography from '@components/Typography';\r\n\r\nimport { TooltipContentBase } from './TooltipContentBase';\r\nimport { IProgressChartTooltipProps } from './types';\r\nimport { mapSizes } from './utils';\r\n\r\nexport const ProgressChartTooltip = ({\r\n caption,\r\n value,\r\n valueFormatted,\r\n iconName,\r\n barProps = {},\r\n}: IProgressChartTooltipProps) => {\r\n const { color } = barProps;\r\n\r\n return (\r\n <TooltipContentBase\r\n css={[mapSizes.small, { padding: '12px', width: '112px' }]}>\r\n <div\r\n css={{\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n lineHeight: '1rem',\r\n marginBottom: '6px',\r\n }}>\r\n <Typography variant=\"body2\" weight=\"medium\">\r\n {caption}\r\n </Typography>\r\n <Typography\r\n variant=\"body3\"\r\n weight=\"lighter\"\r\n css={{\r\n display: 'flex',\r\n alignItems: 'center',\r\n }}>\r\n {valueFormatted}\r\n {iconName && <Icon name={iconName} size={8} />}\r\n </Typography>\r\n </div>\r\n\r\n <ProgressBar percentage={value} color={color} bgColor={'#fff'} size={6} />\r\n </TooltipContentBase>\r\n );\r\n};\r\n","import { createContext, useState, useContext } from 'react';\r\nimport { ITab, ITabBarContext } from './types';\r\n\r\nconst defaultTab: ITab = {\r\n tabId: Number.NaN,\r\n renderContent() {\r\n return null;\r\n },\r\n};\r\n\r\nexport const TabBarContext = createContext<ITabBarContext>({\r\n activeTab: defaultTab,\r\n setActiveTab() {\r\n /* default no-op */\r\n },\r\n});\r\n\r\nexport const useTabBarContext = () => useContext(TabBarContext);\r\n\r\nconst useTabBar = (initialTab?: ITab): ITabBarContext => {\r\n const [tab, setTab] = useState<ITab | undefined>(initialTab);\r\n\r\n return {\r\n activeTab: tab,\r\n setActiveTab: (tab) => setTab(tab),\r\n };\r\n};\r\n\r\nexport const TabBarContextProvider = ({\r\n initialTab = defaultTab,\r\n children,\r\n}: {\r\n initialTab?: ITab;\r\n children: React.ReactNode;\r\n}) => {\r\n const { activeTab, setActiveTab } = useTabBar(initialTab);\r\n\r\n return (\r\n <TabBarContext.Provider value={{ activeTab, setActiveTab }}>\r\n {children}\r\n </TabBarContext.Provider>\r\n );\r\n};\r\n","import styled from '@emotion/styled';\r\nimport { Children, cloneElement, isValidElement } from 'react';\r\nimport { useTabBarContext } from './TabBarContext';\r\nimport { ITabBarProps } from './types';\r\n\r\nconst TabBarBase = styled.div``;\r\n\r\n/**\r\n * This component doesn't show contents of the selected tab,\r\n * however it accepts a required `renderContent()` render\r\n * prop and stores it into the Context. This lets the parent\r\n * component to decide where to render the contents of the\r\n * selected tab.\r\n * */\r\nconst TabBar = ({ children }: ITabBarProps) => {\r\n const { activeTab, setActiveTab } = useTabBarContext();\r\n const activeTabId = activeTab?.tabId;\r\n\r\n return (\r\n <TabBarBase role=\"tablist\">\r\n {Children.map(children, (child) => {\r\n // istanbul ignore else\r\n if (isValidElement(child)) {\r\n const { renderContent, ...rest } = child.props;\r\n const tabId = rest.tabId;\r\n\r\n return cloneElement(child, {\r\n key: tabId,\r\n isActive: activeTabId === tabId,\r\n onClick: () =>\r\n activeTabId !== tabId &&\r\n setActiveTab({\r\n tabId,\r\n renderContent: renderContent.bind(null, rest),\r\n }),\r\n });\r\n }\r\n })}\r\n </TabBarBase>\r\n );\r\n};\r\n\r\nexport default TabBar;\r\n","import styled from '@emotion/styled';\r\n\r\nimport { ISmallTabProps } from '@components/TabBar/types';\r\n\r\nexport const TabBase = styled.button<Pick<ISmallTabProps, 'isActive'>>`\r\n height: 34px;\r\n border: 0;\r\n outline: 0;\r\n padding: 0 14px;\r\n margin: 0 1px 0 0;\r\n color: ${({ theme }) => theme.colors.greyDarker};\r\n background: ${({ isActive, theme }) =>\r\n isActive ? theme.colors.greyFocused : theme.colors.greyLighter};\r\n font-size: 14px;\r\n line-height: 15px;\r\n cursor: pointer;\r\n\r\n &:first-of-type {\r\n border-radius: 12px 0 0 12px;\r\n }\r\n\r\n &:last-child {\r\n border-radius: 0 12px 12px 0;\r\n margin-right: 0;\r\n }\r\n\r\n &:focus {\r\n background: ${({ isActive, theme }) =>\r\n isActive ? theme.colors.greyFocused : theme.colors.greySelectedMenuItem};\r\n }\r\n`;\r\n","import { ISmallTabProps } from '@components/TabBar/types';\r\n\r\nimport { TabBase } from './TabBase';\r\n\r\nconst Tab = ({\r\n onClick,\r\n isActive,\r\n text,\r\n ariaControls,\r\n tabId,\r\n}: ISmallTabProps) => {\r\n return (\r\n <TabBase\r\n role=\"tab\"\r\n id={`${tabId}`}\r\n aria-selected={isActive}\r\n aria-controls={ariaControls}\r\n tabIndex={0}\r\n isActive={isActive}\r\n title={text}\r\n onClick={() => {\r\n // istanbul ignore else\r\n if (typeof onClick === 'function') {\r\n onClick();\r\n }\r\n }}>\r\n {text}\r\n </TabBase>\r\n );\r\n};\r\nexport default Tab;\r\n","import styled from '@emotion/styled';\r\nimport { ILargeTabProps } from '@components/TabBar/types';\r\n\r\nexport const LargeTabBase = styled.button<Pick<ILargeTabProps, 'isActive'>>`\r\n width: 100px;\r\n max-width: 100px;\r\n height: 60px;\r\n border: 0;\r\n border-radius: 12px;\r\n outline: 0;\r\n margin: 0 12px 0 0;\r\n padding: 0;\r\n color: ${({ theme }) => theme.colors.greyDarker};\r\n background: ${({ isActive, theme }) =>\r\n isActive ? theme.colors.greyFocused : theme.colors.greyLighter};\r\n box-shadow: ${({ isActive, theme }) =>\r\n isActive ? `0px 10px 40px ${theme.colors.greyShadow24}` : null};\r\n cursor: pointer;\r\n\r\n &:last-child {\r\n margin-right: 0;\r\n }\r\n\r\n &:focus {\r\n background: ${({ isActive, theme }) =>\r\n isActive ? theme.colors.greyFocused : theme.colors.greySelectedMenuItem};\r\n }\r\n\r\n p {\r\n letter-spacing: 0.1px;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n }\r\n\r\n @media (max-width: 900px) {\r\n max-width: 70px;\r\n }\r\n`;\r\n","import { css, Theme } from '@emotion/react';\r\n\r\nexport const topTextStyle = (theme: Theme) => css`\r\n fontSize: '15.5px',\r\n lineHeight: '22px',\r\n fontWeight: 300,\r\n color: ${theme.colors.greyDarker60},\r\n margin: 0,\r\n`;\r\n\r\nexport const bottomTextStyle = (theme: Theme) => css`\r\n fontSize: '14px',\r\n fontWeight: 500,\r\n lineHeight: '18px',\r\n color: ${theme.colors.greyDarker},\r\n margin: '3px 0 0 0',\r\n`;\r\n","import { useTheme } from '@emotion/react';\r\n\r\nimport { ILargeTabProps } from '@components/TabBar/types';\r\n\r\nimport { LargeTabBase } from './LargeTabBase';\r\n\r\nimport { topTextStyle, bottomTextStyle } from './styles';\r\n\r\nconst LargeTab = ({\r\n topText,\r\n bottomText,\r\n isActive,\r\n onClick,\r\n ariaControls,\r\n tabId,\r\n}: ILargeTabProps) => {\r\n const theme = useTheme();\r\n return (\r\n <LargeTabBase\r\n role=\"tab\"\r\n id={`${tabId}`}\r\n aria-selected={isActive}\r\n aria-controls={ariaControls}\r\n tabIndex={0}\r\n isActive={isActive}\r\n title={`${topText}-${bottomText}`}\r\n onClick={() => {\r\n // istanbul ignore else\r\n if (typeof onClick === 'function') {\r\n onClick();\r\n }\r\n }}>\r\n <p css={topTextStyle(theme)}>{topText}</p>\r\n <p css={bottomTextStyle(theme)}>{bottomText}</p>\r\n </LargeTabBase>\r\n );\r\n};\r\nexport default LargeTab;\r\n","import { css, Theme } from '@emotion/react';\r\n\r\nimport theme from '@themes/main';\r\n\r\nexport const pinkBorder = css`\r\n border: 1px solid ${theme.colors.pink};\r\n`;\r\nexport const yellowBorder = css`\r\n border: 1px solid ${theme.colors.yellow};\r\n`;\r\nexport const greenBorder = css`\r\n border: 1px solid ${theme.colors.green};\r\n`;\r\nexport const turquoiseBorder = css`\r\n border: 1px solid ${theme.colors.turquoise};\r\n`;\r\nexport const purpleBorder = css`\r\n border: 1px solid ${theme.colors.purple};\r\n`;\r\nexport const blueLightBorder = css`\r\n border: 1px solid ${theme.colors.blueLight};\r\n`;\r\nexport const blueBorder = css`\r\n border: 1px solid ${theme.colors.blue};\r\n`;\r\nexport const yellowWarmBorder = css`\r\n border: 1px solid ${theme.colors.yellowWarm};\r\n`;\r\n\r\nexport const pink = (theme: Theme) => css`\r\n color: ${theme.colors.pink};\r\n\r\n background-color: ${theme.colors.pink20};\r\n background: linear-gradient(\r\n 90deg,\r\n ${theme.colors.pink20} 0%,\r\n ${theme.colors.pinkLighter20} 100%\r\n );\r\n box-shadow: -4px 4px 10px ${theme.colors.pinkShadow40};\r\n`;\r\n\r\nexport const yellow = (theme: Theme) => css`\r\n color: ${theme.colors.yellow};\r\n\r\n background-color: ${theme.colors.yellow20};\r\n background: linear-gradient(\r\n 90deg,\r\n ${theme.colors.yellow20} 0%,\r\n ${theme.colors.yellowLighter20} 100%\r\n );\r\n box-shadow: -4px 4px 10px ${theme.colors.yellowLighter40};\r\n`;\r\n\r\nexport const yellowWarm = (theme: Theme) => css`\r\n color: ${theme.colors.yellowLighter};\r\n\r\n background-color: ${theme.colors.yellowLighter20};\r\n background: linear-gradient(\r\n 90deg,\r\n ${theme.colors.yellowLighter20} 0%,\r\n ${theme.colors.yellowWarm20} 100%\r\n );\r\n box-shadow: -4px 4px 10px ${theme.colors.yellowWarm40};\r\n`;\r\n\r\nexport const green = (theme: Theme) => css`\r\n color: ${theme.colors.green};\r\n\r\n background-color: ${theme.colors.green20};\r\n background: linear-gradient(\r\n 270deg,\r\n ${theme.colors.greenLighter20} 0%,\r\n ${theme.colors.green20} 100%\r\n );\r\n box-shadow: -4px 4px 10px ${theme.colors.greenLighter40};\r\n`;\r\n\r\nexport const turquoise = (theme: Theme) => css`\r\n color: ${theme.colors.turquoise};\r\n\r\n background-color: ${theme.colors.turquoise20};\r\n background: linear-gradient(\r\n 90deg,\r\n ${theme.colors.turquoise20} 0%,\r\n ${theme.colors.turquoiseLighter20} 100%\r\n );\r\n box-shadow: -4px 4px 10px ${theme.colors.turquoiseShadow40};\r\n`;\r\n\r\nexport const purple = (theme: Theme) => css`\r\n color: ${theme.colors.purple};\r\n\r\n background-color: ${theme.colors.purpleLighter20};\r\n background: linear-gradient(\r\n 270deg,\r\n ${theme.colors.purpleLighter20} 0%,\r\n ${theme.colors.purple20} 100%\r\n );\r\n box-shadow: -4px 4px 10px ${theme.colors.purpleLighter40};\r\n`;\r\nexport const blue = (theme: Theme) => css`\r\n color: ${theme.colors.blue};\r\n\r\n background-color: ${theme.colors.blue20};\r\n background: linear-gradient(\r\n 90deg,\r\n ${theme.colors.blueLighter20},\r\n ${theme.colors.blue20}\r\n );\r\n box-shadow: -4px 4px 10px ${theme.colors.blueLightDarker40};\r\n`;\r\n\r\nexport const blueLight = (theme: Theme) => css`\r\n color: ${theme.colors.blueLight};\r\n\r\n background-color: ${theme.colors.blueLight20};\r\n background: linear-gradient(\r\n 270deg,\r\n ${theme.colors.blueLight20} 0%,\r\n ${theme.colors.blueLightLighter20} 100%\r\n );\r\n box-shadow: -4px 4px 10px ${theme.colors.blueLightLighter40};\r\n`;\r\n","import Badge from '@components/Badge';\r\nimport {\r\n blue,\r\n green,\r\n blueLight,\r\n pink,\r\n purple,\r\n turquoise,\r\n yellow,\r\n yellowWarm,\r\n} from './styles';\r\n\r\nimport {\r\n pinkBorder,\r\n yellowBorder,\r\n greenBorder,\r\n turquoiseBorder,\r\n purpleBorder,\r\n blueLightBorder,\r\n blueBorder,\r\n yellowWarmBorder,\r\n} from './styles';\r\nimport { TagsProps } from './types';\r\n\r\nconst mapColors: MainColors = {\r\n pink: [pink, pinkBorder],\r\n yellow: [yellow, yellowBorder],\r\n green: [green, greenBorder],\r\n turquoise: [turquoise, turquoiseBorder],\r\n purple: [purple, purpleBorder],\r\n blueLight: [blueLight, blueLightBorder],\r\n blue: [blue, blueBorder],\r\n yellowWarm: [yellowWarm, yellowWarmBorder],\r\n};\r\n\r\nconst Tag = ({\r\n color = 'purple',\r\n size = 'medium',\r\n className,\r\n children,\r\n}: TagsProps) => (\r\n <Badge color={color} size={size} css={mapColors[color]} className={className}>\r\n {children}\r\n </Badge>\r\n);\r\n\r\nexport default Tag;\r\n","import styled from '@emotion/styled';\r\n\r\nexport const TextareaBase = styled.textarea`\r\n flex: 1 100%;\r\n\r\n background: ${({ theme }) => theme.colors.white};\r\n border-radius: 12px;\r\n background-origin: border-box;\r\n background-clip: padding-box, border-box;\r\n\r\n border: none;\r\n box-shadow: ${({ theme }) => `inset 0 0 1.5px 0 ${theme.colors.grey}`};\r\n\r\n color: ${({ theme }) => theme.colors.greyDarker};\r\n\r\n width: 100%;\r\n min-height: 114px;\r\n padding: 14px;\r\n\r\n font-weight: 400;\r\n font-size: 0.875rem;\r\n line-height: 1rem;\r\n\r\n &::placeholder {\r\n color: ${({ theme }) => theme.colors.greyDarker60};\r\n }\r\n\r\n &:hover {\r\n box-shadow: ${({ theme }) =>\r\n `inset 0 0 1.5px 0 ${theme.colors.greyDarker60}`};\r\n }\r\n\r\n &:focus {\r\n box-shadow: ${({ theme }) => `inset 0 0 1.5px 0 ${theme.colors.grey40}`};\r\n }\r\n\r\n &:disabled {\r\n color: ${({ theme }) => `${theme.colors.grey}`};\r\n box-shadow: ${({ theme }) => `inset 0 0 1.5px 0 ${theme.colors.grey}`};\r\n background: ${({ theme }) => theme.colors.greyLighter};\r\n\r\n &::placeholder {\r\n color: ${({ theme }) => theme.colors.grey};\r\n }\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { useMergeRefs } from '@floating-ui/react';\r\nimport { callAll } from '@ssa-ui-kit/utils';\r\nimport { TextareaProps } from './types';\r\nimport { TextareaBase } from './TextareaBase';\r\n\r\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\r\n function TextareaInner(\r\n {\r\n name,\r\n placeholder,\r\n validationSchema,\r\n disabled = false,\r\n rows = 10,\r\n maxLength,\r\n title,\r\n register,\r\n setCountChar,\r\n }: TextareaProps,\r\n ref?: React.ForwardedRef<HTMLTextAreaElement | null>,\r\n ) {\r\n if (!register) {\r\n throw new Error('Input component must be used within a Form component');\r\n }\r\n\r\n const { onChange, ...options } = register(name, validationSchema);\r\n\r\n return (\r\n <TextareaBase\r\n id={`formElement-${name}`}\r\n placeholder={placeholder}\r\n disabled={disabled}\r\n rows={rows}\r\n maxLength={maxLength}\r\n onChange={callAll(setCountChar, onChange)}\r\n title={title}\r\n {...options}\r\n ref={useMergeRefs([options.ref, ref])}\r\n />\r\n );\r\n },\r\n);\r\n\r\nexport default Textarea;\r\n","import styled from '@emotion/styled';\r\n\r\nimport { InputColors } from '@components/Input/types';\r\n\r\nconst statusColor: Record<string, InputColors> = {\r\n error: 'red',\r\n success: 'greenLighter',\r\n basic: 'greyDarker60',\r\n};\r\n\r\nexport const FormHelperTextBase = styled.span<{\r\n status?: string;\r\n}>`\r\n display: block;\r\n\r\n font-weight: 400;\r\n font-size: 0.688rem;\r\n\r\n margin: 6px 0 0 4px;\r\n\r\n color: ${({ theme, status = 'basic' }) => theme.colors[statusColor[status]]};\r\n`;\r\n","import { IFormHelperText } from './types';\r\nimport { FormHelperTextBase } from './FormHelperTextBase';\r\n\r\nconst FormHelperText = ({\r\n role,\r\n status,\r\n disabled,\r\n children,\r\n}: IFormHelperText) => {\r\n status = disabled ? 'basic' : status;\r\n return (\r\n <FormHelperTextBase role={role} status={status}>\r\n {children}\r\n </FormHelperTextBase>\r\n );\r\n};\r\n\r\nexport default FormHelperText;\r\n","import React from 'react';\r\n\r\nimport Label from '@components/Label';\r\nimport FormHelperText from '@components/FormHelperText';\r\nimport Input from '@components/Input';\r\nimport Textarea from '@components/Textarea';\r\n\r\nimport { TextFieldProps } from './types';\r\n\r\nconst TextField = ({\r\n multirow,\r\n name,\r\n label,\r\n errors,\r\n helperText,\r\n success,\r\n disabled,\r\n maxLength,\r\n ...props\r\n}: TextFieldProps) => {\r\n const [countChar, setCountChar] = React.useState(0);\r\n\r\n const status = success ? 'success' : errors ? 'error' : 'basic';\r\n\r\n const handleCount = (e: React.ChangeEvent<HTMLInputElement>) =>\r\n setCountChar(e.currentTarget.value.length);\r\n\r\n return (\r\n <>\r\n <Label htmlFor={`formElement-${name}`}>{label}</Label>\r\n\r\n {multirow ? (\r\n <Textarea\r\n name={name}\r\n disabled={disabled}\r\n maxLength={maxLength}\r\n setCountChar={handleCount}\r\n {...props}\r\n />\r\n ) : (\r\n <Input name={name} status={status} disabled={disabled} {...props} />\r\n )}\r\n\r\n <div\r\n css={{\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n width: '100%',\r\n }}>\r\n <FormHelperText role=\"status\" status={status} disabled={disabled}>\r\n {errors ? errors?.message : helperText}\r\n </FormHelperText>\r\n <FormHelperText role=\"meter\">\r\n {maxLength ? `${countChar} / ${maxLength}` : null}\r\n </FormHelperText>\r\n </div>\r\n </>\r\n );\r\n};\r\n\r\nexport default TextField;\r\n","import styled from '@emotion/styled';\r\nimport Label from '@components/Label';\r\n\r\nexport const RadioBase = styled(Label)`\r\n display: inline-flex;\r\n flex-grow: 0;\r\n align-items: center;\r\n cursor: pointer;\r\n\r\n &:has(input:disabled) {\r\n cursor: default;\r\n }\r\n\r\n input:focus + svg {\r\n filter: drop-shadow(\r\n ${({ theme }) => `-4px 4px 10px ${theme.colors.green40}`}\r\n );\r\n }\r\n\r\n input {\r\n border: 0;\r\n clip: rect(0 0 0 0);\r\n height: 1px;\r\n margin: -1px;\r\n overflow: hidden;\r\n padding: 0;\r\n position: absolute;\r\n width: 1px;\r\n }\r\n\r\n span {\r\n margin-left: 10px;\r\n font-size: 14px;\r\n font-weight: 100;\r\n }\r\n`;\r\n","import { useId, useState } from 'react';\r\nimport { useTheme } from '@emotion/react';\r\n\r\nimport Icon from '@components/Icon';\r\n\r\nimport { RadioBase } from './RadioBase';\r\nimport { IRadioProps } from './types';\r\n\r\nconst Radio = ({\r\n id,\r\n name = '',\r\n value,\r\n isChecked,\r\n isDisabled,\r\n isRequired,\r\n onChange,\r\n text,\r\n className,\r\n}: IRadioProps) => {\r\n const theme = useTheme();\r\n\r\n const autoGenId = useId();\r\n const [isHovered, setIsHovered] = useState(false);\r\n const radioId = id || autoGenId;\r\n\r\n return (\r\n <RadioBase\r\n htmlFor={radioId}\r\n className={className}\r\n onMouseEnter={() => setIsHovered(true)}\r\n onMouseLeave={() => setIsHovered(false)}>\r\n <input\r\n id={radioId}\r\n type=\"radio\"\r\n value={value}\r\n checked={isChecked}\r\n onChange={() => typeof onChange === 'function' && onChange(value)}\r\n disabled={isDisabled}\r\n required={isRequired}\r\n name={name}\r\n />\r\n <Icon\r\n name={isChecked ? 'radio-on' : 'circle'}\r\n size={20}\r\n color={\r\n theme.colors[\r\n isDisabled ? 'greyFocused40' : isHovered ? 'green60' : 'green'\r\n ]\r\n }\r\n />\r\n {text ? <span data-testid={id}>{text}</span> : null}\r\n </RadioBase>\r\n );\r\n};\r\n\r\nexport default Radio;\r\n","import styled from '@emotion/styled';\r\n\r\nexport const RadioGroupBase = styled.div``;\r\n","import { Children, isValidElement, cloneElement, useState } from 'react';\r\n\r\nimport Radio from '@components/Radio';\r\n\r\nimport { RadioGroupBase } from './RadioGroupBase';\r\nimport { IRadioGroupProps } from './types';\r\n\r\nconst RadioGroup = ({\r\n name,\r\n isRequired,\r\n initialState,\r\n onChange,\r\n children,\r\n className,\r\n}: IRadioGroupProps) => {\r\n const [activeValue, setActiveValue] = useState(initialState);\r\n\r\n const onRadioValueChange = (value: string) => {\r\n setActiveValue(value);\r\n onChange(value);\r\n };\r\n\r\n return (\r\n <RadioGroupBase\r\n role=\"radiogroup\"\r\n aria-required={isRequired}\r\n className={className}>\r\n {Children.map(children, (child) => {\r\n /* istanbul ignore else*/\r\n if (isValidElement(child) && child.type === Radio) {\r\n const { id, value, isDisabled, text } = child.props;\r\n\r\n return cloneElement(child, {\r\n key: id,\r\n name,\r\n value,\r\n isChecked: activeValue === value,\r\n isDisabled,\r\n isRequired,\r\n text,\r\n onChange: onRadioValueChange,\r\n });\r\n }\r\n })}\r\n </RadioGroupBase>\r\n );\r\n};\r\n\r\nexport default RadioGroup;\r\n","import { useController } from 'react-hook-form';\r\nimport type { FieldValues } from 'react-hook-form';\r\n\r\nimport RadioGroup from '@components/RadioGroup';\r\n\r\nimport { IFormRadioGroupProps } from './types';\r\nimport { ChangeEvent } from 'react';\r\n\r\nconst FormRadioGroup = <T extends FieldValues>({\r\n name,\r\n isRequired = false,\r\n control,\r\n children,\r\n ...props\r\n}: IFormRadioGroupProps<T>) => {\r\n const { field } = useController<T>({\r\n control,\r\n name,\r\n rules: { required: isRequired },\r\n });\r\n\r\n return (\r\n <RadioGroup\r\n name={field.name}\r\n onChange={(value) => {\r\n field.onChange(value as unknown as ChangeEvent);\r\n }}\r\n isRequired={isRequired}\r\n {...props}>\r\n {children}\r\n </RadioGroup>\r\n );\r\n};\r\n\r\nexport default FormRadioGroup;\r\n","import { IResponsiveImageProps } from './types';\r\n\r\n/**\r\n * A simple wrapper over the `<img />` tag.\r\n *\r\n * Don't forget to adjust Device Pixel Ratio in DevTools\r\n * when testing srcSet, and use Hard Reload to force the\r\n * browser to load an image of another resolution.\r\n * */\r\nconst ResponsiveImage = ({ src, alt, ...props }: IResponsiveImageProps) => {\r\n return <img src={src} alt={alt} {...props} />;\r\n};\r\n\r\nexport default ResponsiveImage;\r\n","import styled from '@emotion/styled';\r\nimport { CommonProps } from '@global-types/emotion';\r\n\r\nconst Form = styled.form<CommonProps>`\r\n display: flex;\r\n flex-flow: row wrap;\r\n`;\r\n\r\nexport default Form;\r\n","import styled from '@emotion/styled';\r\nimport { CommonProps } from '@global-types/emotion';\r\n\r\nconst FormGroup = styled.div<CommonProps>`\r\n display: flex;\r\n\r\n margin: 10px 0;\r\n\r\n flex: 1 1 100%;\r\n flex-wrap: wrap;\r\n\r\n align-items: flex-start;\r\n`;\r\n\r\nexport default FormGroup;\r\n","import styled from '@emotion/styled';\r\nimport { CommonProps } from '@global-types/emotion';\r\n\r\nconst FormAction = styled.div<CommonProps>`\r\n flex: 1 1 100%;\r\n`;\r\n\r\nexport default FormAction;\r\n","import styled from '@emotion/styled';\r\n\r\nconst IndicatorBase = styled.div<{ background?: string }>`\r\n position: absolute;\r\n left: 0;\r\n z-index: 1;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n min-width: 5px;\r\n min-height: 5px;\r\n padding: 2px;\r\n border-radius: 50%;\r\n aspect-ratio: 1;\r\n background: ${({ theme, background }) =>\r\n background\r\n ? background\r\n : `linear-gradient(291.8deg, ${theme.colors.blueLightDarker}, ${theme.colors.blueDark})`};\r\n\r\n ${({ theme }) => theme.mediaQueries.md} {\r\n min-width: 8px;\r\n min-height: 8px;\r\n padding: 3px;\r\n }\r\n`;\r\n\r\nexport default IndicatorBase;\r\n","import React from 'react';\r\nimport { useEffect, useRef, useState } from 'react';\r\nimport { css, useTheme } from '@emotion/react';\r\nimport IndicatorBase from './IndicatorBase';\r\nimport { ChildrenDataProps, IndicatorProps } from './types';\r\nimport { useWindowSize } from '@ssa-ui-kit/hooks';\r\n\r\nconst Indicator = ({\r\n isVisible = true,\r\n position = 'left',\r\n background,\r\n text,\r\n children,\r\n}: IndicatorProps) => {\r\n const indicatorRef = useRef<HTMLDivElement>(null);\r\n const childrenRef = useRef<HTMLDivElement | null>(null);\r\n const [width, setWidth] = useState<number>(0);\r\n const [childrenData, setChildrenData] = useState<ChildrenDataProps | null>(\r\n {} || null,\r\n );\r\n const { width: windowWidth } = useWindowSize();\r\n const theme = useTheme();\r\n\r\n const refValue = indicatorRef.current ? indicatorRef.current.offsetWidth : 0;\r\n const isRight = position === 'right';\r\n\r\n useEffect(() => {\r\n if (indicatorRef.current && childrenRef.current) {\r\n const refData = {\r\n top: childrenRef.current.offsetTop,\r\n left: childrenRef.current.offsetLeft,\r\n width: childrenRef.current.offsetWidth,\r\n right: childrenRef.current.offsetWidth + childrenRef.current.offsetLeft,\r\n };\r\n setWidth(refValue);\r\n setChildrenData(refData);\r\n }\r\n }, [width, childrenRef.current, windowWidth]);\r\n\r\n return (\r\n <React.Fragment>\r\n {isVisible ? (\r\n <IndicatorBase\r\n data-testid={`indicator-${position}`}\r\n ref={indicatorRef}\r\n css={\r\n childrenData && [\r\n css`\r\n top: ${childrenData.top + 2}px;\r\n left: ${isRight ? '-6px' : '1px'};\r\n transform: translate(${childrenData?.[position]}px, -50%);\r\n\r\n ${theme.mediaQueries.md} {\r\n left: ${isRight ? '-10px' : '1px'};\r\n }\r\n `,\r\n width > 8 &&\r\n css`\r\n left: ${isRight ? '4px' : '-4px'};\r\n transform: ${isRight\r\n ? `translate(${childrenData?.[position] - width}px, -50%)`\r\n : `translate(${childrenData?.[position]}px, -50%)`};\r\n\r\n ${theme.mediaQueries.md} {\r\n left: ${isRight ? '4px' : '-4px'};\r\n }\r\n `,\r\n width > 24 &&\r\n css`\r\n border-radius: 10px;\r\n aspect-ratio: 0;\r\n `,\r\n ]\r\n }\r\n background={background}>\r\n {text}\r\n </IndicatorBase>\r\n ) : null}\r\n {React.cloneElement(children, {\r\n ref: (ref: HTMLDivElement | null) => (childrenRef.current = ref),\r\n })}\r\n </React.Fragment>\r\n );\r\n};\r\n\r\nexport default Indicator;\r\n","import { Theme, css } from '@emotion/react';\r\n\r\nexport const ButtonItem = (theme: Theme) => css`\r\n justify-content: center;\r\n min-width: 40px;\r\n height: auto;\r\n padding: 8px;\r\n text-align: center;\r\n letter-spacing: 0em;\r\n border-radius: 0;\r\n box-shadow: none;\r\n user-select: none;\r\n\r\n &:hover,\r\n &:focus,\r\n &:active {\r\n box-shadow: none;\r\n }\r\n\r\n &:first-of-type {\r\n border-radius: 6px 0 0 6px;\r\n }\r\n\r\n &:last-child {\r\n border-radius: 0 6px 6px 0;\r\n }\r\n\r\n &:not(:last-child) {\r\n margin-right: 1px;\r\n }\r\n\r\n &.active {\r\n background: ${theme.colors.greyFocused};\r\n }\r\n\r\n &:disabled {\r\n background: ${theme.colors.grey};\r\n\r\n p {\r\n color: ${theme.colors.grey40};\r\n }\r\n }\r\n\r\n ${theme.mediaQueries.md} {\r\n min-width: 65px;\r\n padding: 12px;\r\n\r\n p {\r\n font-size: 13.3px;\r\n line-height: 15px;\r\n }\r\n }\r\n`;\r\n","import React, { useState } from 'react';\r\nimport Button from '@components/Button';\r\nimport Typography from '@components/Typography';\r\nimport { ButtonGroupProps, ButtonGroupItem } from './types';\r\nimport { ButtonItem } from './styles';\r\n\r\nexport const ButtonGroup = ({\r\n items,\r\n buttonStyles,\r\n selectedItem,\r\n onClick,\r\n}: ButtonGroupProps) => {\r\n const [activeBtn, setActiveBtn] = useState(selectedItem || items[0]);\r\n const handleClick = (item: ButtonGroupItem) => () => {\r\n setActiveBtn(item);\r\n onClick(item);\r\n };\r\n\r\n return (\r\n <React.Fragment>\r\n {items.map((item) => {\r\n const isActive = activeBtn.id === item.id && !item.isDisabled;\r\n return (\r\n <Button\r\n key={item.id}\r\n aria-pressed={isActive}\r\n variant=\"secondary\"\r\n size=\"small\"\r\n isDisabled={item.isDisabled}\r\n aria-disabled={item.isDisabled}\r\n onClick={handleClick(item)}\r\n css={[ButtonItem, buttonStyles]}\r\n className={isActive ? 'active' : ''}>\r\n <Typography variant=\"body1\">{item.text}</Typography>\r\n </Button>\r\n );\r\n })}\r\n </React.Fragment>\r\n );\r\n};\r\n","import styled from '@emotion/styled';\r\n\r\nexport const LinkBase = styled.a`\r\n display: inline-block;\r\n`;\r\n","import Typography from '@components/Typography';\r\n\r\nimport { LinkProps } from './Link.types';\r\nimport { LinkBase } from './LinkBase';\r\n\r\nexport const Link = ({ children, href, ...props }: LinkProps) => (\r\n <LinkBase href={href} {...props}>\r\n <Typography variant=\"subtitle\">{children}</Typography>\r\n </LinkBase>\r\n);\r\n"],"names":["root","factory","exports","module","require","define","amd","self","__WEBPACK_EXTERNAL_MODULE__435__","__WEBPACK_EXTERNAL_MODULE__156__","__WEBPACK_EXTERNAL_MODULE__111__","leafPrototypes","getProto","e","t","d","n","r","o","Object","defineProperty","enumerable","get","prototype","hasOwnProperty","call","Symbol","toStringTag","value","assocPath","m","callAll","dateFormatters","debounce","u","dissocPath","w","generateRange","g","mapObjIndexed","h","path","y","pathOr","S","prop","b","propOr","v","throttle","formatDate","f","formatDayOfWeek","s","formatTime","a","getTimeAgo","printDayOfTheWeek","l","forEach","i","setTimeout","clearTimeout","c","year","month","week","day","hour","min","Date","toLocaleTimeString","minute","getDay","toLocaleDateString","getTime","Number","isNaN","Error","Math","floor","now","keys","reduce","p","push","isInteger","unshift","concat","JSON","parse","stringify","length","useApi","useClickOutside","usePaginationRange","useTextSizeDecrease","useWindowSize","useState","isLoading","error","data","query","async","width","window","innerWidth","height","innerHeight","useEffect","addEventListener","removeEventListener","current","contains","target","document","pagesCount","selectedPage","useMemo","scrollWidth","clientWidth","getComputedStyle","fontSize","match","style","useRef","parentNode","wordBreak","T","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","__esModule","getPrototypeOf","obj","__proto__","mode","this","then","ns","create","def","indexOf","getOwnPropertyNames","key","definition","colors","black25","black45","white","white80","white60","white30","greyLighter","greySelectedMenuItem","greyFocused","greyFocused40","greyDropdownMain","greyDropdownFocused","greyDropdownText","greyArrowSidebar","grey","grey20","grey40","greyShadow24","greyDarker","greyDarker60","greyDarker80","greyDarker14","greyDark","greyDisabled","greyDisabledCheckbox","greyButtonGradient","greyButtonGradientLight","greyBackground","greyBackgroundLight","greyPopoverLight","greyGraphite","greyGraphite70","greyShadow","greyShadowHover","greyOutline","greyFilterIcon","greyCancelClearButton","redLighter","redLighter40","red","red40","greenLighter","greenLighter20","greenLighter40","greenLighter60","green","green20","green40","green60","greenMint","greenDark","pink","pink20","pinkDark","pinkDarker","pinkLighter","pinkLighter20","pinkLighter40","pinkShadow40","yellow","yellow20","yellowLighter","yellowLighter20","yellowLighter40","yellowWarm","yellowWarm20","yellowWarm40","turquoise","turquoise20","turquoiseShadow40","turquoiseLighter","turquoiseLighter20","turquoiseLighter40","purple","purple20","purpleLighter","purpleLighter20","purpleLighter40","purpleDark","purpleDark40","blue","blue20","blueDark","blueLightDarker","blueDropdownWithSelectedItems","blueDropdownWithSelectedItemsBorder","blueLighter","blueLighter20","blueLighter40","blueLight","blueLight20","blueLightDarker40","blueLightLighter","blueLightLighter20","blueLightLighter40","blueNotification","blueNotification40","blueButtonHoverGradientFrom","blueButtonHoverGradientTo","blueButtonActive","blueRoyal","mediaQueries","xs","sm","md","lg","xlg","theme","css","focusOutline","color","borderRadius","outlineStyles","borderStyle","_extends","assign","bind","arguments","source","apply","memoize","fn","cache","arg","reactPropsRegex","isPropValid","test","charCodeAt","registerStyles","serialized","isStringTag","className","name","registered","styles","unitlessKeys","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","hyphenateRegex","animationRegex","isCustomProperty","property","isProcessableValue","processStyleName","styleName","replace","toLowerCase","processStyleValue","p1","p2","cursor","next","handleInterpolation","mergedProps","interpolation","__emotion_styles","anim","string","Array","isArray","_key","interpolated","_i","createStringFromObject","previousCursor","result","cached","labelPattern","useInsertionEffect","useInsertionEffectAlwaysWithSyncFallback","testOmitPropsOnStringTag","testOmitPropsOnComponent","getDefaultShouldForwardProp","tag","composeShouldForwardProps","options","isReal","shouldForwardProp","optionsShouldForwardProp","__emotion_forwardProp","propName","Insertion","_ref","inserted","insert","sheet","insertStyles","createStyled","identifierName","targetClassName","__emotion_real","baseTag","__emotion_base","label","defaultShouldForwardProp","shouldUseAs","args","slice","raw","len","Styled","withEmotionCache","props","ref","registeredStyles","classNames","rawClassName","FinalTag","as","classInterpolations","ThemeContext","split","stringMode","strings","lastIndex","exec","str","k","toString","serializeStyles","finalShouldForwardProp","newProps","displayName","defaultProps","withComponent","nextTag","nextOptions","AccordionGroupContext","createContext","useAccordionGroupContext","useContext","AccordionGroupContextProvider","children","openedAccordions","stayOpen","setOpenedAccordions","toggleOpenedAccordion","setStayOpen","useAccordionGroup","accordion","isOpened","find","activeAccordion","id","newOpenedAccordions","filter","___EmotionJSX","Provider","AccordionBase","_styled","AccordionGroup","size","accordionsStayOpen","rest","useLayoutEffect","initialAccordions","Children","map","child","isValidElement","renderContent","renderTitle","tabIndex","cloneElement","onClick","direction","CardContent","CardContentBase","wrapperStyles","empty","small","medium","large","baseTitleStyles","createBaseContentStyles","isActive","AccordionContent","createContentStyles","useTheme","transparent","hasIcon","iconsList","componentsList","Diet","fill","viewBox","xmlns","xmlnsXlink","Calendar","Home","Stats","Sleep","Trainings","Measurements","stroke","Settings","fillRule","clipRule","Plus","strokeLinecap","strokeLinejoin","Minus","More","MoreVertical","cx","cy","Check","CheckCircle","Cross","User","Union","Notification","Information","Warning","Attention","Visible","Invisible","LogOut","LogIn","Email","Lock","CarrotDown","CarrotUp","CarrotLeft","CarrotRight","RadioOn","x","rx","Circle","ArrowUp","ArrowDown","Filter","Search","Archive","clipPath","Bin","Change","Copy","Robot","Chart","Clock","UnArchive","transform","iconsMap","res","index","IconMapComponent","Component","Icon","IconsMap","CardHeaderBaseButton","CardHeaderBase","AccordionTitle","title","ariaControls","createTitleStyles","type","Fragment","noShadow","Accordion","CardBase","role","Avatar","image","mapSizes","mapColors","Badge","React","BadgeBase","alignItems","ButtonBase","ButtonText","text","testId","WhiteButtonText","_css","GreyButtonText","GreyLightButtonText","DisabledButtonText","buttonBlock","iconWrapperRight","iconWrapperLeft","mapVariants","primary","secondary","tertiary","info","attention","Button","forwardRef","block","startIcon","endIcon","variant","isDisabled","ariaProps","isHovered","setIsHovered","isPrimary","isInfo","isTertiary","isAttention","noMargin","margin","variantStyles","btn","disabled","onMouseEnter","onMouseLeave","Wrapper","Card","CardHeader","icon","position","left","top","ColorMarker","active","ColorPicker","onChange","initColor","activeColor","setActiveColor","handleColorChange","LabelBase","Label","htmlFor","checkboxStyles","blueInput","greenInput","CheckboxBase","Checkbox","externalState","initialState","isIndeterminate","isRequired","register","isChecked","setIsChecked","Boolean","autoGenId","useId","checkboxInputRef","indeterminate","checkboxId","checked","newIsChecked","node","required","isCheckBoxInput","element","isDateObject","isNullOrUndefined","isObjectType","isObject","getEventValue","event","isNameInFieldArray","names","has","substring","search","getNodeParentName","isPlainObject","tempObject","prototypeCopy","constructor","isWeb","HTMLElement","cloneObject","copy","Set","Blob","FileList","compact","isUndefined","val","defaultValue","EVENTS","BLUR","FOCUS_OUT","CHANGE","VALIDATION_MODE","onBlur","onSubmit","onTouched","all","HookFormContext","useFormContext","getProxyFormState","formState","control","localProxyFormState","isRoot","defaultValues","_defaultValues","_proxyFormState","isEmptyObject","shouldRenderFormState","formStateData","updateFormState","convertToArrayPayload","shouldSubscribeByName","signalName","exact","some","currentName","startsWith","useSubscribe","_props","subscription","subject","subscribe","unsubscribe","isString","generateWatchOutput","_names","formValues","isGlobal","watch","add","fieldName","watchAll","isKey","stringToPath","input","set","object","tempPath","newValue","objValue","useController","methods","shouldUnregister","isArrayField","array","_name","_subjects","values","updateValue","_formValues","_getWatch","_removeUnmounted","useWatch","_formState","_mounted","_localProxyFormState","isDirty","dirtyFields","touchedFields","isValidating","isValid","errors","_updateFormState","state","_updateValid","useFormState","_registerProps","rules","_shouldUnregisterField","_options","updateMounted","field","_fields","_f","mount","_state","action","unregister","_updateDisabledField","fields","elm","focus","select","setCustomValidity","message","reportValidity","fieldState","defineProperties","invalid","isTouched","FormCheckbox","DropdownToggleBase","isMultiple","isOpen","selectedCount","multipleStyles","borderColor","borderColorFocused","backgroundColor","DropdownToggle","onFocus","ariaLabelledby","currentTarget","DropdownArrowBase","DropdownArrow","isUp","DropdownContext","activeItem","DropdownOptionsBase","dropdownOptionButton","noItemsMsg","NaN","DropdownOptions","toArray","DropdownOption","tabindex","DropdownBase","Dropdown","selectedItem","isInitOpen","handleChange","dropdownRef","placeholder","dropdownId","isFocused","setIsFocused","setIsOpen","setColors","setActiveItem","item","innerItem","option","items","contextValue","getNodeName","isNode","nodeName","_node$ownerDocument","ownerDocument","defaultView","getDocumentElement","documentElement","Node","Element","isShadowRoot","ShadowRoot","isOverflowElement","overflow","overflowX","overflowY","display","includes","isTableElement","isContainingBlock","webkit","isWebKit","perspective","containerType","backdropFilter","willChange","contain","CSS","supports","isLastTraversableNode","getNodeScroll","scrollLeft","scrollTop","pageXOffset","pageYOffset","getParentNode","assignedSlot","host","getNearestOverflowAncestor","body","getOverflowAncestors","list","_node$ownerDocument2","scrollableAncestor","isBody","win","visualViewport","doc","activeElement","_activeElement","_activeElement$shadow","shadowRoot","parent","rootNode","getRootNode","uaData","navigator","userAgentData","platform","mozInputSource","isTrusted","androidRe","brands","brand","version","join","userAgent","pointerType","buttons","detail","pressure","strict","composedPath","TYPEABLE_SELECTOR","isTypeableElement","matches","preventDefault","stopPropagation","max","round","createCoords","oppositeSideMap","right","bottom","oppositeAlignmentMap","start","end","clamp","param","placement","axis","getAxisLength","getAlignmentAxis","alignment","getOppositePlacement","side","padding","expandPaddingObject","rect","computeCoordsFromPlacement","rtl","reference","floating","sideAxis","alignmentAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","_await$platform$isEle","rects","elements","strategy","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","getClippingRect","isElement","contextElement","offsetParent","getOffsetParent","offsetScale","getScale","elementClientRect","convertOffsetParentRelativeRectToViewportRelativeRect","arrow","arrowDimensions","getDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","offset","alignmentOffset","centerOffset","flip","_middlewareData$flip","middlewareData","initialPlacement","mainAxis","checkMainAxis","crossAxis","checkCrossAxis","fallbackPlacements","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","flipAlignment","detectOverflowOptions","isBasePlacement","isRTL","oppositePlacement","getExpandedPlacements","isStart","lr","rl","tb","bt","getSideList","getOppositeAxisPlacements","placements","overflows","overflowsData","sides","mainAlignmentSide","every","_middlewareData$flip2","_overflowsData$filter","nextIndex","nextPlacement","reset","resetPlacement","sort","_overflowsData$map$so","acc","diffCoords","mainAxisMulti","crossAxisMulti","rawValue","convertValueToCoords","shift","limiter","mainAxisCoord","crossAxisCoord","maxSide","limitedCoords","getCssDimensions","parseFloat","hasOffset","offsetWidth","offsetHeight","shouldFallback","$","unwrapElement","domElement","getBoundingClientRect","isFinite","noOffsets","getVisualOffsets","offsetLeft","offsetTop","includeScale","isFixedStrategy","clientRect","scale","visualOffsets","isFixed","floatingOffsetParent","shouldAddVisualOffsets","offsetWin","currentIFrame","frameElement","iframeScale","iframeRect","clientLeft","paddingLeft","clientTop","paddingTop","getWindowScrollBarX","getClientRectFromClippingAncestor","clippingAncestor","html","clientHeight","visualViewportBased","getViewportRect","scroll","scrollHeight","getDocumentRect","getInnerBoundingClientRect","hasFixedPositionAncestor","stopNode","getRectRelativeToOffsetParent","isOffsetParentAnElement","offsets","offsetRect","getTrueOffsetParent","polyfill","currentNode","getContainingBlock","clippingAncestors","cachedResult","el","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","getClippingElementAncestors","_c","firstClippingAncestor","clippingRect","accRect","getElementRects","getOffsetParentFn","getDimensionsFn","getClientRects","from","autoUpdate","update","ancestorScroll","ancestorResize","elementResize","ResizeObserver","layoutShift","IntersectionObserver","animationFrame","referenceEl","ancestors","passive","cleanupIo","onMove","timeoutId","io","cleanup","disconnect","refresh","skip","threshold","rootMargin","isFirstUpdate","handleObserve","entries","ratio","intersectionRatio","observe","observeMove","frameId","reobserveFrame","resizeObserver","firstEntry","unobserve","cancelAnimationFrame","requestAnimationFrame","prevRefRect","frameLoop","nextRefRect","Map","mergedOptions","platformWithCache","config","middleware","validMiddleware","statefulPlacement","resetCount","nextX","nextY","computePosition","$$typeof","getDPR","devicePixelRatio","roundByDPR","dpr","useLatestRef","candidateSelectors","candidateSelector","NoElement","msMatchesSelector","webkitMatchesSelector","_element$getRootNode","isInert","lookUp","_node$getAttribute","inertAtt","getAttribute","getCandidates","includeContainer","candidates","querySelectorAll","getCandidatesIteratively","elementsToCheck","tagName","assigned","assignedElements","nestedCandidates","flatten","scopeParent","getShadowRoot","validShadowRoot","shadowRootFilter","_nestedCandidates","getTabindex","isScope","_node$getAttribute2","attValue","isContentEditable","parseInt","sortOrderedTabbables","documentOrder","isInput","isNonTabbableRadio","isRadio","radioSet","radioScope","form","queryRadios","escape","err","console","nodes","getCheckedRadio","isTabbableRadio","isZeroArea","_node$getBoundingClie","isHidden","displayCheck","visibility","nodeUnderDetails","parentElement","originalNode","_nodeRoot","_nodeRootHost","_nodeRootHost$ownerDo","nodeRoot","nodeRootHost","attached","_nodeRoot2","_nodeRootHost2","_nodeRootHost2$ownerD","isNodeAttached","isNodeMatchingSelectorFocusable","isHiddenInput","isDetailsWithSummary","isDisabledFromFieldset","isNodeMatchingSelectorTabbable","isValidShadowRootTabbable","shadowHostNode","sortByOrder","regularTabbables","orderedTabbables","candidateTabindex","content","sortable","tabbable","useMergeRefs","refs","ARROW_UP","ARROW_DOWN","ARROW_LEFT","ARROW_RIGHT","rafId","enqueueFocus","preventScroll","cancelPrevious","sync","horizontalKeys","verticalKeys","serverHandoffComplete","count","genId","setId","FloatingArrow","context","tipRadius","staticOffset","restStyle","clipPathId","halfStrokeWidth","svgX","svgY","isCustomShape","isVerticalSide","yOffsetProp","xOffsetProp","arrowX","arrowY","dValue","rotation","pointerEvents","createPubSub","emit","_map$get","handler","on","listener","off","_map$get2","FloatingNodeContext","FloatingTreeContext","useFloatingParentNodeId","_React$useContext","useFloatingTree","createAttribute","safePolygonIdentifier","getDelay","useHover","open","onOpenChange","dataRef","events","domReference","enabled","delay","handleClose","mouseOnly","restMs","move","tree","parentId","handleCloseRef","delayRef","pointerTypeRef","timeoutRef","handlerRef","restTimeoutRef","blockMouseMoveRef","performedPointerEventsMutationRef","unbindMouseMoveRef","isHoverOpen","_dataRef$current$open","openEvent","onDismiss","onLeave","closeWithDelay","runElseBranch","closeDelay","cleanupMouseMoveHandler","clearPointerEvents","removeAttribute","onScrollMouseLeave","once","isClickLikeOpenEvent","openDelay","clientX","clientY","onClose","relatedTarget","_handleCloseRef$curre","__options","blockPointerEvents","setAttribute","_tree$nodesRef$curren","_tree$nodesRef$curren2","parentFloating","nodesRef","setPointerRef","onPointerDown","onPointerEnter","onMouseMove","nativeEvent","returnFocus","getChildren","allChildren","_node$context","currentChildren","_currentChildren","_node$context2","counterMap","WeakMap","uncontrolledElementsSet","WeakSet","markerMap","lockCount","unwrapHost","correctElements","targets","correctedTarget","markOthers","avoidElements","ariaHidden","inert","uncorrectedAvoidElements","markerName","controlAttribute","elementsToKeep","elementsToStop","hiddenElements","markerCounter","keep","deep","attr","alreadyHidden","counterValue","markerValue","clear","delete","applyAttributeToOthers","getTabbableOptions","getTabbableIn","container","allTabbable","reverse","activeIndex","getNextTabbable","getPreviousTabbable","isOutsideEvent","containerElement","disableFocusInside","dataset","enableFocusInside","HIDDEN_STYLES","border","clip","whiteSpace","setActiveElementOnTab","FocusGuard","setRole","vendor","restProps","PortalContext","FloatingPortal","preserveTabOrder","portalNode","_temp","setPortalNode","uniqueId","portalContext","usePortalContext","remove","existingIdRoot","getElementById","subRoot","createElement","appendChild","idWrapper","useFloatingPortalNode","focusManagerState","setFocusManagerState","beforeOutsideRef","afterOutsideRef","beforeInsideRef","afterInsideRef","shouldRenderGuards","modal","_beforeInsideRef$curr","prevTabbable","createPortal","_afterInsideRef$curre","nextTabbable","closeOnFocusOut","VisuallyHiddenDismiss","FloatingFocusManager","guards","_guards","initialFocus","visuallyHiddenDismiss","nodeId","orderRef","initialFocusRef","returnFocusRef","ignoreInitialFocus","startDismissButtonRef","endDismissButtonRef","preventReturnFocusRef","previouslyFocusedElementRef","isPointerDownRef","isInsidePortal","isUntrappedTypeableCombobox","getTabbableContent","getTabbableElements","flat","renderDismissButton","location","onKeyDown","els","shiftKey","handleFocusOutside","handlePointerDown","queueMicrotask","movedToUnrelatedNode","hasAttribute","_nodes$find","allAncestors","currentParentId","getAncestors","_node$context3","_node$context4","_portalContext$portal","portalNodes","insideElements","previouslyFocusedElement","focusableElements","initialFocusValue","elToFocus","focusAlreadyInsideFloatingEl","preventReturnFocusScroll","contextData","payload","activeEl","_node$context5","MutationObserver","handleMutation","observer","childList","subtree","attributes","_portalContext$before","_portalContext$afterO","isButtonTarget","isSpaceIgnored","useClick","eventOption","toggle","ignoreMouse","keyboardHandlers","didKeyDownRef","onMouseDown","button","defaultPrevented","onKeyUp","useSafeInsertionEffect","useEffectEvent","callback","_len","bubbleHandlerKeys","pointerdown","mousedown","click","captureHandlerKeys","useDismiss","escapeKey","outsidePress","unstable_outsidePress","outsidePressEvent","referencePress","referencePressEvent","bubbles","nested","outsidePressFn","insideReactTreeRef","escapeKeyBubbles","outsidePressBubbles","_bubbles$escapeKey","_bubbles$outsidePress","normalizeBubblesProp","closeOnEscapeKeyDown","shouldDismiss","_child$context","__escapeKeyBubbles","isReactEvent","closeOnPressOutside","insideReactTree","inertSelector","markers","targetRootAncestor","nextParent","marker","canScrollX","canScrollY","xCond","offsetX","offsetY","targetIsInsideChildren","_child$context2","__outsidePressBubbles","onScroll","_doc$defaultView","_options$elements2","unstable_onOpenChange","_domReference","setDomReference","externalReference","externalFloating","whileElementsMounted","setData","isPositioned","latestMiddleware","setLatestMiddleware","_reference","_setReference","_floating","_setFloating","setReference","referenceRef","setFloating","floatingRef","floatingEl","whileElementsMountedRef","platformRef","fullData","isMountedRef","floatingStyles","initialStyles","useFloating","domReferenceRef","floatingId","setPositionReference","positionReference","mergeProps","userProps","propsList","elementKey","useInteractions","deps","getReferenceProps","getFloatingProps","getItemProps","useRole","referenceId","floatingProps","isPointInPolygon","point","polygon","isInside","j","xi","yi","xj","yj","safePolygon","buffer","requireIntent","hasLanded","lastX","lastY","lastCursorTime","performance","close","clientPoint","isLeave","isOverFloatingEl","isOverReferenceEl","refRect","cursorLeaveFromRight","cursorLeaveFromBottom","isOverReferenceRect","isFloatingWider","isFloatingTaller","_ref2","rectPoly","cursorSpeed","currentTime","elapsedTime","deltaX","deltaY","distance","sqrt","getCursorSpeed","_ref3","cursorPointOne","cursorPointTwo","getPolygon","InputBase","InputGroup","inputStatus","startElement","endElement","InputError","InputStatusError","InputSuccess","InputStatusSuccess","basic","backgroundImage","success","svg","custom","InputInner","validationSchema","status","inputProps","inputRef","showStatusIcon","registerResult","paddingRight","ModalContext","Modal","modalDialogWrapper","noBackground","modalDialogContent","ModalDialog","ariaLabel","PopoverContext","usePopoverContext","Popover","restOptions","popover","usePopover","initialOpen","controlledOpen","setControlledOpen","floatingOptions","interactionsEnabled","uncontrolledOpen","setUncontrolledOpen","labelId","setLabelId","descriptionId","setDescriptionId","setOpen","dismiss","hover","interactionsHooks","interactions","PopoverClose","PopoverContent","propRef","floatingContext","h1","h2","h3","h4","h5","h6","subtitle","body1","body2","body3","caption","lighter","regular","bold","gutter","variantsMapping","weight","PopoverDescription","Typography","PopoverHeading","PopoverTrigger","asChild","dataTestId","childrenRef","MultipleDropdownContext","allItems","DropdownOptionButton","font","outline","textAlign","background","textOverflow","userSelect","MultipleDropdownOptions","isSelected","toggleItem","DropdownPlaceholderLabel","MultipleDropdownInner","selectedItems","showPlaceholder","dropdownBaseRef","optionsWithKey","setOptionsWithKey","setItems","setValues","valuesWithoutPlaceholder","setValuesWithoutPlaceholder","memoSelectedItems","newOptionsWithKey","childrenArray","newOptions","keyedOptions","childItems","newOption","newValues","getActiveItems","activeItems","getActiveItem","newValuesWithoutPlaceholder","MultipleDropdownNotification","Progress","wrapper","bar","ProgressBar","percentage","vertical","bgColor","mapBarWrapper","horizontal","mapBarContainer","randomUUID","crypto","getRandomValues","rnds8","Uint8Array","rng","byteToHex","unsafeStringify","arr","buf","rnds","random","ProgressCircleBase","gradientId","fullStroke","svgOffset","ProgressCircleOuter","ProgressCircleInner","ProgressCircle","currentValue","infoContent","uuidv4","barStroke","colorName","colorValue","preserveAspectRatio","stopColor","ProgressLegend","mapPosition","ProgressLegendItem","ProgressVertical","StepperContext","activeStep","orientation","inverted","useStepperContext","Stepper","sx","steps","StepContext","completed","useStepContext","StepConnectorWrapper","StepConnectorLineVertical","StepConnectorLine","StepConnector","selectedColor","Step","Connector","labelIcon","labelIconVertical","labelText","labelTitle","StepLabel","StepIcon","styleIcon","flexDirection","SwitchContext","isOn","useSwitchContext","SwitchContextProvider","useSwitch","setIsOn","useCallback","Switch","SwitchBase","align","TableCell","borderBottom","borderRight","TooltipContext","useTooltipContext","tooltipContext","Tooltip","tooltip","useTooltip","enableClick","enableHover","offsetPx","hasArrow","arrowProps","arrowRef","floatingData","interactionsData","TooltipTrigger","tooltipCtx","TooltipArrow","TooltipContentBase","refProp","SimpleChartTooltip","renderValue","xFormatted","yFormatted","ProgressChartTooltip","valueFormatted","iconName","barProps","defaultTab","tabId","TabBarContext","activeTab","setActiveTab","useTabBarContext","TabBarContextProvider","initialTab","tab","setTab","useTabBar","TabBarBase","TabBar","activeTabId","TabBase","Tab","LargeTabBase","topTextStyle","bottomTextStyle","LargeTab","topText","bottomText","Tag","TextareaBase","rows","maxLength","setCountChar","statusColor","FormHelperTextBase","FormHelperText","TextField","multirow","helperText","countChar","Textarea","Input","RadioBase","Radio","radioId","RadioGroupBase","RadioGroup","activeValue","setActiveValue","onRadioValueChange","FormRadioGroup","ResponsiveImage","src","alt","Indicator","isVisible","indicatorRef","setWidth","childrenData","setChildrenData","windowWidth","refValue","isRight","refData","IndicatorBase","ButtonItem","ButtonGroup","buttonStyles","activeBtn","setActiveBtn","handleClick","LinkBase","Link","href"],"sourceRoot":""}
|