@elicecontents/content-ui 1.1.2 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AIAvatar-NYAGMJJ3.png +0 -0
- package/dist/index.cjs +12468 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.js +12415 -0
- package/dist/index.js.map +1 -0
- package/dist/types/breakpoints/breakpoints.d.ts +1 -1
- package/dist/types/components/AI-feedback/AIFeedback.d.ts +2 -2
- package/dist/types/components/AIDTTypography/AIDTTypography.d.ts +15 -4
- package/dist/types/components/Modal/Modal.d.ts +1 -1
- package/dist/types/components/badge/Badge.d.ts +1 -1
- package/dist/types/components/base-input/BaseInput.d.ts +1 -1
- package/dist/types/components/button/Button.d.ts +2 -2
- package/dist/types/components/chat/Chat.d.ts +14 -4
- package/dist/types/components/chat/TypingIndicator.d.ts +1 -1
- package/dist/types/components/dialog/Dialog.d.ts +2 -2
- package/dist/types/components/dotted-pagination/DottedPagination.d.ts +1 -0
- package/dist/types/components/header-title/HeaderTitle.d.ts +1 -1
- package/dist/types/components/html-viewer/HtmlViewer.d.ts +9 -0
- package/dist/types/components/html-viewer/HtmlViewerContent.d.ts +6 -0
- package/dist/types/components/html-viewer/HtmlViewerContext.d.ts +13 -0
- package/dist/types/components/html-viewer/HtmlViewerHighlightLayer.d.ts +8 -0
- package/dist/types/components/html-viewer/HtmlViewerMemoMenu.d.ts +8 -0
- package/dist/types/components/html-viewer/HtmlViewerToolbar.d.ts +1 -0
- package/dist/types/components/html-viewer/HtmlViewerTypes.d.ts +106 -0
- package/dist/types/components/html-viewer/hooks/useAnchorResolver.d.ts +13 -0
- package/dist/types/components/html-viewer/hooks/useAnnotationStorage.d.ts +9 -0
- package/dist/types/components/html-viewer/hooks/useGestureStateMachine.d.ts +16 -0
- package/dist/types/components/html-viewer/hooks/useHighlightRects.d.ts +2 -0
- package/dist/types/components/html-viewer/hooks/useIntersectionVisibility.d.ts +8 -0
- package/dist/types/components/html-viewer/index.d.ts +2 -0
- package/dist/types/components/icon-button/IconButton.d.ts +2 -2
- package/dist/types/components/index.d.ts +1 -0
- package/dist/types/components/layout/Footer/LayoutFooterPaging.d.ts +2 -2
- package/dist/types/components/layout/Footer/LayoutFooterSubmit.d.ts +2 -1
- package/dist/types/components/layout/Header/LayoutHeaderSubTitle.d.ts +2 -2
- package/dist/types/components/layout/Header/LayoutHeaderTitle.d.ts +2 -2
- package/dist/types/components/layout/Layout.d.ts +6 -8
- package/dist/types/components/layout/index.d.ts +10 -16
- package/dist/types/components/pagination-button/PaginationButton.d.ts +1 -1
- package/dist/types/components/recorder/Recorder.d.ts +3 -3
- package/dist/types/components/recorder-chat/RecorderChat.d.ts +1 -1
- package/dist/types/components/recorder-chat/TypingIndicator.d.ts +1 -1
- package/dist/types/components/recorder-step/RecorderContext.d.ts +2 -1
- package/dist/types/components/recorder-step/RecorderStep.d.ts +3 -3
- package/dist/types/components/selection/Selection.d.ts +2 -2
- package/dist/types/components/sound-visualizer/SoundVisualizer.d.ts +1 -1
- package/dist/types/components/subtitle-button/SubtitleButton.d.ts +2 -2
- package/dist/types/components/table/ColInfoTable.d.ts +1 -1
- package/dist/types/components/table/RowInfoTable.d.ts +1 -1
- package/dist/types/components/table/Table.d.ts +1 -1
- package/dist/types/components/textarea/Textarea.d.ts +9 -3
- package/dist/types/components/tooltip/Tooltip.d.ts +7 -3
- package/dist/types/components/video/VideoPlayer.d.ts +1 -1
- package/dist/types/components/video/VideoV2.d.ts +3 -1
- package/dist/types/components/video/VideoV3.d.ts +37 -0
- package/dist/types/components/video/index.d.ts +2 -0
- package/dist/types/hooks/useAIDTMediaQuery.d.ts +5 -1
- package/dist/types/icons/MoreColumn.d.ts +1 -1
- package/dist/types/icons/QuestionBubble.d.ts +1 -1
- package/dist/types/icons/ReadyRecord.d.ts +1 -1
- package/dist/types/icons/RecordPause.d.ts +1 -1
- package/dist/types/icons/RecordPlay.d.ts +1 -1
- package/dist/types/icons/Recording.d.ts +1 -1
- package/dist/types/icons/ScrollMoreIcon.d.ts +1 -1
- package/dist/types/icons/SearchIcon.d.ts +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/palettes/_typing.d.ts +1 -1
- package/dist/types/palettes/eliceDefault.d.ts +1 -1
- package/dist/types/palettes/type1.d.ts +1 -1
- package/dist/types/palettes/type2.d.ts +1 -1
- package/dist/types/theme/AIDTTheme.d.ts +1 -1
- package/dist/types/theme/_base.d.ts +1 -1
- package/dist/types/theme/createAIDTTheme.d.ts +2 -3
- package/dist/types/theme/createEliceThemeOverride.d.ts +5 -3
- package/dist/types/theme/transitions.d.ts +1 -1
- package/dist/types/tokens/breakpoints/breakpoints.d.ts +2 -2
- package/dist/types/tokens/colors/_typing.d.ts +1 -1
- package/dist/types/tokens/colors/bluepurple.d.ts +1 -1
- package/dist/types/tokens/colors/bluesky.d.ts +1 -1
- package/dist/types/tokens/colors/common.d.ts +1 -1
- package/dist/types/tokens/colors/gray.d.ts +1 -1
- package/dist/types/tokens/colors/green.d.ts +1 -1
- package/dist/types/tokens/colors/mint.d.ts +1 -1
- package/dist/types/tokens/colors/orange.d.ts +1 -1
- package/dist/types/tokens/colors/pink.d.ts +1 -1
- package/dist/types/tokens/colors/purple.d.ts +1 -1
- package/dist/types/tokens/colors/yellow.d.ts +1 -1
- package/dist/types/types/theme-augmentation.d.ts +14 -1
- package/dist/types/types/theme.types.d.ts +4 -2
- package/dist/types/typography/TypographyType.d.ts +798 -42
- package/dist/types/typography/index.d.ts +1 -0
- package/dist/types/typography/typography.d.ts +393 -45
- package/dist/types/typography/typographyFontFamily.d.ts +1 -0
- package/package.json +21 -17
- package/dist/cjs/index.js +0 -797
- package/dist/cjs/index.js.map +0 -1
- package/dist/es/index.js +0 -17963
- package/dist/es/index.js.map +0 -1
- package/dist/utils-B-OwYxKc.js +0 -2
- package/dist/utils-B-OwYxKc.js.map +0 -1
- package/dist/utils-C6l9edAI.mjs +0 -33
- package/dist/utils-C6l9edAI.mjs.map +0 -1
- package/dist/video-BVmBZcCY.mjs +0 -29748
- package/dist/video-BVmBZcCY.mjs.map +0 -1
- package/dist/video-De6bH9lK.js +0 -213
- package/dist/video-De6bH9lK.js.map +0 -1
- package/dist/video-utils-CSAdDJJN.js +0 -9
- package/dist/video-utils-CSAdDJJN.js.map +0 -1
- package/dist/video-utils-DfKS4cGg.mjs +0 -5735
- package/dist/video-utils-DfKS4cGg.mjs.map +0 -1
package/dist/es/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@18.3.24_react@18.3.1/node_modules/@mui/utils/esm/formatMuiErrorMessage/formatMuiErrorMessage.js","../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion_80266b0d16833786a6aa75bc5149cc2f/node_modules/@mui/material/styles/identifier.js","../../../../node_modules/.pnpm/@babel+runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../../../node_modules/.pnpm/@emotion+hash@0.9.2/node_modules/@emotion/hash/dist/emotion-hash.esm.js","../../../../node_modules/.pnpm/@emotion+unitless@0.10.0/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../../../../node_modules/.pnpm/@emotion+memoize@0.9.0/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../../../../node_modules/.pnpm/@emotion+serialize@1.3.3/node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","../../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.production.min.js","../../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.development.js","../../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js","../../../../node_modules/.pnpm/object-assign@4.1.1/node_modules/object-assign/index.js","../../../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/lib/has.js","../../../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/checkPropTypes.js","../../../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/factoryWithTypeCheckers.js","../../../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/factoryWithThrowingShims.js","../../../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js","../../../../node_modules/.pnpm/@emotion+sheet@1.4.0/node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","../../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Enum.js","../../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Utility.js","../../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Tokenizer.js","../../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Parser.js","../../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Serializer.js","../../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Middleware.js","../../../../node_modules/.pnpm/@emotion+cache@11.14.0/node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../../../../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.development.js","../../../../node_modules/.pnpm/react@18.3.1/node_modules/react/jsx-runtime.js","../../../../node_modules/.pnpm/@mui+styled-engine@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@em_ad139475bdd509db86dc5c00eb18db0d/node_modules/@mui/styled-engine/StyledEngineProvider/StyledEngineProvider.js","../../../../node_modules/.pnpm/@mui+styled-engine@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@em_ad139475bdd509db86dc5c00eb18db0d/node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.js","../../../../node_modules/.pnpm/@mui+styled-engine@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@em_ad139475bdd509db86dc5c00eb18db0d/node_modules/@mui/styled-engine/index.js","../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@18.3.24_react@18.3.1/node_modules/@mui/utils/esm/deepmerge/deepmerge.js","../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion+s_23be4355ad8d5859fe48462ff73d931f/node_modules/@mui/system/esm/createTheme/createBreakpoints.js","../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion+s_23be4355ad8d5859fe48462ff73d931f/node_modules/@mui/system/esm/createTheme/shape.js","../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion+s_23be4355ad8d5859fe48462ff73d931f/node_modules/@mui/system/esm/responsivePropType.js","../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion+s_23be4355ad8d5859fe48462ff73d931f/node_modules/@mui/system/esm/merge.js","../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion+s_23be4355ad8d5859fe48462ff73d931f/node_modules/@mui/system/esm/breakpoints.js","../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@18.3.24_react@18.3.1/node_modules/@mui/utils/esm/capitalize/capitalize.js","../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion+s_23be4355ad8d5859fe48462ff73d931f/node_modules/@mui/system/esm/style.js","../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion+s_23be4355ad8d5859fe48462ff73d931f/node_modules/@mui/system/esm/memoize.js","../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion+s_23be4355ad8d5859fe48462ff73d931f/node_modules/@mui/system/esm/spacing.js","../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion+s_23be4355ad8d5859fe48462ff73d931f/node_modules/@mui/system/esm/createTheme/createSpacing.js","../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion+s_23be4355ad8d5859fe48462ff73d931f/node_modules/@mui/system/esm/compose.js","../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion+s_23be4355ad8d5859fe48462ff73d931f/node_modules/@mui/system/esm/borders.js","../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion+s_23be4355ad8d5859fe48462ff73d931f/node_modules/@mui/system/esm/cssGrid.js","../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion+s_23be4355ad8d5859fe48462ff73d931f/node_modules/@mui/system/esm/palette.js","../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion+s_23be4355ad8d5859fe48462ff73d931f/node_modules/@mui/system/esm/sizing.js","../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion+s_23be4355ad8d5859fe48462ff73d931f/node_modules/@mui/system/esm/styleFunctionSx/defaultSxConfig.js","../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion+s_23be4355ad8d5859fe48462ff73d931f/node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js","../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion+s_23be4355ad8d5859fe48462ff73d931f/node_modules/@mui/system/esm/createTheme/applyStyles.js","../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion+s_23be4355ad8d5859fe48462ff73d931f/node_modules/@mui/system/esm/createTheme/createTheme.js","../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion+s_23be4355ad8d5859fe48462ff73d931f/node_modules/@mui/system/esm/styleFunctionSx/extendSxProp.js","../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@18.3.24_react@18.3.1/node_modules/@mui/utils/esm/ClassNameGenerator/ClassNameGenerator.js","../../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@18.3.24_react@18.3.1/node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js","../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@18.3.24_react@18.3.1/node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js","../../../../node_modules/.pnpm/react-is@19.1.1/node_modules/react-is/cjs/react-is.production.js","../../../../node_modules/.pnpm/react-is@19.1.1/node_modules/react-is/cjs/react-is.development.js","../../../../node_modules/.pnpm/react-is@19.1.1/node_modules/react-is/index.js","../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@18.3.24_react@18.3.1/node_modules/@mui/utils/esm/getDisplayName/getDisplayName.js","../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@18.3.24_react@18.3.1/node_modules/@mui/utils/esm/resolveProps/resolveProps.js","../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@18.3.24_react@18.3.1/node_modules/@mui/utils/esm/useEnhancedEffect/useEnhancedEffect.js","../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@18.3.24_react@18.3.1/node_modules/@mui/utils/esm/clamp/clamp.js","../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@18.3.24_react@18.3.1/node_modules/@mui/utils/esm/createChainedFunction/createChainedFunction.js","../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@18.3.24_react@18.3.1/node_modules/@mui/utils/esm/debounce/debounce.js","../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@18.3.24_react@18.3.1/node_modules/@mui/utils/esm/deprecatedPropType/deprecatedPropType.js","../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@18.3.24_react@18.3.1/node_modules/@mui/utils/esm/isMuiElement/isMuiElement.js","../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@18.3.24_react@18.3.1/node_modules/@mui/utils/esm/ownerDocument/ownerDocument.js","../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@18.3.24_react@18.3.1/node_modules/@mui/utils/esm/ownerWindow/ownerWindow.js","../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@18.3.24_react@18.3.1/node_modules/@mui/utils/esm/requirePropFactory/requirePropFactory.js","../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@18.3.24_react@18.3.1/node_modules/@mui/utils/esm/setRef/setRef.js","../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@18.3.24_react@18.3.1/node_modules/@mui/utils/esm/useId/useId.js","../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@18.3.24_react@18.3.1/node_modules/@mui/utils/esm/unsupportedProp/unsupportedProp.js","../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@18.3.24_react@18.3.1/node_modules/@mui/utils/esm/useControlled/useControlled.js","../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@18.3.24_react@18.3.1/node_modules/@mui/utils/esm/useEventCallback/useEventCallback.js","../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@18.3.24_react@18.3.1/node_modules/@mui/utils/esm/useForkRef/useForkRef.js","../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@18.3.24_react@18.3.1/node_modules/@mui/utils/esm/useTimeout/useTimeout.js","../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@18.3.24_react@18.3.1/node_modules/@mui/utils/esm/useIsFocusVisible/useIsFocusVisible.js","../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@18.3.24_react@18.3.1/node_modules/@mui/utils/esm/composeClasses/composeClasses.js","../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion+s_23be4355ad8d5859fe48462ff73d931f/node_modules/@mui/system/esm/DefaultPropsProvider/DefaultPropsProvider.js","../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion_80266b0d16833786a6aa75bc5149cc2f/node_modules/@mui/material/styles/createMixins.js","../../../../node_modules/.pnpm/@babel+runtime@7.28.4/node_modules/@babel/runtime/helpers/interopRequireDefault.js","../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion+s_23be4355ad8d5859fe48462ff73d931f/node_modules/@mui/system/colorManipulator.js","../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion_80266b0d16833786a6aa75bc5149cc2f/node_modules/@mui/material/colors/common.js","../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion_80266b0d16833786a6aa75bc5149cc2f/node_modules/@mui/material/colors/grey.js","../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion_80266b0d16833786a6aa75bc5149cc2f/node_modules/@mui/material/colors/purple.js","../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion_80266b0d16833786a6aa75bc5149cc2f/node_modules/@mui/material/colors/red.js","../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion_80266b0d16833786a6aa75bc5149cc2f/node_modules/@mui/material/colors/orange.js","../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion_80266b0d16833786a6aa75bc5149cc2f/node_modules/@mui/material/colors/blue.js","../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion_80266b0d16833786a6aa75bc5149cc2f/node_modules/@mui/material/colors/lightBlue.js","../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion_80266b0d16833786a6aa75bc5149cc2f/node_modules/@mui/material/colors/green.js","../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion_80266b0d16833786a6aa75bc5149cc2f/node_modules/@mui/material/styles/createPalette.js","../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion_80266b0d16833786a6aa75bc5149cc2f/node_modules/@mui/material/styles/createTypography.js","../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion_80266b0d16833786a6aa75bc5149cc2f/node_modules/@mui/material/styles/shadows.js","../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion_80266b0d16833786a6aa75bc5149cc2f/node_modules/@mui/material/styles/createTransitions.js","../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion_80266b0d16833786a6aa75bc5149cc2f/node_modules/@mui/material/styles/zIndex.js","../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion_80266b0d16833786a6aa75bc5149cc2f/node_modules/@mui/material/styles/createTheme.js","../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion_80266b0d16833786a6aa75bc5149cc2f/node_modules/@mui/material/styles/defaultTheme.js","../../../../node_modules/.pnpm/@babel+runtime@7.28.4/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion+s_23be4355ad8d5859fe48462ff73d931f/node_modules/@mui/system/createStyled.js","../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion_80266b0d16833786a6aa75bc5149cc2f/node_modules/@mui/material/styles/slotShouldForwardProp.js","../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion_80266b0d16833786a6aa75bc5149cc2f/node_modules/@mui/material/styles/rootShouldForwardProp.js","../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion_80266b0d16833786a6aa75bc5149cc2f/node_modules/@mui/material/styles/styled.js","../../src/icons/ArrowLeft.tsx","../../src/icons/ArrowRight.tsx","../../src/icons/Close.tsx","../../src/icons/Micro.tsx","../../src/icons/Reset.tsx","../../src/icons/SelectedCheckbox.tsx","../../src/icons/SelectedRadio.tsx","../../src/icons/UnselectedCheckbox.tsx","../../src/icons/UnselectedRadio.tsx","../../src/icons/Send.tsx","../../src/icons/QuestionBubble.tsx","../../src/icons/SearchIcon.tsx","../../src/icons/MoreColumn.tsx","../../src/icons/NumbersIcon.tsx","../../src/icons/RecordPause.tsx","../../src/icons/Recording.tsx","../../src/icons/ReadyRecord.tsx","../../src/icons/RecordPlay.tsx","../../src/icons/SendArrow.tsx","../../src/components/tokenColorTemporary.ts","../../src/components/tooltip/Tooltip.tsx","../../src/assets/AIAvatar.png","../../src/components/AI-feedback/AIFeedback.tsx","../../src/components/badge/Badge.tsx","../../src/theme/transitions.ts","../../src/components/button/Button.tsx","../../src/tokens/colors/mint.ts","../../src/tokens/colors/bluepurple.ts","../../src/tokens/colors/gray.ts","../../src/tokens/colors/green.ts","../../src/tokens/colors/orange.ts","../../src/tokens/colors/pink.ts","../../src/tokens/colors/purple.ts","../../src/tokens/colors/yellow.ts","../../src/tokens/colors/bluesky.ts","../../src/tokens/colors/common.ts","../../src/tokens/breakpoints/breakpoints.ts","../../src/hooks/useAIDTMediaQuery.ts","../../src/components/icon-button/IconButton.tsx","../../src/components/recorder-step/RecorderContext.tsx","../../src/components/chat/AssistantAvatar.tsx","../../src/components/chat/UserAvatar.tsx","../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion_80266b0d16833786a6aa75bc5149cc2f/node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.js","../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion_80266b0d16833786a6aa75bc5149cc2f/node_modules/@mui/material/SvgIcon/svgIconClasses.js","../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion_80266b0d16833786a6aa75bc5149cc2f/node_modules/@mui/material/SvgIcon/SvgIcon.js","../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion_80266b0d16833786a6aa75bc5149cc2f/node_modules/@mui/material/utils/createSvgIcon.js","../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18.3.24_react@18.3.1__@emotion_80266b0d16833786a6aa75bc5149cc2f/node_modules/@mui/material/utils/index.js","../../../../node_modules/.pnpm/@mui+icons-material@5.18.0_@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18._38adfb35ef390c783ad22970e6184779/node_modules/@mui/icons-material/utils/createSvgIcon.js","../../../../node_modules/.pnpm/@mui+icons-material@5.18.0_@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18._38adfb35ef390c783ad22970e6184779/node_modules/@mui/icons-material/Circle.js","../../src/components/chat/TypingIndicator.tsx","../../src/components/sound-visualizer/SoundVisualizer.tsx","../../src/components/recorder-step/RecorderStep.tsx","../../src/components/chat/Chat.tsx","../../src/components/dialog/Dialog.tsx","../../src/components/dotted-pagination/DottedPagination.tsx","../../../../node_modules/.pnpm/@mui+icons-material@5.18.0_@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18._38adfb35ef390c783ad22970e6184779/node_modules/@mui/icons-material/Book.js","../../src/icons/ScrollMoreIcon.tsx","../../src/components/pagination-button/PaginationButton.tsx","../../src/components/layout/layout-pagination/LayoutPagination.tsx","../../src/components/layout/Footer/LayoutFooterPaging.tsx","../../src/components/layout/Footer/LayoutFooterSubmit.tsx","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/menu/positioner/MenuPositionerContext.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/menu/root/MenuRootContext.js","../../../../node_modules/.pnpm/@base-ui-components+utils@0.1.1_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/utils/esm/useRefWithInit.js","../../../../node_modules/.pnpm/@base-ui-components+utils@0.1.1_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/utils/esm/useMergedRefs.js","../../../../node_modules/.pnpm/@base-ui-components+utils@0.1.1_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/utils/esm/reactVersion.js","../../../../node_modules/.pnpm/@base-ui-components+utils@0.1.1_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/utils/esm/mergeObjects.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/utils/getStyleHookProps.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/utils/resolveClassName.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/merge-props/mergeProps.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/utils/constants.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/utils/useRenderElement.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/utils/styleHookMapping.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/utils/popupStateMapping.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/menu/arrow/MenuArrow.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/context-menu/root/ContextMenuRootContext.js","../../../../node_modules/.pnpm/@base-ui-components+utils@0.1.1_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/utils/esm/useControlled.js","../../../../node_modules/.pnpm/@base-ui-components+utils@0.1.1_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/utils/esm/useOnMount.js","../../../../node_modules/.pnpm/@base-ui-components+utils@0.1.1_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/utils/esm/useTimeout.js","../../../../node_modules/.pnpm/@base-ui-components+utils@0.1.1_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/utils/esm/useIsoLayoutEffect.js","../../../../node_modules/.pnpm/@floating-ui+utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../../../../node_modules/.pnpm/@base-ui-components+utils@0.1.1_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/utils/esm/useLatestRef.js","../../../../node_modules/.pnpm/@base-ui-components+utils@0.1.1_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/utils/esm/useEventCallback.js","../../../../node_modules/.pnpm/@base-ui-components+utils@0.1.1_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/utils/esm/detectBrowser.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/constants.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/element.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/nodes.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/event.js","../../../../node_modules/.pnpm/@floating-ui+utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/composite.js","../../../../node_modules/.pnpm/tabbable@6.2.0/node_modules/tabbable/dist/index.esm.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/tabbable.js","../../../../node_modules/.pnpm/@base-ui-components+utils@0.1.1_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/utils/esm/safeReact.js","../../../../node_modules/.pnpm/@base-ui-components+utils@0.1.1_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/utils/esm/useId.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/createEventEmitter.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/floating-ui-react/components/FloatingTree.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/utils/createBaseUIEventDetails.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/createAttribute.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useHover.js","../../../../node_modules/.pnpm/@base-ui-components+utils@0.1.1_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/utils/esm/visuallyHidden.js","../../../../node_modules/.pnpm/@base-ui-components+utils@0.1.1_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/utils/esm/useAnimationFrame.js","../../../../node_modules/.pnpm/@base-ui-components+utils@0.1.1_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/utils/esm/owner.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/utils/FocusGuard.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/enqueueFocus.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/markOthers.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/floating-ui-react/components/FloatingPortal.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/floating-ui-react/components/FloatingFocusManager.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useClick.js","../../../../node_modules/.pnpm/@floating-ui+core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../../../node_modules/.pnpm/@floating-ui+dom@1.7.4/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../../../node_modules/.pnpm/@floating-ui+react-dom@2.1.6_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useDismiss.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useFloatingRootContext.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useFloating.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useFocus.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useInteractions.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useListNavigation.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useRole.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useTypeahead.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/floating-ui-react/safePolygon.js","../../../../node_modules/.pnpm/@base-ui-components+utils@0.1.1_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/utils/esm/error.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/composite/root/CompositeRootContext.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/utils/useFocusableWhenDisabled.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/use-button/useButton.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/menu/item/useMenuItem.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/composite/list/CompositeListContext.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/composite/list/useCompositeListItem.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/utils/useBaseUiId.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/utils/useTransitionStatus.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/utils/useAnimationsFinished.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/utils/useOpenChangeComplete.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/menu/item/MenuItem.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/menu/popup/MenuPopup.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/menu/portal/MenuPortalContext.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/menu/portal/MenuPortal.js","../../../../node_modules/.pnpm/@base-ui-components+utils@0.1.1_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/utils/esm/inertValue.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/direction-provider/DirectionContext.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/floating-ui-react/middleware/arrow.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/utils/useAnchorPositioning.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/composite/list/CompositeList.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/utils/InternalBackdrop.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/menu/positioner/MenuPositioner.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/menubar/MenubarContext.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/utils/noop.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/utils/useScrollLock.js","../../../../node_modules/.pnpm/@base-ui-components+utils@0.1.1_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/utils/esm/useEnhancedClickHandler.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/utils/useOpenInteractionType.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/menu/submenu-root/MenuSubmenuRootContext.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/utils/useMixedToggleClickHander.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/menu/root/MenuRoot.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/utils/getPseudoElementBounds.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/composite/item/useCompositeItem.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/composite/item/CompositeItem.js","../../../../node_modules/.pnpm/@base-ui-components+react@1.0.0-beta.3_@types+react@18.3.24_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui-components/react/esm/menu/trigger/MenuTrigger.js","../../src/components/layout/Header/LayoutHeaderSubTitle.tsx","../../src/components/layout/Header/LayoutHeaderTitle.tsx","../../src/components/layout/Layout.tsx","../../src/components/layout/index.ts","../../src/components/header-title/HeaderTitle.tsx","../../../../node_modules/.pnpm/@mui+icons-material@5.18.0_@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18._38adfb35ef390c783ad22970e6184779/node_modules/@mui/icons-material/HelpOutline.js","../../src/components/header-title/InnerHeader.tsx","../../src/components/selection/Selection.tsx","../../src/components/answer-feedback/Correct.tsx","../../src/components/answer-feedback/Incorrect.tsx","../../src/components/answer-feedback/AnswerFeedback.tsx","../../src/components/table/Table.tsx","../../src/components/table/RowInfoTable.tsx","../../src/components/table/ColInfoTable.tsx","../../src/components/textarea/Textarea.tsx","../../src/typography/typographyFontFamily.ts","../../src/typography/TypographyType.ts","../../src/typography/typography.ts","../../src/components/AIDTTypography/AIDTTypography.tsx","../../../../node_modules/.pnpm/@mui+icons-material@5.18.0_@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18._38adfb35ef390c783ad22970e6184779/node_modules/@mui/icons-material/ZoomIn.js","../../src/components/AdaptiveImage/AdaptiveImage.tsx","../../src/components/subtitle-button/SubtitleButton.tsx","../../src/components/base-input/BaseInput.tsx","../../../../node_modules/.pnpm/@mui+icons-material@5.18.0_@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18._38adfb35ef390c783ad22970e6184779/node_modules/@mui/icons-material/HighlightOff.js","../../src/components/Modal/Modal.tsx","../../src/components/recorder-chat/AssistantAvatar.tsx","../../src/components/recorder-chat/UserAvatar.tsx","../../src/components/recorder-chat/TypingIndicator.tsx","../../src/components/recorder-chat/RecorderChat.tsx","../../../../node_modules/.pnpm/@mui+icons-material@5.18.0_@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18._38adfb35ef390c783ad22970e6184779/node_modules/@mui/icons-material/Fullscreen.js","../../../../node_modules/.pnpm/@mui+icons-material@5.18.0_@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18._38adfb35ef390c783ad22970e6184779/node_modules/@mui/icons-material/FullscreenExit.js","../../../../node_modules/.pnpm/@mui+icons-material@5.18.0_@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18._38adfb35ef390c783ad22970e6184779/node_modules/@mui/icons-material/Pause.js","../../../../node_modules/.pnpm/@mui+icons-material@5.18.0_@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18._38adfb35ef390c783ad22970e6184779/node_modules/@mui/icons-material/PlayArrow.js","../../../../node_modules/.pnpm/@mui+icons-material@5.18.0_@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18._38adfb35ef390c783ad22970e6184779/node_modules/@mui/icons-material/Subtitles.js","../../../../node_modules/.pnpm/@mui+icons-material@5.18.0_@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18._38adfb35ef390c783ad22970e6184779/node_modules/@mui/icons-material/VolumeOff.js","../../../../node_modules/.pnpm/@mui+icons-material@5.18.0_@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@18._38adfb35ef390c783ad22970e6184779/node_modules/@mui/icons-material/VolumeUp.js","../../src/components/video/VideoPlayer.tsx","../../src/components/video/VideoV2.tsx","../../src/components/recorder/recorderStore.tsx","../../src/components/recorder/Recorder.tsx","../../src/components/audio/Pause.tsx","../../src/components/audio/Play.tsx","../../src/components/audio/Audio.tsx","../../src/breakpoints/breakpoints.ts","../../src/theme/_base.ts","../../src/palettes/eliceDefault.ts","../../src/palettes/type1.ts","../../src/palettes/type2.ts","../../src/theme/AIDTTheme.ts","../../src/theme/createAIDTTheme.ts","../../src/theme/createEliceThemeOverride.ts"],"sourcesContent":["/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@mui/internal-babel-macros/MuiError.macro` instead.\n * @param {number} code\n */\nexport default function formatMuiErrorMessage(code) {\n // Apply babel-plugin-transform-template-literals in loose mode\n // loose mode is safe if we're concatenating primitives\n // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose\n /* eslint-disable prefer-template */\n let url = 'https://mui.com/production-error/?code=' + code;\n for (let i = 1; i < arguments.length; i += 1) {\n // rest params over-transpile for this case\n // eslint-disable-next-line prefer-rest-params\n url += '&args[]=' + encodeURIComponent(arguments[i]);\n }\n return 'Minified MUI error #' + code + '; visit ' + url + ' for the full message.';\n /* eslint-enable prefer-template */\n}","export default '$$material';","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","/* 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","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 scale: 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","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 hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar isDevelopment = false;\n\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\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 var componentSelector = interpolation;\n\n if (componentSelector.__emotion_styles !== undefined) {\n\n return componentSelector;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n var keyframes = interpolation;\n\n if (keyframes.anim === 1) {\n cursor = {\n name: keyframes.name,\n styles: keyframes.styles,\n next: cursor\n };\n return keyframes.name;\n }\n\n var serializedStyles = interpolation;\n\n if (serializedStyles.styles !== undefined) {\n var next = serializedStyles.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 = serializedStyles.styles + \";\";\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 }\n\n break;\n }\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n var asString = interpolation;\n\n if (registered == null) {\n return asString;\n }\n\n var cached = registered[asString];\n return cached !== undefined ? cached : asString;\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 var asString = value;\n\n if (registered != null && registered[asString] !== undefined) {\n string += key + \"{\" + registered[asString] + \"}\";\n } else if (isProcessableValue(asString)) {\n string += processStyleName(key) + \":\" + processStyleValue(key, asString) + \";\";\n }\n } else {\n if (key === 'NO_COMPONENT_SELECTOR' && isDevelopment) {\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\n string += key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;{]+)\\s*(;|$)/g; // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\nvar cursor;\nfunction 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 var asTemplateStringsArr = strings;\n\n styles += asTemplateStringsArr[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 var templateStringsArr = strings;\n\n styles += templateStringsArr[i];\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 += '-' + match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n}\n\nexport { serializeStyles };\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","var isDevelopment = false;\n\n/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n return document.styleSheets[i];\n }\n } // this function should always return with a value\n // TS can't understand it though so we make it stop complaining here\n\n\n return undefined;\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? !isDevelopment : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n this.tags.forEach(function (tag) {\n var _tag$parentNode;\n\n return (_tag$parentNode = tag.parentNode) == null ? void 0 : _tag$parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value;\n var parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' ');\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport { createCache as default };\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nvar React = require('react');\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n\n if (displayName) {\n return displayName;\n }\n\n var functionName = innerType.displayName || innerType.name || '';\n return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n\n if (outerName !== null) {\n return outerName;\n }\n\n return getComponentNameFromType(type.type) || 'Memo';\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n\n // eslint-disable-next-line no-fallthrough\n }\n }\n\n return null;\n}\n\nvar assign = Object.assign;\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if ( !fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n\n\n if (fn.displayName && _frame.includes('<anonymous>')) {\n _frame = _frame.replace('<anonymous>', fn.displayName);\n }\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n // eslint-disable-next-line react-internal/prod-error-codes\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n return type;\n }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n}\n\nfunction testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentNameFromType(ReactCurrentOwner.current.type), config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV(type, config, maybeKey, source, self) {\n {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n // but as an intermediary step, we will use jsxDEV for everything except\n // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n // key is explicitly declared to be undefined or not.\n\n if (maybeKey !== undefined) {\n {\n checkKeyStringCoercion(maybeKey);\n }\n\n key = '' + maybeKey;\n }\n\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n\n key = '' + config.key;\n }\n\n if (hasValidRef(config)) {\n ref = config.ref;\n warnIfStringRefCannotBeAutoConverted(config, self);\n } // Remaining properties are added to a new props object\n\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\n\nfunction isValidElement(object) {\n {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n}\n\nfunction getDeclarationErrorAddendum() {\n {\n if (ReactCurrentOwner$1.current) {\n var name = getComponentNameFromType(ReactCurrentOwner$1.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n }\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n }\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n }\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n {\n if (typeof node !== 'object') {\n return;\n }\n\n if (isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentNameFromType(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentNameFromType(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\n\nvar didWarnAboutKeySpread = {};\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendum(source);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n\n var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n var children = props.children;\n\n if (children !== undefined) {\n if (isStaticChildren) {\n if (isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n validateChildKeys(children[i], type);\n }\n\n if (Object.freeze) {\n Object.freeze(children);\n }\n } else {\n error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n }\n } else {\n validateChildKeys(children, type);\n }\n }\n }\n\n {\n if (hasOwnProperty.call(props, 'key')) {\n var componentName = getComponentNameFromType(type);\n var keys = Object.keys(props).filter(function (k) {\n return k !== 'key';\n });\n var beforeExample = keys.length > 0 ? '{key: someKey, ' + keys.join(': ..., ') + ': ...}' : '{key: someKey}';\n\n if (!didWarnAboutKeySpread[componentName + beforeExample]) {\n var afterExample = keys.length > 0 ? '{' + keys.join(': ..., ') + ': ...}' : '{}';\n\n error('A props object containing a \"key\" prop is being spread into JSX:\\n' + ' let props = %s;\\n' + ' <%s {...props} />\\n' + 'React keys must be passed directly to JSX without using spread:\\n' + ' let props = %s;\\n' + ' <%s key={someKey} {...props} />', beforeExample, componentName, afterExample, componentName);\n\n didWarnAboutKeySpread[componentName + beforeExample] = true;\n }\n }\n }\n\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n }\n} // These two functions exist to still get child warnings in dev\n// even with the prod transform. This means that jsxDEV is purely\n// opt-in behavior for better messages but that we won't stop\n// giving you warnings if you use production apis.\n\nfunction jsxWithValidationStatic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, true);\n }\n}\nfunction jsxWithValidationDynamic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, false);\n }\n}\n\nvar jsx = jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.\n// for now we can ship identical prod functions\n\nvar jsxs = jsxWithValidationStatic ;\n\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsx;\nexports.jsxs = jsxs;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { CacheProvider } from '@emotion/react';\nimport createCache from '@emotion/cache';\n\n// prepend: true moves MUI styles to the top of the <head> so they're loaded first.\n// It allows developers to easily override MUI styles with other styling solutions, like CSS modules.\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getCache(injectFirst, enableCssLayer) {\n const emotionCache = createCache({\n key: 'css',\n prepend: injectFirst\n });\n if (enableCssLayer) {\n const prevInsert = emotionCache.insert;\n emotionCache.insert = (...args) => {\n if (!args[1].styles.match(/^@layer\\s+[^{]*$/)) {\n // avoid nested @layer\n args[1].styles = `@layer mui {${args[1].styles}}`;\n }\n return prevInsert(...args);\n };\n }\n return emotionCache;\n}\nconst cacheMap = new Map();\nexport default function StyledEngineProvider(props) {\n const {\n injectFirst,\n enableCssLayer,\n children\n } = props;\n const cache = React.useMemo(() => {\n const cacheKey = `${injectFirst}-${enableCssLayer}`;\n if (typeof document === 'object' && cacheMap.has(cacheKey)) {\n return cacheMap.get(cacheKey);\n }\n const fresh = getCache(injectFirst, enableCssLayer);\n cacheMap.set(cacheKey, fresh);\n return fresh;\n }, [injectFirst, enableCssLayer]);\n if (injectFirst || enableCssLayer) {\n return /*#__PURE__*/_jsx(CacheProvider, {\n value: cache,\n children: children\n });\n }\n return children;\n}\nprocess.env.NODE_ENV !== \"production\" ? StyledEngineProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n /**\n * If true, MUI styles are wrapped in CSS `@layer mui` rule.\n * It helps to override MUI styles when using CSS Modules, Tailwind CSS, plain CSS, or any other styling solution.\n */\n enableCssLayer: PropTypes.bool,\n /**\n * By default, the styles are injected last in the <head> element of the page.\n * As a result, they gain more specificity than any other style sheet.\n * If you want to override MUI's styles, set this prop.\n */\n injectFirst: PropTypes.bool\n} : void 0;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Global } from '@emotion/react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction isEmpty(obj) {\n return obj === undefined || obj === null || Object.keys(obj).length === 0;\n}\nexport default function GlobalStyles(props) {\n const {\n styles,\n defaultTheme = {}\n } = props;\n const globalStyles = typeof styles === 'function' ? themeInput => styles(isEmpty(themeInput) ? defaultTheme : themeInput) : styles;\n return /*#__PURE__*/_jsx(Global, {\n styles: globalStyles\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.propTypes = {\n defaultTheme: PropTypes.object,\n styles: PropTypes.oneOfType([PropTypes.array, PropTypes.string, PropTypes.object, PropTypes.func])\n} : void 0;","/**\n * @mui/styled-engine v5.18.0\n *\n * @license MIT\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use client';\n\n/* eslint-disable no-underscore-dangle */\nimport emStyled from '@emotion/styled';\nimport { serializeStyles as emSerializeStyles } from '@emotion/serialize';\nexport default function styled(tag, options) {\n const stylesFactory = emStyled(tag, options);\n if (process.env.NODE_ENV !== 'production') {\n return (...styles) => {\n const component = typeof tag === 'string' ? `\"${tag}\"` : 'component';\n if (styles.length === 0) {\n console.error([`MUI: Seems like you called \\`styled(${component})()\\` without a \\`style\\` argument.`, 'You must provide a `styles` argument: `styled(\"div\")(styleYouForgotToPass)`.'].join('\\n'));\n } else if (styles.some(style => style === undefined)) {\n console.error(`MUI: the styled(${component})(...args) API requires all its args to be defined.`);\n }\n return stylesFactory(...styles);\n };\n }\n return stylesFactory;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const internal_processStyles = (tag, processor) => {\n // Emotion attaches all the styles as `__emotion_styles`.\n // Ref: https://github.com/emotion-js/emotion/blob/16d971d0da229596d6bcc39d282ba9753c9ee7cf/packages/styled/src/base.js#L186\n if (Array.isArray(tag.__emotion_styles)) {\n tag.__emotion_styles = processor(tag.__emotion_styles);\n }\n};\n\n// Emotion only accepts an array, but we want to avoid allocations\nconst wrapper = [];\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function internal_serializeStyles(styles) {\n wrapper[0] = styles;\n return emSerializeStyles(wrapper);\n}\nexport { ThemeContext, keyframes, css } from '@emotion/react';\nexport { default as StyledEngineProvider } from './StyledEngineProvider';\nexport { default as GlobalStyles } from './GlobalStyles';","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\n\n// https://github.com/sindresorhus/is-plain-obj/blob/main/index.js\nexport function isPlainObject(item) {\n if (typeof item !== 'object' || item === null) {\n return false;\n }\n const prototype = Object.getPrototypeOf(item);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in item) && !(Symbol.iterator in item);\n}\nfunction deepClone(source) {\n if ( /*#__PURE__*/React.isValidElement(source) || !isPlainObject(source)) {\n return source;\n }\n const output = {};\n Object.keys(source).forEach(key => {\n output[key] = deepClone(source[key]);\n });\n return output;\n}\nexport default function deepmerge(target, source, options = {\n clone: true\n}) {\n const output = options.clone ? _extends({}, target) : target;\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(key => {\n if ( /*#__PURE__*/React.isValidElement(source[key])) {\n output[key] = source[key];\n } else if (isPlainObject(source[key]) &&\n // Avoid prototype pollution\n Object.prototype.hasOwnProperty.call(target, key) && isPlainObject(target[key])) {\n // Since `output` is a clone of `target` and we have narrowed `target` in this block we can cast to the same type.\n output[key] = deepmerge(target[key], source[key], options);\n } else if (options.clone) {\n output[key] = isPlainObject(source[key]) ? deepClone(source[key]) : source[key];\n } else {\n output[key] = source[key];\n }\n });\n }\n return output;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"values\", \"unit\", \"step\"];\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nexport const breakpointKeys = ['xs', 'sm', 'md', 'lg', 'xl'];\nconst sortBreakpointsValues = values => {\n const breakpointsAsArray = Object.keys(values).map(key => ({\n key,\n val: values[key]\n })) || [];\n // Sort in ascending order\n breakpointsAsArray.sort((breakpoint1, breakpoint2) => breakpoint1.val - breakpoint2.val);\n return breakpointsAsArray.reduce((acc, obj) => {\n return _extends({}, acc, {\n [obj.key]: obj.val\n });\n }, {});\n};\n\n// Keep in mind that @media is inclusive by the CSS specification.\nexport default function createBreakpoints(breakpoints) {\n const {\n // The breakpoint **start** at this value.\n // For instance with the first breakpoint xs: [xs, sm).\n values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n },\n unit = 'px',\n step = 5\n } = breakpoints,\n other = _objectWithoutPropertiesLoose(breakpoints, _excluded);\n const sortedValues = sortBreakpointsValues(values);\n const keys = Object.keys(sortedValues);\n function up(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (min-width:${value}${unit})`;\n }\n function down(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (max-width:${value - step / 100}${unit})`;\n }\n function between(start, end) {\n const endIndex = keys.indexOf(end);\n return `@media (min-width:${typeof values[start] === 'number' ? values[start] : start}${unit}) and ` + `(max-width:${(endIndex !== -1 && typeof values[keys[endIndex]] === 'number' ? values[keys[endIndex]] : end) - step / 100}${unit})`;\n }\n function only(key) {\n if (keys.indexOf(key) + 1 < keys.length) {\n return between(key, keys[keys.indexOf(key) + 1]);\n }\n return up(key);\n }\n function not(key) {\n // handle first and last key separately, for better readability\n const keyIndex = keys.indexOf(key);\n if (keyIndex === 0) {\n return up(keys[1]);\n }\n if (keyIndex === keys.length - 1) {\n return down(keys[keyIndex]);\n }\n return between(key, keys[keys.indexOf(key) + 1]).replace('@media', '@media not all and');\n }\n return _extends({\n keys,\n values: sortedValues,\n up,\n down,\n between,\n only,\n not,\n unit\n }, other);\n}","const shape = {\n borderRadius: 4\n};\nexport default shape;","import PropTypes from 'prop-types';\nconst responsivePropType = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.object, PropTypes.array]) : {};\nexport default responsivePropType;","import deepmerge from '@mui/utils/deepmerge';\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n });\n}\nexport default merge;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport PropTypes from 'prop-types';\nimport deepmerge from '@mui/utils/deepmerge';\nimport merge from './merge';\n\n// The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\nexport const values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n};\nconst defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: key => `@media (min-width:${values[key]}px)`\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n const theme = props.theme || {};\n if (Array.isArray(propValue)) {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return propValue.reduce((acc, item, index) => {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n if (typeof propValue === 'object') {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return Object.keys(propValue).reduce((acc, breakpoint) => {\n // key is breakpoint\n if (Object.keys(themeBreakpoints.values || values).indexOf(breakpoint) !== -1) {\n const mediaKey = themeBreakpoints.up(breakpoint);\n acc[mediaKey] = styleFromPropValue(propValue[breakpoint], breakpoint);\n } else {\n const cssKey = breakpoint;\n acc[cssKey] = propValue[cssKey];\n }\n return acc;\n }, {});\n }\n const output = styleFromPropValue(propValue);\n return output;\n}\nfunction breakpoints(styleFunction) {\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const newStyleFunction = props => {\n const theme = props.theme || {};\n const base = styleFunction(props);\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n const extended = themeBreakpoints.keys.reduce((acc, key) => {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme\n }, props[key]));\n }\n return acc;\n }, null);\n return merge(base, extended);\n };\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n }) : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl', ...styleFunction.filterProps];\n return newStyleFunction;\n}\nexport function createEmptyBreakpointObject(breakpointsInput = {}) {\n var _breakpointsInput$key;\n const breakpointsInOrder = (_breakpointsInput$key = breakpointsInput.keys) == null ? void 0 : _breakpointsInput$key.reduce((acc, key) => {\n const breakpointStyleKey = breakpointsInput.up(key);\n acc[breakpointStyleKey] = {};\n return acc;\n }, {});\n return breakpointsInOrder || {};\n}\nexport function removeUnusedBreakpoints(breakpointKeys, style) {\n return breakpointKeys.reduce((acc, key) => {\n const breakpointOutput = acc[key];\n const isBreakpointUnused = !breakpointOutput || Object.keys(breakpointOutput).length === 0;\n if (isBreakpointUnused) {\n delete acc[key];\n }\n return acc;\n }, style);\n}\nexport function mergeBreakpointsInOrder(breakpointsInput, ...styles) {\n const emptyBreakpoints = createEmptyBreakpointObject(breakpointsInput);\n const mergedOutput = [emptyBreakpoints, ...styles].reduce((prev, next) => deepmerge(prev, next), {});\n return removeUnusedBreakpoints(Object.keys(emptyBreakpoints), mergedOutput);\n}\n\n// compute base for responsive values; e.g.,\n// [1,2,3] => {xs: true, sm: true, md: true}\n// {xs: 1, sm: 2, md: 3} => {xs: true, sm: true, md: true}\nexport function computeBreakpointsBase(breakpointValues, themeBreakpoints) {\n // fixed value\n if (typeof breakpointValues !== 'object') {\n return {};\n }\n const base = {};\n const breakpointsKeys = Object.keys(themeBreakpoints);\n if (Array.isArray(breakpointValues)) {\n breakpointsKeys.forEach((breakpoint, i) => {\n if (i < breakpointValues.length) {\n base[breakpoint] = true;\n }\n });\n } else {\n breakpointsKeys.forEach(breakpoint => {\n if (breakpointValues[breakpoint] != null) {\n base[breakpoint] = true;\n }\n });\n }\n return base;\n}\nexport function resolveBreakpointValues({\n values: breakpointValues,\n breakpoints: themeBreakpoints,\n base: customBase\n}) {\n const base = customBase || computeBreakpointsBase(breakpointValues, themeBreakpoints);\n const keys = Object.keys(base);\n if (keys.length === 0) {\n return breakpointValues;\n }\n let previous;\n return keys.reduce((acc, breakpoint, i) => {\n if (Array.isArray(breakpointValues)) {\n acc[breakpoint] = breakpointValues[i] != null ? breakpointValues[i] : breakpointValues[previous];\n previous = i;\n } else if (typeof breakpointValues === 'object') {\n acc[breakpoint] = breakpointValues[breakpoint] != null ? breakpointValues[breakpoint] : breakpointValues[previous];\n previous = breakpoint;\n } else {\n acc[breakpoint] = breakpointValues;\n }\n return acc;\n }, {});\n}\nexport default breakpoints;","import _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\n// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word in the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (typeof string !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`capitalize(string)\\` expects a string argument.` : _formatMuiErrorMessage(7));\n }\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","import capitalize from '@mui/utils/capitalize';\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nexport function getPath(obj, path, checkVars = true) {\n if (!path || typeof path !== 'string') {\n return null;\n }\n\n // Check if CSS variables are used\n if (obj && obj.vars && checkVars) {\n const val = `vars.${path}`.split('.').reduce((acc, item) => acc && acc[item] ? acc[item] : null, obj);\n if (val != null) {\n return val;\n }\n }\n return path.split('.').reduce((acc, item) => {\n if (acc && acc[item] != null) {\n return acc[item];\n }\n return null;\n }, obj);\n}\nexport function getStyleValue(themeMapping, transform, propValueFinal, userValue = propValueFinal) {\n let value;\n if (typeof themeMapping === 'function') {\n value = themeMapping(propValueFinal);\n } else if (Array.isArray(themeMapping)) {\n value = themeMapping[propValueFinal] || userValue;\n } else {\n value = getPath(themeMapping, propValueFinal) || userValue;\n }\n if (transform) {\n value = transform(value, userValue, themeMapping);\n }\n return value;\n}\nfunction style(options) {\n const {\n prop,\n cssProperty = options.prop,\n themeKey,\n transform\n } = options;\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n if (props[prop] == null) {\n return null;\n }\n const propValue = props[prop];\n const theme = props.theme;\n const themeMapping = getPath(theme, themeKey) || {};\n const styleFromPropValue = propValueFinal => {\n let value = getStyleValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getStyleValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, propValue, styleFromPropValue);\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? {\n [prop]: responsivePropType\n } : {};\n fn.filterProps = [prop];\n return fn;\n}\nexport default style;","export default function memoize(fn) {\n const cache = {};\n return arg => {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n return cache[arg];\n };\n}","import responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport { getPath } from './style';\nimport merge from './merge';\nimport memoize from './memoize';\nconst properties = {\n m: 'margin',\n p: 'padding'\n};\nconst directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nconst aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n};\n\n// memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\nconst getCssProperties = memoize(prop => {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n const [a, b] = prop.split('');\n const property = properties[a];\n const direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(dir => property + dir) : [property + direction];\n});\nexport const marginKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'marginInline', 'marginInlineStart', 'marginInlineEnd', 'marginBlock', 'marginBlockStart', 'marginBlockEnd'];\nexport const paddingKeys = ['p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY', 'paddingInline', 'paddingInlineStart', 'paddingInlineEnd', 'paddingBlock', 'paddingBlockStart', 'paddingBlockEnd'];\nconst spacingKeys = [...marginKeys, ...paddingKeys];\nexport function createUnaryUnit(theme, themeKey, defaultValue, propName) {\n var _getPath;\n const themeSpacing = (_getPath = getPath(theme, themeKey, false)) != null ? _getPath : defaultValue;\n if (typeof themeSpacing === 'number') {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(`MUI: Expected ${propName} argument to be a number or a string, got ${abs}.`);\n }\n }\n return themeSpacing * abs;\n };\n }\n if (Array.isArray(themeSpacing)) {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!Number.isInteger(abs)) {\n console.error([`MUI: The \\`theme.${themeKey}\\` array type cannot be combined with non integer values.` + `You should either use an integer value that can be used as index, or define the \\`theme.${themeKey}\\` as a number.`].join('\\n'));\n } else if (abs > themeSpacing.length - 1) {\n console.error([`MUI: The value provided (${abs}) overflows.`, `The supported values are: ${JSON.stringify(themeSpacing)}.`, `${abs} > ${themeSpacing.length - 1}, you need to add the missing values.`].join('\\n'));\n }\n }\n return themeSpacing[abs];\n };\n }\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n if (process.env.NODE_ENV !== 'production') {\n console.error([`MUI: The \\`theme.${themeKey}\\` value (${themeSpacing}) is invalid.`, 'It should be a number, an array or a function.'].join('\\n'));\n }\n return () => undefined;\n}\nexport function createUnarySpacing(theme) {\n return createUnaryUnit(theme, 'spacing', 8, 'spacing');\n}\nexport function getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n const abs = Math.abs(propValue);\n const transformed = transformer(abs);\n if (propValue >= 0) {\n return transformed;\n }\n if (typeof transformed === 'number') {\n return -transformed;\n }\n return `-${transformed}`;\n}\nexport function getStyleFromPropValue(cssProperties, transformer) {\n return propValue => cssProperties.reduce((acc, cssProperty) => {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n}\nfunction resolveCssProperty(props, keys, prop, transformer) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (keys.indexOf(prop) === -1) {\n return null;\n }\n const cssProperties = getCssProperties(prop);\n const styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n const propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n}\nfunction style(props, keys) {\n const transformer = createUnarySpacing(props.theme);\n return Object.keys(props).map(prop => resolveCssProperty(props, keys, prop, transformer)).reduce(merge, {});\n}\nexport function margin(props) {\n return style(props, marginKeys);\n}\nmargin.propTypes = process.env.NODE_ENV !== 'production' ? marginKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nmargin.filterProps = marginKeys;\nexport function padding(props) {\n return style(props, paddingKeys);\n}\npadding.propTypes = process.env.NODE_ENV !== 'production' ? paddingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\npadding.filterProps = paddingKeys;\nfunction spacing(props) {\n return style(props, spacingKeys);\n}\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","import { createUnarySpacing } from '../spacing';\n\n// The different signatures imply different meaning for their arguments that can't be expressed structurally.\n// We express the difference with variable names.\n\nexport default function createSpacing(spacingInput = 8) {\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n }\n\n // Material Design layouts are visually balanced. Most measurements align to an 8dp grid, which aligns both spacing and the overall layout.\n // Smaller components, such as icons, can align to a 4dp grid.\n // https://m2.material.io/design/layout/understanding-layout.html\n const transform = createUnarySpacing({\n spacing: spacingInput\n });\n const spacing = (...argsInput) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!(argsInput.length <= 4)) {\n console.error(`MUI: Too many arguments provided, expected between 0 and 4, got ${argsInput.length}`);\n }\n }\n const args = argsInput.length === 0 ? [1] : argsInput;\n return args.map(argument => {\n const output = transform(argument);\n return typeof output === 'number' ? `${output}px` : output;\n }).join(' ');\n };\n spacing.mui = true;\n return spacing;\n}","import merge from './merge';\nfunction compose(...styles) {\n const handlers = styles.reduce((acc, style) => {\n style.filterProps.forEach(prop => {\n acc[prop] = style;\n });\n return acc;\n }, {});\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n return Object.keys(props).reduce((acc, prop) => {\n if (handlers[prop]) {\n return merge(acc, handlers[prop](props));\n }\n return acc;\n }, {});\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? styles.reduce((acc, style) => Object.assign(acc, style.propTypes), {}) : {};\n fn.filterProps = styles.reduce((acc, style) => acc.concat(style.filterProps), []);\n return fn;\n}\nexport default compose;","import responsivePropType from './responsivePropType';\nimport style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nexport function borderTransform(value) {\n if (typeof value !== 'number') {\n return value;\n }\n return `${value}px solid`;\n}\nfunction createBorderStyle(prop, transform) {\n return style({\n prop,\n themeKey: 'borders',\n transform\n });\n}\nexport const border = createBorderStyle('border', borderTransform);\nexport const borderTop = createBorderStyle('borderTop', borderTransform);\nexport const borderRight = createBorderStyle('borderRight', borderTransform);\nexport const borderBottom = createBorderStyle('borderBottom', borderTransform);\nexport const borderLeft = createBorderStyle('borderLeft', borderTransform);\nexport const borderColor = createBorderStyle('borderColor');\nexport const borderTopColor = createBorderStyle('borderTopColor');\nexport const borderRightColor = createBorderStyle('borderRightColor');\nexport const borderBottomColor = createBorderStyle('borderBottomColor');\nexport const borderLeftColor = createBorderStyle('borderLeftColor');\nexport const outline = createBorderStyle('outline', borderTransform);\nexport const outlineColor = createBorderStyle('outlineColor');\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const borderRadius = props => {\n if (props.borderRadius !== undefined && props.borderRadius !== null) {\n const transformer = createUnaryUnit(props.theme, 'shape.borderRadius', 4, 'borderRadius');\n const styleFromPropValue = propValue => ({\n borderRadius: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.borderRadius, styleFromPropValue);\n }\n return null;\n};\nborderRadius.propTypes = process.env.NODE_ENV !== 'production' ? {\n borderRadius: responsivePropType\n} : {};\nborderRadius.filterProps = ['borderRadius'];\nconst borders = compose(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderTopColor, borderRightColor, borderBottomColor, borderLeftColor, borderRadius, outline, outlineColor);\nexport default borders;","import style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nimport responsivePropType from './responsivePropType';\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const gap = props => {\n if (props.gap !== undefined && props.gap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'gap');\n const styleFromPropValue = propValue => ({\n gap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.gap, styleFromPropValue);\n }\n return null;\n};\ngap.propTypes = process.env.NODE_ENV !== 'production' ? {\n gap: responsivePropType\n} : {};\ngap.filterProps = ['gap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const columnGap = props => {\n if (props.columnGap !== undefined && props.columnGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'columnGap');\n const styleFromPropValue = propValue => ({\n columnGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.columnGap, styleFromPropValue);\n }\n return null;\n};\ncolumnGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n columnGap: responsivePropType\n} : {};\ncolumnGap.filterProps = ['columnGap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const rowGap = props => {\n if (props.rowGap !== undefined && props.rowGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'rowGap');\n const styleFromPropValue = propValue => ({\n rowGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.rowGap, styleFromPropValue);\n }\n return null;\n};\nrowGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n rowGap: responsivePropType\n} : {};\nrowGap.filterProps = ['rowGap'];\nexport const gridColumn = style({\n prop: 'gridColumn'\n});\nexport const gridRow = style({\n prop: 'gridRow'\n});\nexport const gridAutoFlow = style({\n prop: 'gridAutoFlow'\n});\nexport const gridAutoColumns = style({\n prop: 'gridAutoColumns'\n});\nexport const gridAutoRows = style({\n prop: 'gridAutoRows'\n});\nexport const gridTemplateColumns = style({\n prop: 'gridTemplateColumns'\n});\nexport const gridTemplateRows = style({\n prop: 'gridTemplateRows'\n});\nexport const gridTemplateAreas = style({\n prop: 'gridTemplateAreas'\n});\nexport const gridArea = style({\n prop: 'gridArea'\n});\nconst grid = compose(gap, columnGap, rowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);\nexport default grid;","import style from './style';\nimport compose from './compose';\nexport function paletteTransform(value, userValue) {\n if (userValue === 'grey') {\n return userValue;\n }\n return value;\n}\nexport const color = style({\n prop: 'color',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const bgcolor = style({\n prop: 'bgcolor',\n cssProperty: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const backgroundColor = style({\n prop: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nconst palette = compose(color, bgcolor, backgroundColor);\nexport default palette;","import style from './style';\nimport compose from './compose';\nimport { handleBreakpoints, values as breakpointsValues } from './breakpoints';\nexport function sizingTransform(value) {\n return value <= 1 && value !== 0 ? `${value * 100}%` : value;\n}\nexport const width = style({\n prop: 'width',\n transform: sizingTransform\n});\nexport const maxWidth = props => {\n if (props.maxWidth !== undefined && props.maxWidth !== null) {\n const styleFromPropValue = propValue => {\n var _props$theme, _props$theme2;\n const breakpoint = ((_props$theme = props.theme) == null || (_props$theme = _props$theme.breakpoints) == null || (_props$theme = _props$theme.values) == null ? void 0 : _props$theme[propValue]) || breakpointsValues[propValue];\n if (!breakpoint) {\n return {\n maxWidth: sizingTransform(propValue)\n };\n }\n if (((_props$theme2 = props.theme) == null || (_props$theme2 = _props$theme2.breakpoints) == null ? void 0 : _props$theme2.unit) !== 'px') {\n return {\n maxWidth: `${breakpoint}${props.theme.breakpoints.unit}`\n };\n }\n return {\n maxWidth: breakpoint\n };\n };\n return handleBreakpoints(props, props.maxWidth, styleFromPropValue);\n }\n return null;\n};\nmaxWidth.filterProps = ['maxWidth'];\nexport const minWidth = style({\n prop: 'minWidth',\n transform: sizingTransform\n});\nexport const height = style({\n prop: 'height',\n transform: sizingTransform\n});\nexport const maxHeight = style({\n prop: 'maxHeight',\n transform: sizingTransform\n});\nexport const minHeight = style({\n prop: 'minHeight',\n transform: sizingTransform\n});\nexport const sizeWidth = style({\n prop: 'size',\n cssProperty: 'width',\n transform: sizingTransform\n});\nexport const sizeHeight = style({\n prop: 'size',\n cssProperty: 'height',\n transform: sizingTransform\n});\nexport const boxSizing = style({\n prop: 'boxSizing'\n});\nconst sizing = compose(width, maxWidth, minWidth, height, maxHeight, minHeight, boxSizing);\nexport default sizing;","import { padding, margin } from '../spacing';\nimport { borderRadius, borderTransform } from '../borders';\nimport { gap, rowGap, columnGap } from '../cssGrid';\nimport { paletteTransform } from '../palette';\nimport { maxWidth, sizingTransform } from '../sizing';\nconst defaultSxConfig = {\n // borders\n border: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderTop: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderRight: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderBottom: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderLeft: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderColor: {\n themeKey: 'palette'\n },\n borderTopColor: {\n themeKey: 'palette'\n },\n borderRightColor: {\n themeKey: 'palette'\n },\n borderBottomColor: {\n themeKey: 'palette'\n },\n borderLeftColor: {\n themeKey: 'palette'\n },\n outline: {\n themeKey: 'borders',\n transform: borderTransform\n },\n outlineColor: {\n themeKey: 'palette'\n },\n borderRadius: {\n themeKey: 'shape.borderRadius',\n style: borderRadius\n },\n // palette\n color: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n bgcolor: {\n themeKey: 'palette',\n cssProperty: 'backgroundColor',\n transform: paletteTransform\n },\n backgroundColor: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n // spacing\n p: {\n style: padding\n },\n pt: {\n style: padding\n },\n pr: {\n style: padding\n },\n pb: {\n style: padding\n },\n pl: {\n style: padding\n },\n px: {\n style: padding\n },\n py: {\n style: padding\n },\n padding: {\n style: padding\n },\n paddingTop: {\n style: padding\n },\n paddingRight: {\n style: padding\n },\n paddingBottom: {\n style: padding\n },\n paddingLeft: {\n style: padding\n },\n paddingX: {\n style: padding\n },\n paddingY: {\n style: padding\n },\n paddingInline: {\n style: padding\n },\n paddingInlineStart: {\n style: padding\n },\n paddingInlineEnd: {\n style: padding\n },\n paddingBlock: {\n style: padding\n },\n paddingBlockStart: {\n style: padding\n },\n paddingBlockEnd: {\n style: padding\n },\n m: {\n style: margin\n },\n mt: {\n style: margin\n },\n mr: {\n style: margin\n },\n mb: {\n style: margin\n },\n ml: {\n style: margin\n },\n mx: {\n style: margin\n },\n my: {\n style: margin\n },\n margin: {\n style: margin\n },\n marginTop: {\n style: margin\n },\n marginRight: {\n style: margin\n },\n marginBottom: {\n style: margin\n },\n marginLeft: {\n style: margin\n },\n marginX: {\n style: margin\n },\n marginY: {\n style: margin\n },\n marginInline: {\n style: margin\n },\n marginInlineStart: {\n style: margin\n },\n marginInlineEnd: {\n style: margin\n },\n marginBlock: {\n style: margin\n },\n marginBlockStart: {\n style: margin\n },\n marginBlockEnd: {\n style: margin\n },\n // display\n displayPrint: {\n cssProperty: false,\n transform: value => ({\n '@media print': {\n display: value\n }\n })\n },\n display: {},\n overflow: {},\n textOverflow: {},\n visibility: {},\n whiteSpace: {},\n // flexbox\n flexBasis: {},\n flexDirection: {},\n flexWrap: {},\n justifyContent: {},\n alignItems: {},\n alignContent: {},\n order: {},\n flex: {},\n flexGrow: {},\n flexShrink: {},\n alignSelf: {},\n justifyItems: {},\n justifySelf: {},\n // grid\n gap: {\n style: gap\n },\n rowGap: {\n style: rowGap\n },\n columnGap: {\n style: columnGap\n },\n gridColumn: {},\n gridRow: {},\n gridAutoFlow: {},\n gridAutoColumns: {},\n gridAutoRows: {},\n gridTemplateColumns: {},\n gridTemplateRows: {},\n gridTemplateAreas: {},\n gridArea: {},\n // positions\n position: {},\n zIndex: {\n themeKey: 'zIndex'\n },\n top: {},\n right: {},\n bottom: {},\n left: {},\n // shadows\n boxShadow: {\n themeKey: 'shadows'\n },\n // sizing\n width: {\n transform: sizingTransform\n },\n maxWidth: {\n style: maxWidth\n },\n minWidth: {\n transform: sizingTransform\n },\n height: {\n transform: sizingTransform\n },\n maxHeight: {\n transform: sizingTransform\n },\n minHeight: {\n transform: sizingTransform\n },\n boxSizing: {},\n // typography\n fontFamily: {\n themeKey: 'typography'\n },\n fontSize: {\n themeKey: 'typography'\n },\n fontStyle: {\n themeKey: 'typography'\n },\n fontWeight: {\n themeKey: 'typography'\n },\n letterSpacing: {},\n textTransform: {},\n lineHeight: {},\n textAlign: {},\n typography: {\n cssProperty: false,\n themeKey: 'typography'\n }\n};\nexport default defaultSxConfig;","import capitalize from '@mui/utils/capitalize';\nimport merge from '../merge';\nimport { getPath, getStyleValue as getValue } from '../style';\nimport { handleBreakpoints, createEmptyBreakpointObject, removeUnusedBreakpoints } from '../breakpoints';\nimport defaultSxConfig from './defaultSxConfig';\nfunction objectsHaveSameKeys(...objects) {\n const allKeys = objects.reduce((keys, object) => keys.concat(Object.keys(object)), []);\n const union = new Set(allKeys);\n return objects.every(object => union.size === Object.keys(object).length);\n}\nfunction callIfFn(maybeFn, arg) {\n return typeof maybeFn === 'function' ? maybeFn(arg) : maybeFn;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function unstable_createStyleFunctionSx() {\n function getThemeValue(prop, val, theme, config) {\n const props = {\n [prop]: val,\n theme\n };\n const options = config[prop];\n if (!options) {\n return {\n [prop]: val\n };\n }\n const {\n cssProperty = prop,\n themeKey,\n transform,\n style\n } = options;\n if (val == null) {\n return null;\n }\n\n // TODO v6: remove, see https://github.com/mui/material-ui/pull/38123\n if (themeKey === 'typography' && val === 'inherit') {\n return {\n [prop]: val\n };\n }\n const themeMapping = getPath(theme, themeKey) || {};\n if (style) {\n return style(props);\n }\n const styleFromPropValue = propValueFinal => {\n let value = getValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, val, styleFromPropValue);\n }\n function styleFunctionSx(props) {\n var _theme$unstable_sxCon;\n const {\n sx,\n theme = {},\n nested\n } = props || {};\n if (!sx) {\n return null; // Emotion & styled-components will neglect null\n }\n const config = (_theme$unstable_sxCon = theme.unstable_sxConfig) != null ? _theme$unstable_sxCon : defaultSxConfig;\n\n /*\n * Receive `sxInput` as object or callback\n * and then recursively check keys & values to create media query object styles.\n * (the result will be used in `styled`)\n */\n function traverse(sxInput) {\n let sxObject = sxInput;\n if (typeof sxInput === 'function') {\n sxObject = sxInput(theme);\n } else if (typeof sxInput !== 'object') {\n // value\n return sxInput;\n }\n if (!sxObject) {\n return null;\n }\n const emptyBreakpoints = createEmptyBreakpointObject(theme.breakpoints);\n const breakpointsKeys = Object.keys(emptyBreakpoints);\n let css = emptyBreakpoints;\n Object.keys(sxObject).forEach(styleKey => {\n const value = callIfFn(sxObject[styleKey], theme);\n if (value !== null && value !== undefined) {\n if (typeof value === 'object') {\n if (config[styleKey]) {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n } else {\n const breakpointsValues = handleBreakpoints({\n theme\n }, value, x => ({\n [styleKey]: x\n }));\n if (objectsHaveSameKeys(breakpointsValues, value)) {\n css[styleKey] = styleFunctionSx({\n sx: value,\n theme,\n nested: true\n });\n } else {\n css = merge(css, breakpointsValues);\n }\n }\n } else {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n }\n }\n });\n if (!nested && theme.modularCssLayers) {\n return {\n '@layer sx': removeUnusedBreakpoints(breakpointsKeys, css)\n };\n }\n return removeUnusedBreakpoints(breakpointsKeys, css);\n }\n return Array.isArray(sx) ? sx.map(traverse) : traverse(sx);\n }\n return styleFunctionSx;\n}\nconst styleFunctionSx = unstable_createStyleFunctionSx();\nstyleFunctionSx.filterProps = ['sx'];\nexport default styleFunctionSx;","/**\n * A universal utility to style components with multiple color modes. Always use it from the theme object.\n * It works with:\n * - [Basic theme](https://mui.com/material-ui/customization/dark-mode/)\n * - [CSS theme variables](https://mui.com/material-ui/experimental-api/css-theme-variables/overview/)\n * - Zero-runtime engine\n *\n * Tips: Use an array over object spread and place `theme.applyStyles()` last.\n *\n * ✅ [{ background: '#e5e5e5' }, theme.applyStyles('dark', { background: '#1c1c1c' })]\n *\n * 🚫 { background: '#e5e5e5', ...theme.applyStyles('dark', { background: '#1c1c1c' })}\n *\n * @example\n * 1. using with `styled`:\n * ```jsx\n * const Component = styled('div')(({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]);\n * ```\n *\n * @example\n * 2. using with `sx` prop:\n * ```jsx\n * <Box sx={theme => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]}\n * />\n * ```\n *\n * @example\n * 3. theming a component:\n * ```jsx\n * extendTheme({\n * components: {\n * MuiButton: {\n * styleOverrides: {\n * root: ({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ],\n * },\n * }\n * }\n * })\n *```\n */\nexport default function applyStyles(key, styles) {\n // @ts-expect-error this is 'any' type\n const theme = this;\n if (theme.vars && typeof theme.getColorSchemeSelector === 'function') {\n // If CssVarsProvider is used as a provider,\n // returns '* :where([data-mui-color-scheme=\"light|dark\"]) &'\n const selector = theme.getColorSchemeSelector(key).replace(/(\\[[^\\]]+\\])/, '*:where($1)');\n return {\n [selector]: styles\n };\n }\n if (theme.palette.mode === key) {\n return styles;\n }\n return {};\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"breakpoints\", \"palette\", \"spacing\", \"shape\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport createBreakpoints from './createBreakpoints';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\nimport styleFunctionSx from '../styleFunctionSx/styleFunctionSx';\nimport defaultSxConfig from '../styleFunctionSx/defaultSxConfig';\nimport applyStyles from './applyStyles';\nfunction createTheme(options = {}, ...args) {\n const {\n breakpoints: breakpointsInput = {},\n palette: paletteInput = {},\n spacing: spacingInput,\n shape: shapeInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n const breakpoints = createBreakpoints(breakpointsInput);\n const spacing = createSpacing(spacingInput);\n let muiTheme = deepmerge({\n breakpoints,\n direction: 'ltr',\n components: {},\n // Inject component definitions.\n palette: _extends({\n mode: 'light'\n }, paletteInput),\n spacing,\n shape: _extends({}, shape, shapeInput)\n }, other);\n muiTheme.applyStyles = applyStyles;\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nexport default createTheme;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"sx\"];\nimport { isPlainObject } from '@mui/utils/deepmerge';\nimport defaultSxConfig from './defaultSxConfig';\nconst splitProps = props => {\n var _props$theme$unstable, _props$theme;\n const result = {\n systemProps: {},\n otherProps: {}\n };\n const config = (_props$theme$unstable = props == null || (_props$theme = props.theme) == null ? void 0 : _props$theme.unstable_sxConfig) != null ? _props$theme$unstable : defaultSxConfig;\n Object.keys(props).forEach(prop => {\n if (config[prop]) {\n result.systemProps[prop] = props[prop];\n } else {\n result.otherProps[prop] = props[prop];\n }\n });\n return result;\n};\nexport default function extendSxProp(props) {\n const {\n sx: inSx\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n systemProps,\n otherProps\n } = splitProps(other);\n let finalSx;\n if (Array.isArray(inSx)) {\n finalSx = [systemProps, ...inSx];\n } else if (typeof inSx === 'function') {\n finalSx = (...args) => {\n const result = inSx(...args);\n if (!isPlainObject(result)) {\n return systemProps;\n }\n return _extends({}, systemProps, result);\n };\n } else {\n finalSx = _extends({}, systemProps, inSx);\n }\n return _extends({}, otherProps, {\n sx: finalSx\n });\n}","const defaultGenerator = componentName => componentName;\nconst createClassNameGenerator = () => {\n let generate = defaultGenerator;\n return {\n configure(generator) {\n generate = generator;\n },\n generate(componentName) {\n return generate(componentName);\n },\n reset() {\n generate = defaultGenerator;\n }\n };\n};\nconst ClassNameGenerator = createClassNameGenerator();\nexport default ClassNameGenerator;","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import ClassNameGenerator from '../ClassNameGenerator';\nexport const globalStateClasses = {\n active: 'active',\n checked: 'checked',\n completed: 'completed',\n disabled: 'disabled',\n error: 'error',\n expanded: 'expanded',\n focused: 'focused',\n focusVisible: 'focusVisible',\n open: 'open',\n readOnly: 'readOnly',\n required: 'required',\n selected: 'selected'\n};\nexport default function generateUtilityClass(componentName, slot, globalStatePrefix = 'Mui') {\n const globalStateClass = globalStateClasses[slot];\n return globalStateClass ? `${globalStatePrefix}-${globalStateClass}` : `${ClassNameGenerator.generate(componentName)}-${slot}`;\n}\nexport function isGlobalState(slot) {\n return globalStateClasses[slot] !== undefined;\n}","import generateUtilityClass from '../generateUtilityClass';\nexport default function generateUtilityClasses(componentName, slots, globalStatePrefix = 'Mui') {\n const result = {};\n slots.forEach(slot => {\n result[slot] = generateUtilityClass(componentName, slot, globalStatePrefix);\n });\n return result;\n}","/**\n * @license React\n * react-is.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\nSymbol.for(\"react.provider\");\nvar REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_VIEW_TRANSITION_TYPE = Symbol.for(\"react.view_transition\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction typeOf(object) {\n if (\"object\" === typeof object && null !== object) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n switch (((object = object.type), object)) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n case REACT_VIEW_TRANSITION_TYPE:\n return object;\n default:\n switch (((object = object && object.$$typeof), object)) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n return object;\n case REACT_CONSUMER_TYPE:\n return object;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n}\nexports.ContextConsumer = REACT_CONSUMER_TYPE;\nexports.ContextProvider = REACT_CONTEXT_TYPE;\nexports.Element = REACT_ELEMENT_TYPE;\nexports.ForwardRef = REACT_FORWARD_REF_TYPE;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Lazy = REACT_LAZY_TYPE;\nexports.Memo = REACT_MEMO_TYPE;\nexports.Portal = REACT_PORTAL_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nexports.isContextConsumer = function (object) {\n return typeOf(object) === REACT_CONSUMER_TYPE;\n};\nexports.isContextProvider = function (object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n};\nexports.isElement = function (object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n};\nexports.isForwardRef = function (object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n};\nexports.isFragment = function (object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n};\nexports.isLazy = function (object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n};\nexports.isMemo = function (object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n};\nexports.isPortal = function (object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n};\nexports.isProfiler = function (object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n};\nexports.isStrictMode = function (object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n};\nexports.isSuspense = function (object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n};\nexports.isSuspenseList = function (object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n};\nexports.isValidElementType = function (type) {\n return \"string\" === typeof type ||\n \"function\" === typeof type ||\n type === REACT_FRAGMENT_TYPE ||\n type === REACT_PROFILER_TYPE ||\n type === REACT_STRICT_MODE_TYPE ||\n type === REACT_SUSPENSE_TYPE ||\n type === REACT_SUSPENSE_LIST_TYPE ||\n (\"object\" === typeof type &&\n null !== type &&\n (type.$$typeof === REACT_LAZY_TYPE ||\n type.$$typeof === REACT_MEMO_TYPE ||\n type.$$typeof === REACT_CONTEXT_TYPE ||\n type.$$typeof === REACT_CONSUMER_TYPE ||\n type.$$typeof === REACT_FORWARD_REF_TYPE ||\n type.$$typeof === REACT_CLIENT_REFERENCE ||\n void 0 !== type.getModuleId))\n ? !0\n : !1;\n};\nexports.typeOf = typeOf;\n","/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function typeOf(object) {\n if (\"object\" === typeof object && null !== object) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n switch (((object = object.type), object)) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n case REACT_VIEW_TRANSITION_TYPE:\n return object;\n default:\n switch (((object = object && object.$$typeof), object)) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n return object;\n case REACT_CONSUMER_TYPE:\n return object;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n }\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_VIEW_TRANSITION_TYPE = Symbol.for(\"react.view_transition\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\n exports.ContextConsumer = REACT_CONSUMER_TYPE;\n exports.ContextProvider = REACT_CONTEXT_TYPE;\n exports.Element = REACT_ELEMENT_TYPE;\n exports.ForwardRef = REACT_FORWARD_REF_TYPE;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.Lazy = REACT_LAZY_TYPE;\n exports.Memo = REACT_MEMO_TYPE;\n exports.Portal = REACT_PORTAL_TYPE;\n exports.Profiler = REACT_PROFILER_TYPE;\n exports.StrictMode = REACT_STRICT_MODE_TYPE;\n exports.Suspense = REACT_SUSPENSE_TYPE;\n exports.SuspenseList = REACT_SUSPENSE_LIST_TYPE;\n exports.isContextConsumer = function (object) {\n return typeOf(object) === REACT_CONSUMER_TYPE;\n };\n exports.isContextProvider = function (object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n };\n exports.isElement = function (object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n };\n exports.isForwardRef = function (object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n };\n exports.isFragment = function (object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n };\n exports.isLazy = function (object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n };\n exports.isMemo = function (object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n };\n exports.isPortal = function (object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n };\n exports.isProfiler = function (object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n };\n exports.isStrictMode = function (object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n };\n exports.isSuspense = function (object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n };\n exports.isSuspenseList = function (object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n };\n exports.isValidElementType = function (type) {\n return \"string\" === typeof type ||\n \"function\" === typeof type ||\n type === REACT_FRAGMENT_TYPE ||\n type === REACT_PROFILER_TYPE ||\n type === REACT_STRICT_MODE_TYPE ||\n type === REACT_SUSPENSE_TYPE ||\n type === REACT_SUSPENSE_LIST_TYPE ||\n (\"object\" === typeof type &&\n null !== type &&\n (type.$$typeof === REACT_LAZY_TYPE ||\n type.$$typeof === REACT_MEMO_TYPE ||\n type.$$typeof === REACT_CONTEXT_TYPE ||\n type.$$typeof === REACT_CONSUMER_TYPE ||\n type.$$typeof === REACT_FORWARD_REF_TYPE ||\n type.$$typeof === REACT_CLIENT_REFERENCE ||\n void 0 !== type.getModuleId))\n ? !0\n : !1;\n };\n exports.typeOf = typeOf;\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import { ForwardRef, Memo } from 'react-is';\n\n// Simplified polyfill for IE11 support\n// https://github.com/JamesMGreene/Function.name/blob/58b314d4a983110c3682f1228f845d39ccca1817/Function.name.js#L3\nconst fnNameMatchRegex = /^\\s*function(?:\\s|\\s*\\/\\*.*\\*\\/\\s*)+([^(\\s/]*)\\s*/;\nexport function getFunctionName(fn) {\n const match = `${fn}`.match(fnNameMatchRegex);\n const name = match && match[1];\n return name || '';\n}\nfunction getFunctionComponentName(Component, fallback = '') {\n return Component.displayName || Component.name || getFunctionName(Component) || fallback;\n}\nfunction getWrappedName(outerType, innerType, wrapperName) {\n const functionName = getFunctionComponentName(innerType);\n return outerType.displayName || (functionName !== '' ? `${wrapperName}(${functionName})` : wrapperName);\n}\n\n/**\n * cherry-pick from\n * https://github.com/facebook/react/blob/769b1f270e1251d9dbdce0fcbd9e92e502d059b8/packages/shared/getComponentName.js\n * originally forked from recompose/getDisplayName with added IE11 support\n */\nexport default function getDisplayName(Component) {\n if (Component == null) {\n return undefined;\n }\n if (typeof Component === 'string') {\n return Component;\n }\n if (typeof Component === 'function') {\n return getFunctionComponentName(Component, 'Component');\n }\n\n // TypeScript can't have components as objects but they exist in the form of `memo` or `Suspense`\n if (typeof Component === 'object') {\n switch (Component.$$typeof) {\n case ForwardRef:\n return getWrappedName(Component, Component.render, 'ForwardRef');\n case Memo:\n return getWrappedName(Component, Component.type, 'memo');\n default:\n return undefined;\n }\n }\n return undefined;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\n/**\n * Add keys, values of `defaultProps` that does not exist in `props`\n * @param {object} defaultProps\n * @param {object} props\n * @returns {object} resolved props\n */\nexport default function resolveProps(defaultProps, props) {\n const output = _extends({}, props);\n Object.keys(defaultProps).forEach(propName => {\n if (propName.toString().match(/^(components|slots)$/)) {\n output[propName] = _extends({}, defaultProps[propName], output[propName]);\n } else if (propName.toString().match(/^(componentsProps|slotProps)$/)) {\n const defaultSlotProps = defaultProps[propName] || {};\n const slotProps = props[propName];\n output[propName] = {};\n if (!slotProps || !Object.keys(slotProps)) {\n // Reduce the iteration if the slot props is empty\n output[propName] = defaultSlotProps;\n } else if (!defaultSlotProps || !Object.keys(defaultSlotProps)) {\n // Reduce the iteration if the default slot props is empty\n output[propName] = slotProps;\n } else {\n output[propName] = _extends({}, slotProps);\n Object.keys(defaultSlotProps).forEach(slotPropName => {\n output[propName][slotPropName] = resolveProps(defaultSlotProps[slotPropName], slotProps[slotPropName]);\n });\n }\n } else if (output[propName] === undefined) {\n output[propName] = defaultProps[propName];\n }\n });\n return output;\n}","'use client';\n\nimport * as React from 'react';\n\n/**\n * A version of `React.useLayoutEffect` that does not show a warning when server-side rendering.\n * This is useful for effects that are only needed for client-side rendering but not for SSR.\n *\n * Before you use this hook, make sure to read https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * and confirm it doesn't apply to your use-case.\n */\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nexport default useEnhancedEffect;","function clamp(val, min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER) {\n return Math.max(min, Math.min(val, max));\n}\nexport default clamp;","/**\n * Safe chained function.\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n */\nexport default function createChainedFunction(...funcs) {\n return funcs.reduce((acc, func) => {\n if (func == null) {\n return acc;\n }\n return function chainedFunction(...args) {\n acc.apply(this, args);\n func.apply(this, args);\n };\n }, () => {});\n}","// Corresponds to 10 frames at 60 Hz.\n// A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.\nexport default function debounce(func, wait = 166) {\n let timeout;\n function debounced(...args) {\n const later = () => {\n // @ts-ignore\n func.apply(this, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n debounced.clear = () => {\n clearTimeout(timeout);\n };\n return debounced;\n}","export default function deprecatedPropType(validator, reason) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n return (props, propName, componentName, location, propFullName) => {\n const componentNameSafe = componentName || '<<anonymous>>';\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The ${location} \\`${propFullNameSafe}\\` of ` + `\\`${componentNameSafe}\\` is deprecated. ${reason}`);\n }\n return null;\n };\n}","import * as React from 'react';\nexport default function isMuiElement(element, muiNames) {\n var _muiName, _element$type;\n return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf( // For server components `muiName` is avaialble in element.type._payload.value.muiName\n // relevant info - https://github.com/facebook/react/blob/2807d781a08db8e9873687fccc25c0f12b4fb3d4/packages/react/src/ReactLazy.js#L45\n // eslint-disable-next-line no-underscore-dangle\n (_muiName = element.type.muiName) != null ? _muiName : (_element$type = element.type) == null || (_element$type = _element$type._payload) == null || (_element$type = _element$type.value) == null ? void 0 : _element$type.muiName) !== -1;\n}","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerDocument from '../ownerDocument';\nexport default function ownerWindow(node) {\n const doc = ownerDocument(node);\n return doc.defaultView || window;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function requirePropFactory(componentNameInError, Component) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n\n // eslint-disable-next-line react/forbid-foreign-prop-types\n const prevPropTypes = Component ? _extends({}, Component.propTypes) : null;\n const requireProp = requiredProp => (props, propName, componentName, location, propFullName, ...args) => {\n const propFullNameSafe = propFullName || propName;\n const defaultTypeChecker = prevPropTypes == null ? void 0 : prevPropTypes[propFullNameSafe];\n if (defaultTypeChecker) {\n const typeCheckerResult = defaultTypeChecker(props, propName, componentName, location, propFullName, ...args);\n if (typeCheckerResult) {\n return typeCheckerResult;\n }\n }\n if (typeof props[propName] !== 'undefined' && !props[requiredProp]) {\n return new Error(`The prop \\`${propFullNameSafe}\\` of ` + `\\`${componentNameInError}\\` can only be used together with the \\`${requiredProp}\\` prop.`);\n }\n return null;\n };\n return requireProp;\n}","/**\n * TODO v5: consider making it private\n *\n * passes {value} to {ref}\n *\n * WARNING: Be sure to only call this inside a callback that is passed as a ref.\n * Otherwise, make sure to cleanup the previous {ref} if it changes. See\n * https://github.com/mui/material-ui/issues/13539\n *\n * Useful if you want to expose the ref of an inner component to the public API\n * while still using it inside the component.\n * @param ref A ref callback or ref object. If anything falsy, this is a no-op.\n */\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","'use client';\n\nimport * as React from 'react';\nlet globalId = 0;\nfunction useGlobalId(idOverride) {\n const [defaultId, setDefaultId] = React.useState(idOverride);\n const id = idOverride || defaultId;\n React.useEffect(() => {\n if (defaultId == null) {\n // Fallback to this default id when possible.\n // Use the incrementing value for client-side rendering only.\n // We can't use it server-side.\n // If you want to use random values please consider the Birthday Problem: https://en.wikipedia.org/wiki/Birthday_problem\n globalId += 1;\n setDefaultId(`mui-${globalId}`);\n }\n }, [defaultId]);\n return id;\n}\n\n// downstream bundlers may remove unnecessary concatenation, but won't remove toString call -- Workaround for https://github.com/webpack/webpack/issues/14814\nconst maybeReactUseId = React['useId'.toString()];\n/**\n *\n * @example <div id={useId()} />\n * @param idOverride\n * @returns {string}\n */\nexport default function useId(idOverride) {\n if (maybeReactUseId !== undefined) {\n const reactId = maybeReactUseId();\n return idOverride != null ? idOverride : reactId;\n }\n // eslint-disable-next-line react-hooks/rules-of-hooks -- `React.useId` is invariant at runtime.\n return useGlobalId(idOverride);\n}","export default function unsupportedProp(props, propName, componentName, location, propFullName) {\n if (process.env.NODE_ENV === 'production') {\n return null;\n }\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The prop \\`${propFullNameSafe}\\` is not supported. Please remove it.`);\n }\n return null;\n}","'use client';\n\n/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nexport default function useControlled({\n controlled,\n default: defaultProp,\n name,\n state = 'value'\n}) {\n // isControlled is ignored in the hook dependency lists as it should never change.\n const {\n current: isControlled\n } = React.useRef(controlled !== undefined);\n const [valueState, setValue] = React.useState(defaultProp);\n const value = isControlled ? controlled : valueState;\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(() => {\n if (isControlled !== (controlled !== undefined)) {\n console.error([`MUI: A component is changing the ${isControlled ? '' : 'un'}controlled ${state} state of ${name} to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${name} ` + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [state, name, controlled]);\n const {\n current: defaultValue\n } = React.useRef(defaultProp);\n React.useEffect(() => {\n if (!isControlled && !Object.is(defaultValue, defaultProp)) {\n console.error([`MUI: A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. ` + `To suppress this warning opt to use a controlled ${name}.`].join('\\n'));\n }\n }, [JSON.stringify(defaultProp)]);\n }\n const setValueIfUncontrolled = React.useCallback(newValue => {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}","'use client';\n\nimport * as React from 'react';\nimport useEnhancedEffect from '../useEnhancedEffect';\n\n/**\n * Inspired by https://github.com/facebook/react/issues/14099#issuecomment-440013892\n * See RFC in https://github.com/reactjs/rfcs/pull/220\n */\n\nfunction useEventCallback(fn) {\n const ref = React.useRef(fn);\n useEnhancedEffect(() => {\n ref.current = fn;\n });\n return React.useRef((...args) =>\n // @ts-expect-error hide `this`\n (0, ref.current)(...args)).current;\n}\nexport default useEventCallback;","'use client';\n\nimport * as React from 'react';\nimport setRef from '../setRef';\nexport default function useForkRef(...refs) {\n /**\n * This will create a new function if the refs passed to this hook change and are all defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior.\n */\n return React.useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null;\n }\n return instance => {\n refs.forEach(ref => {\n setRef(ref, instance);\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}","'use client';\n\nimport useLazyRef from '../useLazyRef/useLazyRef';\nimport useOnMount from '../useOnMount/useOnMount';\nexport class Timeout {\n constructor() {\n this.currentId = null;\n this.clear = () => {\n if (this.currentId !== null) {\n clearTimeout(this.currentId);\n this.currentId = null;\n }\n };\n this.disposeEffect = () => {\n return this.clear;\n };\n }\n static create() {\n return new Timeout();\n }\n /**\n * Executes `fn` after `delay`, clearing any previously scheduled call.\n */\n start(delay, fn) {\n this.clear();\n this.currentId = setTimeout(() => {\n this.currentId = null;\n fn();\n }, delay);\n }\n}\nexport default function useTimeout() {\n const timeout = useLazyRef(Timeout.create).current;\n useOnMount(timeout.disposeEffect);\n return timeout;\n}","'use client';\n\n// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nimport * as React from 'react';\nimport { Timeout } from '../useTimeout/useTimeout';\nlet hadKeyboardEvent = true;\nlet hadFocusVisibleRecently = false;\nconst hadFocusVisibleRecentlyTimeout = new Timeout();\nconst inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n};\n\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @returns {boolean}\n */\nfunction focusTriggersKeyboardModality(node) {\n const {\n type,\n tagName\n } = node;\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n if (node.isContentEditable) {\n return true;\n }\n return false;\n}\n\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n hadKeyboardEvent = true;\n}\n\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\nfunction handleVisibilityChange() {\n if (this.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n }\n}\nfunction prepare(doc) {\n doc.addEventListener('keydown', handleKeyDown, true);\n doc.addEventListener('mousedown', handlePointerDown, true);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n doc.addEventListener('touchstart', handlePointerDown, true);\n doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\nexport function teardown(doc) {\n doc.removeEventListener('keydown', handleKeyDown, true);\n doc.removeEventListener('mousedown', handlePointerDown, true);\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n doc.removeEventListener('touchstart', handlePointerDown, true);\n doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\nfunction isFocusVisible(event) {\n const {\n target\n } = event;\n try {\n return target.matches(':focus-visible');\n } catch (error) {\n // Browsers not implementing :focus-visible will throw a SyntaxError.\n // We use our own heuristic for those browsers.\n // Rethrow might be better if it's not the expected error but do we really\n // want to crash if focus-visible malfunctioned?\n }\n\n // No need for validFocusTarget check. The user does that by attaching it to\n // focusable events only.\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\nexport default function useIsFocusVisible() {\n const ref = React.useCallback(node => {\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n const isFocusVisibleRef = React.useRef(false);\n\n /**\n * Should be called if a blur event is fired\n */\n function handleBlurVisible() {\n // checking against potential state variable does not suffice if we focus and blur synchronously.\n // React wouldn't have time to trigger a re-render so `focusVisible` would be stale.\n // Ideally we would adjust `isFocusVisible(event)` to look at `relatedTarget` for blur events.\n // This doesn't work in IE11 due to https://github.com/facebook/react/issues/3751\n // TODO: check again if React releases their internal changes to focus event handling (https://github.com/facebook/react/pull/19186).\n if (isFocusVisibleRef.current) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n hadFocusVisibleRecentlyTimeout.start(100, () => {\n hadFocusVisibleRecently = false;\n });\n isFocusVisibleRef.current = false;\n return true;\n }\n return false;\n }\n\n /**\n * Should be called if a blur event is fired\n */\n function handleFocusVisible(event) {\n if (isFocusVisible(event)) {\n isFocusVisibleRef.current = true;\n return true;\n }\n return false;\n }\n return {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref\n };\n}","export default function composeClasses(slots, getUtilityClass, classes = undefined) {\n const output = {};\n Object.keys(slots).forEach(\n // `Object.keys(slots)` can't be wider than `T` because we infer `T` from `slots`.\n // @ts-expect-error https://github.com/microsoft/TypeScript/pull/12253#issuecomment-263132208\n slot => {\n output[slot] = slots[slot].reduce((acc, key) => {\n if (key) {\n const utilityClass = getUtilityClass(key);\n if (utilityClass !== '') {\n acc.push(utilityClass);\n }\n if (classes && classes[key]) {\n acc.push(classes[key]);\n }\n }\n return acc;\n }, []).join(' ');\n });\n return output;\n}","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport resolveProps from '@mui/utils/resolveProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst PropsContext = /*#__PURE__*/React.createContext(undefined);\nfunction DefaultPropsProvider({\n value,\n children\n}) {\n return /*#__PURE__*/_jsx(PropsContext.Provider, {\n value: value,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? DefaultPropsProvider.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n value: PropTypes.object\n} : void 0;\nfunction getThemeProps(params) {\n const {\n theme,\n name,\n props\n } = params;\n if (!theme || !theme.components || !theme.components[name]) {\n return props;\n }\n const config = theme.components[name];\n if (config.defaultProps) {\n // compatible with v5 signature\n return resolveProps(config.defaultProps, props);\n }\n if (!config.styleOverrides && !config.variants) {\n // v6 signature, no property 'defaultProps'\n return resolveProps(config, props);\n }\n return props;\n}\nexport function useDefaultProps({\n props,\n name\n}) {\n const ctx = React.useContext(PropsContext);\n return getThemeProps({\n props,\n name,\n theme: {\n components: ctx\n }\n });\n}\nexport default DefaultPropsProvider;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function createMixins(breakpoints, mixins) {\n return _extends({\n toolbar: {\n minHeight: 56,\n [breakpoints.up('xs')]: {\n '@media (orientation: landscape)': {\n minHeight: 48\n }\n },\n [breakpoints.up('sm')]: {\n minHeight: 64\n }\n }\n }, mixins);\n}","function _interopRequireDefault(e) {\n return e && e.__esModule ? e : {\n \"default\": e\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.alpha = alpha;\nexports.blend = blend;\nexports.colorChannel = void 0;\nexports.darken = darken;\nexports.decomposeColor = decomposeColor;\nexports.emphasize = emphasize;\nexports.getContrastRatio = getContrastRatio;\nexports.getLuminance = getLuminance;\nexports.hexToRgb = hexToRgb;\nexports.hslToRgb = hslToRgb;\nexports.lighten = lighten;\nexports.private_safeAlpha = private_safeAlpha;\nexports.private_safeColorChannel = void 0;\nexports.private_safeDarken = private_safeDarken;\nexports.private_safeEmphasize = private_safeEmphasize;\nexports.private_safeLighten = private_safeLighten;\nexports.recomposeColor = recomposeColor;\nexports.rgbToHex = rgbToHex;\nvar _formatMuiErrorMessage2 = _interopRequireDefault(require(\"@mui/utils/formatMuiErrorMessage\"));\nvar _clamp = _interopRequireDefault(require(\"@mui/utils/clamp\"));\n/* eslint-disable @typescript-eslint/naming-convention */\n\n/**\n * Returns a number whose value is limited to the given range.\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clampWrapper(value, min = 0, max = 1) {\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(`MUI: The value provided ${value} is out of range [${min}, ${max}].`);\n }\n }\n return (0, _clamp.default)(value, min, max);\n}\n\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\nfunction hexToRgb(color) {\n color = color.slice(1);\n const re = new RegExp(`.{1,${color.length >= 6 ? 2 : 1}}`, 'g');\n let colors = color.match(re);\n if (colors && colors[0].length === 1) {\n colors = colors.map(n => n + n);\n }\n return colors ? `rgb${colors.length === 4 ? 'a' : ''}(${colors.map((n, index) => {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', ')})` : '';\n}\nfunction intToHex(int) {\n const hex = int.toString(16);\n return hex.length === 1 ? `0${hex}` : hex;\n}\n\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\nfunction decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n const marker = color.indexOf('(');\n const type = color.substring(0, marker);\n if (['rgb', 'rgba', 'hsl', 'hsla', 'color'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Unsupported \\`${color}\\` color.\nThe following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` : (0, _formatMuiErrorMessage2.default)(9, color));\n }\n let values = color.substring(marker + 1, color.length - 1);\n let colorSpace;\n if (type === 'color') {\n values = values.split(' ');\n colorSpace = values.shift();\n if (values.length === 4 && values[3].charAt(0) === '/') {\n values[3] = values[3].slice(1);\n }\n if (['srgb', 'display-p3', 'a98-rgb', 'prophoto-rgb', 'rec-2020'].indexOf(colorSpace) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: unsupported \\`${colorSpace}\\` color space.\nThe following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.` : (0, _formatMuiErrorMessage2.default)(10, colorSpace));\n }\n } else {\n values = values.split(',');\n }\n values = values.map(value => parseFloat(value));\n return {\n type,\n values,\n colorSpace\n };\n}\n\n/**\n * Returns a channel created from the input color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {string} - The channel for the color, that can be used in rgba or hsla colors\n */\nconst colorChannel = color => {\n const decomposedColor = decomposeColor(color);\n return decomposedColor.values.slice(0, 3).map((val, idx) => decomposedColor.type.indexOf('hsl') !== -1 && idx !== 0 ? `${val}%` : val).join(' ');\n};\nexports.colorChannel = colorChannel;\nconst private_safeColorChannel = (color, warning) => {\n try {\n return colorChannel(color);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n};\n\n/**\n * Converts a color object with type and values to a string.\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla', 'color'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\nexports.private_safeColorChannel = private_safeColorChannel;\nfunction recomposeColor(color) {\n const {\n type,\n colorSpace\n } = color;\n let {\n values\n } = color;\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map((n, i) => i < 3 ? parseInt(n, 10) : n);\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = `${values[1]}%`;\n values[2] = `${values[2]}%`;\n }\n if (type.indexOf('color') !== -1) {\n values = `${colorSpace} ${values.join(' ')}`;\n } else {\n values = `${values.join(', ')}`;\n }\n return `${type}(${values})`;\n}\n\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\nfunction rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n const {\n values\n } = decomposeColor(color);\n return `#${values.map((n, i) => intToHex(i === 3 ? Math.round(255 * n) : n)).join('')}`;\n}\n\n/**\n * Converts a color from hsl format to rgb format.\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\nfunction hslToRgb(color) {\n color = decomposeColor(color);\n const {\n values\n } = color;\n const h = values[0];\n const s = values[1] / 100;\n const l = values[2] / 100;\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n let type = 'rgb';\n const rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n return recomposeColor({\n type,\n values: rgb\n });\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\nfunction getLuminance(color) {\n color = decomposeColor(color);\n let rgb = color.type === 'hsl' || color.type === 'hsla' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(val => {\n if (color.type !== 'color') {\n val /= 255; // normalized\n }\n return val <= 0.03928 ? val / 12.92 : ((val + 0.055) / 1.055) ** 2.4;\n });\n\n // Truncate at 3 digits\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\nfunction getContrastRatio(foreground, background) {\n const lumA = getLuminance(foreground);\n const lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n\n/**\n * Sets the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} value - value to set the alpha channel to in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction alpha(color, value) {\n color = decomposeColor(color);\n value = clampWrapper(value);\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n if (color.type === 'color') {\n color.values[3] = `/${value}`;\n } else {\n color.values[3] = value;\n }\n return recomposeColor(color);\n}\nfunction private_safeAlpha(color, value, warning) {\n try {\n return alpha(color, value);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darkens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1 || color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n return recomposeColor(color);\n}\nfunction private_safeDarken(color, coefficient, warning) {\n try {\n return darken(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Lightens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n } else if (color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (1 - color.values[i]) * coefficient;\n }\n }\n return recomposeColor(color);\n}\nfunction private_safeLighten(color, coefficient, warning) {\n try {\n return lighten(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction emphasize(color, coefficient = 0.15) {\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nfunction private_safeEmphasize(color, coefficient, warning) {\n try {\n return emphasize(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Blend a transparent overlay color with a background color, resulting in a single\n * RGB color.\n * @param {string} background - CSS color\n * @param {string} overlay - CSS color\n * @param {number} opacity - Opacity multiplier in the range 0 - 1\n * @param {number} [gamma=1.0] - Gamma correction factor. For gamma-correct blending, 2.2 is usual.\n */\nfunction blend(background, overlay, opacity, gamma = 1.0) {\n const blendChannel = (b, o) => Math.round((b ** (1 / gamma) * (1 - opacity) + o ** (1 / gamma) * opacity) ** gamma);\n const backgroundColor = decomposeColor(background);\n const overlayColor = decomposeColor(overlay);\n const rgb = [blendChannel(backgroundColor.values[0], overlayColor.values[0]), blendChannel(backgroundColor.values[1], overlayColor.values[1]), blendChannel(backgroundColor.values[2], overlayColor.values[2])];\n return recomposeColor({\n type: 'rgb',\n values: rgb\n });\n}","const common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;","const grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#f5f5f5',\n A200: '#eeeeee',\n A400: '#bdbdbd',\n A700: '#616161'\n};\nexport default grey;","const purple = {\n 50: '#f3e5f5',\n 100: '#e1bee7',\n 200: '#ce93d8',\n 300: '#ba68c8',\n 400: '#ab47bc',\n 500: '#9c27b0',\n 600: '#8e24aa',\n 700: '#7b1fa2',\n 800: '#6a1b9a',\n 900: '#4a148c',\n A100: '#ea80fc',\n A200: '#e040fb',\n A400: '#d500f9',\n A700: '#aa00ff'\n};\nexport default purple;","const red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\nexport default red;","const orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nexport default orange;","const blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nexport default blue;","const lightBlue = {\n 50: '#e1f5fe',\n 100: '#b3e5fc',\n 200: '#81d4fa',\n 300: '#4fc3f7',\n 400: '#29b6f6',\n 500: '#03a9f4',\n 600: '#039be5',\n 700: '#0288d1',\n 800: '#0277bd',\n 900: '#01579b',\n A100: '#80d8ff',\n A200: '#40c4ff',\n A400: '#00b0ff',\n A700: '#0091ea'\n};\nexport default lightBlue;","const green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nexport default green;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nconst _excluded = [\"mode\", \"contrastThreshold\", \"tonalOffset\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport { darken, getContrastRatio, lighten } from '@mui/system/colorManipulator';\nimport common from '../colors/common';\nimport grey from '../colors/grey';\nimport purple from '../colors/purple';\nimport red from '../colors/red';\nimport orange from '../colors/orange';\nimport blue from '../colors/blue';\nimport lightBlue from '../colors/lightBlue';\nimport green from '../colors/green';\nexport const light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.6)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: common.white,\n default: common.white\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexport const dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: '#121212',\n default: '#121212'\n },\n action: {\n active: common.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n const tonalOffsetLight = tonalOffset.light || tonalOffset;\n const tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = lighten(intent.main, tonalOffsetLight);\n } else if (direction === 'dark') {\n intent.dark = darken(intent.main, tonalOffsetDark);\n }\n }\n}\nfunction getDefaultPrimary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: blue[200],\n light: blue[50],\n dark: blue[400]\n };\n }\n return {\n main: blue[700],\n light: blue[400],\n dark: blue[800]\n };\n}\nfunction getDefaultSecondary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: purple[200],\n light: purple[50],\n dark: purple[400]\n };\n }\n return {\n main: purple[500],\n light: purple[300],\n dark: purple[700]\n };\n}\nfunction getDefaultError(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: red[500],\n light: red[300],\n dark: red[700]\n };\n }\n return {\n main: red[700],\n light: red[400],\n dark: red[800]\n };\n}\nfunction getDefaultInfo(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: lightBlue[400],\n light: lightBlue[300],\n dark: lightBlue[700]\n };\n }\n return {\n main: lightBlue[700],\n light: lightBlue[500],\n dark: lightBlue[900]\n };\n}\nfunction getDefaultSuccess(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: green[400],\n light: green[300],\n dark: green[700]\n };\n }\n return {\n main: green[800],\n light: green[500],\n dark: green[900]\n };\n}\nfunction getDefaultWarning(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: orange[400],\n light: orange[300],\n dark: orange[700]\n };\n }\n return {\n main: '#ed6c02',\n // closest to orange[800] that pass 3:1.\n light: orange[500],\n dark: orange[900]\n };\n}\nexport default function createPalette(palette) {\n const {\n mode = 'light',\n contrastThreshold = 3,\n tonalOffset = 0.2\n } = palette,\n other = _objectWithoutPropertiesLoose(palette, _excluded);\n const primary = palette.primary || getDefaultPrimary(mode);\n const secondary = palette.secondary || getDefaultSecondary(mode);\n const error = palette.error || getDefaultError(mode);\n const info = palette.info || getDefaultInfo(mode);\n const success = palette.success || getDefaultSuccess(mode);\n const warning = palette.warning || getDefaultWarning(mode);\n\n // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n function getContrastText(background) {\n const contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n if (process.env.NODE_ENV !== 'production') {\n const contrast = getContrastRatio(background, contrastText);\n if (contrast < 3) {\n console.error([`MUI: The contrast ratio of ${contrast}:1 for ${contrastText} on ${background}`, 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n return contrastText;\n }\n const augmentColor = ({\n color,\n name,\n mainShade = 500,\n lightShade = 300,\n darkShade = 700\n }) => {\n color = _extends({}, color);\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n if (!color.hasOwnProperty('main')) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\nThe color object needs to have a \\`main\\` property or a \\`${mainShade}\\` property.` : _formatMuiErrorMessage(11, name ? ` (${name})` : '', mainShade));\n }\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\n\\`color.main\\` should be a string, but \\`${JSON.stringify(color.main)}\\` was provided instead.\n\nDid you intend to use one of the following approaches?\n\nimport { green } from \"@mui/material/colors\";\n\nconst theme1 = createTheme({ palette: {\n primary: green,\n} });\n\nconst theme2 = createTheme({ palette: {\n primary: { main: green[500] },\n} });` : _formatMuiErrorMessage(12, name ? ` (${name})` : '', JSON.stringify(color.main)));\n }\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n return color;\n };\n const modes = {\n dark,\n light\n };\n if (process.env.NODE_ENV !== 'production') {\n if (!modes[mode]) {\n console.error(`MUI: The palette mode \\`${mode}\\` is not supported.`);\n }\n }\n const paletteOutput = deepmerge(_extends({\n // A collection of common colors.\n common: _extends({}, common),\n // prevent mutable object.\n // The palette mode, can be light or dark.\n mode,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor({\n color: primary,\n name: 'primary'\n }),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor({\n color: secondary,\n name: 'secondary',\n mainShade: 'A400',\n lightShade: 'A200',\n darkShade: 'A700'\n }),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor({\n color: error,\n name: 'error'\n }),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor({\n color: warning,\n name: 'warning'\n }),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor({\n color: info,\n name: 'info'\n }),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor({\n color: success,\n name: 'success'\n }),\n // The grey colors.\n grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText,\n // Generate a rich color object.\n augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset\n }, modes[mode]), other);\n return paletteOutput;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"];\nimport deepmerge from '@mui/utils/deepmerge';\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\nconst caseAllCaps = {\n textTransform: 'uppercase'\n};\nconst defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n\n/**\n * @see @link{https://m2.material.io/design/typography/the-type-system.html}\n * @see @link{https://m2.material.io/design/typography/understanding-typography.html}\n */\nexport default function createTypography(palette, typography) {\n const _ref = typeof typography === 'function' ? typography(palette) : typography,\n {\n fontFamily = defaultFontFamily,\n // The default font size of the Material Specification.\n fontSize = 14,\n // px\n fontWeightLight = 300,\n fontWeightRegular = 400,\n fontWeightMedium = 500,\n fontWeightBold = 700,\n // Tell MUI what's the font-size on the html element.\n // 16px is the default font-size used by browsers.\n htmlFontSize = 16,\n // Apply the CSS properties to all the variants.\n allVariants,\n pxToRem: pxToRem2\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('MUI: `fontSize` is required to be a number.');\n }\n if (typeof htmlFontSize !== 'number') {\n console.error('MUI: `htmlFontSize` is required to be a number.');\n }\n }\n const coef = fontSize / 14;\n const pxToRem = pxToRem2 || (size => `${size / htmlFontSize * coef}rem`);\n const buildVariant = (fontWeight, size, lineHeight, letterSpacing, casing) => _extends({\n fontFamily,\n fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: `${round(letterSpacing / size)}em`\n } : {}, casing, allVariants);\n const variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps),\n // TODO v6: Remove handling of 'inherit' variant from the theme as it is already handled in Material UI's Typography component. Also, remember to remove the associated types.\n inherit: {\n fontFamily: 'inherit',\n fontWeight: 'inherit',\n fontSize: 'inherit',\n lineHeight: 'inherit',\n letterSpacing: 'inherit'\n }\n };\n return deepmerge(_extends({\n htmlFontSize,\n pxToRem,\n fontFamily,\n fontSize,\n fontWeightLight,\n fontWeightRegular,\n fontWeightMedium,\n fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n });\n}","const shadowKeyUmbraOpacity = 0.2;\nconst shadowKeyPenumbraOpacity = 0.14;\nconst shadowAmbientShadowOpacity = 0.12;\nfunction createShadow(...px) {\n return [`${px[0]}px ${px[1]}px ${px[2]}px ${px[3]}px rgba(0,0,0,${shadowKeyUmbraOpacity})`, `${px[4]}px ${px[5]}px ${px[6]}px ${px[7]}px rgba(0,0,0,${shadowKeyPenumbraOpacity})`, `${px[8]}px ${px[9]}px ${px[10]}px ${px[11]}px rgba(0,0,0,${shadowAmbientShadowOpacity})`].join(',');\n}\n\n// Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\nconst shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nexport default shadows;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"duration\", \"easing\", \"delay\"];\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nexport const easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n};\n\n// Follow https://m2.material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\nexport const duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\nfunction formatMs(milliseconds) {\n return `${Math.round(milliseconds)}ms`;\n}\nfunction getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n const constant = height / 36;\n\n // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n return Math.round((4 + 15 * constant ** 0.25 + constant / 5) * 10);\n}\nexport default function createTransitions(inputTransitions) {\n const mergedEasing = _extends({}, easing, inputTransitions.easing);\n const mergedDuration = _extends({}, duration, inputTransitions.duration);\n const create = (props = ['all'], options = {}) => {\n const {\n duration: durationOption = mergedDuration.standard,\n easing: easingOption = mergedEasing.easeInOut,\n delay = 0\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n const isString = value => typeof value === 'string';\n // IE11 support, replace with Number.isNaN\n // eslint-disable-next-line no-restricted-globals\n const isNumber = value => !isNaN(parseFloat(value));\n if (!isString(props) && !Array.isArray(props)) {\n console.error('MUI: Argument \"props\" must be a string or Array.');\n }\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(`MUI: Argument \"duration\" must be a number or a string but found ${durationOption}.`);\n }\n if (!isString(easingOption)) {\n console.error('MUI: Argument \"easing\" must be a string.');\n }\n if (!isNumber(delay) && !isString(delay)) {\n console.error('MUI: Argument \"delay\" must be a number or a string.');\n }\n if (typeof options !== 'object') {\n console.error(['MUI: Secong argument of transition.create must be an object.', \"Arguments should be either `create('prop1', options)` or `create(['prop1', 'prop2'], options)`\"].join('\\n'));\n }\n if (Object.keys(other).length !== 0) {\n console.error(`MUI: Unrecognized argument(s) [${Object.keys(other).join(',')}].`);\n }\n }\n return (Array.isArray(props) ? props : [props]).map(animatedProp => `${animatedProp} ${typeof durationOption === 'string' ? durationOption : formatMs(durationOption)} ${easingOption} ${typeof delay === 'string' ? delay : formatMs(delay)}`).join(',');\n };\n return _extends({\n getAutoHeightDuration,\n create\n }, inputTransitions, {\n easing: mergedEasing,\n duration: mergedDuration\n });\n}","// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nconst zIndex = {\n mobileStepper: 1000,\n fab: 1050,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nexport default zIndex;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nconst _excluded = [\"breakpoints\", \"mixins\", \"spacing\", \"palette\", \"transitions\", \"typography\", \"shape\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport styleFunctionSx, { unstable_defaultSxConfig as defaultSxConfig } from '@mui/system/styleFunctionSx';\nimport systemCreateTheme from '@mui/system/createTheme';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport createMixins from './createMixins';\nimport createPalette from './createPalette';\nimport createTypography from './createTypography';\nimport shadows from './shadows';\nimport createTransitions from './createTransitions';\nimport zIndex from './zIndex';\nfunction createTheme(options = {}, ...args) {\n const {\n mixins: mixinsInput = {},\n palette: paletteInput = {},\n transitions: transitionsInput = {},\n typography: typographyInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n if (options.vars &&\n // The error should throw only for the root theme creation because user is not allowed to use a custom node `vars`.\n // `generateCssVars` is the closest identifier for checking that the `options` is a result of `extendTheme` with CSS variables so that user can create new theme for nested ThemeProvider.\n options.generateCssVars === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`vars\\` is a private field used for CSS variables support.\nPlease use another name.` : _formatMuiErrorMessage(18));\n }\n const palette = createPalette(paletteInput);\n const systemTheme = systemCreateTheme(options);\n let muiTheme = deepmerge(systemTheme, {\n mixins: createMixins(systemTheme.breakpoints, mixinsInput),\n palette,\n // Don't use [...shadows] until you've verified its transpiled code is not invoking the iterator protocol.\n shadows: shadows.slice(),\n typography: createTypography(palette, typographyInput),\n transitions: createTransitions(transitionsInput),\n zIndex: _extends({}, zIndex)\n });\n muiTheme = deepmerge(muiTheme, other);\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n if (process.env.NODE_ENV !== 'production') {\n // TODO v6: Refactor to use globalStateClassesMapping from @mui/utils once `readOnly` state class is used in Rating component.\n const stateClasses = ['active', 'checked', 'completed', 'disabled', 'error', 'expanded', 'focused', 'focusVisible', 'required', 'selected'];\n const traverse = (node, component) => {\n let key;\n\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (key in node) {\n const child = node[key];\n if (stateClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n const stateClass = generateUtilityClass('', key);\n console.error([`MUI: The \\`${component}\\` component increases ` + `the CSS specificity of the \\`${key}\\` internal state.`, 'You can not override it like this: ', JSON.stringify(node, null, 2), '', `Instead, you need to use the '&.${stateClass}' syntax:`, JSON.stringify({\n root: {\n [`&.${stateClass}`]: child\n }\n }, null, 2), '', 'https://mui.com/r/state-classes-guide'].join('\\n'));\n }\n // Remove the style to prevent global conflicts.\n node[key] = {};\n }\n }\n };\n Object.keys(muiTheme.components).forEach(component => {\n const styleOverrides = muiTheme.components[component].styleOverrides;\n if (styleOverrides && component.indexOf('Mui') === 0) {\n traverse(styleOverrides, component);\n }\n });\n }\n muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nlet warnedOnce = false;\nexport function createMuiTheme(...args) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['MUI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@mui/material/styles'`\"].join('\\n'));\n }\n }\n return createTheme(...args);\n}\nexport default createTheme;","'use client';\n\nimport createTheme from './createTheme';\nconst defaultTheme = createTheme();\nexport default defaultTheme;","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createStyled;\nexports.shouldForwardProp = shouldForwardProp;\nexports.systemDefaultTheme = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\nvar _styledEngine = _interopRequireWildcard(require(\"@mui/styled-engine\"));\nvar _deepmerge = require(\"@mui/utils/deepmerge\");\nvar _capitalize = _interopRequireDefault(require(\"@mui/utils/capitalize\"));\nvar _getDisplayName = _interopRequireDefault(require(\"@mui/utils/getDisplayName\"));\nvar _createTheme = _interopRequireDefault(require(\"./createTheme\"));\nvar _styleFunctionSx = _interopRequireDefault(require(\"./styleFunctionSx\"));\nconst _excluded = [\"ownerState\"],\n _excluded2 = [\"variants\"],\n _excluded3 = [\"name\", \"slot\", \"skipVariantsResolver\", \"skipSx\", \"overridesResolver\"];\n/* eslint-disable no-underscore-dangle */\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n\n// https://github.com/emotion-js/emotion/blob/26ded6109fcd8ca9875cc2ce4564fee678a3f3c5/packages/styled/src/utils.js#L40\nfunction isStringTag(tag) {\n return typeof tag === 'string' &&\n // 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;\n}\n\n// Update /system/styled/#api in case if this changes\nfunction shouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nfunction shallowLayer(serialized, layerName) {\n if (layerName && serialized && typeof serialized === 'object' && serialized.styles && !serialized.styles.startsWith('@layer') // only add the layer if it is not already there.\n ) {\n serialized.styles = `@layer ${layerName}{${String(serialized.styles)}}`;\n }\n return serialized;\n}\nconst systemDefaultTheme = exports.systemDefaultTheme = (0, _createTheme.default)();\nconst lowercaseFirstLetter = string => {\n if (!string) {\n return string;\n }\n return string.charAt(0).toLowerCase() + string.slice(1);\n};\nfunction resolveTheme({\n defaultTheme,\n theme,\n themeId\n}) {\n return isEmpty(theme) ? defaultTheme : theme[themeId] || theme;\n}\nfunction defaultOverridesResolver(slot) {\n if (!slot) {\n return null;\n }\n return (props, styles) => styles[slot];\n}\nfunction processStyleArg(callableStyle, _ref, layerName) {\n let {\n ownerState\n } = _ref,\n props = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);\n const resolvedStylesArg = typeof callableStyle === 'function' ? callableStyle((0, _extends2.default)({\n ownerState\n }, props)) : callableStyle;\n if (Array.isArray(resolvedStylesArg)) {\n return resolvedStylesArg.flatMap(resolvedStyle => processStyleArg(resolvedStyle, (0, _extends2.default)({\n ownerState\n }, props), layerName));\n }\n if (!!resolvedStylesArg && typeof resolvedStylesArg === 'object' && Array.isArray(resolvedStylesArg.variants)) {\n const {\n variants = []\n } = resolvedStylesArg,\n otherStyles = (0, _objectWithoutPropertiesLoose2.default)(resolvedStylesArg, _excluded2);\n let result = otherStyles;\n variants.forEach(variant => {\n let isMatch = true;\n if (typeof variant.props === 'function') {\n isMatch = variant.props((0, _extends2.default)({\n ownerState\n }, props, ownerState));\n } else {\n Object.keys(variant.props).forEach(key => {\n if ((ownerState == null ? void 0 : ownerState[key]) !== variant.props[key] && props[key] !== variant.props[key]) {\n isMatch = false;\n }\n });\n }\n if (isMatch) {\n if (!Array.isArray(result)) {\n result = [result];\n }\n const variantStyle = typeof variant.style === 'function' ? variant.style((0, _extends2.default)({\n ownerState\n }, props, ownerState)) : variant.style;\n result.push(layerName ? shallowLayer((0, _styledEngine.internal_serializeStyles)(variantStyle), layerName) : variantStyle);\n }\n });\n return result;\n }\n return layerName ? shallowLayer((0, _styledEngine.internal_serializeStyles)(resolvedStylesArg), layerName) : resolvedStylesArg;\n}\nfunction createStyled(input = {}) {\n const {\n themeId,\n defaultTheme = systemDefaultTheme,\n rootShouldForwardProp = shouldForwardProp,\n slotShouldForwardProp = shouldForwardProp\n } = input;\n const systemSx = props => {\n return (0, _styleFunctionSx.default)((0, _extends2.default)({}, props, {\n theme: resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }))\n }));\n };\n systemSx.__mui_systemSx = true;\n return (tag, inputOptions = {}) => {\n // Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components.\n (0, _styledEngine.internal_processStyles)(tag, styles => styles.filter(style => !(style != null && style.__mui_systemSx)));\n const {\n name: componentName,\n slot: componentSlot,\n skipVariantsResolver: inputSkipVariantsResolver,\n skipSx: inputSkipSx,\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n overridesResolver = defaultOverridesResolver(lowercaseFirstLetter(componentSlot))\n } = inputOptions,\n options = (0, _objectWithoutPropertiesLoose2.default)(inputOptions, _excluded3);\n const layerName = componentName && componentName.startsWith('Mui') || !!componentSlot ? 'components' : 'custom';\n\n // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.\n const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver :\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n componentSlot && componentSlot !== 'Root' && componentSlot !== 'root' || false;\n const skipSx = inputSkipSx || false;\n let label;\n if (process.env.NODE_ENV !== 'production') {\n if (componentName) {\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`;\n }\n }\n let shouldForwardPropOption = shouldForwardProp;\n\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n if (componentSlot === 'Root' || componentSlot === 'root') {\n shouldForwardPropOption = rootShouldForwardProp;\n } else if (componentSlot) {\n // any other slot specified\n shouldForwardPropOption = slotShouldForwardProp;\n } else if (isStringTag(tag)) {\n // for string (html) tag, preserve the behavior in emotion & styled-components.\n shouldForwardPropOption = undefined;\n }\n const defaultStyledResolver = (0, _styledEngine.default)(tag, (0, _extends2.default)({\n shouldForwardProp: shouldForwardPropOption,\n label\n }, options));\n const transformStyleArg = stylesArg => {\n // On the server Emotion doesn't use React.forwardRef for creating components, so the created\n // component stays as a function. This condition makes sure that we do not interpolate functions\n // which are basically components used as a selectors.\n if (typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg || (0, _deepmerge.isPlainObject)(stylesArg)) {\n return props => {\n const theme = resolveTheme({\n theme: props.theme,\n defaultTheme,\n themeId\n });\n return processStyleArg(stylesArg, (0, _extends2.default)({}, props, {\n theme\n }), theme.modularCssLayers ? layerName : undefined);\n };\n }\n return stylesArg;\n };\n const muiStyledResolver = (styleArg, ...expressions) => {\n let transformedStyleArg = transformStyleArg(styleArg);\n const expressionsWithDefaultTheme = expressions ? expressions.map(transformStyleArg) : [];\n if (componentName && overridesResolver) {\n expressionsWithDefaultTheme.push(props => {\n const theme = resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }));\n if (!theme.components || !theme.components[componentName] || !theme.components[componentName].styleOverrides) {\n return null;\n }\n const styleOverrides = theme.components[componentName].styleOverrides;\n const resolvedStyleOverrides = {};\n // TODO: v7 remove iteration and use `resolveStyleArg(styleOverrides[slot])` directly\n Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => {\n resolvedStyleOverrides[slotKey] = processStyleArg(slotStyle, (0, _extends2.default)({}, props, {\n theme\n }), theme.modularCssLayers ? 'theme' : undefined);\n });\n return overridesResolver(props, resolvedStyleOverrides);\n });\n }\n if (componentName && !skipVariantsResolver) {\n expressionsWithDefaultTheme.push(props => {\n var _theme$components;\n const theme = resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }));\n const themeVariants = theme == null || (_theme$components = theme.components) == null || (_theme$components = _theme$components[componentName]) == null ? void 0 : _theme$components.variants;\n return processStyleArg({\n variants: themeVariants\n }, (0, _extends2.default)({}, props, {\n theme\n }), theme.modularCssLayers ? 'theme' : undefined);\n });\n }\n if (!skipSx) {\n expressionsWithDefaultTheme.push(systemSx);\n }\n const numOfCustomFnsApplied = expressionsWithDefaultTheme.length - expressions.length;\n if (Array.isArray(styleArg) && numOfCustomFnsApplied > 0) {\n const placeholders = new Array(numOfCustomFnsApplied).fill('');\n // If the type is array, than we need to add placeholders in the template for the overrides, variants and the sx styles.\n transformedStyleArg = [...styleArg, ...placeholders];\n transformedStyleArg.raw = [...styleArg.raw, ...placeholders];\n }\n const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme);\n if (process.env.NODE_ENV !== 'production') {\n let displayName;\n if (componentName) {\n displayName = `${componentName}${(0, _capitalize.default)(componentSlot || '')}`;\n }\n if (displayName === undefined) {\n displayName = `Styled(${(0, _getDisplayName.default)(tag)})`;\n }\n Component.displayName = displayName;\n }\n if (tag.muiName) {\n Component.muiName = tag.muiName;\n }\n return Component;\n };\n if (defaultStyledResolver.withConfig) {\n muiStyledResolver.withConfig = defaultStyledResolver.withConfig;\n }\n return muiStyledResolver;\n };\n}","// copied from @mui/system/createStyled\nfunction slotShouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nexport default slotShouldForwardProp;","import slotShouldForwardProp from './slotShouldForwardProp';\nconst rootShouldForwardProp = prop => slotShouldForwardProp(prop) && prop !== 'classes';\nexport default rootShouldForwardProp;","'use client';\n\nimport createStyled from '@mui/system/createStyled';\nimport defaultTheme from './defaultTheme';\nimport THEME_ID from './identifier';\nimport rootShouldForwardProp from './rootShouldForwardProp';\nexport { default as slotShouldForwardProp } from './slotShouldForwardProp';\nexport { default as rootShouldForwardProp } from './rootShouldForwardProp';\nconst styled = createStyled({\n themeId: THEME_ID,\n defaultTheme,\n rootShouldForwardProp\n});\nexport default styled;","import React from 'react';\n\nconst ArrowLeft = ({ size = 36, color = 'currentColor', ...other }) => {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 36 36\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-label=\"이전 페이지로 가기\"\n {...other}\n >\n <path\n d=\"M22.1673 4.21094L24.2886 6.33226L12.621 17.9989L24.2886 29.6662L22.1673 31.7875L9.43934 19.0596C8.89861 18.5195 8.85702 17.6686 9.31456 17.0802L9.45 16.9264L22.1673 4.21094Z\"\n fill={color}\n />\n </svg>\n );\n};\n\nexport default ArrowLeft;\n","import React from 'react';\n\nconst ArrowRight = ({ size = 36, color = 'currentColor', ...other }) => {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 36 36\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-label=\"다음 페이지로 가기\"\n {...other}\n >\n <path\n d=\"M13.8323 31.7875L11.7109 29.6662L23.3785 17.9995L11.7109 6.33226L13.8323 4.21094L26.5602 16.9389C27.1009 17.479 27.1425 18.3298 26.685 18.9183L26.5495 19.072L13.8323 31.7875Z\"\n fill={color}\n />\n </svg>\n );\n};\n\nexport default ArrowRight;\n","import React from 'react';\n\nconst Close = ({ size = 24, color = 'currentColor', ...other }) => {\n return (\n <svg\n height={size}\n width={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...other}\n >\n <path\n d=\"M18.3641 4.22183L19.7783 5.63605L13.4139 11.9998L19.7783 18.364L18.3641 19.7782L11.9999 13.4138L5.63614 19.7782L4.22192 18.364L10.5859 11.9998L4.22192 5.63605L5.63614 4.22183L11.9999 10.5858L18.3641 4.22183Z\"\n fill={color}\n />\n </svg>\n );\n};\n\nexport default Close;\n","const Micro = ({ size = 20, color = 'currentColor', ...other }) => {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...other}\n >\n <g clip-path=\"url(#clip0_766_783)\">\n <path\n d=\"M16.9711 8.8101C16.9711 8.63513 16.9016 8.46733 16.7779 8.34361C16.6542 8.21989 16.4864 8.15039 16.3114 8.15039C16.1364 8.15039 15.9686 8.21989 15.8449 8.34361C15.7212 8.46733 15.6517 8.63513 15.6517 8.8101C15.6517 10.3649 15.034 11.8561 13.9346 12.9556C12.8351 14.055 11.344 14.6727 9.78911 14.6727C8.23425 14.6727 6.74308 14.055 5.64364 12.9556C4.54419 11.8561 3.92653 10.3649 3.92653 8.8101C3.92653 8.63513 3.85702 8.46733 3.7333 8.34361C3.60958 8.21989 3.44179 8.15039 3.26682 8.15039C3.09186 8.15039 2.92406 8.21989 2.80034 8.34361C2.67662 8.46733 2.60712 8.63513 2.60712 8.8101C2.60932 10.5996 3.27906 12.3238 4.48533 13.6456C5.69159 14.9674 7.3476 15.7915 9.1294 15.9569V17.7161H6.11675C5.94178 17.7161 5.77399 17.7856 5.65027 17.9093C5.52655 18.0331 5.45704 18.2009 5.45704 18.3758C5.45704 18.5508 5.52655 18.7186 5.65027 18.8423C5.77399 18.966 5.94178 19.0355 6.11675 19.0355H13.4615C13.6364 19.0355 13.8042 18.966 13.9279 18.8423C14.0517 18.7186 14.1212 18.5508 14.1212 18.3758C14.1212 18.2009 14.0517 18.0331 13.9279 17.9093C13.8042 17.7856 13.6364 17.7161 13.4615 17.7161H10.4488V15.9569C12.2306 15.7915 13.8866 14.9674 15.0929 13.6456C16.2992 12.3238 16.9689 10.5996 16.9711 8.8101Z\"\n fill={color}\n />\n <path\n d=\"M9.78914 12.8875C10.8701 12.8863 11.9064 12.4564 12.6707 11.6921C13.435 10.9277 13.865 9.89142 13.8661 8.81049V4.19695C13.6462 -1.20823 5.94965 -1.20823 5.71216 4.19695V8.81049C5.71332 9.89142 6.14323 10.9277 6.90756 11.6921C7.67189 12.4564 8.70821 12.8863 9.78914 12.8875ZM7.03157 4.19695C7.15911 0.546586 12.4192 0.546586 12.5467 4.19695V8.81049C12.5467 9.54185 12.2562 10.2432 11.739 10.7604C11.2219 11.2775 10.5205 11.5681 9.78914 11.5681C9.05778 11.5681 8.35639 11.2775 7.83924 10.7604C7.3221 10.2432 7.03157 9.54185 7.03157 8.81049V4.19695Z\"\n fill={color}\n />\n </g>\n <defs>\n <clipPath id=\"clip0_766_783\">\n <rect\n width=\"19.7143\"\n height=\"19.7143\"\n fill=\"white\"\n transform=\"translate(0.142883 0.143066)\"\n />\n </clipPath>\n </defs>\n </svg>\n );\n};\n\nexport default Micro;\n","const Reset = ({ size = 20, color = 'currentColor', ...other }) => {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...other}\n >\n <path\n d=\"M5.75413 3.14911C3.64229 4.41804 2.30625 6.48622 1.90047 8.73415L3.32078 8.95861C3.66204 7.11581 4.76174 5.42244 6.4945 4.38129C9.48842 2.58236 13.3143 3.36629 15.3785 6.08645L12.7949 5.67738L12.5701 7.09718L16.6266 7.73968L16.7294 7.74948C17.1374 7.76277 17.501 7.47047 17.5665 7.05687L18.209 3.00029L16.7892 2.77541L16.4233 5.08766C13.8992 1.89446 9.33561 0.997147 5.75413 3.14911ZM3.26268 12.2896C2.85471 12.2763 2.49115 12.5686 2.42564 12.9822L1.78314 17.0388L3.20294 17.2637L3.56881 14.9514C6.09286 18.1446 10.6565 19.0419 14.238 16.89C16.3516 15.62 17.6881 13.5494 18.0927 11.2993L16.6725 11.0743C16.3325 12.9195 15.2323 14.6155 13.4976 15.6578C10.5037 17.4567 6.67784 16.6728 4.61355 13.9526L7.19716 14.3617L7.42203 12.9419L3.36546 12.2994L3.26268 12.2896Z\"\n fill={color}\n />\n </svg>\n );\n};\n\nexport default Reset;\n","import React from 'react';\n\nconst SelectedCheckbox = ({ color = 'currentColor' }: { color: string }) => {\n return (\n <svg\n width=\"22\"\n height=\"23\"\n viewBox=\"0 0 22 23\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M6.875 4.625H15.125C16.6438 4.625 17.875 5.85622 17.875 7.375V15.625C17.875 17.1438 16.6438 18.375 15.125 18.375H6.875C5.35622 18.375 4.125 17.1438 4.125 15.625V7.375C4.125 5.85622 5.35622 4.625 6.875 4.625ZM2.75 7.375C2.75 5.09683 4.59683 3.25 6.875 3.25H15.125C17.4032 3.25 19.25 5.09683 19.25 7.375V15.625C19.25 17.9032 17.4032 19.75 15.125 19.75H6.875C4.59683 19.75 2.75 17.9032 2.75 15.625V7.375ZM16.2344 8.74304C16.4306 8.93736 16.4321 9.25394 16.2378 9.45014L10.67 15.0717C10.1642 15.5727 9.36741 15.6003 8.82945 15.1573L8.72547 15.0624L5.6392 11.9466C5.44487 11.7504 5.44638 11.4339 5.64257 11.2395L6.23461 10.6531C6.43081 10.4588 6.7474 10.4603 6.94172 10.6565L9.70201 13.4433L14.9352 8.16C15.1295 7.96382 15.4461 7.9623 15.6423 8.15661L16.2344 8.74304Z\"\n fill={color}\n />\n </svg>\n );\n};\n\nexport default SelectedCheckbox;\n","import React from 'react';\n\nconst SelectedRadio = ({ color = 'currentColor' }: { color: string }) => {\n return (\n <svg\n width=\"22\"\n height=\"23\"\n viewBox=\"0 0 22 23\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11 2.3335C16.0627 2.3335 20.1667 6.43755 20.1667 11.5002C20.1667 16.5628 16.0627 20.6668 11 20.6668C5.93743 20.6668 1.83337 16.5628 1.83337 11.5002C1.83337 6.43755 5.93743 2.3335 11 2.3335ZM11 3.93766C6.82339 3.93766 3.43754 7.32351 3.43754 11.5002C3.43754 15.6768 6.82339 19.0627 11 19.0627C15.1767 19.0627 18.5625 15.6768 18.5625 11.5002C18.5625 7.32351 15.1767 3.93766 11 3.93766ZM16.5 11.5002C16.5 8.4626 14.0376 6.00016 11 6.00016C7.96247 6.00016 5.50004 8.4626 5.50004 11.5002C5.50004 14.5377 7.96247 17.0002 11 17.0002C14.0376 17.0002 16.5 14.5377 16.5 11.5002Z\"\n fill={color}\n />\n </svg>\n );\n};\n\nexport default SelectedRadio;\n","import React from 'react';\n\nconst UnselectedCheckbox = ({ color = 'currentColor' }: { color: string }) => {\n return (\n <svg\n width=\"22\"\n height=\"23\"\n viewBox=\"0 0 22 23\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M15.125 4.625H6.875C5.35622 4.625 4.125 5.85622 4.125 7.375V15.625C4.125 17.1438 5.35622 18.375 6.875 18.375H15.125C16.6438 18.375 17.875 17.1438 17.875 15.625V7.375C17.875 5.85622 16.6438 4.625 15.125 4.625ZM6.875 3.25C4.59683 3.25 2.75 5.09683 2.75 7.375V15.625C2.75 17.9032 4.59683 19.75 6.875 19.75H15.125C17.4032 19.75 19.25 17.9032 19.25 15.625V7.375C19.25 5.09683 17.4032 3.25 15.125 3.25H6.875Z\"\n fill={color}\n />\n </svg>\n );\n};\n\nexport default UnselectedCheckbox;\n","import React from 'react';\n\nconst UnselectedRadio = ({ color = 'currentColor' }: { color: string }) => {\n return (\n <svg\n width=\"22\"\n height=\"23\"\n viewBox=\"0 0 22 23\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M20.1667 11.5002C20.1667 6.43755 16.0627 2.3335 11 2.3335C5.93743 2.3335 1.83337 6.43755 1.83337 11.5002C1.83337 16.5628 5.93743 20.6668 11 20.6668C16.0627 20.6668 20.1667 16.5628 20.1667 11.5002ZM3.43754 11.5002C3.43754 7.32351 6.82339 3.93766 11 3.93766C15.1767 3.93766 18.5625 7.32351 18.5625 11.5002C18.5625 15.6768 15.1767 19.0627 11 19.0627C6.82339 19.0627 3.43754 15.6768 3.43754 11.5002Z\"\n fill={color}\n />\n </svg>\n );\n};\n\nexport default UnselectedRadio;\n","const Send = ({ size = 20, color = 'currentColor', ...other }) => {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...other}\n >\n <path\n d=\"M8.76785 11.8481C8.61075 11.8481 8.45366 11.7865 8.33352 11.6664C8.09325 11.4261 8.09325 11.0349 8.33352 10.7947L17.1125 2.01565C17.3528 1.77538 17.744 1.77538 17.9843 2.01565C18.2245 2.25592 18.2245 2.64712 17.9843 2.88739L9.20526 11.6664C9.08513 11.7865 8.92803 11.8481 8.77093 11.8481H8.76785Z\"\n fill={color}\n />\n <path\n d=\"M11.9869 18.625C11.2476 18.625 10.613 18.1784 10.3728 17.4884L8.41364 11.8667C8.36744 11.7312 8.26579 11.6326 8.13025 11.5833L2.5086 9.6242C1.8186 9.38393 1.37195 8.74938 1.37195 8.01009C1.37195 7.21536 1.88329 6.5038 2.64106 6.23889L16.3086 1.47974C16.9586 1.25487 17.6547 1.40581 18.126 1.87402C18.5973 2.34532 18.7482 3.04148 18.5203 3.69143L13.7581 17.3559C13.4932 18.1167 12.7816 18.625 11.9869 18.625ZM16.5119 2.05884L16.7152 2.64103L3.05074 7.40634C2.72422 7.52032 2.60717 7.80371 2.60717 8.01317C2.60717 8.13947 2.64722 8.36741 2.91829 8.46291L8.53994 10.422C9.02972 10.5914 9.4086 10.9734 9.5811 11.4632L11.5402 17.0848C11.6357 17.3559 11.8636 17.3959 11.9899 17.3959C12.1994 17.3959 12.4828 17.2789 12.5968 16.9524L17.359 3.28791C17.4607 2.99527 17.322 2.81353 17.2573 2.74884C17.1927 2.68416 17.0109 2.54554 16.7183 2.64719L16.515 2.065L16.5119 2.05884Z\"\n fill={color}\n />\n </svg>\n );\n};\n\nexport default Send;\n","import { IconProps } from \"./_types\";\n\nconst QuestionBubble = ({ size = 24, color = '#072567', ...other }: IconProps) => {\n return (\n <svg\n width={size}\n height={size * (25 / 24)}\n viewBox=\"0 0 24 25\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...other}\n >\n <path\n d=\"M0 3C0 1.35938 1.3125 0 3 0H21C22.6406 0 24 1.35938 24 3V16.5C24 18.1875 22.6406 19.5 21 19.5H14.4844L8.67188 23.8594C8.4375 24.0469 8.15625 24.0469 7.875 23.9531C7.64062 23.8125 7.5 23.5781 7.5 23.25V19.5H3C1.3125 19.5 0 18.1875 0 16.5V3ZM7.92188 5.53125V5.57812C7.73438 6.14062 8.01562 6.79688 8.625 7.03125C9.1875 7.21875 9.84375 6.89062 10.0312 6.32812L10.0781 6.28125C10.125 6.14062 10.2656 6 10.4062 6H13.125C13.5469 6 13.8281 6.32812 13.8281 6.75C13.8281 6.98438 13.7344 7.21875 13.5 7.35938L11.4375 8.53125C11.0625 8.71875 10.8281 9.09375 10.8281 9.51562V10.125C10.8281 10.7812 11.3438 11.25 11.9531 11.25C12.6094 11.25 13.0781 10.7812 13.0781 10.1719L14.625 9.28125C15.5156 8.76562 16.0781 7.78125 16.0781 6.70312C16.0781 5.10938 14.7656 3.75 13.125 3.75H10.4062C9.28125 3.75 8.29688 4.45312 7.92188 5.53125ZM13.5 14.25C13.5 13.4531 12.7969 12.75 12 12.75C11.1562 12.75 10.5 13.4531 10.5 14.25C10.5 15.0938 11.1562 15.75 12 15.75C12.7969 15.75 13.5 15.0938 13.5 14.25Z\"\n fill={color}\n />\n </svg>\n );\n};\n\nexport default QuestionBubble;\n","import { IconProps } from \"./_types\";\n\nconst SearchIcon = ({ size = 24, color = '#072567', ...other }: IconProps) => {\n return (\n <svg\n width={size}\n height={size * (28 / 24)}\n viewBox=\"0 0 24 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...other}\n >\n <path\n d=\"M6 2H13.5V8C13.5 8.84375 14.1562 9.5 15 9.5H21V23C21 24.6875 19.6406 26 18 26H6C4.3125 26 3 24.6875 3 23V5C3 3.35938 4.3125 2 6 2ZM15 2L21 8H15V2ZM15.75 16.25C15.75 13.7656 13.7344 11.75 11.25 11.75C8.76562 11.75 6.75 13.7656 6.75 16.25C6.75 18.7344 8.76562 20.75 11.25 20.75C12.0469 20.75 12.8438 20.5625 13.5 20.1406L15.3281 21.9688C15.75 22.3906 16.4531 22.3906 16.9219 21.9688C17.3438 21.5 17.3438 20.7969 16.9219 20.375L15.0938 18.5469C15.5156 17.8906 15.75 17.0938 15.75 16.25ZM11.25 18.5C10.4062 18.5 9.70312 18.0781 9.28125 17.375C8.85938 16.7188 8.85938 15.8281 9.28125 15.125C9.70312 14.4688 10.4062 14 11.25 14C12.0469 14 12.75 14.4688 13.1719 15.125C13.5938 15.8281 13.5938 16.7188 13.1719 17.375C12.75 18.0781 12.0469 18.5 11.25 18.5Z\"\n fill={color}\n />\n </svg>\n );\n};\n\nexport default SearchIcon;\n","import { IconProps } from \"./_types\";\n\nconst MoreColumn = ({ size = 6, color = '#072567', ...other }: IconProps) => {\n return (\n <svg\n width={size}\n height={size * (18 / 6)}\n viewBox=\"0 0 6 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...other}\n >\n <path\n d=\"M3 13.5625C3.78125 13.5625 4.48438 13.9922 4.875 14.6562C5.26562 15.3594 5.26562 16.1797 4.875 16.8438C4.48438 17.5469 3.78125 17.9375 3 17.9375C2.17969 17.9375 1.47656 17.5469 1.08594 16.8438C0.695312 16.1797 0.695312 15.3594 1.08594 14.6562C1.47656 13.9922 2.17969 13.5625 3 13.5625ZM3 7.3125C3.78125 7.3125 4.48438 7.74219 4.875 8.40625C5.26562 9.10938 5.26562 9.92969 4.875 10.5938C4.48438 11.2969 3.78125 11.6875 3 11.6875C2.17969 11.6875 1.47656 11.2969 1.08594 10.5938C0.695312 9.92969 0.695312 9.10938 1.08594 8.40625C1.47656 7.74219 2.17969 7.3125 3 7.3125ZM5.1875 3.25C5.1875 4.07031 4.75781 4.77344 4.09375 5.16406C3.39062 5.55469 2.57031 5.55469 1.90625 5.16406C1.20312 4.77344 0.8125 4.07031 0.8125 3.25C0.8125 2.46875 1.20312 1.76562 1.90625 1.375C2.57031 0.984375 3.39062 0.984375 4.09375 1.375C4.75781 1.76562 5.1875 2.46875 5.1875 3.25Z\"\n fill={color}\n />\n </svg>\n );\n};\n\nexport default MoreColumn;\n","import React from \"react\";\nimport { useTheme } from \"@mui/material\";\n\ninterface NumbersIconProps {\n value: number | string; // ✅ 숫자(1-9), 문자(A-E), 두 자리 이상도 가능\n size?: number; // ✅ 아이콘 크기 조정\n color?: string; // ✅ 원형(circle) 색상 (기본값: theme.palette.primary.main)\n textColor?: string; // ✅ 숫자(text) 색상 (기본값: theme.palette.text.primary)\n pathColor?: string; // ✅ 숫자(path) 색상 (기본값: theme.palette.text.primary)\n customBackgroundPath?: string;\n type?: 'default' | 'spark';\n}\n\nconst backgroundPaths: Record<string, string> = {\n spark: `M60 42.4274C60 42.4274 46.7999 45.2863 42.4263 60C42.4263 60 31.0711 52.6884 17.5737 60C17.5737 60 14.7148 46.7999 0 42.4263C0 42.4263 7.31164 31.0711 0 17.5737C0 17.5737 13.2001 14.7148 17.5737 0C17.5737 0 28.9289 7.31164 42.4263 0C42.4263 0 45.2852 13.2001 60 17.5737C60 17.5737 52.6884 28.9289 60 42.4263V42.4274Z`,\n // 추가 배경이 있다면 여기에 계속 추가\n};\n\n// ✅ 숫자 및 문자별 `path` 값을 정적으로 저장\nconst numberPaths: Record<string, string> = {\n \"1\": \"M25.7758 31.16H21.3838V16.376L16.9678 19.064V14.84L22.1038 11.864H25.7758V31.16Z\",\n \"2\": \"M21.8238 27.368H30.0558V31.16H15.1278V27.824C17.4558 26.024 20.3358 23.624 22.2558 21.944C24.4158 20.072 25.4238 19.328 25.4238 17.672C25.4238 16.256 24.3198 15.296 22.5438 15.296C20.6238 15.296 19.3998 16.424 19.2798 18.296H14.8638C15.1038 14.216 18.1758 11.504 22.4718 11.504C27.1278 11.504 29.8398 13.832 29.8398 17.528C29.8398 20.168 28.1838 21.848 25.7838 24.152C24.6558 25.232 23.4558 26.216 21.8238 27.368Z\",\n \"3\": \"M26.9678 20.936C28.8878 21.752 30.2078 23.312 30.2078 25.28C30.2078 28.952 26.6318 31.592 22.0478 31.592C17.5838 31.592 14.4398 28.856 14.0078 25.04H18.5918C18.8318 26.72 20.3438 27.824 22.1918 27.824C24.3038 27.824 25.7678 26.864 25.7678 25.304C25.7678 23.792 24.4238 23.048 21.7358 23.048H20.0798L20.0558 19.376H21.7358C23.7278 19.376 25.0478 18.608 25.0478 17.336C25.0478 16.064 23.8478 15.272 22.0718 15.272C20.0798 15.272 18.8318 16.328 18.6158 17.864H14.3438C14.8478 14.336 17.5838 11.504 22.1678 11.504C26.2478 11.504 29.4638 13.736 29.4638 16.952C29.4638 18.632 28.6478 20 26.9678 20.936Z\",\n \"4\": \"M27.304 24.248H29.56V27.992H27.304V31.16H22.912V27.992H13.504L13.48 25.112L23.8 11.624H27.304V24.248ZM22.912 18.776L18.904 24.248H22.912V18.776Z\",\n \"5\": \"M23.6721 18.344C27.7041 18.344 30.5361 20.768 30.5361 24.416C30.5361 28.616 27.5601 31.496 23.0961 31.496C18.8961 31.496 16.0641 29.312 15.2241 25.616H19.8801C20.1681 26.792 21.4401 27.704 23.0961 27.704C24.8721 27.704 26.1921 26.504 26.1921 24.656C26.1921 22.976 24.8961 21.8 22.8801 21.8C21.7521 21.8 20.5041 22.304 19.6161 23.288L15.8001 22.496L16.6641 11.864H29.1921V15.656H20.5041L20.2401 19.16C21.2721 18.632 22.4481 18.344 23.6721 18.344Z\",\n \"6\": \"M22.1678 31.496C17.3198 31.496 14.0078 28.088 14.0078 21.464C14.0078 15.032 17.4398 11.504 22.4318 11.504C26.4638 11.504 29.2718 13.904 29.8238 17.048H25.5998C25.3358 15.896 24.0158 15.08 22.5758 15.08C20.2478 15.08 18.6878 16.664 18.3518 19.88C19.4318 18.968 20.7998 18.368 22.4318 18.368C27.1118 18.368 29.8478 20.816 29.8478 24.68C29.8478 28.352 26.7278 31.496 22.1678 31.496ZM22.2158 27.872C24.3278 27.872 25.7198 26.696 25.7198 24.848C25.7198 23.048 24.3758 21.848 22.3118 21.848C19.8398 21.848 18.6878 23.24 18.6878 24.848C18.8078 26.384 20.0798 27.872 22.2158 27.872Z\",\n \"7\": \"M22.5359 32.16H17.9039L25.5839 16.656H15.6719V12.864H30.4799V15.576L22.5359 32.16Z\",\n \"8\": \"M22.9278 31.688C18.1278 31.688 15.0078 29.216 15.0078 25.448C15.0078 23.552 15.8958 21.992 17.6718 20.96C16.3038 19.88 15.6558 18.488 15.6318 17C15.5838 13.616 18.3918 11.504 22.7838 11.504C27.1518 11.504 29.9838 13.52 29.9838 17C29.9838 18.392 29.3838 19.76 28.0638 20.816C29.9358 21.872 30.8718 23.48 30.8718 25.448C30.8718 29.216 27.7278 31.688 22.9278 31.688ZM22.7838 19.448C24.5838 19.448 25.7598 18.68 25.7598 17.408C25.7598 16.064 24.5838 15.32 22.7838 15.32C20.9838 15.32 19.8078 16.064 19.8078 17.408C19.8078 18.68 20.9838 19.448 22.7838 19.448ZM22.9518 27.848C24.9438 27.848 26.4318 26.72 26.4318 25.208C26.4318 23.744 24.9438 22.88 22.9518 22.88C20.9598 22.88 19.4718 23.744 19.4718 25.208C19.4718 26.72 20.9598 27.848 22.9518 27.848Z\",\n \"9\": \"M22.6878 12.504C27.5358 12.504 30.8478 15.912 30.8478 22.536C30.8478 28.968 27.4158 32.496 22.4238 32.496C18.3918 32.496 15.5838 30.096 15.0318 26.952H19.2558C19.5198 28.104 20.8398 28.92 22.2798 28.92C24.6078 28.92 26.1678 27.336 26.5038 24.12C25.4238 25.032 24.0558 25.632 22.4238 25.632C17.7438 25.632 15.0078 23.184 15.0078 19.32C15.0078 15.648 18.1278 12.504 22.6878 12.504ZM22.6398 16.128C20.5278 16.128 19.1358 17.304 19.1358 19.152C19.1358 20.952 20.4798 22.152 22.5438 22.152C25.0158 22.152 26.1678 20.76 26.1678 19.152C26.0478 17.616 24.7758 16.128 22.6398 16.128Z\",\n \"A\": \"M32 31.9756L27.3799 31.9758L26.1776 28.4636L18.8937 28.4639L17.6446 31.9763L13.0008 31.9765L20.2131 13.0005L25.0218 13.0003L32 31.9756ZM21.9106 20.0014L20.19 24.8338L24.9281 24.8336L23.2542 20.0013C22.9949 19.2706 22.877 18.6577 22.5941 17.9506C22.3348 18.6578 22.1699 19.2471 21.9106 20.0014Z\",\n \"B\": \"M27.4281 21.5321C29.3345 22.087 30.9997 23.7761 30.9998 25.948C30.9999 29.3023 28.5145 31.4259 23.5434 31.4262L15.0009 31.4265L15 12.0007L23.5425 12.0003C28.0069 12.0001 30.2994 14.0753 30.2996 17.1883C30.2997 19.3843 29.2621 20.7598 27.4281 21.5321ZM22.867 15.7166L19.3921 15.7168L19.3923 20.0845L22.8672 20.0844C24.8701 20.0843 25.8595 19.2397 25.8594 17.6711C25.8594 16.4645 24.8458 15.7165 22.867 15.7166ZM19.3926 27.686L23.4467 27.6858C25.5461 27.6857 26.5596 26.8893 26.5596 25.5862C26.5595 24.1142 25.5701 23.3903 23.4465 23.3904L19.3924 23.3906L19.3926 27.686Z\",\n \"C\": \"M23.5897 31.0006C18.2359 31.0008 15.0007 27.3331 15.0004 21.4781C15.0002 15.7826 18.349 12.0234 23.5888 12.0004C28.2591 12.0002 31.4943 14.9389 31.9729 18.903L27.7355 18.9031C27.4392 16.7616 25.7077 15.6226 23.5662 15.6227C20.7868 15.6228 19.1922 17.9239 19.1923 21.4323C19.1925 25.0319 20.7645 27.3556 23.6806 27.3555C25.9133 27.3554 27.4624 26.1251 27.7129 24.2114L31.9732 24.2112C31.6316 28.2436 28.1916 31.0004 23.5897 31.0006Z\",\n \"D\": \"M21.3962 12.0004C27.7451 12.0002 31.3564 15.3043 31.3567 21.1812C31.3569 27.365 27.6516 30.9999 21.397 31.0002L15.0008 31.0004L15 12.0007L21.3962 12.0004ZM19.2963 27.2711L21.3968 27.271C25.126 27.2709 27.0141 25.1466 27.0139 21.1814C27.0137 17.5939 25.1491 15.7058 21.3963 15.706L19.2957 15.7061L19.2963 27.2711Z\",\n \"E\": \"M20.3484 23.2524L20.3486 27.2897L29.9999 27.2892L30.0001 31.231L16.0009 31.2316L16 12.0006L29.7364 12L29.7366 15.7745L20.348 15.775L20.3482 19.4778L29.0201 19.4774L29.0202 23.252L20.3484 23.2524Z\",\n};\n\nconst NumbersIcon = ({\n value,\n size = 45,\n type = 'default',\n color,\n textColor,\n pathColor = \"#fff\",\n customBackgroundPath,\n}: NumbersIconProps) => {\n const theme = useTheme();\n const path = numberPaths[value.toString()];\n const fillColor = color || theme.palette.primary.main;\n const textFill = textColor || theme.palette.text.primary;\n const resolvedBackgroundPath =\n customBackgroundPath || (type !== \"default\" ? backgroundPaths[type] : undefined);\n\n return (\n <svg width={size} height={size} viewBox=\"0 0 45 45\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n {/* ✅ 원형 유지 */}\n {\n resolvedBackgroundPath ? (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 60 60\" fill=\"none\">\n <path d={resolvedBackgroundPath} fill={fillColor} />\n </svg>\n ) : (\n <circle cx=\"22.5\" cy=\"22.5\" r=\"22.5\" fill={color || theme.palette.primary.main} />\n )\n }\n {/* ✅ path 값이 있으면 `path` 렌더링, 없으면 `text` 렌더링 */}\n {path ? (\n <path d={path} fill={pathColor || theme.palette.text.primary} />\n ) : (\n <text\n x=\"50%\"\n y=\"50%\"\n dominantBaseline=\"middle\"\n textAnchor=\"middle\"\n fontSize={size * 0.5} // ✅ 크기 비율 유지\n fill={textFill}\n fontFamily=\"Arial, sans-serif\"\n fontWeight=\"bold\"\n >\n {value}\n </text>\n )}\n </svg>\n );\n};\n\nexport default NumbersIcon;\n","import { IconProps } from \"./_types\";\n\nconst RecordPause = ({ size = 29, color = \"white\", ...other }: IconProps) => {\n return (\n <svg\n width={size}\n height={size * (28 / 29)} // 원본 비율 유지\n viewBox=\"0 0 29 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...other}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M20 4.83333H9C6.97496 4.83333 5.33333 6.47496 5.33333 8.5V19.5C5.33333 21.525 6.97496 23.1667 9 23.1667H20C22.025 23.1667 23.6667 21.525 23.6667 19.5V8.5C23.6667 6.47496 22.025 4.83333 20 4.83333ZM9 3C5.96243 3 3.5 5.46243 3.5 8.5V19.5C3.5 22.5376 5.96243 25 9 25H20C23.0376 25 25.5 22.5376 25.5 19.5V8.5C25.5 5.46243 23.0376 3 20 3H9Z\"\n fill={color}\n />\n </svg>\n );\n};\n\nexport default RecordPause;\n","import { IconProps } from \"./_types\";\n\nconst Recording = ({ size = 21, color = \"#FFB1AF\", squareColor = \"#FF5D58\", ...other }: IconProps & { squareColor?: string }) => {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 21 21\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...other}\n >\n <path\n d=\"M10.5 1.75C8.17936 1.75 5.95376 2.67187 4.31282 4.31282C2.67187 5.95376 1.75 8.17936 1.75 10.5C1.75 12.8206 2.67187 15.0462 4.31282 16.6872C5.95376 18.3281 8.17936 19.25 10.5 19.25C12.8206 19.25 15.0462 18.3281 16.6872 16.6872C18.3281 15.0462 19.25 12.8206 19.25 10.5C19.25 8.17936 18.3281 5.95376 16.6872 4.31282C15.0462 2.67187 12.8206 1.75 10.5 1.75ZM10.5 18C6.365 18 3 14.635 3 10.5C3 6.365 6.365 3 10.5 3C14.635 3 18 6.365 18 10.5C18 14.635 14.635 18 10.5 18Z\"\n fill={color}\n />\n <rect x=\"6.3335\" y=\"6.33337\" width=\"8.33333\" height=\"8.33333\" rx=\"2\" fill={squareColor} />\n </svg>\n );\n};\n\nexport default Recording;\n","import { IconProps } from \"./_types\";\n\nconst ReadyRecord = ({ \n size = 21, \n outerColor = \"#FFF1F1\", \n innerColor = \"white\", \n ...other \n}: IconProps & { outerColor?: string; innerColor?: string }) => {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 21 21\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...other}\n >\n <path\n d=\"M10.5 1.75C8.17936 1.75 5.95376 2.67187 4.31282 4.31282C2.67187 5.95376 1.75 8.17936 1.75 10.5C1.75 12.8206 2.67187 15.0462 4.31282 16.6872C5.95376 18.3281 8.17936 19.25 10.5 19.25C12.8206 19.25 15.0462 18.3281 16.6872 16.6872C18.3281 15.0462 19.25 12.8206 19.25 10.5C19.25 8.17936 18.3281 5.95376 16.6872 4.31282C15.0462 2.67187 12.8206 1.75 10.5 1.75ZM10.5 18C6.365 18 3 14.635 3 10.5C3 6.365 6.365 3 10.5 3C14.635 3 18 6.365 18 10.5C18 14.635 14.635 18 10.5 18Z\"\n fill={outerColor}\n />\n <path\n d=\"M10.5 15.5C13.2614 15.5 15.5 13.2614 15.5 10.5C15.5 7.73858 13.2614 5.5 10.5 5.5C7.73858 5.5 5.5 7.73858 5.5 10.5C5.5 13.2614 7.73858 15.5 10.5 15.5Z\"\n fill={innerColor}\n />\n </svg>\n );\n};\n\nexport default ReadyRecord;\n","import { IconProps } from \"./_types\";\n\nconst RecordPlay = ({ size = 28, color = \"white\", ...other }: IconProps) => {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 28 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...other}\n >\n <path\n d=\"M23.1161 16.0649C23.5038 15.8516 23.8228 15.5325 24.0361 15.1448C24.6571 14.0157 24.2452 12.5969 23.1161 11.9759L6.95781 3.08882C6.61331 2.89934 6.22651 2.79999 5.83333 2.79999C4.54467 2.79999 3.5 3.84466 3.5 5.13332V22.9074C3.5 23.3006 3.59935 23.6874 3.78883 24.0319C4.40986 25.161 5.82866 25.5729 6.95781 24.9519L23.1161 16.0649ZM5.54167 4.63165L22.5963 14.0133L5.54167 23.3942V4.63165Z\"\n fill={color}\n />\n </svg>\n );\n};\n\nexport default RecordPlay;\n","const SendArrow = ({ color = 'currentColor' }: { color?: string }) => {\n return (\n <svg\n width=\"22\"\n height=\"23\"\n viewBox=\"0 0 22 23\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g>\n <path\n d=\"M1.69775 11.3023L11.0001 2L20.3024 11.3023\"\n stroke={color}\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M11 22L11 3.39535\"\n stroke={color}\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n </g>\n </svg>\n );\n};\n\nexport default SendArrow;\n","// This is using token colors of blue-purple theme of Elice UI Content\n// https://www.figma.com/design/dtsncp7RSV7wMqPf3jiCvf/Design-System?node-id=51-10973&node-type=SECTION&t=gCjy5t3c42ojVpyW-0\n// TODO: apply theme;\nexport const primaryColor = '#5D6BB3';\nexport const secondaryColor = '#0A379B';\nexport const blackColor = '#031234';\nexport const main50Color = '#F4F6FF';\nexport const main100Color = '#DFE1F0';\nexport const main200Color = '#BEC4E1';\nexport const main300Color = '#9EA6D1';\nexport const main400Color = '#7D89C2';\nexport const main950Color = '#072567';\nexport const gray50Color = '#FAFAFD';\nexport const gray100Color = '#F3F4FA';\nexport const gray200Color = '#F1F1F6';\nexport const gray300Color = '#D8D8E2';\nexport const gray400Color = '#9B9BA9';\nexport const textPrimaryColor = '#1E1E1E';\nexport const textSecondaryColor = '#363643';\nexport const textTeriaryColor = '#525265';\nexport const textQuaternaryColor = '#9FA0B1';\nexport const quaternaryColor = '#9FA0B1';\nexport const point3Color = '#8F68F6';\nexport const KeyElementaryBg = '#9BCAFF';\nexport const KeyMiddleBg = '#B2B2B2';\nexport const KeyHighBg = '#0A379B';\n","import React, { useState } from 'react';\nimport styled from '@emotion/styled';\nimport { Stack, Tooltip, Typography, useTheme, ClickAwayListener } from '@mui/material';\n\nimport { Close } from '../../icons';\nimport { main300Color, main400Color } from '../tokenColorTemporary';\n\nimport type { TooltipProps } from '@mui/material';\nimport type { ReactElement, ReactNode } from 'react';\n\nexport interface EliceTooltipProps extends TooltipProps {\n title: string | ReactNode;\n isControl?: boolean;\n children: ReactElement<any, any>;\n initOpen?: boolean;\n triggerAction?: 'default' | 'click';\n backgroundColor?: string;\n closeColor?: string;\n fontColor?: string;\n closeOnScroll?: boolean;\n}\n\nconst StyledScrollBar = styled(Typography)`\n ::-webkit-scrollbar {\n width: 0.5rem;\n }\n\n /* Track */\n ::-webkit-scrollbar-track {\n display: none;\n }\n\n /* Handle */\n ::-webkit-scrollbar-thumb {\n background: ${main300Color};\n border-radius: 0.5rem;\n }\n\n /* Handle on hover */\n ::-webkit-scrollbar-thumb:hover {\n background: ${main400Color};\n }\n`;\n\nconst EliceTooltip = ({\n title,\n initOpen = false,\n isControl,\n placement = 'left',\n triggerAction = 'default',\n children,\n backgroundColor,\n closeColor,\n fontColor,\n closeOnScroll = false,\n ...rest\n}: EliceTooltipProps) => {\n const theme = useTheme();\n const slotProps = {\n tooltip: {\n style: {\n backgroundColor: backgroundColor || theme.palette.primary.main,\n color: fontColor || '#fff',\n borderRadius: '1rem',\n padding: '0.75rem',\n maxWidth: '15.7rem',\n maxHeight: '16rem',\n },\n },\n arrow: {\n style: {\n color: backgroundColor || theme.palette.primary.main,\n fontSize: '0.75rem',\n },\n },\n };\n\n const [open, setOpen] = useState(false);\n const isFirstRender = React.useRef(true);\n React.useEffect(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false;\n setOpen(initOpen);\n return;\n }\n }, [initOpen]);\n\n React.useEffect(() => {\n const handleScroll = () => {\n setOpen(false);\n };\n\n if (open && closeOnScroll) {\n window.addEventListener('scroll', handleScroll, true);\n }\n\n return () => {\n window.removeEventListener('scroll', handleScroll, true);\n };\n }, [open, closeOnScroll]);\n\n return isControl ? (\n <ClickAwayListener onClickAway={() => setOpen(false)}>\n <Tooltip\n arrow\n title={\n <Stack direction=\"row\" gap=\"0.625rem\">\n <Close\n style={{\n opacity: 0.7,\n flexShrink: 0,\n cursor: 'pointer',\n }}\n color={closeColor || 'currentColor'}\n onClick={() => setOpen(false)}\n />\n <StyledScrollBar\n style={{\n maxHeight: '15rem',\n overflowY: 'auto',\n }}\n >\n <Typography variant=\"subtitle2\">{title}</Typography>\n </StyledScrollBar>\n </Stack>\n }\n placement={placement}\n open={open}\n onOpen={() => {\n if (triggerAction === 'default') {\n setOpen(true);\n }\n }}\n onClick={() => {\n if (triggerAction === 'click') {\n setOpen(true);\n }\n }}\n slotProps={slotProps}\n style={{\n cursor: triggerAction === 'click' ? 'pointer' : 'auto',\n }}\n {...rest}\n >\n <Stack position=\"relative\" width=\"fit-content\" height=\"fit-content\" whiteSpace=\"pre-wrap\">\n {children}\n </Stack>\n </Tooltip>\n </ClickAwayListener>\n ) : (\n <ClickAwayListener onClickAway={() => setOpen(false)}>\n <Tooltip\n arrow\n title={\n <StyledScrollBar\n style={{\n fontWeight: 700,\n fontSize: '1.375rem',\n maxHeight: '15rem',\n overflowY: 'auto',\n }}\n >\n <Typography variant=\"subtitle2\">{title}</Typography>\n </StyledScrollBar>\n }\n placement={placement}\n slotProps={slotProps}\n {...rest}\n >\n <Stack position=\"relative\" width=\"fit-content\" height=\"fit-content\">\n {children}\n </Stack>\n </Tooltip>\n </ClickAwayListener>\n );\n};\nexport default EliceTooltip;\n","export default \"data:image/png;base64,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\"","import React from 'react';\nimport { Stack } from '@mui/material';\n\nimport { EliceTooltip } from '../tooltip';\nimport type { EliceTooltipProps } from '../tooltip';\n\nimport AIAvatar from '../../assets/AIAvatar.png';\n\nexport type EliceAIFeedbackProps = Omit<EliceTooltipProps, 'children'> & {\n CustomAvatar?: React.ReactNode;\n};\n\nconst EliceAIFeedback = ({\n title,\n placement = 'left',\n CustomAvatar,\n ...rest\n}: EliceAIFeedbackProps) => {\n return (\n <EliceTooltip\n title={title}\n placement={placement}\n {...rest}\n isControl\n triggerAction=\"click\"\n >\n <Stack\n position=\"relative\"\n width=\"fit-content\"\n height=\"fit-content\"\n maxWidth=\"100%\"\n maxHeight=\"100%\"\n >\n {CustomAvatar ?? <img src={AIAvatar} alt=\"AI Avatar\" />}\n </Stack>\n </EliceTooltip>\n );\n};\n\nexport default EliceAIFeedback;\n","import React from 'react';\nimport { Stack, Typography, useTheme } from '@mui/material';\n\nimport type { StackProps } from '@mui/material';\n\nexport interface BadgeProps extends StackProps {\n color: 'primary' | 'secondary' | 'black';\n label: string;\n}\n\nconst EliceBadge = ({ label, color, ...rest }: BadgeProps) => {\n const theme = useTheme();\n return (\n <Stack\n sx={{\n borderRadius: '0.6875rem',\n padding: '0.375rem 0.875rem',\n color: '#fff',\n width: 'fit-content',\n backgroundColor:\n color === 'primary'\n ? theme.palette.primary.main\n : color === 'secondary'\n ? theme.palette.secondary.main\n : theme.palette.primary.dark,\n }}\n {...rest}\n >\n <Typography\n variant=\"h3\"\n style={{\n whiteSpace: 'nowrap',\n }}\n >\n {label}\n </Typography>\n </Stack>\n );\n};\nexport default EliceBadge;\n","import type { Theme } from '@mui/material';\n\n/**\n * 부드러운 색상 및 transform 변화를 위한 transition\n * 버튼, 카드 등 인터랙티브 요소의 hover/focus 상태 변화에 사용\n * \n * @param theme - MUI Theme 객체\n * @returns CSS transition 문자열\n * \n * @example\n * ```tsx\n * const theme = useTheme();\n * const transition = smoothColorTransform(theme);\n * \n * <Box sx={{ transition }}>\n * Content\n * </Box>\n * ```\n */\nexport const smoothColorTransform = (theme: Theme): string => {\n return theme.transitions.create(\n ['background-color', 'border-color', 'transform', 'box-shadow', 'outline', 'color'],\n {\n duration: theme.transitions.duration.shorter, // 200ms\n easing: theme.transitions.easing.easeInOut,\n }\n );\n};\n\n/**\n * 빠른 상태 변화를 위한 transition\n * 토글, 스위치 등 즉각적인 피드백이 필요한 요소에 사용\n * \n * @param theme - MUI Theme 객체\n * @returns CSS transition 문자열\n */\nexport const quickStateChange = (theme: Theme): string => {\n return theme.transitions.create(\n ['background-color', 'color', 'opacity'],\n {\n duration: theme.transitions.duration.shortest, // 150ms\n easing: theme.transitions.easing.sharp,\n }\n );\n};\n\n/**\n * 표준적인 상호작용을 위한 transition\n * 일반적인 UI 요소의 상태 변화에 사용\n * \n * @param theme - MUI Theme 객체\n * @returns CSS transition 문자열\n */\nexport const standardInteraction = (theme: Theme): string => {\n return theme.transitions.create(\n ['background-color', 'color', 'border-color'],\n {\n duration: theme.transitions.duration.standard, // 300ms\n easing: theme.transitions.easing.easeInOut,\n }\n );\n};\n\n/**\n * 호버 시 살짝 올라가는 효과를 위한 transition\n * 카드, 버튼 등 호버 시 transform 효과가 필요한 요소에 사용\n * \n * @param theme - MUI Theme 객체\n * @param options - 옵션 객체\n * @param options.defaultLift - 기본 lift 값 (기본값: '-1px', Button과 동일)\n * @returns CSS transition 문자열\n * \n * @example\n * ```tsx\n * const theme = useTheme();\n * const transition = hoverLift(theme); // 기본값: -1px\n * const transitionLarge = hoverLift(theme, { defaultLift: '-8px' }); // 커스텀 값\n * \n * <Box\n * sx={{\n * transition,\n * '&:hover': {\n * transform: `translateY(${defaultLift})`, // transition 함수에서 반환된 값 사용\n * },\n * }}\n * >\n * ```\n */\nexport const hoverLift = (theme: Theme, options?: { defaultLift?: string }): string => {\n return theme.transitions.create(\n ['transform', 'box-shadow'],\n {\n duration: theme.transitions.duration.shorter, // 200ms\n easing: theme.transitions.easing.easeOut,\n }\n );\n};\n\n/**\n * hoverLift transition과 함께 사용할 기본 lift 값\n * Button 컴포넌트에서 사용하는 값과 동일\n */\nexport const HOVER_LIFT_DEFAULT = '-1px';\n\n/**\n * 복잡한 애니메이션을 위한 transition\n * 모달, 드로어 등 복잡한 상태 변화가 있는 요소에 사용\n * \n * @param theme - MUI Theme 객체\n * @returns CSS transition 문자열\n */\nexport const complexAnimation = (theme: Theme): string => {\n return theme.transitions.create(\n ['background-color', 'transform', 'opacity', 'box-shadow', 'border-color'],\n {\n duration: theme.transitions.duration.complex, // 375ms\n easing: theme.transitions.easing.easeInOut,\n }\n );\n};\n\n","import React, { forwardRef } from 'react';\nimport { Button, type ButtonProps, Typography, useTheme, alpha, darken } from '@mui/material';\nimport { smoothColorTransform } from '../../theme/transitions';\n\nexport interface EliceButtonProps extends ButtonProps {\n children?: React.ReactNode;\n variant?: 'contained' | 'outlined' | 'text';\n onClick?: () => void;\n customColor?: string;\n textColor?: string;\n}\n\nconst EliceButton = forwardRef<HTMLButtonElement, EliceButtonProps>(\n ({ children, variant = 'contained', color = 'primary', customColor, textColor: customTextColor, sx, ...rest }, ref) => {\n const theme = useTheme();\n\n // 커스텀 색상이 있으면 해당 색상 사용, 없으면 팔레트 색상 사용\n let colorMain: string;\n let colorHover: string;\n let colorDark: string;\n let textColor: string;\n\n if (customColor) {\n colorMain = customColor;\n // 호버 시 매우 미세한 색상 변화만 적용 (alpha 사용)\n colorHover = alpha(customColor, 0.9);\n colorDark = darken(customColor, 0.15);\n textColor = customTextColor || theme.palette.getContrastText(customColor);\n } else {\n const paletteColor = theme.palette[color as keyof typeof theme.palette] as { main: string; dark: string } | undefined;\n colorMain = paletteColor?.main || theme.palette.primary.main;\n // 팔레트 색상의 경우 hover용 색상을 alpha로 약간만 어둡게\n colorHover = alpha(colorMain, 0.9);\n colorDark = paletteColor?.dark || theme.palette.primary.dark;\n textColor = customTextColor || theme.palette.getContrastText(colorMain);\n }\n\n // sx prop에서 hover, focus, active, disabled 스타일 추출 (deep merge를 위해)\n const sxObj = typeof sx === 'function' ? sx(theme) : (Array.isArray(sx) ? sx.reduce((acc, item) => ({ ...acc, ...(typeof item === 'function' ? item(theme) : item) }), {}) : sx) || {};\n const sxHover = sxObj['&:hover'];\n const sxFocus = sxObj['&:focus'];\n const sxActive = sxObj['&:active'];\n const sxDisabled = sxObj['&:disabled'];\n\n // sx에서 hover, focus, active, disabled 제외한 나머지\n const { '&:hover': _, '&:focus': __, '&:active': ___, '&:disabled': ____, ...restSx } = sxObj;\n\n return (\n <Button\n ref={ref}\n variant={variant}\n color={customColor ? undefined : color}\n sx={[\n {\n borderRadius: '0.75rem',\n fontWeight: 600,\n transition: smoothColorTransform(theme),\n // Contained variant 스타일\n ...(variant === 'contained' && {\n backgroundColor: colorMain,\n color: textColor,\n border: `1px solid ${colorMain}`,\n\n '&:hover': {\n backgroundColor: colorHover,\n borderColor: colorHover,\n transform: 'translateY(-1px)',\n boxShadow: `0 4px 12px ${alpha(colorMain, 0.3)}`,\n // sx에서 전달된 hover 스타일 병합\n ...sxHover,\n },\n\n '&:focus': {\n backgroundColor: `${alpha(colorDark, 0.4)}`,\n borderColor: `${alpha(colorDark, 0.25)}`,\n outlineOffset: '2px',\n // sx에서 전달된 focus 스타일 병합\n ...sxFocus,\n },\n\n '&:active': {\n backgroundColor: colorDark,\n transform: 'translateY(0)',\n // sx에서 전달된 active 스타일 병합\n ...sxActive,\n },\n }),\n\n // Outlined variant 스타일\n ...(variant === 'outlined' && {\n backgroundColor: 'transparent',\n color: colorMain,\n border: `1px solid ${colorMain}`,\n\n '&:hover': {\n backgroundColor: alpha(colorMain, 0.08),\n borderColor: colorHover,\n transform: 'translateY(-1px)',\n boxShadow: `0 4px 8px ${alpha(colorMain, 0.12)}`,\n // sx에서 전달된 hover 스타일 병합\n ...sxHover,\n },\n\n '&:focus': {\n backgroundColor: alpha(colorMain, 0.2),\n borderColor: `${alpha(colorMain, 0.25)}`,\n outlineOffset: '2px',\n // sx에서 전달된 focus 스타일 병합\n ...sxFocus,\n },\n\n '&:active': {\n backgroundColor: alpha(colorMain, 0.3),\n transform: 'translateY(0)',\n // sx에서 전달된 active 스타일 병합\n ...sxActive,\n },\n }),\n\n // Text variant 스타일\n ...(variant === 'text' && {\n backgroundColor: 'transparent',\n color: colorMain,\n border: 'none',\n\n '&:hover': {\n backgroundColor: alpha(colorMain, 0.08),\n transform: 'translateY(-1px)',\n // sx에서 전달된 hover 스타일 병합\n ...sxHover,\n },\n\n '&:focus': {\n backgroundColor: alpha(colorMain, 0.2),\n outlineOffset: '2px',\n // sx에서 전달된 focus 스타일 병합\n ...sxFocus,\n },\n\n '&:active': {\n backgroundColor: alpha(colorMain, 0.3),\n transform: 'translateY(0)',\n // sx에서 전달된 active 스타일 병합\n ...sxActive,\n },\n }),\n\n // Disabled 상태 - variant별로 다르게 처리\n '&:disabled': {\n transform: 'none',\n boxShadow: 'none',\n ...(variant === 'contained' && {\n backgroundColor: theme.palette.action.disabledBackground,\n color: theme.palette.action.disabled,\n border: 'none',\n }),\n ...(variant === 'outlined' && {\n backgroundColor: 'transparent',\n color: theme.palette.action.disabled,\n border: `1px solid ${theme.palette.action.disabledBackground}`,\n }),\n ...(variant === 'text' && {\n backgroundColor: 'transparent',\n color: theme.palette.action.disabled,\n border: 'none',\n }),\n // sx에서 전달된 disabled 스타일 병합\n ...sxDisabled,\n },\n\n // sx의 나머지 스타일 적용\n ...restSx,\n },\n // sx가 함수나 배열인 경우를 대비해 원본도 전달 (MUI가 자동으로 처리)\n ...(typeof sx === 'function' || Array.isArray(sx) ? [sx] : []),\n ]}\n {...rest}\n >\n <Typography variant=\"buttoninput\">{children}</Typography>\n </Button>\n );\n }\n);\n\nexport default EliceButton;\n","import type { AIDTColor } from './_typing';\n\nexport const mint: AIDTColor = Object.freeze({\n 50: '#e0f7fa',\n 100: '#DAF0F2',\n 200: '#B5E0E5',\n 300: '#91D1D9', // science elementary key\n 400: '#6CC1CC',\n 500: '#47B2BF', // science middle key\n 600: '#359AA8',\n 700: '#248192',\n 800: '#12697B',\n 900: '#005064', // science high bg\n 950: '#003543',\n 0: '#001B21', // science high key\n} as const);\n","import type { AIDTColor } from './_typing';\n\nexport const bluepurple: AIDTColor = Object.freeze({\n 50: '#f4f6ff',\n 100: '#dfe1f0',\n 200: '#bec4e1',\n 300: '#9ea6d1', // korean elementary key\n 400: '#7d89c2',\n 500: '#5d6bb3', //korean middle key\n 600: '#485ead',\n 700: '#3451A7',\n 800: '#1F44A1',\n 900: '#0A379B',\n 950: '#072567',\n 0: '#031234', // korean high key\n} as const);\n","import type { AIDTColor } from './_typing';\n\nexport const gray: AIDTColor = Object.freeze({\n 50: '#FAFAFD',\n 100: '#F3F4FA',\n 200: '#F1F1F6',\n 300: '#D8D8E2',\n 400: '#9B9BA9',\n 500: '#77778A',\n 600: '#616177',\n 700: '#48485C',\n 800: '#2E2E3C',\n 900: '#1E1E1E',\n 950: '#B2B2B2', // cs, korean middle bg color\n 0: '#',\n} as const);\n","import type { AIDTColor } from './_typing';\n\nexport const green: AIDTColor = Object.freeze({\n 50: '#e8f5e9',\n 100: '#E0F0DE',\n 200: '#C0E0BD',\n 300: '#A1D19C', // english elementary key\n 400: '#81C17B',\n 500: '#62B25A', // english middle key\n 600: '#539D4C',\n 700: '#45893E',\n 800: '#367431',\n 900: '#285F23', //english high bg\n 950: '#1B3F17',\n 0: '#0D200C', // english high key\n} as const);\n","import type { AIDTColor } from './_typing';\n\nexport const orange: AIDTColor = Object.freeze({\n 50: '#fff3e0',\n 100: '#FAE5DC',\n 200: '#F5CAB9',\n 300: '#EFB096', // social elementary key\n 400: '#EA9573',\n 500: '#E57B50', // social middle key\n 600: '#D06C47',\n 700: '#BA5D3D',\n 800: '#A54D34',\n 900: '#5F291D', //social high bg\n 950: '#1B3F17',\n 0: '#30150E', // social high key\n} as const);\n","import type { AIDTColor } from './_typing';\n\nexport const pink: AIDTColor = Object.freeze({\n 50: '#fce4ec',\n 100: '#F7E1ED',\n 200: '#EEC4DB',\n 300: '#E6A6C8', // math elementary key\n 400: '#DD89B6',\n 500: '#D56BA4', // math middle key\n 600: '#BF5392',\n 700: '#A93B7F',\n 800: '#93226C',\n 900: '#7D0A5A', // math high bg\n 950: '#53073C',\n 0: '#2A031E', // math high key\n} as const);\n","import type { AIDTColor } from './_typing';\n\nexport const purple: AIDTColor = Object.freeze({\n 50: '#F1EEFA',\n 100: '#E2DDEF',\n 200: '#C5BBDF',\n 300: '#A899CF', // cs elementary key\n 400: '#8B77BF',\n 500: '#6E55AF', //cs middle key\n 600: '#6147AA',\n 700: '#553AA5',\n 800: '#482CA0',\n 900: '#3C1E9B', //cs high bg\n 950: '#281467',\n 0: '#140A34', // cs high key\n} as const);\n","import type { AIDTColor } from './_typing';\n\nexport const yellow: AIDTColor = Object.freeze({\n 50: '#',\n 100: '#',\n 200: '#',\n 300: '#',\n 400: '#',\n 500: '#FBEB97',\n 600: '#',\n 700: '#',\n 800: '#',\n 900: '#',\n 950: '#',\n 0: '#',\n} as const);\n","import type { AIDTColor } from './_typing';\n\nexport const bluesky: AIDTColor = Object.freeze({\n 50: '#',\n 100: '#',\n 200: '#',\n 300: '#',\n 400: '#',\n 500: '#9BCAFF',\n 600: '#',\n 700: '#',\n 800: '#',\n 900: '#',\n 950: '#',\n 0: '#',\n} as const);\n","import type { CommonColors } from '@mui/material';\n\nexport const common: CommonColors = Object.freeze({\n white: '#ffffff',\n black: '#000000',\n\n text: {\n primary: '#1E1E1E',\n secondary: '#363643',\n teritary: '#525265',\n inverse: '#ffffff',\n quaternary: '#9FA0B1',\n },\n\n point: {\n point1: '#BB7CF5',\n point2: '#A670FF',\n point3: '#8F68F6',\n point4: '#7233F9',\n },\n\n red: {\n 50: '#FFFBFB',\n 100: '#FFF1F1',\n 200: '#FBE0E0',\n 600: '#FFB1AF',\n 900: '#FF5D58',\n },\n\n green: {\n 50: '#F9FFFA',\n 100: '#EFFFF3',\n 200: '#B9E0C1',\n 600: '#7fc89a',\n 900: '#00B100',\n opacity: {\n 15: 'rgba(0, 177, 0, 0.15)',\n },\n },\n\n yellow: {\n 200: '#FFFB98',\n opacity: {\n '200-30': 'rgba(255, 251, 152, 0.3)',\n '900-30': 'rgba(248, 201, 36, 0.3)',\n '900-60': 'rgba(248, 201, 36, 0.6)',\n },\n 900: '#f8c924',\n },\n} as const);\n","export const breakpoints = Object.freeze({\n xs: 390, // 모바일\n sm: 512, // 소형 태블릿\n md: 768, // 태블릿\n lg: 1024, // 노트북\n xl: 1280, // 데스크톱\n tablet: 480,\n notebook: 640,\n desktop: 800,\n height: 500,\n});\n","import { useTheme, useMediaQuery } from \"@mui/material\";\nimport { breakpoints as BREAKPOINTS } from \"../tokens\";\n\nconst useAIDTMediaQuery = () => {\n const theme = useTheme();\n\n const isMobile = useMediaQuery(theme.breakpoints.down(BREAKPOINTS.xs)); // 390px 이하\n const isMiniTablet = useMediaQuery(theme.breakpoints.down(BREAKPOINTS.sm)); // 512px 이하\n const isTablet = useMediaQuery(theme.breakpoints.down(BREAKPOINTS.md)); // 768px 이하\n const isNotebook = useMediaQuery(theme.breakpoints.down(BREAKPOINTS.lg)); // 1024px 이하\n const isDesktop = useMediaQuery(theme.breakpoints.up(BREAKPOINTS.lg + 1)); // 1025px 이상\n\n const isHeightSmall = useMediaQuery(`(max-height: ${BREAKPOINTS.height}px)`);\n\n return { isMobile, isMiniTablet, isTablet, isNotebook, isDesktop, isHeightSmall };\n};\n\nexport default useAIDTMediaQuery;\n","import { IconButton, type IconButtonProps, useTheme } from '@mui/material';\n\nimport { gray300Color, gray400Color } from '../tokenColorTemporary';\nimport useAIDTMediaQuery from '../../hooks/useAIDTMediaQuery';\nimport type { ReactNode } from 'react';\n\nexport interface EliceIconButtonProps extends IconButtonProps {\n children: ReactNode;\n backgroundColor?: string;\n width?: number | string;\n height?: number | string;\n borderRadius?: number;\n}\nconst EliceIconButton = ({\n children,\n disabled,\n backgroundColor,\n width,\n height,\n borderRadius,\n ...rest\n}: EliceIconButtonProps) => {\n const theme = useTheme();\n const { isMiniTablet } = useAIDTMediaQuery();\n return (\n <IconButton\n disabled={disabled}\n style={{\n flexShrink: 0,\n height: height ?? '3.5rem',\n width: width ?? '3.5rem',\n boxSizing: 'border-box',\n backgroundColor: disabled ? gray300Color : backgroundColor ? backgroundColor : theme.palette.primary.main,\n borderRadius: borderRadius ?? '1rem',\n padding: isMiniTablet ? 8 : 10,\n color: disabled ? gray400Color : theme.palette.primary.light,\n }}\n {...rest}\n >\n {children}\n </IconButton>\n );\n};\n\nexport default EliceIconButton;\n","import React, { createContext, useContext, useReducer, useRef } from 'react';\n\nimport type { Dispatch } from 'react';\n\nexport type AudioStep = 'ready' | 'recording' | 'pause' | 'waiting' | '';\n\nexport type StepFlowType =\n | 'basic'\n | 'pauseable'\n | 'oneClick'\n | 'recordOnly'\n | 'instantRecord';\n\ninterface RecorderState {\n step: AudioStep;\n analyser: AnalyserNode | null;\n isRecording: boolean;\n file: File | null;\n audioUrl: string;\n}\n\ntype RecorderContextType = {\n state: RecorderState;\n dispatch: Dispatch<RecorderAction>;\n startRecording: (onComplete?: (file: File) => void) => Promise<void>;\n stopRecording: (isSubmit: boolean) => void;\n pauseRecording: () => void;\n resumeRecording: () => void;\n setIsRecording: (isRecording: boolean) => void;\n setStep: (step: AudioStep) => void;\n resetAnalyzer: () => void;\n};\n\ntype RecorderAction =\n | { type: 'SET_STEP'; payload: AudioStep }\n | { type: 'SET_ANALYSER'; payload: AnalyserNode | null }\n | { type: 'SET_IS_RECORDING'; payload: boolean }\n | { type: 'SET_FILE'; payload: File }\n | { type: 'SET_URL'; payload: string };\n\nconst RecorderContext = createContext<RecorderContextType | null>(null);\n\nconst initialState: RecorderState = {\n step: 'ready',\n analyser: null,\n isRecording: false,\n file: null,\n audioUrl: '',\n};\n\nconst recorderReducer = (\n state: RecorderState,\n action: RecorderAction\n): RecorderState => {\n switch (action.type) {\n case 'SET_STEP':\n return { ...state, step: action.payload };\n\n case 'SET_ANALYSER':\n return { ...state, analyser: action.payload };\n\n case 'SET_IS_RECORDING':\n return { ...state, isRecording: action.payload };\n\n case 'SET_FILE':\n return { ...state, file: action.payload };\n\n case 'SET_URL':\n return { ...state, audioUrl: action.payload };\n\n default:\n return state;\n }\n};\n\nexport const RecorderProvider = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n const [state, dispatch] = useReducer(recorderReducer, initialState);\n\n const mediaRecorderRef = useRef<MediaRecorder | null>(null);\n const audioChunks = useRef<Blob[]>([]);\n const streamRef = useRef<MediaStream | null>(null);\n const audioContextRef = useRef<AudioContext | null>(null);\n const analyserRef = useRef<AnalyserNode | null>(null);\n const sourceRef = useRef<MediaStreamAudioSourceNode | null>(null);\n\n const startRecording = async (\n onComplete?: (file: File) => void | Promise<void>\n ) => {\n try {\n const stream = await navigator.mediaDevices.getUserMedia({ audio: true });\n streamRef.current = stream;\n audioChunks.current = [];\n\n const recorder = new MediaRecorder(stream, { mimeType: 'audio/webm' });\n\n mediaRecorderRef.current = recorder;\n\n recorder.addEventListener('dataavailable', event => {\n if (event.data.size > 0) {\n audioChunks.current.push(event.data);\n }\n });\n\n recorder.addEventListener('stop', async () => {\n const file = new File(\n [...(audioChunks.current ?? [])],\n `recording-${Date.now()}.webm`,\n {\n type: 'audio/webm',\n }\n );\n const url = URL.createObjectURL(file);\n\n dispatch({ type: 'SET_FILE', payload: file });\n dispatch({ type: 'SET_URL', payload: url });\n\n await onComplete?.(file);\n });\n\n // AudioContext 연결\n audioContextRef.current = new AudioContext();\n analyserRef.current = audioContextRef.current.createAnalyser();\n sourceRef.current =\n audioContextRef.current.createMediaStreamSource(stream);\n sourceRef.current.connect(analyserRef.current);\n analyserRef.current.fftSize = 256;\n\n dispatch({ type: 'SET_ANALYSER', payload: analyserRef.current });\n recorder.addEventListener('start', () => {\n dispatch({ type: 'SET_STEP', payload: 'recording' });\n });\n\n recorder.start();\n } catch (error) {\n console.error('🎤 마이크 권한 오류:', error);\n }\n };\n\n const stopRecording = (isSubmit?: boolean) => {\n mediaRecorderRef.current?.stop();\n streamRef.current?.getTracks().forEach(track => track.stop());\n\n if (audioContextRef.current?.state !== 'closed') {\n audioContextRef.current\n ?.close()\n .catch(e => console.warn('AudioContext already closed', e));\n }\n if (isSubmit) {\n dispatch({ type: 'SET_STEP', payload: 'ready' });\n } else {\n dispatch({ type: 'SET_STEP', payload: 'waiting' });\n }\n };\n\n const pauseRecording = () => {\n const recorder = mediaRecorderRef.current;\n if (recorder && recorder.state === 'recording') {\n recorder.pause();\n dispatch({ type: 'SET_STEP', payload: 'pause' });\n }\n };\n\n const resumeRecording = () => {\n const recorder = mediaRecorderRef.current;\n if (recorder && recorder.state === 'paused') {\n recorder.resume();\n dispatch({ type: 'SET_STEP', payload: 'recording' });\n }\n };\n\n const setIsRecording = (isRecording: boolean) =>\n dispatch({ type: 'SET_IS_RECORDING', payload: isRecording });\n\n const setStep = (step: AudioStep) => {\n dispatch({ type: 'SET_STEP', payload: step });\n };\n\n const resetAnalyzer = () => {\n if (audioContextRef.current?.state !== 'closed') {\n audioContextRef.current\n ?.close()\n .catch(e => console.warn('AudioContext already closed', e));\n }\n analyserRef.current = null;\n sourceRef.current = null;\n audioContextRef.current = null;\n dispatch({ type: 'SET_ANALYSER', payload: null });\n };\n\n return (\n <RecorderContext.Provider\n value={{\n state,\n dispatch,\n startRecording,\n stopRecording,\n pauseRecording,\n resumeRecording,\n setIsRecording,\n setStep,\n resetAnalyzer,\n }}\n >\n {children}\n </RecorderContext.Provider>\n );\n};\n\nexport const useRecorder = () => {\n const context = useContext(RecorderContext);\n if (!context) {\n throw new Error('useRecorder must be used within RecorderProvider');\n }\n return context;\n};\n","const AssistantAvatar = (props: any) => {\n return (\n <svg\n width=\"36\"\n height=\"36\"\n viewBox=\"0 0 36 36\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <mask\n id=\"mask0_126_24810\"\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"36\"\n height=\"36\"\n >\n <circle cx=\"18\" cy=\"18\" r=\"18\" fill=\"#D9D9D9\" />\n </mask>\n <g mask=\"url(#mask0_126_24810)\">\n <circle cx=\"18\" cy=\"18\" r=\"18\" fill=\"#F1F1F6\" />\n <path\n d=\"M15.4502 31.1221C15.2243 30.7552 13.0394 28.6078 12.6163 28.4149C11.8395 27.4387 8.28283 20.9291 7.12702 20.387C5.73431 19.7348 2.52359 22.8981 3.24529 24.3084C3.41717 24.6434 7.38374 28.5483 8.71805 30.2285C11.325 33.5935 15.9846 31.9904 15.4502 31.1221Z\"\n fill=\"white\"\n />\n <path\n d=\"M7.1105 21.9956C7.14907 22.0177 7.1678 22.065 7.15127 22.108C6.27312 24.3701 4.01328 24.5838 3.99014 24.586C3.94056 24.5904 3.89648 24.553 3.89208 24.5034C3.88767 24.4538 3.92513 24.4097 3.97471 24.4053C3.99675 24.4031 6.14531 24.1971 6.98049 22.043C6.99922 21.9967 7.05101 21.9725 7.09838 21.9912C7.10279 21.9923 7.1061 21.9945 7.1094 21.9967L7.1105 21.9956Z\"\n fill=\"#CACACA\"\n />\n <path\n d=\"M12.1237 27.6481C12.1677 27.6547 12.2019 27.6921 12.2008 27.7384C12.1854 30.1646 10.1492 31.1684 10.1283 31.1783C10.0831 31.2004 10.0291 31.1805 10.0071 31.1353C9.98504 31.0902 10.0049 31.0362 10.05 31.0141C10.0699 31.0042 12.0047 30.0467 12.019 27.7373C12.019 27.6866 12.0598 27.647 12.1105 27.647C12.1149 27.647 12.1193 27.647 12.1237 27.647V27.6481Z\"\n fill=\"#CACACA\"\n />\n <path\n d=\"M5.41928 25.3143C5.42259 25.3022 5.4292 25.2912 5.43801 25.2802C5.47107 25.2416 5.52836 25.2383 5.56582 25.2703C6.96073 26.4701 9.61393 29.8715 9.63376 29.8957C9.66571 29.9343 9.6602 29.9916 9.62164 30.0235C9.58307 30.0555 9.52578 30.05 9.49383 30.0114C9.47399 29.9861 6.83072 26.598 5.44683 25.408C5.41928 25.3837 5.40936 25.3463 5.41928 25.3132V25.3143Z\"\n fill=\"#C2B4F9\"\n />\n <path\n d=\"M30.9088 35.8654C30.7788 34.5961 26.4728 28.3543 25.8084 27.2987C25.7666 26.836 25.6101 26.371 25.338 26.0372C24.6945 25.2461 21.9531 25.8289 21.2017 26.0945C20.2068 26.4459 19.0884 26.8723 18.4383 27.4618C18.4284 27.4519 18.4163 27.4431 18.4053 27.4343C18.3943 27.4442 18.3832 27.453 18.3722 27.4618C17.7221 26.8723 16.6038 26.4459 15.6088 26.0945C14.8574 25.8289 11.9078 22.6039 12.3067 33.9747C12.2913 35.6891 12.472 43.4217 13.1154 44.1611C14.1831 45.3896 17.2627 45.1747 17.5932 44.0134C17.7486 43.4702 17.7883 39.2458 17.7883 39.2458C17.7883 39.2458 17.9844 39.3119 18.4053 39.3119C18.8262 39.3119 19.0223 39.2458 19.0223 39.2458C19.0223 39.2458 19.0631 43.4702 19.2173 44.0134C19.5479 45.1747 22.6275 45.3896 23.6951 44.1611C24.3386 43.4206 24.5182 35.6891 24.5039 33.9747C25.0361 35.9745 26.1808 37.7198 26.4409 37.992C27.535 39.1379 31.0652 37.3959 30.9088 35.8665V35.8654Z\"\n fill=\"white\"\n />\n <path\n d=\"M22.1792 32.669C22.1329 32.2789 21.9103 31.9671 21.5677 31.8139C21.1324 31.6189 20.7622 31.7522 20.4647 31.858C20.3358 31.9043 20.2135 31.9484 20.1 31.9605C19.797 31.9935 19.4951 31.8679 19.1326 31.7016L19.1282 31.6994C18.6566 31.4834 18.1685 31.2597 17.5934 31.4294C17.3565 31.4999 17.1758 31.6211 17.016 31.7291C16.8629 31.8327 16.7417 31.9142 16.6084 31.9285C16.4894 31.9418 16.41 31.912 16.28 31.8646C16.0971 31.7974 15.8459 31.7049 15.4768 31.7677C15.122 31.8283 14.8212 32.096 14.6912 32.4673C14.5557 32.8552 14.635 33.2805 14.8994 33.5769C15.2212 33.9372 15.7721 34.1487 16.4122 34.1575C16.431 34.1575 16.4497 34.1575 16.4684 34.1575C16.7957 34.1575 17.0954 34.1223 17.3862 34.087C17.6947 34.0507 18.0187 34.0121 18.3867 34.0132C18.9167 34.0143 19.3332 34.0562 19.699 34.0936C19.9315 34.1168 20.1518 34.1388 20.3711 34.1476C20.9341 34.1696 21.3682 34.0484 21.7351 33.7664C22.0558 33.5196 22.2299 33.0888 22.1803 32.669H22.1792Z\"\n fill=\"white\"\n />\n <path\n d=\"M16.4672 34.2489H16.4099C15.7455 34.2401 15.1692 34.0175 14.831 33.6374C14.5445 33.3168 14.4586 32.8573 14.6051 32.4375C14.7461 32.0354 15.0745 31.7445 15.4612 31.6784C15.8546 31.6123 16.1289 31.7125 16.3107 31.7797C16.4374 31.826 16.5002 31.8491 16.5983 31.8392C16.7085 31.8271 16.822 31.7511 16.9641 31.6552C17.1294 31.5439 17.3167 31.4183 17.5668 31.3434C18.175 31.1638 18.6774 31.3941 19.1645 31.6178C19.5203 31.7808 19.8112 31.902 20.0889 31.8712C20.1914 31.8602 20.3081 31.8183 20.4326 31.7731C20.729 31.6662 21.1345 31.5208 21.6039 31.7312C21.9763 31.8976 22.2187 32.2359 22.2683 32.659C22.3212 33.1096 22.1328 33.5724 21.7879 33.839C21.4034 34.1354 20.9505 34.2632 20.3643 34.239C20.1418 34.2302 19.9203 34.2081 19.6867 34.1839C19.3209 34.1475 18.9077 34.1057 18.3833 34.1046H18.3645C18.0097 34.1046 17.6979 34.142 17.3949 34.1773C17.0996 34.2126 16.7966 34.2489 16.465 34.2489H16.4672ZM15.7157 31.8381C15.6463 31.8381 15.5725 31.8436 15.4921 31.858C15.1703 31.913 14.896 32.1577 14.777 32.4981C14.6525 32.8551 14.7252 33.2452 14.9665 33.5162C15.2717 33.8578 15.7984 34.0583 16.4121 34.066H16.4672C16.7878 34.066 17.0853 34.0308 17.3729 33.9966C17.688 33.9591 18.0141 33.9217 18.3855 33.9217C18.9198 33.9228 19.3374 33.9646 19.7054 34.0021C19.9379 34.0252 20.1561 34.0473 20.3732 34.0561C20.9141 34.077 21.3284 33.9624 21.6777 33.6936C21.973 33.4655 22.135 33.0678 22.0887 32.6788C22.0468 32.3218 21.843 32.0365 21.5301 31.8965C21.1279 31.7169 20.7918 31.837 20.4955 31.9439C20.361 31.9924 20.2332 32.0376 20.1098 32.0508C19.787 32.086 19.4719 31.9571 19.0939 31.7841C18.6334 31.5726 18.1618 31.3566 17.6186 31.5175C17.396 31.5836 17.2208 31.7015 17.0666 31.8051C16.909 31.9108 16.7735 32.0023 16.6181 32.0188C16.4782 32.0343 16.3812 31.999 16.2479 31.9494C16.1146 31.9009 15.9438 31.837 15.7157 31.837V31.8381Z\"\n fill=\"#C2B4F9\"\n />\n <path\n d=\"M18.9727 32.052C19.3627 32.2305 19.7374 32.3869 20.1417 32.344C20.588 32.2966 20.9538 31.9605 21.4099 32.1655C21.9212 32.3947 21.9135 33.1417 21.4981 33.4612C21.1995 33.6915 20.8458 33.7819 20.3841 33.7631C19.8387 33.7411 19.2724 33.6309 18.3854 33.6287C17.6108 33.6265 17.0754 33.7808 16.4165 33.773C15.9074 33.7664 15.448 33.6144 15.1868 33.3213C14.8177 32.907 15.0733 32.2283 15.5427 32.1479C16.0474 32.0619 16.206 32.3594 16.6512 32.312C17.0632 32.268 17.3012 31.9187 17.7045 31.7997C18.143 31.6697 18.5199 31.8438 18.9738 32.052\"\n fill=\"#7953F5\"\n />\n <path\n d=\"M29.2726 34.2224C29.2384 34.2224 29.2054 34.2026 29.1899 34.1695C28.4341 32.5091 25.9109 29.175 25.8922 29.1485C25.8635 29.1067 25.8746 29.0505 25.9164 29.0218C25.9583 28.9932 26.0145 29.0042 26.0431 29.0461C26.0619 29.0725 28.5939 32.4198 29.3563 34.0946C29.3773 34.1398 29.3563 34.1938 29.3111 34.2147C29.299 34.2202 29.2858 34.2224 29.2737 34.2224H29.2726Z\"\n fill=\"#C2B4F9\"\n />\n <path\n d=\"M8.75773 28.8853C9.20618 28.4997 8.68832 27.4397 7.75177 26.5484C6.92871 25.7639 6.18277 25.7462 6.05386 26.2266C5.93376 26.6729 6.2621 27.3637 6.8637 28.0336C7.42783 28.6606 8.32031 29.2622 8.75773 28.8853Z\"\n fill=\"#DDD6FB\"\n />\n <path\n d=\"M5.96023 26.6377C5.93048 26.4768 5.93268 26.3303 5.96684 26.2013C6.01642 26.0184 6.14423 25.8895 6.32824 25.8377C6.72048 25.7276 7.27691 25.9689 7.8146 26.4812C8.55502 27.1864 9.0244 27.9819 9.01118 28.5053C9.00677 28.6959 8.94066 28.8468 8.81615 28.9537C8.2994 29.3977 7.32428 28.6827 6.79541 28.0932C6.32824 27.5731 6.03625 27.0586 5.95912 26.6377H5.96023ZM8.81505 28.3202C8.72911 27.8519 8.3005 27.1952 7.69009 26.6134C7.11053 26.0614 6.62132 25.9446 6.37782 26.0129C6.25441 26.0471 6.17508 26.1264 6.14313 26.2487C6.03515 26.6498 6.33705 27.3098 6.93204 27.972C7.52041 28.6276 8.34347 29.1223 8.69936 28.816C8.7831 28.7444 8.82717 28.6375 8.83158 28.5009C8.83268 28.4447 8.82717 28.3841 8.81615 28.3202H8.81505Z\"\n fill=\"#C2B4F9\"\n />\n <path\n d=\"M8.3413 29.0451C8.75669 28.6881 8.2774 27.7053 7.40916 26.8789C6.64559 26.1517 5.95475 26.1352 5.83575 26.5803C5.72447 26.9946 6.02857 27.6348 6.5861 28.2551C7.10836 28.8369 7.93583 29.3944 8.3424 29.0451H8.3413Z\"\n fill=\"#7953F5\"\n />\n <path\n d=\"M26.5026 37.0069C26.4662 36.9805 26.4552 36.9309 26.4773 36.8901C27.6408 34.7603 29.9094 34.8418 29.9326 34.8429C29.9833 34.8451 30.0218 34.8881 30.0196 34.9377C30.0174 34.9884 29.9745 35.0269 29.9249 35.0247C29.9028 35.0247 27.7455 34.9509 26.6381 36.9783C26.6139 37.0223 26.5588 37.0389 26.5147 37.0146C26.5114 37.0124 26.507 37.0102 26.5037 37.008L26.5026 37.0069Z\"\n fill=\"#CACACA\"\n />\n <path\n d=\"M17.3518 7.34349C10.3883 8.03213 5.34083 13.3705 6.5914 21.7113C7.18198 25.6503 10.3012 28.2374 12.852 28.991C14.7339 29.5464 16.9155 29.77 19.5433 29.51C22.1701 29.25 24.2658 28.6043 26.0033 27.6909C28.3568 26.4524 30.9098 23.3045 30.7169 19.3258C30.3104 10.9002 24.3142 6.65485 17.3518 7.34239V7.34349Z\"\n fill=\"white\"\n />\n <path\n d=\"M16.7911 13.7771C16.5619 12.5651 16.0187 10.9113 14.7263 9.91301C13.955 9.31692 13.2719 9.23649 13.2653 9.23539L13.2851 9.05469C13.3137 9.05799 16.1531 9.40947 16.9707 13.7441L16.7922 13.7782L16.7911 13.7771Z\"\n fill=\"#CACACA\"\n />\n <path\n d=\"M19.1611 13.5435L18.9793 13.5457C18.9661 12.2775 19.1842 10.4969 20.3004 9.22102C20.9736 8.45195 21.6468 8.23489 21.6755 8.22607L21.7295 8.39906C21.703 8.40788 19.1159 9.27501 19.1611 13.5435Z\"\n fill=\"#CACACA\"\n />\n <path\n d=\"M12.5655 17.5111C14.0363 17.0341 14.8863 15.592 14.4641 14.2902C14.0419 12.9884 12.5073 12.3198 11.0364 12.7969C9.56563 13.2739 8.71557 14.716 9.1378 16.0178C9.56003 17.3196 11.0946 17.9882 12.5655 17.5111Z\"\n fill=\"#DDD6FB\"\n />\n <path\n d=\"M11.911 17.7415C11.3976 17.7922 10.8863 17.7161 10.4246 17.5145C9.75363 17.2214 9.26662 16.7003 9.05397 16.0458C8.84132 15.3913 8.92947 14.6828 9.30078 14.0515C9.67099 13.4234 10.2781 12.9474 11.0097 12.7094C12.5258 12.2169 14.1147 12.9133 14.5521 14.2608C14.7647 14.9153 14.6766 15.6238 14.3053 16.2551C13.9351 16.8832 13.3279 17.3591 12.5963 17.5971C12.3705 17.671 12.1413 17.7183 11.9121 17.7415H11.911ZM11.7072 12.748C11.4945 12.7689 11.2797 12.813 11.0659 12.8824C10.3762 13.1061 9.80432 13.5545 9.45724 14.144C9.11237 14.7302 9.02973 15.3847 9.22586 15.9896C9.42198 16.5945 9.87373 17.0771 10.4963 17.3481C11.1232 17.6214 11.8493 17.6478 12.539 17.4242C13.2288 17.2005 13.8006 16.752 14.1477 16.1626C14.4926 15.5764 14.5752 14.9219 14.3791 14.317C14.0342 13.2537 12.9093 12.629 11.7072 12.7469V12.748Z\"\n fill=\"#C2B4F9\"\n />\n <path\n d=\"M27.1037 14.2414C27.2629 12.8822 26.147 11.6345 24.6113 11.4546C23.0755 11.2747 21.7015 12.2308 21.5423 13.5901C21.3831 14.9494 22.499 16.1971 24.0348 16.3769C25.5705 16.5568 26.9445 15.6007 27.1037 14.2414Z\"\n fill=\"#DDD6FB\"\n />\n <path\n d=\"M24.7186 16.4743C24.4938 16.4963 24.2602 16.4952 24.0244 16.4677C23.2598 16.3784 22.5711 16.0302 22.0852 15.487C21.5971 14.9405 21.3723 14.264 21.4528 13.5798C21.5332 12.8967 21.9078 12.2896 22.5094 11.8709C23.1077 11.4544 23.858 11.2748 24.6227 11.3651C26.206 11.5502 27.3596 12.846 27.1944 14.253C27.0544 15.4507 26.0044 16.3487 24.7186 16.4754V16.4743ZM23.9407 11.5381C23.4581 11.5855 23.0008 11.7497 22.613 12.0196C22.0555 12.4074 21.7073 12.9694 21.6335 13.6007C21.5596 14.2321 21.7679 14.859 22.2218 15.3658C22.678 15.876 23.3259 16.2032 24.0465 16.287C25.5306 16.4611 26.8616 15.5388 27.0148 14.231C27.1679 12.9231 26.0859 11.7188 24.6018 11.5447C24.3792 11.5183 24.1577 11.5172 23.9418 11.5381H23.9407Z\"\n fill=\"#C2B4F9\"\n />\n <path\n d=\"M25.8106 25.744C24.0741 26.6574 21.9784 27.3041 19.3506 27.5631C16.7238 27.8231 14.5422 27.5994 12.6603 27.0441C10.1272 26.296 7.03549 23.7397 6.41406 19.847C6.4383 20.4508 6.4967 21.0722 6.59256 21.7113C7.18314 25.6503 10.3024 28.2374 12.8531 28.991C14.735 29.5464 16.9167 29.77 19.5434 29.51C22.1701 29.25 24.2658 28.6043 26.0034 27.6909C28.3569 26.4524 30.9098 23.3045 30.717 19.3258C30.6861 18.6802 30.6211 18.0587 30.5264 17.4626C30.6784 21.4006 28.1475 24.5143 25.8095 25.7429L25.8106 25.744Z\"\n fill=\"#F0EEF9\"\n />\n <path\n d=\"M17.9854 13.7529C13.9594 14.1507 12.213 14.5363 10.7905 15.2294C8.77858 16.2089 8.23758 18.1117 8.80392 19.803C9.17744 20.9203 10.7024 22.5014 12.8553 22.1587C16.163 21.6321 16.2754 18.3035 18.414 18.0919\"\n fill=\"#222323\"\n />\n <path\n d=\"M12.6526 22.4133C10.5315 22.6238 8.98237 21.0537 8.58792 19.8747C7.91911 17.876 8.74438 15.972 10.6902 15.0245C12.1898 14.294 14.0254 13.916 17.9622 13.5271L18.0074 13.9799C14.1312 14.3634 12.3352 14.7303 10.8896 15.4344C9.16087 16.2762 8.42706 17.963 9.01873 19.7315C9.37903 20.8068 10.8378 22.2502 12.8189 21.9351C14.5411 21.6608 15.3641 20.57 16.0913 19.607C16.726 18.7663 17.3254 17.973 18.3909 17.8672L18.436 18.32C17.5678 18.406 17.0521 19.0891 16.4538 19.8813C15.6749 20.9126 14.7923 22.0817 12.8905 22.3847C12.8101 22.3979 12.7308 22.4078 12.6526 22.4155V22.4133Z\"\n fill=\"#222323\"\n />\n <path\n d=\"M17.9855 13.7528C22.0115 13.3551 23.7987 13.3903 25.3302 13.7914C27.4953 14.3588 28.3977 16.1174 28.174 17.888C28.0264 19.057 26.8408 20.9059 24.6625 20.9907C21.3163 21.1218 20.5538 17.8803 18.4152 18.0918\"\n fill=\"#222323\"\n />\n <path\n d=\"M24.9115 21.2011C24.8333 21.2088 24.7528 21.2143 24.6713 21.2177C22.7464 21.2926 21.6512 20.3197 20.686 19.4602C19.9445 18.8003 19.3043 18.2317 18.4372 18.3177L18.392 17.8648C19.4586 17.759 20.2012 18.4201 20.9879 19.1209C21.8892 19.923 22.9106 20.832 24.6526 20.7637C24.7242 20.7604 24.7958 20.756 24.8652 20.7494C26.7405 20.5643 27.8104 18.9446 27.947 17.8593C28.1806 16.0093 27.1306 14.4987 25.2707 14.0117C23.7149 13.604 21.8826 13.5963 18.0064 13.9798L17.9612 13.5269C21.898 13.138 23.7722 13.149 25.3864 13.5721C27.4798 14.1208 28.6621 15.8264 28.3977 17.9166C28.2412 19.1495 27.0303 20.9918 24.9093 21.2022L24.9115 21.2011Z\"\n fill=\"#222323\"\n />\n <path\n d=\"M14.324 18.3331C14.8011 18.3331 15.1879 17.9464 15.1879 17.4693C15.1879 16.9922 14.8011 16.6055 14.324 16.6055C13.847 16.6055 13.4602 16.9922 13.4602 17.4693C13.4602 17.9464 13.847 18.3331 14.324 18.3331Z\"\n fill=\"white\"\n />\n <path\n d=\"M23.639 15.9476C21.8639 15.5312 20.923 16.9338 20.923 16.9338C20.923 16.9338 22.1537 16.547 23.6169 17.1486\"\n stroke=\"white\"\n stroke-width=\"0.330547\"\n stroke-linejoin=\"bevel\"\n />\n <path\n d=\"M13.2729 8.81779L13.2608 8.80897C12.9457 8.55886 12.3077 8.08508 11.5739 7.71927C10.3828 7.12539 9.46059 7.07801 8.83145 7.57934C8.38961 7.93082 8.28384 8.7043 8.50641 9.94275C8.65736 10.779 8.90417 11.5294 8.90747 11.5371C8.95485 11.6803 9.08156 11.7806 9.23141 11.7949C9.25565 11.7971 9.27989 11.7971 9.30413 11.7949C9.35481 11.7894 9.40329 11.7751 9.44736 11.7508C9.51017 11.7167 9.56195 11.6649 9.59721 11.6021C9.59942 11.5988 9.81317 11.2242 10.3354 10.7867C10.8357 10.367 11.7259 9.80172 13.1208 9.4921C13.252 9.46566 13.3599 9.3698 13.4029 9.24309C13.4558 9.08774 13.4029 8.91805 13.2718 8.81999L13.2729 8.81779Z\"\n fill=\"#7953F5\"\n />\n <path\n d=\"M21.8253 8.12797C22.0788 7.82827 22.5999 7.25092 23.2313 6.76171C24.2064 6.00586 25.0184 5.78659 25.6465 6.10943C26.0608 6.32208 26.2811 7.01402 26.3032 8.16323C26.3186 8.98629 26.2282 9.74104 26.2238 9.77299C26.2172 9.83139 26.1753 9.87987 26.1192 9.8964C26.0905 9.90521 26.0608 9.90411 26.0332 9.8964C26.0057 9.88868 25.9825 9.87216 25.9638 9.85012C25.9605 9.84681 25.6608 9.49533 25.0151 9.14275C24.419 8.81661 23.3987 8.42105 21.9201 8.3902C21.8683 8.3902 21.8187 8.36156 21.7923 8.31638C21.7592 8.26019 21.7681 8.18967 21.811 8.14229L21.8231 8.12797H21.8253Z\"\n fill=\"#7953F5\"\n />\n <path\n d=\"M26.1147 10.129C26.0651 10.1334 26.0144 10.129 25.9659 10.1135C25.8976 10.0926 25.837 10.0518 25.7919 9.99784C25.7897 9.99454 25.5054 9.6695 24.9082 9.34226C24.3352 9.02824 23.3513 8.64811 21.9178 8.61836C21.7878 8.61836 21.6644 8.54564 21.5983 8.43105C21.5168 8.29002 21.5344 8.11483 21.6435 7.99363L21.6534 7.98261C21.9134 7.6752 22.4456 7.08572 23.0935 6.58329C24.1446 5.76904 25.0382 5.54207 25.7522 5.90897C26.2535 6.1668 26.508 6.90392 26.5323 8.1611C26.5477 8.97976 26.4618 9.72018 26.4518 9.80172C26.4331 9.95047 26.3295 10.0739 26.1863 10.1157C26.1632 10.1223 26.14 10.1268 26.1158 10.1301L26.1147 10.129ZM22.0908 8.16882C23.5287 8.22611 24.5303 8.61836 25.1253 8.9434C25.5737 9.1891 25.8657 9.43481 26.0166 9.57915C26.0431 9.31031 26.0871 8.75499 26.0761 8.16882C26.0497 6.77942 25.7313 6.4092 25.5428 6.31224C25.0007 6.03348 24.2691 6.24503 23.3712 6.94138C22.8235 7.36559 22.3619 7.8581 22.0908 8.16771V8.16882ZM21.9234 8.16331C21.9234 8.16331 21.9245 8.16331 21.9256 8.16331C21.9256 8.16331 21.9245 8.16331 21.9234 8.16331Z\"\n fill=\"#7953F5\"\n />\n <path\n d=\"M26.0508 17.9012L25.3621 18.3805L25.3522 18.2791L26.1213 18.614L25.9847 18.9248L25.2365 18.5821L25.2916 18.5391L25.3765 19.3368L25.0547 19.3688L24.9809 18.57L25.0437 18.6019L24.3771 19.0845L24.1821 18.8069L24.8762 18.3265L24.8862 18.4278L24.1116 18.0929L24.2482 17.7767L24.9963 18.1248L24.9412 18.1678L24.8575 17.3701L25.1792 17.3381L25.2531 18.137L25.1903 18.105L25.8558 17.6169L26.0519 17.9001L26.0508 17.9012Z\"\n fill=\"white\"\n />\n <path\n d=\"M12.8289 19.2081L12.1402 19.6873L12.1303 19.586L12.8994 19.9209L12.7627 20.2316L12.0146 19.889L12.0697 19.846L12.1545 20.6437L11.8328 20.6757L11.759 19.8769L11.8218 19.9088L11.1552 20.3914L10.9602 20.1137L11.6543 19.6334L11.6642 19.7347L10.8896 19.3998L11.0263 19.0835L11.7744 19.4317L11.7193 19.4747L11.6356 18.677L11.9573 18.645L12.0311 19.4438L11.9683 19.4119L12.6338 18.9238L12.83 19.2069L12.8289 19.2081Z\"\n fill=\"white\"\n />\n <path\n d=\"M9.21048 10.6787C9.18183 10.6821 9.15098 10.6699 9.13115 10.6457C9.09919 10.6071 9.1047 10.5498 9.14327 10.5179L9.55315 10.1785C9.44517 9.92069 9.07716 8.96211 9.30854 8.474C9.4044 8.27126 9.55315 8.13464 9.75037 8.06853C10.1757 7.92529 10.6968 8.15777 10.9007 8.26465C11.2698 8.45747 11.543 8.7175 11.6532 8.83209L12.0267 8.5963C12.0697 8.56986 12.1259 8.58198 12.1523 8.62495C12.1788 8.66792 12.1667 8.72301 12.1237 8.75056L11.6202 9.06898L11.5684 9.00948C11.5684 9.00948 11.2599 8.658 10.8158 8.42552C10.6329 8.32966 10.168 8.12031 9.80767 8.24151C9.65672 8.2922 9.54653 8.39356 9.47161 8.55223C9.2832 8.95109 9.60603 9.85458 9.74597 10.1686L9.77351 10.2314L9.25896 10.6578C9.24463 10.6699 9.22701 10.6765 9.21048 10.6787Z\"\n fill=\"white\"\n />\n <path\n d=\"M22.3045 20.2592C22.0324 19.0604 20.7388 17.7041 18.3997 17.9354C16.0605 18.1668 15.0578 19.7501 15.0248 20.9787C14.9642 23.2473 17.1921 24.4604 19.0266 24.2786C20.8611 24.0968 22.8081 22.4716 22.3045 20.2592Z\"\n fill=\"#C2B4F9\"\n />\n <path\n d=\"M18.6013 19.9652C19.3341 19.8928 19.8767 19.3151 19.8134 18.675C19.7501 18.0349 19.1048 17.5748 18.372 17.6473C17.6393 17.7198 17.0966 18.2975 17.1599 18.9375C17.2233 19.5776 17.8686 20.0377 18.6013 19.9652Z\"\n fill=\"#222323\"\n />\n <path\n d=\"M18.7975 21.9646C18.2201 22.0219 17.4224 21.72 17.0379 20.9234C16.9839 20.811 16.996 20.6601 17.0665 20.5874C17.1371 20.5146 18.0461 20.3637 18.6333 20.3053C19.2206 20.2469 20.1428 20.2172 20.2255 20.2755C20.3081 20.3328 20.35 20.4783 20.3191 20.5995C20.0977 21.4567 19.376 21.9085 18.7975 21.9657V21.9646Z\"\n fill=\"#7953F5\"\n />\n <path\n d=\"M25.9879 9.01947C25.9703 9.02167 25.9527 9.01837 25.9362 9.00845L25.3478 8.69113L25.3632 8.62392C25.4392 8.28786 25.5781 7.33919 25.3158 6.9855C25.2112 6.84447 25.0844 6.76624 24.9258 6.74641C24.5501 6.69793 24.1347 6.99542 23.9727 7.12433C23.5816 7.43945 23.3513 7.83942 23.3491 7.84382L23.3105 7.91214L22.7541 7.69838C22.7067 7.68075 22.6836 7.62787 22.7023 7.58049C22.7199 7.53421 22.7728 7.50997 22.8202 7.5287L23.2323 7.68736C23.3182 7.55294 23.5353 7.24443 23.8592 6.9833C24.0388 6.83896 24.5027 6.50952 24.9489 6.56571C25.1561 6.59215 25.3279 6.69682 25.4613 6.87642C25.783 7.31054 25.61 8.32202 25.5549 8.59637L26.0232 8.84869C26.0673 8.87293 26.0838 8.92802 26.0596 8.97209C26.0441 8.99964 26.0177 9.01616 25.9879 9.01947Z\"\n fill=\"white\"\n />\n <path\n d=\"M8.35775 25.5271C8.31368 25.5315 8.27181 25.5029 8.26079 25.4577C7.69004 23.0998 9.42321 21.6333 9.44084 21.6189C9.47941 21.587 9.5367 21.5925 9.56865 21.6311C9.60061 21.6696 9.5951 21.7269 9.55653 21.7589C9.54001 21.7732 7.89388 23.1692 8.43708 25.4147C8.4492 25.4632 8.41945 25.5128 8.36987 25.5249C8.36546 25.5249 8.36105 25.5271 8.35775 25.5271Z\"\n fill=\"#CACACA\"\n />\n <path\n d=\"M29.7331 23.4136C29.7331 23.4136 29.7243 23.4136 29.7199 23.4136C29.6692 23.4114 29.6307 23.3696 29.6329 23.3189C29.7265 21.0062 27.8391 19.9627 27.8193 19.9528C27.7752 19.9286 27.7587 19.8735 27.7818 19.8294C27.806 19.7853 27.8611 19.7688 27.9052 19.7919C27.925 19.803 29.9127 20.9004 29.8136 23.3255C29.8114 23.3718 29.7761 23.4081 29.732 23.4125L29.7331 23.4136Z\"\n fill=\"#CACACA\"\n />\n <path\n d=\"M25.0371 5.73703C25.2916 5.73703 25.5307 5.79432 25.7511 5.90781C26.2524 6.16564 26.5069 6.90276 26.5312 8.15994C26.5466 8.9786 26.4607 9.71902 26.4508 9.80056C26.4474 9.8237 26.4419 9.84683 26.4353 9.86887C28.888 11.8951 30.5132 15.0794 30.7181 19.3258C30.9098 23.3045 28.358 26.4524 26.0045 27.6909C24.268 28.6043 22.1724 29.2511 19.5445 29.51C18.8063 29.5827 18.1033 29.618 17.4323 29.618C15.7157 29.618 14.2073 29.3899 12.8542 28.991C10.3035 28.2385 7.18426 25.6503 6.59368 21.7113C5.96344 17.5078 6.93304 14.0679 8.93946 11.6009C8.92845 11.58 8.91743 11.5591 8.90971 11.5359C8.90751 11.5282 8.6596 10.7779 8.50865 9.94159C8.28498 8.70314 8.39186 7.92966 8.83369 7.57818C9.12126 7.349 9.47054 7.23551 9.87822 7.23551C10.363 7.23551 10.9305 7.39638 11.5761 7.71921C12.094 7.97704 12.5623 8.28885 12.9049 8.53787C14.2514 7.90762 15.7509 7.50215 17.353 7.34349C17.84 7.29501 18.3226 7.27187 18.7997 7.27187C19.8905 7.27187 20.9471 7.39748 21.952 7.64429C22.2385 7.33357 22.6373 6.93692 23.0935 6.58323C23.8185 6.0202 24.4697 5.73813 25.0382 5.73813M25.0371 5.07593C24.3198 5.07593 23.5287 5.40648 22.6869 6.05986C22.3685 6.30667 22.049 6.59315 21.7316 6.91488C20.7885 6.71214 19.8034 6.60967 18.7975 6.60967C18.3006 6.60967 17.7915 6.63502 17.2858 6.6846C15.7498 6.83665 14.302 7.20466 12.9743 7.77871C12.5997 7.52529 12.2295 7.30603 11.8681 7.12643C11.1321 6.75952 10.4622 6.57331 9.87491 6.57331C9.31519 6.57331 8.82487 6.73749 8.4194 7.06032C7.55447 7.74896 7.68338 9.1009 7.85637 10.0584C7.95994 10.6346 8.10538 11.1657 8.19573 11.472C6.11218 14.2068 5.33099 17.7712 5.93699 21.8082C6.56613 25.9996 9.865 28.7971 12.6647 29.6235C14.1566 30.0642 15.7146 30.278 17.4301 30.278C18.1298 30.278 18.8625 30.2405 19.6073 30.1667C22.179 29.9122 24.3716 29.2929 26.3097 28.2737C28.8935 26.9152 31.5808 23.5249 31.377 19.2917C31.1798 15.2138 29.7155 11.8698 27.135 9.59562C27.1636 9.27499 27.2022 8.72848 27.1912 8.14451C27.1724 7.17271 27.0347 5.82297 26.053 5.31723C25.739 5.15527 25.3963 5.07373 25.036 5.07373L25.0371 5.07593Z\"\n fill=\"#DFD5FE\"\n />\n </g>\n </svg>\n );\n};\n\nexport default AssistantAvatar;\n","const UserAvatar = (props: any) => {\n return (\n <svg\n width=\"36\"\n height=\"36\"\n viewBox=\"0 0 36 36\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <mask\n id=\"mask0_126_24814\"\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"36\"\n height=\"36\"\n >\n <circle cx=\"18\" cy=\"18\" r=\"18\" fill=\"#D9D9D9\" />\n </mask>\n <g mask=\"url(#mask0_126_24814)\">\n <circle cx=\"18\" cy=\"18\" r=\"18\" fill=\"#F1F1F6\" />\n <g clip-path=\"url(#clip0_126_24814)\">\n <mask\n id=\"mask1_126_24814\"\n maskUnits=\"userSpaceOnUse\"\n x=\"-1\"\n y=\"0\"\n width=\"37\"\n height=\"36\"\n >\n <path\n d=\"M17.8888 36C27.8299 36 35.8888 27.9411 35.8888 18C35.8888 8.05887 27.8299 0 17.8888 0C7.94767 0 -0.111206 8.05887 -0.111206 18C-0.111206 27.9411 7.94767 36 17.8888 36Z\"\n fill=\"white\"\n />\n </mask>\n <g mask=\"url(#mask1_126_24814)\">\n <path\n d=\"M37.5707 -1.68335H-1.79456V37.6819H37.5707V-1.68335Z\"\n fill=\"#EFECF9\"\n />\n <path\n d=\"M12.2814 14.7556C12.2814 14.7556 14.3738 12.083 10.3158 14.3322C6.99376 16.1726 5.13184 19.3622 5.13184 19.3622L10.2467 23.0558C10.2467 23.0558 13.5328 17.889 12.2829 14.7542L12.2814 14.7556Z\"\n fill=\"#74492C\"\n />\n <path\n d=\"M23.1521 14.7556C23.1521 14.7556 21.0598 12.083 25.1177 14.3322C28.4398 16.1726 30.3017 19.3622 30.3017 19.3622L25.1868 23.0558C25.1868 23.0558 21.9007 17.889 23.1506 14.7542L23.1521 14.7556Z\"\n fill=\"#74492C\"\n />\n <path\n d=\"M26.2974 13.9783C26.4266 12.6725 25.748 11.5364 24.7816 11.4408C23.8153 11.3452 22.9272 12.3263 22.798 13.6321C22.6688 14.938 23.3475 16.0741 24.3138 16.1697C25.2801 16.2653 26.1682 15.2842 26.2974 13.9783Z\"\n fill=\"#F0BEBA\"\n />\n <path\n d=\"M11.1038 16.1679C12.0701 16.0723 12.7487 14.9362 12.6195 13.6303C12.4904 12.3245 11.6023 11.3434 10.6359 11.439C9.6696 11.5346 8.99096 12.6707 9.12015 13.9765C9.24934 15.2824 10.1374 16.2635 11.1038 16.1679Z\"\n fill=\"#F0BEBA\"\n />\n <path\n d=\"M13.7214 16.7141H21.735V29.3847C21.735 30.492 20.835 31.392 19.7277 31.392H15.7273C14.62 31.392 13.72 30.492 13.72 29.3847V16.7141H13.7214Z\"\n fill=\"#F2D1D2\"\n />\n <path\n d=\"M21.7365 24.8068C21.7365 24.8068 19.2266 25.0804 16.9341 24.1516C14.9944 23.3668 13.7214 21.3134 13.7214 21.3134V18.802H21.735V24.8068H21.7365Z\"\n fill=\"#F0BEBA\"\n />\n <path\n d=\"M17.716 3.95557C14.0123 3.95557 10.9811 6.98677 10.9811 10.6904V16.0357C10.9811 19.7394 13.995 22.7706 17.716 22.7706C21.4369 22.7706 24.4508 19.7394 24.4508 16.0357V10.6904C24.4508 6.98677 21.4196 3.95557 17.716 3.95557Z\"\n fill=\"#F2D1D2\"\n />\n <path\n d=\"M17.5144 14.4907C17.5144 14.4907 17.068 15.0739 17.5158 15.6946\"\n stroke=\"#E78990\"\n stroke-width=\"0.724832\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n />\n <path\n d=\"M13.2722 12.8375C13.1685 12.9138 13.7906 12.6229 14.4703 12.6042C15.3213 12.5811 15.6367 12.8303 15.7029 12.7079C15.7937 12.5408 15.0809 12.3594 14.4271 12.4386C13.8079 12.512 13.4537 12.7021 13.2708 12.8375H13.2722Z\"\n fill=\"#141418\"\n stroke=\"#141418\"\n stroke-width=\"0.454228\"\n stroke-miterlimit=\"10\"\n />\n <path\n d=\"M22.1599 12.8375C22.2636 12.9138 21.6415 12.6229 20.9618 12.6042C20.1108 12.5811 19.7954 12.8303 19.7292 12.7079C19.6384 12.5408 20.3512 12.3594 21.005 12.4386C21.6242 12.512 21.9784 12.7021 22.1613 12.8375H22.1599Z\"\n fill=\"#141418\"\n stroke=\"#141418\"\n stroke-width=\"0.454228\"\n stroke-miterlimit=\"10\"\n />\n <path\n d=\"M9.16097 9.99637C9.16961 10.7408 9.25745 11.6898 10.1978 12.7252C10.7378 13.3199 11.7602 13.4826 11.8984 11.972C12.0727 10.0669 16.1911 9.60037 17.0579 7.54405C17.6008 6.25813 17.4727 4.99813 15.5344 4.98517C10.8458 4.95061 9.13649 7.88101 9.15953 9.99781L9.16097 9.99637Z\"\n fill=\"#F0BEBA\"\n />\n <path\n d=\"M25.6965 9.99657C25.6878 10.7411 25.6 11.69 24.6597 12.7254C24.1197 13.3201 17.6742 11.1961 16.1104 7.71562C15.5373 6.43834 15.4307 4.57354 17.3603 4.41082C23.8691 3.86506 25.7195 7.87977 25.6965 9.99657Z\"\n fill=\"#F0BEBA\"\n />\n <g>\n <path\n d=\"M15.3156 14.5211C15.3156 15.002 15.0737 15.3174 14.7756 15.3174C14.4775 15.3174 14.2356 15.0006 14.2356 14.5211C14.2356 14.0416 14.4775 13.804 14.7756 13.804C15.0737 13.804 15.3156 14.0416 15.3156 14.5211Z\"\n fill=\"#232323\"\n />\n </g>\n <g>\n <path\n d=\"M20.1179 14.5211C20.1179 15.002 20.3598 15.3174 20.6579 15.3174C20.956 15.3174 21.1979 15.0006 21.1979 14.5211C21.1979 14.0401 20.956 13.804 20.6579 13.804C20.3598 13.804 20.1179 14.0416 20.1179 14.5211Z\"\n fill=\"#232323\"\n />\n </g>\n <g opacity=\"0.3\">\n <path\n d=\"M14.2817 15.6946C14.2817 16.2662 13.7719 16.7285 12.882 16.7285C11.9921 16.7285 11.4823 16.2648 11.4823 15.6946C11.4823 15.1243 11.9921 14.6606 12.882 14.6606C13.7719 14.6606 14.2817 15.1243 14.2817 15.6946Z\"\n fill=\"#E78990\"\n />\n <path\n d=\"M21.1519 15.6946C21.1519 16.2662 21.6616 16.7285 22.5515 16.7285C23.4415 16.7285 23.9512 16.2648 23.9512 15.6946C23.9512 15.1243 23.4415 14.6606 22.5515 14.6606C21.6616 14.6606 21.1519 15.1243 21.1519 15.6946Z\"\n fill=\"#E78990\"\n />\n </g>\n <path\n d=\"M8.95081 9.13823C8.95945 10.0699 9.05017 11.2579 10.0279 12.5539C10.5895 13.2969 11.6508 13.5014 11.7948 11.6107C11.9748 9.22607 16.2531 8.64143 17.1545 6.06815C17.7175 4.45823 17.5851 2.88287 15.5719 2.86415C10.7019 2.82095 8.92633 6.48863 8.95081 9.13823Z\"\n fill=\"#74492C\"\n />\n <path\n d=\"M26.127 9.13824C26.1184 10.0699 26.0277 11.2579 25.0499 12.5539C24.4883 13.297 17.7938 10.6402 16.1709 6.28272C15.5747 4.68432 15.4653 2.34864 17.4683 2.14704C24.2291 1.46304 26.1515 6.49008 26.127 9.13824Z\"\n fill=\"#74492C\"\n />\n <path\n d=\"M19.2453 17.8544C19.2453 18.5831 18.5656 19.1749 17.729 19.1749C16.8923 19.1749 16.2126 18.5845 16.2126 17.8544C16.2126 17.1244 16.8923 17.3476 17.729 17.3476C18.5656 17.3476 19.2453 17.1244 19.2453 17.8544Z\"\n fill=\"#E78990\"\n />\n <path\n d=\"M27.8838 26.9943C27.1379 25.8697 24.0952 25.6465 21.6011 25.3757C21.0669 26.99 19.8803 28.178 17.8873 28.178C15.7806 28.178 14.2398 26.522 13.7531 24.9797C11.2835 25.2548 8.52734 25.8841 7.7915 26.9943C4.8251 31.4713 8.17166 46.5365 9.82046 52.6277C10.1661 53.9036 10.2568 53.8633 11.3541 53.9482C15.0102 54.2319 20.4433 54.373 24.1801 54.1023C25.3523 54.0173 25.3998 53.9237 25.7843 52.5615C27.6289 46.0441 30.8488 31.4698 27.8838 26.9943Z\"\n fill=\"white\"\n />\n <path\n d=\"M8.51447 26.3333C4.85111 27.216 4.61927 29.2838 -1.22713 46.9497C-4.61545 57.1867 -5.68969 59.9011 -6.07993 61.2878C-6.12745 61.4577 -6.03817 61.6363 -5.87401 61.6997L-1.41865 63.4133C-1.24729 63.4795 -1.05433 63.3989 -0.982326 63.2304L11.2764 36.7517L8.51447 26.3347V26.3333Z\"\n fill=\"#BFAAFC\"\n />\n <path\n d=\"M27.0069 26.4426C30.6702 27.3253 30.7293 29.2837 36.5771 46.9482C39.9654 57.1852 41.0397 59.8996 41.4299 61.2863C41.4774 61.4562 41.3882 61.6348 41.224 61.6981L36.7686 63.4117C36.5973 63.478 36.4043 63.3973 36.3323 63.2289L24.0736 36.7501L27.0083 26.4426H27.0069Z\"\n fill=\"#BFAAFC\"\n />\n <path\n d=\"M10.3403 29.7935H25.4373\"\n stroke=\"#6725EC\"\n stroke-width=\"0.717584\"\n stroke-miterlimit=\"10\"\n />\n <path\n d=\"M10.3403 31.9924H25.4373\"\n stroke=\"#6725EC\"\n stroke-width=\"0.717584\"\n stroke-miterlimit=\"10\"\n />\n <path\n d=\"M10.3403 34.1929H25.4373\"\n stroke=\"#6725EC\"\n stroke-width=\"0.717584\"\n stroke-miterlimit=\"10\"\n />\n <path\n d=\"M13.383 24.4727L14.2355 43.9112H9.65919L8.06079 26.5376C8.06079 26.5376 10.8458 24.7218 13.383 24.4727Z\"\n fill=\"#BFAAFC\"\n />\n <path\n d=\"M22.3946 24.4727L21.5421 43.9112H26.1184L27.7168 26.5376C27.7168 26.5376 24.9319 24.7218 22.3946 24.4727Z\"\n fill=\"#BFAAFC\"\n />\n </g>\n </g>\n </g>\n <defs>\n <clipPath id=\"clip0_126_24814\">\n <rect\n width=\"36\"\n height=\"36\"\n fill=\"white\"\n transform=\"translate(-0.111206)\"\n />\n </clipPath>\n </defs>\n </svg>\n );\n};\n\nexport default UserAvatar;\n","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport SystemDefaultPropsProvider, { useDefaultProps as useSystemDefaultProps } from '@mui/system/DefaultPropsProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction DefaultPropsProvider(props) {\n return /*#__PURE__*/_jsx(SystemDefaultPropsProvider, _extends({}, props));\n}\nprocess.env.NODE_ENV !== \"production\" ? DefaultPropsProvider.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n value: PropTypes.object.isRequired\n} : void 0;\nexport default DefaultPropsProvider;\nexport function useDefaultProps(params) {\n return useSystemDefaultProps(params);\n}","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getSvgIconUtilityClass(slot) {\n return generateUtilityClass('MuiSvgIcon', slot);\n}\nconst svgIconClasses = generateUtilityClasses('MuiSvgIcon', ['root', 'colorPrimary', 'colorSecondary', 'colorAction', 'colorError', 'colorDisabled', 'fontSizeInherit', 'fontSizeSmall', 'fontSizeMedium', 'fontSizeLarge']);\nexport default svgIconClasses;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"color\", \"component\", \"fontSize\", \"htmlColor\", \"inheritViewBox\", \"titleAccess\", \"viewBox\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport capitalize from '../utils/capitalize';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport styled from '../styles/styled';\nimport { getSvgIconUtilityClass } from './svgIconClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n color,\n fontSize,\n classes\n } = ownerState;\n const slots = {\n root: ['root', color !== 'inherit' && `color${capitalize(color)}`, `fontSize${capitalize(fontSize)}`]\n };\n return composeClasses(slots, getSvgIconUtilityClass, classes);\n};\nconst SvgIconRoot = styled('svg', {\n name: 'MuiSvgIcon',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.color !== 'inherit' && styles[`color${capitalize(ownerState.color)}`], styles[`fontSize${capitalize(ownerState.fontSize)}`]];\n }\n})(({\n theme,\n ownerState\n}) => {\n var _theme$transitions, _theme$transitions$cr, _theme$transitions2, _theme$typography, _theme$typography$pxT, _theme$typography2, _theme$typography2$px, _theme$typography3, _theme$typography3$px, _palette$ownerState$c, _palette, _palette2, _palette3;\n return {\n userSelect: 'none',\n width: '1em',\n height: '1em',\n display: 'inline-block',\n // the <svg> will define the property that has `currentColor`\n // for example heroicons uses fill=\"none\" and stroke=\"currentColor\"\n fill: ownerState.hasSvgAsChild ? undefined : 'currentColor',\n flexShrink: 0,\n transition: (_theme$transitions = theme.transitions) == null || (_theme$transitions$cr = _theme$transitions.create) == null ? void 0 : _theme$transitions$cr.call(_theme$transitions, 'fill', {\n duration: (_theme$transitions2 = theme.transitions) == null || (_theme$transitions2 = _theme$transitions2.duration) == null ? void 0 : _theme$transitions2.shorter\n }),\n fontSize: {\n inherit: 'inherit',\n small: ((_theme$typography = theme.typography) == null || (_theme$typography$pxT = _theme$typography.pxToRem) == null ? void 0 : _theme$typography$pxT.call(_theme$typography, 20)) || '1.25rem',\n medium: ((_theme$typography2 = theme.typography) == null || (_theme$typography2$px = _theme$typography2.pxToRem) == null ? void 0 : _theme$typography2$px.call(_theme$typography2, 24)) || '1.5rem',\n large: ((_theme$typography3 = theme.typography) == null || (_theme$typography3$px = _theme$typography3.pxToRem) == null ? void 0 : _theme$typography3$px.call(_theme$typography3, 35)) || '2.1875rem'\n }[ownerState.fontSize],\n // TODO v5 deprecate, v6 remove for sx\n color: (_palette$ownerState$c = (_palette = (theme.vars || theme).palette) == null || (_palette = _palette[ownerState.color]) == null ? void 0 : _palette.main) != null ? _palette$ownerState$c : {\n action: (_palette2 = (theme.vars || theme).palette) == null || (_palette2 = _palette2.action) == null ? void 0 : _palette2.active,\n disabled: (_palette3 = (theme.vars || theme).palette) == null || (_palette3 = _palette3.action) == null ? void 0 : _palette3.disabled,\n inherit: undefined\n }[ownerState.color]\n };\n});\nconst SvgIcon = /*#__PURE__*/React.forwardRef(function SvgIcon(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiSvgIcon'\n });\n const {\n children,\n className,\n color = 'inherit',\n component = 'svg',\n fontSize = 'medium',\n htmlColor,\n inheritViewBox = false,\n titleAccess,\n viewBox = '0 0 24 24'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const hasSvgAsChild = /*#__PURE__*/React.isValidElement(children) && children.type === 'svg';\n const ownerState = _extends({}, props, {\n color,\n component,\n fontSize,\n instanceFontSize: inProps.fontSize,\n inheritViewBox,\n viewBox,\n hasSvgAsChild\n });\n const more = {};\n if (!inheritViewBox) {\n more.viewBox = viewBox;\n }\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(SvgIconRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n focusable: \"false\",\n color: htmlColor,\n \"aria-hidden\": titleAccess ? undefined : true,\n role: titleAccess ? 'img' : undefined,\n ref: ref\n }, more, other, hasSvgAsChild && children.props, {\n ownerState: ownerState,\n children: [hasSvgAsChild ? children.props.children : children, titleAccess ? /*#__PURE__*/_jsx(\"title\", {\n children: titleAccess\n }) : null]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? SvgIcon.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Node passed into the SVG element.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * You can use the `htmlColor` prop to apply a color attribute to the SVG element.\n * @default 'inherit'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'action', 'disabled', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The fontSize applied to the icon. Defaults to 24px, but can be configure to inherit font size.\n * @default 'medium'\n */\n fontSize: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'large', 'medium', 'small']), PropTypes.string]),\n /**\n * Applies a color attribute to the SVG element.\n */\n htmlColor: PropTypes.string,\n /**\n * If `true`, the root node will inherit the custom `component`'s viewBox and the `viewBox`\n * prop will be ignored.\n * Useful when you want to reference a custom `component` and have `SvgIcon` pass that\n * `component`'s viewBox to the root node.\n * @default false\n */\n inheritViewBox: PropTypes.bool,\n /**\n * The shape-rendering attribute. The behavior of the different options is described on the\n * [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering).\n * If you are having issues with blurry icons you should investigate this prop.\n */\n shapeRendering: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Provides a human-readable title for the element that contains it.\n * https://www.w3.org/TR/SVG-access/#Equivalent\n */\n titleAccess: PropTypes.string,\n /**\n * Allows you to redefine what the coordinates without units mean inside an SVG element.\n * For example, if the SVG element is 500 (width) by 200 (height),\n * and you pass viewBox=\"0 0 50 20\",\n * this means that the coordinates inside the SVG will go from the top left corner (0,0)\n * to bottom right (50,20) and each unit will be worth 10px.\n * @default '0 0 24 24'\n */\n viewBox: PropTypes.string\n} : void 0;\nSvgIcon.muiName = 'SvgIcon';\nexport default SvgIcon;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport SvgIcon from '../SvgIcon';\n\n/**\n * Private module reserved for @mui packages.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function createSvgIcon(path, displayName) {\n function Component(props, ref) {\n return /*#__PURE__*/_jsx(SvgIcon, _extends({\n \"data-testid\": `${displayName}Icon`,\n ref: ref\n }, props, {\n children: path\n }));\n }\n if (process.env.NODE_ENV !== 'production') {\n // Need to set `displayName` on the inner component for React.memo.\n // React prior to 16.14 ignores `displayName` on the wrapper.\n Component.displayName = `${displayName}Icon`;\n }\n Component.muiName = SvgIcon.muiName;\n return /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(Component));\n}","'use client';\n\nimport { unstable_ClassNameGenerator as ClassNameGenerator } from '@mui/utils';\nexport { default as capitalize } from './capitalize';\nexport { default as createChainedFunction } from './createChainedFunction';\nexport { default as createSvgIcon } from './createSvgIcon';\nexport { default as debounce } from './debounce';\nexport { default as deprecatedPropType } from './deprecatedPropType';\nexport { default as isMuiElement } from './isMuiElement';\nexport { default as ownerDocument } from './ownerDocument';\nexport { default as ownerWindow } from './ownerWindow';\nexport { default as requirePropFactory } from './requirePropFactory';\nexport { default as setRef } from './setRef';\nexport { default as unstable_useEnhancedEffect } from './useEnhancedEffect';\nexport { default as unstable_useId } from './useId';\nexport { default as unsupportedProp } from './unsupportedProp';\nexport { default as useControlled } from './useControlled';\nexport { default as useEventCallback } from './useEventCallback';\nexport { default as useForkRef } from './useForkRef';\nexport { default as useIsFocusVisible } from './useIsFocusVisible';\n// TODO: remove this export once ClassNameGenerator is stable\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const unstable_ClassNameGenerator = {\n configure: generator => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(['MUI: `ClassNameGenerator` import from `@mui/material/utils` is outdated and might cause unexpected issues.', '', \"You should use `import { unstable_ClassNameGenerator } from '@mui/material/className'` instead\", '', 'The detail of the issue: https://github.com/mui/material-ui/issues/30011#issuecomment-1024993401', '', 'The updated documentation: https://mui.com/guides/classname-generator/'].join('\\n'));\n }\n ClassNameGenerator.configure(generator);\n }\n};","\"use strict\";\n'use client';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function () {\n return _utils.createSvgIcon;\n }\n});\nvar _utils = require(\"@mui/material/utils\");","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2\"\n}), 'Circle');","import React from 'react';\nimport CircleIcon from '@mui/icons-material/Circle';\nimport { Box } from '@mui/material';\n\nconst TypingIndicator: React.FC = () => {\n return (\n <Box display=\"flex\" alignItems=\"center\">\n <Box display=\"flex\" ml={1}>\n <CircleIcon className=\"dot first-dot\" />\n <CircleIcon className=\"dot second-dot\" />\n <CircleIcon className=\"dot third-dot\" />\n </Box>\n\n <style>\n {`\n @keyframes blink {\n 0%, 20% {\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n }\n\n .dot {\n font-size: 0.8rem;\n margin-left: 3px;\n opacity: 0;\n }\n\n .first-dot {\n animation: blink 1.5s infinite 0s;\n }\n\n .second-dot {\n animation: blink 1.5s infinite 0.2s;\n }\n\n .third-dot {\n animation: blink 1.5s infinite 0.4s;\n }\n `}\n </style>\n </Box>\n );\n};\n\nexport default TypingIndicator;\n","import React from 'react';\nimport { Box, Stack, styled, useTheme } from '@mui/material';\n\nimport type { SxProps } from '@mui/material';\nexport type SoundVisualizerVariant = 'both' | 'bar' | 'circle';\nexport interface SoundVisualizerProps {\n analyser: AnalyserNode | null;\n sensitivity?: number;\n decay?: number;\n variant?: SoundVisualizerVariant;\n bgColor?: string;\n defaultBarColor?: string;\n onClickRecord?: () => void;\n visualContainerStyle?: SxProps;\n visualBoxStyle?: SxProps;\n}\n\nexport const SoundVisualizer = ({\n analyser,\n sensitivity = 3,\n decay = 0.5,\n variant = 'bar',\n bgColor,\n defaultBarColor = '#D8D8E2',\n visualContainerStyle = {},\n visualBoxStyle = {},\n onClickRecord,\n}: SoundVisualizerProps) => {\n const theme = useTheme();\n const TOTAL_BARS = 17;\n const [filledBars, setFilledBars] = React.useState(0);\n\n React.useEffect(() => {\n if (!analyser) return;\n analyser.fftSize = 128;\n\n const dataArray = new Uint8Array(analyser.frequencyBinCount);\n let prevVolume = 0;\n\n const update = () => {\n analyser.getByteFrequencyData(dataArray);\n const avg = dataArray.reduce((acc, v) => acc + v, 0) / dataArray.length;\n\n const scaled = Math.min(avg * sensitivity, 255);\n const smooth = prevVolume * decay + scaled * (1 - decay);\n prevVolume = smooth;\n\n setFilledBars(Math.round((smooth / 255) * TOTAL_BARS));\n requestAnimationFrame(update);\n };\n\n update();\n return () => setFilledBars(0);\n }, [analyser, sensitivity, decay]);\n\n return (\n <Stack\n alignItems=\"center\"\n justifyContent=\"center\"\n width=\"100%\"\n position=\"relative\"\n sx={{\n ...visualContainerStyle,\n }}\n >\n {(variant === 'bar' || variant === 'both') && (\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n p=\"6px 0 7.5px\"\n width=\"100%\"\n gap=\"11px\"\n bgcolor={bgColor ?? theme.palette.grey[50]}\n zIndex={1}\n >\n {Array.from({ length: TOTAL_BARS }).map((_, i) => (\n <WaveBar\n key={i}\n isFilled={i < filledBars}\n defaultBarColor={defaultBarColor ?? theme.palette.grey[200]}\n />\n ))}\n </Box>\n )}\n </Stack>\n );\n};\n\nconst WaveBar = styled(Box) <{ isFilled: boolean; defaultBarColor: string }>`\n width: 11px;\n height: 34px;\n border-radius: 11px;\n background-color: ${({ isFilled, defaultBarColor, theme }) =>\n isFilled ? theme.palette.primary.main : defaultBarColor};\n transition: background-color 0.1s ease-in-out;\n`;\n\nexport default SoundVisualizer;\n","import React, { useEffect, useRef, useState } from 'react';\nimport {\n EliceAudioPlayer,\n EliceButton,\n ReadyRecord,\n Recording,\n RecordPause,\n RecordPlay,\n} from '@elicecontents/content-ui';\nimport { Button, Stack, styled, Typography } from '@mui/material';\n\nimport { SoundVisualizer } from '../sound-visualizer';\nimport { type AudioStep, useRecorder } from './RecorderContext';\n\nimport type { SoundVisualizerVariant } from '@elicecontents/content-ui';\nimport type { SxProps } from '@mui/material';\n\nexport type RecorderStep = 'ready' | 'recording' | 'pause' | 'waiting';\nexport type RecorderType = 'needPause' | 'needWaiting' | 'allNeed' | 'notNeed';\n\nexport interface EliceRecorderStepProps {\n onAudioReady: (file: File) => void;\n onTransform?: () => void;\n type?: RecorderType;\n visualType?: SoundVisualizerVariant;\n isReadyVisual?: boolean;\n onRecord?: () => void;\n onResume?: () => void;\n onPause?: () => void;\n defaultBarColor?: string;\n closeRecorder?: () => void;\n onTranscribingChange?: (value: boolean) => void;\n isLoadingMessage?: boolean;\n forcedStep?: AudioStep;\n sx?: SxProps;\n onRecordStep?: (step: AudioStep) => void;\n initFile?: File;\n disabled?: boolean;\n isNotAudioPlayer?: boolean;\n isNotRecordingPlayer?: boolean;\n notNeedSubmit?: boolean;\n}\n\nconst EliceRecorderStep = ({\n onAudioReady,\n onTransform,\n visualType = 'bar',\n onRecord,\n type = 'notNeed',\n isReadyVisual = false,\n onResume,\n onPause,\n onTranscribingChange,\n forcedStep,\n closeRecorder,\n defaultBarColor,\n sx,\n onRecordStep,\n initFile,\n disabled = false,\n isNotAudioPlayer = false,\n isNotRecordingPlayer = false,\n notNeedSubmit = false,\n}: EliceRecorderStepProps) => {\n const {\n state: recorderState,\n startRecording,\n stopRecording,\n pauseRecording,\n resumeRecording,\n setIsRecording,\n setStep,\n } = useRecorder();\n const [audioUrl, setAudioUrl] = useState<string>('');\n const currentStep = forcedStep ?? recorderState.step;\n\n const audioRef = useRef<HTMLAudioElement | null>(null);\n const [isPlaying, setIsPlaying] = useState(false);\n\n const handleStart = async () => {\n onTranscribingChange?.(true);\n onRecord?.();\n\n await startRecording(async file => {\n const arrayBuffer = await file.arrayBuffer();\n const audioContext = new AudioContext();\n const audioBuffer = await audioContext.decodeAudioData(arrayBuffer);\n const wavBuffer = audioBufferToWav(audioBuffer);\n const wavFile = new Blob([wavBuffer], { type: 'audio/wav' });\n const wavFileWithName = new File([wavFile], 'recorded_audio.wav', {\n type: 'audio/wav',\n });\n onAudioReady(wavFileWithName);\n const url = URL.createObjectURL(file);\n setAudioUrl(url);\n });\n };\n\n const firstTimeInit = React.useRef(false);\n\n React.useEffect(() => {\n if (initFile && !firstTimeInit.current) {\n const url = URL.createObjectURL(initFile);\n setAudioUrl(url);\n setStep('waiting');\n firstTimeInit.current = true;\n }\n\n if (!initFile) {\n setStep('ready');\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [initFile]);\n\n const handlePause = () => {\n onPause?.();\n pauseRecording();\n };\n\n const handleResume = () => {\n onResume?.();\n resumeRecording();\n };\n\n const handleStop = () => {\n stopRecording(false);\n onTranscribingChange?.(false);\n };\n\n const handleSubmit = () => {\n onTransform?.();\n closeRecorder?.();\n stopRecording(true);\n setIsRecording(false);\n };\n\n const handleOnlySubmit = () => {\n stopRecording(true);\n onTranscribingChange?.(false);\n onTransform?.();\n closeRecorder?.();\n setIsRecording(false);\n };\n\n const handlePlayPause = () => {\n if (audioRef.current) {\n if (isPlaying) {\n audioRef.current.pause();\n setIsPlaying(false);\n } else {\n audioRef.current.currentTime = 0;\n audioRef.current\n .play()\n .catch(e => console.error('Audio play failed', e));\n setIsPlaying(true);\n }\n }\n };\n\n useEffect(() => {\n if (isNotAudioPlayer && audioUrl) {\n audioRef.current = new Audio(audioUrl);\n audioRef.current.onended = () => {\n setIsPlaying(false);\n if (audioRef.current) audioRef.current.currentTime = 0;\n };\n }\n return () => {\n if (audioRef.current) {\n audioRef.current.pause();\n audioRef.current = null;\n }\n };\n }, [audioUrl, isNotAudioPlayer]);\n\n useEffect(() => {\n onRecordStep?.(currentStep);\n }, [currentStep, onRecordStep]);\n\n if (!currentStep) {\n return <SkeletonVisualizerBox sx={sx} />;\n }\n return (\n <StyledVisualizerBox sx={sx ? (currentStep !== 'ready' ? sx : {}) : {}}>\n {currentStep === 'ready' && (\n <>\n {!isReadyVisual && (\n <SoundVisualizer\n analyser={recorderState.analyser}\n variant={visualType}\n bgColor={'transparnet'}\n defaultBarColor={defaultBarColor}\n />\n )}\n <StyledRecorderButton onClick={handleStart} step={currentStep}>\n <ReadyRecord />\n <Typography variant='subtitle2'>녹음 시작</Typography>\n </StyledRecorderButton>\n </>\n )}\n {currentStep === 'recording' && (\n <>\n {!isNotRecordingPlayer && (\n <SoundVisualizer\n analyser={recorderState.analyser}\n variant={visualType}\n defaultBarColor={defaultBarColor}\n bgColor={'transparnet'}\n />\n )}\n <StyledVisualizerBoxButtonContainer>\n {(type === 'needPause' || type === 'allNeed') && (\n <StyledPauseButton\n onClick={handlePause}\n recorderType={type}\n isRecording={currentStep === 'recording'}\n >\n <Recording color=\"#485EAD\" squareColor=\"#0A379B\" />\n <Typography variant=\"subtitle2\">일시 정지</Typography>\n </StyledPauseButton>\n )}\n <StyledRecorderButton\n onClick={\n type === 'needPause' ||\n type === 'allNeed' ||\n type === 'needWaiting'\n ? handleStop\n : handleOnlySubmit\n }\n recorderType={type}\n step={currentStep}\n >\n <Recording />\n <Typography variant=\"subtitle2\">녹음 완료</Typography>\n </StyledRecorderButton>\n </StyledVisualizerBoxButtonContainer>\n </>\n )}\n {currentStep === 'pause' && (\n <>\n {!isNotAudioPlayer && (\n <SoundVisualizer\n analyser={null}\n variant={visualType}\n bgColor={'transparnet'}\n />\n )}\n <StyledVisualizerBoxButtonContainer>\n {(type === 'needPause' || type === 'allNeed') && (\n <StyledPauseButton onClick={handleResume} recorderType={type}>\n <Recording color=\"#485EAD\" squareColor=\"#0A379B\" />\n <Typography variant=\"subtitle2\">이어서 녹음</Typography>\n </StyledPauseButton>\n )}\n <StyledRecorderButton\n onClick={handleStop}\n step={currentStep}\n recorderType={type}\n >\n <Recording />\n <Typography variant=\"subtitle2\">녹음 완료</Typography>\n </StyledRecorderButton>\n </StyledVisualizerBoxButtonContainer>\n </>\n )}\n {currentStep === 'waiting' &&\n (type === 'needWaiting' || type === 'allNeed') && (\n <>\n {isNotAudioPlayer ? (\n <StyledVisualizerBoxButtonContainer>\n <StyledPauseButton\n onClick={handlePlayPause}\n recorderType={type}\n >\n {isPlaying ? <RecordPause /> : <RecordPlay />}\n <Typography variant=\"subtitle2\">{isPlaying ? '정지' : '재생'}</Typography>\n </StyledPauseButton>\n <StyledRecorderButton\n disabled={disabled}\n onClick={handleStart}\n step={currentStep}\n >\n <ReadyRecord />\n <Typography variant=\"subtitle2\">다시 녹음</Typography>\n </StyledRecorderButton>\n {!notNeedSubmit && (\n <EliceButton disabled={disabled} onClick={handleSubmit}>\n <Typography variant=\"subtitle2\">완료</Typography>\n </EliceButton>\n )}\n </StyledVisualizerBoxButtonContainer>\n ) : (\n <>\n {audioUrl && <EliceAudioPlayer src={audioUrl} />}\n <StyledVisualizerBoxButtonContainer>\n <StyledRecorderButton\n disabled={disabled}\n onClick={handleStart}\n step={currentStep}\n >\n <ReadyRecord />\n <Typography variant=\"subtitle2\">다시 녹음</Typography>\n </StyledRecorderButton>\n {!notNeedSubmit && (\n <EliceButton disabled={disabled} onClick={handleSubmit}>\n <Typography variant=\"subtitle2\">완료</Typography>\n </EliceButton>\n )}\n </StyledVisualizerBoxButtonContainer>\n </>\n )}\n </>\n )}\n </StyledVisualizerBox>\n );\n};\n\nexport default EliceRecorderStep;\n\nconst StyledVisualizerBox = styled(Stack)`\n width: 100%;\n font-size: 20px;\n background-color: transparent;\n border-radius: 1.2em;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 1.6em;\n`;\nconst SkeletonVisualizerBox = styled(Stack)`\n width: 100%;\n font-size: 20px;\n height: 10.6em;\n border-radius: 1.2em;\n background: linear-gradient(\n 90deg,\n #e0e0e0 25%,\n #f5f5f5 37%,\n #f5f5f5 63%,\n #e0e0e0 75%\n );\n background-size: 400% 100%;\n animation: skeleton-loading 1.5s ease-in-out infinite;\n\n @keyframes skeleton-loading {\n 0% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: -100% 50%;\n }\n }\n`;\n\nconst StyledVisualizerBoxButtonContainer = styled(Stack)`\n width: 100%;\n display: flex;\n flex-direction: row;\n gap: 1.2em;\n justify-content: center;\n align-items: center;\n`;\n\nconst StyledRecorderButtonDefault = styled(Button)`\n display: flex;\n border: none;\n height: 46px;\n padding: 12px 20px 12px 17px;\n justify-content: center;\n align-items: center;\n gap: 0.4em;\n cursor: pointer;\n flex-shrink: 0;\n border-radius: 16px;\n`;\n\nconst StyledRecorderButton = styled(StyledRecorderButtonDefault) <{\n step: RecorderStep;\n recorderType?: RecorderType | undefined;\n}>`\n width: ${({ recorderType }) =>\n recorderType === 'needPause' || recorderType === 'allNeed'\n ? '155px'\n : '155px'};\n color: ${({ step }) =>\n step === 'ready' || step === 'waiting' ? '#fff' : '#FF5D58'};\n background: ${({ step }) =>\n step === 'ready' || step === 'waiting' ? '#FF5D58' : '#FBE0E0'};\n\n &:hover {\n background: #FFB1AF !important;\n color: #FF5D58 !important;\n }\n`;\n\nconst StyledPauseButton = styled(StyledRecorderButtonDefault) <{\n recorderType?: RecorderType | undefined;\n isRecording?: boolean;\n}>`\n width: ${({ recorderType }) =>\n recorderType === 'needPause' || recorderType === 'allNeed'\n ? '155px'\n : '155px'};\n color: #0a379b;\n background: #bec4e1;\n\n @keyframes blinker {\n 50% {\n background-color: #0a379b;\n color: #bec4e1;\n }\n }\n\n animation: ${({ isRecording }) =>\n isRecording ? 'blinker 1s linear infinite' : 'none'};\n\n &:hover {\n color: #bec4e1;\n background-color: #0a379b;\n }\n`;\n\nfunction audioBufferToWav(buffer: AudioBuffer): ArrayBuffer {\n const numOfChannels = buffer.numberOfChannels; // 채널 수 가져오기\n const sampleRate = buffer.sampleRate; // 샘플 레이트 가져오기\n const format = numOfChannels === 1 ? 1 : 2; // 포맷 설정 (1: mono, 2: stereo)\n // WAV 데이터의 총 바이트 길이 계산 (헤더 44바이트 포함)\n const byteLength = buffer.length * numOfChannels * 2 + 44; // 파일 전체 크기 (오디오 샘플의 총 수 * 오디오 채널 수 * 2(16bit-PCM) + 44(wav 헤더의 크기))\n const wavArrayBuffer = new ArrayBuffer(byteLength); // WAV 데이터 저장을 위한 ArrayBuffer 생성\n const wavView = new DataView(wavArrayBuffer); // ArrayBuffer를 다루기 위한 DataView 생성\n // WAV 헤더 작성\n let offset = 0; // 현재 오프셋 초기화\n const writeString = (str: string) => {\n // 문자열을 DataView에 쓰는 함수\n for (let i = 0; i < str.length; i++) {\n wavView.setUint8(offset + i, str.charCodeAt(i)); // 문자열의 각 문자에 대한 ASCII 값을 설정\n }\n offset += str.length; // 오프셋 업데이트\n };\n\n writeString('RIFF'); // Chunk ID : RIFF 헤더 시작\n wavView.setUint32(offset, byteLength - 8, true); // Chunk Size : 전체 데이터 크기 설정(전체 파일 크기 - Chunk ID, Chunk Size)\n offset += 4; // 오프셋 업데이트\n writeString('WAVE'); // Format\n\n writeString('fmt '); // fmt ChunkID : fmt 청크 시작\n wavView.setUint32(offset, 16, true); // Subchunk1Size (16바이트)\n offset += 4; // 오프셋 업데이트\n wavView.setUint16(offset, 1, true); // AudioFormat (1: PCM)\n offset += 2; // 오프셋 업데이트\n wavView.setUint16(offset, format, true); // NumChannels 설정\n offset += 2; // 오프셋 업데이트\n wavView.setUint32(offset, sampleRate, true); // SampleRate 설정\n offset += 4; // 오프셋 업데이트\n wavView.setUint32(offset, sampleRate * numOfChannels * 2, true); // ByteRate 설정\n offset += 4; // 오프셋 업데이트\n wavView.setUint16(offset, numOfChannels * 2, true); // BlockAlign 설정\n offset += 2; // 오프셋 업데이트\n wavView.setUint16(offset, 16, true); // BitsPerSample 설정\n offset += 2; // 오프셋 업데이트\n\n writeString('data'); // data 청크 시작\n wavView.setUint32(offset, byteLength - offset - 4, true); // Subchunk2Size 설정\n offset += 4; // 오프셋 업데이트\n // PCM 데이터 복사, Raw Data 삽입\n for (let channel = 0; channel < numOfChannels; channel++) {\n // 각 채널에 대해 반복\n const channelData = buffer.getChannelData(channel); // 해당 채널의 데이터 가져오기\n for (let i = 0; i < channelData.length; i++) {\n // 각 샘플에 대해 반복\n wavView.setInt16(\n // PCM 데이터를 WAV 포맷으로 변환하여 DataView에 설정\n 44 + i * 2 * numOfChannels + channel * 2, // WAV 데이터 시작 위치 계산\n channelData[i] * 0x7fff, // 샘플 값을 16-bit PCM 형식으로 변환\n true // little-endian 형식\n );\n }\n }\n return wavArrayBuffer;\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { useAIDTMediaQuery } from \"../../hooks\";\nimport { Stack, Input, Typography, useTheme, Theme, Box } from \"@mui/material\";\nimport { Micro, ReadyRecord, Reset, SendArrow } from \"../../icons\";\nimport { EliceIconButton } from \"../icon-button\";\nimport { RecorderProvider, useRecorder } from \"../recorder-step/RecorderContext\";\n\nimport type { RecorderType } from \"../recorder-step/RecorderStep\";\nimport AIAvatar from '../../assets/AIAvatar.png';\nimport AssistantAvatar from \"./AssistantAvatar\";\nimport UserAvatar from \"./UserAvatar\";\nimport TypingIndicator from \"./TypingIndicator\";\nimport { EliceRecorderStep } from \"../recorder-step\";\n\nexport type EliceMessageItem = { role: \"system\" | \"user\" | \"assistant\"; content: string }\n\nexport interface EliceChatProps {\n placeholder?: string;\n messages: EliceMessageItem[];\n content: string;\n onReset: () => void;\n onChange: (text: string) => void;\n onSend: (text: string) => void;\n onRecord?: () => void;\n setAudioFile?: (file: File | null) => void;\n onTransform?: () => void;\n height?: string;\n onTranscribingChange?: (value: boolean) => void;\n isLoadingMessage?: boolean;\n isDisabled?: boolean;\n backgroundImage?: string;\n CustomAssistantAvatar?: React.ReactNode;\n CustomUserAvatar?: React.ReactNode;\n type?: string;\n recorderType?: RecorderType;\n isOnlyRecord: boolean;\n isRecordDisabled?: boolean;\n isResetDisabled?: boolean;\n maxRows?: number;\n}\n\nconst EliceChat = (props: React.ComponentProps<typeof EliceChatContainer>) => {\n return (\n <RecorderProvider>\n <EliceChatContainer {...props} />\n </RecorderProvider>\n );\n};\n\nconst EliceChatContainer = ({\n placeholder = \"AI와 대화를 시작해 보세요.\",\n messages = [],\n content = \"\",\n onReset,\n onSend,\n onChange,\n onRecord,\n onTranscribingChange,\n setAudioFile,\n onTransform,\n isLoadingMessage,\n CustomAssistantAvatar,\n CustomUserAvatar,\n isDisabled = false,\n backgroundImage,\n height = \"100%\",\n recorderType = 'notNeed',\n isOnlyRecord = false,\n isResetDisabled = false,\n isRecordDisabled = false,\n maxRows = 8,\n}: EliceChatProps) => {\n const theme = useTheme();\n const [inputValue, setInputValue] = useState(content);\n const scrollRef = useRef<HTMLDivElement>(null);\n const { state: recorderState, setIsRecording, resetAnalyzer } = useRecorder();\n\n useEffect(() => {\n if (scrollRef.current) {\n scrollRef.current.scrollIntoView({ behavior: \"smooth\" });\n }\n }, [messages, isLoadingMessage]);\n useEffect(() => {\n if (recorderState.step === \"ready\") {\n resetAnalyzer();\n }\n }, [recorderState.step])\n\n const onClickRecordSubmit = () => {\n onTransform?.();\n }\n\n const onClickCloseIsRecording = () => {\n onTranscribingChange?.(false);\n setIsRecording(false);\n }\n\n const handleSend = () => {\n if (inputValue.trim()) {\n onSend(inputValue);\n setInputValue(\"\");\n }\n };\n\n return (\n <StyledChatContainer\n theme={theme}\n height={height}\n backgroundImage={backgroundImage}\n >\n {\n (recorderState.isRecording && setAudioFile) && (\n <RecordingOverlay onClick={onClickCloseIsRecording}>\n <OverlayContent onClick={(e) => e.stopPropagation()}>\n <EliceRecorderStep\n closeRecorder={onClickCloseIsRecording}\n onAudioReady={setAudioFile}\n onRecord={onRecord}\n onTransform={onTransform}\n type={recorderType}\n visualType=\"bar\"\n onTranscribingChange={onTranscribingChange}\n isLoadingMessage={isLoadingMessage}\n />\n </OverlayContent>\n </RecordingOverlay>\n )\n }\n <EliceChat.MessageList\n messages={messages}\n isLoadingMessage={isLoadingMessage}\n scrollRef={scrollRef}\n CustomAssistantAvatar={CustomAssistantAvatar}\n CustomUserAvatar={CustomUserAvatar}\n />\n <EliceChat.InputArea\n placeHolder={placeholder}\n value={inputValue}\n onChange={(e) => {\n setInputValue(e.target.value);\n onChange(e.target.value);\n }}\n isOnlyRecord={isOnlyRecord}\n setAudioFile={setAudioFile}\n onTransform={onClickRecordSubmit}\n onSend={handleSend}\n onReset={onReset}\n onRecord={onRecord}\n onTranscribingChange={onTranscribingChange}\n isDisabled={isDisabled}\n type={recorderType}\n isResetDisabled={isResetDisabled}\n isRecordDisabled={isRecordDisabled}\n maxRows={maxRows}\n />\n </StyledChatContainer>\n );\n};\n\n// ✅ 메시지 리스트 컴포넌트\nEliceChat.MessageList = ({\n messages,\n isLoadingMessage,\n scrollRef,\n height = \"100%\",\n CustomAssistantAvatar,\n CustomUserAvatar,\n}: {\n messages: { role: \"system\" | \"user\" | \"assistant\"; content: string }[];\n isLoadingMessage?: boolean;\n scrollRef: React.RefObject<HTMLDivElement>;\n height?: string;\n CustomAssistantAvatar: React.ReactNode;\n CustomUserAvatar: React.ReactNode;\n}) => {\n const theme = useTheme();\n const lastMessage = messages.length > 0 ? messages[messages.length - 1] : null;\n const isAssistantLoading = !lastMessage || lastMessage.role === 'user';\n\n return (\n <StyledScrollBarStack theme={theme} height={height}>\n {messages.length === 0 && !isLoadingMessage ? (\n <EmptyMessageContainer>\n <AIAvatarImage src={AIAvatar} alt=\"Ai-avatar\" />\n <Typography color={theme.palette.text.disabled} variant=\"subtitle1\">\n AI와 대화를 시작해 보세요.\n </Typography>\n </EmptyMessageContainer>\n ) : (\n <>\n {messages.map((msg, index) => {\n if (msg.role === \"system\") return null;\n const isAssistant = msg.role === \"assistant\";\n\n return (\n <Stack\n key={index}\n direction={isAssistant ? \"row\" : \"row-reverse\"}\n gap=\"0.5rem\"\n alignItems=\"center\"\n >\n <Stack flexShrink={0}>\n {isAssistant ? (CustomAssistantAvatar ?? <AssistantAvatar />) : (CustomUserAvatar ?? <UserAvatar />)}\n </Stack>\n <StyledMessage isAssistant={isAssistant} theme={theme}>\n {msg.content}\n </StyledMessage>\n </Stack>\n );\n })}\n {isLoadingMessage &&\n (isAssistantLoading ? (\n <Stack direction=\"row\" gap=\"0.5rem\" alignItems=\"center\">\n <Stack flexShrink={0}>\n {CustomAssistantAvatar ?? <AssistantAvatar />}\n </Stack>\n <TypingIndicator />\n </Stack>\n ) : (\n <Stack direction=\"row-reverse\" gap=\"0.5rem\" alignItems=\"center\">\n <Stack flexShrink={0}>\n {CustomUserAvatar ?? <UserAvatar />}\n </Stack>\n <TypingIndicator />\n </Stack>\n ))}\n <div ref={scrollRef} />\n </>\n )}\n </StyledScrollBarStack>\n );\n};\n\nEliceChat.InputArea = ({\n placeHolder,\n value,\n isDisabled,\n onChange,\n onSend,\n onReset,\n onRecord,\n onTranscribingChange,\n isOnlyRecord,\n isResetDisabled,\n isRecordDisabled,\n maxRows\n}: {\n placeHolder: string,\n value: string;\n isDisabled: boolean;\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onSend: () => void;\n onReset: () => void;\n onRecord?: () => void;\n onTransform?: () => void;\n setAudioFile?: (file: File) => void;\n onTranscribingChange?: (value: boolean) => void;\n type: RecorderType;\n isOnlyRecord: boolean;\n isResetDisabled: boolean;\n isRecordDisabled: boolean;\n maxRows: number;\n}) => {\n const theme = useTheme();\n const { state: recorderState, setIsRecording } = useRecorder();\n const { isTablet, isMiniTablet } = useAIDTMediaQuery();\n return (\n <Stack\n direction={isMiniTablet ? \"column\" : \"row\"}\n display={recorderState.isRecording ? \"none\" : \"\"}\n bgcolor={theme.palette.grey[50]}\n borderRadius=\"1.125rem\"\n height={'auto'}\n width={recorderState.isRecording ? \"100%\" : \"auto\"}\n justifyContent={recorderState.isRecording ? \"center\" : \"none\"}\n alignItems={recorderState.isRecording ? \"center\" : \"none\"}\n p=\"0.5rem 1rem\"\n gap=\"0.625rem\"\n zIndex=\"1000\"\n >\n {\n isOnlyRecord ? (\n <OnlyRecordButton\n theme={theme}\n onClick={() => {\n onRecord?.();\n setIsRecording(true);\n onTranscribingChange?.(true);\n }}>\n <ReadyRecord />\n <Typography variant=\"h3\">녹음 시작</Typography>\n </OnlyRecordButton>\n ) : (\n <>\n <Stack flexGrow={1} maxHeight=\"14.625rem\" height=\"100%\">\n <StyledInput\n isTablet={isTablet}\n disabled={isDisabled}\n value={value}\n onChange={onChange}\n placeholder={placeHolder}\n theme={theme}\n multiline\n maxRows={maxRows}\n onKeyUpCapture={e => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n if (value.trim()) {\n onSend();\n }\n }\n }}\n />\n </Stack>\n <Stack\n direction={\"row\"}\n display=\"flex\"\n justifyContent={isMiniTablet ? 'flex-end' : 'center'}\n gap={'0.625rem'}\n height={isTablet ? '3rem' : '3.5rem'}\n >\n {onRecord && (\n <EliceIconButton\n width={isTablet ? '3rem' : '3.5rem'}\n height={isTablet ? '3rem' : '3.5rem'}\n onClick={() => {\n onRecord();\n setIsRecording(true);\n onTranscribingChange?.(true);\n }}\n disabled={isRecordDisabled}\n >\n <Micro color={theme.palette.secondary.main} />\n </EliceIconButton>\n )}\n <EliceIconButton\n onClick={onReset}\n width={isTablet ? '3rem' : '3.5rem'}\n height={isTablet ? '3rem' : '3.5rem'}\n disabled={isResetDisabled}>\n <Reset color={theme.palette.secondary.main}\n />\n </EliceIconButton>\n <EliceIconButton\n onClick={onSend} width={isTablet ? '3rem' : '3.5rem'}\n height={isTablet ? '3rem' : '3.5rem'}\n disabled={!value.trim()}\n >\n <SendArrow color={theme.palette.secondary.main} />\n </EliceIconButton>\n </Stack>\n </>\n )\n }\n </Stack>\n );\n};\n\nconst StyledChatContainer = styled(Stack) <{ theme: Theme; height: string; backgroundImage?: string; }>`\n position: relative;\n max-height: 100%;\n height: ${({ height }) => height ?? 'fit-content'};\n max-width: 100%;\n border: 2px solid ${({ theme }) => theme.palette.grey[300]};\n border-radius: 1.5rem;\n padding: 1.5rem;\n gap: 1.75rem;\n\n ${({ backgroundImage }) =>\n backgroundImage &&\n `\n background-image: url(${backgroundImage});\n background-size: cover;\n background-position: center;\n `}\n`;\nconst StyledScrollBarStack = styled(Stack) <{ theme: Theme, height: string }>`\n flex: 1;\n overflow-y: auto;\n border-radius: 1.125rem;\n padding-right: 1rem;\n ::-webkit-scrollbar {\n width: 0.25rem;\n }\n ::-webkit-scrollbar-track {\n background: ${({ theme }) => theme.palette.grey[200]};\n border-radius: 0.5rem;\n }\n ::-webkit-scrollbar-thumb {\n background: ${({ theme }) => theme.palette.primary.main};\n border-radius: 0.5rem;\n }\n ::-webkit-scrollbar-thumb:hover {\n background: ${({ theme }) => theme.palette.secondary.main};\n }\n`;\n\nconst StyledInput = styled(Input) <{ theme: Theme, isTablet: boolean }>`\n width: 100%;\n height: 100%;\n background-color: transparent;\n font-size: ${({ isTablet }) => isTablet ? '0.5rem' : '1.2rem'} ;\n font-weight: ${({ isTablet }) => isTablet ? 500 : 700};\n outline: none;\n resize: none;\n overflow-y: auto;\n color: ${({ theme }) => theme.palette.secondary.main};\n ::placeholder {\n color: ${({ theme }) => theme.palette.grey[300]};\n }\n &:has(> textarea:disabled)::before {\n border: none;\n }\n \n ::before {\n border: none;\n }\n :hover {\n ::before {\n border: none;\n }\n }\n ::after {\n border-bottom: none !important;\n }\n \n ::-webkit-scrollbar {\n width: 0.25rem;\n }\n ::-webkit-scrollbar-track {\n background: ${({ theme }) => theme.palette.grey[200]};\n border-radius: 0.5rem;\n }\n ::-webkit-scrollbar-thumb {\n background: ${({ theme }) => theme.palette.primary.main};\n border-radius: 0.5rem;\n }\n ::-webkit-scrollbar-thumb:hover {\n background: ${({ theme }) => theme.palette.secondary.main};\n }\n`;\n\nconst StyledMessage = styled(Typography) <{ isAssistant: boolean, theme: Theme }>`\n color: ${({ isAssistant, theme }) =>\n isAssistant ? theme.palette.text.secondary : theme.palette.secondary.main};\n font-size: ${({ theme }) => theme.typography.body1.fontSize};\n font-weight: ${({ isAssistant }) => (isAssistant ? 500 : 700)};\n background-color: ${({ isAssistant, theme }) =>\n isAssistant ? theme.palette.grey[50] : theme.palette.primary.light};\n border-radius: 1rem;\n white-space: pre-wrap;\n padding: 0.75rem;\n margin-bottom: 16px;\n`;\n\nconst EmptyMessageContainer = styled(Stack)`\n display:flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n gap: 1rem;\n`\n\nconst AIAvatarImage = styled.img`\n width: 10rem;\n height: 10rem;\n aspect-ratio: 1 / 1;\n flex-shrink: 0;\n`\n\nconst RecordingOverlay = styled(Box)`\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 100;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-end;\n border-radius: 1.5rem;\n background-color: rgba(0, 0, 0, 0.3);\n display: flex;\n`;\n\nconst OverlayContent = styled(Box)`\n width: 100%;\n height: 212px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background-color: #fff;\n border-radius: 1.5rem;\n`;\n\nconst OnlyRecordButton = styled(Stack) <{ theme: Theme }>`\n color: ${({ theme }) => theme.palette.common.white};\n background:${({ theme }) => theme.palette.common.red[900]};\n width: 100%;\n flex-direction: row;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 16px;\n height: 55px;\n gap: 8px;\n\n &:hover {\n background: ${({ theme }) => theme.palette.common.red[600]};\n color: ${({ theme }) => theme.palette.common.red[900]};\n }\n`\n\nexport default EliceChat;\n","import React, { useState } from 'react';\nimport {\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n Stack,\n Typography,\n} from '@mui/material';\n\nimport { EliceButton } from '../button';\nimport { textPrimaryColor, textSecondaryColor } from '../tokenColorTemporary';\n\nimport type { DialogProps } from '@mui/material';\n\nexport interface EliceDialogProps extends Omit<DialogProps, 'open' | 'onClose' | 'title' | 'content'> {\n open?: boolean;\n onClose?: () => void;\n title?: React.ReactNode;\n content?: React.ReactNode;\n children?: React.ReactNode;\n // Legacy props for backward compatibility\n anchorElement?: React.ReactNode;\n type?: 'YesOrNo' | 'OK';\n onConfirm?: VoidFunction;\n onAgree?: VoidFunction;\n onDisagree?: VoidFunction;\n}\n\nconst EliceDialog = ({\n open: controlledOpen,\n onClose: controlledOnClose,\n title,\n content,\n children,\n anchorElement,\n type = 'OK',\n onConfirm,\n onAgree,\n onDisagree,\n sx,\n ...dialogProps\n}: EliceDialogProps) => {\n const [internalOpen, setInternalOpen] = useState(false);\n\n // Use controlled open if provided, otherwise use internal state\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : internalOpen;\n const handleClose = isControlled ? controlledOnClose : () => setInternalOpen(false);\n\n // Generate IDs for accessibility\n const titleId = React.useId();\n const descriptionId = React.useId();\n\n const dialogContent = (\n <Dialog\n open={open}\n onClose={handleClose}\n aria-labelledby={title ? titleId : undefined}\n aria-describedby={content ? descriptionId : undefined}\n sx={{\n borderRadius: '1rem',\n '& .MuiDialog-paper': {\n borderRadius: '1rem',\n },\n ...sx,\n }}\n PaperProps={{\n style: {\n minWidth: '40rem',\n padding: '1.25rem 1.5rem',\n gap: '1rem',\n },\n }}\n {...dialogProps}\n >\n {title && (\n <DialogTitle id={titleId}>\n {typeof title === 'string' ? (\n <Typography variant=\"subtitle1\" sx={{ fontSize: '1.375rem', fontWeight: 700, color: textPrimaryColor }}>\n {title}\n </Typography>\n ) : (\n title\n )}\n </DialogTitle>\n )}\n {content && (\n <DialogContent>\n <DialogContentText id={descriptionId}>\n {typeof content === 'string' ? (\n <Typography variant=\"body1\" sx={{ fontSize: '1.375rem', color: textSecondaryColor }}>\n {content}\n </Typography>\n ) : (\n content\n )}\n </DialogContentText>\n </DialogContent>\n )}\n {children ? (\n <DialogActions>\n {children}\n </DialogActions>\n ) : (\n <DialogActions>\n {type === 'OK' && (\n <EliceButton\n textColor='#fff'\n onClick={() => {\n if (onConfirm) {\n onConfirm();\n }\n handleClose?.();\n }}\n >\n 닫기\n </EliceButton>\n )}\n {type === 'YesOrNo' && (\n <>\n <EliceButton\n variant=\"outlined\"\n onClick={() => {\n if (onDisagree) {\n onDisagree();\n }\n handleClose?.();\n }}\n >\n 취소\n </EliceButton>\n <EliceButton\n variant=\"contained\"\n textColor='#fff'\n onClick={() => {\n if (onAgree) {\n onAgree();\n }\n handleClose?.();\n }}\n >\n 확인\n </EliceButton>\n </>\n )}\n </DialogActions>\n )}\n </Dialog>\n );\n\n // If anchorElement is provided, use legacy behavior\n if (anchorElement) {\n return (\n <>\n <Stack onClick={() => setInternalOpen(true)}>{anchorElement}</Stack>\n {dialogContent}\n </>\n );\n }\n\n return dialogContent;\n};\n\nexport default EliceDialog;\n","import { Stack, useTheme } from '@mui/material';\n\nimport { ArrowLeft, ArrowRight } from '../../icons';\nimport { gray300Color } from '../tokenColorTemporary';\n\nexport interface DottedPaginationProps {\n currentPage?: number;\n totalPage?: number;\n onPrev?: VoidFunction;\n onNext?: VoidFunction;\n}\n\nconst EliceDottedPagination = (props: DottedPaginationProps) => {\n const { currentPage = 1, totalPage = 1, onNext, onPrev } = props;\n const isPrevAble = currentPage > 1;\n const isNextAble = currentPage < totalPage;\n const theme = useTheme();\n\n if (totalPage > 10 || currentPage > 10) return 'Total page is at most 10';\n\n return (\n <Stack direction=\"row\" gap=\"1rem\">\n <ArrowLeft\n size={24}\n color={isPrevAble ? theme.palette.primary.main : gray300Color}\n style={{ cursor: 'pointer' }}\n onClick={() => {\n if (onPrev && isPrevAble) {\n onPrev();\n }\n }}\n />\n <Stack direction=\"row\" gap=\"0.375rem\" alignItems=\"center\">\n {Array.from({ length: totalPage }, i => i).map((_, index: number) => {\n return (\n <Stack\n key={index}\n borderRadius=\"0.3rem\"\n height=\"0.75rem\"\n width=\"0.75rem\"\n bgcolor={\n currentPage === index + 1\n ? theme.palette.primary.main\n : gray300Color\n }\n ></Stack>\n );\n })}\n </Stack>\n <ArrowRight\n size={24}\n color={isNextAble ? theme.palette.primary.main : gray300Color}\n style={{ cursor: 'pointer' }}\n onClick={() => {\n if (onNext && isNextAble) {\n onNext();\n }\n }}\n />\n </Stack>\n );\n};\n\nexport default EliceDottedPagination;\n","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2M6 4h5v8l-2.5-1.5L6 12z\"\n}), 'Book');","import { IconProps } from \"./_types\";\n\ninterface ScrollMoreIconProps extends IconProps {\n bgColor?: string;\n arrowColor?: string;\n bgOpacity?: number;\n arrowOpacity?: number;\n}\n\nconst ScrollMoreIcon = ({\n size = 36,\n bgColor = \"#7D89C2\",\n arrowColor = \"white\",\n bgOpacity = 1,\n arrowOpacity = 1,\n ...other\n}: ScrollMoreIconProps) => {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 36 36\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...other}\n >\n <rect width=\"36\" height=\"36\" rx=\"16\" fill={bgColor} opacity={bgOpacity} />\n <path\n d=\"M17.1914 22.4336L12.6914 17.9336C12.375 17.6172 12.2695 17.125 12.4453 16.7031C12.6211 16.2812 13.043 16 13.5 16H22.5C22.957 16 23.3438 16.2812 23.5195 16.7031C23.6953 17.125 23.5898 17.6172 23.2734 17.9336L18.7734 22.4336C18.3516 22.8906 17.6133 22.8906 17.1914 22.4336Z\"\n fill={arrowColor}\n opacity={arrowOpacity}\n />\n </svg>\n );\n};\n\nexport default ScrollMoreIcon;\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport useAIDTMediaQuery from \"../../hooks/useAIDTMediaQuery\";\nimport { ArrowLeft, ArrowRight } from \"../../icons\";\n\ninterface PaginationButtonProps {\n left?: boolean;\n right?: boolean;\n onClick?: () => void;\n disabled?: boolean;\n size?: number;\n}\n\nconst Button = styled.button<{ disabled: boolean, isTablet: boolean, size?: number }>`\n width: ${({ size }) => size ? `${size}px` : \"60px\"};\n height: ${({ size }) => size ? `${size}px` : \"60px\"};\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n pointer-events: auto;\n background-color: ${({ disabled }) => (disabled ? \"#ddd\" : \"#fff\")};\n border-radius: 40px;\n box-shadow: ${({ isTablet }) => (isTablet ? \"none\" : \"0px 0px 1px 0px rgba(0, 0, 0, 0.40), 0px 8px 10px 0px rgba(0, 0, 0, 0.05), 0px 8px 30px 0px rgba(0, 0, 0, 0.12)\")};\n cursor: ${({ disabled }) => (disabled ? \"not-allowed\" : \"pointer\")};\n &:hover {\n background-color: ${({ disabled, isTablet }) => isTablet ? (disabled ? \"#ddd\" : \"#e0e0e0\") : \"none\"};\n }\n`;\n\nconst PaginationButton: React.FC<PaginationButtonProps> = ({ left, right, onClick, disabled = false, size }) => {\n const { isTablet } = useAIDTMediaQuery();\n return (\n <Button onClick={onClick} disabled={disabled} isTablet={isTablet} size={size}>\n {left && <ArrowLeft size={size} />}\n {right && <ArrowRight size={size} />}\n </Button>\n );\n};\n\nexport default PaginationButton;\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { PaginationButton } from \"../../pagination-button\";\n\nconst PaginationWrapper = styled.div`\n position: absolute;\n top: 50%;\n left: 0.625rem;\n width: calc(100% - 1.25rem);\n display: flex;\n justify-content: space-between;\n align-items: center;\n z-index: 100;\n transform: translateY(-50%);\n pointer-events: none;\n`;\n\nexport interface LayoutPaginationProps {\n onPrev?: () => void;\n onNext?: () => void;\n allowPrev?: boolean;\n allowNext?: boolean;\n hidePrev?: boolean;\n hideNext?: boolean;\n}\n\nconst LayoutPagination = ({\n onPrev,\n onNext,\n allowPrev = true,\n allowNext = true,\n hidePrev = false,\n hideNext = false,\n}: LayoutPaginationProps): JSX.Element => {\n return (\n <PaginationWrapper>\n {!hidePrev && <PaginationButton left onClick={onPrev} disabled={!allowPrev} />}\n {!hideNext && <PaginationButton right onClick={onNext} disabled={!allowNext} />}\n </PaginationWrapper>\n );\n};\n\nexport default LayoutPagination;\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { SxProps, Theme, Typography, useTheme, Stack, TypographyProps } from \"@mui/material\";\nimport { PaginationButton } from \"../../pagination-button\";\nimport useAIDTMediaQuery from \"../../../hooks/useAIDTMediaQuery\";\n\nconst FooterContainer = styled(Stack)`\n display: flex;\n align-items: center;\n justify-content: center;\n white-space: nowrap;\n flex-direction: row;\n gap: 0.75rem;\n font-size: 0.875rem;\n`;\n\nconst FooterPagination = styled(Typography) <{ isTablet: boolean }>`\n padding: ${({ isTablet }) => (isTablet ? \"0 0.625rem\" : \"0 2rem\")};\n white-space: nowrap;\n`;\n\nconst StyledCurrentPage = styled.span<{ fontColor: string }>`\n color: ${({ fontColor }) => fontColor};\n`;\n\nexport interface LayoutFooterPagingProps {\n currentPage: number;\n totalPage: number;\n onPrev?: () => void;\n onNext?: () => void;\n allowPrev?: boolean;\n allowNext?: boolean;\n variant?: TypographyProps['variant'];\n currentPageColor?: string;\n textColor?: string;\n}\n\nconst LayoutFooterPaging: React.FC<LayoutFooterPagingProps> = ({\n currentPage,\n totalPage,\n onPrev,\n onNext,\n allowPrev = true,\n allowNext = true,\n variant = \"subtitle1\",\n currentPageColor,\n textColor,\n}) => {\n const theme = useTheme();\n const { isTablet } = useAIDTMediaQuery();\n\n return (\n <FooterContainer>\n {isTablet && <PaginationButton left onClick={onPrev} disabled={!allowPrev} size={24} />}\n <FooterPagination variant={variant} sx={{ color: textColor || \"#D8D8E2\" }} isTablet={isTablet}>\n <StyledCurrentPage fontColor={currentPageColor || theme.palette.primary.main}>\n <span>{currentPage}</span>\n </StyledCurrentPage>{\" \"}\n <span>/</span>{\" \"}\n <span>{totalPage}</span>\n </FooterPagination>\n {isTablet && <PaginationButton right onClick={onNext} disabled={!allowNext} size={24} />}\n </FooterContainer>\n );\n};\n\nexport default LayoutFooterPaging;\n","import { Stack } from \"@mui/material\";\nimport { EliceButton } from \"../../button\";\n\nexport interface LayoutFooterSubmitProps {\n isRollback?: boolean;\n isSubmit?: boolean;\n disableRollback?: boolean;\n disableSubmit?: boolean;\n submitText?: string;\n rollbackText?: string;\n onRollback?: () => void;\n onSubmit?: () => void;\n submitButtonColor?: string;\n rollbackButtonColor?: string;\n submitTextColor?: string;\n rollbackTextColor?: string;\n}\n\nconst LayoutFooterSubmit = ({\n isRollback = false,\n isSubmit = false,\n disableRollback = false,\n disableSubmit = false,\n submitText,\n rollbackText,\n onSubmit,\n onRollback,\n submitButtonColor,\n rollbackButtonColor,\n submitTextColor = '#fff',\n rollbackTextColor,\n}: LayoutFooterSubmitProps) => {\n return (\n <Stack direction=\"row\" spacing={1}>\n {isRollback && (\n <EliceButton\n disabled={disableRollback}\n variant=\"outlined\"\n size=\"medium\"\n customColor={rollbackButtonColor}\n textColor={rollbackTextColor}\n onClick={onRollback}\n >\n {rollbackText ?? \"다시하기\"}\n </EliceButton>\n )}\n {isSubmit && (\n <EliceButton\n disabled={disableSubmit}\n variant=\"contained\"\n size=\"medium\"\n customColor={submitButtonColor}\n textColor={submitTextColor}\n onClick={onSubmit}\n >\n {submitText ?? \"제출하기\"}\n </EliceButton>\n )}\n </Stack>\n );\n};\n\nexport default LayoutFooterSubmit;\n","'use client';\n\nimport * as React from 'react';\nexport const MenuPositionerContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") MenuPositionerContext.displayName = \"MenuPositionerContext\";\nexport function useMenuPositionerContext(optional) {\n const context = React.useContext(MenuPositionerContext);\n if (context === undefined && !optional) {\n throw new Error('Base UI: MenuPositionerContext is missing. MenuPositioner parts must be placed within <Menu.Positioner>.');\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nexport const MenuRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") MenuRootContext.displayName = \"MenuRootContext\";\nexport function useMenuRootContext(optional) {\n const context = React.useContext(MenuRootContext);\n if (context === undefined && !optional) {\n throw new Error('Base UI: MenuRootContext is missing. Menu parts must be placed within <Menu.Root>.');\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nconst UNINITIALIZED = {};\n\n/**\n * A React.useRef() that is initialized with a function. Note that it accepts an optional\n * initialization argument, so the initialization function doesn't need to be an inline closure.\n *\n * @usage\n * const ref = useRefWithInit(sortColumns, columns)\n */\n\nexport function useRefWithInit(init, initArg) {\n const ref = React.useRef(UNINITIALIZED);\n if (ref.current === UNINITIALIZED) {\n ref.current = init(initArg);\n }\n return ref;\n}","import { useRefWithInit } from \"./useRefWithInit.js\";\n\n/**\n * Merges refs into a single memoized callback ref or `null`.\n * This makes sure multiple refs are updated together and have the same value.\n *\n * This function accepts up to four refs. If you need to merge more, or have an unspecified number of refs to merge,\n * use `useMergedRefsN` instead.\n */\n\nexport function useMergedRefs(a, b, c, d) {\n const forkRef = useRefWithInit(createForkRef).current;\n if (didChange(forkRef, a, b, c, d)) {\n update(forkRef, [a, b, c, d]);\n }\n return forkRef.callback;\n}\n\n/**\n * Merges an array of refs into a single memoized callback ref or `null`.\n *\n * If you need to merge a fixed number (up to four) of refs, use `useMergedRefs` instead for better performance.\n */\nexport function useMergedRefsN(refs) {\n const forkRef = useRefWithInit(createForkRef).current;\n if (didChangeN(forkRef, refs)) {\n update(forkRef, refs);\n }\n return forkRef.callback;\n}\nfunction createForkRef() {\n return {\n callback: null,\n cleanup: null,\n refs: []\n };\n}\nfunction didChange(forkRef, a, b, c, d) {\n // prettier-ignore\n return forkRef.refs[0] !== a || forkRef.refs[1] !== b || forkRef.refs[2] !== c || forkRef.refs[3] !== d;\n}\nfunction didChangeN(forkRef, newRefs) {\n return forkRef.refs.length !== newRefs.length || forkRef.refs.some((ref, index) => ref !== newRefs[index]);\n}\nfunction update(forkRef, refs) {\n forkRef.refs = refs;\n if (refs.every(ref => ref == null)) {\n forkRef.callback = null;\n return;\n }\n forkRef.callback = instance => {\n if (forkRef.cleanup) {\n forkRef.cleanup();\n forkRef.cleanup = null;\n }\n if (instance != null) {\n const cleanupCallbacks = Array(refs.length).fill(null);\n for (let i = 0; i < refs.length; i += 1) {\n const ref = refs[i];\n if (ref == null) {\n continue;\n }\n switch (typeof ref) {\n case 'function':\n {\n const refCleanup = ref(instance);\n if (typeof refCleanup === 'function') {\n cleanupCallbacks[i] = refCleanup;\n }\n break;\n }\n case 'object':\n {\n ref.current = instance;\n break;\n }\n default:\n }\n }\n forkRef.cleanup = () => {\n for (let i = 0; i < refs.length; i += 1) {\n const ref = refs[i];\n if (ref == null) {\n continue;\n }\n switch (typeof ref) {\n case 'function':\n {\n const cleanupCallback = cleanupCallbacks[i];\n if (typeof cleanupCallback === 'function') {\n cleanupCallback();\n } else {\n ref(null);\n }\n break;\n }\n case 'object':\n {\n ref.current = null;\n break;\n }\n default:\n }\n }\n };\n }\n };\n}","import * as React from 'react';\nconst majorVersion = parseInt(React.version, 10);\nexport function isReactVersionAtLeast(reactVersionToCheck) {\n return majorVersion >= reactVersionToCheck;\n}","export function mergeObjects(a, b) {\n if (a && !b) {\n return a;\n }\n if (!a && b) {\n return b;\n }\n if (a || b) {\n return {\n ...a,\n ...b\n };\n }\n return undefined;\n}","/**\n * @deprecated Use `StateAttributesMapping` instead.\n */\n\nexport function getStyleHookProps(state, customMapping) {\n const props = {};\n\n /* eslint-disable-next-line guard-for-in */\n for (const key in state) {\n const value = state[key];\n if (customMapping?.hasOwnProperty(key)) {\n const customProps = customMapping[key](value);\n if (customProps != null) {\n Object.assign(props, customProps);\n }\n continue;\n }\n if (value === true) {\n props[`data-${key.toLowerCase()}`] = '';\n } else if (value) {\n props[`data-${key.toLowerCase()}`] = value.toString();\n }\n }\n return props;\n}","/**\n * If the provided className is a string, it will be returned as is.\n * Otherwise, the function will call the className function with the state as the first argument.\n *\n * @param className\n * @param state\n */\nexport function resolveClassName(className, state) {\n return typeof className === 'function' ? className(state) : className;\n}","import { mergeObjects } from '@base-ui-components/utils/mergeObjects';\nconst EMPTY_PROPS = {};\n\n/**\n * Merges multiple sets of React props. It follows the Object.assign pattern where the rightmost object's fields overwrite\n * the conflicting ones from others. This doesn't apply to event handlers, `className` and `style` props.\n * Event handlers are merged such that they are called in sequence (the rightmost one being called first),\n * and allows the user to prevent the subsequent event handlers from being\n * executed by attaching a `preventBaseUIHandler` method.\n * It also merges the `className` and `style` props, whereby the classes are concatenated\n * and the rightmost styles overwrite the subsequent ones.\n *\n * Props can either be provided as objects or as functions that take the previous props as an argument.\n * The function will receive the merged props up to that point (going from left to right):\n * so in the case of `(obj1, obj2, fn, obj3)`, `fn` will receive the merged props of `obj1` and `obj2`.\n * The function is responsible for chaining event handlers if needed (i.e. we don't run the merge logic).\n *\n * Event handlers returned by the functions are not automatically prevented when `preventBaseUIHandler` is called.\n * They must check `event.baseUIHandlerPrevented` themselves and bail out if it's true.\n *\n * @important **`ref` is not merged.**\n * @param props props to merge.\n * @returns the merged props.\n */\n/* eslint-disable id-denylist */\n\nexport function mergeProps(a, b, c, d, e) {\n // We need to mutably own `merged`\n let merged = {\n ...resolvePropsGetter(a, EMPTY_PROPS)\n };\n if (b) {\n merged = mergeOne(merged, b);\n }\n if (c) {\n merged = mergeOne(merged, c);\n }\n if (d) {\n merged = mergeOne(merged, d);\n }\n if (e) {\n merged = mergeOne(merged, e);\n }\n return merged;\n}\n/* eslint-enable id-denylist */\n\nexport function mergePropsN(props) {\n if (props.length === 0) {\n return EMPTY_PROPS;\n }\n if (props.length === 1) {\n return resolvePropsGetter(props[0], EMPTY_PROPS);\n }\n\n // We need to mutably own `merged`\n let merged = {\n ...resolvePropsGetter(props[0], EMPTY_PROPS)\n };\n for (let i = 1; i < props.length; i += 1) {\n merged = mergeOne(merged, props[i]);\n }\n return merged;\n}\nfunction mergeOne(merged, inputProps) {\n if (isPropsGetter(inputProps)) {\n return inputProps(merged);\n }\n return mutablyMergeInto(merged, inputProps);\n}\n\n/**\n * Merges two sets of props. In case of conflicts, the external props take precedence.\n */\nfunction mutablyMergeInto(mergedProps, externalProps) {\n if (!externalProps) {\n return mergedProps;\n }\n\n // eslint-disable-next-line guard-for-in\n for (const propName in externalProps) {\n const externalPropValue = externalProps[propName];\n switch (propName) {\n case 'style':\n {\n mergedProps[propName] = mergeObjects(mergedProps.style, externalPropValue);\n break;\n }\n case 'className':\n {\n mergedProps[propName] = mergeClassNames(mergedProps.className, externalPropValue);\n break;\n }\n default:\n {\n if (isEventHandler(propName, externalPropValue)) {\n mergedProps[propName] = mergeEventHandlers(mergedProps[propName], externalPropValue);\n } else {\n mergedProps[propName] = externalPropValue;\n }\n }\n }\n }\n return mergedProps;\n}\nfunction isEventHandler(key, value) {\n // This approach is more efficient than using a regex.\n const code0 = key.charCodeAt(0);\n const code1 = key.charCodeAt(1);\n const code2 = key.charCodeAt(2);\n return code0 === 111 /* o */ && code1 === 110 /* n */ && code2 >= 65 /* A */ && code2 <= 90 /* Z */ && (typeof value === 'function' || typeof value === 'undefined');\n}\nfunction isPropsGetter(inputProps) {\n return typeof inputProps === 'function';\n}\nfunction resolvePropsGetter(inputProps, previousProps) {\n if (isPropsGetter(inputProps)) {\n return inputProps(previousProps);\n }\n return inputProps ?? EMPTY_PROPS;\n}\nfunction mergeEventHandlers(ourHandler, theirHandler) {\n if (!theirHandler) {\n return ourHandler;\n }\n if (!ourHandler) {\n return theirHandler;\n }\n return event => {\n if (isSyntheticEvent(event)) {\n const baseUIEvent = event;\n makeEventPreventable(baseUIEvent);\n const result = theirHandler(baseUIEvent);\n if (!baseUIEvent.baseUIHandlerPrevented) {\n ourHandler?.(baseUIEvent);\n }\n return result;\n }\n const result = theirHandler(event);\n ourHandler?.(event);\n return result;\n };\n}\nexport function makeEventPreventable(event) {\n event.preventBaseUIHandler = () => {\n event.baseUIHandlerPrevented = true;\n };\n return event;\n}\nexport function mergeClassNames(ourClassName, theirClassName) {\n if (theirClassName) {\n if (ourClassName) {\n // eslint-disable-next-line prefer-template\n return theirClassName + ' ' + ourClassName;\n }\n return theirClassName;\n }\n return ourClassName;\n}\nfunction isSyntheticEvent(event) {\n return event != null && typeof event === 'object' && 'nativeEvent' in event;\n}","export const TYPEAHEAD_RESET_MS = 500;\nexport const PATIENT_CLICK_THRESHOLD = 500;\nexport const DISABLED_TRANSITIONS_STYLE = {\n style: {\n transition: 'none'\n }\n};\nexport const EMPTY_OBJECT = {};\nexport const EMPTY_ARRAY = [];\nexport const CLICK_TRIGGER_IDENTIFIER = 'data-base-ui-click-trigger';\n\n/**\n * Used for dropdowns that usually strictly prefer top/bottom placements and\n * use `var(--available-height)` to limit their height.\n */\nexport const DROPDOWN_COLLISION_AVOIDANCE = {\n fallbackAxisSide: 'none'\n};\n\n/**\n * Used by regular popups that usually aren't scrollable and are allowed to\n * freely flip to any axis of placement.\n */\nexport const POPUP_COLLISION_AVOIDANCE = {\n fallbackAxisSide: 'end'\n};","import * as React from 'react';\nimport { useMergedRefs, useMergedRefsN } from '@base-ui-components/utils/useMergedRefs';\nimport { isReactVersionAtLeast } from '@base-ui-components/utils/reactVersion';\nimport { mergeObjects } from '@base-ui-components/utils/mergeObjects';\nimport { getStyleHookProps } from \"./getStyleHookProps.js\";\nimport { resolveClassName } from \"./resolveClassName.js\";\nimport { mergeProps, mergePropsN, mergeClassNames } from \"../merge-props/index.js\";\nimport { EMPTY_OBJECT } from \"./constants.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Renders a Base UI element.\n *\n * @param element The default HTML element to render. Can be overridden by the `render` prop.\n * @param componentProps An object containing the `render` and `className` props to be used for element customization. Other props are ignored.\n * @param params Additional parameters for rendering the element.\n */\nexport function useRenderElement(element, componentProps, params = {}) {\n const renderProp = componentProps.render;\n const outProps = useRenderElementProps(componentProps, params);\n if (params.enabled === false) {\n return null;\n }\n const state = params.state ?? EMPTY_OBJECT;\n return evaluateRenderProp(element, renderProp, outProps, state);\n}\n\n/**\n * Computes render element final props.\n */\nfunction useRenderElementProps(componentProps, params = {}) {\n const {\n className: classNameProp,\n render: renderProp\n } = componentProps;\n const {\n state = EMPTY_OBJECT,\n ref,\n props,\n disableStyleHooks,\n customStyleHookMapping,\n enabled = true\n } = params;\n const className = enabled ? resolveClassName(classNameProp, state) : undefined;\n let styleHooks;\n if (disableStyleHooks !== true) {\n // SAFETY: We use typings to ensure `disableStyleHooks` is either always set or\n // always unset, so this `if` block is stable across renders.\n /* eslint-disable-next-line react-hooks/rules-of-hooks */\n styleHooks = React.useMemo(() => enabled ? getStyleHookProps(state, customStyleHookMapping) : EMPTY_OBJECT, [state, customStyleHookMapping, enabled]);\n }\n const outProps = enabled ? mergeObjects(styleHooks, Array.isArray(props) ? mergePropsN(props) : props) ?? EMPTY_OBJECT : EMPTY_OBJECT;\n\n // SAFETY: The `useMergedRefs` functions use a single hook to store the same value,\n // switching between them at runtime is safe. If this assertion fails, React will\n // throw at runtime anyway.\n // This also skips the `useMergedRefs` call on the server, which is fine because\n // refs are not used on the server side.\n /* eslint-disable react-hooks/rules-of-hooks */\n if (typeof document !== 'undefined') {\n if (!enabled) {\n useMergedRefs(null, null);\n } else if (Array.isArray(ref)) {\n outProps.ref = useMergedRefsN([outProps.ref, getChildRef(renderProp), ...ref]);\n } else {\n outProps.ref = useMergedRefs(outProps.ref, getChildRef(renderProp), ref);\n }\n }\n if (!enabled) {\n return EMPTY_OBJECT;\n }\n if (className !== undefined) {\n outProps.className = mergeClassNames(outProps.className, className);\n }\n return outProps;\n}\nfunction evaluateRenderProp(element, render, props, state) {\n if (render) {\n if (typeof render === 'function') {\n return render(props, state);\n }\n const mergedProps = mergeProps(props, render.props);\n mergedProps.ref = props.ref;\n return /*#__PURE__*/React.cloneElement(render, mergedProps);\n }\n if (element) {\n if (typeof element === 'string') {\n return renderTag(element, props);\n }\n }\n // Unreachable, but the typings on `useRenderElement` need to be reworked\n // to annotate it correctly.\n throw new Error('Base UI: Render element or function are not defined.');\n}\nfunction renderTag(Tag, props) {\n if (Tag === 'button') {\n return /*#__PURE__*/_jsx(\"button\", {\n type: \"button\",\n ...props\n });\n }\n if (Tag === 'img') {\n return /*#__PURE__*/_jsx(\"img\", {\n alt: \"\",\n ...props\n });\n }\n return /*#__PURE__*/React.createElement(Tag, props);\n}\nfunction getChildRef(render) {\n if (render && typeof render !== 'function') {\n return isReactVersionAtLeast(19) ? render.props.ref : render.ref;\n }\n return null;\n}","export let TransitionStatusDataAttributes = /*#__PURE__*/function (TransitionStatusDataAttributes) {\n /**\n * Present when the component is animating in.\n */\n TransitionStatusDataAttributes[\"startingStyle\"] = \"data-starting-style\";\n /**\n * Present when the component is animating out.\n */\n TransitionStatusDataAttributes[\"endingStyle\"] = \"data-ending-style\";\n return TransitionStatusDataAttributes;\n}({});\nconst STARTING_HOOK = {\n [TransitionStatusDataAttributes.startingStyle]: ''\n};\nconst ENDING_HOOK = {\n [TransitionStatusDataAttributes.endingStyle]: ''\n};\nexport const transitionStatusMapping = {\n transitionStatus(value) {\n if (value === 'starting') {\n return STARTING_HOOK;\n }\n if (value === 'ending') {\n return ENDING_HOOK;\n }\n return null;\n }\n};","import { TransitionStatusDataAttributes } from \"./styleHookMapping.js\";\nexport let CommonPopupDataAttributes = function (CommonPopupDataAttributes) {\n /**\n * Present when the popup is open.\n */\n CommonPopupDataAttributes[\"open\"] = \"data-open\";\n /**\n * Present when the popup is closed.\n */\n CommonPopupDataAttributes[\"closed\"] = \"data-closed\";\n /**\n * Present when the popup is animating in.\n */\n CommonPopupDataAttributes[CommonPopupDataAttributes[\"startingStyle\"] = TransitionStatusDataAttributes.startingStyle] = \"startingStyle\";\n /**\n * Present when the popup is animating out.\n */\n CommonPopupDataAttributes[CommonPopupDataAttributes[\"endingStyle\"] = TransitionStatusDataAttributes.endingStyle] = \"endingStyle\";\n /**\n * Present when the anchor is hidden.\n */\n CommonPopupDataAttributes[\"anchorHidden\"] = \"data-anchor-hidden\";\n return CommonPopupDataAttributes;\n}({});\nexport let CommonTriggerDataAttributes = /*#__PURE__*/function (CommonTriggerDataAttributes) {\n /**\n * Present when the popup is open.\n */\n CommonTriggerDataAttributes[\"popupOpen\"] = \"data-popup-open\";\n /**\n * Present when a pressable trigger is pressed.\n */\n CommonTriggerDataAttributes[\"pressed\"] = \"data-pressed\";\n return CommonTriggerDataAttributes;\n}({});\nconst TRIGGER_HOOK = {\n [CommonTriggerDataAttributes.popupOpen]: ''\n};\nconst PRESSABLE_TRIGGER_HOOK = {\n [CommonTriggerDataAttributes.popupOpen]: '',\n [CommonTriggerDataAttributes.pressed]: ''\n};\nconst POPUP_OPEN_HOOK = {\n [CommonPopupDataAttributes.open]: ''\n};\nconst POPUP_CLOSED_HOOK = {\n [CommonPopupDataAttributes.closed]: ''\n};\nconst ANCHOR_HIDDEN_HOOK = {\n [CommonPopupDataAttributes.anchorHidden]: ''\n};\nexport const triggerOpenStateMapping = {\n open(value) {\n if (value) {\n return TRIGGER_HOOK;\n }\n return null;\n }\n};\nexport const pressableTriggerOpenStateMapping = {\n open(value) {\n if (value) {\n return PRESSABLE_TRIGGER_HOOK;\n }\n return null;\n }\n};\nexport const popupStateMapping = {\n open(value) {\n if (value) {\n return POPUP_OPEN_HOOK;\n }\n return POPUP_CLOSED_HOOK;\n },\n anchorHidden(value) {\n if (value) {\n return ANCHOR_HIDDEN_HOOK;\n }\n return null;\n }\n};","'use client';\n\nimport * as React from 'react';\nimport { useMenuPositionerContext } from \"../positioner/MenuPositionerContext.js\";\nimport { useMenuRootContext } from \"../root/MenuRootContext.js\";\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\nimport { popupStateMapping } from \"../../utils/popupStateMapping.js\";\n\n/**\n * Displays an element positioned against the menu anchor.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)\n */\nexport const MenuArrow = /*#__PURE__*/React.forwardRef(function MenuArrow(componentProps, forwardedRef) {\n const {\n className,\n render,\n ...elementProps\n } = componentProps;\n const {\n open\n } = useMenuRootContext();\n const {\n arrowRef,\n side,\n align,\n arrowUncentered,\n arrowStyles\n } = useMenuPositionerContext();\n const state = React.useMemo(() => ({\n open,\n side,\n align,\n uncentered: arrowUncentered\n }), [open, side, align, arrowUncentered]);\n return useRenderElement('div', componentProps, {\n ref: [arrowRef, forwardedRef],\n customStyleHookMapping: popupStateMapping,\n state,\n props: {\n style: arrowStyles,\n 'aria-hidden': true,\n ...elementProps\n }\n });\n});\nif (process.env.NODE_ENV !== \"production\") MenuArrow.displayName = \"MenuArrow\";","import * as React from 'react';\nexport const ContextMenuRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ContextMenuRootContext.displayName = \"ContextMenuRootContext\";\nexport function useContextMenuRootContext(optional = true) {\n const context = React.useContext(ContextMenuRootContext);\n if (context === undefined && !optional) {\n throw new Error('Base UI: ContextMenuRootContext is missing. ContextMenu parts must be placed within <ContextMenu.Root>.');\n }\n return context;\n}","'use client';\n\n// TODO: uncomment once we enable eslint-plugin-react-compiler // eslint-disable-next-line react-compiler/react-compiler -- process.env never changes, dependency arrays are intentionally ignored\n/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nexport function useControlled({\n controlled,\n default: defaultProp,\n name,\n state = 'value'\n}) {\n // isControlled is ignored in the hook dependency lists as it should never change.\n const {\n current: isControlled\n } = React.useRef(controlled !== undefined);\n const [valueState, setValue] = React.useState(defaultProp);\n const value = isControlled ? controlled : valueState;\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(() => {\n if (isControlled !== (controlled !== undefined)) {\n console.error([`Base UI: A component is changing the ${isControlled ? '' : 'un'}controlled ${state} state of ${name} to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${name} ` + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [state, name, controlled]);\n const {\n current: defaultValue\n } = React.useRef(defaultProp);\n React.useEffect(() => {\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is for more details.\n if (!isControlled && JSON.stringify(defaultValue) !== JSON.stringify(defaultProp)) {\n console.error([`Base UI: A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. ` + `To suppress this warning opt to use a controlled ${name}.`].join('\\n'));\n }\n }, [JSON.stringify(defaultProp)]);\n }\n const setValueIfUncontrolled = React.useCallback(newValue => {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}","'use client';\n\nimport * as React from 'react';\nconst EMPTY = [];\n\n/**\n * A React.useEffect equivalent that runs once, when the component is mounted.\n */\nexport function useOnMount(fn) {\n // TODO: uncomment once we enable eslint-plugin-react-compiler // eslint-disable-next-line react-compiler/react-compiler -- no need to put `fn` in the dependency array\n /* eslint-disable react-hooks/exhaustive-deps */\n React.useEffect(fn, EMPTY);\n /* eslint-enable react-hooks/exhaustive-deps */\n}","'use client';\n\nimport { useRefWithInit } from \"./useRefWithInit.js\";\nimport { useOnMount } from \"./useOnMount.js\";\nconst EMPTY = 0;\nexport class Timeout {\n static create() {\n return new Timeout();\n }\n currentId = (() => EMPTY)();\n\n /**\n * Executes `fn` after `delay`, clearing any previously scheduled call.\n */\n start(delay, fn) {\n this.clear();\n this.currentId = setTimeout(() => {\n this.currentId = EMPTY;\n fn();\n }, delay); /* Node.js types are enabled in development */\n }\n isStarted() {\n return this.currentId !== EMPTY;\n }\n clear = () => {\n if (this.currentId !== EMPTY) {\n clearTimeout(this.currentId);\n this.currentId = EMPTY;\n }\n };\n disposeEffect = () => {\n return this.clear;\n };\n}\n\n/**\n * A `setTimeout` with automatic cleanup and guard.\n */\nexport function useTimeout() {\n const timeout = useRefWithInit(Timeout.create).current;\n useOnMount(timeout.disposeEffect);\n return timeout;\n}","'use client';\n\nimport * as React from 'react';\nconst noop = () => {};\nexport const useIsoLayoutEffect = typeof document !== 'undefined' ? React.useLayoutEffect : noop;","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction 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 || (_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 if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nconst invalidOverflowDisplayValues = /*#__PURE__*/new Set(['inline', 'contents']);\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) && !invalidOverflowDisplayValues.has(display);\n}\nconst tableElements = /*#__PURE__*/new Set(['table', 'td', 'th']);\nfunction isTableElement(element) {\n return tableElements.has(getNodeName(element));\n}\nconst topLayerSelectors = [':popover-open', ':modal'];\nfunction isTopLayer(element) {\n return topLayerSelectors.some(selector => {\n try {\n return element.matches(selector);\n } catch (_e) {\n return false;\n }\n });\n}\nconst transformProperties = ['transform', 'translate', 'scale', 'rotate', 'perspective'];\nconst willChangeValues = ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'];\nconst containValues = ['paint', 'layout', 'strict', 'content'];\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return transformProperties.some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || willChangeValues.some(value => (css.willChange || '').includes(value)) || containValues.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 if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\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}\nconst lastTraversableNodeNames = /*#__PURE__*/new Set(['html', 'body', '#document']);\nfunction isLastTraversableNode(node) {\n return lastTraversableNodeNames.has(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.scrollX,\n scrollTop: element.scrollY\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, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\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 const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","'use client';\n\nimport { useIsoLayoutEffect } from \"./useIsoLayoutEffect.js\";\nimport { useRefWithInit } from \"./useRefWithInit.js\";\nexport function useLatestRef(value) {\n const latest = useRefWithInit(createLatestRef, value).current;\n latest.next = value;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useIsoLayoutEffect(latest.effect);\n return latest;\n}\nfunction createLatestRef(value) {\n const latest = {\n current: value,\n next: value,\n effect: () => {\n latest.current = latest.next;\n }\n };\n return latest;\n}","'use client';\n\nimport * as React from 'react';\nimport { useRefWithInit } from \"./useRefWithInit.js\";\n\n// https://github.com/mui/material-ui/issues/41190#issuecomment-2040873379\nconst useInsertionEffect = React[`useInsertionEffect${Math.random().toFixed(1)}`.slice(0, -3)];\nconst useSafeInsertionEffect =\n// React 17 doesn't have useInsertionEffect.\nuseInsertionEffect &&\n// Preact replaces useInsertionEffect with useLayoutEffect and fires too late.\nuseInsertionEffect !== React.useLayoutEffect ? useInsertionEffect : fn => fn();\nexport function useEventCallback(callback) {\n const stable = useRefWithInit(createStableCallback).current;\n stable.next = callback;\n useSafeInsertionEffect(stable.effect);\n return stable.trampoline;\n}\nfunction createStableCallback() {\n const stable = {\n next: undefined,\n callback: assertNotCalled,\n trampoline: (...args) => stable.callback?.(...args),\n effect: () => {\n stable.callback = stable.next;\n }\n };\n return stable;\n}\nfunction assertNotCalled() {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error('Base UI: Cannot call an event handler while rendering.');\n }\n}","const hasNavigator = typeof navigator !== 'undefined';\nconst nav = getNavigatorData();\nconst platform = getPlatform();\nconst userAgent = getUserAgent();\nexport const isWebKit = typeof CSS === 'undefined' || !CSS.supports ? false : CSS.supports('-webkit-backdrop-filter:none');\nexport const isIOS =\n// iPads can claim to be MacIntel\nnav.platform === 'MacIntel' && nav.maxTouchPoints > 1 ? true : /iP(hone|ad|od)|iOS/.test(nav.platform);\nexport const isFirefox = hasNavigator && /firefox/i.test(userAgent);\nexport const isSafari = hasNavigator && /apple/i.test(navigator.vendor);\nexport const isAndroid = hasNavigator && /android/i.test(platform) || /android/i.test(userAgent);\nexport const isMac = hasNavigator && platform.toLowerCase().startsWith('mac') && !navigator.maxTouchPoints;\nexport const isJSDOM = userAgent.includes('jsdom/');\n\n// Avoid Chrome DevTools blue warning.\nfunction getNavigatorData() {\n if (!hasNavigator) {\n return {\n platform: '',\n maxTouchPoints: -1\n };\n }\n const uaData = navigator.userAgentData;\n if (uaData?.platform) {\n return {\n platform: uaData.platform,\n maxTouchPoints: navigator.maxTouchPoints\n };\n }\n return {\n platform: navigator.platform ?? '',\n maxTouchPoints: navigator.maxTouchPoints ?? -1\n };\n}\nfunction getUserAgent() {\n if (!hasNavigator) {\n return '';\n }\n const uaData = navigator.userAgentData;\n if (uaData && Array.isArray(uaData.brands)) {\n return uaData.brands.map(({\n brand,\n version\n }) => `${brand}/${version}`).join(' ');\n }\n return navigator.userAgent;\n}\nfunction getPlatform() {\n if (!hasNavigator) {\n return '';\n }\n const uaData = navigator.userAgentData;\n if (uaData?.platform) {\n return uaData.platform;\n }\n return navigator.platform ?? '';\n}","export const FOCUSABLE_ATTRIBUTE = 'data-base-ui-focusable';\nexport const ACTIVE_KEY = 'active';\nexport const SELECTED_KEY = 'selected';\nexport const TYPEABLE_SELECTOR = \"input:not([type='hidden']):not([disabled]),\" + \"[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";\nexport const ARROW_LEFT = 'ArrowLeft';\nexport const ARROW_RIGHT = 'ArrowRight';\nexport const ARROW_UP = 'ArrowUp';\nexport const ARROW_DOWN = 'ArrowDown';","import { isHTMLElement, isShadowRoot } from '@floating-ui/utils/dom';\nimport { isJSDOM } from '@base-ui-components/utils/detectBrowser';\nimport { FOCUSABLE_ATTRIBUTE, TYPEABLE_SELECTOR } from \"./constants.js\";\nexport function activeElement(doc) {\n let element = doc.activeElement;\n while (element?.shadowRoot?.activeElement != null) {\n element = element.shadowRoot.activeElement;\n }\n return element;\n}\nexport function contains(parent, child) {\n if (!parent || !child) {\n return false;\n }\n const rootNode = 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 next = next.parentNode || next.host;\n }\n }\n\n // Give up, the result is false\n return false;\n}\nexport function 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}\nexport function 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 eventAgain = event;\n return eventAgain.target != null && node.contains(eventAgain.target);\n}\nexport function isRootElement(element) {\n return element.matches('html,body');\n}\nexport function getDocument(node) {\n return node?.ownerDocument || document;\n}\nexport function isTypeableElement(element) {\n return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\nexport function isTypeableCombobox(element) {\n if (!element) {\n return false;\n }\n return element.getAttribute('role') === 'combobox' && isTypeableElement(element);\n}\nexport function matchesFocusVisible(element) {\n // We don't want to block focus from working with `visibleOnly`\n // (JSDOM doesn't match `:focus-visible` when the element has `:focus`)\n if (!element || isJSDOM) {\n return true;\n }\n try {\n return element.matches(':focus-visible');\n } catch (_e) {\n return true;\n }\n}\nexport function getFloatingFocusElement(floatingElement) {\n if (!floatingElement) {\n return null;\n }\n // Try to find the element that has `{...getFloatingProps()}` spread on it.\n // This indicates the floating element is acting as a positioning wrapper, and\n // so focus should be managed on the child element with the event handlers and\n // aria props.\n return floatingElement.hasAttribute(FOCUSABLE_ATTRIBUTE) ? floatingElement : floatingElement.querySelector(`[${FOCUSABLE_ATTRIBUTE}]`) || floatingElement;\n}","/* eslint-disable @typescript-eslint/no-loop-func */\n\nexport function getNodeChildren(nodes, id, onlyOpenChildren = true) {\n const directChildren = nodes.filter(node => node.parentId === id && (!onlyOpenChildren || node.context?.open));\n return directChildren.flatMap(child => [child, ...getNodeChildren(nodes, child.id, onlyOpenChildren)]);\n}\nexport function 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 = getNodeChildren(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}\nexport function getNodeAncestors(nodes, id) {\n let allAncestors = [];\n let currentParentId = nodes.find(node => node.id === id)?.parentId;\n while (currentParentId) {\n const currentNode = nodes.find(node => node.id === currentParentId);\n currentParentId = currentNode?.parentId;\n if (currentNode) {\n allAncestors = allAncestors.concat(currentNode);\n }\n }\n return allAncestors;\n}","import { isAndroid, isJSDOM } from '@base-ui-components/utils/detectBrowser';\nexport function stopEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n}\nexport function isReactEvent(event) {\n return 'nativeEvent' in event;\n}\n\n// License: https://github.com/adobe/react-spectrum/blob/b35d5c02fe900badccd0cf1a8f23bb593419f238/packages/@react-aria/utils/src/isVirtualEvent.ts\nexport function isVirtualClick(event) {\n // FIXME: Firefox is now emitting a deprecation warning for `mozInputSource`.\n // Try to find a workaround for this. `react-aria` source still has the check.\n if (event.mozInputSource === 0 && event.isTrusted) {\n return true;\n }\n if (isAndroid && event.pointerType) {\n return event.type === 'click' && event.buttons === 1;\n }\n return event.detail === 0 && !event.pointerType;\n}\nexport function isVirtualPointerEvent(event) {\n if (isJSDOM) {\n return false;\n }\n return !isAndroid && event.width === 0 && event.height === 0 || isAndroid && 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 && event.pointerType === 'touch';\n}\nexport function 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}","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst 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}\nconst yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);\nfunction getSideAxis(placement) {\n return yAxisSides.has(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}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rlPlacement : lrPlacement;\n return isStart ? lrPlacement : rlPlacement;\n case 'left':\n case 'right':\n return isStart ? tbPlacement : btPlacement;\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 const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\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 { floor } from '@floating-ui/utils';\nimport { stopEvent } from \"./event.js\";\nimport { ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, ARROW_UP } from \"./constants.js\";\nexport function isDifferentGridRow(index, cols, prevRow) {\n return Math.floor(index / cols) !== prevRow;\n}\nexport function isIndexOutOfListBounds(listRef, index) {\n return index < 0 || index >= listRef.current.length;\n}\nexport function getMinListIndex(listRef, disabledIndices) {\n return findNonDisabledListIndex(listRef, {\n disabledIndices\n });\n}\nexport function getMaxListIndex(listRef, disabledIndices) {\n return findNonDisabledListIndex(listRef, {\n decrement: true,\n startingIndex: listRef.current.length,\n disabledIndices\n });\n}\nexport function findNonDisabledListIndex(listRef, {\n startingIndex = -1,\n decrement = false,\n disabledIndices,\n amount = 1\n} = {}) {\n let index = startingIndex;\n do {\n index += decrement ? -amount : amount;\n } while (index >= 0 && index <= listRef.current.length - 1 && isListIndexDisabled(listRef, index, disabledIndices));\n return index;\n}\nexport function getGridNavigatedIndex(listRef, {\n event,\n orientation,\n loop,\n rtl,\n cols,\n disabledIndices,\n minIndex,\n maxIndex,\n prevIndex,\n stopEvent: stop = false\n}) {\n let nextIndex = prevIndex;\n\n // ---------------------------------------------------------------------------\n // Detect row structure based on DOM. This works when items are grouped inside\n // elements that declare `role=\"row\"` (e.g., Combobox.Row). We build a matrix\n // where each entry is the array of item indices for that visual row. The\n // algorithm gracefully falls back to regular `cols`-based handling when no\n // row structure can be detected.\n // ---------------------------------------------------------------------------\n const rows = [];\n const rowIndexMap = {};\n let hasRoleRow = false;\n {\n let currentRowEl = null;\n let currentRowIndex = -1;\n listRef.current.forEach((el, idx) => {\n if (el == null) {\n return;\n }\n const rowEl = el.closest('[role=\"row\"]');\n if (rowEl) {\n hasRoleRow = true;\n }\n if (rowEl !== currentRowEl || currentRowIndex === -1) {\n currentRowEl = rowEl;\n currentRowIndex += 1;\n rows[currentRowIndex] = [];\n }\n rows[currentRowIndex].push(idx);\n rowIndexMap[idx] = currentRowIndex;\n });\n }\n const hasDomRows = hasRoleRow && rows.length > 0 && rows.some(row => row.length !== cols);\n function navigateVertically(direction) {\n if (!hasDomRows || prevIndex === -1) {\n return undefined;\n }\n const currentRow = rowIndexMap[prevIndex];\n if (currentRow == null) {\n return undefined;\n }\n const colInRow = rows[currentRow].indexOf(prevIndex);\n let nextRow = direction === 'up' ? currentRow - 1 : currentRow + 1;\n if (loop) {\n if (nextRow < 0) {\n nextRow = rows.length - 1;\n } else if (nextRow >= rows.length) {\n nextRow = 0;\n }\n }\n const visited = new Set();\n while (nextRow >= 0 && nextRow < rows.length && !visited.has(nextRow)) {\n visited.add(nextRow);\n const targetRow = rows[nextRow];\n if (targetRow.length === 0) {\n nextRow = direction === 'up' ? nextRow - 1 : nextRow + 1;\n continue;\n }\n const clampedCol = Math.min(colInRow, targetRow.length - 1);\n // Start from the preferred column, fallback leftwards until first\n // enabled item is found.\n for (let col = clampedCol; col >= 0; col -= 1) {\n const candidate = targetRow[col];\n if (!isListIndexDisabled(listRef, candidate, disabledIndices)) {\n return candidate;\n }\n }\n // Row had no enabled items, move to next row in the same direction.\n nextRow = direction === 'up' ? nextRow - 1 : nextRow + 1;\n if (loop) {\n if (nextRow < 0) {\n nextRow = rows.length - 1;\n } else if (nextRow >= rows.length) {\n nextRow = 0;\n }\n }\n }\n return undefined;\n }\n if (event.key === ARROW_UP) {\n const domBasedCandidate = navigateVertically('up');\n if (domBasedCandidate !== undefined) {\n if (stop) {\n stopEvent(event);\n }\n nextIndex = domBasedCandidate;\n } else {\n // fallback to original logic\n if (stop) {\n stopEvent(event);\n }\n if (prevIndex === -1) {\n nextIndex = maxIndex;\n } else {\n nextIndex = findNonDisabledListIndex(listRef, {\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 (isIndexOutOfListBounds(listRef, nextIndex)) {\n nextIndex = prevIndex;\n }\n }\n }\n if (event.key === ARROW_DOWN) {\n const domBasedCandidate = navigateVertically('down');\n if (domBasedCandidate !== undefined) {\n if (stop) {\n stopEvent(event);\n }\n nextIndex = domBasedCandidate;\n } else {\n if (stop) {\n stopEvent(event);\n }\n if (prevIndex === -1) {\n nextIndex = minIndex;\n } else {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex,\n amount: cols,\n disabledIndices\n });\n if (loop && prevIndex + cols > maxIndex) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex % cols - cols,\n amount: cols,\n disabledIndices\n });\n }\n }\n if (isIndexOutOfListBounds(listRef, nextIndex)) {\n nextIndex = prevIndex;\n }\n }\n }\n\n // Remains on the same row/column.\n if (orientation === 'both') {\n const prevRow = floor(prevIndex / cols);\n if (event.key === (rtl ? ARROW_LEFT : ARROW_RIGHT)) {\n if (stop) {\n stopEvent(event);\n }\n if (prevIndex % cols !== cols - 1) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex,\n disabledIndices\n });\n if (loop && isDifferentGridRow(nextIndex, cols, prevRow)) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n } else if (loop) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n if (isDifferentGridRow(nextIndex, cols, prevRow)) {\n nextIndex = prevIndex;\n }\n }\n if (event.key === (rtl ? ARROW_RIGHT : ARROW_LEFT)) {\n if (stop) {\n stopEvent(event);\n }\n if (prevIndex % cols !== 0) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex,\n decrement: true,\n disabledIndices\n });\n if (loop && isDifferentGridRow(nextIndex, cols, prevRow)) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n } else if (loop) {\n nextIndex = findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n if (isDifferentGridRow(nextIndex, cols, prevRow)) {\n nextIndex = prevIndex;\n }\n }\n const lastRow = floor(maxIndex / cols) === prevRow;\n if (isIndexOutOfListBounds(listRef, nextIndex)) {\n if (loop && lastRow) {\n nextIndex = event.key === (rtl ? ARROW_RIGHT : ARROW_LEFT) ? maxIndex : findNonDisabledListIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n } else {\n nextIndex = prevIndex;\n }\n }\n }\n return nextIndex;\n}\n\n/** For each cell index, gets the item index that occupies that cell */\nexport function createGridCellMap(sizes, cols, dense) {\n const cellMap = [];\n let startIndex = 0;\n sizes.forEach(({\n width,\n height\n }, index) => {\n if (width > cols) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`[Floating UI]: Invalid grid - item width at index ${index} is greater than grid columns`);\n }\n }\n let itemPlaced = false;\n if (dense) {\n startIndex = 0;\n }\n while (!itemPlaced) {\n const targetCells = [];\n for (let i = 0; i < width; i += 1) {\n for (let j = 0; j < height; j += 1) {\n targetCells.push(startIndex + i + j * cols);\n }\n }\n if (startIndex % cols + width <= cols && targetCells.every(cell => cellMap[cell] == null)) {\n targetCells.forEach(cell => {\n cellMap[cell] = index;\n });\n itemPlaced = true;\n } else {\n startIndex += 1;\n }\n }\n });\n\n // convert into a non-sparse array\n return [...cellMap];\n}\n\n/** Gets cell index of an item's corner or -1 when index is -1. */\nexport function getGridCellIndexOfCorner(index, sizes, cellMap, cols, corner) {\n if (index === -1) {\n return -1;\n }\n const firstCellIndex = cellMap.indexOf(index);\n const sizeItem = sizes[index];\n switch (corner) {\n case 'tl':\n return firstCellIndex;\n case 'tr':\n if (!sizeItem) {\n return firstCellIndex;\n }\n return firstCellIndex + sizeItem.width - 1;\n case 'bl':\n if (!sizeItem) {\n return firstCellIndex;\n }\n return firstCellIndex + (sizeItem.height - 1) * cols;\n case 'br':\n return cellMap.lastIndexOf(index);\n default:\n return -1;\n }\n}\n\n/** Gets all cell indices that correspond to the specified indices */\nexport function getGridCellIndices(indices, cellMap) {\n return cellMap.flatMap((index, cellIndex) => indices.includes(index) ? [cellIndex] : []);\n}\nexport function isListIndexDisabled(listRef, index, disabledIndices) {\n if (typeof disabledIndices === 'function') {\n return disabledIndices(index);\n }\n if (disabledIndices) {\n return disabledIndices.includes(index);\n }\n const element = listRef.current[index];\n return element == null || element.hasAttribute('disabled') || element.getAttribute('aria-disabled') === 'true';\n}","/*!\n* tabbable 6.2.0\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};\n\n/**\n * @private\n * Determines if the node has an explicitly specified `tabindex` attribute.\n * @param {HTMLElement} node\n * @returns {boolean} True if so; false if not.\n */\nvar hasTabIndex = function hasTabIndex(node) {\n return !isNaN(parseInt(node.getAttribute('tabindex'), 10));\n};\n\n/**\n * Determine the tab index of a given node.\n * @param {HTMLElement} node\n * @returns {number} Tab order (negative, 0, or positive number).\n * @throws {Error} If `node` is falsy.\n */\nvar getTabIndex = function getTabIndex(node) {\n if (!node) {\n throw new Error('No node provided');\n }\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 if ((/^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && !hasTabIndex(node)) {\n return 0;\n }\n }\n return node.tabIndex;\n};\n\n/**\n * Determine the tab index of a given node __for sort order purposes__.\n * @param {HTMLElement} node\n * @param {boolean} [isScope] True for a custom element with shadow root or slot that, by default,\n * has tabIndex -1, but needs to be sorted by document order in order for its content to be\n * inserted into the correct sort position.\n * @returns {number} Tab order (negative, 0, or positive number).\n */\nvar getSortOrderTabIndex = function getSortOrderTabIndex(node, isScope) {\n var tabIndex = getTabIndex(node);\n if (tabIndex < 0 && isScope && !hasTabIndex(node)) {\n return 0;\n }\n return 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 = getSortOrderTabIndex(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(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isValidShadowRootTabbable\n });\n } else {\n candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n return sortByOrder(candidates);\n};\nvar focusable = function focusable(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(container, 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, getTabIndex, isFocusable, isTabbable, tabbable };\n//# sourceMappingURL=index.esm.js.map\n","import { tabbable } from 'tabbable';\nimport { activeElement, contains, getDocument } from \"./element.js\";\nexport const 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, dir) {\n const list = tabbable(container, getTabbableOptions());\n const len = list.length;\n if (len === 0) {\n return undefined;\n }\n const active = activeElement(getDocument(container));\n const index = list.indexOf(active);\n // eslint-disable-next-line no-nested-ternary\n const nextIndex = index === -1 ? dir === 1 ? 0 : len - 1 : index + dir;\n return list[nextIndex];\n}\nexport function getNextTabbable(referenceElement) {\n return getTabbableIn(getDocument(referenceElement).body, 1) || referenceElement;\n}\nexport function getPreviousTabbable(referenceElement) {\n return getTabbableIn(getDocument(referenceElement).body, -1) || referenceElement;\n}\nexport function isOutsideEvent(event, container) {\n const containerElement = container || event.currentTarget;\n const relatedTarget = event.relatedTarget;\n return !relatedTarget || !contains(containerElement, relatedTarget);\n}\nexport function 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}\nexport function 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}","import * as React from 'react';\n\n// https://github.com/mui/material-ui/issues/41190#issuecomment-2040873379\nexport const SafeReact = {\n ...React\n};","'use client';\n\nimport * as React from 'react';\nimport { SafeReact } from \"./safeReact.js\";\nlet globalId = 0;\n\n// TODO React 17: Remove `useGlobalId` once React 17 support is removed\nfunction useGlobalId(idOverride, prefix = 'mui') {\n const [defaultId, setDefaultId] = React.useState(idOverride);\n const id = idOverride || defaultId;\n React.useEffect(() => {\n if (defaultId == null) {\n // Fallback to this default id when possible.\n // Use the incrementing value for client-side rendering only.\n // We can't use it server-side.\n // If you want to use random values please consider the Birthday Problem: https://en.wikipedia.org/wiki/Birthday_problem\n globalId += 1;\n setDefaultId(`${prefix}-${globalId}`);\n }\n }, [defaultId, prefix]);\n return id;\n}\nconst maybeReactUseId = SafeReact.useId;\n\n/**\n *\n * @example <div id={useId()} />\n * @param idOverride\n * @returns {string}\n */\nexport function useId(idOverride, prefix) {\n // React.useId() is only available from React 17.0.0.\n if (maybeReactUseId !== undefined) {\n const reactId = maybeReactUseId();\n return idOverride ?? (prefix ? `${prefix}-${reactId}` : reactId);\n }\n\n // TODO: uncomment once we enable eslint-plugin-react-compiler // eslint-disable-next-line react-compiler/react-compiler\n // eslint-disable-next-line react-hooks/rules-of-hooks -- `React.useId` is invariant at runtime.\n return useGlobalId(idOverride, prefix);\n}","export function createEventEmitter() {\n const map = new Map();\n return {\n emit(event, data) {\n map.get(event)?.forEach(listener => listener(data));\n },\n on(event, listener) {\n if (!map.has(event)) {\n map.set(event, new Set());\n }\n map.get(event).add(listener);\n },\n off(event, listener) {\n map.get(event)?.delete(listener);\n }\n };\n}","import * as React from 'react';\nimport { useId } from '@base-ui-components/utils/useId';\nimport { useIsoLayoutEffect } from '@base-ui-components/utils/useIsoLayoutEffect';\nimport { createEventEmitter } from \"../utils/createEventEmitter.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FloatingNodeContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") FloatingNodeContext.displayName = \"FloatingNodeContext\";\nconst FloatingTreeContext = /*#__PURE__*/React.createContext(null);\n\n/**\n * Returns the parent node id for nested floating elements, if available.\n * Returns `null` for top-level floating elements.\n */\nif (process.env.NODE_ENV !== \"production\") FloatingTreeContext.displayName = \"FloatingTreeContext\";\nexport const useFloatingParentNodeId = () => React.useContext(FloatingNodeContext)?.id || null;\n\n/**\n * Returns the nearest floating tree context, if available.\n */\nexport const useFloatingTree = () => React.useContext(FloatingTreeContext);\n\n/**\n * Registers a node into the `FloatingTree`, returning its id.\n * @see https://floating-ui.com/docs/FloatingTree\n */\nexport function useFloatingNodeId(customParentId) {\n const id = useId();\n const tree = useFloatingTree();\n const reactParentId = useFloatingParentNodeId();\n const parentId = customParentId || reactParentId;\n useIsoLayoutEffect(() => {\n if (!id) {\n return undefined;\n }\n const node = {\n id,\n parentId\n };\n tree?.addNode(node);\n return () => {\n tree?.removeNode(node);\n };\n }, [tree, id, parentId]);\n return id;\n}\n/**\n * Provides parent node context for nested floating elements.\n * @see https://floating-ui.com/docs/FloatingTree\n * @internal\n */\nexport function FloatingNode(props) {\n const {\n children,\n id\n } = props;\n const parentId = useFloatingParentNodeId();\n return /*#__PURE__*/_jsx(FloatingNodeContext.Provider, {\n value: React.useMemo(() => ({\n id,\n parentId\n }), [id, parentId]),\n children: children\n });\n}\n/**\n * Provides context for nested floating elements when they are not children of\n * each other on the DOM.\n * This is not necessary in all cases, except when there must be explicit communication between parent and child floating elements. It is necessary for:\n * - The `bubbles` option in the `useDismiss()` Hook\n * - Nested virtual list navigation\n * - Nested floating elements that each open on hover\n * - Custom communication between parent and child floating elements\n * @see https://floating-ui.com/docs/FloatingTree\n * @internal\n */\nexport function FloatingTree(props) {\n const {\n children\n } = props;\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(() => createEventEmitter());\n return /*#__PURE__*/_jsx(FloatingTreeContext.Provider, {\n value: React.useMemo(() => ({\n nodesRef,\n addNode,\n removeNode,\n events\n }), [addNode, removeNode, events]),\n children: children\n });\n}","/**\n * Maps an open-change `reason` string to the corresponding native event type.\n */\n\n/**\n * Details of custom events emitted by Base UI components.\n */\n\n/**\n * Creates a Base UI event details object with the given reason and utilities\n * for preventing Base UI's internal event handling.\n */\nexport function createBaseUIEventDetails(reason, event) {\n let canceled = false;\n let allowPropagation = false;\n return {\n reason,\n event: event ?? new Event('base-ui'),\n cancel() {\n canceled = true;\n },\n allowPropagation() {\n allowPropagation = true;\n },\n get isCanceled() {\n return canceled;\n },\n get isPropagationAllowed() {\n return allowPropagation;\n }\n };\n}","export function createAttribute(name) {\n return `data-base-ui-${name}`;\n}","import * as React from 'react';\nimport { isElement } from '@floating-ui/utils/dom';\nimport { useTimeout } from '@base-ui-components/utils/useTimeout';\nimport { useLatestRef } from '@base-ui-components/utils/useLatestRef';\nimport { useEventCallback } from '@base-ui-components/utils/useEventCallback';\nimport { useIsoLayoutEffect } from '@base-ui-components/utils/useIsoLayoutEffect';\nimport { contains, getDocument, isMouseLikePointerType } from \"../utils.js\";\nimport { useFloatingParentNodeId, useFloatingTree } from \"../components/FloatingTree.js\";\nimport { createBaseUIEventDetails } from \"../../utils/createBaseUIEventDetails.js\";\nimport { createAttribute } from \"../utils/createAttribute.js\";\nconst safePolygonIdentifier = createAttribute('safe-polygon');\nexport function getDelay(value, prop, pointerType) {\n if (pointerType && !isMouseLikePointerType(pointerType)) {\n return 0;\n }\n if (typeof value === 'number') {\n return value;\n }\n if (typeof value === 'function') {\n const result = value();\n if (typeof result === 'number') {\n return result;\n }\n return result?.[prop];\n }\n return value?.[prop];\n}\nfunction getRestMs(value) {\n if (typeof value === 'function') {\n return value();\n }\n return value;\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 */\nexport function useHover(context, props = {}) {\n const {\n open,\n onOpenChange,\n dataRef,\n events,\n elements\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 openRef = useLatestRef(open);\n const restMsRef = useLatestRef(restMs);\n const pointerTypeRef = React.useRef(undefined);\n const timeout = useTimeout();\n const handlerRef = React.useRef(undefined);\n const restTimeout = useTimeout();\n const blockMouseMoveRef = React.useRef(true);\n const performedPointerEventsMutationRef = React.useRef(false);\n const unbindMouseMoveRef = React.useRef(() => {});\n const restTimeoutPendingRef = React.useRef(false);\n const isHoverOpen = useEventCallback(() => {\n const type = dataRef.current.openEvent?.type;\n return type?.includes('mouse') && type !== 'mousedown';\n });\n\n // When closing before opening, clear the delay timeouts to cancel it\n // from showing.\n React.useEffect(() => {\n if (!enabled) {\n return undefined;\n }\n function onOpenChangeLocal(details) {\n if (!details.open) {\n timeout.clear();\n restTimeout.clear();\n blockMouseMoveRef.current = true;\n restTimeoutPendingRef.current = false;\n }\n }\n events.on('openchange', onOpenChangeLocal);\n return () => {\n events.off('openchange', onOpenChangeLocal);\n };\n }, [enabled, events, timeout, restTimeout]);\n React.useEffect(() => {\n if (!enabled) {\n return undefined;\n }\n if (!handleCloseRef.current) {\n return undefined;\n }\n if (!open) {\n return undefined;\n }\n function onLeave(event) {\n if (isHoverOpen()) {\n onOpenChange(false, createBaseUIEventDetails('trigger-hover', event));\n }\n }\n const html = getDocument(elements.floating).documentElement;\n html.addEventListener('mouseleave', onLeave);\n return () => {\n html.removeEventListener('mouseleave', onLeave);\n };\n }, [elements.floating, open, onOpenChange, enabled, handleCloseRef, isHoverOpen]);\n const closeWithDelay = React.useCallback((event, runElseBranch = true) => {\n const closeDelay = getDelay(delayRef.current, 'close', pointerTypeRef.current);\n if (closeDelay && !handlerRef.current) {\n timeout.start(closeDelay, () => onOpenChange(false, createBaseUIEventDetails('trigger-hover', event)));\n } else if (runElseBranch) {\n timeout.clear();\n onOpenChange(false, createBaseUIEventDetails('trigger-hover', event));\n }\n }, [delayRef, onOpenChange, timeout]);\n const cleanupMouseMoveHandler = useEventCallback(() => {\n unbindMouseMoveRef.current();\n handlerRef.current = undefined;\n });\n const clearPointerEvents = useEventCallback(() => {\n if (performedPointerEventsMutationRef.current) {\n const body = getDocument(elements.floating).body;\n body.style.pointerEvents = '';\n body.removeAttribute(safePolygonIdentifier);\n performedPointerEventsMutationRef.current = false;\n }\n });\n const isClickLikeOpenEvent = useEventCallback(() => {\n return dataRef.current.openEvent ? ['click', 'mousedown'].includes(dataRef.current.openEvent.type) : false;\n });\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 undefined;\n }\n function onReferenceMouseEnter(event) {\n timeout.clear();\n blockMouseMoveRef.current = false;\n if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current) || getRestMs(restMsRef.current) > 0 && !getDelay(delayRef.current, 'open')) {\n return;\n }\n const openDelay = getDelay(delayRef.current, 'open', pointerTypeRef.current);\n if (openDelay) {\n timeout.start(openDelay, () => {\n if (!openRef.current) {\n onOpenChange(true, createBaseUIEventDetails('trigger-hover', event));\n }\n });\n } else if (!open) {\n onOpenChange(true, createBaseUIEventDetails('trigger-hover', event));\n }\n }\n function onReferenceMouseLeave(event) {\n if (isClickLikeOpenEvent()) {\n clearPointerEvents();\n return;\n }\n unbindMouseMoveRef.current();\n const doc = getDocument(elements.floating);\n restTimeout.clear();\n restTimeoutPendingRef.current = false;\n if (handleCloseRef.current && dataRef.current.floatingContext) {\n // Prevent clearing `onScrollMouseLeave` timeout.\n if (!open) {\n timeout.clear();\n }\n handlerRef.current = handleCloseRef.current({\n ...dataRef.current.floatingContext,\n tree,\n x: event.clientX,\n y: event.clientY,\n onClose() {\n clearPointerEvents();\n cleanupMouseMoveHandler();\n if (!isClickLikeOpenEvent()) {\n closeWithDelay(event, true);\n }\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(elements.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 if (!dataRef.current.floatingContext) {\n return;\n }\n handleCloseRef.current?.({\n ...dataRef.current.floatingContext,\n tree,\n x: event.clientX,\n y: event.clientY,\n onClose() {\n clearPointerEvents();\n cleanupMouseMoveHandler();\n if (!isClickLikeOpenEvent()) {\n closeWithDelay(event);\n }\n }\n })(event);\n }\n function onFloatingMouseEnter() {\n timeout.clear();\n }\n function onFloatingMouseLeave(event) {\n if (!isClickLikeOpenEvent()) {\n closeWithDelay(event, false);\n }\n }\n if (isElement(elements.domReference)) {\n const reference = elements.domReference;\n const floating = elements.floating;\n if (open) {\n reference.addEventListener('mouseleave', onScrollMouseLeave);\n }\n if (move) {\n reference.addEventListener('mousemove', onReferenceMouseEnter, {\n once: true\n });\n }\n reference.addEventListener('mouseenter', onReferenceMouseEnter);\n reference.addEventListener('mouseleave', onReferenceMouseLeave);\n if (floating) {\n floating.addEventListener('mouseleave', onScrollMouseLeave);\n floating.addEventListener('mouseenter', onFloatingMouseEnter);\n floating.addEventListener('mouseleave', onFloatingMouseLeave);\n }\n return () => {\n if (open) {\n reference.removeEventListener('mouseleave', onScrollMouseLeave);\n }\n if (move) {\n reference.removeEventListener('mousemove', onReferenceMouseEnter);\n }\n reference.removeEventListener('mouseenter', onReferenceMouseEnter);\n reference.removeEventListener('mouseleave', onReferenceMouseLeave);\n if (floating) {\n floating.removeEventListener('mouseleave', onScrollMouseLeave);\n floating.removeEventListener('mouseenter', onFloatingMouseEnter);\n floating.removeEventListener('mouseleave', onFloatingMouseLeave);\n }\n };\n }\n return undefined;\n }, [elements, enabled, context, mouseOnly, move, closeWithDelay, cleanupMouseMoveHandler, clearPointerEvents, onOpenChange, open, openRef, tree, delayRef, handleCloseRef, dataRef, isClickLikeOpenEvent, restMsRef, timeout, restTimeout]);\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 useIsoLayoutEffect(() => {\n if (!enabled) {\n return undefined;\n }\n\n // eslint-disable-next-line no-underscore-dangle\n if (open && handleCloseRef.current?.__options?.blockPointerEvents && isHoverOpen()) {\n performedPointerEventsMutationRef.current = true;\n const floatingEl = elements.floating;\n if (isElement(elements.domReference) && floatingEl) {\n const body = getDocument(elements.floating).body;\n body.setAttribute(safePolygonIdentifier, '');\n const ref = elements.domReference;\n const parentFloating = tree?.nodesRef.current.find(node => node.id === parentId)?.context?.elements.floating;\n if (parentFloating) {\n parentFloating.style.pointerEvents = '';\n }\n body.style.pointerEvents = 'none';\n ref.style.pointerEvents = 'auto';\n floatingEl.style.pointerEvents = 'auto';\n return () => {\n body.style.pointerEvents = '';\n ref.style.pointerEvents = '';\n floatingEl.style.pointerEvents = '';\n };\n }\n }\n return undefined;\n }, [enabled, open, parentId, elements, tree, handleCloseRef, isHoverOpen]);\n useIsoLayoutEffect(() => {\n if (!open) {\n pointerTypeRef.current = undefined;\n restTimeoutPendingRef.current = false;\n cleanupMouseMoveHandler();\n clearPointerEvents();\n }\n }, [open, cleanupMouseMoveHandler, clearPointerEvents]);\n React.useEffect(() => {\n return () => {\n cleanupMouseMoveHandler();\n timeout.clear();\n restTimeout.clear();\n };\n }, [enabled, elements.domReference, cleanupMouseMoveHandler, timeout, restTimeout]);\n React.useEffect(() => {\n return clearPointerEvents;\n }, [clearPointerEvents]);\n const reference = React.useMemo(() => {\n function setPointerRef(event) {\n pointerTypeRef.current = event.pointerType;\n }\n return {\n onPointerDown: setPointerRef,\n onPointerEnter: setPointerRef,\n onMouseMove(event) {\n const {\n nativeEvent\n } = event;\n function handleMouseMove() {\n if (!blockMouseMoveRef.current && !openRef.current) {\n onOpenChange(true, createBaseUIEventDetails('trigger-hover', nativeEvent));\n }\n }\n if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current)) {\n return;\n }\n if (open || getRestMs(restMsRef.current) === 0) {\n return;\n }\n\n // Ignore insignificant movements to account for tremors.\n if (restTimeoutPendingRef.current && event.movementX ** 2 + event.movementY ** 2 < 2) {\n return;\n }\n restTimeout.clear();\n if (pointerTypeRef.current === 'touch') {\n handleMouseMove();\n } else {\n restTimeoutPendingRef.current = true;\n restTimeout.start(getRestMs(restMsRef.current), handleMouseMove);\n }\n }\n };\n }, [mouseOnly, onOpenChange, open, openRef, restMsRef, restTimeout]);\n return React.useMemo(() => enabled ? {\n reference\n } : {}, [enabled, reference]);\n}","export const visuallyHidden = {\n clip: 'rect(0 0 0 0)',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n position: 'fixed',\n top: 0,\n left: 0,\n border: 0,\n padding: 0,\n width: 1,\n height: 1,\n margin: -1\n};","'use client';\n\nimport { useRefWithInit } from \"./useRefWithInit.js\";\nimport { useOnMount } from \"./useOnMount.js\";\n/** Unlike `setTimeout`, rAF doesn't guarantee a positive integer return value, so we can't have\n * a monomorphic `uint` type with `0` meaning empty.\n * See warning note at:\n * https://developer.mozilla.org/en-US/docs/Web/API/Window/requestAnimationFrame#return_value */\nconst EMPTY = null;\nlet LAST_RAF = globalThis.requestAnimationFrame;\nclass Scheduler {\n /* This implementation uses an array as a backing data-structure for frame callbacks.\n * It allows `O(1)` callback cancelling by inserting a `null` in the array, though it\n * never calls the native `cancelAnimationFrame` if there are no frames left. This can\n * be much more efficient if there is a call pattern that alterns as\n * \"request-cancel-request-cancel-…\".\n * But in the case of \"request-request-…-cancel-cancel-…\", it leaves the final animation\n * frame to run anyway. We turn that frame into a `O(1)` no-op via `callbacksCount`. */\n\n callbacks = (() => [])();\n callbacksCount = 0;\n nextId = 1;\n startId = 1;\n isScheduled = false;\n tick = timestamp => {\n this.isScheduled = false;\n const currentCallbacks = this.callbacks;\n const currentCallbacksCount = this.callbacksCount;\n\n // Update these before iterating, callbacks could call `requestAnimationFrame` again.\n this.callbacks = [];\n this.callbacksCount = 0;\n this.startId = this.nextId;\n if (currentCallbacksCount > 0) {\n for (let i = 0; i < currentCallbacks.length; i += 1) {\n currentCallbacks[i]?.(timestamp);\n }\n }\n };\n request(fn) {\n const id = this.nextId;\n this.nextId += 1;\n this.callbacks.push(fn);\n this.callbacksCount += 1;\n\n /* In a test environment with fake timers, a fake `requestAnimationFrame` can be called\n * but there's no guarantee that the animation frame will actually run before the fake\n * timers are teared, which leaves `isScheduled` set, but won't run our `tick()`. */\n const didRAFChange = process.env.NODE_ENV === 'test' && LAST_RAF !== requestAnimationFrame && (LAST_RAF = requestAnimationFrame, true);\n if (!this.isScheduled || didRAFChange) {\n requestAnimationFrame(this.tick);\n this.isScheduled = true;\n }\n return id;\n }\n cancel(id) {\n const index = id - this.startId;\n if (index < 0 || index >= this.callbacks.length) {\n return;\n }\n this.callbacks[index] = null;\n this.callbacksCount -= 1;\n }\n}\nconst scheduler = new Scheduler();\nexport class AnimationFrame {\n static create() {\n return new AnimationFrame();\n }\n static request(fn) {\n return scheduler.request(fn);\n }\n static cancel(id) {\n return scheduler.cancel(id);\n }\n currentId = (() => EMPTY)();\n\n /**\n * Executes `fn` after `delay`, clearing any previously scheduled call.\n */\n request(fn) {\n this.cancel();\n this.currentId = scheduler.request(() => {\n this.currentId = EMPTY;\n fn();\n });\n }\n cancel = () => {\n if (this.currentId !== EMPTY) {\n scheduler.cancel(this.currentId);\n this.currentId = EMPTY;\n }\n };\n disposeEffect = () => {\n return this.cancel;\n };\n}\n\n/**\n * A `requestAnimationFrame` with automatic cleanup and guard.\n */\nexport function useAnimationFrame() {\n const timeout = useRefWithInit(AnimationFrame.create).current;\n useOnMount(timeout.disposeEffect);\n return timeout;\n}","export { getWindow as ownerWindow } from '@floating-ui/utils/dom';\nexport function ownerDocument(node) {\n return node?.ownerDocument || document;\n}","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui-components/utils/useIsoLayoutEffect';\nimport { isSafari } from '@base-ui-components/utils/detectBrowser';\nimport { visuallyHidden } from '@base-ui-components/utils/visuallyHidden';\n\n/**\n * @internal\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const FocusGuard = /*#__PURE__*/React.forwardRef(function FocusGuard(props, ref) {\n const [role, setRole] = React.useState();\n useIsoLayoutEffect(() => {\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 setRole('button');\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 style: visuallyHidden\n };\n return /*#__PURE__*/_jsx(\"span\", {\n ...props,\n ...restProps,\n \"data-base-ui-focus-guard\": \"\"\n });\n});\nif (process.env.NODE_ENV !== \"production\") FocusGuard.displayName = \"FocusGuard\";","let rafId = 0;\nexport function enqueueFocus(el, options = {}) {\n const {\n preventScroll = false,\n cancelPrevious = true,\n sync = false\n } = options;\n if (cancelPrevious) {\n cancelAnimationFrame(rafId);\n }\n const exec = () => el?.focus({\n preventScroll\n });\n if (sync) {\n exec();\n } else {\n rafId = requestAnimationFrame(exec);\n }\n}","// Modified to add conditional `aria-hidden` support:\n// https://github.com/theKashey/aria-hidden/blob/9220c8f4a4fd35f63bee5510a9f41a37264382d4/src/index.ts\nimport { getNodeName } from '@floating-ui/utils/dom';\nimport { getDocument } from \"./element.js\";\nconst counters = {\n inert: new WeakMap(),\n 'aria-hidden': new WeakMap(),\n none: new WeakMap()\n};\nfunction getCounterMap(control) {\n if (control === 'inert') {\n return counters.inert;\n }\n if (control === 'aria-hidden') {\n return counters['aria-hidden'];\n }\n return counters.none;\n}\nlet uncontrolledElementsSet = new WeakSet();\nlet markerMap = {};\nlet lockCount = 0;\nexport const 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-base-ui-inert';\n // eslint-disable-next-line no-nested-ternary\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 if (el.parentNode) {\n keep(el.parentNode);\n }\n }\n function deep(parent) {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n [].forEach.call(parent.children, node => {\n if (getNodeName(node) === 'script') {\n return;\n }\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 counterMap = getCounterMap(controlAttribute);\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, controlAttribute === 'inert' ? '' : 'true');\n }\n }\n });\n }\n lockCount += 1;\n return () => {\n hiddenElements.forEach(element => {\n const counterMap = getCounterMap(controlAttribute);\n const currentCounterValue = counterMap.get(element) || 0;\n const counterValue = currentCounterValue - 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 -= 1;\n if (!lockCount) {\n counters.inert = new WeakMap();\n counters['aria-hidden'] = new WeakMap();\n counters.none = new WeakMap();\n uncontrolledElementsSet = new WeakSet();\n markerMap = {};\n }\n };\n}\nexport function markOthers(avoidElements, ariaHidden = false, inert = false) {\n const body = getDocument(avoidElements[0]).body;\n return applyAttributeToOthers(avoidElements.concat(Array.from(body.querySelectorAll('[aria-live]'))), body, ariaHidden, inert);\n}","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { isNode } from '@floating-ui/utils/dom';\nimport { useId } from '@base-ui-components/utils/useId';\nimport { useIsoLayoutEffect } from '@base-ui-components/utils/useIsoLayoutEffect';\nimport { visuallyHidden } from '@base-ui-components/utils/visuallyHidden';\nimport { FocusGuard } from \"../../utils/FocusGuard.js\";\nimport { enableFocusInside, disableFocusInside, getPreviousTabbable, getNextTabbable, isOutsideEvent } from \"../utils.js\";\nimport { createBaseUIEventDetails } from \"../../utils/createBaseUIEventDetails.js\";\nimport { createAttribute } from \"../utils/createAttribute.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst PortalContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") PortalContext.displayName = \"PortalContext\";\nexport const usePortalContext = () => React.useContext(PortalContext);\nconst attr = createAttribute('portal');\n/**\n * @see https://floating-ui.com/docs/FloatingPortal#usefloatingportalnode\n */\nexport function useFloatingPortalNode(props = {}) {\n const {\n id,\n root\n } = props;\n const uniqueId = useId();\n const portalContext = usePortalContext();\n const [portalNode, setPortalNode] = React.useState(null);\n const portalNodeRef = React.useRef(null);\n useIsoLayoutEffect(() => {\n return () => {\n portalNode?.remove();\n // Allow the subsequent layout effects to create a new node on updates.\n // The portal node will still be cleaned up on unmount.\n // https://github.com/floating-ui/floating-ui/issues/2454\n queueMicrotask(() => {\n portalNodeRef.current = null;\n });\n };\n }, [portalNode]);\n useIsoLayoutEffect(() => {\n // Wait for the uniqueId to be generated before creating the portal node in\n // React <18 (using `useFloatingId` instead of the native `useId`).\n // https://github.com/floating-ui/floating-ui/issues/2778\n if (!uniqueId) {\n return;\n }\n if (portalNodeRef.current) {\n return;\n }\n const existingIdRoot = id ? document.getElementById(id) : null;\n if (!existingIdRoot) {\n return;\n }\n const subRoot = document.createElement('div');\n subRoot.id = uniqueId;\n subRoot.setAttribute(attr, '');\n existingIdRoot.appendChild(subRoot);\n portalNodeRef.current = subRoot;\n setPortalNode(subRoot);\n }, [id, uniqueId]);\n useIsoLayoutEffect(() => {\n // Wait for the root to exist before creating the portal node. The root must\n // be stored in state, not a ref, for this to work reactively.\n if (root === null) {\n return;\n }\n if (!uniqueId) {\n return;\n }\n if (portalNodeRef.current) {\n return;\n }\n let container = root || portalContext?.portalNode;\n if (container && !isNode(container)) {\n container = container.current;\n }\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 portalNodeRef.current = subRoot;\n setPortalNode(subRoot);\n }, [id, root, uniqueId, portalContext]);\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 * This is necessary to ensure the floating element can appear outside any\n * potential parent containers that cause clipping (such as `overflow: hidden`),\n * while retaining its location in the React tree.\n * @see https://floating-ui.com/docs/FloatingPortal\n * @internal\n */\nexport function FloatingPortal(props) {\n const {\n children,\n id,\n root,\n preserveTabOrder = true\n } = props;\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 modal = focusManagerState?.modal;\n const open = focusManagerState?.open;\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 || modal) {\n return undefined;\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, modal]);\n React.useEffect(() => {\n if (!portalNode) {\n return;\n }\n if (open) {\n return;\n }\n enableFocusInside(portalNode);\n }, [open, portalNode]);\n return /*#__PURE__*/_jsxs(PortalContext.Provider, {\n value: React.useMemo(() => ({\n preserveTabOrder,\n beforeOutsideRef,\n afterOutsideRef,\n beforeInsideRef,\n afterInsideRef,\n portalNode,\n setFocusManagerState\n }), [preserveTabOrder, portalNode]),\n children: [shouldRenderGuards && portalNode && /*#__PURE__*/_jsx(FocusGuard, {\n \"data-type\": \"outside\",\n ref: beforeOutsideRef,\n onFocus: event => {\n if (isOutsideEvent(event, portalNode)) {\n beforeInsideRef.current?.focus();\n } else {\n const domReference = focusManagerState ? focusManagerState.domReference : null;\n const prevTabbable = getPreviousTabbable(domReference);\n prevTabbable?.focus();\n }\n }\n }), shouldRenderGuards && portalNode && /*#__PURE__*/_jsx(\"span\", {\n \"aria-owns\": portalNode.id,\n style: visuallyHidden\n }), portalNode && /*#__PURE__*/ReactDOM.createPortal(children, portalNode), shouldRenderGuards && portalNode && /*#__PURE__*/_jsx(FocusGuard, {\n \"data-type\": \"outside\",\n ref: afterOutsideRef,\n onFocus: event => {\n if (isOutsideEvent(event, portalNode)) {\n afterInsideRef.current?.focus();\n } else {\n const domReference = focusManagerState ? focusManagerState.domReference : null;\n const nextTabbable = getNextTabbable(domReference);\n nextTabbable?.focus();\n if (focusManagerState?.closeOnFocusOut) {\n focusManagerState?.onOpenChange(false, createBaseUIEventDetails('focus-out', event.nativeEvent));\n }\n }\n }\n })]\n });\n}","import * as React from 'react';\nimport { tabbable, isTabbable, focusable } from 'tabbable';\nimport { getNodeName, isHTMLElement } from '@floating-ui/utils/dom';\nimport { useMergedRefs } from '@base-ui-components/utils/useMergedRefs';\nimport { useLatestRef } from '@base-ui-components/utils/useLatestRef';\nimport { useEventCallback } from '@base-ui-components/utils/useEventCallback';\nimport { useIsoLayoutEffect } from '@base-ui-components/utils/useIsoLayoutEffect';\nimport { visuallyHidden } from '@base-ui-components/utils/visuallyHidden';\nimport { useTimeout } from '@base-ui-components/utils/useTimeout';\nimport { useAnimationFrame } from '@base-ui-components/utils/useAnimationFrame';\nimport { ownerWindow } from '@base-ui-components/utils/owner';\nimport { FocusGuard } from \"../../utils/FocusGuard.js\";\nimport { activeElement, contains, getDocument, getTarget, isTypeableCombobox, isVirtualClick, isVirtualPointerEvent, stopEvent, getNodeAncestors, getNodeChildren, getFloatingFocusElement, getTabbableOptions, isOutsideEvent, getNextTabbable, getPreviousTabbable } from \"../utils.js\";\nimport { createBaseUIEventDetails } from \"../../utils/createBaseUIEventDetails.js\";\nimport { createAttribute } from \"../utils/createAttribute.js\";\nimport { enqueueFocus } from \"../utils/enqueueFocus.js\";\nimport { markOthers } from \"../utils/markOthers.js\";\nimport { usePortalContext } from \"./FloatingPortal.js\";\nimport { useFloatingTree } from \"./FloatingTree.js\";\nimport { CLICK_TRIGGER_IDENTIFIER } from \"../../utils/constants.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction getEventType(event, lastInteractionType) {\n const win = ownerWindow(event.target);\n if (event instanceof win.KeyboardEvent) {\n return 'keyboard';\n }\n if (event instanceof win.FocusEvent) {\n // Focus events can be caused by a preceding pointer interaction (e.g., focusout on outside press).\n // Prefer the last known pointer type if provided, else treat as keyboard.\n return lastInteractionType || 'keyboard';\n }\n if ('pointerType' in event) {\n return event.pointerType || 'keyboard';\n }\n if ('touches' in event) {\n return 'touch';\n }\n if (event instanceof win.MouseEvent) {\n // onClick events may not contain pointer events, and will fall through to here\n return lastInteractionType || (event.detail === 0 ? 'keyboard' : 'mouse');\n }\n return '';\n}\nconst LIST_LIMIT = 20;\nlet previouslyFocusedElements = [];\nfunction clearDisconnectedPreviouslyFocusedElements() {\n previouslyFocusedElements = previouslyFocusedElements.filter(el => el.isConnected);\n}\nfunction addPreviouslyFocusedElement(element) {\n clearDisconnectedPreviouslyFocusedElements();\n if (element && getNodeName(element) !== 'body') {\n previouslyFocusedElements.push(element);\n if (previouslyFocusedElements.length > LIST_LIMIT) {\n previouslyFocusedElements = previouslyFocusedElements.slice(-LIST_LIMIT);\n }\n }\n}\nfunction getPreviouslyFocusedElement() {\n clearDisconnectedPreviouslyFocusedElements();\n return previouslyFocusedElements[previouslyFocusedElements.length - 1];\n}\nfunction getFirstTabbableElement(container) {\n if (!container) {\n return null;\n }\n const tabbableOptions = getTabbableOptions();\n if (isTabbable(container, tabbableOptions)) {\n return container;\n }\n return tabbable(container, tabbableOptions)[0] || container;\n}\nfunction handleTabIndex(floatingFocusElement, orderRef) {\n if (!orderRef.current.includes('floating') && !floatingFocusElement.getAttribute('role')?.includes('dialog')) {\n return;\n }\n const options = getTabbableOptions();\n const focusableElements = focusable(floatingFocusElement, options);\n const tabbableContent = focusableElements.filter(element => {\n const dataTabIndex = element.getAttribute('data-tabindex') || '';\n return isTabbable(element, options) || element.hasAttribute('data-tabindex') && !dataTabIndex.startsWith('-');\n });\n const tabIndex = floatingFocusElement.getAttribute('tabindex');\n if (orderRef.current.includes('floating') || tabbableContent.length === 0) {\n if (tabIndex !== '0') {\n floatingFocusElement.setAttribute('tabindex', '0');\n }\n } else if (tabIndex !== '-1' || floatingFocusElement.hasAttribute('data-tabindex') && floatingFocusElement.getAttribute('data-tabindex') !== '-1') {\n floatingFocusElement.setAttribute('tabindex', '-1');\n floatingFocusElement.setAttribute('data-tabindex', '-1');\n }\n}\n/**\n * Provides focus management for the floating element.\n * @see https://floating-ui.com/docs/FloatingFocusManager\n * @internal\n */\nexport function FloatingFocusManager(props) {\n const {\n context,\n children,\n disabled = false,\n order = ['content'],\n initialFocus = true,\n returnFocus = true,\n restoreFocus = false,\n modal = true,\n closeOnFocusOut = true,\n openInteractionType = '',\n getInsideElements: getInsideElementsProp = () => []\n } = props;\n const {\n open,\n onOpenChange,\n events,\n dataRef,\n elements: {\n domReference,\n floating\n }\n } = context;\n const getNodeId = useEventCallback(() => dataRef.current.floatingContext?.nodeId);\n const getInsideElements = useEventCallback(getInsideElementsProp);\n const ignoreInitialFocus = initialFocus === false;\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 = isTypeableCombobox(domReference) && ignoreInitialFocus;\n const orderRef = useLatestRef(order);\n const initialFocusRef = useLatestRef(initialFocus);\n const returnFocusRef = useLatestRef(returnFocus);\n const openInteractionTypeRef = useLatestRef(openInteractionType);\n const tree = useFloatingTree();\n const portalContext = usePortalContext();\n const startDismissButtonRef = React.useRef(null);\n const endDismissButtonRef = React.useRef(null);\n const preventReturnFocusRef = React.useRef(false);\n const isPointerDownRef = React.useRef(false);\n const tabbableIndexRef = React.useRef(-1);\n const closeTypeRef = React.useRef('');\n const lastInteractionTypeRef = React.useRef('');\n const blurTimeout = useTimeout();\n const pointerDownTimeout = useTimeout();\n const restoreFocusFrame = useAnimationFrame();\n const isInsidePortal = portalContext != null;\n const floatingFocusElement = getFloatingFocusElement(floating);\n const getTabbableContent = useEventCallback((container = floatingFocusElement) => {\n return container ? tabbable(container, getTabbableOptions()) : [];\n });\n const getTabbableElements = useEventCallback(container => {\n const content = getTabbableContent(container);\n return orderRef.current.map(() => content).filter(Boolean).flat();\n });\n React.useEffect(() => {\n if (disabled) {\n return undefined;\n }\n if (!modal) {\n return undefined;\n }\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(floatingFocusElement, activeElement(getDocument(floatingFocusElement))) && getTabbableContent().length === 0 && !isUntrappedTypeableCombobox) {\n stopEvent(event);\n }\n }\n }\n const doc = getDocument(floatingFocusElement);\n doc.addEventListener('keydown', onKeyDown);\n return () => {\n doc.removeEventListener('keydown', onKeyDown);\n };\n }, [disabled, domReference, floatingFocusElement, modal, orderRef, isUntrappedTypeableCombobox, getTabbableContent, getTabbableElements]);\n React.useEffect(() => {\n if (disabled) {\n return undefined;\n }\n if (!floating) {\n return undefined;\n }\n function handleFocusIn(event) {\n const target = getTarget(event);\n const tabbableContent = getTabbableContent();\n const tabbableIndex = tabbableContent.indexOf(target);\n if (tabbableIndex !== -1) {\n tabbableIndexRef.current = tabbableIndex;\n }\n }\n floating.addEventListener('focusin', handleFocusIn);\n return () => {\n floating.removeEventListener('focusin', handleFocusIn);\n };\n }, [disabled, floating, getTabbableContent]);\n\n // Track the last interaction type at the document level to disambiguate focus events\n React.useEffect(() => {\n if (disabled || !open) {\n return undefined;\n }\n const doc = getDocument(floatingFocusElement);\n function onPointerDown(event) {\n lastInteractionTypeRef.current = event.pointerType || 'keyboard';\n }\n function onKeyDown() {\n lastInteractionTypeRef.current = 'keyboard';\n }\n doc.addEventListener('pointerdown', onPointerDown, true);\n doc.addEventListener('keydown', onKeyDown, true);\n return () => {\n doc.removeEventListener('pointerdown', onPointerDown, true);\n doc.removeEventListener('keydown', onKeyDown, true);\n };\n }, [disabled, floating, domReference, floatingFocusElement, open]);\n React.useEffect(() => {\n if (disabled) {\n return undefined;\n }\n if (!closeOnFocusOut) {\n return undefined;\n }\n\n // In Safari, buttons lose focus when pressing them.\n function handlePointerDown() {\n isPointerDownRef.current = true;\n pointerDownTimeout.start(0, () => {\n isPointerDownRef.current = false;\n });\n }\n function handleFocusOutside(event) {\n const relatedTarget = event.relatedTarget;\n const currentTarget = event.currentTarget;\n const target = getTarget(event);\n queueMicrotask(() => {\n const nodeId = getNodeId();\n const movedToUnrelatedNode = !(contains(domReference, relatedTarget) || contains(floating, relatedTarget) || contains(relatedTarget, floating) || contains(portalContext?.portalNode, relatedTarget) || relatedTarget?.hasAttribute(createAttribute('focus-guard')) || tree && (getNodeChildren(tree.nodesRef.current, nodeId).find(node => contains(node.context?.elements.floating, relatedTarget) || contains(node.context?.elements.domReference, relatedTarget)) || getNodeAncestors(tree.nodesRef.current, nodeId).find(node => [node.context?.elements.floating, getFloatingFocusElement(node.context?.elements.floating)].includes(relatedTarget) || node.context?.elements.domReference === relatedTarget)));\n if (currentTarget === domReference && floatingFocusElement) {\n handleTabIndex(floatingFocusElement, orderRef);\n }\n\n // Restore focus to the previous tabbable element index to prevent\n // focus from being lost outside the floating tree.\n if (restoreFocus && currentTarget !== domReference && !target?.isConnected && activeElement(getDocument(floatingFocusElement)) === getDocument(floatingFocusElement).body) {\n // Let `FloatingPortal` effect knows that focus is still inside the\n // floating tree.\n if (isHTMLElement(floatingFocusElement)) {\n floatingFocusElement.focus();\n // If explicitly requested to restore focus to the popup container, do not search\n // for the next/previous tabbable element.\n if (restoreFocus === 'popup') {\n // If the element is removed on pointerdown, focus tries to move it,\n // but since it's removed at the same time, focus gets lost as it\n // happens after the .focus() call above.\n // In this case, focus needs to be moved asynchronously.\n restoreFocusFrame.request(() => {\n floatingFocusElement.focus();\n });\n return;\n }\n }\n const prevTabbableIndex = tabbableIndexRef.current;\n const tabbableContent = getTabbableContent();\n const nodeToFocus = tabbableContent[prevTabbableIndex] || tabbableContent[tabbableContent.length - 1] || floatingFocusElement;\n if (isHTMLElement(nodeToFocus)) {\n nodeToFocus.focus();\n }\n }\n\n // https://github.com/floating-ui/floating-ui/issues/3060\n if (dataRef.current.insideReactTree) {\n dataRef.current.insideReactTree = false;\n return;\n }\n\n // Focus did not move inside the floating tree, and there are no tabbable\n // portal guards to handle closing.\n if ((isUntrappedTypeableCombobox ? true : !modal) && relatedTarget && movedToUnrelatedNode &&\n // Fix React 18 Strict Mode returnFocus due to double rendering.\n relatedTarget !== getPreviouslyFocusedElement()) {\n preventReturnFocusRef.current = true;\n onOpenChange(false, createBaseUIEventDetails('focus-out', event));\n }\n });\n }\n const shouldHandleBlurCapture = Boolean(!tree && portalContext);\n function markInsideReactTree() {\n dataRef.current.insideReactTree = true;\n blurTimeout.start(0, () => {\n dataRef.current.insideReactTree = false;\n });\n }\n if (floating && isHTMLElement(domReference)) {\n domReference.addEventListener('focusout', handleFocusOutside);\n domReference.addEventListener('pointerdown', handlePointerDown);\n floating.addEventListener('focusout', handleFocusOutside);\n if (shouldHandleBlurCapture) {\n floating.addEventListener('focusout', markInsideReactTree, true);\n }\n return () => {\n domReference.removeEventListener('focusout', handleFocusOutside);\n domReference.removeEventListener('pointerdown', handlePointerDown);\n floating.removeEventListener('focusout', handleFocusOutside);\n if (shouldHandleBlurCapture) {\n floating.removeEventListener('focusout', markInsideReactTree, true);\n }\n };\n }\n return undefined;\n }, [disabled, domReference, floating, floatingFocusElement, modal, tree, portalContext, onOpenChange, closeOnFocusOut, restoreFocus, getTabbableContent, isUntrappedTypeableCombobox, getNodeId, orderRef, dataRef, blurTimeout, pointerDownTimeout, restoreFocusFrame]);\n const beforeGuardRef = React.useRef(null);\n const afterGuardRef = React.useRef(null);\n const mergedBeforeGuardRef = useMergedRefs(beforeGuardRef, portalContext?.beforeInsideRef);\n const mergedAfterGuardRef = useMergedRefs(afterGuardRef, portalContext?.afterInsideRef);\n React.useEffect(() => {\n if (disabled || !floating || !open) {\n return undefined;\n }\n\n // Don't hide portals nested within the parent portal.\n const portalNodes = Array.from(portalContext?.portalNode?.querySelectorAll(`[${createAttribute('portal')}]`) || []);\n const ancestors = tree ? getNodeAncestors(tree.nodesRef.current, getNodeId()) : [];\n const rootAncestorComboboxDomReference = ancestors.find(node => isTypeableCombobox(node.context?.elements.domReference || null))?.context?.elements.domReference;\n const insideElements = [floating, rootAncestorComboboxDomReference, ...portalNodes, ...getInsideElements(), startDismissButtonRef.current, endDismissButtonRef.current, beforeGuardRef.current, afterGuardRef.current, portalContext?.beforeOutsideRef.current, portalContext?.afterOutsideRef.current, isUntrappedTypeableCombobox ? domReference : null].filter(x => x != null);\n const cleanup = markOthers(insideElements, modal || isUntrappedTypeableCombobox);\n return () => {\n cleanup();\n };\n }, [open, disabled, domReference, floating, modal, orderRef, portalContext, isUntrappedTypeableCombobox, tree, getNodeId, getInsideElements]);\n useIsoLayoutEffect(() => {\n if (disabled || !isHTMLElement(floatingFocusElement)) {\n return;\n }\n const doc = getDocument(floatingFocusElement);\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(floatingFocusElement);\n const initialFocusValueOrFn = initialFocusRef.current;\n const resolvedInitialFocus = typeof initialFocusValueOrFn === 'function' ? initialFocusValueOrFn(openInteractionTypeRef.current || '') : initialFocusValueOrFn;\n\n // `null` should fallback to default behavior in case of an empty ref.\n if (resolvedInitialFocus === undefined || resolvedInitialFocus === false) {\n return;\n }\n let elToFocus;\n if (resolvedInitialFocus === true || resolvedInitialFocus === null) {\n elToFocus = focusableElements[0] || floatingFocusElement;\n } else if ('current' in resolvedInitialFocus) {\n elToFocus = resolvedInitialFocus.current;\n } else {\n elToFocus = resolvedInitialFocus;\n }\n elToFocus = elToFocus || focusableElements[0] || floatingFocusElement;\n const focusAlreadyInsideFloatingEl = contains(floatingFocusElement, previouslyFocusedElement);\n if (!focusAlreadyInsideFloatingEl && open) {\n enqueueFocus(elToFocus, {\n preventScroll: elToFocus === floatingFocusElement\n });\n }\n });\n }, [disabled, open, floatingFocusElement, ignoreInitialFocus, getTabbableElements, initialFocusRef, openInteractionTypeRef]);\n useIsoLayoutEffect(() => {\n if (disabled || !floatingFocusElement) {\n return undefined;\n }\n const doc = getDocument(floatingFocusElement);\n const previouslyFocusedElement = activeElement(doc);\n addPreviouslyFocusedElement(previouslyFocusedElement);\n\n // Dismissing via outside press should always ignore `returnFocus` to\n // prevent unwanted scrolling.\n function onOpenChangeLocal(details) {\n if (!details.open) {\n closeTypeRef.current = getEventType(details.nativeEvent, lastInteractionTypeRef.current);\n }\n if (details.reason === 'trigger-hover' && details.nativeEvent.type === 'mouseleave') {\n preventReturnFocusRef.current = true;\n }\n if (details.reason !== 'outside-press') {\n return;\n }\n if (details.nested) {\n preventReturnFocusRef.current = false;\n } else if (isVirtualClick(details.nativeEvent) || isVirtualPointerEvent(details.nativeEvent)) {\n preventReturnFocusRef.current = false;\n } else {\n let isPreventScrollSupported = false;\n document.createElement('div').focus({\n get preventScroll() {\n isPreventScrollSupported = true;\n return false;\n }\n });\n if (isPreventScrollSupported) {\n preventReturnFocusRef.current = false;\n } else {\n preventReturnFocusRef.current = true;\n }\n }\n }\n events.on('openchange', onOpenChangeLocal);\n const fallbackEl = doc.createElement('span');\n fallbackEl.setAttribute('tabindex', '-1');\n fallbackEl.setAttribute('aria-hidden', 'true');\n Object.assign(fallbackEl.style, visuallyHidden);\n if (isInsidePortal && domReference) {\n domReference.insertAdjacentElement('afterend', fallbackEl);\n }\n function getReturnElement() {\n const returnFocusValueOrFn = returnFocusRef.current;\n let resolvedReturnFocusValue = typeof returnFocusValueOrFn === 'function' ? returnFocusValueOrFn(closeTypeRef.current) : returnFocusValueOrFn;\n\n // `null` should fallback to default behavior in case of an empty ref.\n if (resolvedReturnFocusValue === undefined || resolvedReturnFocusValue === false) {\n return null;\n }\n if (resolvedReturnFocusValue === null) {\n resolvedReturnFocusValue = true;\n }\n if (typeof resolvedReturnFocusValue === 'boolean') {\n const el = domReference || getPreviouslyFocusedElement();\n return el && el.isConnected ? el : fallbackEl;\n }\n const fallback = domReference || getPreviouslyFocusedElement() || fallbackEl;\n if ('current' in resolvedReturnFocusValue) {\n return resolvedReturnFocusValue.current || fallback;\n }\n return resolvedReturnFocusValue || fallback;\n }\n return () => {\n events.off('openchange', onOpenChangeLocal);\n const activeEl = activeElement(doc);\n const isFocusInsideFloatingTree = contains(floating, activeEl) || tree && getNodeChildren(tree.nodesRef.current, getNodeId(), false).some(node => contains(node.context?.elements.floating, activeEl));\n const returnElement = getReturnElement();\n queueMicrotask(() => {\n // This is `returnElement`, if it's tabbable, or its first tabbable child.\n const tabbableReturnElement = getFirstTabbableElement(returnElement);\n const hasExplicitReturnFocus = typeof returnFocusRef.current !== 'boolean';\n if (\n // eslint-disable-next-line react-hooks/exhaustive-deps\n returnFocusRef.current && !preventReturnFocusRef.current && isHTMLElement(tabbableReturnElement) && (\n // If the focus moved somewhere else after mount, avoid returning focus\n // since it likely entered a different element which should be\n // respected: https://github.com/floating-ui/floating-ui/issues/2607\n !hasExplicitReturnFocus && tabbableReturnElement !== activeEl && activeEl !== doc.body ? isFocusInsideFloatingTree : true)) {\n tabbableReturnElement.focus({\n preventScroll: true\n });\n }\n fallbackEl.remove();\n });\n };\n }, [disabled, floating, floatingFocusElement, returnFocusRef, dataRef, events, tree, isInsidePortal, domReference, getNodeId]);\n React.useEffect(() => {\n // The `returnFocus` cleanup behavior is inside a microtask; ensure we\n // wait for it to complete before resetting the flag.\n queueMicrotask(() => {\n preventReturnFocusRef.current = false;\n });\n }, [disabled]);\n React.useEffect(() => {\n if (disabled || !open) {\n return undefined;\n }\n function handlePointerDown(event) {\n const target = getTarget(event);\n if (target?.closest(`[${CLICK_TRIGGER_IDENTIFIER}]`)) {\n isPointerDownRef.current = true;\n }\n }\n const doc = getDocument(floatingFocusElement);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n return () => {\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n };\n }, [disabled, open, floatingFocusElement]);\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 useIsoLayoutEffect(() => {\n if (disabled) {\n return undefined;\n }\n if (!portalContext) {\n return undefined;\n }\n portalContext.setFocusManagerState({\n modal,\n closeOnFocusOut,\n open,\n onOpenChange,\n domReference\n });\n return () => {\n portalContext.setFocusManagerState(null);\n };\n }, [disabled, portalContext, modal, open, onOpenChange, closeOnFocusOut, domReference]);\n useIsoLayoutEffect(() => {\n if (disabled || !floatingFocusElement) {\n return undefined;\n }\n handleTabIndex(floatingFocusElement, orderRef);\n return () => {\n queueMicrotask(clearDisconnectedPreviouslyFocusedElements);\n };\n }, [disabled, floatingFocusElement, orderRef]);\n const shouldRenderGuards = !disabled && (modal ? !isUntrappedTypeableCombobox : true) && (isInsidePortal || modal);\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [shouldRenderGuards && /*#__PURE__*/_jsx(FocusGuard, {\n \"data-type\": \"inside\",\n ref: mergedBeforeGuardRef,\n onFocus: event => {\n if (modal) {\n const els = getTabbableElements();\n enqueueFocus(els[els.length - 1]);\n } else if (portalContext?.preserveTabOrder && portalContext.portalNode) {\n preventReturnFocusRef.current = false;\n if (isOutsideEvent(event, portalContext.portalNode)) {\n const nextTabbable = getNextTabbable(domReference);\n nextTabbable?.focus();\n } else {\n portalContext.beforeOutsideRef.current?.focus();\n }\n }\n }\n }), children, shouldRenderGuards && /*#__PURE__*/_jsx(FocusGuard, {\n \"data-type\": \"inside\",\n ref: mergedAfterGuardRef,\n onFocus: event => {\n if (modal) {\n enqueueFocus(getTabbableElements()[0]);\n } else if (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?.focus();\n } else {\n portalContext.afterOutsideRef.current?.focus();\n }\n }\n }\n })]\n });\n}","'use client';\n\nimport * as React from 'react';\nimport { useAnimationFrame } from '@base-ui-components/utils/useAnimationFrame';\nimport { useTimeout } from '@base-ui-components/utils/useTimeout';\nimport { EMPTY_OBJECT } from \"../../utils/constants.js\";\nimport { isMouseLikePointerType, isTypeableElement } from \"../utils.js\";\nimport { createBaseUIEventDetails } from \"../../utils/createBaseUIEventDetails.js\";\n/**\n * Opens or closes the floating element when clicking the reference element.\n * @see https://floating-ui.com/docs/useClick\n */\nexport function useClick(context, props = {}) {\n const {\n open,\n onOpenChange,\n dataRef\n } = context;\n const {\n enabled = true,\n event: eventOption = 'click',\n toggle = true,\n ignoreMouse = false,\n stickIfOpen = true,\n touchOpenDelay = 0\n } = props;\n const pointerTypeRef = React.useRef(undefined);\n const frame = useAnimationFrame();\n const touchOpenTimeout = useTimeout();\n const reference = React.useMemo(() => ({\n onPointerDown(event) {\n pointerTypeRef.current = event.pointerType;\n },\n onMouseDown(event) {\n const pointerType = pointerTypeRef.current;\n const nativeEvent = event.nativeEvent;\n\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 || eventOption === 'click' || isMouseLikePointerType(pointerType, true) && ignoreMouse) {\n return;\n }\n const openEvent = dataRef.current.openEvent;\n const openEventType = openEvent?.type;\n const nextOpen = !(open && toggle && (openEvent && stickIfOpen ? openEventType === 'click' || openEventType === 'mousedown' : true));\n\n // Animations sometimes won't run on a typeable element if using a rAF.\n // Focus is always set on these elements. For touch, we may delay opening.\n if (isTypeableElement(nativeEvent.target)) {\n const details = createBaseUIEventDetails('trigger-press', nativeEvent);\n if (nextOpen && pointerType === 'touch' && touchOpenDelay > 0) {\n touchOpenTimeout.start(touchOpenDelay, () => {\n onOpenChange(true, details);\n });\n } else {\n onOpenChange(nextOpen, details);\n }\n return;\n }\n\n // Wait until focus is set on the element. This is an alternative to\n // `event.preventDefault()` to avoid :focus-visible from appearing when using a pointer.\n frame.request(() => {\n const details = createBaseUIEventDetails('trigger-press', nativeEvent);\n if (nextOpen && pointerType === 'touch' && touchOpenDelay > 0) {\n touchOpenTimeout.start(touchOpenDelay, () => {\n onOpenChange(true, details);\n });\n } else {\n onOpenChange(nextOpen, details);\n }\n });\n },\n onClick(event) {\n if (eventOption === 'mousedown-only') {\n return;\n }\n const pointerType = pointerTypeRef.current;\n if (eventOption === 'mousedown' && pointerType) {\n pointerTypeRef.current = undefined;\n return;\n }\n if (isMouseLikePointerType(pointerType, true) && ignoreMouse) {\n return;\n }\n const openEvent = dataRef.current.openEvent;\n const openEventType = openEvent?.type;\n const nextOpen = !(open && toggle && (openEvent && stickIfOpen ? openEventType === 'click' || openEventType === 'mousedown' || openEventType === 'keydown' || openEventType === 'keyup' : true));\n const details = createBaseUIEventDetails('trigger-press', event.nativeEvent);\n if (nextOpen && pointerType === 'touch' && touchOpenDelay > 0) {\n touchOpenTimeout.start(touchOpenDelay, () => {\n onOpenChange(true, details);\n });\n } else {\n onOpenChange(nextOpen, details);\n }\n },\n onKeyDown() {\n pointerTypeRef.current = undefined;\n }\n }), [dataRef, eventOption, ignoreMouse, onOpenChange, open, stickIfOpen, toggle, frame, touchOpenTimeout, touchOpenDelay]);\n return React.useMemo(() => enabled ? {\n reference\n } : EMPTY_OBJECT, [enabled, reference]);\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 given reference element.\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 }\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 x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\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 elements,\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 middlewareData\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. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && 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 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\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$arrow, _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\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\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 const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\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 const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;\n if (!ignoreCrossAxisOverflow ||\n // We leave the current main axis only if every placement on that axis\n // overflows the main axis.\n overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {\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\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$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).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$filter2[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\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\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 = originSides.has(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: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\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 var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\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 enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\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 = originSides.has(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 var _state$middlewareData, _state$middlewareData2;\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 maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = 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, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle as getComputedStyle$1, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, 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$1(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 currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle$1(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 currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll) {\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\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 const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\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 const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\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 + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\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$1(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\n// Safety check: ensure the scrollbar space is reasonable in case this\n// calculation is affected by unusual styles.\n// Most scrollbars leave 15-18px of space.\nconst SCROLLBAR_MAX = 25;\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 const windowScrollbarX = getWindowScrollBarX(html);\n // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the\n // visual width of the <html> but this is not considered in the size\n // of `html.clientWidth`.\n if (windowScrollbarX <= 0) {\n const doc = html.ownerDocument;\n const body = doc.body;\n const bodyStyles = getComputedStyle(body);\n const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;\n const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {\n width -= clippingStableScrollbarWidth;\n }\n } else if (windowScrollbarX <= SCROLLBAR_MAX) {\n // If the <body> scrollbar is on the left, the width needs to be extended\n // by the scrollbar amount so there isn't extra space on the right.\n width += windowScrollbarX;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nconst absoluteOrFixed = /*#__PURE__*/new Set(['absolute', 'fixed']);\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 x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\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$1(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, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(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$1(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 && absoluteOrFixed.has(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' ? isTopLayer(element) ? [] : 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 const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\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\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n function setLeftRTLScrollbarOffset() {\n offsets.x = getWindowScrollBarX(documentElement);\n }\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 setLeftRTLScrollbarOffset();\n }\n }\n if (isFixed && !isOffsetParentAnElement && documentElement) {\n setLeftRTLScrollbarOffset();\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle$1(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\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 win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle$1(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\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\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 var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _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 elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\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 // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\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 var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _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 && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\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 */\nconst detectOverflow = detectOverflow$1;\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 = offset$1;\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 = autoPlacement$1;\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 = shift$1;\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 = flip$1;\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 = size$1;\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 = hide$1;\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 = arrow$1;\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 = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\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 { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","import { computePosition, arrow as arrow$2, autoPlacement as autoPlacement$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1 } from '@floating-ui/dom';\nexport { autoUpdate, computePosition, detectOverflow, getOverflowAncestors, platform } from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\nvar isClient = typeof document !== 'undefined';\n\nvar noop = function noop() {};\nvar index = isClient ? useLayoutEffect : noop;\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;\n let i;\n let 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/useFloating\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 }, []);\n const setFloating = React.useCallback(node => {\n if (node !== floatingRef.current) {\n floatingRef.current = node;\n _setFloating(node);\n }\n }, []);\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 hasWhileElementsMounted = whileElementsMounted != null;\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n const platformRef = useLatestRef(platform);\n const openRef = useLatestRef(open);\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 // The floating element's position may be recomputed while it's closed\n // but still mounted (such as when transitioning out). To ensure\n // `isPositioned` will be `false` initially on the next open, avoid\n // setting it to `true` when `open === false` (must be specified).\n isPositioned: openRef.current !== false\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, openRef]);\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 }\n update();\n }\n }, [referenceEl, floatingEl, update, whileElementsMountedRef, hasWhileElementsMounted]);\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\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$1 = 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$2({\n element: element.current,\n padding\n }).fn(state);\n }\n return {};\n }\n if (element) {\n return arrow$2({\n element,\n padding\n }).fn(state);\n }\n return {};\n }\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 = (options, deps) => ({\n ...offset$1(options),\n options: [options, deps]\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 = (options, deps) => ({\n ...shift$1(options),\n options: [options, deps]\n});\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = (options, deps) => ({\n ...limitShift$1(options),\n options: [options, deps]\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 = (options, deps) => ({\n ...flip$1(options),\n options: [options, deps]\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 = (options, deps) => ({\n ...size$1(options),\n options: [options, deps]\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 = (options, deps) => ({\n ...autoPlacement$1(options),\n options: [options, deps]\n});\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 = (options, deps) => ({\n ...hide$1(options),\n options: [options, deps]\n});\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 = (options, deps) => ({\n ...inline$1(options),\n options: [options, deps]\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 * 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, deps) => ({\n ...arrow$1(options),\n options: [options, deps]\n});\n\nexport { arrow, autoPlacement, flip, hide, inline, limitShift, offset, shift, size, useFloating };\n","import * as React from 'react';\nimport { getOverflowAncestors } from '@floating-ui/react-dom';\nimport { getComputedStyle, getParentNode, isElement, isHTMLElement, isLastTraversableNode, isWebKit } from '@floating-ui/utils/dom';\nimport { Timeout, useTimeout } from '@base-ui-components/utils/useTimeout';\nimport { useEventCallback } from '@base-ui-components/utils/useEventCallback';\nimport { contains, getDocument, getTarget, isEventTargetWithin, isReactEvent, isRootElement, getNodeChildren } from \"../utils.js\";\n\n/* eslint-disable no-underscore-dangle */\n\nimport { useFloatingTree } from \"../components/FloatingTree.js\";\nimport { createBaseUIEventDetails } from \"../../utils/createBaseUIEventDetails.js\";\nimport { createAttribute } from \"../utils/createAttribute.js\";\nconst bubbleHandlerKeys = {\n intentional: 'onClick',\n sloppy: 'onPointerDown'\n};\nexport function normalizeProp(normalizable) {\n return {\n escapeKey: typeof normalizable === 'boolean' ? normalizable : normalizable?.escapeKey ?? false,\n outsidePress: typeof normalizable === 'boolean' ? normalizable : normalizable?.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 */\nexport function useDismiss(context, props = {}) {\n const {\n open,\n onOpenChange,\n elements,\n dataRef\n } = context;\n const {\n enabled = true,\n escapeKey = true,\n outsidePress: outsidePressProp = true,\n outsidePressEvent = 'sloppy',\n referencePress = false,\n referencePressEvent = 'sloppy',\n ancestorScroll = false,\n bubbles,\n capture\n } = props;\n const tree = useFloatingTree();\n const outsidePressFn = useEventCallback(typeof outsidePressProp === 'function' ? outsidePressProp : () => false);\n const outsidePress = typeof outsidePressProp === 'function' ? outsidePressFn : outsidePressProp;\n const endedOrStartedInsideRef = React.useRef(false);\n const {\n escapeKey: escapeKeyBubbles,\n outsidePress: outsidePressBubbles\n } = normalizeProp(bubbles);\n const {\n escapeKey: escapeKeyCapture,\n outsidePress: outsidePressCapture\n } = normalizeProp(capture);\n const touchStateRef = React.useRef(null);\n const cancelDismissOnEndTimeout = useTimeout();\n const insideReactTreeTimeout = useTimeout();\n const isComposingRef = React.useRef(false);\n const currentPointerTypeRef = React.useRef('');\n const trackPointerType = useEventCallback(event => {\n currentPointerTypeRef.current = event.pointerType;\n });\n const getOutsidePressEvent = useEventCallback(() => {\n const type = currentPointerTypeRef.current;\n const computedType = type === 'pen' || !type ? 'mouse' : type;\n const resolved = typeof outsidePressEvent === 'function' ? outsidePressEvent() : outsidePressEvent;\n if (typeof resolved === 'string') {\n return resolved;\n }\n return resolved[computedType];\n });\n const closeOnEscapeKeyDown = useEventCallback(event => {\n if (!open || !enabled || !escapeKey || event.key !== 'Escape') {\n return;\n }\n\n // Wait until IME is settled. Pressing `Escape` while composing should\n // close the compose menu, but not the floating element.\n if (isComposingRef.current) {\n return;\n }\n const nodeId = dataRef.current.floatingContext?.nodeId;\n const children = tree ? getNodeChildren(tree.nodesRef.current, nodeId) : [];\n if (!escapeKeyBubbles) {\n if (children.length > 0) {\n let shouldDismiss = true;\n children.forEach(child => {\n if (child.context?.open && !child.context.dataRef.current.__escapeKeyBubbles) {\n shouldDismiss = false;\n }\n });\n if (!shouldDismiss) {\n return;\n }\n }\n }\n const native = isReactEvent(event) ? event.nativeEvent : event;\n const eventDetails = createBaseUIEventDetails('escape-key', native);\n onOpenChange(false, eventDetails);\n if (!escapeKeyBubbles && !eventDetails.isPropagationAllowed) {\n event.stopPropagation();\n }\n });\n const shouldIgnoreEvent = useEventCallback(event => {\n const computedOutsidePressEvent = getOutsidePressEvent();\n return computedOutsidePressEvent === 'intentional' && event.type !== 'click' || computedOutsidePressEvent === 'sloppy' && event.type === 'click';\n });\n const closeOnEscapeKeyDownCapture = useEventCallback(event => {\n const callback = () => {\n closeOnEscapeKeyDown(event);\n getTarget(event)?.removeEventListener('keydown', callback);\n };\n getTarget(event)?.addEventListener('keydown', callback);\n });\n const closeOnPressOutside = useEventCallback((event, endedOrStartedInside = false) => {\n if (shouldIgnoreEvent(event)) {\n return;\n }\n\n // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n const insideReactTree = dataRef.current.insideReactTree;\n dataRef.current.insideReactTree = false;\n if (getOutsidePressEvent() === 'intentional' && endedOrStartedInside) {\n return;\n }\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(elements.floating).querySelectorAll(inertSelector);\n let targetRootAncestor = isElement(target) ? target : null;\n while (targetRootAncestor && !isLastTraversableNode(targetRootAncestor)) {\n const nextParent = getParentNode(targetRootAncestor);\n if (isLastTraversableNode(nextParent) || !isElement(nextParent)) {\n break;\n }\n targetRootAncestor = nextParent;\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, elements.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)) {\n const lastTraversableNode = isLastTraversableNode(target);\n const style = getComputedStyle(target);\n const scrollRe = /auto|scroll/;\n const isScrollableX = lastTraversableNode || scrollRe.test(style.overflowX);\n const isScrollableY = lastTraversableNode || scrollRe.test(style.overflowY);\n const canScrollX = isScrollableX && target.clientWidth > 0 && target.scrollWidth > target.clientWidth;\n const canScrollY = isScrollableY && target.clientHeight > 0 && target.scrollHeight > target.clientHeight;\n const isRTL = style.direction === 'rtl';\n\n // Check click position relative to scrollbar.\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 const pressedVerticalScrollbar = canScrollY && (isRTL ? event.offsetX <= target.offsetWidth - target.clientWidth : event.offsetX > target.clientWidth);\n const pressedHorizontalScrollbar = canScrollX && event.offsetY > target.clientHeight;\n if (pressedVerticalScrollbar || pressedHorizontalScrollbar) {\n return;\n }\n }\n const nodeId = dataRef.current.floatingContext?.nodeId;\n const targetIsInsideChildren = tree && getNodeChildren(tree.nodesRef.current, nodeId).some(node => isEventTargetWithin(event, node.context?.elements.floating));\n if (isEventTargetWithin(event, elements.floating) || isEventTargetWithin(event, elements.domReference) || targetIsInsideChildren) {\n return;\n }\n const children = tree ? getNodeChildren(tree.nodesRef.current, nodeId) : [];\n if (children.length > 0) {\n let shouldDismiss = true;\n children.forEach(child => {\n if (child.context?.open && !child.context.dataRef.current.__outsidePressBubbles) {\n shouldDismiss = false;\n }\n });\n if (!shouldDismiss) {\n return;\n }\n }\n onOpenChange(false, createBaseUIEventDetails('outside-press', event));\n });\n const handlePointerDown = useEventCallback(event => {\n if (getOutsidePressEvent() !== 'sloppy' || !open || !enabled || isEventTargetWithin(event, elements.floating) || isEventTargetWithin(event, elements.domReference)) {\n return;\n }\n if (event.pointerType === 'touch') {\n touchStateRef.current = {\n startTime: Date.now(),\n startX: event.clientX,\n startY: event.clientY,\n dismissOnPointerUp: false,\n dismissOnMouseDown: true\n };\n cancelDismissOnEndTimeout.start(1000, () => {\n if (touchStateRef.current) {\n touchStateRef.current.dismissOnPointerUp = false;\n touchStateRef.current.dismissOnMouseDown = false;\n }\n });\n return;\n }\n closeOnPressOutside(event);\n });\n const closeOnPressOutsideCapture = useEventCallback(event => {\n // When click outside is lazy (`up` event), handle dragging.\n // Don't close if:\n // - The click started inside the floating element.\n // - The click ended inside the floating element.\n const endedOrStartedInside = endedOrStartedInsideRef.current;\n endedOrStartedInsideRef.current = false;\n if (shouldIgnoreEvent(event)) {\n return;\n }\n cancelDismissOnEndTimeout.clear();\n if (event.type === 'mousedown' && touchStateRef.current && !touchStateRef.current.dismissOnMouseDown) {\n return;\n }\n const callback = () => {\n if (event.type === 'pointerdown') {\n handlePointerDown(event);\n } else {\n closeOnPressOutside(event, endedOrStartedInside);\n }\n getTarget(event)?.removeEventListener(event.type, callback);\n };\n getTarget(event)?.addEventListener(event.type, callback);\n });\n const handlePointerMove = useEventCallback(event => {\n if (getOutsidePressEvent() !== 'sloppy' || event.pointerType !== 'touch' || !touchStateRef.current || isEventTargetWithin(event, elements.floating) || isEventTargetWithin(event, elements.domReference)) {\n return;\n }\n const deltaX = Math.abs(event.clientX - touchStateRef.current.startX);\n const deltaY = Math.abs(event.clientY - touchStateRef.current.startY);\n const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n if (distance > 5) {\n touchStateRef.current.dismissOnPointerUp = true;\n }\n if (distance > 10) {\n closeOnPressOutside(event);\n cancelDismissOnEndTimeout.clear();\n touchStateRef.current = null;\n }\n });\n const handlePointerUp = useEventCallback(event => {\n if (getOutsidePressEvent() !== 'sloppy' || event.pointerType !== 'touch' || !touchStateRef.current || isEventTargetWithin(event, elements.floating) || isEventTargetWithin(event, elements.domReference)) {\n return;\n }\n if (touchStateRef.current.dismissOnPointerUp) {\n closeOnPressOutside(event);\n }\n cancelDismissOnEndTimeout.clear();\n touchStateRef.current = null;\n });\n React.useEffect(() => {\n if (!open || !enabled) {\n return undefined;\n }\n dataRef.current.__escapeKeyBubbles = escapeKeyBubbles;\n dataRef.current.__outsidePressBubbles = outsidePressBubbles;\n const compositionTimeout = new Timeout();\n function onScroll(event) {\n onOpenChange(false, createBaseUIEventDetails('none', event));\n }\n function handleCompositionStart() {\n compositionTimeout.clear();\n isComposingRef.current = true;\n }\n function handleCompositionEnd() {\n // Safari fires `compositionend` before `keydown`, so we need to wait\n // until the next tick to set `isComposing` to `false`.\n // https://bugs.webkit.org/show_bug.cgi?id=165004\n compositionTimeout.start(\n // 0ms or 1ms don't work in Safari. 5ms appears to consistently work.\n // Only apply to WebKit for the test to remain 0ms.\n isWebKit() ? 5 : 0, () => {\n isComposingRef.current = false;\n });\n }\n const doc = getDocument(elements.floating);\n doc.addEventListener('pointerdown', trackPointerType, true);\n if (escapeKey) {\n doc.addEventListener('keydown', escapeKeyCapture ? closeOnEscapeKeyDownCapture : closeOnEscapeKeyDown, escapeKeyCapture);\n doc.addEventListener('compositionstart', handleCompositionStart);\n doc.addEventListener('compositionend', handleCompositionEnd);\n }\n if (outsidePress) {\n doc.addEventListener('click', outsidePressCapture ? closeOnPressOutsideCapture : closeOnPressOutside, outsidePressCapture);\n doc.addEventListener('pointerdown', outsidePressCapture ? closeOnPressOutsideCapture : closeOnPressOutside, outsidePressCapture);\n doc.addEventListener('pointermove', handlePointerMove, outsidePressCapture);\n doc.addEventListener('pointerup', handlePointerUp, outsidePressCapture);\n doc.addEventListener('mousedown', closeOnPressOutsideCapture, outsidePressCapture);\n }\n let ancestors = [];\n if (ancestorScroll) {\n if (isElement(elements.domReference)) {\n ancestors = getOverflowAncestors(elements.domReference);\n }\n if (isElement(elements.floating)) {\n ancestors = ancestors.concat(getOverflowAncestors(elements.floating));\n }\n if (!isElement(elements.reference) && elements.reference && elements.reference.contextElement) {\n ancestors = ancestors.concat(getOverflowAncestors(elements.reference.contextElement));\n }\n }\n\n // Ignore the visual viewport for scrolling dismissal (allow pinch-zoom)\n ancestors = ancestors.filter(ancestor => ancestor !== doc.defaultView?.visualViewport);\n ancestors.forEach(ancestor => {\n ancestor.addEventListener('scroll', onScroll, {\n passive: true\n });\n });\n return () => {\n doc.removeEventListener('pointerdown', trackPointerType, true);\n if (escapeKey) {\n doc.removeEventListener('keydown', escapeKeyCapture ? closeOnEscapeKeyDownCapture : closeOnEscapeKeyDown, escapeKeyCapture);\n doc.removeEventListener('compositionstart', handleCompositionStart);\n doc.removeEventListener('compositionend', handleCompositionEnd);\n }\n if (outsidePress) {\n doc.removeEventListener('click', outsidePressCapture ? closeOnPressOutsideCapture : closeOnPressOutside, outsidePressCapture);\n doc.removeEventListener('pointerdown', outsidePressCapture ? closeOnPressOutsideCapture : closeOnPressOutside, outsidePressCapture);\n doc.removeEventListener('pointermove', handlePointerMove, outsidePressCapture);\n doc.removeEventListener('pointerup', handlePointerUp, outsidePressCapture);\n doc.removeEventListener('mousedown', closeOnPressOutsideCapture, outsidePressCapture);\n }\n ancestors.forEach(ancestor => {\n ancestor.removeEventListener('scroll', onScroll);\n });\n compositionTimeout.clear();\n };\n }, [dataRef, elements, escapeKey, outsidePress, open, onOpenChange, ancestorScroll, enabled, escapeKeyBubbles, outsidePressBubbles, closeOnEscapeKeyDown, escapeKeyCapture, closeOnEscapeKeyDownCapture, closeOnPressOutside, outsidePressCapture, closeOnPressOutsideCapture, handlePointerDown, handlePointerMove, handlePointerUp, trackPointerType]);\n React.useEffect(() => {\n dataRef.current.insideReactTree = false;\n }, [dataRef, outsidePress]);\n const reference = React.useMemo(() => ({\n onKeyDown: closeOnEscapeKeyDown,\n ...(referencePress && {\n [bubbleHandlerKeys[referencePressEvent]]: event => {\n onOpenChange(false, createBaseUIEventDetails('trigger-press', event.nativeEvent));\n },\n ...(referencePressEvent !== 'intentional' && {\n onClick(event) {\n onOpenChange(false, createBaseUIEventDetails('trigger-press', event.nativeEvent));\n }\n })\n })\n }), [closeOnEscapeKeyDown, onOpenChange, referencePress, referencePressEvent]);\n const handlePressedInside = useEventCallback(event => {\n const target = getTarget(event.nativeEvent);\n if (!contains(elements.floating, target) || event.button !== 0) {\n return;\n }\n endedOrStartedInsideRef.current = true;\n });\n const handleCaptureInside = useEventCallback(() => {\n dataRef.current.insideReactTree = true;\n insideReactTreeTimeout.start(0, () => {\n dataRef.current.insideReactTree = false;\n });\n });\n const floating = React.useMemo(() => ({\n onKeyDown: closeOnEscapeKeyDown,\n onMouseDown: handlePressedInside,\n onMouseUp: handlePressedInside,\n onPointerDownCapture: handleCaptureInside,\n onMouseDownCapture: handleCaptureInside,\n onClickCapture: handleCaptureInside,\n onMouseUpCapture: handleCaptureInside\n }), [closeOnEscapeKeyDown, handlePressedInside, handleCaptureInside]);\n return React.useMemo(() => enabled ? {\n reference,\n floating\n } : {}, [enabled, reference, floating]);\n}","import * as React from 'react';\nimport { isElement } from '@floating-ui/utils/dom';\nimport { useEventCallback } from '@base-ui-components/utils/useEventCallback';\nimport { useId } from '@base-ui-components/utils/useId';\nimport { createEventEmitter } from \"../utils/createEventEmitter.js\";\nimport { useFloatingParentNodeId } from \"../components/FloatingTree.js\";\nexport function useFloatingRootContext(options) {\n const {\n open = false,\n onOpenChange: onOpenChangeProp,\n elements: elementsProp\n } = options;\n const floatingId = useId();\n const dataRef = React.useRef({});\n const [events] = React.useState(() => createEventEmitter());\n const nested = useFloatingParentNodeId() != null;\n if (process.env.NODE_ENV !== 'production') {\n const optionDomReference = elementsProp.reference;\n if (optionDomReference && !isElement(optionDomReference)) {\n console.error('Cannot pass a virtual element to the `elements.reference` option,', 'as it must be a real DOM element. Use `refs.setPositionReference()`', 'instead.');\n }\n }\n const [positionReference, setPositionReference] = React.useState(elementsProp.reference);\n const onOpenChange = useEventCallback((newOpen, eventDetails) => {\n dataRef.current.openEvent = newOpen ? eventDetails.event : undefined;\n if (!options.noEmit) {\n const details = {\n open: newOpen,\n reason: eventDetails.reason,\n nativeEvent: eventDetails.event,\n nested\n };\n events.emit('openchange', details);\n }\n onOpenChangeProp?.(newOpen, eventDetails);\n });\n const refs = React.useMemo(() => ({\n setPositionReference\n }), []);\n const elements = React.useMemo(() => ({\n reference: positionReference || elementsProp.reference || null,\n floating: elementsProp.floating || null,\n domReference: elementsProp.reference\n }), [positionReference, elementsProp.reference, elementsProp.floating]);\n return React.useMemo(() => ({\n dataRef,\n open,\n onOpenChange,\n elements,\n events,\n floatingId,\n refs\n }), [open, onOpenChange, elements, events, floatingId, refs]);\n}","import * as React from 'react';\nimport { useFloating as usePosition } from '@floating-ui/react-dom';\nimport { isElement } from '@floating-ui/utils/dom';\nimport { useIsoLayoutEffect } from '@base-ui-components/utils/useIsoLayoutEffect';\nimport { useFloatingTree } from \"../components/FloatingTree.js\";\nimport { useFloatingRootContext } from \"./useFloatingRootContext.js\";\n\n/**\n * Provides data to position a floating element and context to add interactions.\n * @see https://floating-ui.com/docs/useFloating\n */\nexport function useFloating(options = {}) {\n const {\n nodeId\n } = options;\n const internalRootContext = useFloatingRootContext({\n ...options,\n elements: {\n reference: null,\n floating: null,\n ...options.elements\n }\n });\n const rootContext = options.rootContext || internalRootContext;\n const computedElements = rootContext.elements;\n const [domReferenceState, setDomReference] = React.useState(null);\n const [positionReference, setPositionReferenceRaw] = React.useState(null);\n const optionDomReference = computedElements?.domReference;\n const domReference = optionDomReference || domReferenceState;\n const domReferenceRef = React.useRef(null);\n const tree = useFloatingTree();\n useIsoLayoutEffect(() => {\n if (domReference) {\n domReferenceRef.current = domReference;\n }\n }, [domReference]);\n const position = usePosition({\n ...options,\n elements: {\n ...computedElements,\n ...(positionReference && {\n reference: positionReference\n })\n }\n });\n const setPositionReference = React.useCallback(node => {\n const computedPositionReference = isElement(node) ? {\n getBoundingClientRect: () => node.getBoundingClientRect(),\n getClientRects: () => node.getClientRects(),\n contextElement: node\n } : node;\n // Store the positionReference in state if the DOM reference is specified externally via the\n // `elements.reference` option. This ensures that it won't be overridden on future renders.\n setPositionReferenceRaw(computedPositionReference);\n position.refs.setReference(computedPositionReference);\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\n }), [position.elements, domReference]);\n const context = React.useMemo(() => ({\n ...position,\n ...rootContext,\n refs,\n elements,\n nodeId\n }), [position, refs, elements, nodeId, rootContext]);\n useIsoLayoutEffect(() => {\n rootContext.dataRef.current.floatingContext = context;\n const node = tree?.nodesRef.current.find(n => n.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}","import * as React from 'react';\nimport { getWindow, isElement, isHTMLElement } from '@floating-ui/utils/dom';\nimport { isMac, isSafari } from '@base-ui-components/utils/detectBrowser';\nimport { useTimeout } from '@base-ui-components/utils/useTimeout';\nimport { activeElement, contains, getDocument, getTarget, isTypeableElement, matchesFocusVisible } from \"../utils.js\";\nimport { createBaseUIEventDetails } from \"../../utils/createBaseUIEventDetails.js\";\nimport { createAttribute } from \"../utils/createAttribute.js\";\nconst isMacSafari = isMac && isSafari;\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 */\nexport function useFocus(context, props = {}) {\n const {\n open,\n onOpenChange,\n events,\n dataRef,\n elements\n } = context;\n const {\n enabled = true,\n visibleOnly = true\n } = props;\n const blockFocusRef = React.useRef(false);\n const timeout = useTimeout();\n const keyboardModalityRef = React.useRef(true);\n React.useEffect(() => {\n if (!enabled) {\n return undefined;\n }\n const win = getWindow(elements.domReference);\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(elements.domReference) && elements.domReference === activeElement(getDocument(elements.domReference))) {\n blockFocusRef.current = true;\n }\n }\n function onKeyDown() {\n keyboardModalityRef.current = true;\n }\n function onPointerDown() {\n keyboardModalityRef.current = false;\n }\n win.addEventListener('blur', onBlur);\n if (isMacSafari) {\n win.addEventListener('keydown', onKeyDown, true);\n win.addEventListener('pointerdown', onPointerDown, true);\n }\n return () => {\n win.removeEventListener('blur', onBlur);\n if (isMacSafari) {\n win.removeEventListener('keydown', onKeyDown, true);\n win.removeEventListener('pointerdown', onPointerDown, true);\n }\n };\n }, [elements.domReference, open, enabled]);\n React.useEffect(() => {\n if (!enabled) {\n return undefined;\n }\n function onOpenChangeLocal(details) {\n if (details.reason === 'trigger-press' || details.reason === 'escape-key') {\n blockFocusRef.current = true;\n }\n }\n events.on('openchange', onOpenChangeLocal);\n return () => {\n events.off('openchange', onOpenChangeLocal);\n };\n }, [events, enabled]);\n const reference = React.useMemo(() => ({\n onMouseLeave() {\n blockFocusRef.current = false;\n },\n onFocus(event) {\n if (blockFocusRef.current) {\n return;\n }\n const target = getTarget(event.nativeEvent);\n if (visibleOnly && isElement(target)) {\n // Safari fails to match `:focus-visible` if focus was initially\n // outside the document.\n if (isMacSafari && !event.relatedTarget) {\n if (!keyboardModalityRef.current && !isTypeableElement(target)) {\n return;\n }\n } else if (!matchesFocusVisible(target)) {\n return;\n }\n }\n onOpenChange(true, createBaseUIEventDetails('trigger-focus', event.nativeEvent));\n },\n onBlur(event) {\n blockFocusRef.current = false;\n const relatedTarget = event.relatedTarget;\n const nativeEvent = event.nativeEvent;\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 timeout.start(0, () => {\n const activeEl = activeElement(elements.domReference ? elements.domReference.ownerDocument : document);\n\n // Focus left the page, keep it open.\n if (!relatedTarget && activeEl === elements.domReference) {\n return;\n }\n\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 // We can not rely on relatedTarget to point to the correct element\n // as it will only point to the shadow host of the newly focused element\n // and not the element that actually has received focus if it is located\n // inside a shadow root.\n if (contains(dataRef.current.floatingContext?.refs.floating.current, activeEl) || contains(elements.domReference, activeEl) || movedToFocusGuard) {\n return;\n }\n onOpenChange(false, createBaseUIEventDetails('trigger-focus', nativeEvent));\n });\n }\n }), [dataRef, elements.domReference, onOpenChange, visibleOnly, timeout]);\n return React.useMemo(() => enabled ? {\n reference\n } : {}, [enabled, reference]);\n}","import * as React from 'react';\nimport { ACTIVE_KEY, FOCUSABLE_ATTRIBUTE, SELECTED_KEY } from \"../utils/constants.js\";\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/useInteractions\n */\nexport function useInteractions(propsList = []) {\n const referenceDeps = propsList.map(key => key?.reference);\n const floatingDeps = propsList.map(key => key?.floating);\n const itemDeps = propsList.map(key => key?.item);\n const getReferenceProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'reference'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n referenceDeps);\n const getFloatingProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'floating'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n floatingDeps);\n const getItemProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'item'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n itemDeps);\n return React.useMemo(() => ({\n getReferenceProps,\n getFloatingProps,\n getItemProps\n }), [getReferenceProps, getFloatingProps, getItemProps]);\n}\n\n/* eslint-disable guard-for-in */\n\nfunction mergeProps(userProps, propsList, elementKey) {\n const eventHandlers = new Map();\n const isItem = elementKey === 'item';\n const outputProps = {};\n if (elementKey === 'floating') {\n outputProps.tabIndex = -1;\n outputProps[FOCUSABLE_ATTRIBUTE] = '';\n }\n for (const key in userProps) {\n if (isItem && userProps) {\n if (key === ACTIVE_KEY || key === SELECTED_KEY) {\n continue;\n }\n }\n outputProps[key] = userProps[key];\n }\n for (let i = 0; i < propsList.length; i += 1) {\n let props;\n const propsOrGetProps = propsList[i]?.[elementKey];\n if (typeof propsOrGetProps === 'function') {\n props = userProps ? propsOrGetProps(userProps) : null;\n } else {\n props = propsOrGetProps;\n }\n if (!props) {\n continue;\n }\n mutablyMergeProps(outputProps, props, isItem, eventHandlers);\n }\n mutablyMergeProps(outputProps, userProps, isItem, eventHandlers);\n return outputProps;\n}\nfunction mutablyMergeProps(outputProps, props, isItem, eventHandlers) {\n for (const key in props) {\n const value = props[key];\n if (isItem && (key === ACTIVE_KEY || key === SELECTED_KEY)) {\n continue;\n }\n if (!key.startsWith('on')) {\n outputProps[key] = value;\n } else {\n if (!eventHandlers.has(key)) {\n eventHandlers.set(key, []);\n }\n if (typeof value === 'function') {\n eventHandlers.get(key)?.push(value);\n outputProps[key] = (...args) => {\n return eventHandlers.get(key)?.map(fn => fn(...args)).find(val => val !== undefined);\n };\n }\n }\n }\n}","import * as React from 'react';\nimport { isHTMLElement } from '@floating-ui/utils/dom';\nimport { useLatestRef } from '@base-ui-components/utils/useLatestRef';\nimport { useEventCallback } from '@base-ui-components/utils/useEventCallback';\nimport { useIsoLayoutEffect } from '@base-ui-components/utils/useIsoLayoutEffect';\nimport { activeElement, contains, getDocument, isTypeableCombobox, isVirtualClick, isVirtualPointerEvent, stopEvent, getFloatingFocusElement, isIndexOutOfListBounds, getMinListIndex, getMaxListIndex, getGridNavigatedIndex, isListIndexDisabled, createGridCellMap, getGridCellIndices, getGridCellIndexOfCorner, findNonDisabledListIndex } from \"../utils.js\";\nimport { useFloatingParentNodeId, useFloatingTree } from \"../components/FloatingTree.js\";\nimport { createBaseUIEventDetails } from \"../../utils/createBaseUIEventDetails.js\";\nimport { enqueueFocus } from \"../utils/enqueueFocus.js\";\nimport { ARROW_UP, ARROW_DOWN, ARROW_RIGHT, ARROW_LEFT } from \"../utils/constants.js\";\nexport const ESCAPE = 'Escape';\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, cols) {\n const vertical = rtl ? key === ARROW_RIGHT : key === ARROW_LEFT;\n const horizontal = key === ARROW_UP;\n if (orientation === 'both' || orientation === 'horizontal' && cols && cols > 1) {\n return key === ESCAPE;\n }\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 */\nexport function useListNavigation(context, props) {\n const {\n open,\n onOpenChange,\n elements\n } = context;\n const {\n listRef,\n activeIndex,\n onNavigate: onNavigateProp = () => {},\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 parentOrientation,\n cols = 1,\n scrollItemIntoView = true,\n itemSizes,\n dense = false,\n id\n } = props;\n if (process.env.NODE_ENV !== 'production') {\n if (allowEscape) {\n if (!loop) {\n console.warn('`useListNavigation` looping must be enabled to allow escaping.');\n }\n if (!virtual) {\n console.warn('`useListNavigation` must be virtual to allow escaping.');\n }\n }\n if (orientation === 'vertical' && cols > 1) {\n console.warn('In grid list navigation mode (`cols` > 1), the `orientation` should', 'be either \"horizontal\" or \"both\".');\n }\n }\n const floatingFocusElement = getFloatingFocusElement(elements.floating);\n const floatingFocusElementRef = useLatestRef(floatingFocusElement);\n const parentId = useFloatingParentNodeId();\n const tree = useFloatingTree();\n useIsoLayoutEffect(() => {\n context.dataRef.current.orientation = orientation;\n }, [context, orientation]);\n const typeableComboboxReference = isTypeableCombobox(elements.domReference);\n const focusItemOnOpenRef = React.useRef(focusItemOnOpen);\n const indexRef = React.useRef(selectedIndex ?? -1);\n const keyRef = React.useRef(null);\n const isPointerModalityRef = React.useRef(true);\n const onNavigate = useEventCallback(event => {\n onNavigateProp(indexRef.current === -1 ? null : indexRef.current, event);\n });\n const previousOnNavigateRef = React.useRef(onNavigate);\n const previousMountedRef = React.useRef(!!elements.floating);\n const previousOpenRef = React.useRef(open);\n const forceSyncFocusRef = 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 selectedIndexRef = useLatestRef(selectedIndex);\n const focusItem = useEventCallback(() => {\n function runFocus(item) {\n if (virtual) {\n tree?.events.emit('virtualfocus', item);\n } else {\n enqueueFocus(item, {\n sync: forceSyncFocusRef.current,\n preventScroll: true\n });\n }\n }\n const initialItem = listRef.current[indexRef.current];\n const forceScrollIntoView = forceScrollIntoViewRef.current;\n if (initialItem) {\n runFocus(initialItem);\n }\n const scheduler = forceSyncFocusRef.current ? v => v() : requestAnimationFrame;\n scheduler(() => {\n const waitedItem = listRef.current[indexRef.current] || initialItem;\n if (!waitedItem) {\n return;\n }\n if (!initialItem) {\n runFocus(waitedItem);\n }\n const scrollIntoViewOptions = scrollItemIntoViewRef.current;\n const shouldScrollIntoView = scrollIntoViewOptions &&\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n item && (forceScrollIntoView || !isPointerModalityRef.current);\n if (shouldScrollIntoView) {\n // JSDOM doesn't support `.scrollIntoView()` but it's widely supported\n // by all browsers.\n waitedItem.scrollIntoView?.(typeof scrollIntoViewOptions === 'boolean' ? {\n block: 'nearest',\n inline: 'nearest'\n } : scrollIntoViewOptions);\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 useIsoLayoutEffect(() => {\n if (!enabled) {\n return;\n }\n if (open && elements.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 indexRef.current = selectedIndex;\n onNavigate();\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();\n }\n }, [enabled, open, elements.floating, selectedIndex, onNavigate]);\n\n // Sync `activeIndex` to be the focused item while the floating element is\n // open.\n useIsoLayoutEffect(() => {\n if (!enabled) {\n return;\n }\n if (!open) {\n return;\n }\n if (!elements.floating) {\n return;\n }\n if (activeIndex == null) {\n forceSyncFocusRef.current = false;\n if (selectedIndexRef.current != 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();\n }\n\n // Initial sync.\n if ((!previousOpenRef.current || !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 += 1;\n } else {\n indexRef.current = keyRef.current == null || isMainOrientationToEndKey(keyRef.current, orientation, rtl) || nested ? getMinListIndex(listRef, disabledIndicesRef.current) : getMaxListIndex(listRef, disabledIndicesRef.current);\n keyRef.current = null;\n onNavigate();\n }\n };\n waitForListPopulated();\n }\n } else if (!isIndexOutOfListBounds(listRef, activeIndex)) {\n indexRef.current = activeIndex;\n focusItem();\n forceScrollIntoViewRef.current = false;\n }\n }, [enabled, open, elements.floating, activeIndex, selectedIndexRef, 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 useIsoLayoutEffect(() => {\n if (!enabled || elements.floating || !tree || virtual || !previousMountedRef.current) {\n return;\n }\n const nodes = tree.nodesRef.current;\n const parent = nodes.find(node => node.id === parentId)?.context?.elements.floating;\n const activeEl = activeElement(getDocument(elements.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, elements.floating, tree, parentId, virtual]);\n useIsoLayoutEffect(() => {\n previousOnNavigateRef.current = onNavigate;\n previousOpenRef.current = open;\n previousMountedRef.current = !!elements.floating;\n });\n useIsoLayoutEffect(() => {\n if (!open) {\n keyRef.current = null;\n focusItemOnOpenRef.current = focusItemOnOpen;\n }\n }, [open, focusItemOnOpen]);\n const hasActiveIndex = activeIndex != null;\n const item = React.useMemo(() => {\n function syncCurrentTarget(event) {\n if (!latestOpenRef.current) {\n return;\n }\n const index = listRef.current.indexOf(event.currentTarget);\n if (index !== -1 && indexRef.current !== index) {\n indexRef.current = index;\n onNavigate(event);\n }\n }\n const itemProps = {\n onFocus(event) {\n forceSyncFocusRef.current = true;\n syncCurrentTarget(event);\n },\n onClick: ({\n currentTarget\n }) => currentTarget.focus({\n preventScroll: true\n }),\n // Safari\n onMouseMove(event) {\n forceSyncFocusRef.current = true;\n forceScrollIntoViewRef.current = false;\n if (focusItemOnHover) {\n syncCurrentTarget(event);\n }\n },\n onPointerLeave(event) {\n if (!isPointerModalityRef.current || event.pointerType === 'touch') {\n return;\n }\n forceSyncFocusRef.current = true;\n const relatedTarget = event.relatedTarget;\n if (!focusItemOnHover || listRef.current.includes(relatedTarget)) {\n return;\n }\n indexRef.current = -1;\n onNavigate(event);\n if (!virtual) {\n floatingFocusElementRef.current?.focus({\n preventScroll: true\n });\n }\n }\n };\n return itemProps;\n }, [latestOpenRef, floatingFocusElementRef, focusItemOnHover, listRef, onNavigate, virtual]);\n const getParentOrientation = React.useCallback(() => {\n return parentOrientation ?? tree?.nodesRef.current.find(node => node.id === parentId)?.context?.dataRef?.current.orientation;\n }, [parentId, tree, parentOrientation]);\n const commonOnKeyDown = useEventCallback(event => {\n isPointerModalityRef.current = false;\n forceSyncFocusRef.current = true;\n\n // When composing a character, Chrome fires ArrowDown twice. Firefox/Safari\n // don't appear to suffer from this. `event.isComposing` is avoided due to\n // Safari not supporting it properly (although it's not needed in the first\n // place for Safari, just avoiding any possible issues).\n if (event.which === 229) {\n return;\n }\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 === floatingFocusElementRef.current) {\n return;\n }\n if (nested && isCrossOrientationCloseKey(event.key, orientation, rtl, cols)) {\n // If the nested list's close key is also the parent navigation key,\n // let the parent navigate. Otherwise, stop propagating the event.\n if (!isMainOrientationKey(event.key, getParentOrientation())) {\n stopEvent(event);\n }\n onOpenChange(false, createBaseUIEventDetails('list-navigation', event.nativeEvent));\n if (isHTMLElement(elements.domReference)) {\n if (virtual) {\n tree?.events.emit('virtualfocus', elements.domReference);\n } else {\n elements.domReference.focus();\n }\n }\n return;\n }\n const currentIndex = indexRef.current;\n const minIndex = getMinListIndex(listRef, disabledIndices);\n const maxIndex = getMaxListIndex(listRef, disabledIndices);\n if (!typeableComboboxReference) {\n if (event.key === 'Home') {\n stopEvent(event);\n indexRef.current = minIndex;\n onNavigate(event);\n }\n if (event.key === 'End') {\n stopEvent(event);\n indexRef.current = maxIndex;\n onNavigate(event);\n }\n }\n\n // Grid navigation.\n if (cols > 1) {\n const sizes = itemSizes || Array.from({\n length: listRef.current.length\n }, () => ({\n width: 1,\n height: 1\n }));\n // To calculate movements on the grid, we use hypothetical cell indices\n // as if every item was 1x1, then convert back to real indices.\n const cellMap = createGridCellMap(sizes, cols, dense);\n const minGridIndex = cellMap.findIndex(index => index != null && !isListIndexDisabled(listRef, index, disabledIndices));\n // last enabled index\n const maxGridIndex = cellMap.reduce((foundIndex, index, cellIndex) => index != null && !isListIndexDisabled(listRef, index, disabledIndices) ? cellIndex : foundIndex, -1);\n const index = cellMap[getGridNavigatedIndex({\n current: cellMap.map(itemIndex => itemIndex != null ? listRef.current[itemIndex] : null)\n }, {\n event,\n orientation,\n loop,\n rtl,\n cols,\n // treat undefined (empty grid spaces) as disabled indices so we\n // don't end up in them\n disabledIndices: getGridCellIndices([...((typeof disabledIndices !== 'function' ? disabledIndices : null) || listRef.current.map((_, listIndex) => isListIndexDisabled(listRef, listIndex, disabledIndices) ? listIndex : undefined)), undefined], cellMap),\n minIndex: minGridIndex,\n maxIndex: maxGridIndex,\n prevIndex: getGridCellIndexOfCorner(indexRef.current > maxIndex ? minIndex : indexRef.current, sizes, cellMap, cols,\n // use a corner matching the edge closest to the direction\n // we're moving in so we don't end up in the same item. Prefer\n // top/left over bottom/right.\n // eslint-disable-next-line no-nested-ternary\n event.key === ARROW_DOWN ? 'bl' : event.key === (rtl ? ARROW_LEFT : ARROW_RIGHT) ? 'tr' : 'tl'),\n stopEvent: true\n })];\n if (index != null) {\n indexRef.current = index;\n onNavigate(event);\n }\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(event);\n return;\n }\n if (isMainOrientationToEndKey(event.key, orientation, rtl)) {\n if (loop) {\n if (currentIndex >= maxIndex) {\n if (allowEscape && currentIndex !== listRef.current.length) {\n indexRef.current = -1;\n } else {\n // Give time for virtualizers to update the listRef.\n forceSyncFocusRef.current = false;\n indexRef.current = minIndex;\n }\n } else {\n indexRef.current = findNonDisabledListIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n });\n }\n } else {\n indexRef.current = Math.min(maxIndex, findNonDisabledListIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n }));\n }\n } else if (loop) {\n if (currentIndex <= minIndex) {\n if (allowEscape && currentIndex !== -1) {\n indexRef.current = listRef.current.length;\n } else {\n // Give time for virtualizers to update the listRef.\n forceSyncFocusRef.current = false;\n indexRef.current = maxIndex;\n }\n } else {\n indexRef.current = findNonDisabledListIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n });\n }\n } else {\n indexRef.current = Math.max(minIndex, findNonDisabledListIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n }));\n }\n if (isIndexOutOfListBounds(listRef, indexRef.current)) {\n indexRef.current = -1;\n }\n onNavigate(event);\n }\n });\n const ariaActiveDescendantProp = React.useMemo(() => {\n return virtual && open && hasActiveIndex && {\n 'aria-activedescendant': `${id}-${activeIndex}`\n };\n }, [virtual, open, hasActiveIndex, id, activeIndex]);\n const floating = React.useMemo(() => {\n return {\n 'aria-orientation': orientation === 'both' ? undefined : orientation,\n ...(!typeableComboboxReference ? ariaActiveDescendantProp : {}),\n onKeyDown(event) {\n // Close submenu on Shift+Tab\n if (event.key === 'Tab' && event.shiftKey && open && !virtual) {\n stopEvent(event);\n onOpenChange(false, createBaseUIEventDetails('list-navigation', event.nativeEvent));\n if (isHTMLElement(elements.domReference)) {\n elements.domReference.focus();\n }\n return;\n }\n commonOnKeyDown(event);\n },\n onPointerMove() {\n isPointerModalityRef.current = true;\n }\n };\n }, [ariaActiveDescendantProp, commonOnKeyDown, orientation, typeableComboboxReference, onOpenChange, open, virtual, elements.domReference]);\n const reference = React.useMemo(() => {\n function checkVirtualMouse(event) {\n if (focusItemOnOpen === 'auto' && isVirtualClick(event.nativeEvent)) {\n focusItemOnOpenRef.current = !virtual;\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 return {\n ...ariaActiveDescendantProp,\n onKeyDown(event) {\n isPointerModalityRef.current = false;\n const isArrowKey = event.key.startsWith('Arrow');\n const isParentCrossOpenKey = isCrossOrientationOpenKey(event.key, getParentOrientation(), rtl);\n const isMainKey = isMainOrientationKey(event.key, orientation);\n const isNavigationKey = (nested ? isParentCrossOpenKey : isMainKey) || event.key === 'Enter' || event.key.trim() === '';\n if (virtual && open) {\n return commonOnKeyDown(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 undefined;\n }\n if (isNavigationKey) {\n const isParentMainKey = isMainOrientationKey(event.key, getParentOrientation());\n keyRef.current = nested && isParentMainKey ? null : event.key;\n }\n if (nested) {\n if (isParentCrossOpenKey) {\n stopEvent(event);\n if (open) {\n indexRef.current = getMinListIndex(listRef, disabledIndicesRef.current);\n onNavigate(event);\n } else {\n onOpenChange(true, createBaseUIEventDetails('list-navigation', event.nativeEvent));\n }\n }\n return undefined;\n }\n if (isMainKey) {\n if (selectedIndex != null) {\n indexRef.current = selectedIndex;\n }\n stopEvent(event);\n if (!open && openOnArrowKeyDown) {\n onOpenChange(true, createBaseUIEventDetails('list-navigation', event.nativeEvent));\n } else {\n commonOnKeyDown(event);\n }\n if (open) {\n onNavigate(event);\n }\n }\n return undefined;\n },\n onFocus(event) {\n if (open && !virtual) {\n indexRef.current = -1;\n onNavigate(event);\n }\n },\n onPointerDown: checkVirtualPointer,\n onPointerEnter: checkVirtualPointer,\n onMouseDown: checkVirtualMouse,\n onClick: checkVirtualMouse\n };\n }, [ariaActiveDescendantProp, commonOnKeyDown, disabledIndicesRef, focusItemOnOpen, listRef, nested, onNavigate, onOpenChange, open, openOnArrowKeyDown, orientation, getParentOrientation, rtl, selectedIndex, virtual]);\n return React.useMemo(() => enabled ? {\n reference,\n floating,\n item\n } : {}, [enabled, reference, floating, item]);\n}","import * as React from 'react';\nimport { useId } from '@base-ui-components/utils/useId';\nimport { getFloatingFocusElement } from \"../utils.js\";\nimport { useFloatingParentNodeId } from \"../components/FloatingTree.js\";\nconst componentRoleToAriaRoleMap = new Map([['select', 'listbox'], ['combobox', 'listbox'], ['label', false]]);\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 */\nexport function useRole(context, props = {}) {\n const {\n open,\n elements,\n floatingId: defaultFloatingId\n } = context;\n const {\n enabled = true,\n role = 'dialog'\n } = props;\n const defaultReferenceId = useId();\n const referenceId = elements.domReference?.id || defaultReferenceId;\n const floatingId = React.useMemo(() => getFloatingFocusElement(elements.floating)?.id || defaultFloatingId, [elements.floating, defaultFloatingId]);\n const ariaRole = componentRoleToAriaRoleMap.get(role) ?? role;\n const parentId = useFloatingParentNodeId();\n const isNested = parentId != null;\n const reference = React.useMemo(() => {\n if (ariaRole === 'tooltip' || role === 'label') {\n return {\n [`aria-${role === 'label' ? 'labelledby' : 'describedby'}`]: open ? floatingId : undefined\n };\n }\n return {\n 'aria-expanded': open ? 'true' : 'false',\n 'aria-haspopup': ariaRole === 'alertdialog' ? 'dialog' : ariaRole,\n 'aria-controls': open ? floatingId : undefined,\n ...(ariaRole === 'listbox' && {\n role: 'combobox'\n }),\n ...(ariaRole === 'menu' && {\n id: referenceId\n }),\n ...(ariaRole === 'menu' && isNested && {\n role: 'menuitem'\n }),\n ...(role === 'select' && {\n 'aria-autocomplete': 'none'\n }),\n ...(role === 'combobox' && {\n 'aria-autocomplete': 'list'\n })\n };\n }, [ariaRole, floatingId, isNested, open, referenceId, role]);\n const floating = React.useMemo(() => {\n const floatingProps = {\n id: floatingId,\n ...(ariaRole && {\n role: ariaRole\n })\n };\n if (ariaRole === 'tooltip' || role === 'label') {\n return floatingProps;\n }\n return {\n ...floatingProps,\n ...(ariaRole === 'menu' && {\n 'aria-labelledby': referenceId\n })\n };\n }, [ariaRole, floatingId, referenceId, role]);\n const item = React.useCallback(({\n active,\n selected\n }) => {\n const commonProps = {\n role: 'option',\n ...(active && {\n id: `${floatingId}-fui-option`\n })\n };\n\n // For `menu`, we are unable to tell if the item is a `menuitemradio`\n // or `menuitemcheckbox`. For backwards-compatibility reasons, also\n // avoid defaulting to `menuitem` as it may overwrite custom role props.\n switch (role) {\n case 'select':\n case 'combobox':\n return {\n ...commonProps,\n 'aria-selected': selected\n };\n default:\n }\n return {};\n }, [floatingId, role]);\n return React.useMemo(() => enabled ? {\n reference,\n floating,\n item\n } : {}, [enabled, reference, floating, item]);\n}","import * as React from 'react';\nimport { useLatestRef } from '@base-ui-components/utils/useLatestRef';\nimport { useEventCallback } from '@base-ui-components/utils/useEventCallback';\nimport { useIsoLayoutEffect } from '@base-ui-components/utils/useIsoLayoutEffect';\nimport { useTimeout } from '@base-ui-components/utils/useTimeout';\nimport { stopEvent } from \"../utils.js\";\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 */\nexport function useTypeahead(context, props) {\n const {\n open,\n dataRef\n } = context;\n const {\n listRef,\n activeIndex,\n onMatch: onMatchProp,\n onTypingChange: onTypingChangeProp,\n enabled = true,\n findMatch = null,\n resetMs = 750,\n ignoreKeys = [],\n selectedIndex = null\n } = props;\n const timeout = useTimeout();\n const stringRef = React.useRef('');\n const prevIndexRef = React.useRef(selectedIndex ?? activeIndex ?? -1);\n const matchIndexRef = React.useRef(null);\n const onMatch = useEventCallback(onMatchProp);\n const onTypingChange = useEventCallback(onTypingChangeProp);\n const findMatchRef = useLatestRef(findMatch);\n const ignoreKeysRef = useLatestRef(ignoreKeys);\n useIsoLayoutEffect(() => {\n if (open) {\n timeout.clear();\n matchIndexRef.current = null;\n stringRef.current = '';\n }\n }, [open, timeout]);\n useIsoLayoutEffect(() => {\n // Sync arrow key navigation but not typeahead navigation.\n if (open && stringRef.current === '') {\n prevIndexRef.current = selectedIndex ?? activeIndex ?? -1;\n }\n }, [open, selectedIndex, activeIndex]);\n const setTypingChange = useEventCallback(value => {\n if (value) {\n if (!dataRef.current.typing) {\n dataRef.current.typing = value;\n onTypingChange(value);\n }\n } else if (dataRef.current.typing) {\n dataRef.current.typing = value;\n onTypingChange(value);\n }\n });\n const onKeyDown = useEventCallback(event => {\n function getMatchingIndex(list, orderedList, string) {\n const str = findMatchRef.current ? findMatchRef.current(orderedList, string) : orderedList.find(text => text?.toLocaleLowerCase().indexOf(string.toLocaleLowerCase()) === 0);\n return str ? list.indexOf(str) : -1;\n }\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 => text ? text[0]?.toLocaleLowerCase() !== text[1]?.toLocaleLowerCase() : true);\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 timeout.start(resetMs, () => {\n stringRef.current = '';\n prevIndexRef.current = matchIndexRef.current;\n setTypingChange(false);\n });\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 const reference = React.useMemo(() => ({\n onKeyDown\n }), [onKeyDown]);\n const floating = React.useMemo(() => {\n return {\n onKeyDown,\n onKeyUp(event) {\n if (event.key === ' ') {\n setTypingChange(false);\n }\n }\n };\n }, [onKeyDown, setTypingChange]);\n return React.useMemo(() => enabled ? {\n reference,\n floating\n } : {}, [enabled, reference, floating]);\n}","import { isElement } from '@floating-ui/utils/dom';\nimport { Timeout } from '@base-ui-components/utils/useTimeout';\nimport { contains, getTarget } from \"./utils/element.js\";\nimport { getNodeChildren } from \"./utils/nodes.js\";\n\n/* eslint-disable no-nested-ternary */\n\nfunction isPointInPolygon(point, polygon) {\n const [x, y] = point;\n let isInsideValue = false;\n const length = polygon.length;\n // eslint-disable-next-line no-plusplus\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 isInsideValue = !isInsideValue;\n }\n }\n return isInsideValue;\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 */\nexport function safePolygon(options = {}) {\n const {\n buffer = 0.5,\n blockPointerEvents = false,\n requireIntent = true\n } = options;\n const timeout = new Timeout();\n let hasLanded = false;\n let lastX = null;\n let lastY = null;\n let lastCursorTime = typeof performance !== 'undefined' ? performance.now() : 0;\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 = ({\n x,\n y,\n placement,\n elements,\n onClose,\n nodeId,\n tree\n }) => {\n return function onMouseMove(event) {\n function close() {\n timeout.clear();\n onClose();\n }\n timeout.clear();\n if (!elements.domReference || !elements.floating || placement == null || x == null || y == null) {\n return undefined;\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 undefined;\n }\n }\n if (isOverReferenceEl) {\n hasLanded = false;\n }\n if (isOverReferenceEl && !isLeave) {\n hasLanded = true;\n return undefined;\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 undefined;\n }\n\n // If any nested child is open, abort.\n if (tree && getNodeChildren(tree.nodesRef.current, nodeId).some(({\n context\n }) => context?.open)) {\n return undefined;\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 default:\n }\n function getPolygon([px, py]) {\n switch (side) {\n case 'top':\n {\n const cursorPointOne = [isFloatingWider ? px + buffer / 2 : cursorLeaveFromRight ? px + buffer * 4 : px - buffer * 4, py + buffer + 1];\n const cursorPointTwo = [isFloatingWider ? px - buffer / 2 : cursorLeaveFromRight ? px + buffer * 4 : px - buffer * 4, py + 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 ? px + buffer / 2 : cursorLeaveFromRight ? px + buffer * 4 : px - buffer * 4, py - buffer];\n const cursorPointTwo = [isFloatingWider ? px - buffer / 2 : cursorLeaveFromRight ? px + buffer * 4 : px - buffer * 4, py - 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 = [px + buffer + 1, isFloatingTaller ? py + buffer / 2 : cursorLeaveFromBottom ? py + buffer * 4 : py - buffer * 4];\n const cursorPointTwo = [px + buffer + 1, isFloatingTaller ? py - buffer / 2 : cursorLeaveFromBottom ? py + buffer * 4 : py - 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 = [px - buffer, isFloatingTaller ? py + buffer / 2 : cursorLeaveFromBottom ? py + buffer * 4 : py - buffer * 4];\n const cursorPointTwo = [px - buffer, isFloatingTaller ? py - buffer / 2 : cursorLeaveFromBottom ? py + buffer * 4 : py - 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 default:\n return [];\n }\n }\n if (isPointInPolygon([clientX, clientY], rectPoly)) {\n return undefined;\n }\n 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 timeout.start(40, close);\n }\n return undefined;\n };\n };\n\n // eslint-disable-next-line no-underscore-dangle\n fn.__options = {\n blockPointerEvents\n };\n return fn;\n}","let set;\nif (process.env.NODE_ENV !== 'production') {\n set = new Set();\n}\nexport function error(...messages) {\n if (process.env.NODE_ENV !== 'production') {\n const messageKey = messages.join(' ');\n if (!set.has(messageKey)) {\n set.add(messageKey);\n console.error(`Base UI: ${messageKey}`);\n }\n }\n}","'use client';\n\nimport * as React from 'react';\nexport const CompositeRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") CompositeRootContext.displayName = \"CompositeRootContext\";\nexport function useCompositeRootContext(optional = false) {\n const context = React.useContext(CompositeRootContext);\n if (context === undefined && !optional) {\n throw new Error('Base UI: CompositeRootContext is missing. Composite parts must be placed within <Composite.Root>.');\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nexport function useFocusableWhenDisabled(parameters) {\n const {\n focusableWhenDisabled,\n disabled,\n composite = false,\n tabIndex: tabIndexProp = 0,\n isNativeButton\n } = parameters;\n const isFocusableComposite = composite && focusableWhenDisabled !== false;\n const isNonFocusableComposite = composite && focusableWhenDisabled === false;\n\n // we can't explicitly assign `undefined` to any of these props because it\n // would otherwise prevent subsequently merged props from setting them\n const props = React.useMemo(() => {\n const additionalProps = {\n // allow Tabbing away from focusableWhenDisabled elements\n onKeyDown(event) {\n if (disabled && focusableWhenDisabled && event.key !== 'Tab') {\n event.preventDefault();\n }\n }\n };\n if (!composite) {\n additionalProps.tabIndex = tabIndexProp;\n if (!isNativeButton && disabled) {\n additionalProps.tabIndex = focusableWhenDisabled ? tabIndexProp : -1;\n }\n }\n if (isNativeButton && (focusableWhenDisabled || isFocusableComposite) || !isNativeButton && disabled) {\n additionalProps['aria-disabled'] = disabled;\n }\n if (isNativeButton && (!focusableWhenDisabled || isNonFocusableComposite)) {\n additionalProps.disabled = disabled;\n }\n return additionalProps;\n }, [composite, disabled, focusableWhenDisabled, isFocusableComposite, isNonFocusableComposite, isNativeButton, tabIndexProp]);\n return {\n props\n };\n}","'use client';\n\nimport * as React from 'react';\nimport { useEventCallback } from '@base-ui-components/utils/useEventCallback';\nimport { error } from '@base-ui-components/utils/error';\nimport { useIsoLayoutEffect } from '@base-ui-components/utils/useIsoLayoutEffect';\nimport { makeEventPreventable, mergeProps } from \"../merge-props/index.js\";\nimport { useCompositeRootContext } from \"../composite/root/CompositeRootContext.js\";\nimport { useFocusableWhenDisabled } from \"../utils/useFocusableWhenDisabled.js\";\nexport function useButton(parameters = {}) {\n const {\n disabled = false,\n focusableWhenDisabled,\n tabIndex = 0,\n native: isNativeButton = true\n } = parameters;\n const buttonRef = React.useRef(null);\n const isCompositeItem = useCompositeRootContext(true) !== undefined;\n const isValidLink = useEventCallback(() => {\n const element = buttonRef.current;\n return Boolean(element?.tagName === 'A' && element?.href);\n });\n const {\n props: focusableWhenDisabledProps\n } = useFocusableWhenDisabled({\n focusableWhenDisabled,\n disabled,\n composite: isCompositeItem,\n tabIndex,\n isNativeButton\n });\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n if (!buttonRef.current) {\n return;\n }\n const isButtonTag = buttonRef.current.tagName === 'BUTTON';\n if (isNativeButton) {\n if (!isButtonTag) {\n error('A component that acts as a button was not rendered as a native <button>, which does not match the default. Ensure that the element passed to the `render` prop of the component is a real <button>, or set the `nativeButton` prop on the component to `false`.');\n }\n } else if (isButtonTag) {\n error('A component that acts as a button was rendered as a native <button>, which does not match the default. Ensure that the element passed to the `render` prop of the component is not a real <button>, or set the `nativeButton` prop on the component to `true`.');\n }\n }, [isNativeButton]);\n }\n\n // handles a disabled composite button rendering another button, e.g.\n // <Toolbar.Button disabled render={<Menu.Trigger />} />\n // the `disabled` prop needs to pass through 2 `useButton`s then finally\n // delete the `disabled` attribute from DOM\n useIsoLayoutEffect(() => {\n const element = buttonRef.current;\n if (!(element instanceof HTMLButtonElement)) {\n return;\n }\n if (isCompositeItem && disabled && focusableWhenDisabledProps.disabled === undefined && element.disabled) {\n element.disabled = false;\n }\n }, [disabled, focusableWhenDisabledProps.disabled, isCompositeItem]);\n const getButtonProps = React.useCallback((externalProps = {}) => {\n const {\n onClick: externalOnClick,\n onMouseDown: externalOnMouseDown,\n onKeyUp: externalOnKeyUp,\n onKeyDown: externalOnKeyDown,\n onPointerDown: externalOnPointerDown,\n ...otherExternalProps\n } = externalProps;\n const type = isNativeButton ? 'button' : undefined;\n return mergeProps({\n type,\n onClick(event) {\n if (disabled) {\n event.preventDefault();\n return;\n }\n externalOnClick?.(event);\n },\n onMouseDown(event) {\n if (!disabled) {\n externalOnMouseDown?.(event);\n }\n },\n onKeyDown(event) {\n if (!disabled) {\n makeEventPreventable(event);\n externalOnKeyDown?.(event);\n }\n if (event.baseUIHandlerPrevented) {\n return;\n }\n const shouldClick = event.target === event.currentTarget && !isNativeButton && !isValidLink() && !disabled;\n const isEnterKey = event.key === 'Enter';\n const isSpaceKey = event.key === ' ';\n\n // Keyboard accessibility for non interactive elements\n if (shouldClick) {\n if (isSpaceKey || isEnterKey) {\n event.preventDefault();\n }\n if (isEnterKey) {\n externalOnClick?.(event);\n }\n }\n },\n onKeyUp(event) {\n // calling preventDefault in keyUp on a <button> will not dispatch a click event if Space is pressed\n // https://codesandbox.io/p/sandbox/button-keyup-preventdefault-dn7f0\n // Keyboard accessibility for non interactive elements\n if (!disabled) {\n makeEventPreventable(event);\n externalOnKeyUp?.(event);\n }\n if (event.baseUIHandlerPrevented) {\n return;\n }\n if (event.target === event.currentTarget && !isNativeButton && !disabled && event.key === ' ') {\n externalOnClick?.(event);\n }\n },\n onPointerDown(event) {\n if (disabled) {\n event.preventDefault();\n return;\n }\n externalOnPointerDown?.(event);\n }\n }, !isNativeButton ? {\n role: 'button'\n } : undefined, focusableWhenDisabledProps, otherExternalProps);\n }, [disabled, focusableWhenDisabledProps, isNativeButton, isValidLink]);\n return {\n getButtonProps,\n buttonRef\n };\n}","'use client';\n\nimport * as React from 'react';\nimport { useMergedRefs } from '@base-ui-components/utils/useMergedRefs';\nimport { useButton } from \"../../use-button/index.js\";\nimport { mergeProps } from \"../../merge-props/index.js\";\nexport const REGULAR_ITEM = {\n type: 'regular-item'\n};\nexport function useMenuItem(params) {\n const {\n closeOnClick,\n disabled = false,\n highlighted,\n id,\n menuEvents,\n allowMouseUpTriggerRef,\n typingRef,\n nativeButton,\n itemMetadata,\n nodeId\n } = params;\n const itemRef = React.useRef(null);\n const {\n getButtonProps,\n buttonRef\n } = useButton({\n disabled,\n focusableWhenDisabled: true,\n native: nativeButton\n });\n const getItemProps = React.useCallback(externalProps => {\n return mergeProps({\n id,\n role: 'menuitem',\n tabIndex: highlighted ? 0 : -1,\n onMouseMove(event) {\n if (!nodeId) {\n return;\n }\n\n // Inform the floating tree that a menu item within this menu was hovered/moved over\n // so unrelated descendant submenus can be closed.\n menuEvents.emit('itemhover', {\n nodeId,\n target: event.currentTarget\n });\n },\n onMouseEnter() {\n if (itemMetadata.type !== 'submenu-trigger') {\n return;\n }\n itemMetadata.setActive();\n },\n onKeyUp(event) {\n if (event.key === ' ' && typingRef.current) {\n event.preventBaseUIHandler();\n }\n },\n onClick(event) {\n if (closeOnClick) {\n menuEvents.emit('close', {\n domEvent: event,\n reason: 'item-press'\n });\n }\n },\n onMouseUp() {\n if (itemRef.current && allowMouseUpTriggerRef.current) {\n // This fires whenever the user clicks on the trigger, moves the cursor, and releases it over the item.\n // We trigger the click and override the `closeOnClick` preference to always close the menu.\n if (itemMetadata.type === 'regular-item') {\n itemRef.current.click();\n }\n }\n }\n }, externalProps, getButtonProps);\n }, [id, highlighted, getButtonProps, typingRef, closeOnClick, menuEvents, allowMouseUpTriggerRef, itemMetadata, nodeId]);\n const mergedRef = useMergedRefs(itemRef, buttonRef);\n return React.useMemo(() => ({\n getItemProps,\n itemRef: mergedRef\n }), [getItemProps, mergedRef]);\n}","'use client';\n\nimport * as React from 'react';\nexport const CompositeListContext = /*#__PURE__*/React.createContext({\n register: () => {},\n unregister: () => {},\n subscribeMapChange: () => {\n return () => {};\n },\n elementsRef: {\n current: []\n },\n nextIndexRef: {\n current: 0\n }\n});\nif (process.env.NODE_ENV !== \"production\") CompositeListContext.displayName = \"CompositeListContext\";\nexport function useCompositeListContext() {\n return React.useContext(CompositeListContext);\n}","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui-components/utils/useIsoLayoutEffect';\nimport { useCompositeListContext } from \"./CompositeListContext.js\";\nexport let IndexGuessBehavior = /*#__PURE__*/function (IndexGuessBehavior) {\n IndexGuessBehavior[IndexGuessBehavior[\"None\"] = 0] = \"None\";\n IndexGuessBehavior[IndexGuessBehavior[\"GuessFromOrder\"] = 1] = \"GuessFromOrder\";\n return IndexGuessBehavior;\n}({});\n\n/**\n * Used to register a list item and its index (DOM position) in the `CompositeList`.\n */\nexport function useCompositeListItem(params = {}) {\n const {\n label,\n metadata,\n textRef,\n indexGuessBehavior,\n index: externalIndex\n } = params;\n const {\n register,\n unregister,\n subscribeMapChange,\n elementsRef,\n labelsRef,\n nextIndexRef\n } = useCompositeListContext();\n const indexRef = React.useRef(-1);\n const [index, setIndex] = React.useState(externalIndex ?? (indexGuessBehavior === IndexGuessBehavior.GuessFromOrder ? () => {\n if (indexRef.current === -1) {\n const newIndex = nextIndexRef.current;\n nextIndexRef.current += 1;\n indexRef.current = newIndex;\n }\n return indexRef.current;\n } : -1));\n const componentRef = React.useRef(null);\n const ref = React.useCallback(node => {\n componentRef.current = node;\n if (index !== -1 && node !== null) {\n elementsRef.current[index] = node;\n if (labelsRef) {\n const isLabelDefined = label !== undefined;\n labelsRef.current[index] = isLabelDefined ? label : textRef?.current?.textContent ?? node.textContent;\n }\n }\n }, [index, elementsRef, labelsRef, label, textRef]);\n useIsoLayoutEffect(() => {\n if (externalIndex != null) {\n return undefined;\n }\n const node = componentRef.current;\n if (node) {\n register(node, metadata);\n return () => {\n unregister(node);\n };\n }\n return undefined;\n }, [externalIndex, register, unregister, metadata]);\n useIsoLayoutEffect(() => {\n if (externalIndex != null) {\n return undefined;\n }\n return subscribeMapChange(map => {\n const i = componentRef.current ? map.get(componentRef.current)?.index : null;\n if (i != null) {\n setIndex(i);\n }\n });\n }, [externalIndex, subscribeMapChange, setIndex]);\n return React.useMemo(() => ({\n ref,\n index\n }), [index, ref]);\n}","'use client';\n\nimport { useId } from '@base-ui-components/utils/useId';\n\n/**\n * Wraps `useId` and prefixes generated `id`s with `base-ui-`\n * @param {string | undefined} idOverride overrides the generated id when provided\n * @returns {string | undefined}\n */\nexport function useBaseUiId(idOverride) {\n return useId(idOverride, 'base-ui');\n}","'use client';\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { useIsoLayoutEffect } from '@base-ui-components/utils/useIsoLayoutEffect';\nimport { AnimationFrame } from '@base-ui-components/utils/useAnimationFrame';\n/**\n * Provides a status string for CSS animations.\n * @param open - a boolean that determines if the element is open.\n * @param enableIdleState - a boolean that enables the `'idle'` state between `'starting'` and `'ending'`\n */\nexport function useTransitionStatus(open, enableIdleState = false, deferEndingState = false) {\n const [transitionStatus, setTransitionStatus] = React.useState(open && enableIdleState ? 'idle' : undefined);\n const [mounted, setMounted] = React.useState(open);\n if (open && !mounted) {\n setMounted(true);\n setTransitionStatus('starting');\n }\n if (!open && mounted && transitionStatus !== 'ending' && !deferEndingState) {\n setTransitionStatus('ending');\n }\n if (!open && !mounted && transitionStatus === 'ending') {\n setTransitionStatus(undefined);\n }\n useIsoLayoutEffect(() => {\n if (!open && mounted && transitionStatus !== 'ending' && deferEndingState) {\n const frame = AnimationFrame.request(() => {\n setTransitionStatus('ending');\n });\n return () => {\n AnimationFrame.cancel(frame);\n };\n }\n return undefined;\n }, [open, mounted, transitionStatus, deferEndingState]);\n useIsoLayoutEffect(() => {\n if (!open || enableIdleState) {\n return undefined;\n }\n const frame = AnimationFrame.request(() => {\n ReactDOM.flushSync(() => {\n setTransitionStatus(undefined);\n });\n });\n return () => {\n AnimationFrame.cancel(frame);\n };\n }, [enableIdleState, open]);\n useIsoLayoutEffect(() => {\n if (!open || !enableIdleState) {\n return undefined;\n }\n if (open && mounted && transitionStatus !== 'idle') {\n setTransitionStatus('starting');\n }\n const frame = AnimationFrame.request(() => {\n setTransitionStatus('idle');\n });\n return () => {\n AnimationFrame.cancel(frame);\n };\n }, [enableIdleState, open, mounted, setTransitionStatus, transitionStatus]);\n return React.useMemo(() => ({\n mounted,\n setMounted,\n transitionStatus\n }), [mounted, transitionStatus]);\n}","'use client';\n\nimport * as ReactDOM from 'react-dom';\nimport { useAnimationFrame } from '@base-ui-components/utils/useAnimationFrame';\nimport { useEventCallback } from '@base-ui-components/utils/useEventCallback';\n\n/**\n * Executes a function once all animations have finished on the provided element.\n * @param elementOrRef - The element to watch for animations.\n * @param waitForNextTick - Whether to wait for the next tick before checking for animations.\n */\nexport function useAnimationsFinished(elementOrRef, waitForNextTick = false) {\n const frame = useAnimationFrame();\n return useEventCallback((fnToExecute,\n /**\n * An optional [AbortSignal](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal) that\n * can be used to abort `fnToExecute` before all the animations have finished.\n * @default null\n */\n signal = null) => {\n frame.cancel();\n if (elementOrRef == null) {\n return;\n }\n let element;\n if ('current' in elementOrRef) {\n if (elementOrRef.current == null) {\n return;\n }\n element = elementOrRef.current;\n } else {\n element = elementOrRef;\n }\n if (typeof element.getAnimations !== 'function' || globalThis.BASE_UI_ANIMATIONS_DISABLED) {\n fnToExecute();\n } else {\n frame.request(() => {\n function exec() {\n if (!element) {\n return;\n }\n Promise.allSettled(element.getAnimations().map(anim => anim.finished)).then(() => {\n if (signal != null && signal.aborted) {\n return;\n }\n // Synchronously flush the unmounting of the component so that the browser doesn't\n // paint: https://github.com/mui/base-ui/issues/979\n ReactDOM.flushSync(fnToExecute);\n });\n }\n\n // `open: true` animations need to wait for the next tick to be detected\n if (waitForNextTick) {\n frame.request(exec);\n } else {\n exec();\n }\n });\n }\n });\n}","'use client';\n\nimport * as React from 'react';\nimport { useEventCallback } from '@base-ui-components/utils/useEventCallback';\nimport { useLatestRef } from '@base-ui-components/utils/useLatestRef';\nimport { useAnimationsFinished } from \"./useAnimationsFinished.js\";\n\n/**\n * Calls the provided function when the CSS open/close animation or transition completes.\n */\nexport function useOpenChangeComplete(parameters) {\n const {\n enabled = true,\n open,\n ref,\n onComplete: onCompleteParam\n } = parameters;\n const openRef = useLatestRef(open);\n const onComplete = useEventCallback(onCompleteParam);\n const runOnceAnimationsFinish = useAnimationsFinished(ref, open);\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n runOnceAnimationsFinish(() => {\n if (open === openRef.current) {\n onComplete();\n }\n });\n }, [enabled, open, onComplete, runOnceAnimationsFinish, openRef]);\n}","'use client';\n\nimport * as React from 'react';\nimport { useMergedRefs } from '@base-ui-components/utils/useMergedRefs';\nimport { useFloatingTree } from \"../../floating-ui-react/index.js\";\nimport { REGULAR_ITEM, useMenuItem } from \"./useMenuItem.js\";\nimport { useMenuRootContext } from \"../root/MenuRootContext.js\";\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\nimport { useBaseUiId } from \"../../utils/useBaseUiId.js\";\nimport { useCompositeListItem } from \"../../composite/list/useCompositeListItem.js\";\nimport { useMenuPositionerContext } from \"../positioner/MenuPositionerContext.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst InnerMenuItem = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function InnerMenuItem(componentProps, forwardedRef) {\n const {\n className,\n closeOnClick = true,\n disabled = false,\n highlighted,\n id,\n menuEvents,\n itemProps,\n render,\n allowMouseUpTriggerRef,\n typingRef,\n nativeButton,\n nodeId,\n ...elementProps\n } = componentProps;\n const {\n getItemProps,\n itemRef\n } = useMenuItem({\n closeOnClick,\n disabled,\n highlighted,\n id,\n menuEvents,\n allowMouseUpTriggerRef,\n typingRef,\n nativeButton,\n nodeId,\n itemMetadata: REGULAR_ITEM\n });\n const state = React.useMemo(() => ({\n disabled,\n highlighted\n }), [disabled, highlighted]);\n return useRenderElement('div', componentProps, {\n state,\n ref: [itemRef, forwardedRef],\n props: [itemProps, elementProps, getItemProps]\n });\n}));\n\n/**\n * An individual interactive item in the menu.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)\n */\nif (process.env.NODE_ENV !== \"production\") InnerMenuItem.displayName = \"InnerMenuItem\";\nexport const MenuItem = /*#__PURE__*/React.forwardRef(function MenuItem(props, forwardedRef) {\n const {\n id: idProp,\n label,\n nativeButton = false,\n ...other\n } = props;\n const itemRef = React.useRef(null);\n const listItem = useCompositeListItem({\n label\n });\n const mergedRef = useMergedRefs(forwardedRef, listItem.ref, itemRef);\n const {\n itemProps,\n activeIndex,\n allowMouseUpTriggerRef,\n typingRef\n } = useMenuRootContext();\n const menuPositionerContext = useMenuPositionerContext(true);\n const id = useBaseUiId(idProp);\n const highlighted = listItem.index === activeIndex;\n const {\n events: menuEvents\n } = useFloatingTree();\n\n // This wrapper component is used as a performance optimization.\n // MenuItem reads the context and re-renders the actual MenuItem\n // only when it needs to.\n\n return /*#__PURE__*/_jsx(InnerMenuItem, {\n ...other,\n id: id,\n ref: mergedRef,\n highlighted: highlighted,\n menuEvents: menuEvents,\n itemProps: itemProps,\n allowMouseUpTriggerRef: allowMouseUpTriggerRef,\n typingRef: typingRef,\n nativeButton: nativeButton,\n nodeId: menuPositionerContext?.floatingContext.nodeId\n });\n});\nif (process.env.NODE_ENV !== \"production\") MenuItem.displayName = \"MenuItem\";","'use client';\n\nimport * as React from 'react';\nimport { FloatingFocusManager, useFloatingTree } from \"../../floating-ui-react/index.js\";\nimport { useMenuRootContext } from \"../root/MenuRootContext.js\";\nimport { useMenuPositionerContext } from \"../positioner/MenuPositionerContext.js\";\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\nimport { popupStateMapping as baseMapping } from \"../../utils/popupStateMapping.js\";\nimport { transitionStatusMapping } from \"../../utils/styleHookMapping.js\";\nimport { useOpenChangeComplete } from \"../../utils/useOpenChangeComplete.js\";\nimport { EMPTY_OBJECT, DISABLED_TRANSITIONS_STYLE } from \"../../utils/constants.js\";\nimport { createBaseUIEventDetails } from \"../../utils/createBaseUIEventDetails.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst customStyleHookMapping = {\n ...baseMapping,\n ...transitionStatusMapping\n};\n\n/**\n * A container for the menu items.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)\n */\nexport const MenuPopup = /*#__PURE__*/React.forwardRef(function MenuPopup(componentProps, forwardedRef) {\n const {\n render,\n className,\n finalFocus,\n ...elementProps\n } = componentProps;\n const {\n open,\n setOpen,\n popupRef,\n transitionStatus,\n popupProps,\n mounted,\n instantType,\n triggerElement,\n onOpenChangeComplete,\n parent,\n lastOpenChangeReason,\n rootId\n } = useMenuRootContext();\n const {\n side,\n align,\n floatingContext\n } = useMenuPositionerContext();\n useOpenChangeComplete({\n open,\n ref: popupRef,\n onComplete() {\n if (open) {\n onOpenChangeComplete?.(true);\n }\n }\n });\n const {\n events: menuEvents\n } = useFloatingTree();\n React.useEffect(() => {\n function handleClose(event) {\n setOpen(false, createBaseUIEventDetails(event.reason, event.domEvent));\n }\n menuEvents.on('close', handleClose);\n return () => {\n menuEvents.off('close', handleClose);\n };\n }, [menuEvents, setOpen]);\n const state = React.useMemo(() => ({\n transitionStatus,\n side,\n align,\n open,\n nested: parent.type === 'menu',\n instant: instantType\n }), [transitionStatus, side, align, open, parent.type, instantType]);\n const element = useRenderElement('div', componentProps, {\n state,\n ref: [forwardedRef, popupRef],\n customStyleHookMapping,\n props: [popupProps, transitionStatus === 'starting' ? DISABLED_TRANSITIONS_STYLE : EMPTY_OBJECT, elementProps, {\n 'data-rootownerid': rootId\n }]\n });\n let returnFocus = parent.type === undefined || parent.type === 'context-menu';\n if (triggerElement || parent.type === 'menubar' && lastOpenChangeReason !== 'outside-press') {\n returnFocus = true;\n }\n return /*#__PURE__*/_jsx(FloatingFocusManager, {\n context: floatingContext,\n modal: false,\n disabled: !mounted,\n returnFocus: finalFocus === undefined ? returnFocus : finalFocus,\n initialFocus: parent.type !== 'menu',\n restoreFocus: true,\n children: element\n });\n});\nif (process.env.NODE_ENV !== \"production\") MenuPopup.displayName = \"MenuPopup\";","import * as React from 'react';\nexport const MenuPortalContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") MenuPortalContext.displayName = \"MenuPortalContext\";\nexport function useMenuPortalContext() {\n const value = React.useContext(MenuPortalContext);\n if (value === undefined) {\n throw new Error('Base UI: <Menu.Portal> is missing.');\n }\n return value;\n}","'use client';\n\nimport * as React from 'react';\nimport { FloatingPortal } from \"../../floating-ui-react/index.js\";\nimport { useMenuRootContext } from \"../root/MenuRootContext.js\";\nimport { MenuPortalContext } from \"./MenuPortalContext.js\";\n\n/**\n * A portal element that moves the popup to a different part of the DOM.\n * By default, the portal element is appended to `<body>`.\n *\n * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function MenuPortal(props) {\n const {\n children,\n keepMounted = false,\n container\n } = props;\n const {\n mounted\n } = useMenuRootContext();\n const shouldRender = mounted || keepMounted;\n if (!shouldRender) {\n return null;\n }\n return /*#__PURE__*/_jsx(MenuPortalContext.Provider, {\n value: keepMounted,\n children: /*#__PURE__*/_jsx(FloatingPortal, {\n root: container,\n children: children\n })\n });\n}","import { isReactVersionAtLeast } from \"./reactVersion.js\";\nexport function inertValue(value) {\n if (isReactVersionAtLeast(19)) {\n return value;\n }\n // compatibility with React < 19\n return value ? 'true' : undefined;\n}","'use client';\n\nimport * as React from 'react';\n/**\n * @internal\n */\nexport const DirectionContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") DirectionContext.displayName = \"DirectionContext\";\nexport function useDirection(optional = true) {\n const context = React.useContext(DirectionContext);\n if (context === undefined && !optional) {\n throw new Error('Base UI: DirectionContext is missing.');\n }\n return context?.direction ?? 'ltr';\n}","import { clamp, evaluate, getAlignment, getAlignmentAxis, getAxisLength, getPaddingObject } from '@floating-ui/utils';\n/**\n * Fork of the original `arrow` middleware from Floating UI that allows\n * configuring the offset parent.\n */\nexport const baseArrow = 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 middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0,\n offsetParent = 'real'\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 = offsetParent === 'real' ? await platform.getOffsetParent?.(element) : elements.floating;\n let clientSize = elements.floating[clientProp] || rects.floating[length];\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await 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 = Math.min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = Math.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 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min, 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. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n // eslint-disable-next-line no-nested-ternary\n const alignmentOffset = shouldAddOffset ? center < min ? center - min : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\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 * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nexport const arrow = (options, deps) => ({\n ...baseArrow(options),\n options: [options, deps]\n});","'use client';\n\nimport * as React from 'react';\nimport { getSide, getAlignment, getSideAxis } from '@floating-ui/utils';\nimport { ownerDocument } from '@base-ui-components/utils/owner';\nimport { useIsoLayoutEffect } from '@base-ui-components/utils/useIsoLayoutEffect';\nimport { useLatestRef } from '@base-ui-components/utils/useLatestRef';\nimport { useEventCallback } from '@base-ui-components/utils/useEventCallback';\nimport { autoUpdate, flip, limitShift, offset, shift, useFloating, size, hide } from \"../floating-ui-react/index.js\";\nimport { useDirection } from \"../direction-provider/DirectionContext.js\";\nimport { arrow } from \"../floating-ui-react/middleware/arrow.js\";\nfunction getLogicalSide(sideParam, renderedSide, isRtl) {\n const isLogicalSideParam = sideParam === 'inline-start' || sideParam === 'inline-end';\n const logicalRight = isRtl ? 'inline-start' : 'inline-end';\n const logicalLeft = isRtl ? 'inline-end' : 'inline-start';\n return {\n top: 'top',\n right: isLogicalSideParam ? logicalRight : 'right',\n bottom: 'bottom',\n left: isLogicalSideParam ? logicalLeft : 'left'\n }[renderedSide];\n}\nfunction getOffsetData(state, sideParam, isRtl) {\n const {\n rects,\n placement\n } = state;\n const data = {\n side: getLogicalSide(sideParam, getSide(placement), isRtl),\n align: getAlignment(placement) || 'center',\n anchor: {\n width: rects.reference.width,\n height: rects.reference.height\n },\n positioner: {\n width: rects.floating.width,\n height: rects.floating.height\n }\n };\n return data;\n}\n/**\n * Provides standardized anchor positioning behavior for floating elements. Wraps Floating UI's\n * `useFloating` hook.\n */\nexport function useAnchorPositioning(params) {\n const {\n // Public parameters\n anchor,\n positionMethod = 'absolute',\n side: sideParam = 'bottom',\n sideOffset = 0,\n align = 'center',\n alignOffset = 0,\n collisionBoundary,\n collisionPadding: collisionPaddingParam = 5,\n sticky = false,\n arrowPadding = 5,\n trackAnchor = true,\n // Private parameters\n keepMounted = false,\n floatingRootContext,\n mounted,\n collisionAvoidance,\n shiftCrossAxis = false,\n nodeId,\n adaptiveOrigin,\n lazyFlip = false\n } = params;\n const [mountSide, setMountSide] = React.useState(null);\n if (!mounted && mountSide !== null) {\n setMountSide(null);\n }\n const collisionAvoidanceSide = collisionAvoidance.side || 'flip';\n const collisionAvoidanceAlign = collisionAvoidance.align || 'flip';\n const collisionAvoidanceFallbackAxisSide = collisionAvoidance.fallbackAxisSide || 'end';\n const anchorFn = typeof anchor === 'function' ? anchor : undefined;\n const anchorFnCallback = useEventCallback(anchorFn);\n const anchorDep = anchorFn ? anchorFnCallback : anchor;\n const anchorValueRef = useLatestRef(anchor);\n const direction = useDirection();\n const isRtl = direction === 'rtl';\n const side = mountSide || {\n top: 'top',\n right: 'right',\n bottom: 'bottom',\n left: 'left',\n 'inline-end': isRtl ? 'left' : 'right',\n 'inline-start': isRtl ? 'right' : 'left'\n }[sideParam];\n const placement = align === 'center' ? side : `${side}-${align}`;\n let collisionPadding = collisionPaddingParam;\n\n // Create a bias to the preferred side.\n // On iOS, when the mobile software keyboard opens, the input is exactly centered\n // in the viewport, but this can cause it to flip to the top undesirably.\n const bias = 1;\n const biasTop = sideParam === 'bottom' ? bias : 0;\n const biasBottom = sideParam === 'top' ? bias : 0;\n const biasLeft = sideParam === 'right' ? bias : 0;\n const biasRight = sideParam === 'left' ? bias : 0;\n if (typeof collisionPadding === 'number') {\n collisionPadding = {\n top: collisionPadding + biasTop,\n right: collisionPadding + biasRight,\n bottom: collisionPadding + biasBottom,\n left: collisionPadding + biasLeft\n };\n } else if (collisionPadding) {\n collisionPadding = {\n top: (collisionPadding.top || 0) + biasTop,\n right: (collisionPadding.right || 0) + biasRight,\n bottom: (collisionPadding.bottom || 0) + biasBottom,\n left: (collisionPadding.left || 0) + biasLeft\n };\n }\n const commonCollisionProps = {\n boundary: collisionBoundary === 'clipping-ancestors' ? 'clippingAncestors' : collisionBoundary,\n padding: collisionPadding\n };\n\n // Using a ref assumes that the arrow element is always present in the DOM for the lifetime of the\n // popup. If this assumption ends up being false, we can switch to state to manage the arrow's\n // presence.\n const arrowRef = React.useRef(null);\n\n // Keep these reactive if they're not functions\n const sideOffsetRef = useLatestRef(sideOffset);\n const alignOffsetRef = useLatestRef(alignOffset);\n const sideOffsetDep = typeof sideOffset !== 'function' ? sideOffset : 0;\n const alignOffsetDep = typeof alignOffset !== 'function' ? alignOffset : 0;\n const middleware = [offset(state => {\n const data = getOffsetData(state, sideParam, isRtl);\n const sideAxis = typeof sideOffsetRef.current === 'function' ? sideOffsetRef.current(data) : sideOffsetRef.current;\n const alignAxis = typeof alignOffsetRef.current === 'function' ? alignOffsetRef.current(data) : alignOffsetRef.current;\n return {\n mainAxis: sideAxis,\n crossAxis: alignAxis,\n alignmentAxis: alignAxis\n };\n }, [sideOffsetDep, alignOffsetDep, isRtl, sideParam])];\n const shiftDisabled = collisionAvoidanceAlign === 'none' && collisionAvoidanceSide !== 'shift';\n const crossAxisShiftEnabled = !shiftDisabled && (sticky || shiftCrossAxis || collisionAvoidanceSide === 'shift');\n const flipMiddleware = collisionAvoidanceSide === 'none' ? null : flip({\n ...commonCollisionProps,\n // Ensure the popup flips if it's been limited by its --available-height and it resizes.\n // Since the size() padding is smaller than the flip() padding, flip() will take precedence.\n padding: {\n top: collisionPadding.top + bias,\n right: collisionPadding.right + bias,\n bottom: collisionPadding.bottom + bias,\n left: collisionPadding.left + bias\n },\n mainAxis: !shiftCrossAxis && collisionAvoidanceSide === 'flip',\n crossAxis: collisionAvoidanceAlign === 'flip' ? 'alignment' : false,\n fallbackAxisSideDirection: collisionAvoidanceFallbackAxisSide\n });\n const shiftMiddleware = shiftDisabled ? null : shift(data => {\n const html = ownerDocument(data.elements.floating).documentElement;\n return {\n ...commonCollisionProps,\n // Use the Layout Viewport to avoid shifting around when pinch-zooming\n // for context menus.\n rootBoundary: shiftCrossAxis ? {\n x: 0,\n y: 0,\n width: html.clientWidth,\n height: html.clientHeight\n } : undefined,\n mainAxis: collisionAvoidanceAlign !== 'none',\n crossAxis: crossAxisShiftEnabled,\n limiter: sticky || shiftCrossAxis ? undefined : limitShift(limitData => {\n if (!arrowRef.current) {\n return {};\n }\n const {\n width,\n height\n } = arrowRef.current.getBoundingClientRect();\n const arrowSize = getSideAxis(limitData.placement) === 'y' ? width : height;\n return {\n offset: arrowSize / 2 + (typeof collisionPadding === 'number' ? collisionPadding : 0)\n };\n })\n };\n }, [commonCollisionProps, sticky, shiftCrossAxis, collisionPadding, collisionAvoidanceAlign]);\n\n // https://floating-ui.com/docs/flip#combining-with-shift\n if (collisionAvoidanceSide === 'shift' || collisionAvoidanceAlign === 'shift' || align === 'center') {\n middleware.push(shiftMiddleware, flipMiddleware);\n } else {\n middleware.push(flipMiddleware, shiftMiddleware);\n }\n middleware.push(size({\n ...commonCollisionProps,\n apply({\n elements: {\n floating\n },\n rects: {\n reference\n },\n availableWidth,\n availableHeight\n }) {\n Object.entries({\n '--available-width': `${availableWidth}px`,\n '--available-height': `${availableHeight}px`,\n '--anchor-width': `${reference.width}px`,\n '--anchor-height': `${reference.height}px`\n }).forEach(([key, value]) => {\n floating.style.setProperty(key, value);\n });\n }\n }), arrow(() => ({\n // `transform-origin` calculations rely on an element existing. If the arrow hasn't been set,\n // we'll create a fake element.\n element: arrowRef.current || document.createElement('div'),\n padding: arrowPadding,\n offsetParent: 'floating'\n }), [arrowPadding]), hide(), {\n name: 'transformOrigin',\n fn(state) {\n const {\n elements,\n middlewareData,\n placement: renderedPlacement,\n rects,\n y\n } = state;\n const currentRenderedSide = getSide(renderedPlacement);\n const currentRenderedAxis = getSideAxis(currentRenderedSide);\n const arrowEl = arrowRef.current;\n const arrowX = middlewareData.arrow?.x || 0;\n const arrowY = middlewareData.arrow?.y || 0;\n const arrowWidth = arrowEl?.clientWidth || 0;\n const arrowHeight = arrowEl?.clientHeight || 0;\n const transformX = arrowX + arrowWidth / 2;\n const transformY = arrowY + arrowHeight / 2;\n const shiftY = Math.abs(middlewareData.shift?.y || 0);\n const halfAnchorHeight = rects.reference.height / 2;\n const sideOffsetValue = typeof sideOffset === 'function' ? sideOffset(getOffsetData(state, sideParam, isRtl)) : sideOffset;\n const isOverlappingAnchor = shiftY > sideOffsetValue;\n const adjacentTransformOrigin = {\n top: `${transformX}px calc(100% + ${sideOffsetValue}px)`,\n bottom: `${transformX}px ${-sideOffsetValue}px`,\n left: `calc(100% + ${sideOffsetValue}px) ${transformY}px`,\n right: `${-sideOffsetValue}px ${transformY}px`\n }[currentRenderedSide];\n const overlapTransformOrigin = `${transformX}px ${rects.reference.y + halfAnchorHeight - y}px`;\n elements.floating.style.setProperty('--transform-origin', crossAxisShiftEnabled && currentRenderedAxis === 'y' && isOverlappingAnchor ? overlapTransformOrigin : adjacentTransformOrigin);\n return {};\n }\n }, adaptiveOrigin);\n\n // Ensure positioning doesn't run initially for `keepMounted` elements that\n // aren't initially open.\n let rootContext = floatingRootContext;\n if (!mounted && floatingRootContext) {\n rootContext = {\n ...floatingRootContext,\n elements: {\n reference: null,\n floating: null,\n domReference: null\n }\n };\n }\n const autoUpdateOptions = React.useMemo(() => ({\n elementResize: trackAnchor && typeof ResizeObserver !== 'undefined',\n layoutShift: trackAnchor && typeof IntersectionObserver !== 'undefined'\n }), [trackAnchor]);\n const {\n refs,\n elements,\n x,\n y,\n middlewareData,\n update,\n placement: renderedPlacement,\n context,\n isPositioned,\n floatingStyles: originalFloatingStyles\n } = useFloating({\n rootContext,\n placement,\n middleware,\n strategy: positionMethod,\n whileElementsMounted: keepMounted ? undefined : (...args) => autoUpdate(...args, autoUpdateOptions),\n nodeId\n });\n const {\n sideX,\n sideY\n } = middlewareData.adaptiveOrigin || {};\n const floatingStyles = React.useMemo(() => adaptiveOrigin ? {\n position: positionMethod,\n [sideX]: `${x}px`,\n [sideY]: `${y}px`\n } : originalFloatingStyles, [adaptiveOrigin, sideX, sideY, positionMethod, x, y, originalFloatingStyles]);\n const registeredPositionReferenceRef = React.useRef(null);\n useIsoLayoutEffect(() => {\n if (!mounted) {\n return;\n }\n const anchorValue = anchorValueRef.current;\n const resolvedAnchor = typeof anchorValue === 'function' ? anchorValue() : anchorValue;\n const unwrappedElement = (isRef(resolvedAnchor) ? resolvedAnchor.current : resolvedAnchor) || null;\n const finalAnchor = unwrappedElement || null;\n if (finalAnchor !== registeredPositionReferenceRef.current) {\n refs.setPositionReference(finalAnchor);\n registeredPositionReferenceRef.current = finalAnchor;\n }\n }, [mounted, refs, anchorDep, anchorValueRef]);\n React.useEffect(() => {\n if (!mounted) {\n return;\n }\n const anchorValue = anchorValueRef.current;\n\n // Refs from parent components are set after useLayoutEffect runs and are available in useEffect.\n // Therefore, if the anchor is a ref, we need to update the position reference in useEffect.\n if (typeof anchorValue === 'function') {\n return;\n }\n if (isRef(anchorValue) && anchorValue.current !== registeredPositionReferenceRef.current) {\n refs.setPositionReference(anchorValue.current);\n registeredPositionReferenceRef.current = anchorValue.current;\n }\n }, [mounted, refs, anchorDep, anchorValueRef]);\n React.useEffect(() => {\n if (keepMounted && mounted && elements.domReference && elements.floating) {\n return autoUpdate(elements.domReference, elements.floating, update, autoUpdateOptions);\n }\n return undefined;\n }, [keepMounted, mounted, elements, update, autoUpdateOptions]);\n const renderedSide = getSide(renderedPlacement);\n const logicalRenderedSide = getLogicalSide(sideParam, renderedSide, isRtl);\n const renderedAlign = getAlignment(renderedPlacement) || 'center';\n const anchorHidden = Boolean(middlewareData.hide?.referenceHidden);\n\n /**\n * Locks the flip (makes it \"sticky\") so it doesn't prefer a given placement\n * and flips back lazily, not eagerly. Ideal for filtered lists that change\n * the size of the popup dynamically to avoid unwanted flipping when typing.\n */\n useIsoLayoutEffect(() => {\n if (lazyFlip && mounted && isPositioned) {\n setMountSide(renderedSide);\n }\n }, [lazyFlip, mounted, isPositioned, renderedSide]);\n const arrowStyles = React.useMemo(() => ({\n position: 'absolute',\n top: middlewareData.arrow?.y,\n left: middlewareData.arrow?.x\n }), [middlewareData.arrow]);\n const arrowUncentered = middlewareData.arrow?.centerOffset !== 0;\n return React.useMemo(() => ({\n positionerStyles: floatingStyles,\n arrowStyles,\n arrowRef,\n arrowUncentered,\n side: logicalRenderedSide,\n align: renderedAlign,\n physicalSide: renderedSide,\n anchorHidden,\n refs,\n context,\n isPositioned,\n update\n }), [floatingStyles, arrowStyles, arrowRef, arrowUncentered, logicalRenderedSide, renderedAlign, renderedSide, anchorHidden, refs, context, isPositioned, update]);\n}\nfunction isRef(param) {\n return param != null && 'current' in param;\n}","/* eslint-disable no-bitwise */\n'use client';\n\nimport * as React from 'react';\nimport { useRefWithInit } from '@base-ui-components/utils/useRefWithInit';\nimport { useEventCallback } from '@base-ui-components/utils/useEventCallback';\nimport { useIsoLayoutEffect } from '@base-ui-components/utils/useIsoLayoutEffect';\nimport { CompositeListContext } from \"./CompositeListContext.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Provides context for a list of items in a composite component.\n * @internal\n */\nexport function CompositeList(props) {\n const {\n children,\n elementsRef,\n labelsRef,\n onMapChange\n } = props;\n const nextIndexRef = React.useRef(0);\n const listeners = useRefWithInit(createListeners).current;\n\n // We use a stable `map` to avoid O(n^2) re-allocation costs for large lists.\n // `mapTick` is our re-render trigger mechanism. We also need to update the\n // elements and label refs, but there's a lot of async work going on and sometimes\n // the effect that handles `onMapChange` gets called after those refs have been\n // filled, and we don't want to lose those values by setting their lengths to `0`.\n // We also need to have them at the proper length because floating-ui uses that\n // information for list navigation.\n\n const map = useRefWithInit(createMap).current;\n const [mapTick, setMapTick] = React.useState(0);\n const lastTickRef = React.useRef(mapTick);\n const register = useEventCallback((node, metadata) => {\n map.set(node, metadata ?? null);\n lastTickRef.current += 1;\n setMapTick(lastTickRef.current);\n });\n const unregister = useEventCallback(node => {\n map.delete(node);\n lastTickRef.current += 1;\n setMapTick(lastTickRef.current);\n });\n const sortedMap = React.useMemo(() => {\n // `mapTick` is the `useMemo` trigger as `map` is stable.\n disableEslintWarning(mapTick);\n const newMap = new Map();\n const sortedNodes = Array.from(map.keys()).sort(sortByDocumentPosition);\n sortedNodes.forEach((node, index) => {\n const metadata = map.get(node) ?? {};\n newMap.set(node, {\n ...metadata,\n index\n });\n });\n return newMap;\n }, [map, mapTick]);\n useIsoLayoutEffect(() => {\n const shouldUpdateLengths = lastTickRef.current === mapTick;\n if (shouldUpdateLengths) {\n if (elementsRef.current.length !== sortedMap.size) {\n elementsRef.current.length = sortedMap.size;\n }\n if (labelsRef && labelsRef.current.length !== sortedMap.size) {\n labelsRef.current.length = sortedMap.size;\n }\n }\n onMapChange?.(sortedMap);\n }, [onMapChange, sortedMap, elementsRef, labelsRef, mapTick, lastTickRef]);\n const subscribeMapChange = useEventCallback(fn => {\n listeners.add(fn);\n return () => {\n listeners.delete(fn);\n };\n });\n useIsoLayoutEffect(() => {\n listeners.forEach(l => l(sortedMap));\n }, [listeners, sortedMap]);\n const contextValue = React.useMemo(() => ({\n register,\n unregister,\n subscribeMapChange,\n elementsRef,\n labelsRef,\n nextIndexRef\n }), [register, unregister, subscribeMapChange, elementsRef, labelsRef, nextIndexRef]);\n return /*#__PURE__*/_jsx(CompositeListContext.Provider, {\n value: contextValue,\n children: children\n });\n}\nfunction createMap() {\n return new Map();\n}\nfunction createListeners() {\n return new Set();\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 disableEslintWarning(_) {}","import * as React from 'react';\n\n/**\n * @internal\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const InternalBackdrop = /*#__PURE__*/React.forwardRef(function InternalBackdrop(props, ref) {\n const {\n cutout,\n ...otherProps\n } = props;\n let clipPath;\n if (cutout) {\n const rect = cutout?.getBoundingClientRect();\n clipPath = `polygon(\n 0% 0%,\n 100% 0%,\n 100% 100%,\n 0% 100%,\n 0% 0%,\n ${rect.left}px ${rect.top}px,\n ${rect.left}px ${rect.bottom}px,\n ${rect.right}px ${rect.bottom}px,\n ${rect.right}px ${rect.top}px,\n ${rect.left}px ${rect.top}px\n )`;\n }\n return /*#__PURE__*/_jsx(\"div\", {\n ref: ref,\n role: \"presentation\"\n // Ensures Floating UI's outside press detection runs, as it considers\n // it an element that existed when the popup rendered.\n ,\n \"data-base-ui-inert\": \"\",\n ...otherProps,\n style: {\n position: 'fixed',\n inset: 0,\n userSelect: 'none',\n WebkitUserSelect: 'none',\n clipPath\n }\n });\n});\nif (process.env.NODE_ENV !== \"production\") InternalBackdrop.displayName = \"InternalBackdrop\";","'use client';\n\nimport * as React from 'react';\nimport { inertValue } from '@base-ui-components/utils/inertValue';\nimport { FloatingNode, useFloatingNodeId, useFloatingParentNodeId, useFloatingTree } from \"../../floating-ui-react/index.js\";\nimport { MenuPositionerContext } from \"./MenuPositionerContext.js\";\nimport { useMenuRootContext } from \"../root/MenuRootContext.js\";\nimport { useAnchorPositioning } from \"../../utils/useAnchorPositioning.js\";\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\nimport { popupStateMapping } from \"../../utils/popupStateMapping.js\";\nimport { CompositeList } from \"../../composite/list/CompositeList.js\";\nimport { InternalBackdrop } from \"../../utils/InternalBackdrop.js\";\nimport { useMenuPortalContext } from \"../portal/MenuPortalContext.js\";\nimport { DROPDOWN_COLLISION_AVOIDANCE } from \"../../utils/constants.js\";\nimport { useContextMenuRootContext } from \"../../context-menu/root/ContextMenuRootContext.js\";\nimport { createBaseUIEventDetails } from \"../../utils/createBaseUIEventDetails.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Positions the menu popup against the trigger.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)\n */\nexport const MenuPositioner = /*#__PURE__*/React.forwardRef(function MenuPositioner(componentProps, forwardedRef) {\n const {\n anchor: anchorProp,\n positionMethod: positionMethodProp = 'absolute',\n className,\n render,\n side,\n align: alignProp,\n sideOffset: sideOffsetProp = 0,\n alignOffset: alignOffsetProp = 0,\n collisionBoundary = 'clipping-ancestors',\n collisionPadding = 5,\n arrowPadding = 5,\n sticky = false,\n trackAnchor = true,\n collisionAvoidance = DROPDOWN_COLLISION_AVOIDANCE,\n ...elementProps\n } = componentProps;\n const {\n open,\n setOpen,\n floatingRootContext,\n setPositionerElement,\n itemDomElements,\n itemLabels,\n mounted,\n modal,\n lastOpenChangeReason,\n parent,\n setHoverEnabled,\n triggerElement\n } = useMenuRootContext();\n const keepMounted = useMenuPortalContext();\n const nodeId = useFloatingNodeId();\n const parentNodeId = useFloatingParentNodeId();\n const contextMenuContext = useContextMenuRootContext(true);\n let anchor = anchorProp;\n let sideOffset = sideOffsetProp;\n let alignOffset = alignOffsetProp;\n let align = alignProp;\n if (parent.type === 'context-menu') {\n anchor = parent.context?.anchor ?? anchorProp;\n align = align ?? 'start';\n if (!side && align !== 'center') {\n alignOffset = componentProps.alignOffset ?? 2;\n sideOffset = componentProps.sideOffset ?? -5;\n }\n }\n let computedSide = side;\n let computedAlign = align;\n if (parent.type === 'menu') {\n computedSide = computedSide ?? 'inline-end';\n computedAlign = computedAlign ?? 'start';\n } else if (parent.type === 'menubar') {\n computedSide = computedSide ?? 'bottom';\n computedAlign = computedAlign ?? 'start';\n }\n const contextMenu = parent.type === 'context-menu';\n const positioner = useAnchorPositioning({\n anchor,\n floatingRootContext,\n positionMethod: contextMenuContext ? 'fixed' : positionMethodProp,\n mounted,\n side: computedSide,\n sideOffset,\n align: computedAlign,\n alignOffset,\n arrowPadding: contextMenu ? 0 : arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n nodeId,\n keepMounted,\n trackAnchor,\n collisionAvoidance,\n shiftCrossAxis: contextMenu\n });\n const {\n events: menuEvents\n } = useFloatingTree();\n const positionerProps = React.useMemo(() => {\n const hiddenStyles = {};\n if (!open) {\n hiddenStyles.pointerEvents = 'none';\n }\n return {\n role: 'presentation',\n hidden: !mounted,\n style: {\n ...positioner.positionerStyles,\n ...hiddenStyles\n }\n };\n }, [open, mounted, positioner.positionerStyles]);\n React.useEffect(() => {\n function onMenuOpenChange(details) {\n if (details.open) {\n if (details.parentNodeId === nodeId) {\n setHoverEnabled(false);\n }\n if (details.nodeId !== nodeId && details.parentNodeId === parentNodeId) {\n setOpen(false, createBaseUIEventDetails('sibling-open'));\n }\n } else if (details.parentNodeId === nodeId) {\n // Re-enable hover on the parent when a child closes, except when the child\n // closed due to hovering a different sibling item in this parent (sibling-open).\n // Keeping hover disabled in that scenario prevents the parent from closing\n // immediately when the pointer then leaves it.\n if (details.reason !== 'sibling-open') {\n setHoverEnabled(true);\n }\n }\n }\n menuEvents.on('menuopenchange', onMenuOpenChange);\n return () => {\n menuEvents.off('menuopenchange', onMenuOpenChange);\n };\n }, [menuEvents, nodeId, parentNodeId, setOpen, setHoverEnabled]);\n\n // Close unrelated child submenus when hovering a different item in the parent menu.\n React.useEffect(() => {\n function onItemHover(event) {\n // If an item within our parent menu is hovered, and this menu's trigger is not that item,\n // close this submenu. This ensures hovering a different item in the parent closes other branches.\n if (!open || event.nodeId !== parentNodeId) {\n return;\n }\n if (triggerElement && event.target && triggerElement !== event.target) {\n setOpen(false, createBaseUIEventDetails('sibling-open'));\n }\n }\n menuEvents.on('itemhover', onItemHover);\n return () => {\n menuEvents.off('itemhover', onItemHover);\n };\n }, [menuEvents, parentNodeId, triggerElement, open, setOpen]);\n React.useEffect(() => {\n const eventDetails = {\n open,\n nodeId,\n parentNodeId,\n reason: lastOpenChangeReason\n };\n menuEvents.emit('menuopenchange', eventDetails);\n }, [menuEvents, open, nodeId, parentNodeId, lastOpenChangeReason]);\n const state = React.useMemo(() => ({\n open,\n side: positioner.side,\n align: positioner.align,\n anchorHidden: positioner.anchorHidden,\n nested: parent.type === 'menu'\n }), [open, positioner.side, positioner.align, positioner.anchorHidden, parent.type]);\n const contextValue = React.useMemo(() => ({\n side: positioner.side,\n align: positioner.align,\n arrowRef: positioner.arrowRef,\n arrowUncentered: positioner.arrowUncentered,\n arrowStyles: positioner.arrowStyles,\n floatingContext: positioner.context\n }), [positioner.side, positioner.align, positioner.arrowRef, positioner.arrowUncentered, positioner.arrowStyles, positioner.context]);\n const element = useRenderElement('div', componentProps, {\n state,\n customStyleHookMapping: popupStateMapping,\n ref: [forwardedRef, setPositionerElement],\n props: {\n ...positionerProps,\n ...elementProps\n }\n });\n const shouldRenderBackdrop = mounted && parent.type !== 'menu' && (parent.type !== 'menubar' && modal && lastOpenChangeReason !== 'trigger-hover' || parent.type === 'menubar' && parent.context.modal);\n\n // cuts a hole in the backdrop to allow pointer interaction with the menubar or dropdown menu trigger element\n let backdropCutout = null;\n if (parent.type === 'menubar') {\n backdropCutout = parent.context.contentElement;\n } else if (parent.type === undefined) {\n backdropCutout = triggerElement;\n }\n return /*#__PURE__*/_jsxs(MenuPositionerContext.Provider, {\n value: contextValue,\n children: [shouldRenderBackdrop && /*#__PURE__*/_jsx(InternalBackdrop, {\n ref: parent.type === 'context-menu' || parent.type === 'nested-context-menu' ? parent.context.internalBackdropRef : null,\n inert: inertValue(!open),\n cutout: backdropCutout\n }), /*#__PURE__*/_jsx(FloatingNode, {\n id: nodeId,\n children: /*#__PURE__*/_jsx(CompositeList, {\n elementsRef: itemDomElements,\n labelsRef: itemLabels,\n children: element\n })\n })]\n });\n});\nif (process.env.NODE_ENV !== \"production\") MenuPositioner.displayName = \"MenuPositioner\";","'use client';\n\nimport * as React from 'react';\nexport const MenubarContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") MenubarContext.displayName = \"MenubarContext\";\nexport function useMenubarContext(optional) {\n const context = React.useContext(MenubarContext);\n if (context === null && !optional) {\n throw new Error('Base UI: MenubarContext is missing. Menubar parts must be placed within <Menubar>.');\n }\n return context;\n}","export const NOOP = () => {};","import { isIOS, isWebKit } from '@base-ui-components/utils/detectBrowser';\nimport { ownerDocument, ownerWindow } from '@base-ui-components/utils/owner';\nimport { useIsoLayoutEffect } from '@base-ui-components/utils/useIsoLayoutEffect';\nimport { Timeout } from '@base-ui-components/utils/useTimeout';\nimport { AnimationFrame } from '@base-ui-components/utils/useAnimationFrame';\nimport { NOOP } from \"./noop.js\";\n\n/* eslint-disable lines-between-class-members */\n\nlet originalHtmlStyles = {};\nlet originalBodyStyles = {};\nlet originalHtmlScrollBehavior = '';\nfunction hasInsetScrollbars(referenceElement) {\n if (typeof document === 'undefined') {\n return false;\n }\n const doc = ownerDocument(referenceElement);\n const win = ownerWindow(doc);\n return win.innerWidth - doc.documentElement.clientWidth > 0;\n}\nfunction preventScrollBasic(referenceElement) {\n const doc = ownerDocument(referenceElement);\n const html = doc.documentElement;\n const originalOverflow = html.style.overflow;\n html.style.overflow = 'hidden';\n return () => {\n html.style.overflow = originalOverflow;\n };\n}\nfunction preventScrollStandard(referenceElement) {\n const doc = ownerDocument(referenceElement);\n const html = doc.documentElement;\n const body = doc.body;\n const win = ownerWindow(html);\n let scrollTop = 0;\n let scrollLeft = 0;\n const resizeFrame = AnimationFrame.create();\n\n // Pinch-zoom in Safari causes a shift. Just don't lock scroll if there's any pinch-zoom.\n if (isWebKit && (win.visualViewport?.scale ?? 1) !== 1) {\n return () => {};\n }\n function lockScroll() {\n /* DOM reads: */\n\n const htmlStyles = win.getComputedStyle(html);\n const bodyStyles = win.getComputedStyle(body);\n scrollTop = html.scrollTop;\n scrollLeft = html.scrollLeft;\n originalHtmlStyles = {\n scrollbarGutter: html.style.scrollbarGutter,\n overflowY: html.style.overflowY,\n overflowX: html.style.overflowX\n };\n originalHtmlScrollBehavior = html.style.scrollBehavior;\n originalBodyStyles = {\n position: body.style.position,\n height: body.style.height,\n width: body.style.width,\n boxSizing: body.style.boxSizing,\n overflowY: body.style.overflowY,\n overflowX: body.style.overflowX,\n scrollBehavior: body.style.scrollBehavior\n };\n\n // Handle `scrollbar-gutter` in Chrome when there is no scrollable content.\n const supportsStableScrollbarGutter = typeof CSS !== 'undefined' && CSS.supports?.('scrollbar-gutter', 'stable');\n const isScrollableY = html.scrollHeight > html.clientHeight;\n const isScrollableX = html.scrollWidth > html.clientWidth;\n const hasConstantOverflowY = htmlStyles.overflowY === 'scroll' || bodyStyles.overflowY === 'scroll';\n const hasConstantOverflowX = htmlStyles.overflowX === 'scroll' || bodyStyles.overflowX === 'scroll';\n\n // Values can be negative in Firefox\n const scrollbarWidth = Math.max(0, win.innerWidth - html.clientWidth);\n const scrollbarHeight = Math.max(0, win.innerHeight - html.clientHeight);\n\n // Avoid shift due to the default <body> margin. This does cause elements to be clipped\n // with whitespace. Warn if <body> has margins?\n const marginY = parseFloat(bodyStyles.marginTop) + parseFloat(bodyStyles.marginBottom);\n const marginX = parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight);\n\n /*\n * DOM writes:\n * Do not read the DOM past this point!\n */\n\n Object.assign(html.style, {\n scrollbarGutter: 'stable',\n overflowY: !supportsStableScrollbarGutter && (isScrollableY || hasConstantOverflowY) ? 'scroll' : 'hidden',\n overflowX: !supportsStableScrollbarGutter && (isScrollableX || hasConstantOverflowX) ? 'scroll' : 'hidden'\n });\n Object.assign(body.style, {\n position: 'relative',\n height: marginY || scrollbarHeight ? `calc(100dvh - ${marginY + scrollbarHeight}px)` : '100dvh',\n width: marginX || scrollbarWidth ? `calc(100vw - ${marginX + scrollbarWidth}px)` : '100vw',\n boxSizing: 'border-box',\n overflow: 'hidden',\n scrollBehavior: 'unset'\n });\n body.scrollTop = scrollTop;\n body.scrollLeft = scrollLeft;\n html.setAttribute('data-base-ui-scroll-locked', '');\n html.style.scrollBehavior = 'unset';\n }\n function cleanup() {\n Object.assign(html.style, originalHtmlStyles);\n Object.assign(body.style, originalBodyStyles);\n html.scrollTop = scrollTop;\n html.scrollLeft = scrollLeft;\n html.removeAttribute('data-base-ui-scroll-locked');\n html.style.scrollBehavior = originalHtmlScrollBehavior;\n }\n function handleResize() {\n cleanup();\n resizeFrame.request(lockScroll);\n }\n lockScroll();\n win.addEventListener('resize', handleResize);\n return () => {\n resizeFrame.cancel();\n cleanup();\n win.removeEventListener('resize', handleResize);\n };\n}\nclass ScrollLocker {\n lockCount = 0;\n restore = (() => null)();\n timeoutLock = (() => Timeout.create())();\n timeoutUnlock = (() => Timeout.create())();\n acquire(referenceElement) {\n this.lockCount += 1;\n if (this.lockCount === 1 && this.restore === null) {\n this.timeoutLock.start(0, () => this.lock(referenceElement));\n }\n return this.release;\n }\n release = () => {\n this.lockCount -= 1;\n if (this.lockCount === 0 && this.restore) {\n this.timeoutUnlock.start(0, this.unlock);\n }\n };\n unlock = () => {\n if (this.lockCount === 0 && this.restore) {\n this.restore?.();\n this.restore = null;\n }\n };\n lock(referenceElement) {\n if (this.lockCount === 0 || this.restore !== null) {\n return;\n }\n const doc = ownerDocument(referenceElement);\n const html = doc.documentElement;\n const htmlOverflowY = ownerWindow(html).getComputedStyle(html).overflowY;\n\n // If the site author already hid overflow on <html>, respect it and bail out.\n if (htmlOverflowY === 'hidden' || htmlOverflowY === 'clip') {\n this.restore = NOOP;\n return;\n }\n const isOverflowHiddenLock = isIOS || !hasInsetScrollbars(referenceElement);\n\n // On iOS, scroll locking does not work if the navbar is collapsed. Due to numerous\n // side effects and bugs that arise on iOS, it must be researched extensively before\n // being enabled to ensure it doesn't cause the following issues:\n // - Textboxes must scroll into view when focused, nor cause a glitchy scroll animation.\n // - The navbar must not force itself into view and cause layout shift.\n // - Scroll containers must not flicker upon closing a popup when it has an exit animation.\n this.restore = isOverflowHiddenLock ? preventScrollBasic(referenceElement) : preventScrollStandard(referenceElement);\n }\n}\nconst SCROLL_LOCKER = new ScrollLocker();\n\n/**\n * Locks the scroll of the document when enabled.\n *\n * @param enabled - Whether to enable the scroll lock.\n */\nexport function useScrollLock(params) {\n const {\n enabled = true,\n mounted,\n open,\n referenceElement = null\n } = params;\n\n // https://github.com/mui/base-ui/issues/1135\n useIsoLayoutEffect(() => {\n if (enabled && isWebKit && mounted && !open) {\n const doc = ownerDocument(referenceElement);\n const originalUserSelect = doc.body.style.userSelect;\n const originalWebkitUserSelect = doc.body.style.webkitUserSelect;\n doc.body.style.userSelect = 'none';\n doc.body.style.webkitUserSelect = 'none';\n return () => {\n doc.body.style.userSelect = originalUserSelect;\n doc.body.style.webkitUserSelect = originalWebkitUserSelect;\n };\n }\n return undefined;\n }, [enabled, mounted, open, referenceElement]);\n useIsoLayoutEffect(() => {\n if (!enabled) {\n return undefined;\n }\n return SCROLL_LOCKER.acquire(referenceElement);\n }, [enabled, referenceElement]);\n}","import * as React from 'react';\n/**\n * Provides a cross-browser way to determine the type of the pointer used to click.\n * Safari and Firefox do not provide the PointerEvent to the click handler (they use MouseEvent) yet.\n * Additionally, this implementation detects if the click was triggered by the keyboard.\n *\n * @param handler The function to be called when the button is clicked. The first parameter is the original event and the second parameter is the pointer type.\n */\nexport function useEnhancedClickHandler(handler) {\n const lastClickInteractionTypeRef = React.useRef('');\n const handlePointerDown = React.useCallback(event => {\n if (event.defaultPrevented) {\n return;\n }\n lastClickInteractionTypeRef.current = event.pointerType;\n handler(event, event.pointerType);\n }, [handler]);\n const handleClick = React.useCallback(event => {\n // event.detail has the number of clicks performed on the element. 0 means it was triggered by the keyboard.\n if (event.detail === 0) {\n handler(event, 'keyboard');\n return;\n }\n if ('pointerType' in event) {\n // Chrome and Edge correctly use PointerEvent\n handler(event, event.pointerType);\n }\n handler(event, lastClickInteractionTypeRef.current);\n lastClickInteractionTypeRef.current = '';\n }, [handler]);\n return {\n onClick: handleClick,\n onPointerDown: handlePointerDown\n };\n}","'use client';\n\nimport * as React from 'react';\nimport { useEventCallback } from '@base-ui-components/utils/useEventCallback';\nimport { useEnhancedClickHandler } from '@base-ui-components/utils/useEnhancedClickHandler';\n\n/**\n * Determines the interaction type (keyboard, mouse, touch, etc.) that opened the component.\n *\n * @param open The open state of the component.\n */\nexport function useOpenInteractionType(open) {\n const [openMethod, setOpenMethod] = React.useState(null);\n const handleTriggerClick = useEventCallback((_, interactionType) => {\n if (!open) {\n setOpenMethod(interactionType);\n }\n });\n const reset = useEventCallback(() => {\n setOpenMethod(null);\n });\n const {\n onClick,\n onPointerDown\n } = useEnhancedClickHandler(handleTriggerClick);\n return React.useMemo(() => ({\n openMethod,\n reset,\n triggerProps: {\n onClick,\n onPointerDown\n }\n }), [openMethod, reset, onClick, onPointerDown]);\n}","import * as React from 'react';\nexport const MenuSubmenuRootContext = /*#__PURE__*/React.createContext(false);\nif (process.env.NODE_ENV !== \"production\") MenuSubmenuRootContext.displayName = \"MenuSubmenuRootContext\";\nexport function useMenuSubmenuRootContext() {\n return React.useContext(MenuSubmenuRootContext);\n}","import * as React from 'react';\nimport { ownerDocument } from '@base-ui-components/utils/owner';\nimport { EMPTY_OBJECT } from \"./constants.js\";\n\n/**\n * Returns `click` and `mousedown` handlers that fix the behavior of triggers of popups that are toggled by different events.\n * For example, a button that opens a popup on mousedown and closes it on click.\n * This hook prevents the popup from closing immediately after the mouse button is released.\n */\nexport function useMixedToggleClickHandler(params) {\n const {\n enabled = true,\n mouseDownAction,\n open\n } = params;\n const ignoreClickRef = React.useRef(false);\n return React.useMemo(() => {\n if (!enabled) {\n return EMPTY_OBJECT;\n }\n return {\n onMouseDown: event => {\n if (mouseDownAction === 'open' && !open || mouseDownAction === 'close' && open) {\n ignoreClickRef.current = true;\n ownerDocument(event.currentTarget).addEventListener('click', () => {\n ignoreClickRef.current = false;\n }, {\n once: true\n });\n }\n },\n onClick: event => {\n if (ignoreClickRef.current) {\n ignoreClickRef.current = false;\n event.preventBaseUIHandler();\n }\n }\n };\n }, [enabled, mouseDownAction, open]);\n}","'use client';\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { useTimeout } from '@base-ui-components/utils/useTimeout';\nimport { useEventCallback } from '@base-ui-components/utils/useEventCallback';\nimport { useControlled } from '@base-ui-components/utils/useControlled';\nimport { useId } from '@base-ui-components/utils/useId';\nimport { FloatingTree, useClick, useDismiss, useFloatingRootContext, useFocus, useHover, useInteractions, useListNavigation, useRole, useTypeahead, safePolygon } from \"../../floating-ui-react/index.js\";\nimport { MenuRootContext, useMenuRootContext } from \"./MenuRootContext.js\";\nimport { useMenubarContext } from \"../../menubar/MenubarContext.js\";\nimport { useTransitionStatus } from \"../../utils/useTransitionStatus.js\";\nimport { PATIENT_CLICK_THRESHOLD, TYPEAHEAD_RESET_MS } from \"../../utils/constants.js\";\nimport { useOpenChangeComplete } from \"../../utils/useOpenChangeComplete.js\";\nimport { useDirection } from \"../../direction-provider/DirectionContext.js\";\nimport { useScrollLock } from \"../../utils/useScrollLock.js\";\nimport { useOpenInteractionType } from \"../../utils/useOpenInteractionType.js\";\nimport { useContextMenuRootContext } from \"../../context-menu/root/ContextMenuRootContext.js\";\nimport { useMenuSubmenuRootContext } from \"../submenu-root/MenuSubmenuRootContext.js\";\nimport { useMixedToggleClickHandler } from \"../../utils/useMixedToggleClickHander.js\";\nimport { mergeProps } from \"../../merge-props/index.js\";\nimport { useFloatingParentNodeId } from \"../../floating-ui-react/components/FloatingTree.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst EMPTY_ARRAY = [];\nconst EMPTY_REF = {\n current: false\n};\n\n/**\n * Groups all parts of the menu.\n * Doesn’t render its own HTML element.\n *\n * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)\n */\nexport const MenuRoot = function MenuRoot(props) {\n const {\n children,\n open: openProp,\n onOpenChange,\n onOpenChangeComplete,\n defaultOpen = false,\n disabled = false,\n modal: modalProp,\n loop = true,\n orientation = 'vertical',\n actionsRef,\n openOnHover: openOnHoverProp,\n delay = 100,\n closeDelay = 0,\n closeParentOnEsc = true\n } = props;\n const [triggerElement, setTriggerElement] = React.useState(null);\n const [positionerElement, setPositionerElementUnwrapped] = React.useState(null);\n const [instantType, setInstantType] = React.useState();\n const [hoverEnabled, setHoverEnabled] = React.useState(true);\n const [activeIndex, setActiveIndex] = React.useState(null);\n const [lastOpenChangeReason, setLastOpenChangeReason] = React.useState(null);\n const [stickIfOpen, setStickIfOpen] = React.useState(true);\n const [allowMouseEnterState, setAllowMouseEnterState] = React.useState(false);\n const openEventRef = React.useRef(null);\n const popupRef = React.useRef(null);\n const positionerRef = React.useRef(null);\n const itemDomElements = React.useRef([]);\n const itemLabels = React.useRef([]);\n const stickIfOpenTimeout = useTimeout();\n const contextMenuContext = useContextMenuRootContext(true);\n const isSubmenu = useMenuSubmenuRootContext();\n const nested = useFloatingParentNodeId() != null;\n let floatingEvents;\n let parent;\n {\n const parentContext = useMenuRootContext(true);\n const menubarContext = useMenubarContext(true);\n if (isSubmenu && parentContext) {\n parent = {\n type: 'menu',\n context: parentContext\n };\n } else if (menubarContext) {\n parent = {\n type: 'menubar',\n context: menubarContext\n };\n // Ensure this is not a Menu nested inside ContextMenu.Trigger.\n // ContextMenu parentContext is always undefined as ContextMenu.Root is instantiated with\n // <MenuRootContext.Provider value={undefined}>\n } else if (contextMenuContext && !parentContext) {\n parent = {\n type: 'context-menu',\n context: contextMenuContext\n };\n } else {\n parent = {\n type: undefined\n };\n }\n }\n let rootId = useId();\n if (parent.type !== undefined) {\n rootId = parent.context.rootId;\n }\n const modal = (parent.type === undefined || parent.type === 'context-menu') && (modalProp ?? true);\n\n // If this menu is a submenu, it should inherit `allowMouseEnter` from its\n // parent. Otherwise it manages the state on its own.\n const allowMouseEnter = parent.type === 'menu' ? parent.context.allowMouseEnter : allowMouseEnterState;\n const setAllowMouseEnter = parent.type === 'menu' ? parent.context.setAllowMouseEnter : setAllowMouseEnterState;\n if (process.env.NODE_ENV !== 'production') {\n if (parent.type !== undefined && modalProp !== undefined) {\n console.warn('Base UI: The `modal` prop is not supported on nested menus. It will be ignored.');\n }\n }\n const openOnHover = openOnHoverProp ?? (parent.type === 'menu' || parent.type === 'menubar' && parent.context.hasSubmenuOpen);\n const [open, setOpenUnwrapped] = useControlled({\n controlled: openProp,\n default: defaultOpen,\n name: 'MenuRoot',\n state: 'open'\n });\n const allowOutsidePressDismissalRef = React.useRef(parent.type !== 'context-menu');\n const allowOutsidePressDismissalTimeout = useTimeout();\n React.useEffect(() => {\n if (!open) {\n openEventRef.current = null;\n }\n if (parent.type !== 'context-menu') {\n return;\n }\n if (!open) {\n allowOutsidePressDismissalTimeout.clear();\n allowOutsidePressDismissalRef.current = false;\n return;\n }\n\n // With `mousedown` outside press events and long press touch input, there\n // needs to be a grace period after opening to ensure the dismissal event\n // doesn't fire immediately after open.\n allowOutsidePressDismissalTimeout.start(500, () => {\n allowOutsidePressDismissalRef.current = true;\n });\n }, [allowOutsidePressDismissalTimeout, open, parent.type]);\n const setPositionerElement = React.useCallback(value => {\n positionerRef.current = value;\n setPositionerElementUnwrapped(value);\n }, []);\n const {\n mounted,\n setMounted,\n transitionStatus\n } = useTransitionStatus(open);\n const {\n openMethod,\n triggerProps: interactionTypeProps,\n reset: resetOpenInteractionType\n } = useOpenInteractionType(open);\n useScrollLock({\n enabled: open && modal && lastOpenChangeReason !== 'trigger-hover' && openMethod !== 'touch',\n mounted,\n open,\n referenceElement: positionerElement\n });\n if (!open && !hoverEnabled) {\n setHoverEnabled(true);\n }\n const handleUnmount = useEventCallback(() => {\n setMounted(false);\n setStickIfOpen(true);\n setAllowMouseEnter(false);\n onOpenChangeComplete?.(false);\n resetOpenInteractionType();\n });\n useOpenChangeComplete({\n enabled: !actionsRef,\n open,\n ref: popupRef,\n onComplete() {\n if (!open) {\n handleUnmount();\n }\n }\n });\n const allowTouchToCloseRef = React.useRef(true);\n const allowTouchToCloseTimeout = useTimeout();\n const setOpen = useEventCallback((nextOpen, eventDetails) => {\n const reason = eventDetails.reason;\n if (open === nextOpen) {\n return;\n }\n onOpenChange?.(nextOpen, eventDetails);\n if (eventDetails.isCanceled) {\n return;\n }\n const details = {\n open: nextOpen,\n nativeEvent: eventDetails.event,\n reason: eventDetails.reason,\n nested\n };\n floatingEvents?.emit('openchange', details);\n const nativeEvent = eventDetails.event;\n if (nextOpen === false && nativeEvent?.type === 'click' && nativeEvent.pointerType === 'touch' && !allowTouchToCloseRef.current) {\n return;\n }\n\n // Workaround `enableFocusInside` in Floating UI setting `tabindex=0` of a non-highlighted\n // option upon close when tabbing out due to `keepMounted=true`:\n // https://github.com/floating-ui/floating-ui/pull/3004/files#diff-962a7439cdeb09ea98d4b622a45d517bce07ad8c3f866e089bda05f4b0bbd875R194-R199\n // This otherwise causes options to retain `tabindex=0` incorrectly when the popup is closed\n // when tabbing outside.\n if (!nextOpen && activeIndex !== null) {\n const activeOption = itemDomElements.current[activeIndex];\n // Wait for Floating UI's focus effect to have fired\n queueMicrotask(() => {\n activeOption?.setAttribute('tabindex', '-1');\n });\n }\n\n // Prevent the menu from closing on mobile devices that have a delayed click event.\n // In some cases the menu, when tapped, will fire the focus event first and then the click event.\n // Without this guard, the menu will close immediately after opening.\n if (nextOpen && reason === 'trigger-focus') {\n allowTouchToCloseRef.current = false;\n allowTouchToCloseTimeout.start(300, () => {\n allowTouchToCloseRef.current = true;\n });\n } else {\n allowTouchToCloseRef.current = true;\n allowTouchToCloseTimeout.clear();\n }\n const isKeyboardClick = (reason === 'trigger-press' || reason === 'item-press') && nativeEvent.detail === 0 && nativeEvent?.isTrusted;\n const isDismissClose = !nextOpen && (reason === 'escape-key' || reason == null);\n function changeState() {\n setOpenUnwrapped(nextOpen);\n setLastOpenChangeReason(reason ?? null);\n openEventRef.current = eventDetails.event ?? null;\n }\n if (reason === 'trigger-hover') {\n // Only allow \"patient\" clicks to close the menu if it's open.\n // If they clicked within 500ms of the menu opening, keep it open.\n setStickIfOpen(true);\n stickIfOpenTimeout.start(PATIENT_CLICK_THRESHOLD, () => {\n setStickIfOpen(false);\n });\n ReactDOM.flushSync(changeState);\n } else {\n changeState();\n }\n if (parent.type === 'menubar' && (reason === 'trigger-focus' || reason === 'focus-out' || reason === 'trigger-hover' || reason === 'list-navigation' || reason === 'sibling-open')) {\n setInstantType('group');\n } else if (isKeyboardClick || isDismissClose) {\n setInstantType(isKeyboardClick ? 'click' : 'dismiss');\n } else {\n setInstantType(undefined);\n }\n });\n React.useImperativeHandle(actionsRef, () => ({\n unmount: handleUnmount\n }), [handleUnmount]);\n let ctx;\n if (parent.type === 'context-menu') {\n ctx = parent.context;\n }\n React.useImperativeHandle(ctx?.positionerRef, () => positionerElement, [positionerElement]);\n React.useImperativeHandle(ctx?.actionsRef, () => ({\n setOpen\n }), [setOpen]);\n React.useEffect(() => {\n if (!open) {\n stickIfOpenTimeout.clear();\n }\n }, [stickIfOpenTimeout, open]);\n const floatingRootContext = useFloatingRootContext({\n elements: {\n reference: triggerElement,\n floating: positionerElement\n },\n open,\n onOpenChange: setOpen\n });\n floatingEvents = floatingRootContext.events;\n const hover = useHover(floatingRootContext, {\n enabled: hoverEnabled && openOnHover && !disabled && parent.type !== 'context-menu' && (parent.type !== 'menubar' || parent.context.hasSubmenuOpen && !open),\n handleClose: safePolygon({\n blockPointerEvents: true\n }),\n mouseOnly: true,\n move: parent.type === 'menu',\n restMs: parent.type === undefined || parent.type === 'menu' && allowMouseEnter ? delay : undefined,\n delay: parent.type === 'menu' ? {\n open: allowMouseEnter ? delay : 10 ** 10,\n close: closeDelay\n } : {\n close: closeDelay\n }\n });\n const focus = useFocus(floatingRootContext, {\n enabled: !disabled && !open && parent.type === 'menubar' && parent.context.hasSubmenuOpen && !contextMenuContext\n });\n const click = useClick(floatingRootContext, {\n enabled: !disabled && parent.type !== 'context-menu',\n event: open && parent.type === 'menubar' ? 'click' : 'mousedown',\n toggle: !openOnHover || parent.type !== 'menu',\n ignoreMouse: openOnHover && parent.type === 'menu',\n stickIfOpen: parent.type === undefined ? stickIfOpen : false\n });\n const dismiss = useDismiss(floatingRootContext, {\n enabled: !disabled,\n bubbles: closeParentOnEsc && parent.type === 'menu',\n outsidePress() {\n if (parent.type !== 'context-menu' || openEventRef.current?.type === 'contextmenu') {\n return true;\n }\n return allowOutsidePressDismissalRef.current;\n }\n });\n const role = useRole(floatingRootContext, {\n role: 'menu'\n });\n const direction = useDirection();\n const listNavigation = useListNavigation(floatingRootContext, {\n enabled: !disabled,\n listRef: itemDomElements,\n activeIndex,\n nested: parent.type !== undefined,\n loop,\n orientation,\n parentOrientation: parent.type === 'menubar' ? parent.context.orientation : undefined,\n rtl: direction === 'rtl',\n disabledIndices: EMPTY_ARRAY,\n onNavigate: setActiveIndex,\n openOnArrowKeyDown: parent.type !== 'context-menu'\n });\n const typingRef = React.useRef(false);\n const onTypingChange = React.useCallback(nextTyping => {\n typingRef.current = nextTyping;\n }, []);\n const typeahead = useTypeahead(floatingRootContext, {\n listRef: itemLabels,\n activeIndex,\n resetMs: TYPEAHEAD_RESET_MS,\n onMatch: index => {\n if (open && index !== activeIndex) {\n setActiveIndex(index);\n }\n },\n onTypingChange\n });\n const {\n getReferenceProps,\n getFloatingProps,\n getItemProps\n } = useInteractions([hover, click, dismiss, focus, role, listNavigation, typeahead]);\n const mixedToggleHandlers = useMixedToggleClickHandler({\n open,\n enabled: parent.type === 'menubar',\n mouseDownAction: 'open'\n });\n const triggerProps = React.useMemo(() => {\n const referenceProps = mergeProps(getReferenceProps(), {\n onMouseEnter() {\n setHoverEnabled(true);\n },\n onMouseMove() {\n setAllowMouseEnter(true);\n }\n }, interactionTypeProps, mixedToggleHandlers);\n delete referenceProps.role;\n return referenceProps;\n }, [getReferenceProps, mixedToggleHandlers, setAllowMouseEnter, interactionTypeProps]);\n const popupProps = React.useMemo(() => getFloatingProps({\n onMouseEnter() {\n if (!openOnHover || parent.type === 'menu') {\n setHoverEnabled(false);\n }\n },\n onMouseMove() {\n setAllowMouseEnter(true);\n },\n onClick() {\n if (openOnHover) {\n setHoverEnabled(false);\n }\n }\n }), [getFloatingProps, openOnHover, parent.type, setAllowMouseEnter]);\n const itemProps = React.useMemo(() => getItemProps(), [getItemProps]);\n const context = React.useMemo(() => ({\n activeIndex,\n setActiveIndex,\n allowMouseUpTriggerRef: parent.type ? parent.context.allowMouseUpTriggerRef : EMPTY_REF,\n floatingRootContext,\n itemProps,\n popupProps,\n triggerProps,\n itemDomElements,\n itemLabels,\n mounted,\n open,\n popupRef,\n positionerRef,\n setOpen,\n setPositionerElement,\n triggerElement,\n setTriggerElement,\n transitionStatus,\n lastOpenChangeReason,\n instantType,\n onOpenChangeComplete,\n setHoverEnabled,\n typingRef,\n modal,\n disabled,\n parent,\n rootId,\n allowMouseEnter,\n setAllowMouseEnter\n }), [activeIndex, floatingRootContext, itemProps, popupProps, triggerProps, itemDomElements, itemLabels, mounted, open, positionerRef, setOpen, transitionStatus, triggerElement, setPositionerElement, lastOpenChangeReason, instantType, onOpenChangeComplete, modal, disabled, parent, rootId, allowMouseEnter, setAllowMouseEnter]);\n const content = /*#__PURE__*/_jsx(MenuRootContext.Provider, {\n value: context,\n children: children\n });\n if (parent.type === undefined || parent.type === 'context-menu') {\n // set up a FloatingTree to provide the context to nested menus\n return /*#__PURE__*/_jsx(FloatingTree, {\n children: content\n });\n }\n return content;\n};","export function getPseudoElementBounds(element) {\n const elementRect = element.getBoundingClientRect();\n\n // Avoid \"Not implemented: window.getComputedStyle(elt, pseudoElt)\"\n if (process.env.NODE_ENV === 'test') {\n return elementRect;\n }\n const beforeStyles = window.getComputedStyle(element, '::before');\n const afterStyles = window.getComputedStyle(element, '::after');\n const hasPseudoElements = beforeStyles.content !== 'none' || afterStyles.content !== 'none';\n if (!hasPseudoElements) {\n return elementRect;\n }\n\n // Get dimensions of pseudo-elements\n const beforeWidth = parseFloat(beforeStyles.width) || 0;\n const beforeHeight = parseFloat(beforeStyles.height) || 0;\n const afterWidth = parseFloat(afterStyles.width) || 0;\n const afterHeight = parseFloat(afterStyles.height) || 0;\n\n // Calculate max dimensions including pseudo-elements\n const totalWidth = Math.max(elementRect.width, beforeWidth, afterWidth);\n const totalHeight = Math.max(elementRect.height, beforeHeight, afterHeight);\n\n // Calculate the differences to extend the bounds\n const widthDiff = totalWidth - elementRect.width;\n const heightDiff = totalHeight - elementRect.height;\n return {\n left: elementRect.left - widthDiff / 2,\n right: elementRect.right + widthDiff / 2,\n top: elementRect.top - heightDiff / 2,\n bottom: elementRect.bottom + heightDiff / 2\n };\n}","'use client';\n\nimport * as React from 'react';\nimport { useMergedRefs } from '@base-ui-components/utils/useMergedRefs';\nimport { useCompositeRootContext } from \"../root/CompositeRootContext.js\";\nimport { useCompositeListItem } from \"../list/useCompositeListItem.js\";\nexport function useCompositeItem(params = {}) {\n const {\n highlightItemOnHover,\n highlightedIndex,\n onHighlightedIndexChange\n } = useCompositeRootContext();\n const {\n ref,\n index\n } = useCompositeListItem(params);\n const isHighlighted = highlightedIndex === index;\n const itemRef = React.useRef(null);\n const mergedRef = useMergedRefs(ref, itemRef);\n const compositeProps = React.useMemo(() => ({\n tabIndex: isHighlighted ? 0 : -1,\n onFocus() {\n onHighlightedIndexChange(index);\n },\n onMouseMove() {\n const item = itemRef.current;\n if (!highlightItemOnHover || !item) {\n return;\n }\n const disabled = item.hasAttribute('disabled') || item.ariaDisabled === 'true';\n if (!isHighlighted && !disabled) {\n item.focus();\n }\n }\n }), [isHighlighted, onHighlightedIndexChange, index, highlightItemOnHover]);\n return {\n compositeProps,\n compositeRef: mergedRef,\n index\n };\n}","'use client';\n\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\nimport { useCompositeItem } from \"./useCompositeItem.js\";\nimport { EMPTY_OBJECT, EMPTY_ARRAY } from \"../../utils/constants.js\";\n/**\n * @internal\n */\nexport function CompositeItem(componentProps) {\n const {\n render,\n className,\n state = EMPTY_OBJECT,\n props = EMPTY_ARRAY,\n refs = EMPTY_ARRAY,\n metadata,\n customStyleHookMapping,\n tag = 'div',\n ...elementProps\n } = componentProps;\n const {\n compositeProps,\n compositeRef\n } = useCompositeItem({\n metadata\n });\n return useRenderElement(tag, componentProps, {\n state,\n ref: [...refs, compositeRef],\n props: [compositeProps, ...props, elementProps],\n customStyleHookMapping\n });\n}","'use client';\n\nimport * as React from 'react';\nimport { getParentNode, isHTMLElement, isLastTraversableNode } from '@floating-ui/utils/dom';\nimport { useMergedRefs } from '@base-ui-components/utils/useMergedRefs';\nimport { useTimeout } from '@base-ui-components/utils/useTimeout';\nimport { ownerDocument } from '@base-ui-components/utils/owner';\nimport { useEventCallback } from '@base-ui-components/utils/useEventCallback';\nimport { contains } from \"../../floating-ui-react/utils.js\";\nimport { useFloatingTree } from \"../../floating-ui-react/index.js\";\nimport { useMenuRootContext } from \"../root/MenuRootContext.js\";\nimport { pressableTriggerOpenStateMapping } from \"../../utils/popupStateMapping.js\";\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\nimport { mergeProps } from \"../../merge-props/index.js\";\nimport { useButton } from \"../../use-button/useButton.js\";\nimport { getPseudoElementBounds } from \"../../utils/getPseudoElementBounds.js\";\nimport { CompositeItem } from \"../../composite/item/CompositeItem.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst BOUNDARY_OFFSET = 2;\n\n/**\n * A button that opens the menu.\n * Renders a `<button>` element.\n *\n * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)\n */\nexport const MenuTrigger = /*#__PURE__*/React.forwardRef(function MenuTrigger(componentProps, forwardedRef) {\n const {\n render,\n className,\n disabled: disabledProp = false,\n nativeButton = true,\n ...elementProps\n } = componentProps;\n const {\n triggerProps: rootTriggerProps,\n disabled: menuDisabled,\n setTriggerElement,\n open,\n allowMouseUpTriggerRef,\n positionerRef,\n parent,\n lastOpenChangeReason,\n rootId\n } = useMenuRootContext();\n const disabled = disabledProp || menuDisabled;\n const triggerRef = React.useRef(null);\n const allowMouseUpTriggerTimeout = useTimeout();\n const {\n getButtonProps,\n buttonRef\n } = useButton({\n disabled,\n native: nativeButton\n });\n const handleRef = useMergedRefs(buttonRef, setTriggerElement);\n const {\n events: menuEvents\n } = useFloatingTree();\n React.useEffect(() => {\n if (!open && parent.type === undefined) {\n allowMouseUpTriggerRef.current = false;\n }\n }, [allowMouseUpTriggerRef, open, parent.type]);\n const handleDocumentMouseUp = useEventCallback(mouseEvent => {\n if (!triggerRef.current) {\n return;\n }\n allowMouseUpTriggerTimeout.clear();\n allowMouseUpTriggerRef.current = false;\n const mouseUpTarget = mouseEvent.target;\n if (contains(triggerRef.current, mouseUpTarget) || contains(positionerRef.current, mouseUpTarget) || mouseUpTarget === triggerRef.current) {\n return;\n }\n if (mouseUpTarget != null && findRootOwnerId(mouseUpTarget) === rootId) {\n return;\n }\n const bounds = getPseudoElementBounds(triggerRef.current);\n if (mouseEvent.clientX >= bounds.left - BOUNDARY_OFFSET && mouseEvent.clientX <= bounds.right + BOUNDARY_OFFSET && mouseEvent.clientY >= bounds.top - BOUNDARY_OFFSET && mouseEvent.clientY <= bounds.bottom + BOUNDARY_OFFSET) {\n return;\n }\n menuEvents.emit('close', {\n domEvent: mouseEvent,\n reason: 'cancel-open'\n });\n });\n React.useEffect(() => {\n if (open && lastOpenChangeReason === 'trigger-hover') {\n const doc = ownerDocument(triggerRef.current);\n doc.addEventListener('mouseup', handleDocumentMouseUp, {\n once: true\n });\n }\n }, [open, handleDocumentMouseUp, lastOpenChangeReason]);\n const isMenubar = parent.type === 'menubar';\n const getTriggerProps = React.useCallback(externalProps => {\n return mergeProps(isMenubar ? {\n role: 'menuitem'\n } : {}, {\n 'aria-haspopup': 'menu',\n ref: handleRef,\n onMouseDown: event => {\n if (open) {\n return;\n }\n\n // mousedown -> mouseup on menu item should not trigger it within 200ms.\n allowMouseUpTriggerTimeout.start(200, () => {\n allowMouseUpTriggerRef.current = true;\n });\n const doc = ownerDocument(event.currentTarget);\n doc.addEventListener('mouseup', handleDocumentMouseUp, {\n once: true\n });\n }\n }, externalProps, getButtonProps);\n }, [getButtonProps, handleRef, open, allowMouseUpTriggerRef, allowMouseUpTriggerTimeout, handleDocumentMouseUp, isMenubar]);\n const state = React.useMemo(() => ({\n disabled,\n open\n }), [disabled, open]);\n const ref = [triggerRef, forwardedRef, buttonRef];\n const props = [rootTriggerProps, elementProps, getTriggerProps];\n const element = useRenderElement('button', componentProps, {\n enabled: !isMenubar,\n customStyleHookMapping: pressableTriggerOpenStateMapping,\n state,\n ref,\n props\n });\n if (isMenubar) {\n return /*#__PURE__*/_jsx(CompositeItem, {\n tag: \"button\",\n render: render,\n className: className,\n state: state,\n refs: ref,\n props: props,\n customStyleHookMapping: pressableTriggerOpenStateMapping\n });\n }\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") MenuTrigger.displayName = \"MenuTrigger\";\nfunction findRootOwnerId(node) {\n if (isHTMLElement(node) && node.hasAttribute('data-rootownerid')) {\n return node.getAttribute('data-rootownerid') ?? undefined;\n }\n if (isLastTraversableNode(node)) {\n return undefined;\n }\n return findRootOwnerId(getParentNode(node));\n}","import React, { useState } from \"react\";\nimport { Menu } from \"@base-ui-components/react/menu\";\nimport { Stack, SxProps, Theme, styled } from \"@mui/material\";\nimport { EliceIconButton } from \"../../icon-button\";\nimport { MoreColumn } from \"../../../icons\";\nimport { colors } from \"../../../tokens\";\nimport useAIDTMediaQuery from \"../../../hooks/useAIDTMediaQuery\";\n\nconst StyledPopup = styled(Menu.Popup)`\n display: flex;\n flex-direction: column;\n min-width: 150px;\n background: transparent;\n padding-top: 10px;\n border-radius: 8px;\n`;\n\nconst StyledMenuItem = styled(Menu.Item)`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex-direction: column;\n`;\n\nconst StyledMoreTrigger = styled(Menu.Trigger)`\n border: none;\n background-color: #fff;\n padding: 0;\n`;\n\nexport interface LayoutHeaderSubTitleProps {\n children: React.ReactNode;\n sx?: SxProps<Theme>\n}\n\nconst LayoutHeaderSubTitle = ({ children, sx }: LayoutHeaderSubTitleProps): JSX.Element => {\n const [menuOpen, setMenuOpen] = useState(false);\n const { isTablet } = useAIDTMediaQuery();\n\n return (\n <Stack direction=\"row\" spacing={2} alignItems=\"center\" sx={sx}>\n {isTablet ? (\n <Menu.Root open={menuOpen} onOpenChange={setMenuOpen}>\n <StyledMoreTrigger>\n <EliceIconButton width={48} height={48} backgroundColor={colors.bluepurple[100]} borderRadius={12}>\n <MoreColumn />\n </EliceIconButton>\n </StyledMoreTrigger>\n <Menu.Portal>\n <Menu.Positioner align=\"start\">\n <StyledPopup>\n <Menu.Arrow />\n {React.Children.map(children, (child, index) => (\n <StyledMenuItem key={index}>{child}</StyledMenuItem>\n ))}\n </StyledPopup>\n </Menu.Positioner>\n </Menu.Portal>\n </Menu.Root>\n ) : (\n children\n )}\n </Stack>\n );\n};\n\nexport default LayoutHeaderSubTitle;\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { Stack, SxProps, Theme, Typography, useTheme } from \"@mui/material\";\n\nconst StyledTitle = styled(Stack) <{ bgColor: string }>`\n flex-shrink: 0;\n width: fit-content;\n background-color: ${({ bgColor }) => bgColor};\n position: relative;\n top: auto;\n height: 68px;\n box-sizing: border-box;\n padding-top: 17px;\n border-radius: 0 0 26px 26px;\n`;\n\nconst Title = styled(Typography)`\n border-top: 1px dashed #fff;\n height: 35px;\n display: flex;\n justify-content: center;\n padding: 11px 24px;\n text-align: center;\n color: #fff;\n`;\n\nexport interface LayoutHeaderTitleProps {\n children?: React.ReactNode;\n titleComponent?: React.ReactNode;\n sx?: SxProps<Theme>\n}\n\nconst LayoutHeaderTitle = ({ children, titleComponent, sx }: LayoutHeaderTitleProps): JSX.Element => {\n const theme = useTheme();\n\n if (titleComponent) {\n return <>{titleComponent}</>;\n }\n\n return (\n <StyledTitle bgColor={theme.palette.secondary.main} sx={sx}>\n {typeof children === \"string\" ? <Title variant=\"h1\">{children}</Title> : children}\n </StyledTitle>\n );\n};\n\nexport default LayoutHeaderTitle;\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport {\n Box as MuiBox,\n Stack as MuiStack,\n Typography as MuiTypography,\n useTheme,\n Button,\n} from \"@mui/material\";\nimport useAIDTMediaQuery from \"../../hooks/useAIDTMediaQuery\";\nimport ScrollMoreIcon from \"../../icons/ScrollMoreIcon\";\nimport { LayoutPagination } from \"./layout-pagination\";\nimport { LayoutFooterPaging, LayoutFooterSubmit } from \"./Footer\";\nimport { LayoutHeaderSubTitle, LayoutHeaderTitle } from \"./Header\";\n\nimport type { BoxProps, StackProps, SxProps, Theme, TypographyProps } from \"@mui/material\";\n\ninterface EliceLayoutContextProps {\n isScrollActive: boolean;\n setIsScrollActive: (isSticky: boolean) => void;\n enableScrollTracking: boolean;\n}\n\nconst EliceLayoutContext = React.createContext<EliceLayoutContextProps | undefined>(undefined);\n\nexport interface EliceLayoutProps {\n children: React.ReactNode;\n backgroundImage?: string;\n backgroundColor?: string;\n onPrev?: () => void;\n onNext?: () => void;\n allowPrev?: boolean;\n allowNext?: boolean;\n onlyPage?: boolean;\n enableScrollTracking?: boolean;\n sx?: SxProps<Theme>;\n}\n\ntype Alignment = \"left\" | \"center\" | \"right\";\n\ninterface EliceStepProps<T extends React.ElementType> {\n step?: -1 | 0 | 1 | 2 | 3;\n component?: T;\n}\ntype EliceBoxProps<T extends React.ElementType> = BoxProps<T> &\n EliceStepProps<T>;\ntype EliceStackProps<T extends React.ElementType> = StackProps<T> &\n EliceStepProps<T>;\ntype EliceTypographyProps = TypographyProps &\n Omit<EliceStepProps<React.ElementType>, 'component'>;\n\n/**\n * @summary Alpha of Design System. Wrapper of MUI Box\n * */\nexport const Box = React.forwardRef(function Box<T extends React.ElementType>({\n component,\n step,\n sx,\n ...props\n}: EliceBoxProps<T>, ref: React.Ref<unknown>) {\n const stepSx = {\n ...(step !== undefined ? ({\n '--fluid-size': `var(--step-${step})`,\n '& *:not([class*=Typography]):not([class*=Typography] *)': {\n 'font-size': 'var(--fluid-size)',\n }\n }) : {}),\n ...sx\n };\n\n return <MuiBox ref={ref} component={component} sx={stepSx} {...props} />;\n});\n\n/**\n * @summary Alpha of Design System. Wrapper of MUI Stack\n * */\nexport const Stack = React.forwardRef(function Stack<T extends React.ElementType>({\n component,\n step,\n sx,\n ...props\n}: EliceStackProps<T>, ref: React.Ref<unknown>) {\n const stepSx = {\n ...(step !== undefined ? ({\n '--fluid-size': `var(--step-${step})`,\n '& *:not([class*=Typography]):not([class*=Typography] *)': {\n 'font-size': 'var(--fluid-size)',\n }\n }) : {}),\n ...sx,\n };\n\n return (\n <MuiStack\n ref={ref}\n // FIXME: delete any in React 19.\n component={component as any}\n sx={stepSx}\n {...props}\n />\n );\n});\n\n\n/**\n * @summary Alpha of Design System. Wrapper of MUI Typography\n * */\nexport function Typography({ step, sx, ...props }: EliceTypographyProps) {\n const stepSx = {\n '&:is([class*=\"Typography\"])': {\n ...(sx ?? ({} as any)),\n '--fluid-size': `var(--step-${step ?? 0})`,\n fontSize: (sx as any)?.fontSize,\n },\n };\n\n return <MuiTypography sx={stepSx} {...props} />;\n}\n\n\nexport const Layout = ({\n children,\n onPrev,\n onNext,\n allowPrev,\n allowNext,\n backgroundImage,\n backgroundColor,\n onlyPage = false,\n enableScrollTracking = false,\n sx\n}: EliceLayoutProps) => {\n const { isTablet, isMiniTablet } = useAIDTMediaQuery();\n const [isScrollActive, setIsScrollActive] = React.useState(false);\n\n return (\n <EliceLayoutContext.Provider value={{ isScrollActive, setIsScrollActive, enableScrollTracking }}>\n <MainContainer\n isMiniTablet={isMiniTablet}\n backgroundImage={backgroundImage}\n backgroundColor={backgroundColor}\n sx={sx}\n >\n {\n !onlyPage && (\n !isTablet && (\n <LayoutPagination onPrev={onPrev} onNext={onNext} allowPrev={allowPrev} allowNext={allowNext} />\n )\n )\n }\n {children}\n </MainContainer>\n </EliceLayoutContext.Provider>\n );\n}\n\nconst HeaderContainerInner = styled(Stack)`\n height: 4.625rem;\n width: 100%;\n justify-content: space-between;\n flex-direction: row;\n`;\nexport const HeaderContainer = ({ children, sx }: { children: React.ReactNode, sx?: SxProps<Theme> }) => {\n return <HeaderContainerInner sx={sx}>{children}</HeaderContainerInner>;\n}\nexport const HeaderTitle = LayoutHeaderTitle;\nexport const HeaderSubTitle = LayoutHeaderSubTitle;\n\nconst ContentContainerInner = styled(Stack) <{ theme: Theme }>`\n flex: 1;\n width: 100%;\n max-height: calc(100vh - 4.625rem - 5rem);\n overflow-y: auto;\n min-height: 0;\n position: relative;\n\n &::-webkit-scrollbar {\n width: 0.5rem;\n }\n\n &::-webkit-scrollbar-thumb {\n background-color: ${({ theme }) => theme.palette.primary.main};\n border-radius: 0.25rem;\n }\n\n &::-webkit-scrollbar-track {\n background-color: ${({ theme }) => theme.palette.grey[300]};\n border-radius: 0.25rem;\n }\n`;\nexport const ContentContainer = ({\n children,\n sx,\n scrollbarPostion = 10\n}: {\n children: React.ReactNode,\n sx?: SxProps<Theme>,\n scrollbarPostion?: number\n}) => {\n const theme = useTheme();\n const contentRef = React.useRef<HTMLDivElement>(null);\n const context = React.useContext(EliceLayoutContext);\n\n if (!context) {\n throw new Error(\"EliceLayout components must be used within an EliceLayout provider.\");\n }\n\n const { isScrollActive, setIsScrollActive, enableScrollTracking } = context;\n const [hasScroll, setHasScroll] = React.useState(false);\n const scrollTopRef = React.useRef(0);\n const scrollBarRef = React.useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n if (!enableScrollTracking) return;\n\n const element = contentRef.current;\n if (!element) return;\n\n const handleScroll = () => {\n setIsScrollActive(element.scrollTop > 10);\n };\n\n element.addEventListener('scroll', handleScroll);\n\n return () => {\n element.removeEventListener('scroll', handleScroll);\n };\n }, [enableScrollTracking, setIsScrollActive]);\n\n // ✅ 2. 스크롤 위치 계산용 useEffect (커스텀 스크롤바용)\n React.useEffect(() => {\n const el = contentRef.current;\n if (!el) return;\n\n const updateScrollBar = () => {\n const { scrollTop, scrollHeight, clientHeight } = el;\n\n // 상태로 관리하지 않고 직접 반영\n scrollTopRef.current = scrollTop;\n\n const thumbHeight = (clientHeight / scrollHeight) * clientHeight;\n const top = (scrollTop / scrollHeight) * clientHeight;\n\n if (scrollBarRef.current) {\n scrollBarRef.current.style.height = `${thumbHeight}px`;\n scrollBarRef.current.style.top = `${top}px`;\n }\n\n setHasScroll(scrollHeight > clientHeight);\n };\n\n el.addEventListener('scroll', updateScrollBar);\n\n requestAnimationFrame(() => {\n if (el.scrollHeight > el.clientHeight) {\n el.scrollTop = 1; // 👉 살짝 움직여줌\n el.scrollTop = 0; // 👉 바로 다시 원위치\n updateScrollBar(); // 👉 thumb도 즉시 업데이트\n }\n });\n\n return () => el.removeEventListener('scroll', updateScrollBar);\n }, []);\n\n return (\n <Stack\n sx={{\n position: 'relative',\n width: '100%',\n height: '100%',\n }}\n >\n <ContentContainerInner\n ref={contentRef as any}\n theme={theme}\n flex={1}\n sx={{\n ...sx,\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n '&::-webkit-scrollbar': { display: 'none' },\n }}\n >\n {children}\n {enableScrollTracking && hasScroll && !isScrollActive && (\n <ScrollMoreButton>\n <ScrollMoreIcon size={32} color=\"white\" bgOpacity={0.5} />\n </ScrollMoreButton>\n )}\n </ContentContainerInner>\n\n {/* 커스텀 스크롤바 */}\n {hasScroll && (\n <div\n style={{\n position: 'absolute',\n top: 0,\n right: `${-1 * scrollbarPostion}px`,\n width: '0.5rem',\n height: '100%',\n backgroundColor: '#eee',\n borderRadius: '0.25rem',\n }}\n >\n <div\n ref={scrollBarRef}\n style={{\n width: '100%',\n backgroundColor: theme.palette.primary.main,\n borderRadius: '0.25rem',\n position: 'absolute',\n transition: 'top 0.01s linear',\n }}\n />\n </div>\n )}\n </Stack>\n );\n}\nexport const Subtitle = ({ children, alignment = \"left\", justifyContent = \"flex-start\", sx }:\n {\n children: React.ReactNode;\n alignment?: Alignment;\n justifyContent?: string;\n sx?: SxProps<Theme>\n }) => {\n const context = React.useContext(EliceLayoutContext);\n if (!context) {\n throw new Error(\"EliceLayout components must be used within an EliceLayout provider.\");\n }\n const { isScrollActive, enableScrollTracking } = context;\n\n return (\n <SubtitleContainer\n isSticky={enableScrollTracking && isScrollActive}\n alignment={alignment}\n justifyContent={justifyContent}\n sx={sx}\n >\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child) && child.type === MuiTypography) {\n return React.cloneElement(child, {\n variant: child.props.variant || 'h5',\n ...child.props\n });\n }\n return child;\n })}\n </SubtitleContainer>\n );\n}\n\nconst ContentInner = styled(Stack) <{ alignment: Alignment; justifyContent: string }>`\n flex: 1;\n width: 100%;\n min-height: 0;\n display: flex;\n text-align: ${({ alignment }) => alignment};\n justify-content: ${({ justifyContent }) => justifyContent};\n`;\nexport const Content = ({\n children,\n alignment = \"left\",\n justifyContent = \"flex-start\",\n sx,\n}: {\n children: React.ReactNode;\n alignment?: Alignment;\n justifyContent?: string;\n sx?: SxProps<Theme>\n}) => {\n return (\n <ContentInner alignment={alignment} justifyContent={justifyContent} sx={sx}>\n {children}\n </ContentInner>\n )\n}\n\nconst FooterContainerInner = styled(Stack)`\n height: 4rem;\n width: 100%;\n padding: 0.75rem 0;\n align-items: center;\n justify-content: space-between;\n flex-direction: row;\n`;\nexport const FooterContainer = ({ children, sx }: { children: React.ReactNode, sx?: SxProps<Theme> }) => {\n return <FooterContainerInner sx={sx}>{children}</FooterContainerInner>;\n}\nexport const FooterPaging = LayoutFooterPaging;\nexport const FooterSubmit = LayoutFooterSubmit;\n\nconst MainContainer = styled(Stack) <{ isMiniTablet: boolean; backgroundImage?: string; backgroundColor?: string }>`\n width: 100%;\n height: 100vh;\n justify-content: center;\n align-items: center;\n display: flex;\n flex-direction: column;\n padding: ${({ isMiniTablet }) => (isMiniTablet ? \"0 1.25rem\" : \"0 2.5rem\")};\n box-sizing: border-box;\n position: relative;\n background-image: ${({ backgroundImage }) => (backgroundImage ? `url(${backgroundImage})` : \"none\")};\n background-size: cover;\n background-position: center;\n background-color: ${({ backgroundColor }) => backgroundColor ?? \"#fff\"};\n overflow-y: hidden;\n`;\n\nconst SubtitleContainer = styled(Stack) <{ isSticky: boolean; alignment: Alignment; justifyContent: string }>`\n height: 5rem;\n width: 100%;\n padding: 1.25rem 2.5rem;\n display: flex;\n align-items: ${({ alignment }) => alignment};\n justify-content: ${({ justifyContent }) => justifyContent};\n background-color: ${({ isSticky }) => (isSticky ? \"#fff\" : \"none\")};\n position: ${({ isSticky }) => (isSticky ? \"sticky\" : \"relative\")};\n top: ${({ isSticky }) => (isSticky ? \"0\" : \"auto\")};\n left: 0;\n z-index: 10;\n transition: all 0.2s ease-in-out;\n box-shadow: ${({ isSticky }) => (isSticky ? \"0 0.125rem 0.3125rem rgba(0, 0, 0, 0.1)\" : \"none\")};\n`;\n\n\nconst ScrollMoreButton = styled(Button)`\n position: absolute;\n bottom: 1.25rem;\n right: 2.875rem;\n border-radius: 50%;\n min-width: 2.25rem;\n height: 2.25rem;\n padding: 0;\n z-index: 20;\n`;\n\n","import {\n Layout,\n HeaderContainer,\n HeaderTitle as LayoutHeaderTitle,\n HeaderSubTitle,\n ContentContainer,\n Content,\n Subtitle,\n FooterContainer,\n FooterPaging,\n FooterSubmit,\n} from './Layout';\n\nexport {\n Layout,\n HeaderContainer,\n HeaderSubTitle,\n ContentContainer,\n Content,\n FooterContainer,\n FooterPaging,\n FooterSubmit,\n Box,\n Stack,\n Typography,\n} from './Layout';\n\nexport const EliceLayout = Object.assign(Layout, {\n HeaderContainer,\n HeaderTitle: LayoutHeaderTitle,\n HeaderSubTitle,\n Subtitle,\n ContentContainer,\n Content,\n FooterContainer,\n FooterPaging,\n FooterSubmit,\n});\n\nexport type { EliceLayoutProps } from './Layout';\n","import React from 'react';\nimport { Box, Typography, SxProps, Theme, useTheme } from '@mui/material';\nimport BookIcon from '@mui/icons-material/Book';\nimport { useAIDTMediaQuery } from '../../hooks';\nimport { EliceLayout } from '../layout';\n\nexport interface HeaderTitleProps {\n title: string;\n breadcrumbItems?: string[];\n icon?: React.ReactNode;\n type?: 'breadcrumb';\n backgroundColor?: string;\n sx?: SxProps<Theme>;\n}\n\nconst HeaderTitle = ({\n title,\n breadcrumbItems,\n icon,\n type = 'breadcrumb',\n backgroundColor,\n sx,\n ...rest\n}: HeaderTitleProps): JSX.Element => {\n const theme = useTheme();\n const { isNotebook, isTablet } = useAIDTMediaQuery();\n\n if (isTablet) {\n const baseSx = {\n backgroundColor: `${backgroundColor || theme.palette.primary.main} !important`,\n };\n const mergedSx =\n sx !== undefined\n ? Array.isArray(sx)\n ? [baseSx, ...sx]\n : [baseSx, sx]\n : baseSx;\n return (\n <EliceLayout.HeaderTitle sx={mergedSx} {...rest}>\n {title}\n </EliceLayout.HeaderTitle>\n );\n }\n\n\n return (\n <Box\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n p={2}\n bgcolor=\"white\"\n borderBottom=\"1px solid #e0e0e0\"\n sx={{\n flexWrap: 'nowrap',\n whiteSpace: 'nowrap',\n gap: 1,\n ...sx,\n }}\n >\n {/* Left: Main Title Area */}\n <Box\n display=\"flex\"\n alignItems=\"center\"\n gap={1.5}\n sx={{ flex: '0 0 auto' }}\n >\n {icon ? (\n icon\n ) : (\n <BookIcon\n sx={{\n fontSize: '1.5rem',\n color: '#7c3aed',\n }}\n />\n )}\n <Typography\n variant=\"h1\"\n fontWeight=\"bold\"\n color=\"primary.main\"\n sx={{\n whiteSpace: 'nowrap',\n overflow: 'visible',\n textOverflow: 'unset',\n }}\n >\n {title}\n </Typography>\n </Box>\n\n {/* Right: Breadcrumb Area (Conditional Rendering) */}\n {!isNotebook && breadcrumbItems && breadcrumbItems.length > 0 && (\n <Box\n sx={{\n flex: '1 1 auto',\n justifyContent: 'flex-end',\n minWidth: 0,\n display: 'flex',\n alignItems: 'center',\n gap: 0.5,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n }}\n >\n <Typography\n variant=\"caption\"\n fontWeight=\"normal\"\n color=\"text.secondary\"\n sx={{\n fontSize: {\n xs: '0.75rem',\n sm: '0.8125rem',\n md: '0.875rem',\n },\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n minWidth: 0,\n }}\n >\n {breadcrumbItems.join(' | ')}\n </Typography>\n </Box>\n )}\n </Box>\n );\n};\n\nexport default HeaderTitle;\n\n\n","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M11 18h2v-2h-2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4\"\n}), 'HelpOutline');","import React from 'react';\nimport { Box, Stack, Typography, SxProps, Theme, useTheme } from '@mui/material';\nimport HelpOutlineIcon from '@mui/icons-material/HelpOutline';\nimport { EliceBadge } from '../badge';\nimport { useAIDTMediaQuery } from '../../hooks';\n\nexport interface InnerHeaderProps {\n title: string;\n showQuestionIcon?: boolean;\n stepNumber?: number;\n badgeLabel?: string;\n sx?: SxProps<Theme>;\n}\n\nconst InnerHeader = ({\n title,\n showQuestionIcon = false,\n stepNumber,\n badgeLabel,\n sx,\n}: InnerHeaderProps): JSX.Element => {\n const theme = useTheme();\n const { isTablet } = useAIDTMediaQuery();\n\n // 우선순위: badgeLabel > showQuestionIcon > stepNumber\n const containerBaseSx: SxProps<Theme> = {\n width: '100%',\n mx: 'auto',\n minHeight: isTablet ? '3.2rem' : '4rem',\n backgroundColor: 'transparent',\n paddingLeft: isTablet ? '1rem' : '1.875rem',\n paddingRight: isTablet ? '1rem' : '1.875rem',\n py: isTablet ? '0.5rem' : '1rem',\n margin: 0,\n };\n\n const mergedContainerSx: SxProps<Theme> =\n sx !== undefined\n ? [containerBaseSx, ...(Array.isArray(sx) ? sx : [sx])]\n : containerBaseSx;\n\n const gap = isTablet ? '0.75rem' : '1rem';\n const iconSize = isTablet ? '1.25rem' : '1.5rem';\n\n // Mode 1: Badge Label Mode\n if (badgeLabel) {\n return (\n <Box\n display=\"flex\"\n alignItems=\"flex-start\"\n gap={gap}\n sx={mergedContainerSx}\n >\n <Stack\n sx={{\n display: 'flex',\n height: '100%',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <EliceBadge\n label={badgeLabel}\n color=\"primary\"\n />\n </Stack>\n <Typography\n variant=\"h2\"\n color=\"text.primary\"\n sx={{\n fontWeight: 600,\n lineHeight: 1.4,\n mt: { xs: 0.3, md: 0.2 },\n flex: 1,\n wordBreak: 'keep-all',\n whiteSpace: 'normal',\n }}\n >\n {title}\n </Typography>\n </Box>\n );\n }\n\n // Mode 2: Question Icon Mode\n if (showQuestionIcon) {\n return (\n <Box\n display=\"flex\"\n gap={gap}\n sx={mergedContainerSx}\n >\n <Stack\n sx={{\n display: 'flex',\n height: '100%',\n alignItems: 'center',\n justifyContent: 'center',\n mt: isTablet ? '0.2rem' : '0.6rem'\n }}\n >\n <Box\n sx={{\n width: iconSize,\n height: iconSize,\n display: 'flex',\n flexShrink: 0,\n }}\n >\n <HelpOutlineIcon\n sx={{\n fontSize: iconSize,\n color: '#7c3aed',\n }}\n />\n </Box>\n </Stack>\n <Typography\n variant=\"h2\"\n color=\"text.primary\"\n sx={{\n fontWeight: 600,\n lineHeight: 1.4,\n mt: { xs: 0.3, md: 0.2 },\n flex: 1,\n wordBreak: 'keep-all',\n whiteSpace: 'normal',\n }}\n >\n {title}\n </Typography>\n </Box>\n );\n }\n\n // Mode 3: Step Number Mode or Title Only\n const stepGap = isTablet ? '0.75rem' : '1rem';\n return (\n <Box\n display=\"flex\"\n gap={stepGap}\n sx={mergedContainerSx}\n >\n {stepNumber && (\n <Box\n sx={{\n width: iconSize,\n height: iconSize,\n borderRadius: '50%',\n backgroundColor: '#7c3aed',\n color: 'white',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: isTablet ? '0.8125rem' : '0.875rem',\n fontWeight: 'bold',\n flexShrink: 0,\n mt: isTablet ? '0.2rem' : '0.6rem'\n }}\n >\n {stepNumber}\n </Box>\n )}\n <Typography\n variant=\"h2\"\n color=\"text.primary\"\n sx={{\n fontWeight: 600,\n lineHeight: 1.4,\n mt: { xs: 0.3, md: 0.2 },\n flex: 1,\n wordBreak: 'keep-all',\n whiteSpace: 'normal',\n fontSize: isTablet\n ? theme.typography.h2.fontSize\n : theme.typography.h2?.fontSize,\n }}\n >\n {title}\n </Typography>\n </Box>\n );\n};\n\nexport default InnerHeader;\n","import styled from '@emotion/styled';\nimport {\n Stack,\n ToggleButton,\n ToggleButtonGroup,\n useTheme,\n} from '@mui/material';\n\nimport {\n SelectedCheckbox,\n SelectedRadio,\n UnselectedCheckbox,\n UnselectedRadio,\n} from '../../icons';\nimport {\n gray100Color,\n gray300Color,\n textQuaternaryColor,\n textTeriaryColor,\n} from '../tokenColorTemporary';\n\nimport type { ToggleButtonGroupProps } from '@mui/material';\nimport type { Dispatch, ReactNode, SetStateAction } from 'react';\n\nconst EliceToggleButton = styled(ToggleButton)`\n border: none;\n border-radius: 1.25rem !important;\n`;\n\nexport interface EliceSelectionProps extends ToggleButtonGroupProps {\n type: 'checkbox' | 'radio';\n options: { value: string; content: ReactNode | string }[];\n value: string[];\n setValue: Dispatch<SetStateAction<string[]>>;\n limitSelectCount?: number;\n}\n\nconst EliceSelection = ({\n type,\n options,\n value,\n setValue,\n orientation = 'vertical',\n disabled,\n limitSelectCount = 1,\n}: EliceSelectionProps) => {\n const theme = useTheme();\n\nconst handleSelectionChange = (\n event: React.MouseEvent<HTMLElement>,\n newValue: string | null | string[]\n) => {\n if (!newValue || disabled) return;\n\n setValue(prevState => {\n const newValuesArray = Array.isArray(newValue) ? newValue : [newValue];\n const updatedValues: string[] = [...prevState];\n newValuesArray.forEach(value => {\n if (!updatedValues.includes(value)) {\n updatedValues.push(value);\n } else {\n updatedValues.splice(updatedValues.indexOf(value), 1);\n }\n });\n if (updatedValues.length > limitSelectCount) {\n return updatedValues.slice(-limitSelectCount);\n }\n return updatedValues;\n });\n};\n\n return (\n <ToggleButtonGroup\n orientation={orientation}\n value={value}\n exclusive={type === 'radio'}\n onChange={handleSelectionChange}\n sx={{\n backgroundColor: 'transparent',\n gap: '1rem',\n '> button': {\n padding: '0 !important',\n '&:hover': {\n backgroundColor: 'transparent !important',\n },\n },\n '.Mui-selected': {\n backgroundColor: 'transparent !important',\n boxShadow: 'none !important',\n },\n }}\n >\n {options.map(option => {\n const isSelected = value.includes(option.value);\n return (\n <EliceToggleButton key={option.value} value={option.value}>\n <Stack\n direction=\"row\"\n border=\"1px solid\"\n borderColor={\n isSelected ? theme.palette.secondary.main : gray300Color\n }\n borderRadius=\"1.25rem\"\n padding=\"1rem\"\n gap=\"0.75rem\"\n height=\"4rem\"\n width=\"22rem\"\n maxWidth=\"100%\"\n boxSizing=\"border-box\"\n alignItems=\"center\"\n bgcolor={disabled ? gray100Color : '#ffffff'}\n >\n {isSelected && type === 'checkbox' && (\n <SelectedCheckbox color={theme.palette.secondary.main} />\n )}\n {!isSelected && type === 'checkbox' && (\n <UnselectedCheckbox color={gray300Color} />\n )}\n {isSelected && type === 'radio' && (\n <SelectedRadio color={theme.palette.secondary.main} />\n )}\n {!isSelected && type === 'radio' && (\n <UnselectedRadio color={gray300Color} />\n )}\n <Stack\n color={\n isSelected\n ? theme.palette.secondary.main\n : disabled\n ? textQuaternaryColor\n : textTeriaryColor\n }\n fontSize=\"1.375rem\"\n fontWeight={700}\n >\n {option.content}\n </Stack>\n </Stack>\n </EliceToggleButton>\n );\n })}\n </ToggleButtonGroup>\n );\n};\n\nexport default EliceSelection;\n","import { useTheme } from '@mui/material';\ninterface CorrectType {\n size?: number,\n}\n\nconst Correct = ({ size = 318 }: CorrectType) => {\n const theme = useTheme();\n return (\n <svg\n width={size + 1}\n height={size}\n viewBox={`0 0 ${size + 1} ${size}`}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g filter=\"url(#filter0_d_596_8851)\">\n <path\n d=\"M137.318 306L308.306 184.519C310.039 175.324 311 165.836 311 156.143C311 72.4571 243.274 4.61822 159.727 4.61821C76.1807 4.6182 8.45452 72.4571 8.45451 156.143C8.4545 232.197 64.3925 295.155 137.318 306Z\"\n fill=\"#31A54C\"\n />\n <path\n d=\"M305 156.143C305 164.614 304.235 172.935 302.836 181.045L135.835 299.693C66.9728 288.285 14.4545 228.363 14.4545 156.143C14.4545 75.7613 79.5038 10.6182 159.727 10.6182C239.951 10.6182 305 75.7614 305 156.143Z\"\n stroke={`${theme.palette.primary.main ?? '#9BCAFF'}`}\n stroke-width=\"12\"\n />\n </g>\n <path\n d=\"M237.364 154.727C237.364 111.922 202.545 77.0911 159.728 77.0911C116.922 77.0911 82.0915 111.911 82.0915 154.727C82.0915 197.544 116.911 232.364 159.728 232.364C202.545 232.364 237.364 197.533 237.364 154.727ZM213.868 154.727C213.868 184.579 189.58 208.867 159.728 208.867C129.876 208.867 105.588 184.579 105.588 154.727C105.588 124.876 129.876 100.588 159.728 100.588C189.58 100.588 213.868 124.876 213.868 154.727Z\"\n fill=\"white\"\n stroke=\"white\"\n stroke-width=\"4\"\n />\n <path\n d=\"M143.208 284.443C166.87 215.233 237.326 174.982 308.673 185.469L223.146 245.734L137.618 306C138.921 298.786 140.756 291.589 143.208 284.443Z\"\n fill={`${theme.palette.primary.main ?? '#9BCAFF'}`}\n />\n <defs>\n <filter\n id=\"filter0_d_596_8851\"\n x=\"0.45459\"\n y=\"0.618164\"\n width=\"318.545\"\n height=\"317.382\"\n filterUnits=\"userSpaceOnUse\"\n color-interpolation-filters=\"sRGB\"\n >\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset dy=\"4\" />\n <feGaussianBlur stdDeviation=\"4\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"BackgroundImageFix\"\n result=\"effect1_dropShadow_596_8851\"\n />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect1_dropShadow_596_8851\"\n result=\"shape\"\n />\n </filter>\n </defs>\n </svg>\n );\n};\n\nexport default Correct;\n","import { useTheme } from '@mui/material';\n\ninterface IncorrectType {\n size?: number,\n}\n\nconst Incorrect = ({ size = 318 }: IncorrectType) => {\n const theme = useTheme();\n return (\n <svg\n width={size + 1}\n height={size}\n viewBox={`0 0 ${size + 1} ${size}`}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g filter=\"url(#filter0_d_596_8855)\">\n <path\n d=\"M137.318 306L308.306 184.519C310.039 175.324 311 165.836 311 156.143C311 72.4571 243.274 4.61822 159.727 4.61821C76.1807 4.6182 8.45452 72.457 8.45451 156.143C8.4545 232.197 64.3925 295.155 137.318 306Z\"\n fill=\"url(#paint0_linear_596_8855)\"\n />\n <path\n d=\"M305 156.143C305 164.614 304.235 172.935 302.836 181.045L135.835 299.693C66.9728 288.285 14.4545 228.363 14.4545 156.143C14.4545 75.7613 79.5038 10.6182 159.727 10.6182C239.951 10.6182 305 75.7614 305 156.143Z\"\n stroke={`${theme.palette.primary.main ?? '#9BCAFF'}`}\n stroke-width=\"12\"\n />\n </g>\n <mask\n id=\"path-3-outside-1_596_8855\"\n maskUnits=\"userSpaceOnUse\"\n x=\"87.957\"\n y=\"80.8818\"\n width=\"148\"\n height=\"148\"\n fill=\"black\"\n >\n <rect fill=\"white\" x=\"87.957\" y=\"80.8818\" width=\"148\" height=\"148\" />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M93.957 209.334L107.479 222.882L161.84 168.418L216.199 222.878L229.72 209.331L175.362 154.87L229.716 100.414L216.194 86.8664L161.84 141.323L107.483 86.8629L93.9613 100.41L148.319 154.87L93.957 209.334Z\"\n />\n </mask>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M93.957 209.334L107.479 222.882L161.84 168.418L216.199 222.878L229.72 209.331L175.362 154.87L229.716 100.414L216.194 86.8664L161.84 141.323L107.483 86.8629L93.9613 100.41L148.319 154.87L93.957 209.334Z\"\n fill=\"white\"\n />\n <path\n d=\"M107.479 222.882L110.31 225.708L107.479 228.544L104.648 225.708L107.479 222.882ZM93.957 209.334L91.1259 212.16L88.3055 209.334L91.1259 206.509L93.957 209.334ZM161.84 168.418L159.009 165.592L161.84 162.755L164.672 165.592L161.84 168.418ZM216.199 222.878L219.03 225.704L216.199 228.541L213.367 225.704L216.199 222.878ZM229.72 209.331L232.551 206.505L235.372 209.331L232.551 212.157L229.72 209.331ZM175.362 154.87L172.531 157.696L169.711 154.87L172.531 152.044L175.362 154.87ZM229.716 100.414L232.547 97.588L235.368 100.414L232.547 103.239L229.716 100.414ZM216.194 86.8664L213.363 84.0406L216.194 81.2042L219.025 84.0406L216.194 86.8664ZM161.84 141.323L164.672 144.149L161.84 146.985L159.009 144.149L161.84 141.323ZM107.483 86.8629L104.652 84.0371L107.483 81.2007L110.314 84.0371L107.483 86.8629ZM93.9613 100.41L91.1302 103.236L88.3098 100.41L91.1302 97.5845L93.9613 100.41ZM148.319 154.87L151.15 152.044L153.97 154.87L151.15 157.696L148.319 154.87ZM104.648 225.708L91.1259 212.16L96.7881 206.509L110.31 220.056L104.648 225.708ZM164.672 171.243L110.31 225.708L104.648 220.056L159.009 165.592L164.672 171.243ZM213.367 225.704L159.009 171.243L164.672 165.592L219.03 220.053L213.367 225.704ZM232.551 212.157L219.03 225.704L213.367 220.053L226.889 206.505L232.551 212.157ZM178.193 152.044L232.551 206.505L226.889 212.157L172.531 157.696L178.193 152.044ZM232.547 103.239L178.193 157.696L172.531 152.044L226.885 97.588L232.547 103.239ZM219.025 84.0406L232.547 97.588L226.885 103.239L213.363 89.6921L219.025 84.0406ZM159.009 138.497L213.363 84.0406L219.025 89.6921L164.672 144.149L159.009 138.497ZM110.314 84.0371L164.672 138.497L159.009 144.149L104.652 89.6887L110.314 84.0371ZM91.1302 97.5845L104.652 84.0371L110.314 89.6887L96.7924 103.236L91.1302 97.5845ZM145.488 157.696L91.1302 103.236L96.7924 97.5845L151.15 152.044L145.488 157.696ZM91.1259 206.509L145.488 152.044L151.15 157.696L96.7881 212.16L91.1259 206.509Z\"\n fill=\"white\"\n mask=\"url(#path-3-outside-1_596_8855)\"\n />\n <path\n d=\"M143.208 284.443C166.87 215.233 237.326 174.982 308.673 185.469L137.618 306C138.921 298.786 140.756 291.589 143.208 284.443Z\"\n fill={`${theme.palette.primary.main ?? '#9BCAFF'}`}\n />\n <defs>\n <filter\n id=\"filter0_d_596_8855\"\n x=\"0.454468\"\n y=\"0.618164\"\n width=\"318.546\"\n height=\"317.382\"\n filterUnits=\"userSpaceOnUse\"\n color-interpolation-filters=\"sRGB\"\n >\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset dy=\"4\" />\n <feGaussianBlur stdDeviation=\"4\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"BackgroundImageFix\"\n result=\"effect1_dropShadow_596_8855\"\n />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect1_dropShadow_596_8855\"\n result=\"shape\"\n />\n </filter>\n <linearGradient\n id=\"paint0_linear_596_8855\"\n x1=\"160.002\"\n y1=\"190.844\"\n x2=\"233.1\"\n y2=\"305.89\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset=\"0.1\" stop-color=\"#F84A4B\" />\n <stop offset=\"0.94\" stop-color=\"#C34648\" />\n </linearGradient>\n </defs>\n </svg>\n );\n};\n\nexport default Incorrect;\n","import { Stack, SxProps } from '@mui/material';\n\nimport Correct from './Correct';\nimport Incorrect from './Incorrect';\n\nexport interface EliceAnswerFeedbackProps {\n isCorrect?: boolean;\n sx?: SxProps;\n size?: number;\n correctComponent?: React.ReactNode;\n incorrectComponent?: React.ReactNode;\n}\n\nconst AnswerFeedback = ({\n isCorrect,\n sx,\n size,\n correctComponent,\n incorrectComponent,\n}: EliceAnswerFeedbackProps) => {\n return (\n <Stack\n position=\"absolute\"\n zIndex={99999}\n height=\"100%\"\n width=\"100%\"\n top={0}\n left={0}\n alignItems=\"center\"\n justifyContent=\"center\"\n sx={{ ...sx }}\n >\n {isCorrect ? (\n correctComponent ?? <Correct size={size} />\n ) : (\n incorrectComponent ?? <Incorrect size={size} />\n )}\n </Stack>\n );\n};\n\nexport default AnswerFeedback;","import styled from '@emotion/styled';\nimport {\n Stack,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n useTheme,\n} from '@mui/material';\n\nimport { EliceDottedPagination } from '../dotted-pagination';\nimport {\n gray50Color,\n gray200Color,\n main300Color,\n main400Color,\n textTeriaryColor,\n} from '../tokenColorTemporary';\n\nimport type { DottedPaginationProps } from '../dotted-pagination/DottedPagination';\n\nexport type EiceTableProps = {\n type?: 'default' | 'single';\n rows: object[];\n columnNames: string[];\n tableTitleProps?: any;\n tableValueProps?: any;\n pagination?: DottedPaginationProps;\n};\n\nconst StyledScrollBarStack = styled(Stack)<{\n scrollbarTrackColor?: string;\n scrollbarThumbColor: string;\n scrollbarHoverColor: string;\n}>`\n width: fit-content;\n max-width: 100%;\n position: relative;\n overflow-x: auto;\n box-sizing: border-box;\n border-radius: 1.375rem;\n gap: 0;\n\n ::-webkit-scrollbar {\n height: 0.25rem;\n }\n\n /* Track */\n ::-webkit-scrollbar-track {\n background: ${props => props.scrollbarTrackColor ?? gray200Color};\n border-radius: 0.5rem;\n }\n\n /* Handle */\n ::-webkit-scrollbar-thumb {\n background: ${props => props.scrollbarThumbColor ?? main300Color};\n border-radius: 0.5rem;\n }\n\n /* Handle on hover */\n ::-webkit-scrollbar-thumb:hover {\n background: ${props => props.scrollbarHoverColor ?? main400Color};\n }\n`;\n\nconst EliceTable = ({\n type = 'default',\n rows,\n columnNames,\n tableTitleProps,\n tableValueProps,\n pagination,\n}: EiceTableProps) => {\n const theme = useTheme();\n if (type === 'default') {\n return (\n <Stack gap=\"2.5rem\" alignItems=\"center\">\n <StyledScrollBarStack\n scrollbarThumbColor={theme.palette.primary.main}\n scrollbarHoverColor={theme.palette.secondary.main}\n border={`1px solid ${gray50Color}`}\n >\n <Table>\n <TableHead\n style={{\n backgroundColor: theme.palette.primary.light,\n }}\n >\n <TableRow>\n {columnNames.map((name: string, index: number) => {\n return (\n <TableCell\n align=\"center\"\n style={{\n height: '3.625rem',\n minWidth: '13.5rem',\n padding: '1rem',\n boxSizing: 'border-box',\n borderBottom: `1px solid ${theme.palette.secondary.main}`,\n borderRight:\n index < columnNames.length - 1\n ? `1px solid ${theme.palette.secondary.main}`\n : 'none',\n fontSize: '1rem',\n fontWeight: 700,\n color: theme.palette.primary.dark,\n }}\n {...tableTitleProps}\n >\n {name}\n </TableCell>\n );\n })}\n </TableRow>\n </TableHead>\n <TableBody>\n {rows.map((row: object, index: number) => (\n <TableRow key={`row${index}`}>\n {Object.values(row).map((value: any, index: number) => {\n return (\n <TableCell\n component=\"th\"\n scope=\"row\"\n align=\"center\"\n style={{\n height: '3.625rem',\n minWidth: '13.5rem',\n padding: '1rem',\n boxSizing: 'border-box',\n borderBottom: `1px solid ${theme.palette.secondary.main}`,\n borderRight:\n index < Object.values(row).length - 1\n ? `1px solid ${theme.palette.secondary.main}`\n : 'none',\n fontSize: '1rem',\n fontWeight: 500,\n color: textTeriaryColor,\n }}\n {...tableValueProps}\n >\n {value}\n </TableCell>\n );\n })}\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </StyledScrollBarStack>\n {pagination && <EliceDottedPagination {...pagination} />}\n </Stack>\n );\n } else {\n return (\n <Stack\n direction=\"row\"\n boxSizing=\"border-box\"\n borderRadius=\"1.375rem\"\n border={`1px solid ${theme.palette.secondary.main}`}\n overflow=\"hidden\"\n width=\"fit-content\"\n >\n <Stack\n gap={0}\n style={{\n backgroundColor: theme.palette.primary.light,\n }}\n >\n {columnNames.map((name: string, index: number) => {\n return (\n <TableCell\n align=\"center\"\n style={{\n height: '3.625rem',\n minWidth: '13.5rem',\n padding: '1rem',\n boxSizing: 'border-box',\n borderRight: `1px solid ${theme.palette.secondary.main}`,\n borderBottom:\n index < columnNames.length - 1\n ? `1px solid ${theme.palette.secondary.main}`\n : 'none',\n fontSize: '1rem',\n fontWeight: 700,\n color: theme.palette.primary.dark,\n }}\n {...tableTitleProps}\n >\n {name}\n </TableCell>\n );\n })}\n </Stack>\n <Stack gap={0}>\n {Object.values(rows[0]).map((value: any, index: number) => {\n return (\n <TableCell\n component=\"th\"\n scope=\"row\"\n align=\"center\"\n style={{\n height: '3.625rem',\n minWidth: '13.5rem',\n padding: '1rem',\n boxSizing: 'border-box',\n borderBottom:\n index < Object.values(rows[0]).length - 1\n ? `1px solid ${theme.palette.secondary.main}`\n : 'none',\n fontSize: '1rem',\n fontWeight: 500,\n color: textTeriaryColor,\n }}\n {...tableValueProps}\n >\n {value}\n </TableCell>\n );\n })}\n </Stack>\n </Stack>\n );\n }\n};\n\nexport default EliceTable;\n","import React from 'react';\nimport {\n Box,\n TextField,\n Typography,\n Table,\n TableBody,\n TableRow,\n TableCell,\n useTheme,\n alpha,\n} from '@mui/material';\nimport { useAIDTMediaQuery } from '../../hooks';\n\nexport interface RowInfoTableProps {\n data: Array<{\n id: string;\n label: string | React.ReactNode;\n value: string;\n onChange: (value: string) => void;\n placeholder?: string;\n multiline?: boolean;\n rows?: number;\n }>;\n disabled?: boolean;\n borderColor?: string;\n labelBackgroundColor?: string;\n labelTextColor?: string;\n rowBorderColor?: string;\n rowBorderRightColor?: string;\n}\n\nconst RowInfoTable = ({\n data,\n disabled = false,\n borderColor,\n labelBackgroundColor,\n labelTextColor,\n rowBorderColor,\n rowBorderRightColor,\n}: RowInfoTableProps): JSX.Element => {\n const theme = useTheme();\n const { isTablet } = useAIDTMediaQuery();\n\n // 색상 계산 (primary 계열 기준, props로 오버라이드 가능)\n const primaryColor = theme.palette.primary.main;\n const finalBorderColor = borderColor || primaryColor;\n const finalLabelBackgroundColor =\n labelBackgroundColor || alpha(primaryColor, 0.1);\n const finalLabelTextColor = labelTextColor || primaryColor;\n const finalRowBorderColor = rowBorderColor || primaryColor;\n const finalRowBorderRightColor =\n rowBorderRightColor || alpha(primaryColor, 0.3);\n\n return (\n <Table\n sx={{\n width: '100%',\n tableLayout: 'fixed',\n border: `1px solid ${finalBorderColor}`,\n borderRadius: '4px',\n borderCollapse: 'separate',\n borderSpacing: 0,\n overflow: 'hidden',\n '& .MuiTableCell-root': {\n borderRight: `1px solid ${finalBorderColor}`,\n borderBottom: `1px solid ${finalBorderColor}`,\n },\n '& .MuiTableRow-root:last-of-type .MuiTableCell-root': {\n borderBottom: 'none',\n },\n '& .MuiTableCell-root:last-of-type': {\n borderRight: 'none',\n },\n }}\n >\n <TableBody>\n {data.map((row, index) => {\n const isMultiline =\n row.multiline !== undefined ? row.multiline : true;\n const actualRows = row.rows || 1;\n\n return (\n <TableRow\n key={row.id}\n sx={{\n borderRight: `1px solid ${finalRowBorderRightColor}`,\n borderLeft: `1px solid ${finalRowBorderColor}`,\n borderTop: `1px solid ${finalRowBorderColor}`,\n borderBottom:\n index < data.length - 1\n ? `1px solid ${finalRowBorderColor}`\n : 'none',\n }}\n >\n {/* 왼쪽 라벨 셀 */}\n <TableCell\n sx={{\n width: isTablet ? '35%' : '30%',\n backgroundColor: finalLabelBackgroundColor,\n padding: '0.5rem 1rem',\n verticalAlign: 'middle',\n textAlign: 'center',\n }}\n >\n {typeof row.label === 'string' ? (\n <Typography\n variant=\"subtitle1\"\n sx={{\n color: finalLabelTextColor,\n wordBreak: 'keep-all',\n whiteSpace: 'normal',\n }}\n >\n {row.label}\n </Typography>\n ) : (\n row.label\n )}\n </TableCell>\n\n {/* 오른쪽 입력 셀 */}\n <TableCell\n sx={{\n width: isTablet ? '85%' : '70%',\n backgroundColor: 'transparent',\n padding: '0.5rem',\n verticalAlign: 'middle',\n }}\n >\n <TextField\n fullWidth\n value={row.value}\n onChange={e => row.onChange(e.target.value)}\n placeholder={row.placeholder}\n disabled={disabled}\n multiline={isMultiline}\n minRows={actualRows}\n maxRows={actualRows > 1 ? actualRows : 2}\n variant=\"outlined\"\n sx={{\n '& .MuiOutlinedInput-root': {\n border: 'none',\n backgroundColor: '#fff',\n overflow: 'auto',\n '& fieldset': {\n border: 'none',\n },\n '&:hover fieldset': {\n border: 'none',\n },\n '&.Mui-focused fieldset': {\n border: 'none',\n },\n },\n '& .MuiInputBase-input': {\n color: '#1E1E1E',\n fontFamily: theme.typography.subtitle1.fontFamily,\n fontSize: theme.typography.subtitle1.fontSize,\n fontWeight: theme.typography.subtitle1.fontWeight,\n lineHeight: theme.typography.subtitle1.lineHeight,\n overflow: 'auto',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n overflowWrap: 'break-word',\n },\n }}\n />\n </TableCell>\n </TableRow>\n );\n })}\n </TableBody>\n </Table>\n );\n};\n\nexport default RowInfoTable;\n\n","import React from 'react';\nimport {\n Box,\n TextField,\n Typography,\n Table,\n TableBody,\n TableRow,\n TableCell,\n TableHead,\n useTheme,\n alpha,\n} from '@mui/material';\n\nexport interface ColInfoTableProps {\n data: Array<{\n id: string;\n label: string | React.ReactNode;\n value: string;\n onChange: (value: string) => void;\n placeholder?: string;\n multiline?: boolean;\n rows?: number;\n }>;\n disabled?: boolean;\n borderColor?: string;\n headerBackgroundColor?: string;\n headerTextColor?: string;\n}\n\nconst ColInfoTable = ({\n data,\n disabled = false,\n borderColor,\n headerBackgroundColor,\n headerTextColor,\n}: ColInfoTableProps): JSX.Element => {\n const theme = useTheme();\n\n // 색상 계산 (primary 계열 기준, props로 오버라이드 가능)\n const primaryColor = theme.palette.primary.main;\n const finalBorderColor = borderColor || primaryColor;\n const finalHeaderBackgroundColor =\n headerBackgroundColor || alpha(primaryColor, 0.1);\n const finalHeaderTextColor = headerTextColor || primaryColor;\n\n return (\n <Table\n sx={{\n width: '100%',\n border: `1px solid ${finalBorderColor}`,\n borderRadius: '4px',\n borderCollapse: 'separate',\n borderSpacing: 0,\n overflow: 'hidden',\n '& .MuiTableCell-root': {\n borderRight: `1px solid ${finalBorderColor} !important`,\n borderBottom: `1px solid ${finalBorderColor}`,\n },\n '& .MuiTableRow-root:last-of-type .MuiTableCell-root': {\n borderBottom: 'none',\n },\n '& .MuiTableCell-root:last-of-type': {\n borderRight: 'none !important',\n },\n }}\n >\n <TableHead>\n <TableRow>\n {data.map((row, index) => (\n <TableCell\n key={`header-${row.id}`}\n sx={{\n backgroundColor: finalHeaderBackgroundColor,\n padding: '1.3rem',\n textAlign: 'center',\n verticalAlign: 'middle',\n borderBottom: `1px solid ${finalBorderColor} !important`,\n }}\n >\n {typeof row.label === 'string' ? (\n <Typography\n variant=\"subtitle1\"\n sx={{\n color: finalHeaderTextColor,\n }}\n >\n {row.label}\n </Typography>\n ) : (\n row.label\n )}\n </TableCell>\n ))}\n </TableRow>\n </TableHead>\n <TableBody>\n <TableRow>\n {data.map((row, index) => (\n <TableCell\n key={`input-${row.id}`}\n sx={{\n backgroundColor: 'transparent',\n padding: '1rem',\n verticalAlign: 'middle',\n ...(row.multiline === false && {\n overflow: 'visible',\n }),\n }}\n >\n <TextField\n fullWidth\n value={row.value}\n onChange={e => row.onChange(e.target.value)}\n placeholder={row.placeholder}\n disabled={disabled}\n multiline={row.multiline !== false}\n minRows={row.rows || 5}\n maxRows={row.multiline !== false ? undefined : 5}\n variant=\"outlined\"\n sx={{\n '& .MuiOutlinedInput-root': {\n border: 'none',\n backgroundColor: '#fff',\n overflow: 'auto',\n '& fieldset': {\n border: 'none',\n },\n '&:hover fieldset': {\n border: 'none',\n },\n '&.Mui-focused fieldset': {\n border: 'none',\n },\n },\n '& .MuiInputBase-input': {\n color: '#000',\n fontFamily: theme.typography.subtitle1.fontFamily,\n fontSize: theme.typography.subtitle1.fontSize,\n fontWeight: theme.typography.subtitle1.fontWeight,\n lineHeight: theme.typography.subtitle1.lineHeight,\n padding: '0.5rem',\n WebkitTextFillColor: '#000',\n overflow: 'auto',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n overflowWrap: 'break-word',\n },\n }}\n />\n </TableCell>\n ))}\n </TableRow>\n </TableBody>\n </Table>\n );\n};\n\nexport default ColInfoTable;\n\n","import React from 'react';\nimport { TextField, TextFieldProps, useTheme } from '@mui/material';\n\ninterface EliceTextareaProps extends Omit<TextFieldProps, 'variant'> {\n variant?: 'default' | 'textarea';\n maxLength?: number;\n}\n\nconst EliceTextarea = ({\n variant = 'default',\n rows = 5,\n placeholder = 'Placeholder...',\n multiline = true,\n maxLength,\n value,\n onChange,\n disabled,\n ...rest\n}: EliceTextareaProps) => {\n const theme = useTheme();\n\n if (variant === 'textarea') {\n return (\n <TextField\n value={value}\n onChange={onChange}\n placeholder={placeholder}\n disabled={disabled}\n multiline={multiline}\n rows={rows}\n inputProps={{ maxLength }}\n sx={{\n width: '100%',\n '& .MuiOutlinedInput-root': {\n backgroundColor: theme.palette.background.paper,\n width: '100%',\n borderRadius: '8px',\n '& fieldset': {\n borderColor: theme.palette.divider,\n },\n '&:hover fieldset': {\n borderColor: `${theme.palette.primary.main}80`, // primary에 opacity 50%\n },\n '&.Mui-focused fieldset': {\n borderColor: theme.palette.primary.main,\n },\n },\n '& .MuiInputBase-input': {\n fontSize: theme.typography.subtitle1?.fontSize || '1.3rem',\n fontWeight: theme.typography.subtitle1?.fontWeight || 500,\n lineHeight: theme.typography.subtitle1?.lineHeight || 1.48,\n color: theme.palette.text.primary,\n },\n '& .MuiInputBase-input::placeholder': {\n color: theme.palette.text.secondary,\n fontSize: theme.typography.subtitle1?.fontSize || '1.3rem',\n },\n }}\n {...rest}\n />\n );\n }\n\n // default variant - 기존 스타일 유지\n return (\n <TextField\n value={value}\n onChange={onChange}\n multiline\n rows={rows}\n placeholder={placeholder}\n disabled={disabled}\n sx={{\n width: '100%',\n '& .MuiOutlinedInput-root': {\n backgroundColor: theme.palette.background.paper,\n borderRadius: '1.5rem',\n padding: '1.375rem 1.5rem',\n '& fieldset': {\n borderColor: theme.palette.divider,\n },\n '&:hover fieldset': {\n borderColor: `${theme.palette.primary.main}80`, // primary에 opacity 50%\n },\n '&.Mui-focused fieldset': {\n borderColor: theme.palette.primary.main,\n },\n },\n '& .MuiInputBase-input': {\n fontSize: theme.typography.subtitle1?.fontSize || '1.375rem',\n fontWeight: theme.typography.subtitle1?.fontWeight || 700,\n lineHeight: theme.typography.subtitle1?.lineHeight || 1.925,\n color: theme.palette.text.primary,\n '&::placeholder': {\n color: theme.palette.text.secondary,\n },\n },\n }}\n {...rest}\n />\n );\n};\n\nexport default EliceTextarea;\n","export const TYPOGRAPHY_FONT_FAMILY_NAMES = Object.freeze({\n pretendard: 'Pretendard, Arial, sans-serif',\n elice: 'EliceDXNeolli',\n});\n\nexport type TypographyFontFamilyType =\n keyof typeof TYPOGRAPHY_FONT_FAMILY_NAMES;\n","\nconst DEFAULT_TYPOGRAPHY_STYLES = {\n h1: {\n fontSize: '2rem',\n fontWeight: 800,\n lineHeight: '1.18',\n [`@media (max-width:768px)`]: {\n fontSize: '1.5rem',\n lineHeight: '1.20',\n },\n [`@media (max-height:600px)`]: {\n fontSize: '1.5rem',\n lineHeight: '1.20',\n },\n },\n h2: {\n fontSize: '1.75rem',\n fontWeight: 800,\n lineHeight: '1.2',\n [`@media (max-width:768px)`]: {\n fontSize: '1.3rem',\n lineHeight: '1.27',\n },\n [`@media (max-height:600px)`]: {\n fontSize: '1.3rem',\n lineHeight: '1.27',\n },\n },\n h3: {\n fontSize: '1.5rem',\n fontWeight: 800,\n lineHeight: '1.2',\n [`@media (max-width:768px)`]: {\n fontSize: '1.25rem',\n lineHeight: '1.32',\n },\n [`@media (max-height:600px)`]: {\n fontSize: '1.25rem',\n lineHeight: '1.32',\n },\n },\n h4: {\n fontSize: '1.375rem',\n fontWeight: 800,\n lineHeight: '1.24',\n [`@media (max-width:768px)`]: {\n fontSize: '1.125rem',\n lineHeight: '1.32',\n },\n [`@media (max-height:600px)`]: {\n fontSize: '1.125rem',\n lineHeight: '1.32',\n },\n },\n h5: {\n fontSize: '1.25rem',\n fontWeight: 800,\n lineHeight: '1.28',\n [`@media (max-width:768px)`]: {\n fontSize: '1rem',\n lineHeight: '1.28',\n },\n [`@media (max-height:600px)`]: {\n fontSize: '1rem',\n lineHeight: '1.28',\n },\n },\n h6: {\n fontSize: '1.125rem',\n fontWeight: 800,\n lineHeight: '1.24',\n [`@media (max-width:768px)`]: {\n fontSize: '0.9375rem',\n lineHeight: '1.24',\n },\n [`@media (max-height:600px)`]: {\n fontSize: '0.9375rem',\n lineHeight: '1.24',\n },\n },\n subtitle1: {\n fontSize: '1.3rem',\n fontWeight: 700,\n lineHeight: '1.4',\n [`@media (max-width:768px)`]: {\n fontSize: '1.1rem',\n lineHeight: '1.32',\n },\n [`@media (max-height:600px)`]: {\n fontSize: '1.1rem',\n lineHeight: '1.32',\n },\n },\n subtitle2: {\n fontSize: '1.125rem',\n fontWeight: 700,\n lineHeight: '1.32',\n [`@media (max-width:768px)`]: {\n fontSize: '1rem',\n lineHeight: '1.24',\n },\n [`@media (max-height:600px)`]: {\n fontSize: '1rem',\n lineHeight: '1.24',\n },\n },\n body1: {\n fontSize: '1rem',\n fontWeight: 500,\n lineHeight: '1.48',\n [`@media (max-width:768px)`]: {\n fontSize: '0.9375rem',\n lineHeight: '1.56',\n },\n [`@media (max-height:600px)`]: {\n fontSize: '0.9375rem',\n lineHeight: '1.56',\n },\n },\n body2: {\n fontSize: '0.875rem',\n fontWeight: 500,\n lineHeight: '1.4',\n [`@media (max-width:768px)`]: {\n fontSize: '0.8125rem',\n lineHeight: '1.4',\n },\n [`@media (max-height:600px)`]: {\n fontSize: '0.8125rem',\n lineHeight: '1.4',\n },\n },\n caption: {\n fontSize: 'clamp(0.5rem, 0.75rem, 0.875rem)',\n fontWeight: 500,\n lineHeight: '1.4',\n [`@media (max-width:768px)`]: {\n fontSize: 'clamp(0.4375rem, 0.6875rem, 0.75rem)',\n lineHeight: '1.32',\n },\n [`@media (max-height:600px)`]: {\n fontSize: 'clamp(0.4375rem, 0.6875rem, 0.75rem)',\n lineHeight: '1.32',\n },\n },\n buttoninput: {\n fontSize: '1.25rem', // body1과 동일\n fontWeight: 700,\n lineHeight: '1.4',\n [`@media (max-width:768px)`]: {\n fontSize: '1.25rem',\n },\n [`@media (max-height:600px)`]: {\n fontSize: '1rem',\n },\n },\n pagination: {\n fontSize: 'clamp(0.625rem, 0.875rem, 1rem)', // body2와 동일하게 작게\n fontWeight: 500,\n lineHeight: '1.4',\n [`@media (max-width:768px)`]: {\n fontSize: 'clamp(0.5rem, 0.8125rem, 0.875rem)',\n lineHeight: '1.4',\n },\n [`@media (max-height:600px)`]: {\n fontSize: 'clamp(0.5rem, 0.8125rem, 0.875rem)',\n lineHeight: '1.4',\n },\n },\n textarea: {\n fontSize: '1.3rem',\n fontWeight: 500,\n lineHeight: '1.48',\n [`@media (max-width:768px)`]: {\n fontSize: 'clamp(0.625rem, 0.9375rem, 1rem)',\n lineHeight: '1.56',\n },\n [`@media (max-height:600px)`]: {\n fontSize: 'clamp(0.625rem, 0.9375rem, 1rem)',\n lineHeight: '1.56',\n },\n },\n};\n\nconst CLAMP_TYPOGRAPHY_STYLES = {\n h1: {\n fontSize: 'clamp(1.5rem, 2rem, 2.5rem)',\n fontWeight: 800,\n lineHeight: '1.18',\n [`@media (max-width:768px)`]: {\n fontSize: '1.5rem',\n lineHeight: '1.20',\n },\n [`@media (max-height:600px)`]: {\n fontSize: '1.5rem',\n lineHeight: '1.20',\n },\n },\n h2: {\n fontSize: 'clamp(1.5rem, 1.75rem, 2rem)',\n fontWeight: 800,\n lineHeight: '1.2',\n [`@media (max-width:768px)`]: {\n fontSize: '1.5rem',\n lineHeight: '1.27',\n },\n [`@media (max-height:600px)`]: {\n fontSize: '1.5rem',\n lineHeight: '1.27',\n },\n },\n h3: {\n fontSize: 'clamp(1.25rem, 1.5rem, 1.75rem)',\n fontWeight: 800,\n lineHeight: '1.2',\n [`@media (max-width:768px)`]: {\n fontSize: '1.25rem',\n lineHeight: '1.32',\n },\n [`@media (max-height:600px)`]: {\n fontSize: '1.25rem',\n lineHeight: '1.32',\n },\n },\n h4: {\n fontSize: 'clamp(1.125rem, 1.375rem, 1.5rem)',\n fontWeight: 800,\n lineHeight: '1.24',\n [`@media (max-width:768px)`]: {\n fontSize: '1.125rem',\n lineHeight: '1.32',\n },\n [`@media (max-height:600px)`]: {\n fontSize: '1.125rem',\n lineHeight: '1.32',\n },\n },\n h5: {\n fontSize: 'clamp(1rem, 1.25rem, 1.375rem)',\n fontWeight: 800,\n lineHeight: '1.28',\n [`@media (max-width:768px)`]: {\n fontSize: '1rem',\n lineHeight: '1.28',\n },\n [`@media (max-height:600px)`]: {\n fontSize: '1rem',\n lineHeight: '1.28',\n },\n },\n h6: {\n fontSize: 'clamp(0.9375rem, 1.125rem, 1.25rem)',\n fontWeight: 800,\n lineHeight: '1.24',\n [`@media (max-width:768px)`]: {\n fontSize: '0.9375rem',\n lineHeight: '1.24',\n },\n [`@media (max-height:600px)`]: {\n fontSize: '0.9375rem',\n lineHeight: '1.24',\n },\n },\n subtitle1: {\n fontSize: 'clamp(1.1rem, 1.3rem, 1.5rem)',\n fontWeight: 800,\n lineHeight: '1.4',\n [`@media (max-width:768px)`]: {\n fontSize: '1.1rem',\n lineHeight: '1.32',\n },\n [`@media (max-height:600px)`]: {\n fontSize: '1.1rem',\n lineHeight: '1.32',\n },\n },\n subtitle2: {\n fontSize: 'clamp(1rem, 1.125rem, 1.25rem)',\n fontWeight: 800,\n lineHeight: '1.32',\n [`@media (max-width:768px)`]: {\n fontSize: '1rem',\n lineHeight: '1.24',\n },\n [`@media (max-height:600px)`]: {\n fontSize: '1rem',\n lineHeight: '1.24',\n },\n },\n body1: {\n fontSize: 'clamp(0.9375rem, 1rem, 1.125rem)',\n fontWeight: 500,\n lineHeight: '1.48',\n [`@media (max-width:768px)`]: {\n fontSize: '0.9375rem',\n lineHeight: '1.56',\n },\n [`@media (max-height:600px)`]: {\n fontSize: '0.9375rem',\n lineHeight: '1.56',\n },\n },\n body2: {\n fontSize: 'clamp(0.8125rem, 0.875rem, 1rem)',\n fontWeight: 500,\n lineHeight: '1.4',\n [`@media (max-width:768px)`]: {\n fontSize: '0.8125rem',\n lineHeight: '1.4',\n },\n [`@media (max-height:600px)`]: {\n fontSize: '0.8125rem',\n lineHeight: '1.4',\n },\n },\n caption: {\n fontSize: 'clamp(0.5rem, 0.75rem, 0.875rem)',\n fontWeight: 500,\n lineHeight: '1.4',\n [`@media (max-width:768px)`]: {\n fontSize: 'clamp(0.4375rem, 0.6875rem, 0.75rem)',\n lineHeight: '1.32',\n },\n [`@media (max-height:600px)`]: {\n fontSize: 'clamp(0.4375rem, 0.6875rem, 0.75rem)',\n lineHeight: '1.32',\n },\n },\n buttoninput: {\n fontSize: 'clamp(0.75rem, 1rem, 1.125rem)', // body1과 동일\n fontWeight: 700,\n lineHeight: '1.48',\n [`@media (max-width:768px)`]: {\n fontSize: 'clamp(0.625rem, 0.9375rem, 1rem)',\n lineHeight: '1.56',\n },\n [`@media (max-height:600px)`]: {\n fontSize: 'clamp(0.625rem, 0.9375rem, 1rem)',\n lineHeight: '1.56',\n },\n },\n pagination: {\n fontSize: 'clamp(0.625rem, 0.875rem, 1rem)', // body2와 동일하게 작게\n fontWeight: 500,\n lineHeight: '1.4',\n [`@media (max-width:768px)`]: {\n fontSize: 'clamp(0.5rem, 0.8125rem, 0.875rem)',\n lineHeight: '1.4',\n },\n [`@media (max-height:600px)`]: {\n fontSize: 'clamp(0.5rem, 0.8125rem, 0.875rem)',\n lineHeight: '1.4',\n },\n },\n textarea: {\n fontSize: '1.3rem',\n fontWeight: 500,\n lineHeight: '1.48',\n [`@media (max-width:768px)`]: {\n fontSize: 'clamp(0.625rem, 0.9375rem, 1rem)',\n lineHeight: '1.56',\n },\n [`@media (max-height:600px)`]: {\n fontSize: 'clamp(0.625rem, 0.9375rem, 1rem)',\n lineHeight: '1.56',\n },\n },\n};\n\nconst FLUID_TYPOGRAPHY_STYLES = {\n h1: {\n fontSize: 'var(--step-2)',\n fontWeight: 800,\n lineHeight: '1.18',\n [`@media (max-width:768px)`]: {\n fontSize: 'var(--step-1)',\n lineHeight: '1.20',\n },\n [`@media (max-height:600px)`]: {\n fontSize: 'var(--step-1)',\n lineHeight: '1.20',\n },\n },\n h2: {\n fontSize: 'var(--step-1)',\n fontWeight: 800,\n lineHeight: '1.2',\n [`@media (max-width:768px)`]: {\n fontSize: 'var(--step-1)',\n lineHeight: '1.27',\n },\n [`@media (max-height:600px)`]: {\n fontSize: 'var(--step-1)',\n lineHeight: '1.27',\n },\n },\n h3: {\n fontSize: 'var(--step-0)',\n fontWeight: 800,\n lineHeight: '1.2',\n [`@media (max-width:768px)`]: {\n fontSize: 'var(--step--1)',\n lineHeight: '1.32',\n },\n [`@media (max-height:600px)`]: {\n fontSize: 'var(--step--1)',\n lineHeight: '1.32',\n },\n },\n h4: {\n fontSize: 'var(--step--1)',\n fontWeight: 800,\n lineHeight: '1.24',\n [`@media (max-width:768px)`]: {\n fontSize: 'var(--step--1)',\n lineHeight: '1.32',\n },\n [`@media (max-height:600px)`]: {\n fontSize: 'var(--step--1)',\n lineHeight: '1.32',\n },\n },\n h5: {\n fontSize: 'var(--step--1)',\n fontWeight: 800,\n lineHeight: '1.28',\n [`@media (max-width:768px)`]: {\n fontSize: 'var(--step-0)',\n lineHeight: '1.28',\n },\n [`@media (max-height:600px)`]: {\n fontSize: 'var(--step-0)',\n lineHeight: '1.28',\n },\n },\n h6: {\n fontSize: 'var(--step--1)',\n fontWeight: 800,\n lineHeight: '1.24',\n [`@media (max-width:768px)`]: {\n fontSize: 'var(--step--1)',\n lineHeight: '1.24',\n },\n [`@media (max-height:600px)`]: {\n fontSize: 'var(--step--1)',\n lineHeight: '1.24',\n },\n },\n subtitle1: {\n fontSize: 'var(--step--1)',\n fontWeight: 800,\n lineHeight: '1.4',\n [`@media (max-width:768px)`]: {\n fontSize: 'var(--step--1)',\n lineHeight: '1.32',\n },\n [`@media (max-height:600px)`]: {\n fontSize: 'var(--step--1)',\n lineHeight: '1.32',\n },\n },\n subtitle2: {\n fontSize: 'var(--step-0)',\n fontWeight: 800,\n lineHeight: '1.32',\n [`@media (max-width:768px)`]: {\n fontSize: 'var(--step-0)',\n lineHeight: '1.24',\n },\n [`@media (max-height:600px)`]: {\n fontSize: 'var(--step-0)',\n lineHeight: '1.24',\n },\n },\n body1: {\n fontSize: 'var(--step-0)',\n fontWeight: 500,\n lineHeight: '1.48',\n [`@media (max-width:768px)`]: {\n fontSize: 'var(--step--1)',\n lineHeight: '1.56',\n },\n [`@media (max-height:600px)`]: {\n fontSize: 'var(--step--1)',\n lineHeight: '1.56',\n },\n },\n body2: {\n fontSize: 'var(--step--1)',\n fontWeight: 500,\n lineHeight: '1.4',\n [`@media (max-width:768px)`]: {\n fontSize: 'var(--step--1)',\n lineHeight: '1.4',\n },\n [`@media (max-height:600px)`]: {\n fontSize: 'var(--step--1)',\n lineHeight: '1.4',\n },\n },\n caption: {\n fontSize: 'clamp(0.5rem, 0.75rem, 0.875rem)',\n fontWeight: 500,\n lineHeight: '1.4',\n [`@media (max-width:768px)`]: {\n fontSize: 'clamp(0.4375rem, 0.6875rem, 0.75rem)',\n lineHeight: '1.32',\n },\n [`@media (max-height:600px)`]: {\n fontSize: 'clamp(0.4375rem, 0.6875rem, 0.75rem)',\n lineHeight: '1.32',\n },\n },\n buttoninput: {\n fontSize: 'clamp(0.75rem, 1rem, 1.125rem)', // body1과 동일\n fontWeight: 700,\n lineHeight: '1.48',\n [`@media (max-width:768px)`]: {\n fontSize: 'clamp(0.625rem, 0.9375rem, 1rem)',\n lineHeight: '1.56',\n },\n [`@media (max-height:600px)`]: {\n fontSize: 'clamp(0.625rem, 0.9375rem, 1rem)',\n lineHeight: '1.56',\n },\n },\n pagination: {\n fontSize: 'clamp(0.625rem, 0.875rem, 1rem)', // body2와 동일하게 작게\n fontWeight: 500,\n lineHeight: '1.4',\n [`@media (max-width:768px)`]: {\n fontSize: 'clamp(0.5rem, 0.8125rem, 0.875rem)',\n lineHeight: '1.4',\n },\n [`@media (max-height:600px)`]: {\n fontSize: 'clamp(0.5rem, 0.8125rem, 0.875rem)',\n lineHeight: '1.4',\n },\n },\n textarea: {\n fontSize: 'var(--step-1)',\n fontWeight: 500,\n lineHeight: '1.48',\n [`@media (max-width:768px)`]: {\n fontSize: 'var(--step-0)',\n lineHeight: '1.56',\n },\n [`@media (max-height:600px)`]: {\n fontSize: 'var(--step-0)',\n lineHeight: '1.56',\n },\n },\n};\n\nexport const TYPOGRAPHY_STYLES_MAP = {\n Default: DEFAULT_TYPOGRAPHY_STYLES,\n Fluid: FLUID_TYPOGRAPHY_STYLES,\n Clamp: CLAMP_TYPOGRAPHY_STYLES,\n};\n","import { TYPOGRAPHY_FONT_FAMILY_NAMES } from './typographyFontFamily';\nimport { TYPOGRAPHY_STYLES_MAP } from './TypographyType';\n\nexport const createAIDTTypography = (\n fontFamily: keyof typeof TYPOGRAPHY_FONT_FAMILY_NAMES,\n typographyType?: keyof typeof TYPOGRAPHY_STYLES_MAP\n) => ({\n fontFamily:\n TYPOGRAPHY_FONT_FAMILY_NAMES[fontFamily] ||\n TYPOGRAPHY_FONT_FAMILY_NAMES['pretendard'],\n '@font-face': [\n {\n fontFamily: 'Pretendard',\n fontStyle: 'normal',\n fontWeight: 900,\n fontDisplay: 'swap',\n src: `url('https://cdnjs.cloudflare.com/ajax/libs/pretendard/1.3.9/static/pretendard.css') format('woff2')`,\n },\n {\n fontFamily: 'Pretendard',\n fontStyle: 'normal',\n fontWeight: 700,\n fontDisplay: 'swap',\n src: `url('https://cdnjs.cloudflare.com/ajax/libs/pretendard/1.3.9/static/Pretendard-ExtraBold.min.css') format('woff2')`,\n },\n {\n fontFamily: 'Pretendard',\n fontStyle: 'normal',\n fontWeight: 500,\n fontDisplay: 'swap',\n src: `url('https://cdnjs.cloudflare.com/ajax/libs/pretendard/1.3.9/static/Pretendard-Medium.min.css') format('woff2')`,\n },\n {\n fontFamily: 'EliceDXNeolli',\n fontStyle: 'normal',\n fontWeight: 900,\n fontDisplay: 'swap',\n src: `url(https://cdn.jsdelivr.net/gh/fonts-archive/EliceDXNeolli/EliceDXNeolli-Bold.woff2) format('woff2')`,\n },\n {\n fontFamily: 'EliceDXNeolli',\n fontStyle: 'normal',\n fontWeight: 700,\n fontDisplay: 'swap',\n src: `url(https://cdn.jsdelivr.net/gh/fonts-archive/EliceDXNeolli/EliceDXNeolli-Bold.woff2) format('woff2')`,\n },\n {\n fontFamily: 'EliceDXNeolli',\n fontStyle: 'normal',\n fontWeight: 500,\n fontDisplay: 'swap',\n src: `url(https://cdn.jsdelivr.net/gh/fonts-archive/EliceDXNeolli/EliceDXNeolli-Medium.woff2) format('woff2')`,\n },\n ],\n ...(TYPOGRAPHY_STYLES_MAP[typographyType ?? 'Default']),\n});\n","import React from 'react';\nimport { Typography, useTheme } from '@mui/material';\n\nimport { TYPOGRAPHY_FONT_FAMILY_NAMES } from '../../typography';\n\nimport type { TypographyProps } from '@mui/material';\nimport type { TypographyFontFamilyType } from '../../typography';\n\ninterface AIDTTypographyProps extends TypographyProps {\n fontFamily?: TypographyFontFamilyType;\n fontWeight?: number;\n fontSize?: string;\n lineHeight?: number;\n}\n\nconst AIDTTypography: React.FC<AIDTTypographyProps> = ({\n fontFamily = 'pretendard',\n fontWeight,\n fontSize,\n lineHeight,\n children,\n ...props\n}) => {\n const theme = useTheme();\n\n return (\n <Typography\n {...props}\n sx={{\n fontFamily: fontFamily\n ? TYPOGRAPHY_FONT_FAMILY_NAMES[fontFamily] ||\n theme.typography.fontFamily\n : theme.typography.fontFamily,\n fontWeight: fontWeight || theme.typography.body1.fontWeight,\n fontSize: fontSize || theme.typography.body1.fontSize,\n lineHeight: lineHeight || theme.typography.body1.lineHeight,\n }}\n >\n {children}\n </Typography>\n );\n};\n\nexport default AIDTTypography;\n","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)([/*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14\"\n}, \"0\"), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 10h-2v2H9v-2H7V9h2V7h1v2h2z\"\n}, \"1\")], 'ZoomIn');","import { useState } from 'react';\nimport { Box, Dialog, DialogContent, IconButton } from '@mui/material';\nimport ZoomInIcon from '@mui/icons-material/ZoomIn';\n\ninterface EliceImageProps {\n src: string;\n alt: string;\n maxWidth?: string | { xs?: string; md?: string };\n minWidth?: string;\n borderRadius?: string;\n justifyContent?:\n | 'flex-start'\n | 'center'\n | 'flex-end'\n | {\n xs?: 'flex-start' | 'center' | 'flex-end';\n md?: 'flex-start' | 'center' | 'flex-end';\n };\n iconBackgroundColor?: string;\n iconHoverBackgroundColor?: string;\n}\n\nconst EliceImage = ({\n src,\n alt,\n maxWidth = { xs: '100%', md: '25%' },\n minWidth,\n borderRadius = '14px',\n justifyContent = { xs: 'flex-start', md: 'center' },\n iconBackgroundColor = 'rgba(0, 0, 0, 0.5)',\n iconHoverBackgroundColor,\n}: EliceImageProps): JSX.Element => {\n const [isPreviewOpen, setIsPreviewOpen] = useState(false);\n\n const handleOpenPreview = () => {\n setIsPreviewOpen(true);\n };\n\n const handleClosePreview = () => {\n setIsPreviewOpen(false);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n handleOpenPreview();\n }\n };\n\n return (\n <>\n <Box\n sx={{\n width: '100%',\n display: 'flex',\n justifyContent:\n typeof justifyContent === 'object'\n ? justifyContent\n : { xs: 'flex-start', md: justifyContent },\n alignItems: 'center',\n }}\n >\n <Box\n sx={{\n position: 'relative',\n display: 'inline-block',\n width: '100%',\n maxWidth:\n typeof maxWidth === 'object'\n ? maxWidth\n : { xs: '100%', md: maxWidth },\n minWidth,\n }}\n >\n <Box\n role=\"button\"\n tabIndex={0}\n onClick={handleOpenPreview}\n onKeyDown={handleKeyDown}\n sx={{\n outline: 'none',\n cursor: 'pointer',\n position: 'relative',\n width: '100%',\n display: 'block',\n }}\n >\n <Box\n component=\"img\"\n src={src}\n alt={alt}\n sx={{\n width: '100%',\n height: 'auto',\n borderRadius,\n display: 'block',\n }}\n />\n {/* 우측 상단 돋보기 아이콘 */}\n <IconButton\n onClick={e => {\n e.stopPropagation();\n handleOpenPreview();\n }}\n sx={{\n position: 'absolute',\n top: { xs: '0.5rem', md: '0.75rem' },\n right: { xs: '0.5rem', md: '0.75rem' },\n backgroundColor: iconBackgroundColor,\n color: 'white',\n width: { xs: '2rem', md: '2.5rem' },\n height: { xs: '2rem', md: '2.5rem' },\n '&:hover': {\n backgroundColor:\n iconHoverBackgroundColor || iconBackgroundColor,\n },\n transition: 'background-color 0.2s ease',\n }}\n aria-label=\"이미지 확대\"\n >\n <ZoomInIcon\n sx={{\n fontSize: { xs: '1rem', md: '1.25rem' },\n }}\n />\n </IconButton>\n </Box>\n </Box>\n </Box>\n\n {/* 확대 이미지 Dialog */}\n <Dialog\n open={isPreviewOpen}\n onClose={handleClosePreview}\n maxWidth=\"md\"\n fullWidth\n >\n <DialogContent sx={{ p: 0 }}>\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <Box\n component=\"img\"\n src={src}\n alt={`${alt} 확대`}\n sx={{\n maxWidth: '100%',\n height: 'auto',\n padding: '1rem',\n borderRadius,\n display: 'block',\n }}\n />\n </Box>\n </DialogContent>\n </Dialog>\n </>\n );\n};\n\nexport default EliceImage;\n","import React, { forwardRef } from 'react';\nimport { Button, type ButtonProps, Typography } from '@mui/material';\nimport { colors } from '../../tokens';\nimport useAIDTMediaQuery from '../../hooks/useAIDTMediaQuery';\n\nexport interface EliceSubButtonProps extends ButtonProps {\n children?: React.ReactNode;\n}\n\nconst EliceSubButton = forwardRef<HTMLButtonElement, EliceSubButtonProps>(\n ({ children, variant = 'contained', disabled, ...rest }, ref) => {\n const { isTablet } = useAIDTMediaQuery();\n\n return (\n <Button\n ref={ref}\n variant={variant}\n disabled={disabled}\n sx={{\n width: isTablet ? '100%' : 'fit-content',\n height: '52px',\n borderRadius: isTablet ? 0 : '16px',\n padding: '8px 12px',\n backgroundColor: colors.bluepurple[100],\n fontFamily: 'inherit',\n display: 'flex',\n justifyContent: 'flex-start',\n }}\n {...rest}\n >\n <Typography variant=\"buttoninput\" sx={{ color: `${colors.bluepurple[950]} !important` }}>\n {children}\n </Typography>\n </Button>\n );\n }\n);\n\nexport default EliceSubButton;\n","import { Theme, useTheme } from \"@mui/material\";\nimport styled from \"@emotion/styled\";\nimport React from \"react\";\n\nexport type BaseInputType = \"normal\" | \"area\"\nexport interface BaseInputProps {\n value: string;\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n placeholder?: string;\n children?: React.ReactNode;\n isDisabled?: boolean;\n inputType: BaseInputType;\n\n containerStyle?: React.CSSProperties;\n inputStyle?: React.CSSProperties;\n underlineStyle?: React.CSSProperties;\n}\n\nconst BaseInputContainer = styled.div<{ type: BaseInputType, borderColor: string }>`\n display: flex;\n align-items: center;\n gap: 8px;\n width: 100%;\n border: ${({ type, borderColor }) => type !== \"normal\" ? `1px solid ${borderColor}` : \"none\"};\n border-radius: ${({ type }) => type !== \"normal\" ? \"1.5rem\" : \"none\"};\n padding: ${({ type }) => type !== \"normal\" ? \"1.375rem 1.5rem\" : \"none\"};\n`;\n\nconst BaseInputContent = styled.div`\n display: flex;\n flex-direction: column;\n flex: 1;\n`;\n\nconst InputText = styled.input`\n border: none;\n outline: none;\n font-size: 16px;\n padding: 8px 0;\n width: 100%;\n background: transparent;\n`;\n\nconst UnderLineDivider = styled.div<{ theme: Theme }>`\n width: 100%;\n height: 2px;\n background-color: ${({ theme }) => theme.palette.primary.main};\n`;\n\n// ✅ 합성 컴포넌트 패턴 적용\nconst BaseInput = Object.assign(\n ({\n value,\n onChange,\n placeholder = \"Enter text...\",\n children,\n isDisabled = false,\n inputType = \"normal\",\n containerStyle,\n inputStyle,\n underlineStyle,\n }: BaseInputProps) => {\n const theme = useTheme();\n\n return (\n <BaseInputContainer\n type={inputType}\n borderColor={theme.palette.secondary.main}\n style={containerStyle}\n >\n {children && <div>{children}</div>}\n <BaseInputContent>\n <InputText\n disabled={isDisabled}\n value={value}\n onChange={onChange}\n placeholder={placeholder}\n style={inputStyle}\n />\n <UnderLineDivider theme={theme} style={underlineStyle} />\n </BaseInputContent>\n </BaseInputContainer>\n );\n },\n {\n LeftElement: ({ children }: { children?: React.ReactNode }) => <>{children}</>,\n }\n);\n\n\nexport default BaseInput;\n","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M14.59 8 12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8\"\n}), 'HighlightOff');","import HighlightOffIcon from '@mui/icons-material/HighlightOff';\nimport { Box, Modal, Stack } from '@mui/material';\n\nimport type { ModalProps, SxProps } from '@mui/material';\n\nexport type EliceModalProps = {\n open: boolean;\n handleClose: () => void;\n iconClose?: boolean;\n fontFamily?: string;\n sx?: SxProps;\n} & ModalProps;\n\nconst EliceModal = (props: EliceModalProps) => {\n const {\n open,\n handleClose,\n children,\n iconClose = false,\n sx = {},\n } = props;\n return (\n <Modal\n open={open}\n onClose={handleClose}\n aria-labelledby=\"modal-modal-title\"\n aria-describedby=\"modal-modal-description\"\n >\n <Box\n sx={[\n {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n maxWidth: '95vw',\n maxHeight: '95vh',\n minWidth: '80vw',\n bgcolor: '#F4F6FF',\n borderRadius: '2.6rem',\n padding: '2.4rem 3.2rem 2.4rem 3.2rem',\n outline: 'none',\n },\n sx,\n ] as any}\n >\n {iconClose && (\n <Stack\n display=\"flex\"\n position=\"relative\"\n justifyContent=\"flex-end\"\n zIndex={1200}\n alignItems=\"flex-end\"\n onClick={handleClose}\n >\n <HighlightOffIcon\n sx={{\n width: '2.7rem',\n height: '2.7rem',\n cursor: 'pointer',\n }}\n color=\"secondary\"\n />\n </Stack>\n )}\n {children}\n </Box>\n </Modal>\n );\n};\n\nexport default EliceModal;\n","const AssistantAvatar = (props: any) => {\n return (\n <svg\n width=\"36\"\n height=\"36\"\n viewBox=\"0 0 36 36\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <mask\n id=\"mask0_126_24810\"\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"36\"\n height=\"36\"\n >\n <circle cx=\"18\" cy=\"18\" r=\"18\" fill=\"#D9D9D9\" />\n </mask>\n <g mask=\"url(#mask0_126_24810)\">\n <circle cx=\"18\" cy=\"18\" r=\"18\" fill=\"#F1F1F6\" />\n <path\n d=\"M15.4502 31.1221C15.2243 30.7552 13.0394 28.6078 12.6163 28.4149C11.8395 27.4387 8.28283 20.9291 7.12702 20.387C5.73431 19.7348 2.52359 22.8981 3.24529 24.3084C3.41717 24.6434 7.38374 28.5483 8.71805 30.2285C11.325 33.5935 15.9846 31.9904 15.4502 31.1221Z\"\n fill=\"white\"\n />\n <path\n d=\"M7.1105 21.9956C7.14907 22.0177 7.1678 22.065 7.15127 22.108C6.27312 24.3701 4.01328 24.5838 3.99014 24.586C3.94056 24.5904 3.89648 24.553 3.89208 24.5034C3.88767 24.4538 3.92513 24.4097 3.97471 24.4053C3.99675 24.4031 6.14531 24.1971 6.98049 22.043C6.99922 21.9967 7.05101 21.9725 7.09838 21.9912C7.10279 21.9923 7.1061 21.9945 7.1094 21.9967L7.1105 21.9956Z\"\n fill=\"#CACACA\"\n />\n <path\n d=\"M12.1237 27.6481C12.1677 27.6547 12.2019 27.6921 12.2008 27.7384C12.1854 30.1646 10.1492 31.1684 10.1283 31.1783C10.0831 31.2004 10.0291 31.1805 10.0071 31.1353C9.98504 31.0902 10.0049 31.0362 10.05 31.0141C10.0699 31.0042 12.0047 30.0467 12.019 27.7373C12.019 27.6866 12.0598 27.647 12.1105 27.647C12.1149 27.647 12.1193 27.647 12.1237 27.647V27.6481Z\"\n fill=\"#CACACA\"\n />\n <path\n d=\"M5.41928 25.3143C5.42259 25.3022 5.4292 25.2912 5.43801 25.2802C5.47107 25.2416 5.52836 25.2383 5.56582 25.2703C6.96073 26.4701 9.61393 29.8715 9.63376 29.8957C9.66571 29.9343 9.6602 29.9916 9.62164 30.0235C9.58307 30.0555 9.52578 30.05 9.49383 30.0114C9.47399 29.9861 6.83072 26.598 5.44683 25.408C5.41928 25.3837 5.40936 25.3463 5.41928 25.3132V25.3143Z\"\n fill=\"#C2B4F9\"\n />\n <path\n d=\"M30.9088 35.8654C30.7788 34.5961 26.4728 28.3543 25.8084 27.2987C25.7666 26.836 25.6101 26.371 25.338 26.0372C24.6945 25.2461 21.9531 25.8289 21.2017 26.0945C20.2068 26.4459 19.0884 26.8723 18.4383 27.4618C18.4284 27.4519 18.4163 27.4431 18.4053 27.4343C18.3943 27.4442 18.3832 27.453 18.3722 27.4618C17.7221 26.8723 16.6038 26.4459 15.6088 26.0945C14.8574 25.8289 11.9078 22.6039 12.3067 33.9747C12.2913 35.6891 12.472 43.4217 13.1154 44.1611C14.1831 45.3896 17.2627 45.1747 17.5932 44.0134C17.7486 43.4702 17.7883 39.2458 17.7883 39.2458C17.7883 39.2458 17.9844 39.3119 18.4053 39.3119C18.8262 39.3119 19.0223 39.2458 19.0223 39.2458C19.0223 39.2458 19.0631 43.4702 19.2173 44.0134C19.5479 45.1747 22.6275 45.3896 23.6951 44.1611C24.3386 43.4206 24.5182 35.6891 24.5039 33.9747C25.0361 35.9745 26.1808 37.7198 26.4409 37.992C27.535 39.1379 31.0652 37.3959 30.9088 35.8665V35.8654Z\"\n fill=\"white\"\n />\n <path\n d=\"M22.1792 32.669C22.1329 32.2789 21.9103 31.9671 21.5677 31.8139C21.1324 31.6189 20.7622 31.7522 20.4647 31.858C20.3358 31.9043 20.2135 31.9484 20.1 31.9605C19.797 31.9935 19.4951 31.8679 19.1326 31.7016L19.1282 31.6994C18.6566 31.4834 18.1685 31.2597 17.5934 31.4294C17.3565 31.4999 17.1758 31.6211 17.016 31.7291C16.8629 31.8327 16.7417 31.9142 16.6084 31.9285C16.4894 31.9418 16.41 31.912 16.28 31.8646C16.0971 31.7974 15.8459 31.7049 15.4768 31.7677C15.122 31.8283 14.8212 32.096 14.6912 32.4673C14.5557 32.8552 14.635 33.2805 14.8994 33.5769C15.2212 33.9372 15.7721 34.1487 16.4122 34.1575C16.431 34.1575 16.4497 34.1575 16.4684 34.1575C16.7957 34.1575 17.0954 34.1223 17.3862 34.087C17.6947 34.0507 18.0187 34.0121 18.3867 34.0132C18.9167 34.0143 19.3332 34.0562 19.699 34.0936C19.9315 34.1168 20.1518 34.1388 20.3711 34.1476C20.9341 34.1696 21.3682 34.0484 21.7351 33.7664C22.0558 33.5196 22.2299 33.0888 22.1803 32.669H22.1792Z\"\n fill=\"white\"\n />\n <path\n d=\"M16.4672 34.2489H16.4099C15.7455 34.2401 15.1692 34.0175 14.831 33.6374C14.5445 33.3168 14.4586 32.8573 14.6051 32.4375C14.7461 32.0354 15.0745 31.7445 15.4612 31.6784C15.8546 31.6123 16.1289 31.7125 16.3107 31.7797C16.4374 31.826 16.5002 31.8491 16.5983 31.8392C16.7085 31.8271 16.822 31.7511 16.9641 31.6552C17.1294 31.5439 17.3167 31.4183 17.5668 31.3434C18.175 31.1638 18.6774 31.3941 19.1645 31.6178C19.5203 31.7808 19.8112 31.902 20.0889 31.8712C20.1914 31.8602 20.3081 31.8183 20.4326 31.7731C20.729 31.6662 21.1345 31.5208 21.6039 31.7312C21.9763 31.8976 22.2187 32.2359 22.2683 32.659C22.3212 33.1096 22.1328 33.5724 21.7879 33.839C21.4034 34.1354 20.9505 34.2632 20.3643 34.239C20.1418 34.2302 19.9203 34.2081 19.6867 34.1839C19.3209 34.1475 18.9077 34.1057 18.3833 34.1046H18.3645C18.0097 34.1046 17.6979 34.142 17.3949 34.1773C17.0996 34.2126 16.7966 34.2489 16.465 34.2489H16.4672ZM15.7157 31.8381C15.6463 31.8381 15.5725 31.8436 15.4921 31.858C15.1703 31.913 14.896 32.1577 14.777 32.4981C14.6525 32.8551 14.7252 33.2452 14.9665 33.5162C15.2717 33.8578 15.7984 34.0583 16.4121 34.066H16.4672C16.7878 34.066 17.0853 34.0308 17.3729 33.9966C17.688 33.9591 18.0141 33.9217 18.3855 33.9217C18.9198 33.9228 19.3374 33.9646 19.7054 34.0021C19.9379 34.0252 20.1561 34.0473 20.3732 34.0561C20.9141 34.077 21.3284 33.9624 21.6777 33.6936C21.973 33.4655 22.135 33.0678 22.0887 32.6788C22.0468 32.3218 21.843 32.0365 21.5301 31.8965C21.1279 31.7169 20.7918 31.837 20.4955 31.9439C20.361 31.9924 20.2332 32.0376 20.1098 32.0508C19.787 32.086 19.4719 31.9571 19.0939 31.7841C18.6334 31.5726 18.1618 31.3566 17.6186 31.5175C17.396 31.5836 17.2208 31.7015 17.0666 31.8051C16.909 31.9108 16.7735 32.0023 16.6181 32.0188C16.4782 32.0343 16.3812 31.999 16.2479 31.9494C16.1146 31.9009 15.9438 31.837 15.7157 31.837V31.8381Z\"\n fill=\"#C2B4F9\"\n />\n <path\n d=\"M18.9727 32.052C19.3627 32.2305 19.7374 32.3869 20.1417 32.344C20.588 32.2966 20.9538 31.9605 21.4099 32.1655C21.9212 32.3947 21.9135 33.1417 21.4981 33.4612C21.1995 33.6915 20.8458 33.7819 20.3841 33.7631C19.8387 33.7411 19.2724 33.6309 18.3854 33.6287C17.6108 33.6265 17.0754 33.7808 16.4165 33.773C15.9074 33.7664 15.448 33.6144 15.1868 33.3213C14.8177 32.907 15.0733 32.2283 15.5427 32.1479C16.0474 32.0619 16.206 32.3594 16.6512 32.312C17.0632 32.268 17.3012 31.9187 17.7045 31.7997C18.143 31.6697 18.5199 31.8438 18.9738 32.052\"\n fill=\"#7953F5\"\n />\n <path\n d=\"M29.2726 34.2224C29.2384 34.2224 29.2054 34.2026 29.1899 34.1695C28.4341 32.5091 25.9109 29.175 25.8922 29.1485C25.8635 29.1067 25.8746 29.0505 25.9164 29.0218C25.9583 28.9932 26.0145 29.0042 26.0431 29.0461C26.0619 29.0725 28.5939 32.4198 29.3563 34.0946C29.3773 34.1398 29.3563 34.1938 29.3111 34.2147C29.299 34.2202 29.2858 34.2224 29.2737 34.2224H29.2726Z\"\n fill=\"#C2B4F9\"\n />\n <path\n d=\"M8.75773 28.8853C9.20618 28.4997 8.68832 27.4397 7.75177 26.5484C6.92871 25.7639 6.18277 25.7462 6.05386 26.2266C5.93376 26.6729 6.2621 27.3637 6.8637 28.0336C7.42783 28.6606 8.32031 29.2622 8.75773 28.8853Z\"\n fill=\"#DDD6FB\"\n />\n <path\n d=\"M5.96023 26.6377C5.93048 26.4768 5.93268 26.3303 5.96684 26.2013C6.01642 26.0184 6.14423 25.8895 6.32824 25.8377C6.72048 25.7276 7.27691 25.9689 7.8146 26.4812C8.55502 27.1864 9.0244 27.9819 9.01118 28.5053C9.00677 28.6959 8.94066 28.8468 8.81615 28.9537C8.2994 29.3977 7.32428 28.6827 6.79541 28.0932C6.32824 27.5731 6.03625 27.0586 5.95912 26.6377H5.96023ZM8.81505 28.3202C8.72911 27.8519 8.3005 27.1952 7.69009 26.6134C7.11053 26.0614 6.62132 25.9446 6.37782 26.0129C6.25441 26.0471 6.17508 26.1264 6.14313 26.2487C6.03515 26.6498 6.33705 27.3098 6.93204 27.972C7.52041 28.6276 8.34347 29.1223 8.69936 28.816C8.7831 28.7444 8.82717 28.6375 8.83158 28.5009C8.83268 28.4447 8.82717 28.3841 8.81615 28.3202H8.81505Z\"\n fill=\"#C2B4F9\"\n />\n <path\n d=\"M8.3413 29.0451C8.75669 28.6881 8.2774 27.7053 7.40916 26.8789C6.64559 26.1517 5.95475 26.1352 5.83575 26.5803C5.72447 26.9946 6.02857 27.6348 6.5861 28.2551C7.10836 28.8369 7.93583 29.3944 8.3424 29.0451H8.3413Z\"\n fill=\"#7953F5\"\n />\n <path\n d=\"M26.5026 37.0069C26.4662 36.9805 26.4552 36.9309 26.4773 36.8901C27.6408 34.7603 29.9094 34.8418 29.9326 34.8429C29.9833 34.8451 30.0218 34.8881 30.0196 34.9377C30.0174 34.9884 29.9745 35.0269 29.9249 35.0247C29.9028 35.0247 27.7455 34.9509 26.6381 36.9783C26.6139 37.0223 26.5588 37.0389 26.5147 37.0146C26.5114 37.0124 26.507 37.0102 26.5037 37.008L26.5026 37.0069Z\"\n fill=\"#CACACA\"\n />\n <path\n d=\"M17.3518 7.34349C10.3883 8.03213 5.34083 13.3705 6.5914 21.7113C7.18198 25.6503 10.3012 28.2374 12.852 28.991C14.7339 29.5464 16.9155 29.77 19.5433 29.51C22.1701 29.25 24.2658 28.6043 26.0033 27.6909C28.3568 26.4524 30.9098 23.3045 30.7169 19.3258C30.3104 10.9002 24.3142 6.65485 17.3518 7.34239V7.34349Z\"\n fill=\"white\"\n />\n <path\n d=\"M16.7911 13.7771C16.5619 12.5651 16.0187 10.9113 14.7263 9.91301C13.955 9.31692 13.2719 9.23649 13.2653 9.23539L13.2851 9.05469C13.3137 9.05799 16.1531 9.40947 16.9707 13.7441L16.7922 13.7782L16.7911 13.7771Z\"\n fill=\"#CACACA\"\n />\n <path\n d=\"M19.1611 13.5435L18.9793 13.5457C18.9661 12.2775 19.1842 10.4969 20.3004 9.22102C20.9736 8.45195 21.6468 8.23489 21.6755 8.22607L21.7295 8.39906C21.703 8.40788 19.1159 9.27501 19.1611 13.5435Z\"\n fill=\"#CACACA\"\n />\n <path\n d=\"M12.5655 17.5111C14.0363 17.0341 14.8863 15.592 14.4641 14.2902C14.0419 12.9884 12.5073 12.3198 11.0364 12.7969C9.56563 13.2739 8.71557 14.716 9.1378 16.0178C9.56003 17.3196 11.0946 17.9882 12.5655 17.5111Z\"\n fill=\"#DDD6FB\"\n />\n <path\n d=\"M11.911 17.7415C11.3976 17.7922 10.8863 17.7161 10.4246 17.5145C9.75363 17.2214 9.26662 16.7003 9.05397 16.0458C8.84132 15.3913 8.92947 14.6828 9.30078 14.0515C9.67099 13.4234 10.2781 12.9474 11.0097 12.7094C12.5258 12.2169 14.1147 12.9133 14.5521 14.2608C14.7647 14.9153 14.6766 15.6238 14.3053 16.2551C13.9351 16.8832 13.3279 17.3591 12.5963 17.5971C12.3705 17.671 12.1413 17.7183 11.9121 17.7415H11.911ZM11.7072 12.748C11.4945 12.7689 11.2797 12.813 11.0659 12.8824C10.3762 13.1061 9.80432 13.5545 9.45724 14.144C9.11237 14.7302 9.02973 15.3847 9.22586 15.9896C9.42198 16.5945 9.87373 17.0771 10.4963 17.3481C11.1232 17.6214 11.8493 17.6478 12.539 17.4242C13.2288 17.2005 13.8006 16.752 14.1477 16.1626C14.4926 15.5764 14.5752 14.9219 14.3791 14.317C14.0342 13.2537 12.9093 12.629 11.7072 12.7469V12.748Z\"\n fill=\"#C2B4F9\"\n />\n <path\n d=\"M27.1037 14.2414C27.2629 12.8822 26.147 11.6345 24.6113 11.4546C23.0755 11.2747 21.7015 12.2308 21.5423 13.5901C21.3831 14.9494 22.499 16.1971 24.0348 16.3769C25.5705 16.5568 26.9445 15.6007 27.1037 14.2414Z\"\n fill=\"#DDD6FB\"\n />\n <path\n d=\"M24.7186 16.4743C24.4938 16.4963 24.2602 16.4952 24.0244 16.4677C23.2598 16.3784 22.5711 16.0302 22.0852 15.487C21.5971 14.9405 21.3723 14.264 21.4528 13.5798C21.5332 12.8967 21.9078 12.2896 22.5094 11.8709C23.1077 11.4544 23.858 11.2748 24.6227 11.3651C26.206 11.5502 27.3596 12.846 27.1944 14.253C27.0544 15.4507 26.0044 16.3487 24.7186 16.4754V16.4743ZM23.9407 11.5381C23.4581 11.5855 23.0008 11.7497 22.613 12.0196C22.0555 12.4074 21.7073 12.9694 21.6335 13.6007C21.5596 14.2321 21.7679 14.859 22.2218 15.3658C22.678 15.876 23.3259 16.2032 24.0465 16.287C25.5306 16.4611 26.8616 15.5388 27.0148 14.231C27.1679 12.9231 26.0859 11.7188 24.6018 11.5447C24.3792 11.5183 24.1577 11.5172 23.9418 11.5381H23.9407Z\"\n fill=\"#C2B4F9\"\n />\n <path\n d=\"M25.8106 25.744C24.0741 26.6574 21.9784 27.3041 19.3506 27.5631C16.7238 27.8231 14.5422 27.5994 12.6603 27.0441C10.1272 26.296 7.03549 23.7397 6.41406 19.847C6.4383 20.4508 6.4967 21.0722 6.59256 21.7113C7.18314 25.6503 10.3024 28.2374 12.8531 28.991C14.735 29.5464 16.9167 29.77 19.5434 29.51C22.1701 29.25 24.2658 28.6043 26.0034 27.6909C28.3569 26.4524 30.9098 23.3045 30.717 19.3258C30.6861 18.6802 30.6211 18.0587 30.5264 17.4626C30.6784 21.4006 28.1475 24.5143 25.8095 25.7429L25.8106 25.744Z\"\n fill=\"#F0EEF9\"\n />\n <path\n d=\"M17.9854 13.7529C13.9594 14.1507 12.213 14.5363 10.7905 15.2294C8.77858 16.2089 8.23758 18.1117 8.80392 19.803C9.17744 20.9203 10.7024 22.5014 12.8553 22.1587C16.163 21.6321 16.2754 18.3035 18.414 18.0919\"\n fill=\"#222323\"\n />\n <path\n d=\"M12.6526 22.4133C10.5315 22.6238 8.98237 21.0537 8.58792 19.8747C7.91911 17.876 8.74438 15.972 10.6902 15.0245C12.1898 14.294 14.0254 13.916 17.9622 13.5271L18.0074 13.9799C14.1312 14.3634 12.3352 14.7303 10.8896 15.4344C9.16087 16.2762 8.42706 17.963 9.01873 19.7315C9.37903 20.8068 10.8378 22.2502 12.8189 21.9351C14.5411 21.6608 15.3641 20.57 16.0913 19.607C16.726 18.7663 17.3254 17.973 18.3909 17.8672L18.436 18.32C17.5678 18.406 17.0521 19.0891 16.4538 19.8813C15.6749 20.9126 14.7923 22.0817 12.8905 22.3847C12.8101 22.3979 12.7308 22.4078 12.6526 22.4155V22.4133Z\"\n fill=\"#222323\"\n />\n <path\n d=\"M17.9855 13.7528C22.0115 13.3551 23.7987 13.3903 25.3302 13.7914C27.4953 14.3588 28.3977 16.1174 28.174 17.888C28.0264 19.057 26.8408 20.9059 24.6625 20.9907C21.3163 21.1218 20.5538 17.8803 18.4152 18.0918\"\n fill=\"#222323\"\n />\n <path\n d=\"M24.9115 21.2011C24.8333 21.2088 24.7528 21.2143 24.6713 21.2177C22.7464 21.2926 21.6512 20.3197 20.686 19.4602C19.9445 18.8003 19.3043 18.2317 18.4372 18.3177L18.392 17.8648C19.4586 17.759 20.2012 18.4201 20.9879 19.1209C21.8892 19.923 22.9106 20.832 24.6526 20.7637C24.7242 20.7604 24.7958 20.756 24.8652 20.7494C26.7405 20.5643 27.8104 18.9446 27.947 17.8593C28.1806 16.0093 27.1306 14.4987 25.2707 14.0117C23.7149 13.604 21.8826 13.5963 18.0064 13.9798L17.9612 13.5269C21.898 13.138 23.7722 13.149 25.3864 13.5721C27.4798 14.1208 28.6621 15.8264 28.3977 17.9166C28.2412 19.1495 27.0303 20.9918 24.9093 21.2022L24.9115 21.2011Z\"\n fill=\"#222323\"\n />\n <path\n d=\"M14.324 18.3331C14.8011 18.3331 15.1879 17.9464 15.1879 17.4693C15.1879 16.9922 14.8011 16.6055 14.324 16.6055C13.847 16.6055 13.4602 16.9922 13.4602 17.4693C13.4602 17.9464 13.847 18.3331 14.324 18.3331Z\"\n fill=\"white\"\n />\n <path\n d=\"M23.639 15.9476C21.8639 15.5312 20.923 16.9338 20.923 16.9338C20.923 16.9338 22.1537 16.547 23.6169 17.1486\"\n stroke=\"white\"\n stroke-width=\"0.330547\"\n stroke-linejoin=\"bevel\"\n />\n <path\n d=\"M13.2729 8.81779L13.2608 8.80897C12.9457 8.55886 12.3077 8.08508 11.5739 7.71927C10.3828 7.12539 9.46059 7.07801 8.83145 7.57934C8.38961 7.93082 8.28384 8.7043 8.50641 9.94275C8.65736 10.779 8.90417 11.5294 8.90747 11.5371C8.95485 11.6803 9.08156 11.7806 9.23141 11.7949C9.25565 11.7971 9.27989 11.7971 9.30413 11.7949C9.35481 11.7894 9.40329 11.7751 9.44736 11.7508C9.51017 11.7167 9.56195 11.6649 9.59721 11.6021C9.59942 11.5988 9.81317 11.2242 10.3354 10.7867C10.8357 10.367 11.7259 9.80172 13.1208 9.4921C13.252 9.46566 13.3599 9.3698 13.4029 9.24309C13.4558 9.08774 13.4029 8.91805 13.2718 8.81999L13.2729 8.81779Z\"\n fill=\"#7953F5\"\n />\n <path\n d=\"M21.8253 8.12797C22.0788 7.82827 22.5999 7.25092 23.2313 6.76171C24.2064 6.00586 25.0184 5.78659 25.6465 6.10943C26.0608 6.32208 26.2811 7.01402 26.3032 8.16323C26.3186 8.98629 26.2282 9.74104 26.2238 9.77299C26.2172 9.83139 26.1753 9.87987 26.1192 9.8964C26.0905 9.90521 26.0608 9.90411 26.0332 9.8964C26.0057 9.88868 25.9825 9.87216 25.9638 9.85012C25.9605 9.84681 25.6608 9.49533 25.0151 9.14275C24.419 8.81661 23.3987 8.42105 21.9201 8.3902C21.8683 8.3902 21.8187 8.36156 21.7923 8.31638C21.7592 8.26019 21.7681 8.18967 21.811 8.14229L21.8231 8.12797H21.8253Z\"\n fill=\"#7953F5\"\n />\n <path\n d=\"M26.1147 10.129C26.0651 10.1334 26.0144 10.129 25.9659 10.1135C25.8976 10.0926 25.837 10.0518 25.7919 9.99784C25.7897 9.99454 25.5054 9.6695 24.9082 9.34226C24.3352 9.02824 23.3513 8.64811 21.9178 8.61836C21.7878 8.61836 21.6644 8.54564 21.5983 8.43105C21.5168 8.29002 21.5344 8.11483 21.6435 7.99363L21.6534 7.98261C21.9134 7.6752 22.4456 7.08572 23.0935 6.58329C24.1446 5.76904 25.0382 5.54207 25.7522 5.90897C26.2535 6.1668 26.508 6.90392 26.5323 8.1611C26.5477 8.97976 26.4618 9.72018 26.4518 9.80172C26.4331 9.95047 26.3295 10.0739 26.1863 10.1157C26.1632 10.1223 26.14 10.1268 26.1158 10.1301L26.1147 10.129ZM22.0908 8.16882C23.5287 8.22611 24.5303 8.61836 25.1253 8.9434C25.5737 9.1891 25.8657 9.43481 26.0166 9.57915C26.0431 9.31031 26.0871 8.75499 26.0761 8.16882C26.0497 6.77942 25.7313 6.4092 25.5428 6.31224C25.0007 6.03348 24.2691 6.24503 23.3712 6.94138C22.8235 7.36559 22.3619 7.8581 22.0908 8.16771V8.16882ZM21.9234 8.16331C21.9234 8.16331 21.9245 8.16331 21.9256 8.16331C21.9256 8.16331 21.9245 8.16331 21.9234 8.16331Z\"\n fill=\"#7953F5\"\n />\n <path\n d=\"M26.0508 17.9012L25.3621 18.3805L25.3522 18.2791L26.1213 18.614L25.9847 18.9248L25.2365 18.5821L25.2916 18.5391L25.3765 19.3368L25.0547 19.3688L24.9809 18.57L25.0437 18.6019L24.3771 19.0845L24.1821 18.8069L24.8762 18.3265L24.8862 18.4278L24.1116 18.0929L24.2482 17.7767L24.9963 18.1248L24.9412 18.1678L24.8575 17.3701L25.1792 17.3381L25.2531 18.137L25.1903 18.105L25.8558 17.6169L26.0519 17.9001L26.0508 17.9012Z\"\n fill=\"white\"\n />\n <path\n d=\"M12.8289 19.2081L12.1402 19.6873L12.1303 19.586L12.8994 19.9209L12.7627 20.2316L12.0146 19.889L12.0697 19.846L12.1545 20.6437L11.8328 20.6757L11.759 19.8769L11.8218 19.9088L11.1552 20.3914L10.9602 20.1137L11.6543 19.6334L11.6642 19.7347L10.8896 19.3998L11.0263 19.0835L11.7744 19.4317L11.7193 19.4747L11.6356 18.677L11.9573 18.645L12.0311 19.4438L11.9683 19.4119L12.6338 18.9238L12.83 19.2069L12.8289 19.2081Z\"\n fill=\"white\"\n />\n <path\n d=\"M9.21048 10.6787C9.18183 10.6821 9.15098 10.6699 9.13115 10.6457C9.09919 10.6071 9.1047 10.5498 9.14327 10.5179L9.55315 10.1785C9.44517 9.92069 9.07716 8.96211 9.30854 8.474C9.4044 8.27126 9.55315 8.13464 9.75037 8.06853C10.1757 7.92529 10.6968 8.15777 10.9007 8.26465C11.2698 8.45747 11.543 8.7175 11.6532 8.83209L12.0267 8.5963C12.0697 8.56986 12.1259 8.58198 12.1523 8.62495C12.1788 8.66792 12.1667 8.72301 12.1237 8.75056L11.6202 9.06898L11.5684 9.00948C11.5684 9.00948 11.2599 8.658 10.8158 8.42552C10.6329 8.32966 10.168 8.12031 9.80767 8.24151C9.65672 8.2922 9.54653 8.39356 9.47161 8.55223C9.2832 8.95109 9.60603 9.85458 9.74597 10.1686L9.77351 10.2314L9.25896 10.6578C9.24463 10.6699 9.22701 10.6765 9.21048 10.6787Z\"\n fill=\"white\"\n />\n <path\n d=\"M22.3045 20.2592C22.0324 19.0604 20.7388 17.7041 18.3997 17.9354C16.0605 18.1668 15.0578 19.7501 15.0248 20.9787C14.9642 23.2473 17.1921 24.4604 19.0266 24.2786C20.8611 24.0968 22.8081 22.4716 22.3045 20.2592Z\"\n fill=\"#C2B4F9\"\n />\n <path\n d=\"M18.6013 19.9652C19.3341 19.8928 19.8767 19.3151 19.8134 18.675C19.7501 18.0349 19.1048 17.5748 18.372 17.6473C17.6393 17.7198 17.0966 18.2975 17.1599 18.9375C17.2233 19.5776 17.8686 20.0377 18.6013 19.9652Z\"\n fill=\"#222323\"\n />\n <path\n d=\"M18.7975 21.9646C18.2201 22.0219 17.4224 21.72 17.0379 20.9234C16.9839 20.811 16.996 20.6601 17.0665 20.5874C17.1371 20.5146 18.0461 20.3637 18.6333 20.3053C19.2206 20.2469 20.1428 20.2172 20.2255 20.2755C20.3081 20.3328 20.35 20.4783 20.3191 20.5995C20.0977 21.4567 19.376 21.9085 18.7975 21.9657V21.9646Z\"\n fill=\"#7953F5\"\n />\n <path\n d=\"M25.9879 9.01947C25.9703 9.02167 25.9527 9.01837 25.9362 9.00845L25.3478 8.69113L25.3632 8.62392C25.4392 8.28786 25.5781 7.33919 25.3158 6.9855C25.2112 6.84447 25.0844 6.76624 24.9258 6.74641C24.5501 6.69793 24.1347 6.99542 23.9727 7.12433C23.5816 7.43945 23.3513 7.83942 23.3491 7.84382L23.3105 7.91214L22.7541 7.69838C22.7067 7.68075 22.6836 7.62787 22.7023 7.58049C22.7199 7.53421 22.7728 7.50997 22.8202 7.5287L23.2323 7.68736C23.3182 7.55294 23.5353 7.24443 23.8592 6.9833C24.0388 6.83896 24.5027 6.50952 24.9489 6.56571C25.1561 6.59215 25.3279 6.69682 25.4613 6.87642C25.783 7.31054 25.61 8.32202 25.5549 8.59637L26.0232 8.84869C26.0673 8.87293 26.0838 8.92802 26.0596 8.97209C26.0441 8.99964 26.0177 9.01616 25.9879 9.01947Z\"\n fill=\"white\"\n />\n <path\n d=\"M8.35775 25.5271C8.31368 25.5315 8.27181 25.5029 8.26079 25.4577C7.69004 23.0998 9.42321 21.6333 9.44084 21.6189C9.47941 21.587 9.5367 21.5925 9.56865 21.6311C9.60061 21.6696 9.5951 21.7269 9.55653 21.7589C9.54001 21.7732 7.89388 23.1692 8.43708 25.4147C8.4492 25.4632 8.41945 25.5128 8.36987 25.5249C8.36546 25.5249 8.36105 25.5271 8.35775 25.5271Z\"\n fill=\"#CACACA\"\n />\n <path\n d=\"M29.7331 23.4136C29.7331 23.4136 29.7243 23.4136 29.7199 23.4136C29.6692 23.4114 29.6307 23.3696 29.6329 23.3189C29.7265 21.0062 27.8391 19.9627 27.8193 19.9528C27.7752 19.9286 27.7587 19.8735 27.7818 19.8294C27.806 19.7853 27.8611 19.7688 27.9052 19.7919C27.925 19.803 29.9127 20.9004 29.8136 23.3255C29.8114 23.3718 29.7761 23.4081 29.732 23.4125L29.7331 23.4136Z\"\n fill=\"#CACACA\"\n />\n <path\n d=\"M25.0371 5.73703C25.2916 5.73703 25.5307 5.79432 25.7511 5.90781C26.2524 6.16564 26.5069 6.90276 26.5312 8.15994C26.5466 8.9786 26.4607 9.71902 26.4508 9.80056C26.4474 9.8237 26.4419 9.84683 26.4353 9.86887C28.888 11.8951 30.5132 15.0794 30.7181 19.3258C30.9098 23.3045 28.358 26.4524 26.0045 27.6909C24.268 28.6043 22.1724 29.2511 19.5445 29.51C18.8063 29.5827 18.1033 29.618 17.4323 29.618C15.7157 29.618 14.2073 29.3899 12.8542 28.991C10.3035 28.2385 7.18426 25.6503 6.59368 21.7113C5.96344 17.5078 6.93304 14.0679 8.93946 11.6009C8.92845 11.58 8.91743 11.5591 8.90971 11.5359C8.90751 11.5282 8.6596 10.7779 8.50865 9.94159C8.28498 8.70314 8.39186 7.92966 8.83369 7.57818C9.12126 7.349 9.47054 7.23551 9.87822 7.23551C10.363 7.23551 10.9305 7.39638 11.5761 7.71921C12.094 7.97704 12.5623 8.28885 12.9049 8.53787C14.2514 7.90762 15.7509 7.50215 17.353 7.34349C17.84 7.29501 18.3226 7.27187 18.7997 7.27187C19.8905 7.27187 20.9471 7.39748 21.952 7.64429C22.2385 7.33357 22.6373 6.93692 23.0935 6.58323C23.8185 6.0202 24.4697 5.73813 25.0382 5.73813M25.0371 5.07593C24.3198 5.07593 23.5287 5.40648 22.6869 6.05986C22.3685 6.30667 22.049 6.59315 21.7316 6.91488C20.7885 6.71214 19.8034 6.60967 18.7975 6.60967C18.3006 6.60967 17.7915 6.63502 17.2858 6.6846C15.7498 6.83665 14.302 7.20466 12.9743 7.77871C12.5997 7.52529 12.2295 7.30603 11.8681 7.12643C11.1321 6.75952 10.4622 6.57331 9.87491 6.57331C9.31519 6.57331 8.82487 6.73749 8.4194 7.06032C7.55447 7.74896 7.68338 9.1009 7.85637 10.0584C7.95994 10.6346 8.10538 11.1657 8.19573 11.472C6.11218 14.2068 5.33099 17.7712 5.93699 21.8082C6.56613 25.9996 9.865 28.7971 12.6647 29.6235C14.1566 30.0642 15.7146 30.278 17.4301 30.278C18.1298 30.278 18.8625 30.2405 19.6073 30.1667C22.179 29.9122 24.3716 29.2929 26.3097 28.2737C28.8935 26.9152 31.5808 23.5249 31.377 19.2917C31.1798 15.2138 29.7155 11.8698 27.135 9.59562C27.1636 9.27499 27.2022 8.72848 27.1912 8.14451C27.1724 7.17271 27.0347 5.82297 26.053 5.31723C25.739 5.15527 25.3963 5.07373 25.036 5.07373L25.0371 5.07593Z\"\n fill=\"#DFD5FE\"\n />\n </g>\n </svg>\n );\n};\n\nexport default AssistantAvatar;\n","const UserAvatar = (props: any) => {\n return (\n <svg\n width=\"36\"\n height=\"36\"\n viewBox=\"0 0 36 36\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <mask\n id=\"mask0_126_24814\"\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"36\"\n height=\"36\"\n >\n <circle cx=\"18\" cy=\"18\" r=\"18\" fill=\"#D9D9D9\" />\n </mask>\n <g mask=\"url(#mask0_126_24814)\">\n <circle cx=\"18\" cy=\"18\" r=\"18\" fill=\"#F1F1F6\" />\n <g clip-path=\"url(#clip0_126_24814)\">\n <mask\n id=\"mask1_126_24814\"\n maskUnits=\"userSpaceOnUse\"\n x=\"-1\"\n y=\"0\"\n width=\"37\"\n height=\"36\"\n >\n <path\n d=\"M17.8888 36C27.8299 36 35.8888 27.9411 35.8888 18C35.8888 8.05887 27.8299 0 17.8888 0C7.94767 0 -0.111206 8.05887 -0.111206 18C-0.111206 27.9411 7.94767 36 17.8888 36Z\"\n fill=\"white\"\n />\n </mask>\n <g mask=\"url(#mask1_126_24814)\">\n <path\n d=\"M37.5707 -1.68335H-1.79456V37.6819H37.5707V-1.68335Z\"\n fill=\"#EFECF9\"\n />\n <path\n d=\"M12.2814 14.7556C12.2814 14.7556 14.3738 12.083 10.3158 14.3322C6.99376 16.1726 5.13184 19.3622 5.13184 19.3622L10.2467 23.0558C10.2467 23.0558 13.5328 17.889 12.2829 14.7542L12.2814 14.7556Z\"\n fill=\"#74492C\"\n />\n <path\n d=\"M23.1521 14.7556C23.1521 14.7556 21.0598 12.083 25.1177 14.3322C28.4398 16.1726 30.3017 19.3622 30.3017 19.3622L25.1868 23.0558C25.1868 23.0558 21.9007 17.889 23.1506 14.7542L23.1521 14.7556Z\"\n fill=\"#74492C\"\n />\n <path\n d=\"M26.2974 13.9783C26.4266 12.6725 25.748 11.5364 24.7816 11.4408C23.8153 11.3452 22.9272 12.3263 22.798 13.6321C22.6688 14.938 23.3475 16.0741 24.3138 16.1697C25.2801 16.2653 26.1682 15.2842 26.2974 13.9783Z\"\n fill=\"#F0BEBA\"\n />\n <path\n d=\"M11.1038 16.1679C12.0701 16.0723 12.7487 14.9362 12.6195 13.6303C12.4904 12.3245 11.6023 11.3434 10.6359 11.439C9.6696 11.5346 8.99096 12.6707 9.12015 13.9765C9.24934 15.2824 10.1374 16.2635 11.1038 16.1679Z\"\n fill=\"#F0BEBA\"\n />\n <path\n d=\"M13.7214 16.7141H21.735V29.3847C21.735 30.492 20.835 31.392 19.7277 31.392H15.7273C14.62 31.392 13.72 30.492 13.72 29.3847V16.7141H13.7214Z\"\n fill=\"#F2D1D2\"\n />\n <path\n d=\"M21.7365 24.8068C21.7365 24.8068 19.2266 25.0804 16.9341 24.1516C14.9944 23.3668 13.7214 21.3134 13.7214 21.3134V18.802H21.735V24.8068H21.7365Z\"\n fill=\"#F0BEBA\"\n />\n <path\n d=\"M17.716 3.95557C14.0123 3.95557 10.9811 6.98677 10.9811 10.6904V16.0357C10.9811 19.7394 13.995 22.7706 17.716 22.7706C21.4369 22.7706 24.4508 19.7394 24.4508 16.0357V10.6904C24.4508 6.98677 21.4196 3.95557 17.716 3.95557Z\"\n fill=\"#F2D1D2\"\n />\n <path\n d=\"M17.5144 14.4907C17.5144 14.4907 17.068 15.0739 17.5158 15.6946\"\n stroke=\"#E78990\"\n stroke-width=\"0.724832\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n />\n <path\n d=\"M13.2722 12.8375C13.1685 12.9138 13.7906 12.6229 14.4703 12.6042C15.3213 12.5811 15.6367 12.8303 15.7029 12.7079C15.7937 12.5408 15.0809 12.3594 14.4271 12.4386C13.8079 12.512 13.4537 12.7021 13.2708 12.8375H13.2722Z\"\n fill=\"#141418\"\n stroke=\"#141418\"\n stroke-width=\"0.454228\"\n stroke-miterlimit=\"10\"\n />\n <path\n d=\"M22.1599 12.8375C22.2636 12.9138 21.6415 12.6229 20.9618 12.6042C20.1108 12.5811 19.7954 12.8303 19.7292 12.7079C19.6384 12.5408 20.3512 12.3594 21.005 12.4386C21.6242 12.512 21.9784 12.7021 22.1613 12.8375H22.1599Z\"\n fill=\"#141418\"\n stroke=\"#141418\"\n stroke-width=\"0.454228\"\n stroke-miterlimit=\"10\"\n />\n <path\n d=\"M9.16097 9.99637C9.16961 10.7408 9.25745 11.6898 10.1978 12.7252C10.7378 13.3199 11.7602 13.4826 11.8984 11.972C12.0727 10.0669 16.1911 9.60037 17.0579 7.54405C17.6008 6.25813 17.4727 4.99813 15.5344 4.98517C10.8458 4.95061 9.13649 7.88101 9.15953 9.99781L9.16097 9.99637Z\"\n fill=\"#F0BEBA\"\n />\n <path\n d=\"M25.6965 9.99657C25.6878 10.7411 25.6 11.69 24.6597 12.7254C24.1197 13.3201 17.6742 11.1961 16.1104 7.71562C15.5373 6.43834 15.4307 4.57354 17.3603 4.41082C23.8691 3.86506 25.7195 7.87977 25.6965 9.99657Z\"\n fill=\"#F0BEBA\"\n />\n <g>\n <path\n d=\"M15.3156 14.5211C15.3156 15.002 15.0737 15.3174 14.7756 15.3174C14.4775 15.3174 14.2356 15.0006 14.2356 14.5211C14.2356 14.0416 14.4775 13.804 14.7756 13.804C15.0737 13.804 15.3156 14.0416 15.3156 14.5211Z\"\n fill=\"#232323\"\n />\n </g>\n <g>\n <path\n d=\"M20.1179 14.5211C20.1179 15.002 20.3598 15.3174 20.6579 15.3174C20.956 15.3174 21.1979 15.0006 21.1979 14.5211C21.1979 14.0401 20.956 13.804 20.6579 13.804C20.3598 13.804 20.1179 14.0416 20.1179 14.5211Z\"\n fill=\"#232323\"\n />\n </g>\n <g opacity=\"0.3\">\n <path\n d=\"M14.2817 15.6946C14.2817 16.2662 13.7719 16.7285 12.882 16.7285C11.9921 16.7285 11.4823 16.2648 11.4823 15.6946C11.4823 15.1243 11.9921 14.6606 12.882 14.6606C13.7719 14.6606 14.2817 15.1243 14.2817 15.6946Z\"\n fill=\"#E78990\"\n />\n <path\n d=\"M21.1519 15.6946C21.1519 16.2662 21.6616 16.7285 22.5515 16.7285C23.4415 16.7285 23.9512 16.2648 23.9512 15.6946C23.9512 15.1243 23.4415 14.6606 22.5515 14.6606C21.6616 14.6606 21.1519 15.1243 21.1519 15.6946Z\"\n fill=\"#E78990\"\n />\n </g>\n <path\n d=\"M8.95081 9.13823C8.95945 10.0699 9.05017 11.2579 10.0279 12.5539C10.5895 13.2969 11.6508 13.5014 11.7948 11.6107C11.9748 9.22607 16.2531 8.64143 17.1545 6.06815C17.7175 4.45823 17.5851 2.88287 15.5719 2.86415C10.7019 2.82095 8.92633 6.48863 8.95081 9.13823Z\"\n fill=\"#74492C\"\n />\n <path\n d=\"M26.127 9.13824C26.1184 10.0699 26.0277 11.2579 25.0499 12.5539C24.4883 13.297 17.7938 10.6402 16.1709 6.28272C15.5747 4.68432 15.4653 2.34864 17.4683 2.14704C24.2291 1.46304 26.1515 6.49008 26.127 9.13824Z\"\n fill=\"#74492C\"\n />\n <path\n d=\"M19.2453 17.8544C19.2453 18.5831 18.5656 19.1749 17.729 19.1749C16.8923 19.1749 16.2126 18.5845 16.2126 17.8544C16.2126 17.1244 16.8923 17.3476 17.729 17.3476C18.5656 17.3476 19.2453 17.1244 19.2453 17.8544Z\"\n fill=\"#E78990\"\n />\n <path\n d=\"M27.8838 26.9943C27.1379 25.8697 24.0952 25.6465 21.6011 25.3757C21.0669 26.99 19.8803 28.178 17.8873 28.178C15.7806 28.178 14.2398 26.522 13.7531 24.9797C11.2835 25.2548 8.52734 25.8841 7.7915 26.9943C4.8251 31.4713 8.17166 46.5365 9.82046 52.6277C10.1661 53.9036 10.2568 53.8633 11.3541 53.9482C15.0102 54.2319 20.4433 54.373 24.1801 54.1023C25.3523 54.0173 25.3998 53.9237 25.7843 52.5615C27.6289 46.0441 30.8488 31.4698 27.8838 26.9943Z\"\n fill=\"white\"\n />\n <path\n d=\"M8.51447 26.3333C4.85111 27.216 4.61927 29.2838 -1.22713 46.9497C-4.61545 57.1867 -5.68969 59.9011 -6.07993 61.2878C-6.12745 61.4577 -6.03817 61.6363 -5.87401 61.6997L-1.41865 63.4133C-1.24729 63.4795 -1.05433 63.3989 -0.982326 63.2304L11.2764 36.7517L8.51447 26.3347V26.3333Z\"\n fill=\"#BFAAFC\"\n />\n <path\n d=\"M27.0069 26.4426C30.6702 27.3253 30.7293 29.2837 36.5771 46.9482C39.9654 57.1852 41.0397 59.8996 41.4299 61.2863C41.4774 61.4562 41.3882 61.6348 41.224 61.6981L36.7686 63.4117C36.5973 63.478 36.4043 63.3973 36.3323 63.2289L24.0736 36.7501L27.0083 26.4426H27.0069Z\"\n fill=\"#BFAAFC\"\n />\n <path\n d=\"M10.3403 29.7935H25.4373\"\n stroke=\"#6725EC\"\n stroke-width=\"0.717584\"\n stroke-miterlimit=\"10\"\n />\n <path\n d=\"M10.3403 31.9924H25.4373\"\n stroke=\"#6725EC\"\n stroke-width=\"0.717584\"\n stroke-miterlimit=\"10\"\n />\n <path\n d=\"M10.3403 34.1929H25.4373\"\n stroke=\"#6725EC\"\n stroke-width=\"0.717584\"\n stroke-miterlimit=\"10\"\n />\n <path\n d=\"M13.383 24.4727L14.2355 43.9112H9.65919L8.06079 26.5376C8.06079 26.5376 10.8458 24.7218 13.383 24.4727Z\"\n fill=\"#BFAAFC\"\n />\n <path\n d=\"M22.3946 24.4727L21.5421 43.9112H26.1184L27.7168 26.5376C27.7168 26.5376 24.9319 24.7218 22.3946 24.4727Z\"\n fill=\"#BFAAFC\"\n />\n </g>\n </g>\n </g>\n <defs>\n <clipPath id=\"clip0_126_24814\">\n <rect\n width=\"36\"\n height=\"36\"\n fill=\"white\"\n transform=\"translate(-0.111206)\"\n />\n </clipPath>\n </defs>\n </svg>\n );\n};\n\nexport default UserAvatar;\n","import React from 'react';\nimport CircleIcon from '@mui/icons-material/Circle';\nimport { Box } from '@mui/material';\n\nconst TypingIndicator: React.FC = () => {\n return (\n <Box display=\"flex\" alignItems=\"center\">\n <Box display=\"flex\" ml={1}>\n <CircleIcon className=\"dot first-dot\" />\n <CircleIcon className=\"dot second-dot\" />\n <CircleIcon className=\"dot third-dot\" />\n </Box>\n\n <style>\n {`\n @keyframes blink {\n 0%, 20% {\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n }\n\n .dot {\n font-size: 0.8rem;\n margin-left: 3px;\n opacity: 0;\n }\n\n .first-dot {\n animation: blink 1.5s infinite 0s;\n }\n\n .second-dot {\n animation: blink 1.5s infinite 0.2s;\n }\n\n .third-dot {\n animation: blink 1.5s infinite 0.4s;\n }\n `}\n </style>\n </Box>\n );\n};\n\nexport default TypingIndicator;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { Stack, Input, Box, Typography, useTheme, Theme } from \"@mui/material\";\n\nimport { Micro, Reset, Send, ReadyRecord, Recording } from \"../../icons\";\nimport { EliceIconButton } from \"../icon-button\";\nimport AssistantAvatar from \"./AssistantAvatar\";\nimport UserAvatar from \"./UserAvatar\";\nimport TypingIndicator from \"./TypingIndicator\";\n\nexport type EliceMessageItem = { role: \"system\" | \"user\" | \"assistant\"; content: string }\n\nexport interface EliceChatProps {\n children: React.ReactNode;\n messages: EliceMessageItem[];\n height?: string;\n isLoadingMessage?: boolean;\n CustomAssistantAvatar?: React.ReactNode;\n}\n\nexport type AudioStep = \"ready\" | \"waiting\" | \"recording\";\n\n\nconst EliceChat = ({\n messages = [],\n isLoadingMessage,\n children,\n height,\n CustomAssistantAvatar,\n}: EliceChatProps) => {\n const theme = useTheme();\n const scrollRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (scrollRef.current) {\n scrollRef.current.scrollIntoView({ behavior: \"smooth\" });\n }\n }, [messages, isLoadingMessage]);\n\n return (\n <StyledChatContainer theme={theme} height={height}>\n <EliceChat.MessageList\n messages={messages}\n isLoadingMessage={isLoadingMessage}\n scrollRef={scrollRef}\n CustomAssistantAvatar={CustomAssistantAvatar}\n />\n {children}\n </StyledChatContainer>\n );\n};\n\n// ✅ 메시지 리스트 컴포넌트\nEliceChat.MessageList = ({\n messages,\n isLoadingMessage,\n scrollRef,\n height,\n CustomAssistantAvatar,\n}: {\n messages: { role: \"system\" | \"user\" | \"assistant\"; content: string }[];\n isLoadingMessage?: boolean;\n scrollRef: React.RefObject<HTMLDivElement>;\n height?: string;\n CustomAssistantAvatar?: React.ReactNode;\n}) => {\n const theme = useTheme();\n\n return (\n <StyledScrollBarStack theme={theme} height={height}>\n {messages.length === 0 ? (\n <Typography color={theme.palette.text.disabled} fontSize=\"2rem\" fontWeight={700}>\n AI와 대화를 시작해 보세요.\n </Typography>\n ) : (\n <>\n {messages.map((msg, index) => {\n if (msg.role === \"system\") return null;\n const isAssistant = msg.role === \"assistant\";\n\n return (\n <Stack\n key={index}\n direction={isAssistant ? \"row\" : \"row-reverse\"}\n gap=\"0.5rem\"\n alignItems=\"center\"\n >\n <Stack flexShrink={0}>\n {isAssistant ? (CustomAssistantAvatar ?? <AssistantAvatar />) : <UserAvatar />}\n </Stack>\n <StyledMessage isAssistant={isAssistant} theme={theme}>\n {msg.content}\n </StyledMessage>\n </Stack>\n );\n })}\n {isLoadingMessage && <TypingIndicator />}\n <div ref={scrollRef} />\n </>\n )}\n </StyledScrollBarStack>\n );\n};\n\nEliceChat.InputArea = ({\n placeHolder,\n value,\n onSend,\n onReset,\n onRecord,\n onTranscribingChange,\n}: {\n placeHolder: string,\n value: string;\n onSend: () => void;\n onReset: () => void;\n onRecord?: () => void;\n onTranscribingChange?: (value: boolean) => void;\n}) => {\n const theme = useTheme();\n const [inputValue, setInputValue] = useState(value);\n const handleSend = () => {\n if (inputValue.trim()) {\n onSend();\n setInputValue(\"\");\n }\n };\n const onChangeValue = (e: React.ChangeEvent<HTMLInputElement>) => {\n setInputValue(e.target.value);\n }\n return (\n <Stack\n direction=\"row\"\n minHeight=\"3.875rem\"\n bgcolor={theme.palette.grey[50]}\n borderRadius=\"1.125rem\"\n p=\"0.5rem 1rem\"\n gap=\"0.625rem\"\n >\n <Stack flexGrow={1} maxHeight=\"14.625rem\">\n <StyledInput\n value={inputValue}\n onChange={onChangeValue}\n placeholder={placeHolder}\n theme={theme}\n multiline\n />\n </Stack>\n {onRecord && (\n <EliceIconButton\n onClick={() => {\n onRecord();\n onTranscribingChange?.(true);\n }}\n >\n <Micro />\n </EliceIconButton>\n )}\n <EliceIconButton onClick={onReset}>\n <Reset />\n </EliceIconButton>\n <EliceIconButton onClick={handleSend} disabled={!inputValue.trim()}>\n <Send />\n </EliceIconButton>\n </Stack>\n );\n};\n\nconst SoundWaveVisualizer = ({ analyser }: { analyser: AnalyserNode | null }) => {\n const theme = useTheme();\n const TOTAL_BARS = 17;\n const [filledBars, setFilledBars] = useState(0);\n\n useEffect(() => {\n if (!analyser) return;\n\n analyser.fftSize = 128; // ✅ FFT 크기 줄여 반응속도 개선\n const dataArray = new Uint8Array(analyser.frequencyBinCount);\n let prevVolume = 0;\n\n const updateVolume = () => {\n analyser.getByteFrequencyData(dataArray);\n const averageVolume = dataArray.reduce((acc, val) => acc + val, 0) / dataArray.length;\n\n // ✅ 더 높은 민감도 설정 (3배 증폭)\n const scaledVolume = Math.min(averageVolume * 3, 255);\n\n // ✅ 더 높은 가중치를 현재 값에 적용 (빠르게 반응)\n const smoothedVolume = prevVolume * 0.5 + scaledVolume * 0.5;\n prevVolume = smoothedVolume;\n\n // ✅ TOTAL_BARS에 맞게 변환\n const newFilledBars = Math.floor((smoothedVolume / 255) * TOTAL_BARS);\n\n setFilledBars((prev) => Math.round(prev * 0.6 + newFilledBars * 0.4)); // ✅ 더 빠르게 반응\n\n requestAnimationFrame(updateVolume);\n };\n\n updateVolume();\n\n return () => setFilledBars(0);\n }, [analyser]);\n\n return (\n <Stack alignItems=\"center\" justifyContent=\"center\" width=\"100%\" bgcolor=\"transparent\">\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n p=\"6px 36px 7.5px 31px\"\n width=\"100%\"\n gap=\"11px\"\n bgcolor={theme.palette.grey[50]}\n >\n {Array(TOTAL_BARS)\n .fill(0)\n .map((_, idx) => (\n <WaveBar key={idx} isFilled={idx < filledBars} theme={theme} />\n ))}\n </Box>\n </Stack>\n );\n};\n\n\nEliceChat.AudioArea = ({\n onRecord,\n onTranscribingChange,\n isLoadingMessage,\n setAudioFile,\n}: {\n onRecord?: () => void;\n onTranscribingChange?: (value: boolean) => void;\n isLoadingMessage?: boolean;\n setAudioFile: (file: File | null) => void;\n}) => {\n const theme = useTheme();\n const [recordingStep, setRecordingStep] = useState<AudioStep>(\"ready\");\n const mediaRecorderRef = useRef<MediaRecorder | null>(null);\n const audioChunks = useRef<Blob[]>([]);\n const streamRef = useRef<MediaStream | null>(null);\n\n const audioContextRef = useRef<AudioContext | null>(null);\n const analyserRef = useRef<AnalyserNode | null>(null);\n const sourceRef = useRef<MediaStreamAudioSourceNode | null>(null);\n\n const BUTTON_TEXT = {\n ready: \"녹음 시작\",\n recording: \"녹음 중지\",\n waiting: \"AI 응답 대기 중...\",\n };\n\n const startRecording = async () => {\n try {\n const audioStream = await navigator.mediaDevices.getUserMedia({ audio: true });\n streamRef.current = audioStream;\n audioChunks.current = [];\n\n mediaRecorderRef.current = new MediaRecorder(audioStream);\n\n mediaRecorderRef.current.ondataavailable = (event) => {\n if (event.data.size > 0) {\n audioChunks.current.push(event.data);\n }\n };\n\n mediaRecorderRef.current.onstop = async () => {\n const audioBlob = new Blob(audioChunks.current, { type: \"audio/wav\" });\n const file = new File([audioBlob], `recording-${Date.now()}.wav`, { type: \"audio/wav\" });\n\n setAudioFile(file);\n };\n\n // ✅ AudioContext 생성 및 오디오 분석기 연결\n audioContextRef.current = new AudioContext();\n analyserRef.current = audioContextRef.current.createAnalyser();\n sourceRef.current = audioContextRef.current.createMediaStreamSource(audioStream);\n sourceRef.current.connect(analyserRef.current);\n analyserRef.current.fftSize = 256;\n\n mediaRecorderRef.current.start();\n setRecordingStep(\"recording\");\n onRecord?.();\n onTranscribingChange?.(true);\n } catch (error) {\n console.error(\"🎤 마이크 권한을 허용해주세요.\", error);\n }\n };\n\n /**\n * ⏹ 녹음 중지\n */\n const stopRecording = () => {\n mediaRecorderRef.current?.stop();\n\n if (streamRef.current) {\n streamRef.current.getTracks().forEach(track => track.stop());\n }\n\n if (audioContextRef.current) {\n audioContextRef.current.close();\n audioContextRef.current = null;\n }\n\n setRecordingStep(\"waiting\");\n onTranscribingChange?.(false);\n };\n\n /**\n * ⏳ AI 응답 완료 시 `ready` 상태로 복귀\n */\n useEffect(() => {\n if (!isLoadingMessage && recordingStep === \"waiting\") {\n setRecordingStep(\"ready\");\n }\n }, [isLoadingMessage, recordingStep]);\n return (\n <Stack\n direction=\"column\"\n minHeight=\"70px\"\n bgcolor={theme.palette.grey[50]}\n padding=\"12px 9px 12px 8px\"\n borderRadius=\"18px\"\n alignItems=\"center\"\n justifyContent=\"center\"\n >\n {recordingStep === \"recording\" && <SoundWaveVisualizer analyser={analyserRef.current} />}\n <AudioChatButton onClick={recordingStep === \"ready\" ? startRecording : stopRecording} step={recordingStep}>\n {recordingStep === \"ready\" ? <ReadyRecord /> : <Recording />}\n <Typography variant=\"h1\">{BUTTON_TEXT[recordingStep]}</Typography>\n </AudioChatButton>\n </Stack>\n );\n};\n\nexport default EliceChat;\n\nconst StyledChatContainer = styled(Stack) <{ theme: Theme, height?: string }>`\n height: fit-content;\n height: ${({ height }) => height ?? '100%'};\n max-height: 100%;\n min-width: 30rem;\n max-width: 100%;\n border: 2px solid ${({ theme }) => theme.palette.grey[300]};\n border-radius: 1.5rem;\n padding: 23px;\n gap: 1.75rem;\n`;\n\nconst StyledScrollBarStack = styled(Stack) <{ theme: Theme, height?: string }>`\n flex: 1;\n overflow-y: auto;\n height: ${({ height }) => height ?? '100%'};\n border-radius: 1.125rem;\n padding-right: 1rem;\n ::-webkit-scrollbar {\n width: 0.25rem;\n }\n ::-webkit-scrollbar-track {\n background: ${({ theme }) => theme.palette.grey[200]};\n border-radius: 0.5rem;\n }\n ::-webkit-scrollbar-thumb {\n background: ${({ theme }) => theme.palette.primary.main};\n border-radius: 0.5rem;\n }\n ::-webkit-scrollbar-thumb:hover {\n background: ${({ theme }) => theme.palette.secondary.main};\n }\n`;\n\nconst StyledInput = styled(Input) <{ theme: Theme }>`\n width: 100%;\n height: 100%;\n border: none !important;\n background-color: transparent;\n font-size: 1.375rem;\n font-weight: 700;\n outline: none;\n resize: none;\n color: ${({ theme }) => theme.palette.secondary.main};\n ::placeholder {\n color: ${({ theme }) => theme.palette.grey[300]};\n }\n \n ::before {\n border: none;\n }\n :hover {\n ::before {\n border: none;\n }\n }\n ::after {\n border-bottom: none !important;\n }\n \n ::-webkit-scrollbar {\n width: 0.25rem;\n }\n ::-webkit-scrollbar-track {\n background: ${({ theme }) => theme.palette.grey[200]};\n border-radius: 0.5rem;\n }\n ::-webkit-scrollbar-thumb {\n background: ${({ theme }) => theme.palette.primary.main};\n border-radius: 0.5rem;\n }\n ::-webkit-scrollbar-thumb:hover {\n background: ${({ theme }) => theme.palette.secondary.main};\n }\n`;\n\nconst StyledMessage = styled(Typography) <{ isAssistant: boolean, theme: Theme }>`\n color: ${({ isAssistant, theme }) =>\n isAssistant ? theme.palette.text.secondary : theme.palette.secondary.main};\n font-size: 1rem;\n font-weight: ${({ isAssistant }) => (isAssistant ? 500 : 700)};\n background-color: ${({ isAssistant, theme }) =>\n isAssistant ? theme.palette.grey[50] : theme.palette.primary.light};\n border-radius: 1rem;\n padding: 0.75rem;\n margin-bottom: 16px;\n white-space: pre-wrap;\n`;\n\nconst WaveBar = styled(Box) <{ isFilled: boolean; theme: Theme }>`\n width: 11px;\n height: 34px;\n border-radius: 11px;\n background-color: ${({ isFilled, theme }) =>\n isFilled ? theme.palette.primary.main : theme.palette.grey[200]};\n transition: background-color 0.1s ease-in-out;\n`;\n\nconst AudioChatButton = styled.button<{ step: AudioStep }>`\n display: flex;\n width: 100%;\n border: none;\n height: 36px;\n padding: 12px 20px 12px 17px;\n justify-content: center;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n flex-shrink: 0;\n border-radius: 16px;\n color: ${({ step }) => step === \"ready\" ? \"#fff\" : \"#FF5D58\"};\n background: ${({ step }) => step === \"ready\" ? \"#FF5D58\" : \"#FBE0E0\"};\n`\n","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M7 14H5v5h5v-2H7zm-2-4h2V7h3V5H5zm12 7h-3v2h5v-5h-2zM14 5v2h3v3h2V5z\"\n}), 'Fullscreen');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M5 16h3v3h2v-5H5zm3-8H5v2h5V5H8zm6 11h2v-3h3v-2h-5zm2-11V5h-2v5h5V8z\"\n}), 'FullscreenExit');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M6 19h4V5H6zm8-14v14h4V5z\"\n}), 'Pause');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M8 5v14l11-7z\"\n}), 'PlayArrow');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2M4 12h4v2H4zm10 6H4v-2h10zm6 0h-4v-2h4zm0-4H10v-2h10z\"\n}), 'Subtitles');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63m2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71M4.27 3 3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9zM12 4 9.91 6.09 12 8.18z\"\n}), 'VolumeOff');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M3 9v6h4l5 5V4L7 9zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02M14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77\"\n}), 'VolumeUp');","import React from 'react';\nimport FullscreenIcon from '@mui/icons-material/Fullscreen';\nimport FullscreenExitIcon from '@mui/icons-material/FullscreenExit';\nimport PauseIcon from '@mui/icons-material/Pause';\nimport PlayArrowIcon from '@mui/icons-material/PlayArrow';\nimport SubtitlesIcon from '@mui/icons-material/Subtitles';\nimport VolumeOffIcon from '@mui/icons-material/VolumeOff';\nimport VolumeUpIcon from '@mui/icons-material/VolumeUp';\nimport { IconButton, Slider } from '@mui/material';\n\nimport { Box, Stack, Typography } from '../layout';\n\nexport interface EliceVideoPlayerProps {\n source: string;\n autoPlay?: boolean;\n onPlay?: () => void;\n onPause?: () => void;\n onEnded?: () => void;\n onProgress?: (seconds: number) => void;\n tracks?: { src: string; kind: string; srclang: string; label: string }[];\n sx?: React.CSSProperties;\n height?: string;\n pageKey?: string;\n videoKey?: string;\n}\n\nconst EliceVideoPlayer = ({\n source,\n autoPlay = false,\n onPlay,\n onPause,\n onEnded,\n onProgress,\n tracks,\n sx,\n height = 'auto',\n videoKey,\n}: EliceVideoPlayerProps) => {\n const videoRef = React.useRef<HTMLVideoElement | null>(null);\n const lastTime = React.useRef<number>(\n videoKey ? Number(localStorage.getItem(videoKey)) || 0 : 0\n );\n\n const [isPlaying, setIsPlaying] = React.useState(false);\n const [isFullscreen, setIsFullscreen] = React.useState(false);\n const [currentTime, setCurrentTime] = React.useState(lastTime.current);\n const [duration, setDuration] = React.useState(0);\n const [volume, setVolume] = React.useState(1);\n const [speed, setSpeed] = React.useState(1);\n const [isMuted, setIsMuted] = React.useState(false);\n\n React.useEffect(() => {\n const video = videoRef.current;\n if (!video) return;\n\n video.currentTime = lastTime.current;\n\n const handlePlay = () => {\n setIsPlaying(true);\n onPlay?.();\n };\n\n const handlePause = () => {\n setIsPlaying(false);\n onPause?.();\n };\n\n const handleEnded = () => {\n setIsPlaying(false);\n onEnded?.();\n };\n\n const handleTimeUpdate = () => {\n const seconds = video.currentTime;\n setCurrentTime(seconds);\n onProgress?.(seconds);\n\n if (videoKey) {\n localStorage.setItem(videoKey, seconds.toString());\n }\n };\n\n const handleLoadedMetadata = () => {\n setDuration(video.duration);\n };\n const handleFullscreenChange = () => {\n const fullscreenElement = videoRef.current?.parentElement?.parentElement;\n if (fullscreenElement === document.fullscreenElement) {\n setIsFullscreen(true);\n } else {\n document.exitFullscreen()?.catch(error => {\n console.warn(\"Could not exit fullscreen:\", error.message);\n });\n setIsFullscreen(false);\n }\n };\n\n video.addEventListener('play', handlePlay);\n video.addEventListener('pause', handlePause);\n video.addEventListener('ended', handleEnded);\n video.addEventListener('timeupdate', handleTimeUpdate);\n video.addEventListener('loadedmetadata', handleLoadedMetadata);\n document.addEventListener('fullscreenchange', handleFullscreenChange);\n\n return () => {\n video.removeEventListener('play', handlePlay);\n video.removeEventListener('pause', handlePause);\n video.removeEventListener('ended', handleEnded);\n video.removeEventListener('timeupdate', handleTimeUpdate);\n video.removeEventListener('loadedmetadata', handleLoadedMetadata);\n document.removeEventListener('fullscreenchange', handleFullscreenChange);\n };\n }, [videoKey, onPlay, onPause, onEnded, onProgress]);\n\n const handlePlayPause = () => {\n const video = videoRef.current;\n if (video) {\n if (isPlaying) {\n video.pause();\n } else {\n void video.play();\n }\n }\n };\n\n const handleVolumeChange = (event: Event, newValue: number | number[]) => {\n const volume = newValue as number;\n setVolume(volume);\n const video = videoRef.current;\n if (video) {\n video.volume = volume;\n }\n };\n\n const handleSpeedChange = (event: React.ChangeEvent<{ value: unknown }>) => {\n const speed = event.target.value as number;\n setSpeed(speed);\n const video = videoRef.current;\n if (video) {\n video.playbackRate = speed;\n }\n };\n\n const toggleMute = () => {\n setIsMuted(prev => {\n const video = videoRef.current;\n if (video) {\n video.muted = !prev;\n return !prev;\n }\n return prev;\n });\n };\n\n const toggleFullscreen = () => {\n const videoContainer = videoRef.current?.parentElement?.parentElement;\n if (videoContainer) {\n if (document.fullscreenElement) {\n document.exitFullscreen?.().catch(error => {\n console.warn(\"Could not exit fullscreen:\", error.message);\n });\n } else {\n void videoContainer.requestFullscreen?.();\n }\n }\n };\n\n const handleSeek = (newValue: number, isInteraction: boolean) => {\n const newTime = newValue;\n const video = videoRef.current;\n if (isInteraction && video) {\n video.currentTime = newTime;\n setCurrentTime(newTime);\n }\n };\n\n return (\n <Stack\n step={2}\n width=\"100%\"\n height={height}\n borderRadius=\"1rem\"\n overflow=\"hidden\"\n border=\"1px solid #e0e0e0\"\n sx={{\n '& video': {\n width: '100%',\n height: '100%',\n borderTopRadius: '1rem',\n objectFit: 'cover',\n },\n ...sx,\n }}\n >\n <Box\n sx={{ flex: '1 1 auto', overflow: 'hidden', position: 'relative' }}\n >\n <video\n ref={ref => {\n if (isPlaying) {\n void ref?.play();\n }\n videoRef.current = ref;\n }}\n controls={false}\n autoPlay={autoPlay}\n width=\"100%\"\n crossOrigin=\"anonymous\"\n >\n <source src={source} type=\"video/mp4\" />\n {tracks?.map((track, i) => (\n <track\n key={i}\n src={track.src}\n kind={track.kind}\n srcLang={track.srclang}\n label={track.label}\n />\n ))}\n Your browser does not support the video tag.\n </video>\n </Box>\n {/* Custom Controls */}\n <Stack\n direction=\"row\"\n height=\"max(30px, 3em)\"\n backgroundColor=\"black\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n padding=\"0.5em 1em\"\n gap=\"0.5em\"\n >\n {/* Play/Pause Button */}\n <IconButton onClick={handlePlayPause} color=\"primary\">\n {isPlaying ? <PauseIcon /> : <PlayArrowIcon />}\n </IconButton>\n\n {/* Current Time */}\n <Typography width=\"2.5em\" color=\"white\">\n {`${Math.floor(currentTime / 60)}:${String(\n Math.floor(currentTime % 60)\n ).padStart(2, '0')}`}\n </Typography>\n\n {/* Progress Bar */}\n <Box flex=\"1 1\" mx=\"0.5em\" width=\"10em\">\n <Seekbar\n value={currentTime}\n max={duration}\n onChange={handleSeek}\n trackColor=\"#e0e0e0\"\n progressBarColor=\"primary.main\"\n videoRef={videoRef}\n />\n </Box>\n\n {/* Video Duration */}\n <Typography width=\"2.5em\" color=\"white\">\n {`${Math.floor(duration / 60)}:${String(\n Math.floor(duration % 60)\n ).padStart(2, '0')}`}\n </Typography>\n\n {/* Speed Control */}\n <select\n onChange={handleSpeedChange}\n value={speed}\n style={{\n backgroundColor: 'black',\n color: 'white',\n borderRadius: '0.25em',\n border: '1px solid #e0e0e0',\n padding: '0 0.5em',\n }}\n >\n <option value={0.5}>0.5x</option>\n <option value={1}>1x</option>\n <option value={1.5}>1.5x</option>\n <option value={2}>2x</option>\n </select>\n\n {/* Volume Control */}\n <Stack\n direction=\"row\"\n justifyContent=\"space-around\"\n alignItems=\"center\"\n width=\"6em\"\n gap=\"0.5em\"\n >\n <IconButton onClick={toggleMute} color=\"primary\">\n {isMuted || volume === 0 ? <VolumeOffIcon /> : <VolumeUpIcon />}\n </IconButton>\n <Slider\n value={isMuted ? 0 : volume}\n onChange={handleVolumeChange}\n min={0}\n max={1}\n step={0.01}\n />\n </Stack>\n\n {/* Subtitles Toggle */}\n <IconButton color=\"primary\">\n <SubtitlesIcon />\n </IconButton>\n\n {/* Fullscreen Toggle */}\n <IconButton onClick={toggleFullscreen} color=\"primary\">\n {isFullscreen ? <FullscreenExitIcon /> : <FullscreenIcon />}\n </IconButton>\n </Stack>\n </Stack>\n );\n};\n\nexport default EliceVideoPlayer;\n\ninterface SeekbarProps {\n videoRef?: React.RefObject<HTMLVideoElement>;\n value: number;\n onChange: (newValue: number, isUserInteraction: boolean) => void;\n min?: number;\n max?: number;\n step?: number;\n disabled?: boolean;\n trackColor?: string; // 트랙 색상\n progressBarColor?: string; // 진행 상태 표시 바 색상\n}\n\nconst Seekbar: React.FC<SeekbarProps> = ({\n videoRef,\n value,\n onChange,\n min = 0,\n max = 100,\n step = 1,\n disabled = false,\n trackColor = 'grey.300',\n progressBarColor = 'primary.main',\n}) => {\n const trackRef = React.useRef<HTMLDivElement>(null);\n const progressBarRef = React.useRef<HTMLDivElement>(null);\n const thumbRef = React.useRef<HTMLDivElement>(null);\n const valueRef = React.useRef(value);\n const [isDragging, setIsDragging] = React.useState(false);\n\n // 마우스/터치 위치로부터 시크바의 값을 계산하는 함수\n const calculateValueFromPosition = React.useCallback(\n (clientX: number): number => {\n if (!trackRef.current) return value;\n\n const trackRect = trackRef.current.getBoundingClientRect();\n console.log(`${trackRect.left} ${trackRect.width}, clientX: ${clientX}`);\n const offsetX = Math.max(\n 0,\n Math.min(clientX - trackRect.left, trackRect.width)\n );\n const percentage = offsetX / trackRect.width;\n const rawValue = min + percentage * (max - min);\n\n return rawValue;\n },\n [min, max, value]\n );\n\n // 드래그 시작 또는 트랙 클릭 시 호출\n const handleInteractionStart = (clientX: number) => {\n if (disabled) return;\n setIsDragging(true);\n const newValue = calculateValueFromPosition(clientX);\n // 값이 실제로 변경되었을 때만 onChange 호출\n if (newValue !== value) {\n valueRef.current = newValue;\n onChange(newValue, true);\n }\n };\n\n // 드래그 중 마우스/터치 이동 시 호출\n const handleInteractionMove = React.useCallback(\n (clientX: number) => {\n if (!isDragging || disabled) return;\n const newValue = calculateValueFromPosition(clientX);\n if (newValue !== value) {\n const newPercentage = (newValue / max) * 100;\n if (thumbRef.current && progressBarRef.current) {\n thumbRef.current.style.left = `calc(${newPercentage}% - ${thumbRef.current.offsetWidth / 2\n }px)`;\n progressBarRef.current.style.width = `${newPercentage}%`;\n valueRef.current = newValue;\n onChange(newValue, true);\n }\n }\n },\n [isDragging, disabled, calculateValueFromPosition, onChange, value]\n );\n\n // 드래그 종료 시 호출\n const handleInteractionEnd = React.useCallback(() => {\n if (disabled) return; // 비활성화 시 아무것도 안 함\n setIsDragging(false);\n }, [disabled]);\n\n // 전역 이벤트 리스너 등록 및 해제 (드래그 동작을 위함)\n React.useEffect(() => {\n const handleMouseMove = (event: MouseEvent) =>\n handleInteractionMove(event.clientX);\n const handleTouchMove = (event: TouchEvent) => {\n if (event.touches.length > 0) {\n handleInteractionMove(event.touches[0].clientX);\n }\n };\n const handleMouseUp = () => handleInteractionEnd();\n const handleTouchEnd = () => handleInteractionEnd();\n\n if (isDragging) {\n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('touchmove', handleTouchMove, { passive: false }); // passive: false로 스크롤 방지\n window.addEventListener('mouseup', handleMouseUp);\n window.addEventListener('touchend', handleTouchEnd);\n window.addEventListener('mouseleave', handleMouseUp); // 마우스가 창 밖으로 나갔을 때도 종료 처리\n }\n\n return () => {\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('touchmove', handleTouchMove);\n window.removeEventListener('mouseup', handleMouseUp);\n window.removeEventListener('touchend', handleTouchEnd);\n window.removeEventListener('mouseleave', handleMouseUp);\n };\n }, [isDragging, handleInteractionMove, handleInteractionEnd]);\n\n React.useEffect(() => {\n const video = videoRef?.current;\n if (video && onChange) {\n const handleTimeUpdate = () => {\n const currentVideoTime = video.currentTime;\n\n // 현재 Seekbar의 'value' prop과 다를 때만 onChange 호출 (무한 루프 방지)\n // 부동 소수점 비교를 위해 작은 허용 오차(epsilon)를 사용하거나 step의 절반을 기준으로 비교\n const epsilon = step > 0 ? step / 1000 : 0.00001;\n const newPercentage = (currentVideoTime / max) * 100;\n if (thumbRef.current && progressBarRef.current) {\n thumbRef.current.style.left = `calc(${newPercentage}% - ${thumbRef.current.offsetWidth / 2\n }px)`;\n progressBarRef.current.style.width = `${newPercentage}%`;\n }\n if (Math.abs(currentVideoTime - value) > epsilon) {\n valueRef.current = currentVideoTime;\n onChange(currentVideoTime, false);\n }\n };\n\n video.addEventListener('timeupdate', handleTimeUpdate);\n return () => {\n video.removeEventListener('timeupdate', handleTimeUpdate);\n };\n }\n }, [videoRef, onChange, value, step, min, max]);\n React.useEffect(() => {\n valueRef.current = value;\n }, [value]);\n\n // 트랙 자체를 클릭했을 때 값 변경\n const handleTrackClick = (\n event: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>\n ) => {\n if (\n disabled ||\n (event.target !== trackRef.current &&\n event.target !== event.currentTarget.firstChild)\n ) {\n // Thumb 클릭 시 중복 방지\n // event.target !== event.currentTarget.firstChild : progress bar 클릭 시에도 적용되도록 수정\n if (event.target === thumbRef.current) return; // thumb 클릭 시에는 handleInteractionStart에서 처리하므로 중복 방지\n }\n const clientX =\n 'touches' in event ? event.touches[0].clientX : event.clientX;\n const newValue = calculateValueFromPosition(clientX);\n valueRef.current = newValue;\n console.log('newValue', newValue);\n onChange(newValue, true);\n };\n\n // 키보드 접근성 처리\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (disabled) return;\n let newValue = value;\n const largeStep = (max - min) / 10; // PageUp/PageDown을 위한 큰 스텝\n\n switch (event.key) {\n case 'ArrowLeft':\n case 'ArrowDown':\n newValue = value - step;\n break;\n\n case 'ArrowRight':\n case 'ArrowUp':\n newValue = value + step;\n break;\n\n case 'Home':\n newValue = min;\n break;\n\n case 'End':\n newValue = max;\n break;\n\n case 'PageUp':\n newValue = value + (step > 0 ? Math.max(step, largeStep) : largeStep);\n break;\n\n case 'PageDown':\n newValue = value - (step > 0 ? Math.max(step, largeStep) : largeStep);\n break;\n\n default:\n return; // 다른 키는 무시\n }\n event.preventDefault(); // 기본 동작(예: 페이지 스크롤) 방지\n if (newValue !== value) {\n valueRef.current = newValue;\n onChange(newValue, true);\n }\n };\n\n // 현재 값에 따른 진행률(%) 계산\n const percentage =\n ((Math.max(min, Math.min(valueRef.current, max)) - min) / (max - min)) *\n 100;\n\n const thumbSize = 0.8; // em, 핸들(thumb)의 크기\n const trackHeight = 0.3; // em, 트랙의 높이\n\n return (\n <Box display=\"flex\" alignItems=\"center\" width=\"100%\">\n <Box\n ref={trackRef}\n onClick={handleTrackClick}\n onTouchStart={handleTrackClick} // 터치 장치에서 트랙 클릭으로 값 설정 허용\n sx={{\n position: 'relative', // 내부 요소들의 position: absolute 기준점\n width: '100%',\n height: `${trackHeight}em`,\n backgroundColor: trackColor, // 트랙 배경색\n borderRadius: `${trackHeight / 2}em`, // 둥근 트랙\n cursor: disabled ? 'not-allowed' : 'pointer',\n touchAction: 'none', // 터치 드래그 시 페이지 스크롤 방지 (중요)\n flexGrow: 1,\n }}\n // 접근성 속성\n role=\"slider\"\n tabIndex={disabled ? -1 : 0} // 비활성화 시 포커스 불가, 활성화 시 포커스 가능\n aria-valuenow={value}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-disabled={disabled}\n aria-label={'Seekbar'} // 라벨이 없으면 기본 라벨 제공\n onKeyDown={handleKeyDown} // 키보드 이벤트 핸들러\n >\n {/* 진행 상태 표시 바 */}\n <Box\n ref={progressBarRef}\n position=\"absolute\"\n width={`${percentage}%`}\n height=\"100%\"\n backgroundColor={disabled ? 'grey.400' : progressBarColor}\n borderRadius={`${trackHeight / 2}em`}\n sx={{\n position: 'absolute',\n width: `${percentage}%`,\n height: '100%',\n backgroundColor: disabled ? 'grey.400' : 'primary.main', // 비활성화 시 색상 변경\n borderRadius: `${trackHeight / 2}px`,\n pointerEvents: 'none', // 클릭 이벤트가 트랙으로 전달되도록 함\n }}\n />\n {/* 핸들 (Thumb) */}\n <Box\n ref={thumbRef} // Thumb 참조 설정\n onMouseDown={(e: React.MouseEvent<HTMLDivElement>) => {\n e.stopPropagation(); // 이벤트 버블링 방지\n handleInteractionStart(e.clientX);\n }}\n onTouchStart={(e: React.TouchEvent<HTMLDivElement>) => {\n e.stopPropagation(); // 이벤트 버블링 방지\n if (e.touches.length > 0) {\n handleInteractionStart(e.touches[0].clientX);\n }\n }}\n sx={{\n position: 'absolute',\n top: '50%',\n left: `calc(${percentage}% - ${thumbSize / 2}em)`,\n width: `${thumbSize}em`,\n height: `${thumbSize}em`,\n backgroundColor: disabled ? '#bababa' : progressBarColor,\n borderRadius: '50%',\n transform: 'translateY(-50%)',\n cursor: disabled ? 'not-allowed' : isDragging ? 'grabbing' : 'grab',\n boxShadow: '0px 1px 3px rgba(0,0,0,0.2)',\n '&:hover': {\n boxShadow: !disabled ? '0px 2px 5px rgba(0,0,0,0.3)' : undefined,\n },\n transition: isDragging\n ? 'none'\n : 'box-shadow 0.1s ease-in-out, left 0.01s linear',\n zIndex: 1,\n }}\n />\n </Box>\n </Box>\n );\n};\n","import React from 'react';\nimport { css, Global } from '@emotion/react';\nimport { styled } from '@mui/material';\nimport { createDefu } from 'defu';\nimport videojs from \"video.js\";\n\ninterface VideoV2Props {\n source: {\n src: string;\n type?: string;\n }[];\n textTrack?: {\n src: string;\n lang: string;\n label?: string;\n default?: boolean;\n }[];\n options?: {\n autoplay?: boolean;\n controls?: boolean;\n poster?: string;\n playbackRates?: number[];\n // Add any other video.js options you want to support\n };\n}\nconst DEFAULT_OPTIONS = {\n autoplay: false,\n controls: true,\n poster: \"\",\n playbackRates: [0.5, 1, 1.5, 2.0],\n};\n\n\nconst VideoWrapper = styled('div')(({ theme }) => ({\n width: '100%',\n height: 'auto',\n boxShadow: theme.shadows[1],\n '--theme-primary-color': theme.palette.primary.main,\n '--theme-secondary-color': theme.palette.secondary.main,\n '& .video-js.elice-video': {\n minWidth: '22.5rem',\n fontSize: 'var(--fluid-size)',\n fontFamily: 'Pretendard, Arial, sans-serif',\n '& .vjs-control-bar': {\n backgroundColor: 'rgba(0, 0, 0, 0.70)',\n '@media (max-width: 768px)': {\n height: '2.5em',\n },\n },\n '& button.vjs-control, & button.vjs-menu-button': {\n '& .vjs-icon-placeholder:before': {\n content: '\" \"',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center',\n },\n },\n '& .vjs-progress-control.vjs-control': {\n '&>.vjs-slider': {\n margin: 0,\n '&>.vjs-play-progress': {\n backgroundColor: 'var(--theme-primary-color)',\n },\n },\n '@media (max-width: 768px)': {\n position: 'absolute',\n bottom: '2.3em',\n height: '0.5em',\n left: 0,\n width: '100%',\n },\n },\n '& .vjs-button': {\n '&.vjs-paused .vjs-icon-placeholder:before': {\n backgroundImage: 'url(\"data:image/svg+xml,%3Csvg viewBox=\\'0 0 40 40\\' fill=\\'none\\' xmlns=\\'http://www.w3.org/2000/svg\\'%3E%3Cpath d=\\'M15.3516 11.5234L26.6016 18.3984C27.1484 18.75 27.5 19.375 27.5 20C27.5 20.6641 27.1484 21.2891 26.6016 21.6016L15.3516 28.4766C14.7656 28.8281 14.0234 28.8672 13.4375 28.5156C12.8516 28.2031 12.5 27.5781 12.5 26.875V13.125C12.5 12.4609 12.8516 11.8359 13.4375 11.5234C14.0234 11.1719 14.7656 11.1719 15.3516 11.5234Z\\' fill=\\'white\\'/%3E%3C/svg%3E%0A\")'\n },\n '&.vjs-playing .vjs-icon-placeholder:before': {\n backgroundImage: 'url(\"data:image/svg+xml,%3Csvg viewBox=\\'0 0 40 40\\' fill=\\'none\\' xmlns=\\'http://www.w3.org/2000/svg\\'%3E%3Cpath d=\\'M15.625 12.5H16.875C17.8906 12.5 18.75 13.3594 18.75 14.375V25.625C18.75 26.6797 17.8906 27.5 16.875 27.5H15.625C14.5703 27.5 13.75 26.6797 13.75 25.625V14.375C13.75 13.3594 14.5703 12.5 15.625 12.5ZM23.125 12.5H24.375C25.3906 12.5 26.25 13.3594 26.25 14.375V25.625C26.25 26.6797 25.3906 27.5 24.375 27.5H23.125C22.0703 27.5 21.25 26.6797 21.25 25.625V14.375C21.25 13.3594 22.0703 12.5 23.125 12.5Z\\' fill=\\'white\\'/%3E%3C/svg%3E%0A\")'\n },\n '&.vjs-mute-control[title^=\"Un\"] .vjs-icon-placeholder:before': {\n backgroundImage: 'url(\"data:image/svg+xml,%3Csvg viewBox=\\'0 0 40 40\\' fill=\\'none\\' xmlns=\\'http://www.w3.org/2000/svg\\'%3E%3Cpath d=\\'M20.5078 11.3672C20.9375 11.5625 21.25 12.0312 21.25 12.5V27.5C21.25 28.0078 20.9375 28.4375 20.5078 28.6719C20.0391 28.8672 19.5312 28.7891 19.1406 28.4375L13.8672 23.75H11.25C9.84375 23.75 8.75 22.6562 8.75 21.25V18.75C8.75 17.3828 9.84375 16.25 11.25 16.25H13.8672L19.1406 11.6016C19.5312 11.25 20.0391 11.1719 20.5078 11.3672ZM25.3516 16.5234L27.5 18.6719L29.6484 16.5234C30 16.1719 30.5859 16.1719 30.9375 16.5234C31.3281 16.9141 31.3281 17.5 30.9375 17.8516L28.7891 20L30.9375 22.1484C31.3281 22.5391 31.3281 23.125 30.9375 23.4766C30.5859 23.8672 30 23.8672 29.6484 23.4766L27.5 21.3281L25.3516 23.4766C24.9609 23.8672 24.375 23.8672 24.0234 23.4766C23.6328 23.125 23.6328 22.5391 24.0234 22.1484L26.1719 20L24.0234 17.8516C23.6328 17.5 23.6328 16.9141 24.0234 16.5234C24.375 16.1719 24.9609 16.1719 25.3516 16.5234Z\\' fill=\\'white\\'/%3E%3C/svg%3E%0A\")',\n },\n '&.vjs-mute-control .vjs-icon-placeholder:before': {\n backgroundImage: 'url(\"data:image/svg+xml,%3Csvg viewBox=\\'0 0 40 40\\' fill=\\'none\\' xmlns=\\'http://www.w3.org/2000/svg\\'%3E%3Cpath d=\\'M21.7578 11.3672C22.1875 11.5625 22.5 12.0312 22.5 12.5V27.5C22.5 28.0078 22.1875 28.4375 21.7578 28.6719C21.2891 28.8672 20.7812 28.7891 20.3906 28.4375L15.1172 23.75H12.5C11.0938 23.75 10 22.6562 10 21.25V18.75C10 17.3828 11.0938 16.25 12.5 16.25H15.1172L20.3906 11.6016C20.7812 11.25 21.2891 11.1719 21.7578 11.3672ZM28.4766 14.1797C30.1562 15.5859 31.25 17.6562 31.25 20C31.25 22.3828 30.1562 24.4531 28.4766 25.8203C28.0469 26.1719 27.4609 26.0938 27.1484 25.7031C26.7969 25.3125 26.875 24.7266 27.2656 24.375C28.5547 23.3594 29.375 21.7969 29.375 20C29.375 18.2422 28.5547 16.6797 27.2656 15.6641C26.875 15.3125 26.8359 14.7266 27.1484 14.3359C27.4609 13.9453 28.0469 13.8672 28.4766 14.1797ZM26.0938 17.1094C26.9531 17.8125 27.5 18.8281 27.5 20C27.5 21.2109 26.9531 22.2266 26.0938 22.9297C25.7031 23.2422 25.1172 23.2031 24.7656 22.7734C24.4531 22.3828 24.5312 21.7969 24.9219 21.4844C25.3516 21.1328 25.625 20.5859 25.625 20C25.625 19.4141 25.3516 18.9062 24.9219 18.5547C24.5312 18.2422 24.4531 17.6562 24.7656 17.2266C25.1172 16.8359 25.7031 16.7969 26.0938 17.1094Z\\' fill=\\'white\\'/%3E%3C/svg%3E%0A\")',\n },\n '&.vjs-subs-caps-button .vjs-icon-placeholder:before': {\n backgroundImage: 'url(\"data:image/svg+xml,%3Csvg viewBox=\\'0 0 40 40\\' fill=\\'none\\' xmlns=\\'http://www.w3.org/2000/svg\\'%3E%3Cpath d=\\'M8.75 13.75C8.75 12.3828 9.84375 11.25 11.25 11.25H28.75C30.1172 11.25 31.25 12.3828 31.25 13.75V26.25C31.25 27.6562 30.1172 28.75 28.75 28.75H11.25C9.84375 28.75 8.75 27.6562 8.75 26.25V13.75ZM16.5625 18.125C17.1094 18.125 17.6172 18.3984 17.9297 18.75C18.2812 19.1406 18.8672 19.1797 19.2578 18.8281C19.6484 18.5156 19.6875 17.8906 19.3359 17.5C18.6719 16.7578 17.6562 16.25 16.5625 16.25C14.4922 16.25 12.8125 17.9297 12.8125 20C12.8125 22.0703 14.4922 23.75 16.5625 23.75C17.6562 23.75 18.6719 23.2812 19.3359 22.5C19.6875 22.1484 19.6484 21.5234 19.2578 21.2109C18.8672 20.8594 18.2812 20.8984 17.9297 21.25C17.6172 21.6406 17.1094 21.875 16.5625 21.875C15.5078 21.875 14.6875 21.0547 14.6875 20C14.6875 18.9844 15.5078 18.125 16.5625 18.125ZM22.1875 20C22.1875 18.9844 23.0078 18.125 24.0625 18.125C24.6094 18.125 25.1172 18.3984 25.4297 18.75C25.7812 19.1406 26.3672 19.1797 26.7578 18.8281C27.1484 18.5156 27.1875 17.8906 26.8359 17.5C26.1719 16.7578 25.1562 16.25 24.0625 16.25C21.9922 16.25 20.3125 17.9297 20.3125 20C20.3125 22.0703 21.9922 23.75 24.0625 23.75C25.1562 23.75 26.1719 23.2812 26.8359 22.5C27.1875 22.1484 27.1484 21.5234 26.7578 21.2109C26.3672 20.8594 25.7812 20.8984 25.4297 21.25C25.1172 21.6406 24.6094 21.875 24.0625 21.875C23.0078 21.875 22.1875 21.0547 22.1875 20Z\\' fill=\\'white\\'/%3E%3C/svg%3E%0A\")',\n },\n '&.vjs-subs-caps-button:has(> .vjs-menu .vjs-menu-item:not(.vjs-subtitles-menu-item)[aria-checked=\"true\"]) .vjs-icon-placeholder:before': {\n opacity: 0.5,\n },\n '&.vjs-fullscreen-control .vjs-icon-placeholder:before': {\n backgroundImage: 'url(\"data:image/svg+xml,%3Csvg viewBox=\\'0 0 40 40\\' fill=\\'none\\' xmlns=\\'http://www.w3.org/2000/svg\\'%3E%3Cpath d=\\'M12.5 11.25H16.25C16.9141 11.25 17.5 11.8359 17.5 12.5C17.5 13.2031 16.9141 13.75 16.25 13.75H13.75V16.25C13.75 16.9531 13.1641 17.5 12.5 17.5C11.7969 17.5 11.25 16.9531 11.25 16.25V12.5C11.25 11.8359 11.7969 11.25 12.5 11.25ZM13.75 23.75V26.25H16.25C16.9141 26.25 17.5 26.8359 17.5 27.5C17.5 28.2031 16.9141 28.75 16.25 28.75H12.5C11.7969 28.75 11.25 28.2031 11.25 27.5V23.75C11.25 23.0859 11.7969 22.5 12.5 22.5C13.1641 22.5 13.75 23.0859 13.75 23.75ZM23.75 11.25H27.5C28.1641 11.25 28.75 11.8359 28.75 12.5V16.25C28.75 16.9531 28.1641 17.5 27.5 17.5C26.7969 17.5 26.25 16.9531 26.25 16.25V13.75H23.75C23.0469 13.75 22.5 13.2031 22.5 12.5C22.5 11.8359 23.0469 11.25 23.75 11.25ZM28.75 23.75V27.5C28.75 28.2031 28.1641 28.75 27.5 28.75H23.75C23.0469 28.75 22.5 28.2031 22.5 27.5C22.5 26.8359 23.0469 26.25 23.75 26.25H26.25V23.75C26.25 23.0859 26.7969 22.5 27.5 22.5C28.1641 22.5 28.75 23.0859 28.75 23.75Z\\' fill=\\'white\\'/%3E%3C/svg%3E%0A\")',\n },\n '&.vjs-fullscreen-control[title^=\"Exit\"] .vjs-icon-placeholder:before': {\n backgroundImage: 'url(\"data:image/svg+xml,%3Csvg viewBox=\\'0 0 40 40\\' fill=\\'none\\' xmlns=\\'http://www.w3.org/2000/svg\\'%3E%3Cpath d=\\'M17.5 12.5V16.25C17.5 16.9531 16.9141 17.5 16.25 17.5H12.5C11.7969 17.5 11.25 16.9531 11.25 16.25C11.25 15.5859 11.7969 15 12.5 15H15V12.5C15 11.8359 15.5469 11.25 16.25 11.25C16.9141 11.25 17.5 11.8359 17.5 12.5ZM12.5 22.5H16.25C16.9141 22.5 17.5 23.0859 17.5 23.75V27.5C17.5 28.2031 16.9141 28.75 16.25 28.75C15.5469 28.75 15 28.2031 15 27.5V25H12.5C11.7969 25 11.25 24.4531 11.25 23.75C11.25 23.0859 11.7969 22.5 12.5 22.5ZM25 12.5V15H27.5C28.1641 15 28.75 15.5859 28.75 16.25C28.75 16.9531 28.1641 17.5 27.5 17.5H23.75C23.0469 17.5 22.5 16.9531 22.5 16.25V12.5C22.5 11.8359 23.0469 11.25 23.75 11.25C24.4141 11.25 25 11.8359 25 12.5ZM23.75 22.5H27.5C28.1641 22.5 28.75 23.0859 28.75 23.75C28.75 24.4531 28.1641 25 27.5 25H25V27.5C25 28.2031 24.4141 28.75 23.75 28.75C23.0469 28.75 22.5 28.2031 22.5 27.5V23.75C22.5 23.0859 23.0469 22.5 23.75 22.5Z\\' fill=\\'white\\'/%3E%3C/svg%3E%0A\")',\n },\n },\n '& .vjs-big-play-button': {\n width: 'calc(var(--fluid-size) * 4)',\n height: 'calc(var(--fluid-size) * 4)',\n marginTop: 'calc(var(--fluid-size) * -2)',\n marginLeft: 'calc(var(--fluid-size) * -2)',\n backgroundColor: 'transparent',\n '&:before': {\n width: '100%',\n height: '100%',\n content: '\"\"',\n backgroundColor: 'var(--theme-secondary-color)',\n opacity: 0.4,\n borderRadius: '0.3em',\n position: 'absolute',\n top: 0,\n left: 0,\n },\n '& .vjs-icon-placeholder:before': {\n fontSize: 'calc(var(--fluid-size) * 2)',\n lineHeight: 'calc(var(--fluid-size) * 3)',\n }\n },\n '& .vjs-volume-bar': {\n margin: '1.35em 0 1.35em',\n '@media (max-width: 768px)': {\n margin: '1.1em 0 1.1em',\n width: '3em',\n },\n },\n '& .vjs-time-tooltip': {\n fontSize: 'calc(var(--fluid-size) * 0.8)',\n },\n '& .vjs-control.vjs-button': {\n width: '3em',\n padding: '0 0.5em',\n '&>*::before': {\n fontSize: 'calc(var(--fluid-size) * 1.5)',\n lineHeight: 'calc(var(--fluid-size) * 3)',\n '@media (max-width: 768px)': {\n lineHeight: 'calc(var(--fluid-size) * 2.5)',\n },\n },\n '@media (max-width: 768px)': {\n width: '2em',\n padding: '0 0.2em',\n },\n },\n '& .vjs-control': {\n width: '3em',\n },\n '& .vjs-volume-panel.vjs-volume-panel-horizontal': {\n width: '8em',\n '@media (max-width: 768px)': {\n width: '6em',\n },\n '& .vjs-control.vjs-volume-control': {\n opacity: 1,\n width: '5em',\n '@media (max-width: 768px)': {\n display: 'block',\n width: 'fit-content',\n marginRight: '1em',\n height: '2.5em',\n opacity: 1,\n },\n },\n },\n '& .vjs-time-control': {\n padding: '0 0.2em',\n '&.vjs-current-time': {\n marginLeft: '0.5em',\n },\n '&.vjs-duration': {\n marginRight: '0.5em',\n },\n fontSize: 'calc(var(--fluid-size) * 0.8)',\n lineHeight: 'calc(var(--fluid-size) * 3)',\n '@media (max-width: 768px)': {\n lineHeight: 'calc(var(--fluid-size) * 2.5)',\n },\n },\n '& .vjs-playback-rate': {\n display: 'block',\n marginLeft: 'auto',\n '& .vjs-menu': {\n left: '-0.5em',\n },\n '& .vjs-playback-rate-value': {\n fontSize: 'calc(var(--fluid-size) * 0.8)',\n lineHeight: 'calc(var(--fluid-size) * 3)',\n '@media (max-width: 768px)': {\n lineHeight: 'calc(var(--fluid-size) * 2.5)',\n },\n },\n '& .vjs-menu-item': {\n fontSize: 'calc(var(--fluid-size) * 1)',\n lineHeight: 'calc(var(--fluid-size) * 1.4)',\n },\n },\n '& .vjs-menu.vjs-lock-showing .vjs-menu-item': {\n marginBlock: 0,\n },\n '& .vjs-current-time, & .vjs-duration, & .vjs-time-divider': {\n display: 'block',\n fontFamily: 'Pretendard, Arial, sans-serif',\n },\n '& .vjs-time-divider': {\n width: 'auto',\n minWidth: 0,\n padding: 0,\n },\n '& .vjs-remaining-time': {\n display: 'none',\n },\n '& .vjs-volume-level': {\n backgroundColor: 'var(--theme-primary-color)',\n color: 'var(--theme-primary-color)',\n },\n '& .vjs-load-progress': {\n backgroundColor: 'var(--theme-secondary-color)',\n opacity: 0.5,\n },\n '& .vjs-subs-caps-button .vjs-menu': {\n width: '10em',\n left: '-5em',\n '& .vjs-texttrack-settings': {\n order: 10,\n },\n '@media (max-width: 768px)': {\n left: '-2em',\n width: '6em',\n },\n },\n '& .vjs-menu-button .vjs-menu::before': {\n content: '\"\"',\n position: 'absolute',\n bottom: '1em',\n left: 0,\n width: '100%',\n height: '0.3em',\n },\n '& .vjs-menu-content': {\n marginBottom: '0.5em',\n backgroundColor: 'rgba(0, 0, 0, 0.70)',\n borderRadius: '0.6em',\n padding: '0.4em',\n display: 'flex',\n flexDirection: 'column',\n '& > .vjs-menu-item': {\n margin: 0,\n marginBlock: 0,\n padding: '0.5em 1em',\n borderRadius: '0.4em',\n color: 'white',\n fontSize: 'calc(var(--fluid-size) * 0.8)',\n '@media (max-width: 768px)': {\n padding: '0.4em',\n fontSize: 'calc(var(--fluid-size) * 0.7)',\n },\n '&.vjs-selected': {\n backgroundColor: 'rgba(255, 255, 255, 0.50)',\n },\n '&:hover': {\n backgroundColor: 'rgba(255, 255, 255, 0.30)',\n },\n },\n },\n },\n}))\n\nconst defu = createDefu((object, key, currentValue) => {\n if (Array.isArray(object[key])) {\n object[key] = currentValue;\n return true;\n }\n}); defu\n\nexport function EliceVideoV2({\n source,\n textTrack,\n options: _options,\n}: VideoV2Props) {\n const options = defu(_options ?? {}, DEFAULT_OPTIONS);\n const videoRef = React.useRef<HTMLVideoElement | null>(null);\n const playerRef = React.useRef<ReturnType<typeof videojs> | null>(null);\n return (\n <VideoWrapper>\n <Global\n styles={css`\n @import url('https://cdn.jsdelivr.net/npm/video.js@8.22.0/dist/video-js.min.css');\n `}\n />\n <video\n ref={(r: HTMLVideoElement) => {\n if (!videoRef.current) {\n videoRef.current = r;\n requestAnimationFrame(() => {\n const player = videojs(r, defu(options, {\n disablePictureInPicture: true,\n fluid: true,\n languages: {\n ko: {\n \"Audio Player\": \"오디오 플레이어\",\n \"Video Player\": \"비디오 플레이어\",\n \"Play\": \"재생\",\n \"Pause\": \"일시중지\",\n \"Replay\": \"다시 재생\",\n \"Current Time\": \"현재 시간\",\n \"Duration\": \"지정 기간\",\n \"Remaining Time\": \"남은 시간\",\n \"Stream Type\": \"스트리밍 유형\",\n \"LIVE\": \"라이브\",\n \"Seek to live, currently behind live\": \"Seek to Live, 현재 생중계보다 뒤처짐\",\n \"Seek to live, currently playing live\": \"Seek to Live, 현재 생중계 스트리밍 중\",\n \"Loaded\": \"로드됨\",\n \"Progress\": \"진행\",\n \"Progress Bar\": \"진행 표시줄\",\n \"progress bar timing: currentTime={1} duration={2}\": \"{2} 중 {1}\",\n \"Fullscreen\": \"전체 화면\",\n \"Exit Fullscreen\": \"전체 화면 해제\",\n \"Mute\": \"음소거\",\n \"Unmute\": \"음소거 해제\",\n \"Playback Rate\": \"재생 속도\",\n \"Subtitles\": \"자막\",\n \"subtitles off\": \"자막 끄기\",\n \"Captions\": \"자막\",\n \"captions off\": \"자막 끄기\",\n \"Chapters\": \"챕터\",\n \"Descriptions\": \"제품 설명\",\n \"descriptions off\": \"제품 설명 끄기\",\n \"Audio Track\": \"오디오 트랙\",\n \"Volume Level\": \"볼륨 레벨\",\n \"You aborted the media playback\": \"비디오 재생을 취소했습니다.\",\n \"A network error caused the media download to fail part-way.\": \"네트워크 오류로 인하여 비디오 일부를 다운로드하지 못 했습니다.\",\n \"The media could not be loaded, either because the server or network failed or because the format is not supported.\": \"비디오를 로드할 수 없습니다. 서버 혹은 네트워크 오류 때문이거나 지원되지 않는 형식 때문일 수 있습니다.\",\n \"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.\": \"비디오 재생이 취소됐습니다. 비디오가 손상되었거나 비디오가 사용하는 기능을 브라우저에서 지원하지 않는 것 같습니다.\",\n \"No compatible source was found for this media.\": \"비디오에 호환되지 않는 소스가 있습니다.\",\n \"The media is encrypted and we do not have the keys to decrypt it.\": \"미디어는 암호화되어 있으며 이를 해독할 키를 갖고 있지 않습니다.\",\n \"Play Video\": \"영상 재생\",\n \"Close\": \"닫기\",\n \"Close Modal Dialog\": \"대화 상자 닫기\",\n \"Modal Window\": \"모달 창\",\n \"This is a modal window\": \"모달 창입니다\",\n \"This modal can be closed by pressing the Escape key or activating the close button.\": \"이 모달은 Esc 키를 누르거나 닫기 버튼을 활성화하여 닫을 수 있습니다.\",\n \", opens captions settings dialog\": \", 자막 설정 대화 상자가 열립니다\",\n \", opens subtitles settings dialog\": \", 자막 설정 대화 상자가 열립니다\",\n \", opens descriptions settings dialog\": \", 설명 설정 대화 상자가 열립니다\",\n \", selected\": \", 선택됨\",\n \"captions settings\": \"자막 설정\",\n \"subtitles settings\": \"자막 설정\",\n \"descriptions settings\": \"설명 설정\",\n \"Text\": \"텍스트\",\n \"White\": \"화이트\",\n \"Black\": \"블랙\",\n \"Red\": \"레드\",\n \"Green\": \"그린\",\n \"Blue\": \"블루\",\n \"Yellow\": \"옐로우\",\n \"Magenta\": \"마젠타\",\n \"Cyan\": \"씨엉\",\n \"Background\": \"배경\",\n \"Window\": \"창\",\n \"Transparent\": \"투명\",\n \"Semi-Transparent\": \"반투명\",\n \"Opaque\": \"불투명\",\n \"Font Size\": \"폰트 크기\",\n \"Text Edge Style\": \"텍스트 가장자리 스타일\",\n \"None\": \"없음\",\n \"Raised\": \"글자 위치 올림\",\n \"Depressed\": \"글자 위치 내림\",\n \"Uniform\": \"균일\",\n \"Drop shadow\": \"그림자 효과 넣기\",\n \"Font Family\": \"폰트 모음\",\n \"Proportional Sans-Serif\": \"비례 산세리프체\",\n \"Monospace Sans-Serif\": \"고정폭 산세리프체\",\n \"Proportional Serif\": \"비례 세리프체\",\n \"Monospace Serif\": \"고정폭 세리프체\",\n \"Casual\": \"캐주얼\",\n \"Script\": \"스크립트\",\n \"Small Caps\": \"소문자\",\n \"Reset\": \"리셋\",\n \"restore all settings to the default values\": \"모든 설정을 기본값으로 복원\",\n \"Done\": \"완료\",\n \"Caption Settings Dialog\": \"자막 설정 대화 상자\",\n \"Beginning of dialog window. Escape will cancel and close the window.\": \"대화창 시작. Esc 키를 누르면 취소되고 창이 닫힙니다.\",\n \"End of dialog window.\": \"대화창 종료\",\n \"{1} is loading.\": \"{1}이(가) 로딩 중입니다.\",\n \"Exit Picture-in-Picture\": \"Picture-in-Picture 종료\",\n \"Picture-in-Picture\": \"Picture-in-Picture\",\n \"No content\": \"콘텐츠 없음\",\n \"Color\": \"색상\",\n \"Opacity\": \"투명도\",\n \"Text Background\": \"텍스트 배경\",\n \"Caption Area Background\": \"자막 배경\"\n }\n }\n }));\n playerRef.current = player;\n });\n return function () {\n if (!r && playerRef.current) {\n playerRef.current?.dispose();\n playerRef.current = null;\n }\n }\n }\n }}\n className=\"video-js elice-video vjs-default-skin\"\n >\n {source.map((srcInfo) => (\n <source key={srcInfo.src} src={srcInfo.src} type={srcInfo.type} />\n ))}\n {textTrack?.map((track) => (\n <track\n key={track.src}\n src={track.src}\n kind=\"subtitles\"\n srcLang={track.lang}\n label={track.label}\n default={track.default}\n />\n ))}\n </video>\n </VideoWrapper>\n );\n}\n","import React, { createContext, useContext, useReducer, useCallback, ReactNode } from 'react';\n\nexport type AudioStep = 'ready' | 'recording' | 'pause' | 'waiting';\nexport type StepFlowType =\n | 'basic'\n | 'pauseable'\n | 'oneClick'\n | 'recordOnly'\n | 'instantRecord';\n\ninterface RecorderState {\n step: AudioStep;\n recorder: MediaRecorder | null;\n analyzer: AnalyserNode | null;\n isRecording: boolean;\n file: File | null;\n audioUrl: string;\n}\n\nexport interface RecorderInitState {\n step: AudioStep;\n isRecording: boolean;\n file: File | null;\n}\n\ntype RecorderAction =\n | { type: 'SET_STEP'; payload: AudioStep }\n | { type: 'SET_RECORDER'; payload: MediaRecorder | null }\n | { type: 'SET_ANALYZER'; payload: AnalyserNode | null }\n | { type: 'SET_IS_RECORDING'; payload: boolean }\n | { type: 'SET_FILE'; payload: File | null }\n | { type: 'SET_AUDIO_URL'; payload: string }\n | { type: 'INIT_STATE'; payload: RecorderInitState };\n\nconst initialState: RecorderState = {\n step: 'ready',\n recorder: null,\n analyzer: null,\n isRecording: false,\n file: null,\n audioUrl: '',\n};\n\nfunction recorderReducer(state: RecorderState, action: RecorderAction): RecorderState {\n switch (action.type) {\n case 'SET_STEP':\n return { ...state, step: action.payload };\n case 'SET_RECORDER':\n return { ...state, recorder: action.payload };\n case 'SET_ANALYZER':\n return { ...state, analyzer: action.payload };\n case 'SET_IS_RECORDING':\n return { ...state, isRecording: action.payload };\n case 'SET_FILE':\n return { ...state, file: action.payload };\n case 'SET_AUDIO_URL':\n return { ...state, audioUrl: action.payload };\n case 'INIT_STATE':\n return { ...state, ...action.payload };\n default:\n return state;\n }\n}\n\ninterface RecorderContextType {\n state: RecorderState;\n startRecording: (onComplete?: (file: File) => void) => Promise<void>;\n stopRecording: (isSubmit: boolean) => void;\n pauseRecording: () => void;\n resumeRecording: () => void;\n initRecordingState: (state: RecorderInitState) => void;\n}\n\nconst RecorderContext = createContext<RecorderContextType | undefined>(undefined);\n\ninterface RecorderProviderProps {\n children: ReactNode;\n}\n\nexport const RecorderProvider = ({ children }: RecorderProviderProps) => {\n const [state, dispatch] = useReducer(recorderReducer, initialState);\n\n const startRecording = useCallback(async (onComplete?: (file: File) => void) => {\n try {\n const stream = await navigator.mediaDevices.getUserMedia({ audio: true });\n const audioChunks: Blob[] = [];\n\n const recorder = new MediaRecorder(stream);\n\n recorder.addEventListener('dataavailable', event => {\n if (event.data.size > 0) {\n audioChunks.push(event.data);\n }\n });\n\n recorder.addEventListener('stop', () => {\n const blob = new Blob(audioChunks, { type: 'audio/wav' });\n const file = new File([blob], `recording-${Date.now()}.wav`, {\n type: 'audio/wav',\n });\n const url = URL.createObjectURL(file);\n dispatch({ type: 'SET_FILE', payload: file });\n dispatch({ type: 'SET_AUDIO_URL', payload: url });\n\n onComplete?.(file);\n });\n\n // AudioContext 연결\n const audioContext = new AudioContext();\n const analyzer = audioContext.createAnalyser();\n const source = audioContext.createMediaStreamSource(stream);\n source.connect(analyzer);\n analyzer.fftSize = 256;\n\n dispatch({ type: 'SET_ANALYZER', payload: analyzer });\n dispatch({ type: 'SET_RECORDER', payload: recorder });\n\n recorder.addEventListener('start', () => {\n dispatch({ type: 'SET_STEP', payload: 'recording' });\n });\n\n recorder.start();\n } catch (error) {\n console.error('🎤 마이크 권한 오류:', error);\n }\n }, []);\n\n const stopRecording = useCallback((isSubmit: boolean) => {\n const { recorder, analyzer } = state;\n recorder?.stop();\n recorder?.stream.getTracks().forEach(track => track.stop());\n if (analyzer?.context.state !== 'closed') {\n (analyzer?.context as AudioContext)\n ?.close()\n .catch(e => console.warn('AudioContext already closed', e));\n }\n if (isSubmit) {\n dispatch({ type: 'SET_STEP', payload: 'ready' });\n } else {\n dispatch({ type: 'SET_STEP', payload: 'waiting' });\n }\n }, [state]);\n\n const pauseRecording = useCallback(() => {\n const { recorder } = state;\n recorder?.pause();\n dispatch({ type: 'SET_STEP', payload: 'pause' });\n }, [state]);\n\n const resumeRecording = useCallback(() => {\n const { recorder } = state;\n if (recorder?.state === 'paused') {\n recorder?.resume();\n dispatch({ type: 'SET_STEP', payload: 'recording' });\n }\n }, [state]);\n\n const initRecordingState = useCallback((initState: RecorderInitState) => {\n dispatch({ type: 'INIT_STATE', payload: initState });\n }, []);\n\n const value: RecorderContextType = {\n state,\n startRecording,\n stopRecording,\n pauseRecording,\n resumeRecording,\n initRecordingState,\n };\n\n return (\n <RecorderContext.Provider value={value}>\n {children}\n </RecorderContext.Provider>\n );\n};\n\nexport const useRecorderInnerState = () => {\n const context = useContext(RecorderContext);\n if (context === undefined) {\n throw new Error('useRecorderInnerState must be used within a RecorderProvider');\n }\n return {\n step: context.state.step,\n isRecording: context.state.isRecording,\n analyzer: context.state.analyzer,\n };\n};\n\nexport const useRecorderAction = () => {\n const context = useContext(RecorderContext);\n if (context === undefined) {\n throw new Error('useRecorderAction must be used within a RecorderProvider');\n }\n return {\n startRecording: context.startRecording,\n stopRecording: context.stopRecording,\n pauseRecording: context.pauseRecording,\n resumeRecording: context.resumeRecording,\n };\n};\n\nexport const useInitRecorder = (props: RecorderInitState) => {\n const context = useContext(RecorderContext);\n if (context === undefined) {\n throw new Error('useInitRecorder must be used within a RecorderProvider');\n }\n\n const firstRender = React.useRef(false);\n if (!firstRender.current) {\n firstRender.current = true;\n context.initRecordingState(props);\n }\n};\n","import React, { useState } from 'react';\nimport { EliceButton } from '@elicecontents/content-ui';\nimport {\n EliceAudioPlayer,\n ReadyRecord,\n Recording,\n} from '@elicecontents/content-ui';\nimport { Button, Stack, styled, Typography } from '@mui/material';\n\nimport { SoundVisualizer } from '../sound-visualizer';\nimport {\n useInitRecorder,\n useRecorderAction,\n useRecorderInnerState,\n RecorderProvider,\n} from './recorderStore';\n\nimport type { SoundVisualizerVariant } from '@elicecontents/content-ui';\nimport type { SxProps } from '@mui/material';\nimport type { AudioStep } from './recorderStore';\n\nexport type RecorderStep = 'ready' | 'recording' | 'pause' | 'waiting';\nexport type RecorderType = 'pause' | 'waiting' | 'unsubmit' | null;\n\nexport interface EliceRecorderStepProps {\n onAudioReady: (file: File) => void;\n onTransform?: () => void;\n type?: RecorderType[];\n visualType?: SoundVisualizerVariant;\n isReadyVisual?: boolean;\n onRecord?: () => void;\n onResume?: () => void;\n onPause?: () => void;\n defaultBarColor?: string;\n closeRecorder?: () => void;\n onTranscribingChange?: (value: boolean) => void;\n isLoadingMessage?: boolean;\n forcedStep?: RecorderStep;\n sx?: SxProps;\n onRecordStep?: (step: AudioStep) => void;\n initFile?: File;\n disabled?: boolean;\n}\n\nexport const EliceRecorderBlock = ({\n onAudioReady,\n onTransform,\n visualType = 'bar',\n onRecord,\n type = [],\n isReadyVisual = false,\n onResume,\n onPause,\n onTranscribingChange,\n forcedStep,\n closeRecorder,\n defaultBarColor,\n sx,\n onRecordStep,\n initFile,\n disabled = false,\n}: EliceRecorderStepProps) => {\n useInitRecorder({\n step: forcedStep ?? 'ready',\n isRecording: false,\n file: initFile ?? null,\n });\n const { startRecording, stopRecording, pauseRecording, resumeRecording } =\n useRecorderAction();\n const recorderState = useRecorderInnerState();\n const [audioUrl, setAudioUrl] = useState<string>('');\n const currentStep = recorderState.step;\n\n const handleStart = async () => {\n onTranscribingChange?.(true);\n onRecord?.();\n\n await startRecording(file => {\n onAudioReady(file);\n const url = URL.createObjectURL(file);\n setAudioUrl(url);\n });\n };\n\n const firstTimeInit = React.useRef(false);\n\n React.useEffect(() => {\n if (initFile) {\n const url = URL.createObjectURL(initFile);\n setAudioUrl(url);\n firstTimeInit.current = true;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [initFile]);\n\n const handlePause = () => {\n onPause?.();\n pauseRecording();\n };\n\n const handleResume = () => {\n onResume?.();\n resumeRecording();\n };\n\n const handleStop = () => {\n stopRecording(false);\n onTranscribingChange?.(false);\n };\n\n const handleSubmit = () => {\n onTransform?.();\n closeRecorder?.();\n };\n\n const handleOnlySubmit = () => {\n stopRecording(true);\n onTranscribingChange?.(false);\n onTransform?.();\n closeRecorder?.();\n };\n\n React.useEffect(() => {\n onRecordStep?.(currentStep);\n }, [currentStep, onRecordStep]);\n\n return (\n <StyledVisualizerBox sx={sx}>\n {currentStep === 'ready' && (\n <>\n {!isReadyVisual && (\n <SoundVisualizer\n analyser={recorderState.analyzer}\n variant={visualType}\n bgColor=\"transparent\"\n defaultBarColor={defaultBarColor}\n />\n )}\n <StyledRecorderButton onClick={handleStart} step={currentStep}>\n <ReadyRecord />\n <Typography variant=\"subtitle2\">녹음 시작</Typography>\n </StyledRecorderButton>\n </>\n )}\n {currentStep === 'recording' && (\n <>\n <SoundVisualizer\n analyser={recorderState.analyzer}\n variant={visualType}\n defaultBarColor={defaultBarColor}\n bgColor=\"transparent\"\n />\n <StyledVisualizerBoxButtonContainer>\n {type.includes('pause') && (\n <StyledPauseButton onClick={handlePause}>\n <Recording color=\"#485EAD\" squareColor=\"#0A379B\" />\n <Typography variant=\"subtitle2\">일시 정지</Typography>\n </StyledPauseButton>\n )}\n <StyledRecorderButton\n onClick={type.length !== 0 ? handleStop : handleOnlySubmit}\n step={currentStep}\n >\n <Recording />\n <Typography variant=\"subtitle2\">녹음 완료</Typography>\n </StyledRecorderButton>\n </StyledVisualizerBoxButtonContainer>\n </>\n )}\n {currentStep === 'pause' && (\n <>\n <SoundVisualizer\n analyser={null}\n variant={visualType}\n bgColor=\"transparent\"\n />\n <StyledVisualizerBoxButtonContainer>\n {type.includes('pause') && (\n <StyledPauseButton onClick={handleResume}>\n <Recording color=\"#485EAD\" squareColor=\"#0A379B\" />\n <Typography variant=\"subtitle2\">이어서 녹음</Typography>\n </StyledPauseButton>\n )}\n <StyledRecorderButton onClick={handleStop} step={currentStep}>\n <Recording />\n <Typography variant=\"subtitle2\">녹음 완료</Typography>\n </StyledRecorderButton>\n </StyledVisualizerBoxButtonContainer>\n </>\n )}\n {currentStep === 'waiting' && type.includes('waiting') && (\n <>\n {audioUrl && <EliceAudioPlayer src={audioUrl} />}\n <StyledVisualizerBoxButtonContainer>\n <StyledRecorderButton\n disabled={disabled}\n onClick={handleStart}\n step={currentStep}\n >\n <ReadyRecord />\n <Typography variant=\"subtitle2\">다시 녹음</Typography>\n </StyledRecorderButton>\n {!type.includes('unsubmit') && (\n <EliceButton disabled={disabled} onClick={handleSubmit}>\n <Typography variant=\"subtitle2\">완료</Typography>\n </EliceButton>\n )}\n </StyledVisualizerBoxButtonContainer>\n </>\n )}\n </StyledVisualizerBox>\n );\n};\n\nconst StyledVisualizerBox = styled(Stack)`\n width: 100%;\n font-size: 20px;\n height: 10.6em;\n background-color: #fff;\n border-radius: 1.2em;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 1.6em;\n`;\n\nconst StyledVisualizerBoxButtonContainer = styled(Stack)`\n width: 100%;\n display: flex;\n flex-direction: row;\n gap: 1.7em;\n justify-content: center;\n align-items: center;\n`;\n\nconst StyledRecorderButtonDefault = styled(Button)`\n display: flex;\n width: 16em;\n border: none;\n height: 2.75em;\n padding: 0.6em 1em 0.6em 0.85em;\n justify-content: center;\n align-items: center;\n gap: 0.4em;\n cursor: pointer;\n flex-shrink: 0;\n border-radius: 0.8em;\n`;\n\nconst StyledRecorderButton = styled(StyledRecorderButtonDefault) <{\n step: RecorderStep;\n}>`\n color: ${({ step }) =>\n step === 'ready' || step === 'waiting' ? '#fff' : '#FF5D58'};\n background: ${({ step }) =>\n step === 'ready' || step === 'waiting' ? '#FF5D58' : '#FBE0E0'};\n\n &:hover {\n background: #FFB1AF !important;\n color: #FF5D58 !important;\n }\n`;\n\nconst StyledPauseButton = styled(StyledRecorderButtonDefault)`\n color: #0a379b;\n background: #bec4e1;\n &:hover {\n color: #bec4e1;\n background-color: #0a379b;\n }\n`;\n\n// EliceRecorder는 내부적으로 RecorderProvider를 제공\nexport const EliceRecorder = (props: EliceRecorderStepProps) => {\n return (\n <RecorderProvider>\n <EliceRecorderBlock {...props} />\n </RecorderProvider>\n );\n};\n","import { useTheme } from '@mui/material';\nimport styled from '@emotion/styled';\n\nconst IconWrapper = styled.button<{ pressColor: string; }>`\n padding: 0;\n border: none;\n background: transparent;\n cursor: pointer;\n\n &:active svg rect {\n fill: #7c85b8; // 눌렀을 때 바뀌는 배경색\n }\n\n &:active svg path {\n fill: #f0f0f0; // 눌렀을 때 아이콘 색\n }\n`;\n\nconst PauseIcon = ({ width = 40, height = 40 }: { width?: number; height?: number }) => {\n const theme = useTheme();\n return (\n <IconWrapper pressColor={theme.palette.secondary.main}>\n <svg\n width={width}\n height={height}\n viewBox=\"0 0 54 54\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g filter=\"url(#filter0_i_593_3904)\">\n <rect width=\"54\" height=\"54\" rx=\"16\" fill={theme.palette.primary.main} />\n </g>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M20 17.75H22C23.2426 17.75 24.25 18.7574 24.25 20V34C24.25 35.2426 23.2426 36.25 22 36.25H20C18.7574 36.25 17.75 35.2426 17.75 34V20C17.75 18.7574 18.7574 17.75 20 17.75ZM16 20C16 17.7909 17.7909 16 20 16H22C24.2091 16 26 17.7909 26 20V34C26 36.2091 24.2091 38 22 38H20C17.7909 38 16 36.2091 16 34V20ZM32 17.75H34C35.2426 17.75 36.25 18.7574 36.25 20V34C36.25 35.2427 35.2426 36.25 34 36.25H32C30.7573 36.25 29.75 35.2427 29.75 34V20C29.75 18.7574 30.7573 17.75 32 17.75ZM28 20C28 17.7909 29.7908 16 32 16H34C36.2091 16 38 17.7909 38 20V34C38 36.2092 36.2091 38 34 38H32C29.7908 38 28 36.2092 28 34V20Z\"\n fill=\"white\"\n />\n <defs>\n <filter\n id=\"filter0_i_593_3904\"\n x=\"0\"\n y=\"0\"\n width=\"55\"\n height=\"55\"\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset dx=\"1\" dy=\"1\" />\n <feGaussianBlur stdDeviation=\"3.3\" />\n <feComposite in2=\"hardAlpha\" operator=\"arithmetic\" k2=\"-1\" k3=\"1\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0.912047 0 0 0 0 0.912047 0 0 0 0 0.940267 0 0 0 1 0\"\n />\n <feBlend mode=\"normal\" in2=\"shape\" result=\"effect1_innerShadow_593_3904\" />\n </filter>\n </defs>\n </svg>\n </IconWrapper>\n );\n};\n\nexport default PauseIcon;\n","import { useTheme } from '@mui/material';\nimport styled from '@emotion/styled';\n\nconst IconWrapper = styled.button<{ pressColor: string; }>`\n padding: 0;\n border: none;\n background: transparent;\n cursor: pointer;\n\n &:active svg rect {\n fill: #7c85b8; // 눌렀을 때 바뀌는 배경색\n }\n\n &:active svg path {\n fill: #f0f0f0; // 눌렀을 때 아이콘 색\n }\n`;\n\nconst PlayIcon = ({ width = 40, height = 40 }: { width?: number; height?: number }) => {\n const theme = useTheme();\n return (\n <IconWrapper pressColor={theme.palette.secondary.main}>\n <svg\n width={width}\n height={height}\n viewBox=\"0 0 54 54\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g filter=\"url(#filter0_i_274_7284)\">\n <rect width=\"54\" height=\"54\" rx=\"16\" fill={theme.palette.primary.main} />\n </g>\n <path\n d=\"M37.1161 29.0649C37.5038 28.8516 37.8228 28.5325 38.0361 28.1448C38.6571 27.0157 38.2452 25.5969 37.1161 24.9759L20.9578 16.0888C20.6133 15.8993 20.2265 15.8 19.8333 15.8C18.5447 15.8 17.5 16.8447 17.5 18.1333V35.9074C17.5 36.3006 17.5994 36.6874 17.7888 37.0319C18.4099 38.161 19.8287 38.5729 20.9578 37.9519L37.1161 29.0649ZM19.5417 17.6317L36.5963 27.0133L19.5417 36.3942V17.6317Z\"\n fill=\"white\"\n />\n <defs>\n <filter\n id=\"filter0_i_274_7284\"\n x=\"0\"\n y=\"0\"\n width=\"55\"\n height=\"55\"\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset dx=\"1\" dy=\"1\" />\n <feGaussianBlur stdDeviation=\"3.3\" />\n <feComposite in2=\"hardAlpha\" operator=\"arithmetic\" k2=\"-1\" k3=\"1\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0.912047 0 0 0 0 0.912047 0 0 0 0 0.940267 0 0 0 1 0\"\n />\n <feBlend mode=\"normal\" in2=\"shape\" result=\"effect1_innerShadow_274_7284\" />\n </filter>\n </defs>\n </svg>\n </IconWrapper>\n );\n};\n\nexport default PlayIcon;\n","import React, { useRef, useState, useEffect } from 'react';\nimport { LinearProgress, Stack } from '@mui/material';\nimport styled from '@emotion/styled';\nimport PauseIcon from './Pause';\nimport PlayIcon from './Play';\n\nexport interface EliceAudioPlayerProps {\n src: string;\n mimeType?: string;\n onFileLoaded?: (file: File) => void;\n}\n\nconst PlayerButton = styled.button`\n display: flex;\n background-color: transparent !important;\n border: none;\n`;\n\nconst getAccurateDuration = async (src: string): Promise<number | null> => {\n try {\n const response = await fetch(src);\n const arrayBuffer = await response.arrayBuffer();\n const audioCtx = new AudioContext();\n const audioBuffer = await audioCtx.decodeAudioData(arrayBuffer);\n return audioBuffer.duration;\n } catch (err) {\n console.error('🎧 decodeAudioData 실패:', err);\n return null;\n }\n};\n\nconst EliceAudioPlayer = ({\n src,\n mimeType = 'audio/mp3',\n onFileLoaded,\n}: EliceAudioPlayerProps) => {\n const audioRef = useRef<HTMLAudioElement>(null);\n const [isPlaying, setIsPlaying] = useState(false);\n const [progress, setProgress] = useState(0);\n const [isReady, setIsReady] = useState(false);\n const [duration, setDuration] = useState(0);\n\n useEffect(() => {\n const fetchAndDecode = async () => {\n try {\n const response = await fetch(src);\n const blob = await response.blob();\n const filename = src.split('/').pop() || 'audio.mp3';\n const file = new File([blob], filename, { type: blob.type || mimeType });\n\n onFileLoaded?.(file);\n\n const duration = await getAccurateDuration(src);\n if (duration && isFinite(duration)) {\n setDuration(duration)\n setIsReady(true);\n }\n } catch (err) {\n console.error('❌ Fetch or decode 실패:', err);\n }\n };\n\n if (src) fetchAndDecode();\n }, [src, mimeType, onFileLoaded]);\n\n const togglePlay = () => {\n const audio = audioRef.current;\n if (!audio) return;\n isPlaying ? audio.pause() : audio.play();\n };\n\n useEffect(() => {\n const audio = audioRef.current;\n if (!audio) return;\n\n const updateProgress = () => {\n if (duration > 0) {\n const percent = (audio.currentTime / duration) * 100;\n setProgress(percent);\n }\n };\n\n const handlePlay = () => setIsPlaying(true);\n const handlePause = () => setIsPlaying(false);\n const handleEnded = () => {\n setProgress(100);\n setTimeout(() => {\n setProgress(0);\n setIsPlaying(false);\n }, 300);\n };\n\n audio.addEventListener('timeupdate', updateProgress);\n audio.addEventListener('play', handlePlay);\n audio.addEventListener('pause', handlePause);\n audio.addEventListener('ended', handleEnded);\n\n return () => {\n audio.removeEventListener('timeupdate', updateProgress);\n audio.removeEventListener('play', handlePlay);\n audio.removeEventListener('pause', handlePause);\n audio.removeEventListener('ended', handleEnded);\n };\n }, [duration]);\n\n return (\n <Stack spacing={1} alignItems=\"center\" direction=\"row\">\n <audio ref={audioRef} src={src} preload=\"metadata\" />\n <PlayerButton onClick={togglePlay}>\n {isPlaying ? <PauseIcon /> : <PlayIcon />}\n </PlayerButton>\n <LinearProgress\n variant={isReady ? 'determinate' : 'indeterminate'}\n value={progress}\n sx={{ width: '200px' }}\n />\n </Stack>\n );\n};\n\nexport default EliceAudioPlayer;\n","import { breakpoints } from '../tokens';\n\nimport type { BreakpointsOptions } from '@mui/system';\n\n/**\n * Customized breakpoints for Material-UI Design System.\n * (https://mui.com/material-ui/customization/breakpoints)\n *\n * - `xs`: extra-small, mobile device\n * - `sm`: small, small tablet device\n * - `md`: medium, tablet device\n * - `lg`: large, laptop device\n * - `xl`: extra-large, desktop device\n */\ntype HeightBreakPointOptions = {\n height: {\n tablet: number;\n notebook: number;\n desktop: number;\n };\n};\ntype AIDTBreakpointsOptions = BreakpointsOptions & HeightBreakPointOptions;\n\nexport const AIDTBreakpoints: AIDTBreakpointsOptions = Object.freeze({\n values: {\n xs: breakpoints.xs,\n sm: breakpoints.sm,\n md: breakpoints.md,\n lg: breakpoints.lg,\n xl: breakpoints.xl,\n },\n height: {\n tablet: breakpoints.tablet,\n notebook: breakpoints.notebook,\n desktop: breakpoints.desktop,\n },\n});\n","import { gray } from '../tokens';\n\nimport type { PaletteOptions } from '@mui/material';\n\nexport const basePalette: PaletteOptions = {\n grey: {\n 50: gray[50],\n 100: gray[100],\n 200: gray[200],\n 300: gray[300],\n 400: gray[400],\n 500: gray[500],\n 600: gray[600],\n 700: gray[700],\n 800: gray[800],\n 900: gray[900],\n },\n};\n","import {\n bluepurple,\n bluesky,\n gray,\n green,\n mint,\n orange,\n pink,\n purple,\n yellow,\n} from '../tokens/colors';\n\nimport type { PublisherSubjects } from './types';\n\nexport const elicePalettes: PublisherSubjects = {\n korean: {\n elementary: {\n primary: bluepurple[300],\n background: bluesky[500],\n secondary: bluepurple[900],\n black: bluepurple[0],\n light: bluepurple[50],\n },\n middle: {\n primary: bluepurple[500],\n background: gray[400],\n secondary: bluepurple[900],\n black: bluepurple[0],\n light: bluepurple[50],\n },\n high: {\n primary: bluepurple[0],\n background: bluepurple[900],\n secondary: bluepurple[900],\n black: bluepurple[0],\n light: bluepurple[50],\n },\n },\n computerScience: {\n elementary: {\n primary: purple[300],\n background: bluesky[500],\n secondary: purple[900],\n black: purple[0],\n light: purple[50],\n },\n middle: {\n primary: purple[500],\n background: gray[400],\n secondary: purple[900],\n black: purple[0],\n light: purple[50],\n },\n high: {\n primary: bluepurple[0],\n background: purple[900],\n secondary: purple[900],\n black: purple[0],\n light: purple[50],\n },\n },\n english: {\n elementary: {\n primary: green[300],\n background: yellow[500],\n secondary: green[900],\n black: green[0],\n light: green[50],\n },\n middle: {\n primary: green[500],\n background: gray[400],\n secondary: green[900],\n black: green[0],\n light: green[50],\n },\n high: {\n primary: bluepurple[0],\n background: green[900],\n secondary: green[900],\n black: green[0],\n light: green[50],\n },\n },\n socialStudy: {\n elementary: {\n primary: orange[300],\n background: yellow[500],\n secondary: orange[900],\n black: orange[0],\n light: orange[50],\n },\n middle: {\n primary: orange[500],\n background: gray[400],\n secondary: orange[900],\n black: orange[0],\n light: orange[50],\n },\n high: {\n primary: bluepurple[0],\n background: orange[900],\n secondary: orange[900],\n black: orange[0],\n light: orange[50],\n },\n },\n math: {\n elementary: {\n primary: pink[300],\n background: yellow[500],\n secondary: pink[900],\n black: pink[0],\n light: pink[50],\n },\n middle: {\n primary: pink[500],\n background: gray[400],\n secondary: pink[900],\n black: pink[0],\n light: pink[50],\n },\n high: {\n primary: bluepurple[0],\n background: pink[900],\n secondary: pink[900],\n black: pink[0],\n light: pink[50],\n },\n },\n science: {\n elementary: {\n primary: mint[300],\n background: yellow[500],\n secondary: mint[900],\n black: mint[0],\n light: mint[50],\n },\n middle: {\n primary: mint[500],\n background: gray[400],\n secondary: mint[900],\n black: mint[0],\n light: mint[50],\n },\n high: {\n primary: bluepurple[0],\n background: mint[900],\n secondary: mint[900],\n black: mint[0],\n light: mint[50],\n },\n },\n};\n","import {\n bluepurple,\n bluesky,\n gray,\n green,\n mint,\n orange,\n pink,\n purple,\n yellow,\n} from '../tokens/colors';\n\nimport type { PublisherSubjects } from './types';\n\nexport const type1Palettes: PublisherSubjects = {\n korean: {\n elementary: {\n primary: bluepurple[300],\n background: bluesky[500],\n secondary: bluepurple[900],\n black: bluepurple[0],\n light: bluepurple[50],\n },\n middle: {\n primary: bluepurple[500],\n background: gray[400],\n secondary: bluepurple[900],\n black: bluepurple[0],\n light: bluepurple[50],\n },\n high: {\n primary: bluepurple[0],\n background: bluepurple[900],\n secondary: bluepurple[900],\n black: bluepurple[0],\n light: bluepurple[50],\n },\n },\n computerScience: {\n elementary: {\n primary: purple[300],\n background: bluesky[500],\n secondary: purple[900],\n black: purple[0],\n light: purple[50],\n },\n middle: {\n primary: purple[500],\n background: gray[400],\n secondary: purple[900],\n black: purple[0],\n light: purple[50],\n },\n high: {\n primary: bluepurple[0],\n background: purple[900],\n secondary: purple[900],\n black: purple[0],\n light: purple[50],\n },\n },\n english: {\n elementary: {\n primary: green[300],\n background: yellow[500],\n secondary: green[900],\n black: green[0],\n light: green[50],\n },\n middle: {\n primary: green[500],\n background: gray[400],\n secondary: green[900],\n black: green[0],\n light: green[50],\n },\n high: {\n primary: bluepurple[0],\n background: green[900],\n secondary: green[900],\n black: green[0],\n light: green[50],\n },\n },\n socialStudy: {\n elementary: {\n primary: orange[300],\n background: yellow[500],\n secondary: orange[900],\n black: orange[0],\n light: orange[50],\n },\n middle: {\n primary: orange[500],\n background: gray[400],\n secondary: orange[900],\n black: orange[0],\n light: orange[50],\n },\n high: {\n primary: bluepurple[0],\n background: orange[900],\n secondary: orange[900],\n black: orange[0],\n light: orange[50],\n },\n },\n math: {\n elementary: {\n primary: pink[300],\n background: yellow[500],\n secondary: pink[900],\n black: pink[0],\n light: pink[50],\n },\n middle: {\n primary: pink[500],\n background: gray[400],\n secondary: pink[900],\n black: pink[0],\n light: pink[50],\n },\n high: {\n primary: bluepurple[0],\n background: pink[900],\n secondary: pink[900],\n black: pink[0],\n light: pink[50],\n },\n },\n science: {\n elementary: {\n primary: mint[300],\n background: yellow[500],\n secondary: mint[900],\n black: mint[0],\n light: mint[50],\n },\n middle: {\n primary: mint[500],\n background: gray[400],\n secondary: mint[900],\n black: mint[0],\n light: mint[50],\n },\n high: {\n primary: bluepurple[0],\n background: mint[900],\n secondary: mint[900],\n black: mint[0],\n light: mint[50],\n },\n },\n};\n","import {\n bluepurple,\n bluesky,\n gray,\n green,\n mint,\n orange,\n pink,\n purple,\n yellow,\n} from '../tokens/colors';\n\nimport type { PublisherSubjects } from './types';\n\nexport const type2Palettes: PublisherSubjects = {\n korean: {\n elementary: {\n primary: bluepurple[300],\n background: bluesky[500],\n secondary: bluepurple[900],\n black: bluepurple[0],\n light: bluepurple[50],\n },\n middle: {\n primary: bluepurple[500],\n background: gray[400],\n secondary: bluepurple[900],\n black: bluepurple[0],\n light: bluepurple[50],\n },\n high: {\n primary: bluepurple[0],\n background: bluepurple[900],\n secondary: bluepurple[900],\n black: bluepurple[0],\n light: bluepurple[50],\n },\n },\n computerScience: {\n elementary: {\n primary: purple[300],\n background: bluesky[500],\n secondary: purple[900],\n black: purple[0],\n light: purple[50],\n },\n middle: {\n primary: purple[500],\n background: gray[400],\n secondary: purple[900],\n black: purple[0],\n light: purple[50],\n },\n high: {\n primary: bluepurple[0],\n background: purple[900],\n secondary: purple[900],\n black: purple[0],\n light: purple[50],\n },\n },\n english: {\n elementary: {\n primary: green[300],\n background: yellow[500],\n secondary: green[900],\n black: green[0],\n light: green[50],\n },\n middle: {\n primary: green[500],\n background: gray[400],\n secondary: green[900],\n black: green[0],\n light: green[50],\n },\n high: {\n primary: bluepurple[0],\n background: green[900],\n secondary: green[900],\n black: green[0],\n light: green[50],\n },\n },\n socialStudy: {\n elementary: {\n primary: orange[300],\n background: yellow[500],\n secondary: orange[900],\n black: orange[0],\n light: orange[50],\n },\n middle: {\n primary: orange[500],\n background: gray[400],\n secondary: orange[900],\n black: orange[0],\n light: orange[50],\n },\n high: {\n primary: bluepurple[0],\n background: orange[900],\n secondary: orange[900],\n black: orange[0],\n light: orange[50],\n },\n },\n math: {\n elementary: {\n primary: pink[300],\n background: yellow[500],\n secondary: pink[900],\n black: pink[0],\n light: pink[50],\n },\n middle: {\n primary: pink[500],\n background: gray[400],\n secondary: pink[900],\n black: pink[0],\n light: pink[50],\n },\n high: {\n primary: bluepurple[0],\n background: pink[900],\n secondary: pink[900],\n black: pink[0],\n light: pink[50],\n },\n },\n science: {\n elementary: {\n primary: mint[300],\n background: yellow[500],\n secondary: mint[900],\n black: mint[0],\n light: mint[50],\n },\n middle: {\n primary: mint[500],\n background: gray[400],\n secondary: mint[900],\n black: mint[0],\n light: mint[50],\n },\n high: {\n primary: bluepurple[0],\n background: mint[900],\n secondary: mint[900],\n black: mint[0],\n light: mint[50],\n },\n },\n};\n","import { elicePalettes, type2Palettes, type1Palettes } from '../palettes';\n\nimport type {\n Publisher,\n PublisherSubjects,\n SubjectLevels,\n ThemeColor,\n} from '../palettes/types';\n\nconst getThemeColors = (\n publisher: Publisher,\n subject: keyof PublisherSubjects,\n level: keyof SubjectLevels\n): ThemeColor => {\n let AIDTThemeColors;\n\n switch (publisher) {\n case 'type1':\n AIDTThemeColors = type1Palettes;\n break;\n\n case 'type2':\n AIDTThemeColors = type2Palettes;\n break;\n\n default:\n AIDTThemeColors = elicePalettes;\n }\n\n return (\n AIDTThemeColors[subject]?.[level] || {\n primary: '#000000',\n background: '#FFFFFF',\n secondary: '#555555',\n black: '#132234',\n light: '#E2E2E2',\n }\n );\n};\n\nexport { getThemeColors };\n","import { createTheme } from '@mui/material';\nimport { createEliceTheme } from '@elice/mui-system';\nimport { AIDTBreakpoints } from '../breakpoints';\nimport { common } from '../tokens';\nimport { createAIDTTypography } from '../typography/typography';\nimport { basePalette } from './_base';\nimport { getThemeColors } from './AIDTTheme';\nimport { gray } from '../tokens';\n\nimport type { CreateAIDTThemeProps } from '../types/theme.types';\n\nconst createAIDTTheme = ({\n paletteMode = 'light',\n palettePublisher = 'elice',\n paletteSubject = 'korean',\n paletteLevel = 'elementary',\n typographyType = 'Default',\n typographyFontFamily = 'pretendard',\n}: CreateAIDTThemeProps) => {\n const themeColors = getThemeColors(\n palettePublisher,\n paletteSubject,\n paletteLevel\n );\n return createTheme({\n ...basePalette,\n palette: {\n mode: paletteMode,\n primary: {\n main: themeColors.primary,\n dark: themeColors.black,\n light: themeColors.light,\n },\n secondary: { main: themeColors.secondary },\n background: { default: themeColors.background },\n common: common,\n grey: gray,\n },\n breakpoints: AIDTBreakpoints,\n typography: createAIDTTypography(typographyFontFamily, typographyType),\n components: {\n MuiCssBaseline: {\n styleOverrides: {\n ':root': {\n '--step--1': 'clamp(18px, 15.508px + 0.2595vw + 0.0865vh, 28.8px)',\n '--step-0': 'clamp(16.4px, 11.877px + 0.471vw + 0.157vh, 36px)',\n '--step-1': 'clamp(14.5px, 7.462px + 0.7335vw + 0.2445vh, 45px)',\n '--step-2': 'clamp(12.1px, 1.969px + 1.05525vw + 0.35175vh, 56px)',\n '--step-3': 'clamp(9px, -5.077px + 1.46625vw + 0.48875vh, 70px)',\n '--step-4': 'clamp(5px, -14.385px + 2.019vw + 0.673vh, 89px)',\n },\n },\n },\n },\n });\n};\n\nexport { createAIDTTheme };\n","import { createAIDTTheme } from './createAIDTTheme';\n\nimport type { PaletteMode, Theme } from '@mui/material';\nimport type { ElicePaletteName } from '@elice/mui-system';\nimport { AIDTPaletteLevel, AIDTPalettePublisher, AIDTPaletteSubject } from '../types/theme.types';\nimport { TypographyFontFamilyType } from '../typography';\n\nexport interface CreateEliceThemeProps {\n paletteMode?: PaletteMode;\n paletteName?: ElicePaletteName;\n palettePublisher?: AIDTPalettePublisher;\n paletteSubject?: AIDTPaletteSubject;\n paletteLevel?: AIDTPaletteLevel;\n typographyFontFamily?: TypographyFontFamilyType;\n}\n\n/**\n * Override createEliceTheme to use createAIDTTheme instead\n * This ensures the override works in both development and production builds\n */\nexport const createEliceTheme = ({\n paletteMode = 'light',\n palettePublisher = 'elice',\n paletteSubject = 'korean',\n paletteLevel = 'elementary',\n typographyFontFamily = 'pretendard',\n}: CreateEliceThemeProps = {}): Theme => {\n \n return createAIDTTheme({\n paletteMode,\n palettePublisher: palettePublisher,\n paletteSubject: paletteSubject,\n paletteLevel: paletteLevel,\n typographyFontFamily: typographyFontFamily\n });\n};\n\n// Re-export the original function as well, in case it's needed\nexport { createEliceTheme as originalCreateEliceTheme } from '@elice/mui-system';\n"],"names":["formatMuiErrorMessage","code","url","i","THEME_ID","_objectWithoutPropertiesLoose","r","e","t","n","murmur2","str","h","k","len","unitlessKeys","memoize","fn","cache","arg","hyphenateRegex","animationRegex","isCustomProperty","property","isProcessableValue","value","processStyleName","styleName","processStyleValue","key","match","p1","p2","cursor","unitless","handleInterpolation","mergedProps","registered","interpolation","componentSelector","keyframes","serializedStyles","next","styles","createStringFromObject","asString","obj","string","_i","interpolated","labelPattern","serializeStyles","args","stringMode","strings","asTemplateStringsArr","templateStringsArr","identifierName","name","hashString","b","c","d","f","g","l","m","q","v","w","x","y","z","a","u","A","reactIs_production_min","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","isValidElementType","type","typeOf","object","$$typeof","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","reactIs_development","reactIsModule","require$$0","require$$1","getOwnPropertySymbols","hasOwnProperty","propIsEnumerable","toObject","val","shouldUseNative","test1","test2","order2","test3","letter","objectAssign","target","source","from","to","symbols","s","ReactPropTypesSecret","ReactPropTypesSecret_1","has","printWarning","loggedTypeFailures","text","message","checkPropTypes","typeSpecs","values","location","componentName","getStack","typeSpecName","error","err","ex","stack","checkPropTypes_1","ReactIs","assign","require$$2","require$$3","require$$4","emptyFunctionThatReturnsNull","factoryWithTypeCheckers","isValidElement","throwOnDirectAccess","ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","iteratorFn","ANONYMOUS","ReactPropTypes","createPrimitiveTypeChecker","createAnyTypeChecker","createArrayOfTypeChecker","createElementTypeChecker","createElementTypeTypeChecker","createInstanceTypeChecker","createNodeChecker","createObjectOfTypeChecker","createEnumTypeChecker","createUnionTypeChecker","createShapeTypeChecker","createStrictShapeTypeChecker","is","PropTypeError","data","createChainableTypeChecker","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","props","propName","propFullName","secret","cacheKey","chainedCheckType","expectedType","propValue","propType","getPropType","preciseType","getPreciseType","typeChecker","expectedClass","expectedClassName","actualClassName","getClassName","expectedValues","valuesString","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","expectedTypes","checkerResult","expectedTypesMessage","isNode","invalidValidatorError","shapeTypes","allKeys","iterator","step","entry","isSymbol","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","getShim","propTypesModule","sheetForTag","tag","createStyleElement","options","StyleSheet","_this","before","_proto","nodes","rule","sheet","_tag$parentNode","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","IMPORT","KEYFRAMES","LAYER","abs","hash","length","charat","trim","pattern","replace","replacement","indexof","search","index","substr","begin","end","strlen","sizeof","append","array","combine","callback","line","column","position","character","characters","node","root","parent","children","copy","char","prev","peek","caret","slice","token","alloc","dealloc","delimit","delimiter","whitespace","escaping","count","commenter","identifier","compile","parse","rules","rulesets","pseudo","points","declarations","offset","atrule","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","size","j","serialize","output","stringify","element","middleware","collection","rulesheet","identifierWithPointTracking","toRules","parsed","getRules","fixedElements","compat","isImplicitRule","parentRules","removeLabel","prefix","prefixer","defaultStylisPlugins","createCache","ssrStyles","dataEmotionAttribute","stylisPlugins","inserted","container","nodesToHydrate","attrib","_insert","omnipresentPlugins","currentSheet","finalizingPlugins","serializer","stylis","selector","serialized","shouldCache","p","reactJsxRuntime_production_min","React","REACT_OFFSCREEN_TYPE","MAYBE_ITERATOR_SYMBOL","maybeIterator","ReactSharedInternals","format","_len2","_key2","level","ReactDebugCurrentFrame","argsWithFormat","item","enableScopeAPI","enableCacheElement","enableTransitionTracing","enableLegacyHidden","enableDebugTracing","REACT_MODULE_REFERENCE","getWrappedName","outerType","innerType","wrapperName","displayName","functionName","getContextName","getComponentNameFromType","context","provider","outerName","lazyComponent","payload","init","disabledDepth","prevLog","prevInfo","prevWarn","prevError","prevGroup","prevGroupCollapsed","prevGroupEnd","disabledLog","disableLogs","reenableLogs","ReactCurrentDispatcher","describeBuiltInComponentFrame","ownerFn","reentry","componentFrameCache","PossiblyWeakMap","describeNativeComponentFrame","construct","frame","control","previousPrepareStackTrace","previousDispatcher","Fake","sample","sampleLines","controlLines","_frame","syntheticFrame","describeFunctionComponentFrame","shouldConstruct","Component","prototype","describeUnknownElementTypeFrameInDEV","setCurrentlyValidatingElement","owner","error$1","isArrayImpl","isArray","typeName","hasToStringTag","willCoercionThrow","testStringCoercion","checkKeyStringCoercion","ReactCurrentOwner","RESERVED_PROPS","specialPropKeyWarningShown","specialPropRefWarningShown","hasValidRef","config","getter","hasValidKey","warnIfStringRefCannotBeAutoConverted","self","defineKeyPropWarningGetter","warnAboutAccessingKey","defineRefPropWarningGetter","warnAboutAccessingRef","ReactElement","ref","jsxDEV","maybeKey","defaultProps","ReactCurrentOwner$1","ReactDebugCurrentFrame$1","setCurrentlyValidatingElement$1","propTypesMisspellWarningShown","getDeclarationErrorAddendum","getSourceInfoErrorAddendum","ownerHasKeyUseWarning","getCurrentComponentErrorInfo","parentType","info","parentName","validateExplicitKey","currentComponentErrorInfo","childOwner","validateChildKeys","child","validatePropTypes","propTypes","_name","validateFragmentProps","fragment","keys","didWarnAboutKeySpread","jsxWithValidation","isStaticChildren","validType","sourceInfo","typeString","beforeExample","afterExample","jsxWithValidationStatic","jsxWithValidationDynamic","jsx","jsxs","reactJsxRuntime_development","jsxRuntimeModule","getCache","injectFirst","enableCssLayer","emotionCache","prevInsert","cacheMap","StyledEngineProvider","fresh","_jsx","CacheProvider","PropTypes","isEmpty","GlobalStyles","defaultTheme","globalStyles","themeInput","Global","styled","stylesFactory","emStyled","component","style","internal_processStyles","processor","wrapper","internal_serializeStyles","emSerializeStyles","isPlainObject","deepClone","deepmerge","_extends","_excluded","sortBreakpointsValues","breakpointsAsArray","breakpoint1","breakpoint2","acc","createBreakpoints","breakpoints","unit","other","sortedValues","up","down","between","start","endIndex","only","not","keyIndex","shape","responsivePropType","merge","defaultBreakpoints","handleBreakpoints","styleFromPropValue","theme","themeBreakpoints","breakpoint","mediaKey","cssKey","createEmptyBreakpointObject","breakpointsInput","_breakpointsInput$key","breakpointStyleKey","removeUnusedBreakpoints","breakpointKeys","breakpointOutput","capitalize","_formatMuiErrorMessage","getPath","path","checkVars","getStyleValue","themeMapping","transform","propValueFinal","userValue","prop","cssProperty","themeKey","properties","directions","aliases","getCssProperties","direction","dir","marginKeys","paddingKeys","spacingKeys","createUnaryUnit","defaultValue","_getPath","themeSpacing","createUnarySpacing","getValue","transformer","transformed","getStyleFromPropValue","cssProperties","resolveCssProperty","margin","padding","createSpacing","spacingInput","spacing","argsInput","argument","compose","handlers","borderTransform","createBorderStyle","border","borderTop","borderRight","borderBottom","borderLeft","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outline","outlineColor","borderRadius","gap","columnGap","rowGap","gridColumn","gridRow","gridAutoFlow","gridAutoColumns","gridAutoRows","gridTemplateColumns","gridTemplateRows","gridTemplateAreas","gridArea","paletteTransform","color","bgcolor","backgroundColor","sizingTransform","width","maxWidth","_props$theme","_props$theme2","breakpointsValues","minWidth","height","maxHeight","minHeight","boxSizing","defaultSxConfig","objectsHaveSameKeys","objects","union","callIfFn","maybeFn","unstable_createStyleFunctionSx","getThemeValue","styleFunctionSx","_theme$unstable_sxCon","sx","nested","traverse","sxInput","sxObject","emptyBreakpoints","breakpointsKeys","css","styleKey","applyStyles","createTheme","paletteInput","shapeInput","muiTheme","splitProps","_props$theme$unstable","result","extendSxProp","inSx","systemProps","otherProps","finalSx","defaultGenerator","createClassNameGenerator","generate","generator","ClassNameGenerator","clsx","globalStateClasses","generateUtilityClass","slot","globalStatePrefix","globalStateClass","generateUtilityClasses","slots","REACT_CONSUMER_TYPE","REACT_VIEW_TRANSITION_TYPE","REACT_CLIENT_REFERENCE","reactIs_production","fnNameMatchRegex","getFunctionName","getFunctionComponentName","fallback","getDisplayName","resolveProps","defaultSlotProps","slotProps","slotPropName","useEnhancedEffect","clamp","min","max","createChainedFunction","funcs","func","debounce","wait","timeout","debounced","later","deprecatedPropType","validator","reason","componentNameSafe","propFullNameSafe","isMuiElement","muiNames","_muiName","_element$type","ownerDocument","ownerWindow","requirePropFactory","componentNameInError","prevPropTypes","requiredProp","defaultTypeChecker","typeCheckerResult","setRef","globalId","useGlobalId","idOverride","defaultId","setDefaultId","id","maybeReactUseId","useId","reactId","unsupportedProp","useControlled","controlled","defaultProp","state","isControlled","valueState","setValue","setValueIfUncontrolled","newValue","useEventCallback","useForkRef","refs","instance","Timeout$1","Timeout","delay","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesWhitelist","focusTriggersKeyboardModality","tagName","handleKeyDown","event","handlePointerDown","handleVisibilityChange","prepare","doc","isFocusVisible","useIsFocusVisible","isFocusVisibleRef","handleBlurVisible","handleFocusVisible","composeClasses","getUtilityClass","classes","utilityClass","PropsContext","getThemeProps","params","useDefaultProps","ctx","createMixins","mixins","_interopRequireDefault","module","colorManipulator","alpha","blend","darken_1","darken","decomposeColor","emphasize","getContrastRatio_1","getContrastRatio","getLuminance","hexToRgb","hslToRgb","lighten_1","lighten","private_safeAlpha","private_safeDarken","private_safeEmphasize","private_safeLighten","recomposeColor","rgbToHex","_formatMuiErrorMessage2","_clamp","clampWrapper","re","colors","intToHex","int","hex","marker","colorSpace","colorChannel","decomposedColor","idx","private_safeColorChannel","warning","rgb","foreground","background","lumA","lumB","coefficient","overlay","opacity","gamma","blendChannel","o","overlayColor","common","grey","purple","red","orange","blue","lightBlue","green","light","dark","addLightOrDark","intent","shade","tonalOffset","tonalOffsetLight","tonalOffsetDark","getDefaultPrimary","mode","getDefaultSecondary","getDefaultError","getDefaultInfo","getDefaultSuccess","getDefaultWarning","createPalette","palette","contrastThreshold","primary","secondary","success","getContrastText","contrastText","contrast","augmentColor","mainShade","lightShade","darkShade","modes","round","caseAllCaps","defaultFontFamily","createTypography","typography","_ref","fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem2","coef","pxToRem","buildVariant","fontWeight","lineHeight","letterSpacing","casing","variants","shadowKeyUmbraOpacity","shadowKeyPenumbraOpacity","shadowAmbientShadowOpacity","createShadow","px","shadows","easing","duration","formatMs","milliseconds","getAutoHeightDuration","constant","createTransitions","inputTransitions","mergedEasing","mergedDuration","durationOption","easingOption","isString","isNumber","animatedProp","zIndex","mixinsInput","transitionsInput","typographyInput","systemTheme","systemCreateTheme","stateClasses","stateClass","styleOverrides","createStyled_1","_default","createStyled","shouldForwardProp","_extends2","_objectWithoutPropertiesLoose2","_styledEngine","_interopRequireWildcard","_deepmerge","_capitalize","require$$5","_getDisplayName","require$$6","_createTheme","require$$7","_styleFunctionSx","require$$8","_excluded2","_excluded3","_getRequireWildcardCache","isStringTag","shallowLayer","layerName","systemDefaultTheme","lowercaseFirstLetter","resolveTheme","themeId","defaultOverridesResolver","processStyleArg","callableStyle","ownerState","resolvedStylesArg","resolvedStyle","variant","isMatch","variantStyle","input","rootShouldForwardProp","slotShouldForwardProp","systemSx","inputOptions","componentSlot","inputSkipVariantsResolver","inputSkipSx","overridesResolver","skipVariantsResolver","skipSx","label","shouldForwardPropOption","defaultStyledResolver","transformStyleArg","stylesArg","muiStyledResolver","styleArg","expressions","transformedStyleArg","expressionsWithDefaultTheme","resolvedStyleOverrides","slotKey","slotStyle","_theme$components","themeVariants","numOfCustomFnsApplied","placeholders","ArrowLeft","ArrowRight","Close","Micro","Reset","SelectedCheckbox","SelectedRadio","UnselectedCheckbox","UnselectedRadio","Send","QuestionBubble","SearchIcon","MoreColumn","backgroundPaths","numberPaths","NumbersIcon","textColor","pathColor","customBackgroundPath","useTheme","fillColor","textFill","resolvedBackgroundPath","RecordPause","Recording","squareColor","ReadyRecord","outerColor","innerColor","RecordPlay","SendArrow","main300Color","main400Color","gray50Color","gray100Color","gray200Color","gray300Color","gray400Color","textPrimaryColor","textSecondaryColor","textTeriaryColor","textQuaternaryColor","StyledScrollBar","Typography","EliceTooltip","title","initOpen","isControl","placement","triggerAction","closeColor","fontColor","closeOnScroll","rest","open","setOpen","useState","isFirstRender","handleScroll","ClickAwayListener","Tooltip","Stack","AIAvatar","EliceAIFeedback","CustomAvatar","EliceBadge","smoothColorTransform","quickStateChange","standardInteraction","hoverLift","HOVER_LIFT_DEFAULT","complexAnimation","EliceButton","forwardRef","customColor","customTextColor","colorMain","colorHover","colorDark","paletteColor","sxObj","sxHover","sxFocus","sxActive","sxDisabled","_","__","___","____","restSx","Button","mint","bluepurple","gray","pink","yellow","bluesky","useAIDTMediaQuery","isMobile","useMediaQuery","BREAKPOINTS","isMiniTablet","isTablet","isNotebook","isDesktop","isHeightSmall","EliceIconButton","disabled","IconButton","RecorderContext","createContext","initialState","recorderReducer","action","RecorderProvider","dispatch","useReducer","mediaRecorderRef","useRef","audioChunks","streamRef","audioContextRef","analyserRef","sourceRef","startRecording","onComplete","stream","recorder","file","stopRecording","isSubmit","track","pauseRecording","resumeRecording","setIsRecording","isRecording","setStep","resetAnalyzer","useRecorder","useContext","AssistantAvatar","UserAvatar","useSystemDefaultProps","getSvgIconUtilityClass","useUtilityClasses","SvgIconRoot","_theme$transitions","_theme$transitions$cr","_theme$transitions2","_theme$typography","_theme$typography$pxT","_theme$typography2","_theme$typography2$px","_theme$typography3","_theme$typography3$px","_palette$ownerState$c","_palette","_palette2","_palette3","SvgIcon","inProps","className","htmlColor","inheritViewBox","titleAccess","viewBox","hasSvgAsChild","more","_jsxs","createSvgIcon","unstable_ClassNameGenerator","exports","_utils","Circle","default_1","_createSvgIcon","_jsxRuntime","TypingIndicator","Box","CircleIcon","SoundVisualizer","analyser","sensitivity","decay","bgColor","defaultBarColor","visualContainerStyle","visualBoxStyle","onClickRecord","TOTAL_BARS","filledBars","setFilledBars","dataArray","prevVolume","update","avg","scaled","smooth","WaveBar","isFilled","EliceRecorderStep","onAudioReady","onTransform","visualType","onRecord","isReadyVisual","onResume","onPause","onTranscribingChange","forcedStep","closeRecorder","onRecordStep","initFile","isNotAudioPlayer","isNotRecordingPlayer","notNeedSubmit","recorderState","audioUrl","setAudioUrl","currentStep","audioRef","isPlaying","setIsPlaying","handleStart","arrayBuffer","audioBuffer","wavBuffer","audioBufferToWav","wavFile","wavFileWithName","firstTimeInit","handlePause","handleResume","handleStop","handleSubmit","handleOnlySubmit","handlePlayPause","useEffect","StyledVisualizerBox","StyledRecorderButton","StyledVisualizerBoxButtonContainer","StyledPauseButton","EliceAudioPlayer","SkeletonVisualizerBox","StyledRecorderButtonDefault","recorderType","buffer","numOfChannels","sampleRate","byteLength","wavArrayBuffer","wavView","writeString","channel","channelData","EliceChat","EliceChatContainer","placeholder","messages","content","onReset","onSend","onChange","setAudioFile","isLoadingMessage","CustomAssistantAvatar","CustomUserAvatar","isDisabled","backgroundImage","isOnlyRecord","isResetDisabled","isRecordDisabled","maxRows","inputValue","setInputValue","scrollRef","onClickRecordSubmit","onClickCloseIsRecording","handleSend","StyledChatContainer","RecordingOverlay","OverlayContent","lastMessage","isAssistantLoading","StyledScrollBarStack","EmptyMessageContainer","AIAvatarImage","msg","isAssistant","StyledMessage","placeHolder","OnlyRecordButton","StyledInput","Input","EliceDialog","controlledOpen","controlledOnClose","anchorElement","onConfirm","onAgree","onDisagree","dialogProps","internalOpen","setInternalOpen","handleClose","titleId","descriptionId","dialogContent","Dialog","DialogTitle","DialogContent","DialogContentText","DialogActions","EliceDottedPagination","currentPage","totalPage","onNext","onPrev","isPrevAble","isNextAble","Book","ScrollMoreIcon","arrowColor","bgOpacity","arrowOpacity","PaginationButton","left","right","onClick","PaginationWrapper","LayoutPagination","allowPrev","allowNext","hidePrev","hideNext","FooterContainer","FooterPagination","StyledCurrentPage","LayoutFooterPaging","currentPageColor","LayoutFooterSubmit","isRollback","disableRollback","disableSubmit","submitText","rollbackText","onSubmit","onRollback","submitButtonColor","rollbackButtonColor","submitTextColor","rollbackTextColor","MenuPositionerContext","useMenuPositionerContext","optional","MenuRootContext","useMenuRootContext","UNINITIALIZED","useRefWithInit","initArg","useMergedRefs","forkRef","createForkRef","didChange","useMergedRefsN","didChangeN","newRefs","cleanupCallbacks","refCleanup","cleanupCallback","majorVersion","isReactVersionAtLeast","reactVersionToCheck","mergeObjects","getStyleHookProps","customMapping","customProps","resolveClassName","EMPTY_PROPS","mergeProps","merged","resolvePropsGetter","mergeOne","mergePropsN","inputProps","isPropsGetter","mutablyMergeInto","externalProps","externalPropValue","mergeClassNames","isEventHandler","mergeEventHandlers","code0","code1","code2","previousProps","ourHandler","theirHandler","isSyntheticEvent","baseUIEvent","makeEventPreventable","ourClassName","theirClassName","TYPEAHEAD_RESET_MS","PATIENT_CLICK_THRESHOLD","DISABLED_TRANSITIONS_STYLE","EMPTY_OBJECT","EMPTY_ARRAY","CLICK_TRIGGER_IDENTIFIER","DROPDOWN_COLLISION_AVOIDANCE","useRenderElement","componentProps","renderProp","outProps","useRenderElementProps","evaluateRenderProp","classNameProp","disableStyleHooks","customStyleHookMapping","enabled","styleHooks","getChildRef","render","renderTag","Tag","TransitionStatusDataAttributes","STARTING_HOOK","ENDING_HOOK","transitionStatusMapping","CommonPopupDataAttributes","CommonTriggerDataAttributes","PRESSABLE_TRIGGER_HOOK","POPUP_OPEN_HOOK","POPUP_CLOSED_HOOK","ANCHOR_HIDDEN_HOOK","pressableTriggerOpenStateMapping","popupStateMapping","MenuArrow","forwardedRef","elementProps","arrowRef","side","align","arrowUncentered","arrowStyles","ContextMenuRootContext","useContextMenuRootContext","EMPTY","useOnMount","useTimeout","noop","useIsoLayoutEffect","hasWindow","getNodeName","getWindow","_node$ownerDocument","getDocumentElement","isHTMLElement","isShadowRoot","invalidOverflowDisplayValues","isOverflowElement","overflow","overflowX","overflowY","display","getComputedStyle","tableElements","isTableElement","topLayerSelectors","isTopLayer","transformProperties","willChangeValues","containValues","isContainingBlock","elementOrCss","webkit","isWebKit","getContainingBlock","currentNode","getParentNode","isLastTraversableNode","lastTraversableNodeNames","getNodeScroll","getNearestOverflowAncestor","parentNode","getOverflowAncestors","list","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","win","frameElement","getFrameElement","useLatestRef","latest","createLatestRef","useInsertionEffect","useSafeInsertionEffect","stable","createStableCallback","assertNotCalled","hasNavigator","nav","getNavigatorData","platform","getPlatform","userAgent","getUserAgent","isIOS","isSafari","isAndroid","isMac","isJSDOM","uaData","brand","version","FOCUSABLE_ATTRIBUTE","ACTIVE_KEY","SELECTED_KEY","TYPEABLE_SELECTOR","ARROW_LEFT","ARROW_RIGHT","ARROW_UP","ARROW_DOWN","activeElement","contains","rootNode","getTarget","isEventTargetWithin","eventAgain","isRootElement","getDocument","isTypeableElement","isTypeableCombobox","matchesFocusVisible","getFloatingFocusElement","floatingElement","getNodeChildren","onlyOpenChildren","getNodeAncestors","allAncestors","currentParentId","stopEvent","isReactEvent","isVirtualClick","isVirtualPointerEvent","isMouseLikePointerType","pointerType","strict","sides","floor","createCoords","oppositeSideMap","oppositeAlignmentMap","evaluate","param","getSide","getAlignment","getOppositeAxis","axis","getAxisLength","yAxisSides","getSideAxis","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","lrPlacement","rlPlacement","tbPlacement","btPlacement","getSideList","isStart","getOppositeAxisPlacements","flipAlignment","expandPaddingObject","getPaddingObject","rectToClientRect","rect","isDifferentGridRow","cols","prevRow","isIndexOutOfListBounds","listRef","getMinListIndex","disabledIndices","findNonDisabledListIndex","getMaxListIndex","startingIndex","decrement","amount","isListIndexDisabled","getGridNavigatedIndex","orientation","loop","minIndex","maxIndex","prevIndex","stop","nextIndex","rows","rowIndexMap","hasRoleRow","currentRowEl","currentRowIndex","el","rowEl","hasDomRows","row","navigateVertically","currentRow","colInRow","nextRow","visited","targetRow","clampedCol","col","candidate","domBasedCandidate","maxCol","lastRow","createGridCellMap","sizes","dense","cellMap","startIndex","itemPlaced","targetCells","cell","getGridCellIndexOfCorner","corner","firstCellIndex","sizeItem","getGridCellIndices","indices","cellIndex","candidateSelectors","candidateSelector","NoElement","matches","getRootNode","_element$getRootNode","isInert","lookUp","_node$getAttribute","inertAtt","inert","isContentEditable","_node$getAttribute2","attValue","getCandidates","includeContainer","filter","candidates","getCandidatesIteratively","elements","elementsToCheck","assigned","nestedCandidates","validCandidate","shadowRoot","validShadowRoot","_nestedCandidates","hasTabIndex","getTabIndex","getSortOrderTabIndex","isScope","tabIndex","sortOrderedTabbables","isInput","isHiddenInput","isDetailsWithSummary","getCheckedRadio","form","isTabbableRadio","radioScope","queryRadios","radioSet","checked","isRadio","isNonTabbableRadio","isNodeAttached","_nodeRoot","nodeRoot","nodeRootHost","attached","_nodeRootHost","_nodeRootHost$ownerDo","_nodeRoot2","_nodeRootHost2","_nodeRootHost2$ownerD","isZeroArea","_node$getBoundingClie","isHidden","displayCheck","getShadowRoot","isDirectSummary","nodeUnderDetails","originalNode","parentElement","isDisabledFromFieldset","isNodeMatchingSelectorFocusable","isNodeMatchingSelectorTabbable","isValidShadowRootTabbable","shadowHostNode","sortByOrder","regularTabbables","orderedTabbables","candidateTabindex","sortable","tabbable","focusable","isTabbable","getTabbableOptions","getTabbableIn","active","getNextTabbable","referenceElement","getPreviousTabbable","isOutsideEvent","containerElement","relatedTarget","disableFocusInside","enableFocusInside","tabindex","SafeReact","createEventEmitter","map","listener","FloatingNodeContext","FloatingTreeContext","useFloatingParentNodeId","useFloatingTree","useFloatingNodeId","customParentId","tree","parentId","FloatingNode","FloatingTree","nodesRef","addNode","removeNode","events","createBaseUIEventDetails","canceled","allowPropagation","createAttribute","safePolygonIdentifier","getDelay","getRestMs","useHover","onOpenChange","dataRef","mouseOnly","restMs","move","handleCloseRef","delayRef","openRef","restMsRef","pointerTypeRef","handlerRef","restTimeout","blockMouseMoveRef","performedPointerEventsMutationRef","unbindMouseMoveRef","restTimeoutPendingRef","isHoverOpen","onOpenChangeLocal","details","onLeave","html","closeWithDelay","runElseBranch","closeDelay","cleanupMouseMoveHandler","clearPointerEvents","body","isClickLikeOpenEvent","onReferenceMouseEnter","openDelay","onReferenceMouseLeave","handler","onScrollMouseLeave","onFloatingMouseEnter","onFloatingMouseLeave","floating","floatingEl","parentFloating","setPointerRef","nativeEvent","handleMouseMove","visuallyHidden","LAST_RAF","Scheduler","timestamp","currentCallbacks","currentCallbacksCount","didRAFChange","scheduler","AnimationFrame","useAnimationFrame","FocusGuard","role","setRole","restProps","rafId","enqueueFocus","preventScroll","cancelPrevious","sync","exec","counters","getCounterMap","uncontrolledElementsSet","markerMap","lockCount","unwrapHost","correctElements","targets","correctedTarget","applyAttributeToOthers","uncorrectedAvoidElements","ariaHidden","markerName","controlAttribute","avoidElements","elementsToKeep","elementsToStop","hiddenElements","markerCounter","keep","deep","attr","alreadyHidden","counterMap","counterValue","markerValue","markOthers","PortalContext","usePortalContext","useFloatingPortalNode","uniqueId","portalContext","portalNode","setPortalNode","portalNodeRef","existingIdRoot","subRoot","idWrapper","FloatingPortal","preserveTabOrder","focusManagerState","setFocusManagerState","beforeOutsideRef","afterOutsideRef","beforeInsideRef","afterInsideRef","modal","shouldRenderGuards","onFocus","domReference","ReactDOM","getEventType","lastInteractionType","LIST_LIMIT","previouslyFocusedElements","clearDisconnectedPreviouslyFocusedElements","addPreviouslyFocusedElement","getPreviouslyFocusedElement","getFirstTabbableElement","tabbableOptions","handleTabIndex","floatingFocusElement","orderRef","tabbableContent","dataTabIndex","FloatingFocusManager","order","initialFocus","returnFocus","restoreFocus","closeOnFocusOut","openInteractionType","getInsideElementsProp","getNodeId","getInsideElements","ignoreInitialFocus","isUntrappedTypeableCombobox","initialFocusRef","returnFocusRef","openInteractionTypeRef","startDismissButtonRef","endDismissButtonRef","preventReturnFocusRef","isPointerDownRef","tabbableIndexRef","closeTypeRef","lastInteractionTypeRef","blurTimeout","pointerDownTimeout","restoreFocusFrame","isInsidePortal","getTabbableContent","getTabbableElements","onKeyDown","handleFocusIn","tabbableIndex","onPointerDown","handleFocusOutside","currentTarget","nodeId","movedToUnrelatedNode","prevTabbableIndex","nodeToFocus","shouldHandleBlurCapture","markInsideReactTree","beforeGuardRef","afterGuardRef","mergedBeforeGuardRef","mergedAfterGuardRef","portalNodes","rootAncestorComboboxDomReference","insideElements","cleanup","previouslyFocusedElement","focusableElements","initialFocusValueOrFn","resolvedInitialFocus","elToFocus","isPreventScrollSupported","fallbackEl","getReturnElement","returnFocusValueOrFn","resolvedReturnFocusValue","activeEl","isFocusInsideFloatingTree","returnElement","tabbableReturnElement","hasExplicitReturnFocus","els","useClick","eventOption","toggle","ignoreMouse","stickIfOpen","touchOpenDelay","touchOpenTimeout","openEvent","openEventType","nextOpen","computeCoordsFromPlacement","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","computePosition","strategy","validMiddleware","statefulPlacement","middlewareData","resetCount","nextX","nextY","reset","detectOverflow","_await$platform$isEle","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","offsetParent","offsetScale","elementClientRect","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","detectOverflowOptions","initialSideAxis","isBasePlacement","fallbackPlacements","hasFallbackAxisSideDirection","placements","overflows","overflowsData","_middlewareData$flip2","_overflowsData$filter","nextPlacement","resetPlacement","_overflowsData$filter2","currentSideAxis","getSideOffsets","isAnySideFullyClipped","hide","offsets","originSides","convertValueToCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","crossAxis","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","minSide","maxSide","limitedCoords","limitShift","rawOffset","computedOffset","limitMin","limitMax","_middlewareData$offse2","isOriginSide","_state$middlewareData","_state$middlewareData2","apply","isYAxis","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","noShift","availableHeight","availableWidth","xMin","xMax","yMin","yMax","nextDimensions","getCssDimensions","getComputedStyle$1","hasOffset","offsetWidth","offsetHeight","shouldFallback","unwrapElement","getScale","domElement","$","noOffsets","getVisualOffsets","shouldAddVisualOffsets","isFixed","floatingOffsetParent","getBoundingClientRect","includeScale","isFixedStrategy","clientRect","scale","visualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","top","getWindowScrollBarX","leftScroll","getHTMLOffset","documentElement","scroll","htmlRect","convertOffsetParentRelativeRectToViewportRelativeRect","topLayer","isOffsetParentAnElement","offsetRect","htmlOffset","getClientRects","getDocumentRect","SCROLLBAR_MAX","getViewportRect","visualViewport","visualViewportBased","windowScrollbarX","bodyStyles","bodyMarginInline","clippingStableScrollbarWidth","absoluteOrFixed","getInnerBoundingClientRect","getClientRectFromClippingAncestor","clippingAncestor","hasFixedPositionAncestor","stopNode","getClippingElementAncestors","cachedResult","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","getClippingRect","clippingAncestors","firstClippingAncestor","clippingRect","accRect","getDimensions","getRectRelativeToOffsetParent","setLeftRTLScrollbarOffset","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","getOffsetParent","svgOffsetParent","getElementRects","getOffsetParentFn","getDimensionsFn","floatingDimensions","isRTL","rectsAreEqual","observeMove","onMove","io","timeoutId","_io","refresh","skip","threshold","elementRectForRootMargin","insetTop","insetRight","insetBottom","insetLeft","isFirstUpdate","handleObserve","entries","ratio","autoUpdate","ancestorScroll","ancestorResize","elementResize","layoutShift","animationFrame","referenceEl","ancestors","cleanupIo","reobserveFrame","resizeObserver","firstEntry","_resizeObserver","frameId","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","offset$1","shift$1","flip$1","size$1","hide$1","limitShift$1","mergedOptions","platformWithCache","computePosition$1","isClient","useLayoutEffect","deepEqual","getDPR","roundByDPR","dpr","useFloating","externalReference","externalFloating","whileElementsMounted","setData","latestMiddleware","setLatestMiddleware","_reference","_setReference","_floating","_setFloating","setReference","referenceRef","setFloating","floatingRef","hasWhileElementsMounted","whileElementsMountedRef","platformRef","fullData","isMountedRef","floatingStyles","initialStyles","deps","bubbleHandlerKeys","normalizeProp","normalizable","useDismiss","escapeKey","outsidePressProp","outsidePressEvent","referencePress","referencePressEvent","bubbles","capture","outsidePressFn","outsidePress","endedOrStartedInsideRef","escapeKeyBubbles","outsidePressBubbles","escapeKeyCapture","outsidePressCapture","touchStateRef","cancelDismissOnEndTimeout","insideReactTreeTimeout","isComposingRef","currentPointerTypeRef","trackPointerType","getOutsidePressEvent","computedType","resolved","closeOnEscapeKeyDown","shouldDismiss","native","eventDetails","shouldIgnoreEvent","computedOutsidePressEvent","closeOnEscapeKeyDownCapture","closeOnPressOutside","endedOrStartedInside","insideReactTree","inertSelector","markers","targetRootAncestor","nextParent","lastTraversableNode","scrollRe","isScrollableX","isScrollableY","canScrollX","canScrollY","pressedVerticalScrollbar","pressedHorizontalScrollbar","targetIsInsideChildren","closeOnPressOutsideCapture","handlePointerMove","deltaX","deltaY","distance","handlePointerUp","compositionTimeout","onScroll","handleCompositionStart","handleCompositionEnd","handlePressedInside","handleCaptureInside","useFloatingRootContext","onOpenChangeProp","elementsProp","floatingId","optionDomReference","positionReference","setPositionReference","newOpen","internalRootContext","rootContext","computedElements","domReferenceState","setDomReference","setPositionReferenceRaw","domReferenceRef","usePosition","computedPositionReference","isMacSafari","useFocus","visibleOnly","blockFocusRef","keyboardModalityRef","onBlur","movedToFocusGuard","useInteractions","propsList","referenceDeps","floatingDeps","itemDeps","getReferenceProps","userProps","getFloatingProps","getItemProps","elementKey","eventHandlers","isItem","outputProps","propsOrGetProps","mutablyMergeProps","ESCAPE","doSwitch","vertical","horizontal","isMainOrientationKey","isMainOrientationToEndKey","isCrossOrientationOpenKey","isCrossOrientationCloseKey","useListNavigation","activeIndex","onNavigateProp","selectedIndex","allowEscape","virtual","focusItemOnOpen","focusItemOnHover","openOnArrowKeyDown","parentOrientation","scrollItemIntoView","itemSizes","floatingFocusElementRef","typeableComboboxReference","focusItemOnOpenRef","indexRef","keyRef","isPointerModalityRef","onNavigate","previousOnNavigateRef","previousMountedRef","previousOpenRef","forceSyncFocusRef","forceScrollIntoViewRef","disabledIndicesRef","latestOpenRef","scrollItemIntoViewRef","selectedIndexRef","focusItem","runFocus","initialItem","forceScrollIntoView","waitedItem","scrollIntoViewOptions","runs","waitForListPopulated","treeContainsActiveEl","hasActiveIndex","syncCurrentTarget","getParentOrientation","commonOnKeyDown","currentIndex","minGridIndex","maxGridIndex","foundIndex","itemIndex","listIndex","ariaActiveDescendantProp","checkVirtualMouse","checkVirtualPointer","isArrowKey","isParentCrossOpenKey","isMainKey","isNavigationKey","isParentMainKey","componentRoleToAriaRoleMap","useRole","defaultFloatingId","defaultReferenceId","referenceId","ariaRole","isNested","floatingProps","selected","commonProps","useTypeahead","onMatchProp","onTypingChangeProp","findMatch","resetMs","ignoreKeys","stringRef","prevIndexRef","matchIndexRef","onMatch","onTypingChange","findMatchRef","ignoreKeysRef","setTypingChange","getMatchingIndex","orderedList","listContent","isPointInPolygon","point","polygon","isInsideValue","xi","yi","xj","yj","isInside","safePolygon","blockPointerEvents","requireIntent","hasLanded","lastX","lastY","lastCursorTime","getCursorSpeed","currentTime","elapsedTime","speed","onClose","close","clientX","clientY","clientPoint","isLeave","isOverFloatingEl","isOverReferenceEl","refRect","cursorLeaveFromRight","cursorLeaveFromBottom","isOverReferenceRect","isFloatingWider","isFloatingTaller","bottom","rectPoly","getPolygon","py","cursorPointOne","cursorPointTwo","commonPoints","cursorSpeed","set","messageKey","CompositeRootContext","useCompositeRootContext","useFocusableWhenDisabled","parameters","focusableWhenDisabled","composite","tabIndexProp","isNativeButton","isFocusableComposite","isNonFocusableComposite","additionalProps","useButton","buttonRef","isCompositeItem","isValidLink","focusableWhenDisabledProps","isButtonTag","externalOnClick","externalOnMouseDown","externalOnKeyUp","externalOnKeyDown","externalOnPointerDown","otherExternalProps","shouldClick","isEnterKey","isSpaceKey","REGULAR_ITEM","useMenuItem","closeOnClick","highlighted","menuEvents","allowMouseUpTriggerRef","typingRef","nativeButton","itemMetadata","itemRef","getButtonProps","mergedRef","CompositeListContext","useCompositeListContext","IndexGuessBehavior","useCompositeListItem","metadata","textRef","indexGuessBehavior","externalIndex","register","unregister","subscribeMapChange","elementsRef","labelsRef","nextIndexRef","setIndex","newIndex","componentRef","isLabelDefined","useBaseUiId","useTransitionStatus","enableIdleState","deferEndingState","transitionStatus","setTransitionStatus","mounted","setMounted","useAnimationsFinished","elementOrRef","waitForNextTick","fnToExecute","signal","anim","useOpenChangeComplete","onCompleteParam","runOnceAnimationsFinish","InnerMenuItem","itemProps","MenuItem","idProp","listItem","menuPositionerContext","baseMapping","MenuPopup","finalFocus","popupRef","popupProps","instantType","triggerElement","onOpenChangeComplete","lastOpenChangeReason","rootId","floatingContext","MenuPortalContext","useMenuPortalContext","MenuPortal","keepMounted","inertValue","DirectionContext","useDirection","baseArrow","arrowDimensions","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","center","shouldAddOffset","alignmentOffset","arrow","getLogicalSide","sideParam","renderedSide","isRtl","isLogicalSideParam","getOffsetData","useAnchorPositioning","anchor","positionMethod","sideOffset","alignOffset","collisionBoundary","collisionPaddingParam","sticky","arrowPadding","trackAnchor","floatingRootContext","collisionAvoidance","shiftCrossAxis","adaptiveOrigin","lazyFlip","mountSide","setMountSide","collisionAvoidanceSide","collisionAvoidanceAlign","collisionAvoidanceFallbackAxisSide","anchorFn","anchorFnCallback","anchorDep","anchorValueRef","collisionPadding","bias","biasTop","biasBottom","biasLeft","biasRight","commonCollisionProps","sideOffsetRef","alignOffsetRef","alignAxis","shiftDisabled","crossAxisShiftEnabled","flipMiddleware","shiftMiddleware","limitData","renderedPlacement","currentRenderedSide","currentRenderedAxis","arrowEl","arrowX","arrowY","arrowWidth","arrowHeight","transformX","transformY","shiftY","halfAnchorHeight","sideOffsetValue","isOverlappingAnchor","adjacentTransformOrigin","overlapTransformOrigin","autoUpdateOptions","isPositioned","originalFloatingStyles","sideX","sideY","registeredPositionReferenceRef","anchorValue","resolvedAnchor","finalAnchor","isRef","logicalRenderedSide","renderedAlign","anchorHidden","CompositeList","onMapChange","listeners","createListeners","createMap","mapTick","setMapTick","lastTickRef","sortedMap","newMap","sortByDocumentPosition","contextValue","InternalBackdrop","cutout","clipPath","MenuPositioner","anchorProp","positionMethodProp","alignProp","sideOffsetProp","alignOffsetProp","setPositionerElement","itemDomElements","itemLabels","setHoverEnabled","parentNodeId","contextMenuContext","computedSide","computedAlign","contextMenu","positioner","positionerProps","hiddenStyles","onMenuOpenChange","onItemHover","shouldRenderBackdrop","backdropCutout","MenubarContext","useMenubarContext","NOOP","originalHtmlStyles","originalBodyStyles","originalHtmlScrollBehavior","hasInsetScrollbars","preventScrollBasic","originalOverflow","preventScrollStandard","scrollTop","scrollLeft","resizeFrame","lockScroll","htmlStyles","supportsStableScrollbarGutter","hasConstantOverflowY","hasConstantOverflowX","scrollbarWidth","scrollbarHeight","marginY","marginX","handleResize","ScrollLocker","htmlOverflowY","isOverflowHiddenLock","SCROLL_LOCKER","useScrollLock","originalUserSelect","originalWebkitUserSelect","useEnhancedClickHandler","lastClickInteractionTypeRef","useOpenInteractionType","openMethod","setOpenMethod","handleTriggerClick","interactionType","MenuSubmenuRootContext","useMenuSubmenuRootContext","useMixedToggleClickHandler","mouseDownAction","ignoreClickRef","EMPTY_REF","MenuRoot","openProp","defaultOpen","modalProp","actionsRef","openOnHoverProp","closeParentOnEsc","setTriggerElement","positionerElement","setPositionerElementUnwrapped","setInstantType","hoverEnabled","setActiveIndex","setLastOpenChangeReason","setStickIfOpen","allowMouseEnterState","setAllowMouseEnterState","openEventRef","positionerRef","stickIfOpenTimeout","isSubmenu","floatingEvents","parentContext","menubarContext","allowMouseEnter","setAllowMouseEnter","openOnHover","setOpenUnwrapped","allowOutsidePressDismissalRef","allowOutsidePressDismissalTimeout","interactionTypeProps","resetOpenInteractionType","handleUnmount","allowTouchToCloseRef","allowTouchToCloseTimeout","activeOption","isKeyboardClick","isDismissClose","changeState","hover","focus","click","dismiss","listNavigation","nextTyping","typeahead","mixedToggleHandlers","triggerProps","referenceProps","getPseudoElementBounds","elementRect","beforeStyles","afterStyles","beforeWidth","beforeHeight","afterWidth","afterHeight","totalWidth","totalHeight","widthDiff","heightDiff","useCompositeItem","highlightItemOnHover","highlightedIndex","onHighlightedIndexChange","isHighlighted","CompositeItem","compositeProps","compositeRef","BOUNDARY_OFFSET","MenuTrigger","disabledProp","rootTriggerProps","menuDisabled","triggerRef","allowMouseUpTriggerTimeout","handleRef","handleDocumentMouseUp","mouseEvent","mouseUpTarget","findRootOwnerId","bounds","isMenubar","getTriggerProps","StyledPopup","Menu.Popup","StyledMenuItem","Menu.Item","StyledMoreTrigger","Menu.Trigger","LayoutHeaderSubTitle","menuOpen","setMenuOpen","Menu.Root","colors.bluepurple","Menu.Portal","Menu.Positioner","Menu.Arrow","StyledTitle","Title","LayoutHeaderTitle","titleComponent","EliceLayoutContext","stepSx","MuiBox","MuiStack","MuiTypography","Layout","onlyPage","enableScrollTracking","isScrollActive","setIsScrollActive","MainContainer","HeaderContainerInner","HeaderContainer","HeaderTitle","HeaderSubTitle","ContentContainerInner","ContentContainer","scrollbarPostion","contentRef","hasScroll","setHasScroll","scrollTopRef","scrollBarRef","updateScrollBar","scrollHeight","clientHeight","thumbHeight","ScrollMoreButton","Subtitle","justifyContent","SubtitleContainer","ContentInner","Content","FooterContainerInner","FooterPaging","FooterSubmit","isSticky","EliceLayout","breadcrumbItems","icon","baseSx","mergedSx","BookIcon","HelpOutline","InnerHeader","showQuestionIcon","stepNumber","badgeLabel","containerBaseSx","mergedContainerSx","iconSize","HelpOutlineIcon","stepGap","EliceToggleButton","ToggleButton","EliceSelection","limitSelectCount","handleSelectionChange","prevState","newValuesArray","updatedValues","ToggleButtonGroup","option","isSelected","Correct","Incorrect","AnswerFeedback","isCorrect","correctComponent","incorrectComponent","EliceTable","columnNames","tableTitleProps","tableValueProps","pagination","Table","TableHead","TableRow","TableCell","TableBody","RowInfoTable","labelBackgroundColor","labelTextColor","rowBorderColor","rowBorderRightColor","primaryColor","finalBorderColor","finalLabelBackgroundColor","finalLabelTextColor","finalRowBorderColor","finalRowBorderRightColor","isMultiline","actualRows","TextField","ColInfoTable","headerBackgroundColor","headerTextColor","finalHeaderBackgroundColor","finalHeaderTextColor","EliceTextarea","multiline","maxLength","TYPOGRAPHY_FONT_FAMILY_NAMES","DEFAULT_TYPOGRAPHY_STYLES","CLAMP_TYPOGRAPHY_STYLES","FLUID_TYPOGRAPHY_STYLES","TYPOGRAPHY_STYLES_MAP","createAIDTTypography","typographyType","AIDTTypography","ZoomIn","EliceImage","src","alt","iconBackgroundColor","iconHoverBackgroundColor","isPreviewOpen","setIsPreviewOpen","handleOpenPreview","handleClosePreview","ZoomInIcon","EliceSubButton","BaseInputContainer","BaseInputContent","InputText","UnderLineDivider","BaseInput","inputType","containerStyle","inputStyle","underlineStyle","HighlightOff","EliceModal","iconClose","Modal","HighlightOffIcon","onChangeValue","SoundWaveVisualizer","updateVolume","averageVolume","scaledVolume","smoothedVolume","newFilledBars","recordingStep","setRecordingStep","BUTTON_TEXT","audioStream","audioBlob","AudioChatButton","Fullscreen","FullscreenExit","Pause","PlayArrow","Subtitles","VolumeOff","VolumeUp","EliceVideoPlayer","autoPlay","onPlay","onEnded","onProgress","tracks","videoKey","videoRef","lastTime","isFullscreen","setIsFullscreen","setCurrentTime","setDuration","volume","setVolume","setSpeed","isMuted","setIsMuted","video","handlePlay","handleEnded","handleTimeUpdate","seconds","handleLoadedMetadata","handleFullscreenChange","handleVolumeChange","handleSpeedChange","toggleMute","toggleFullscreen","videoContainer","handleSeek","isInteraction","newTime","PauseIcon","PlayArrowIcon","Seekbar","VolumeOffIcon","VolumeUpIcon","Slider","SubtitlesIcon","FullscreenExitIcon","FullscreenIcon","trackColor","progressBarColor","trackRef","progressBarRef","thumbRef","valueRef","isDragging","setIsDragging","calculateValueFromPosition","trackRect","percentage","handleInteractionStart","handleInteractionMove","newPercentage","handleInteractionEnd","handleTouchMove","handleMouseUp","handleTouchEnd","currentVideoTime","epsilon","handleTrackClick","largeStep","thumbSize","trackHeight","DEFAULT_OPTIONS","VideoWrapper","defu","createDefu","currentValue","EliceVideoV2","textTrack","_options","playerRef","player","videojs","srcInfo","useCallback","blob","audioContext","analyzer","initRecordingState","initState","useRecorderInnerState","useRecorderAction","useInitRecorder","firstRender","EliceRecorderBlock","EliceRecorder","IconWrapper","PlayIcon","PlayerButton","getAccurateDuration","mimeType","onFileLoaded","progress","setProgress","isReady","setIsReady","filename","togglePlay","audio","updateProgress","percent","LinearProgress","AIDTBreakpoints","basePalette","elicePalettes","type1Palettes","type2Palettes","getThemeColors","publisher","subject","AIDTThemeColors","createAIDTTheme","paletteMode","palettePublisher","paletteSubject","paletteLevel","typographyFontFamily","themeColors","createEliceTheme"],"mappings":"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AI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAGA,GAAa,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAGA,GAAa,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAGA,GAAa,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAGA,GAAa,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAGA,GAAa,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAGA,GAAa,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAGA,GAAa,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAGA,GAAa,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAGA,GAAa,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAGA,GAAa,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAGA,GAAa,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAGA,GAAa,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAGA,GAAa,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAGA,GAAa,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAGA,GAAa,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAGA,GAAa,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAGA,GAAa,GAAG,IAAI,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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,145,146,147,148,149,150,151,158,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,262,276,280,286,287,288,289,290,291,292]}
|