78227.b63d41a227e10bfa.js.map 174 KB

1
  1. {"version":3,"file":"static/chunks/78227.b63d41a227e10bfa.js","mappings":"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","sources":["webpack://_N_E/./public/icons/caret-down.svg","webpack://_N_E/./public/icons/check.svg","webpack://_N_E/./public/icons/download.svg","webpack://_N_E/./public/icons/menu_more_horiz.svg","webpack://_N_E/./public/icons/pause.svg","webpack://_N_E/./public/icons/play-arrow.svg","webpack://_N_E/./public/icons/plus.svg","webpack://_N_E/./node_modules/next-translate/lib/esm/formatElements.js","webpack://_N_E/./node_modules/next-translate/lib/esm/Trans.js","webpack://_N_E/./src/components/AudioPlayer/AudioKeyboardListeners.tsx","webpack://_N_E/./node_modules/@radix-ui/number/dist/index.mjs","webpack://_N_E/./node_modules/@radix-ui/react-slider/dist/index.mjs","webpack://_N_E/./src/components/dls/Slider/index.tsx","webpack://_N_E/./public/icons/no-sound.svg","webpack://_N_E/./src/components/AudioPlayer/AudioPlayerSlider.tsx","webpack://_N_E/./src/utils/event.ts","webpack://_N_E/./src/components/AudioPlayer/Buttons/CloseButton.tsx","webpack://_N_E/./src/components/AudioPlayer/Buttons/PlayPauseButton.tsx","webpack://_N_E/./public/icons/volume-down.svg","webpack://_N_E/./public/icons/volume-up.svg","webpack://_N_E/./public/icons/experience.svg","webpack://_N_E/./src/components/AudioPlayer/Buttons/VolumeControl/index.tsx","webpack://_N_E/./src/components/AudioPlayer/RemainingRangeCount.tsx","webpack://_N_E/./src/components/AudioPlayer/AudioPlayerOverflowMenuTrigger.tsx","webpack://_N_E/./src/components/AudioPlayer/Buttons/AudioExperienceMenu/ContentTypeMessage.tsx","webpack://_N_E/./src/components/AudioPlayer/Buttons/AudioExperienceMenu/HelpText.tsx","webpack://_N_E/./src/components/AudioPlayer/Buttons/AudioExperienceMenu/index.tsx","webpack://_N_E/./src/components/AudioPlayer/Buttons/AudioPlaybackRateMenu.tsx","webpack://_N_E/./src/components/AudioPlayer/Buttons/RepeatButton.tsx","webpack://_N_E/./src/components/AudioPlayer/Buttons/SelectReciterMenu.tsx","webpack://_N_E/./public/icons/person.svg","webpack://_N_E/./src/components/AudioPlayer/OverflowAudioPlayActionsMenuBody.tsx","webpack://_N_E/./public/icons/backward.svg","webpack://_N_E/./src/components/AudioPlayer/OverflowAudioPlayerActionsMenu.tsx","webpack://_N_E/./public/icons/forward.svg","webpack://_N_E/./src/components/AudioPlayer/SeekButton.tsx","webpack://_N_E/./src/components/AudioPlayer/PlaybackControls.tsx","webpack://_N_E/./src/components/AudioPlayer/Buttons/CloseRadioButton.tsx","webpack://_N_E/./src/components/AudioPlayer/RadioPlaybackControl.tsx","webpack://_N_E/./src/components/AudioPlayer/AudioPlayerBody/index.tsx","webpack://_N_E/./src/components/AudioPlayer/Buttons/DownloadAudioButton.tsx","webpack://_N_E/./src/components/DataFetcher/index.tsx","webpack://_N_E/./public/icons/retry.svg","webpack://_N_E/./src/components/Error/index.tsx","webpack://_N_E/./src/components/dls/Badge/Badge.tsx","webpack://_N_E/./public/icons/minus.svg","webpack://_N_E/./src/components/dls/Counter/Counter.tsx","webpack://_N_E/./public/icons/divider-horizontal.svg","webpack://_N_E/./public/icons/tick.svg","webpack://_N_E/./src/components/dls/Forms/Checkbox/Checkbox.tsx","webpack://_N_E/./src/xstate/Radio/useCurrentStationInfo.ts","webpack://_N_E/./src/xstate/actors/audioPlayer/selectors.ts","webpack://_N_E/./src/components/AudioPlayer/AudioPlayerBody/AudioPlayerBody.module.scss","webpack://_N_E/./src/components/AudioPlayer/AudioPlayerSlider.module.scss","webpack://_N_E/./src/components/AudioPlayer/Buttons/AudioExperienceMenu/AudioExperienceMenu.module.scss","webpack://_N_E/./src/components/AudioPlayer/Buttons/SelectReciterMenu.module.scss","webpack://_N_E/./src/components/AudioPlayer/Buttons/VolumeControl/VolumeControl.module.scss","webpack://_N_E/./src/components/AudioPlayer/OverflowAudioPlayActionsMenuBody.module.scss","webpack://_N_E/./src/components/AudioPlayer/OverflowAudioPlayerActionsMenu.module.scss","webpack://_N_E/./src/components/AudioPlayer/PlaybackControls.module.scss","webpack://_N_E/./src/components/AudioPlayer/RadioPlaybackControl.module.scss","webpack://_N_E/./src/components/Error/Error.module.scss","webpack://_N_E/./src/components/dls/Badge/Badge.module.scss","webpack://_N_E/./src/components/dls/Counter/Counter.module.scss","webpack://_N_E/./src/components/dls/Forms/Checkbox/Checkbox.module.scss","webpack://_N_E/./src/components/dls/Slider/Slider.module.scss","webpack://_N_E/./node_modules/@radix-ui/react-checkbox/dist/index.mjs","webpack://_N_E/./node_modules/@radix-ui/react-use-previous/dist/index.mjs"],"sourcesContent":["var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCaretDown = function SvgCaretDown(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 24 24\",\n width: 18,\n height: 18,\n stroke: \"currentColor\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\",\n shapeRendering: \"geometricPrecision\",\n style: {\n color: \"currentcolor\"\n }\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m6 9 6 6 6-6\"\n })));\n};\nexport default SvgCaretDown;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCheck = function SvgCheck(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 15,\n height: 15,\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.467 3.727c.289.189.37.576.181.865l-4.25 6.5a.625.625 0 0 1-.944.12l-2.75-2.5a.625.625 0 0 1 .841-.925l2.208 2.007 3.849-5.886a.625.625 0 0 1 .865-.181Z\",\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n })));\n};\nexport default SvgCheck;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgDownload = function SvgDownload(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 15,\n height: 15,\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 1.05a.45.45 0 0 1 .45.45v6.914l2.232-2.232a.45.45 0 1 1 .636.636l-3 3a.45.45 0 0 1-.636 0l-3-3a.45.45 0 1 1 .636-.636L7.05 8.414V1.5a.45.45 0 0 1 .45-.45ZM2.5 10a.5.5 0 0 1 .5.5V12c0 .554.446 1 .996 1h7.005A.999.999 0 0 0 12 12v-1.5a.5.5 0 0 1 1 0V12c0 1.104-.894 2-1.999 2H3.996A1.997 1.997 0 0 1 2 12v-1.5a.5.5 0 0 1 .5-.5Z\",\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n })));\n};\nexport default SvgDownload;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgMenuMoreHoriz = function SvgMenuMoreHoriz(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 13a1 1 0 1 0 0-2 1 1 0 0 0 0 2ZM19 13a1 1 0 1 0 0-2 1 1 0 0 0 0 2ZM5 13a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n};\nexport default SvgMenuMoreHoriz;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPause = function SvgPause(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5 20h4.571V4H5v16Zm9.143-16v16h4.571V4h-4.571Z\",\n fill: \"currentColor\"\n })));\n};\nexport default SvgPause;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPlayArrow = function SvgPlayArrow(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 2v20.364l16-10.182L4 2Z\",\n fill: \"currentColor\"\n })));\n};\nexport default SvgPlayArrow;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPlus = function SvgPlus(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 15,\n height: 15,\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 2.75a.5.5 0 0 0-1 0V7H2.75a.5.5 0 0 0 0 1H7v4.25a.5.5 0 0 0 1 0V8h4.25a.5.5 0 0 0 0-1H8V2.75Z\",\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n })));\n};\nexport default SvgPlus;","import React, { cloneElement, Fragment } from 'react';\nvar tagRe = /<(\\w+)>(.*?)<\\/\\1>|<(\\w+)\\/>/;\nvar nlRe = /(?:\\r\\n|\\r|\\n)/g;\nfunction getElements(parts) {\n if (!parts.length)\n return [];\n var _a = parts.slice(0, 4), paired = _a[0], children = _a[1], unpaired = _a[2], after = _a[3];\n return [\n [(paired || unpaired), children || '', after],\n ].concat(getElements(parts.slice(4, parts.length)));\n}\nexport default function formatElements(value, elements) {\n if (elements === void 0) { elements = []; }\n var parts = value.replace(nlRe, '').split(tagRe);\n if (parts.length === 1)\n return value;\n var tree = [];\n var before = parts.shift();\n if (before)\n tree.push(before);\n getElements(parts).forEach(function (_a, realIndex) {\n var key = _a[0], children = _a[1], after = _a[2];\n var element = elements[key] || React.createElement(Fragment, null);\n tree.push(cloneElement(element, { key: realIndex }, children ? formatElements(children, elements) : element.props.children));\n if (after)\n tree.push(after);\n });\n return tree;\n}\n","import { useMemo } from 'react';\nimport useTranslation from './useTranslation';\nimport formatElements from './formatElements';\nexport default function Trans(_a) {\n var i18nKey = _a.i18nKey, values = _a.values, components = _a.components, fallback = _a.fallback, defaultTrans = _a.defaultTrans, ns = _a.ns;\n var _b = useTranslation(ns), t = _b.t, lang = _b.lang;\n var result = useMemo(function () {\n var text = t(i18nKey, values, { fallback: fallback, default: defaultTrans });\n if (!components || components.length === 0)\n return text;\n return formatElements(text, components);\n }, [i18nKey, values, components, lang]);\n return result;\n}\n","import { useCallback, useContext } from 'react';\n\nimport { useHotkeys, Options } from 'react-hotkeys-hook';\n\nimport { logEvent } from '@/utils/eventLogger';\nimport { AudioPlayerMachineContext } from 'src/xstate/AudioPlayerMachineContext';\n\ntype AudioKeyBoardListenersProps = {\n togglePlaying: () => void;\n isAudioPlayerHidden: boolean;\n};\n\nconst AudioKeyBoardListeners = ({\n togglePlaying,\n isAudioPlayerHidden,\n}: AudioKeyBoardListenersProps) => {\n const audioService = useContext(AudioPlayerMachineContext);\n const toggleAudioPlayer = useCallback(\n (event: KeyboardEvent) => {\n logEvent('audio_player_toggle_keyboard_shortcut');\n event.preventDefault();\n togglePlaying();\n },\n [togglePlaying],\n );\n const seekForward = (event: KeyboardEvent) => {\n logEvent('audio_player_fwd_keyboard_shortcut');\n event.preventDefault();\n audioService.send({ type: 'NEXT_AYAH' });\n };\n const seekBackwards = (event: KeyboardEvent) => {\n logEvent('audio_player_bwd_keyboard_shortcut');\n event.preventDefault();\n audioService.send({ type: 'PREV_AYAH' });\n };\n\n const options = { enabled: !isAudioPlayerHidden } as Options;\n useHotkeys('space', toggleAudioPlayer, options, [togglePlaying]);\n useHotkeys('right', seekForward, options);\n useHotkeys('left', seekBackwards, options);\n return <></>;\n};\n\nexport default AudioKeyBoardListeners;\n","function $ae6933e535247d3d$export$7d15b64cf5a3a4c4(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\n\n\n\n\nexport {$ae6933e535247d3d$export$7d15b64cf5a3a4c4 as clamp};\n//# sourceMappingURL=index.mjs.map\n","import $g1Vy2$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {forwardRef as $g1Vy2$forwardRef, useState as $g1Vy2$useState, useRef as $g1Vy2$useRef, createElement as $g1Vy2$createElement, useMemo as $g1Vy2$useMemo, useEffect as $g1Vy2$useEffect} from \"react\";\nimport {clamp as $g1Vy2$clamp} from \"@radix-ui/number\";\nimport {composeEventHandlers as $g1Vy2$composeEventHandlers} from \"@radix-ui/primitive\";\nimport {useComposedRefs as $g1Vy2$useComposedRefs} from \"@radix-ui/react-compose-refs\";\nimport {createContextScope as $g1Vy2$createContextScope} from \"@radix-ui/react-context\";\nimport {useControllableState as $g1Vy2$useControllableState} from \"@radix-ui/react-use-controllable-state\";\nimport {useDirection as $g1Vy2$useDirection} from \"@radix-ui/react-direction\";\nimport {usePrevious as $g1Vy2$usePrevious} from \"@radix-ui/react-use-previous\";\nimport {useSize as $g1Vy2$useSize} from \"@radix-ui/react-use-size\";\nimport {Primitive as $g1Vy2$Primitive} from \"@radix-ui/react-primitive\";\nimport {createCollection as $g1Vy2$createCollection} from \"@radix-ui/react-collection\";\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst $faa2e61a3361514f$var$PAGE_KEYS = [\n 'PageUp',\n 'PageDown'\n];\nconst $faa2e61a3361514f$var$ARROW_KEYS = [\n 'ArrowUp',\n 'ArrowDown',\n 'ArrowLeft',\n 'ArrowRight'\n];\nconst $faa2e61a3361514f$var$BACK_KEYS = {\n 'from-left': [\n 'Home',\n 'PageDown',\n 'ArrowDown',\n 'ArrowLeft'\n ],\n 'from-right': [\n 'Home',\n 'PageDown',\n 'ArrowDown',\n 'ArrowRight'\n ],\n 'from-bottom': [\n 'Home',\n 'PageDown',\n 'ArrowDown',\n 'ArrowLeft'\n ],\n 'from-top': [\n 'Home',\n 'PageDown',\n 'ArrowUp',\n 'ArrowLeft'\n ]\n};\n/* -------------------------------------------------------------------------------------------------\n * Slider\n * -----------------------------------------------------------------------------------------------*/ const $faa2e61a3361514f$var$SLIDER_NAME = 'Slider';\nconst [$faa2e61a3361514f$var$Collection, $faa2e61a3361514f$var$useCollection, $faa2e61a3361514f$var$createCollectionScope] = $g1Vy2$createCollection($faa2e61a3361514f$var$SLIDER_NAME);\nconst [$faa2e61a3361514f$var$createSliderContext, $faa2e61a3361514f$export$ef72632d7b901f97] = $g1Vy2$createContextScope($faa2e61a3361514f$var$SLIDER_NAME, [\n $faa2e61a3361514f$var$createCollectionScope\n]);\nconst [$faa2e61a3361514f$var$SliderProvider, $faa2e61a3361514f$var$useSliderContext] = $faa2e61a3361514f$var$createSliderContext($faa2e61a3361514f$var$SLIDER_NAME);\nconst $faa2e61a3361514f$export$472062a354075cee = /*#__PURE__*/ $g1Vy2$forwardRef((props, forwardedRef)=>{\n const { name: name , min: min = 0 , max: max = 100 , step: step = 1 , orientation: orientation = 'horizontal' , disabled: disabled = false , minStepsBetweenThumbs: minStepsBetweenThumbs = 0 , defaultValue: defaultValue = [\n min\n ] , value: value1 , onValueChange: onValueChange = ()=>{} , onValueCommit: onValueCommit = ()=>{} , inverted: inverted = false , ...sliderProps } = props;\n const [slider, setSlider] = $g1Vy2$useState(null);\n const composedRefs = $g1Vy2$useComposedRefs(forwardedRef, (node)=>setSlider(node)\n );\n const thumbRefs = $g1Vy2$useRef(new Set());\n const valueIndexToChangeRef = $g1Vy2$useRef(0);\n const isHorizontal = orientation === 'horizontal'; // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = slider ? Boolean(slider.closest('form')) : true;\n const SliderOrientation = isHorizontal ? $faa2e61a3361514f$var$SliderHorizontal : $faa2e61a3361514f$var$SliderVertical;\n const [values = [], setValues] = $g1Vy2$useControllableState({\n prop: value1,\n defaultProp: defaultValue,\n onChange: (value)=>{\n var _thumbs$valueIndexToC;\n const thumbs = [\n ...thumbRefs.current\n ];\n (_thumbs$valueIndexToC = thumbs[valueIndexToChangeRef.current]) === null || _thumbs$valueIndexToC === void 0 || _thumbs$valueIndexToC.focus();\n onValueChange(value);\n }\n });\n const valuesBeforeSlideStartRef = $g1Vy2$useRef(values);\n function handleSlideStart(value) {\n const closestIndex = $faa2e61a3361514f$var$getClosestValueIndex(values, value);\n updateValues(value, closestIndex);\n }\n function handleSlideMove(value) {\n updateValues(value, valueIndexToChangeRef.current);\n }\n function handleSlideEnd() {\n const prevValue = valuesBeforeSlideStartRef.current[valueIndexToChangeRef.current];\n const nextValue = values[valueIndexToChangeRef.current];\n const hasChanged = nextValue !== prevValue;\n if (hasChanged) onValueCommit(values);\n }\n function updateValues(value, atIndex, { commit: commit } = {\n commit: false\n }) {\n const decimalCount = $faa2e61a3361514f$var$getDecimalCount(step);\n const snapToStep = $faa2e61a3361514f$var$roundValue(Math.round((value - min) / step) * step + min, decimalCount);\n const nextValue = $g1Vy2$clamp(snapToStep, [\n min,\n max\n ]);\n setValues((prevValues = [])=>{\n const nextValues = $faa2e61a3361514f$var$getNextSortedValues(prevValues, nextValue, atIndex);\n if ($faa2e61a3361514f$var$hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n const hasChanged = String(nextValues) !== String(prevValues);\n if (hasChanged && commit) onValueCommit(nextValues);\n return hasChanged ? nextValues : prevValues;\n } else return prevValues;\n });\n }\n return /*#__PURE__*/ $g1Vy2$createElement($faa2e61a3361514f$var$SliderProvider, {\n scope: props.__scopeSlider,\n disabled: disabled,\n min: min,\n max: max,\n valueIndexToChangeRef: valueIndexToChangeRef,\n thumbs: thumbRefs.current,\n values: values,\n orientation: orientation\n }, /*#__PURE__*/ $g1Vy2$createElement($faa2e61a3361514f$var$Collection.Provider, {\n scope: props.__scopeSlider\n }, /*#__PURE__*/ $g1Vy2$createElement($faa2e61a3361514f$var$Collection.Slot, {\n scope: props.__scopeSlider\n }, /*#__PURE__*/ $g1Vy2$createElement(SliderOrientation, $g1Vy2$babelruntimehelpersesmextends({\n \"aria-disabled\": disabled,\n \"data-disabled\": disabled ? '' : undefined\n }, sliderProps, {\n ref: composedRefs,\n onPointerDown: $g1Vy2$composeEventHandlers(sliderProps.onPointerDown, ()=>{\n if (!disabled) valuesBeforeSlideStartRef.current = values;\n }),\n min: min,\n max: max,\n inverted: inverted,\n onSlideStart: disabled ? undefined : handleSlideStart,\n onSlideMove: disabled ? undefined : handleSlideMove,\n onSlideEnd: disabled ? undefined : handleSlideEnd,\n onHomeKeyDown: ()=>!disabled && updateValues(min, 0, {\n commit: true\n })\n ,\n onEndKeyDown: ()=>!disabled && updateValues(max, values.length - 1, {\n commit: true\n })\n ,\n onStepKeyDown: ({ event: event , direction: stepDirection })=>{\n if (!disabled) {\n const isPageKey = $faa2e61a3361514f$var$PAGE_KEYS.includes(event.key);\n const isSkipKey = isPageKey || event.shiftKey && $faa2e61a3361514f$var$ARROW_KEYS.includes(event.key);\n const multiplier = isSkipKey ? 10 : 1;\n const atIndex = valueIndexToChangeRef.current;\n const value = values[atIndex];\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value + stepInDirection, atIndex, {\n commit: true\n });\n }\n }\n })))), isFormControl && values.map((value, index)=>/*#__PURE__*/ $g1Vy2$createElement($faa2e61a3361514f$var$BubbleInput, {\n key: index,\n name: name ? name + (values.length > 1 ? '[]' : '') : undefined,\n value: value\n })\n ));\n});\n/*#__PURE__*/ Object.assign($faa2e61a3361514f$export$472062a354075cee, {\n displayName: $faa2e61a3361514f$var$SLIDER_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * SliderHorizontal\n * -----------------------------------------------------------------------------------------------*/ const [$faa2e61a3361514f$var$SliderOrientationProvider, $faa2e61a3361514f$var$useSliderOrientationContext] = $faa2e61a3361514f$var$createSliderContext($faa2e61a3361514f$var$SLIDER_NAME, {\n startEdge: 'left',\n endEdge: 'right',\n size: 'width',\n direction: 1\n});\nconst $faa2e61a3361514f$var$SliderHorizontal = /*#__PURE__*/ $g1Vy2$forwardRef((props, forwardedRef)=>{\n const { min: min , max: max , dir: dir , inverted: inverted , onSlideStart: onSlideStart , onSlideMove: onSlideMove , onSlideEnd: onSlideEnd , onStepKeyDown: onStepKeyDown , ...sliderProps } = props;\n const [slider, setSlider] = $g1Vy2$useState(null);\n const composedRefs = $g1Vy2$useComposedRefs(forwardedRef, (node)=>setSlider(node)\n );\n const rectRef = $g1Vy2$useRef();\n const direction = $g1Vy2$useDirection(dir);\n const isDirectionLTR = direction === 'ltr';\n const isSlidingFromLeft = isDirectionLTR && !inverted || !isDirectionLTR && inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || slider.getBoundingClientRect();\n const input = [\n 0,\n rect.width\n ];\n const output = isSlidingFromLeft ? [\n min,\n max\n ] : [\n max,\n min\n ];\n const value = $faa2e61a3361514f$var$linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n return /*#__PURE__*/ $g1Vy2$createElement($faa2e61a3361514f$var$SliderOrientationProvider, {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromLeft ? 'left' : 'right',\n endEdge: isSlidingFromLeft ? 'right' : 'left',\n direction: isSlidingFromLeft ? 1 : -1,\n size: \"width\"\n }, /*#__PURE__*/ $g1Vy2$createElement($faa2e61a3361514f$var$SliderImpl, $g1Vy2$babelruntimehelpersesmextends({\n dir: direction,\n \"data-orientation\": \"horizontal\"\n }, sliderProps, {\n ref: composedRefs,\n style: {\n ...sliderProps.style,\n ['--radix-slider-thumb-transform']: 'translateX(-50%)'\n },\n onSlideStart: (event)=>{\n const value = getValueFromPointer(event.clientX);\n onSlideStart === null || onSlideStart === void 0 || onSlideStart(value);\n },\n onSlideMove: (event)=>{\n const value = getValueFromPointer(event.clientX);\n onSlideMove === null || onSlideMove === void 0 || onSlideMove(value);\n },\n onSlideEnd: ()=>{\n rectRef.current = undefined;\n onSlideEnd === null || onSlideEnd === void 0 || onSlideEnd();\n },\n onStepKeyDown: (event)=>{\n const slideDirection = isSlidingFromLeft ? 'from-left' : 'from-right';\n const isBackKey = $faa2e61a3361514f$var$BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown === null || onStepKeyDown === void 0 || onStepKeyDown({\n event: event,\n direction: isBackKey ? -1 : 1\n });\n }\n })));\n});\n/* -------------------------------------------------------------------------------------------------\n * SliderVertical\n * -----------------------------------------------------------------------------------------------*/ const $faa2e61a3361514f$var$SliderVertical = /*#__PURE__*/ $g1Vy2$forwardRef((props, forwardedRef)=>{\n const { min: min , max: max , inverted: inverted , onSlideStart: onSlideStart , onSlideMove: onSlideMove , onSlideEnd: onSlideEnd , onStepKeyDown: onStepKeyDown , ...sliderProps } = props;\n const sliderRef = $g1Vy2$useRef(null);\n const ref = $g1Vy2$useComposedRefs(forwardedRef, sliderRef);\n const rectRef = $g1Vy2$useRef();\n const isSlidingFromBottom = !inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || sliderRef.current.getBoundingClientRect();\n const input = [\n 0,\n rect.height\n ];\n const output = isSlidingFromBottom ? [\n max,\n min\n ] : [\n min,\n max\n ];\n const value = $faa2e61a3361514f$var$linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n return /*#__PURE__*/ $g1Vy2$createElement($faa2e61a3361514f$var$SliderOrientationProvider, {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromBottom ? 'bottom' : 'top',\n endEdge: isSlidingFromBottom ? 'top' : 'bottom',\n size: \"height\",\n direction: isSlidingFromBottom ? 1 : -1\n }, /*#__PURE__*/ $g1Vy2$createElement($faa2e61a3361514f$var$SliderImpl, $g1Vy2$babelruntimehelpersesmextends({\n \"data-orientation\": \"vertical\"\n }, sliderProps, {\n ref: ref,\n style: {\n ...sliderProps.style,\n ['--radix-slider-thumb-transform']: 'translateY(50%)'\n },\n onSlideStart: (event)=>{\n const value = getValueFromPointer(event.clientY);\n onSlideStart === null || onSlideStart === void 0 || onSlideStart(value);\n },\n onSlideMove: (event)=>{\n const value = getValueFromPointer(event.clientY);\n onSlideMove === null || onSlideMove === void 0 || onSlideMove(value);\n },\n onSlideEnd: ()=>{\n rectRef.current = undefined;\n onSlideEnd === null || onSlideEnd === void 0 || onSlideEnd();\n },\n onStepKeyDown: (event)=>{\n const slideDirection = isSlidingFromBottom ? 'from-bottom' : 'from-top';\n const isBackKey = $faa2e61a3361514f$var$BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown === null || onStepKeyDown === void 0 || onStepKeyDown({\n event: event,\n direction: isBackKey ? -1 : 1\n });\n }\n })));\n});\n/* -------------------------------------------------------------------------------------------------\n * SliderImpl\n * -----------------------------------------------------------------------------------------------*/ const $faa2e61a3361514f$var$SliderImpl = /*#__PURE__*/ $g1Vy2$forwardRef((props, forwardedRef)=>{\n const { __scopeSlider: __scopeSlider , onSlideStart: onSlideStart , onSlideMove: onSlideMove , onSlideEnd: onSlideEnd , onHomeKeyDown: onHomeKeyDown , onEndKeyDown: onEndKeyDown , onStepKeyDown: onStepKeyDown , ...sliderProps } = props;\n const context = $faa2e61a3361514f$var$useSliderContext($faa2e61a3361514f$var$SLIDER_NAME, __scopeSlider);\n return /*#__PURE__*/ $g1Vy2$createElement($g1Vy2$Primitive.span, $g1Vy2$babelruntimehelpersesmextends({}, sliderProps, {\n ref: forwardedRef,\n onKeyDown: $g1Vy2$composeEventHandlers(props.onKeyDown, (event)=>{\n if (event.key === 'Home') {\n onHomeKeyDown(event); // Prevent scrolling to page start\n event.preventDefault();\n } else if (event.key === 'End') {\n onEndKeyDown(event); // Prevent scrolling to page end\n event.preventDefault();\n } else if ($faa2e61a3361514f$var$PAGE_KEYS.concat($faa2e61a3361514f$var$ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event); // Prevent scrolling for directional key presses\n event.preventDefault();\n }\n }),\n onPointerDown: $g1Vy2$composeEventHandlers(props.onPointerDown, (event)=>{\n const target = event.target;\n target.setPointerCapture(event.pointerId); // Prevent browser focus behaviour because we focus a thumb manually when values change.\n event.preventDefault(); // Touch devices have a delay before focusing so won't focus if touch immediately moves\n // away from target (sliding). We want thumb to focus regardless.\n if (context.thumbs.has(target)) target.focus();\n else onSlideStart(event);\n }),\n onPointerMove: $g1Vy2$composeEventHandlers(props.onPointerMove, (event)=>{\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n }),\n onPointerUp: $g1Vy2$composeEventHandlers(props.onPointerUp, (event)=>{\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })\n }));\n});\n/* -------------------------------------------------------------------------------------------------\n * SliderTrack\n * -----------------------------------------------------------------------------------------------*/ const $faa2e61a3361514f$var$TRACK_NAME = 'SliderTrack';\nconst $faa2e61a3361514f$export$105594979f116971 = /*#__PURE__*/ $g1Vy2$forwardRef((props, forwardedRef)=>{\n const { __scopeSlider: __scopeSlider , ...trackProps } = props;\n const context = $faa2e61a3361514f$var$useSliderContext($faa2e61a3361514f$var$TRACK_NAME, __scopeSlider);\n return /*#__PURE__*/ $g1Vy2$createElement($g1Vy2$Primitive.span, $g1Vy2$babelruntimehelpersesmextends({\n \"data-disabled\": context.disabled ? '' : undefined,\n \"data-orientation\": context.orientation\n }, trackProps, {\n ref: forwardedRef\n }));\n});\n/*#__PURE__*/ Object.assign($faa2e61a3361514f$export$105594979f116971, {\n displayName: $faa2e61a3361514f$var$TRACK_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * SliderRange\n * -----------------------------------------------------------------------------------------------*/ const $faa2e61a3361514f$var$RANGE_NAME = 'SliderRange';\nconst $faa2e61a3361514f$export$a5cf38a7a000fe77 = /*#__PURE__*/ $g1Vy2$forwardRef((props, forwardedRef)=>{\n const { __scopeSlider: __scopeSlider , ...rangeProps } = props;\n const context = $faa2e61a3361514f$var$useSliderContext($faa2e61a3361514f$var$RANGE_NAME, __scopeSlider);\n const orientation = $faa2e61a3361514f$var$useSliderOrientationContext($faa2e61a3361514f$var$RANGE_NAME, __scopeSlider);\n const ref = $g1Vy2$useRef(null);\n const composedRefs = $g1Vy2$useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map((value)=>$faa2e61a3361514f$var$convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n return /*#__PURE__*/ $g1Vy2$createElement($g1Vy2$Primitive.span, $g1Vy2$babelruntimehelpersesmextends({\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? '' : undefined\n }, rangeProps, {\n ref: composedRefs,\n style: {\n ...props.style,\n [orientation.startEdge]: offsetStart + '%',\n [orientation.endEdge]: offsetEnd + '%'\n }\n }));\n});\n/*#__PURE__*/ Object.assign($faa2e61a3361514f$export$a5cf38a7a000fe77, {\n displayName: $faa2e61a3361514f$var$RANGE_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * SliderThumb\n * -----------------------------------------------------------------------------------------------*/ const $faa2e61a3361514f$var$THUMB_NAME = 'SliderThumb';\nconst $faa2e61a3361514f$export$2c1b491743890dec = /*#__PURE__*/ $g1Vy2$forwardRef((props, forwardedRef)=>{\n const getItems = $faa2e61a3361514f$var$useCollection(props.__scopeSlider);\n const [thumb, setThumb] = $g1Vy2$useState(null);\n const composedRefs = $g1Vy2$useComposedRefs(forwardedRef, (node)=>setThumb(node)\n );\n const index = $g1Vy2$useMemo(()=>thumb ? getItems().findIndex((item)=>item.ref.current === thumb\n ) : -1\n , [\n getItems,\n thumb\n ]);\n return /*#__PURE__*/ $g1Vy2$createElement($faa2e61a3361514f$var$SliderThumbImpl, $g1Vy2$babelruntimehelpersesmextends({}, props, {\n ref: composedRefs,\n index: index\n }));\n});\nconst $faa2e61a3361514f$var$SliderThumbImpl = /*#__PURE__*/ $g1Vy2$forwardRef((props, forwardedRef)=>{\n const { __scopeSlider: __scopeSlider , index: index , ...thumbProps } = props;\n const context = $faa2e61a3361514f$var$useSliderContext($faa2e61a3361514f$var$THUMB_NAME, __scopeSlider);\n const orientation = $faa2e61a3361514f$var$useSliderOrientationContext($faa2e61a3361514f$var$THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = $g1Vy2$useState(null);\n const composedRefs = $g1Vy2$useComposedRefs(forwardedRef, (node)=>setThumb(node)\n );\n const size = $g1Vy2$useSize(thumb); // We cast because index could be `-1` which would return undefined\n const value = context.values[index];\n const percent = value === undefined ? 0 : $faa2e61a3361514f$var$convertValueToPercentage(value, context.min, context.max);\n const label = $faa2e61a3361514f$var$getLabel(index, context.values.length);\n const orientationSize = size === null || size === void 0 ? void 0 : size[orientation.size];\n const thumbInBoundsOffset = orientationSize ? $faa2e61a3361514f$var$getThumbInBoundsOffset(orientationSize, percent, orientation.direction) : 0;\n $g1Vy2$useEffect(()=>{\n if (thumb) {\n context.thumbs.add(thumb);\n return ()=>{\n context.thumbs.delete(thumb);\n };\n }\n }, [\n thumb,\n context.thumbs\n ]);\n return /*#__PURE__*/ $g1Vy2$createElement(\"span\", {\n style: {\n transform: 'var(--radix-slider-thumb-transform)',\n position: 'absolute',\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`\n }\n }, /*#__PURE__*/ $g1Vy2$createElement($faa2e61a3361514f$var$Collection.ItemSlot, {\n scope: props.__scopeSlider\n }, /*#__PURE__*/ $g1Vy2$createElement($g1Vy2$Primitive.span, $g1Vy2$babelruntimehelpersesmextends({\n role: \"slider\",\n \"aria-label\": props['aria-label'] || label,\n \"aria-valuemin\": context.min,\n \"aria-valuenow\": value,\n \"aria-valuemax\": context.max,\n \"aria-orientation\": context.orientation,\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? '' : undefined,\n tabIndex: context.disabled ? undefined : 0\n }, thumbProps, {\n ref: composedRefs,\n style: value === undefined ? {\n display: 'none'\n } : props.style,\n onFocus: $g1Vy2$composeEventHandlers(props.onFocus, ()=>{\n context.valueIndexToChangeRef.current = index;\n })\n }))));\n});\n/*#__PURE__*/ Object.assign($faa2e61a3361514f$export$2c1b491743890dec, {\n displayName: $faa2e61a3361514f$var$THUMB_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ const $faa2e61a3361514f$var$BubbleInput = (props)=>{\n const { value: value , ...inputProps } = props;\n const ref = $g1Vy2$useRef(null);\n const prevValue = $g1Vy2$usePrevious(value); // Bubble value change to parents (e.g form change event)\n $g1Vy2$useEffect(()=>{\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'value');\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event('input', {\n bubbles: true\n });\n setValue.call(input, value);\n input.dispatchEvent(event);\n }\n }, [\n prevValue,\n value\n ]);\n /**\n * We purposefully do not use `type=\"hidden\"` here otherwise forms that\n * wrap it will not be able to access its value via the FormData API.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programatically and bubble to any parent form `onChange` event.\n * Adding the `value` will cause React to consider the programatic\n * dispatch a duplicate and it will get swallowed.\n */ return /*#__PURE__*/ $g1Vy2$createElement(\"input\", $g1Vy2$babelruntimehelpersesmextends({\n style: {\n display: 'none'\n }\n }, inputProps, {\n ref: ref,\n defaultValue: value\n }));\n};\nfunction $faa2e61a3361514f$var$getNextSortedValues(prevValues = [], nextValue, atIndex) {\n const nextValues = [\n ...prevValues\n ];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b)=>a - b\n );\n}\nfunction $faa2e61a3361514f$var$convertValueToPercentage(value, min, max) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n const percentage = percentPerStep * (value - min);\n return $g1Vy2$clamp(percentage, [\n 0,\n 100\n ]);\n}\n/**\n * Returns a label for each thumb when there are two or more thumbs\n */ function $faa2e61a3361514f$var$getLabel(index, totalValues) {\n if (totalValues > 2) return `Value ${index + 1} of ${totalValues}`;\n else if (totalValues === 2) return [\n 'Minimum',\n 'Maximum'\n ][index];\n else return undefined;\n}\n/**\n * Given a `values` array and a `nextValue`, determine which value in\n * the array is closest to `nextValue` and return its index.\n *\n * @example\n * // returns 1\n * getClosestValueIndex([10, 30], 25);\n */ function $faa2e61a3361514f$var$getClosestValueIndex(values, nextValue) {\n if (values.length === 1) return 0;\n const distances = values.map((value)=>Math.abs(value - nextValue)\n );\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\n/**\n * Offsets the thumb centre point while sliding to ensure it remains\n * within the bounds of the slider when reaching the edges\n */ function $faa2e61a3361514f$var$getThumbInBoundsOffset(width, left, direction) {\n const halfWidth = width / 2;\n const halfPercent = 50;\n const offset = $faa2e61a3361514f$var$linearScale([\n 0,\n halfPercent\n ], [\n 0,\n halfWidth\n ]);\n return (halfWidth - offset(left) * direction) * direction;\n}\n/**\n * Gets an array of steps between each value.\n *\n * @example\n * // returns [1, 9]\n * getStepsBetweenValues([10, 11, 20]);\n */ function $faa2e61a3361514f$var$getStepsBetweenValues(values) {\n return values.slice(0, -1).map((value, index)=>values[index + 1] - value\n );\n}\n/**\n * Verifies the minimum steps between all values is greater than or equal\n * to the expected minimum steps.\n *\n * @example\n * // returns false\n * hasMinStepsBetweenValues([1,2,3], 2);\n *\n * @example\n * // returns true\n * hasMinStepsBetweenValues([1,2,3], 1);\n */ function $faa2e61a3361514f$var$hasMinStepsBetweenValues(values, minStepsBetweenValues) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = $faa2e61a3361514f$var$getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n} // https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nfunction $faa2e61a3361514f$var$linearScale(input, output) {\n return (value)=>{\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction $faa2e61a3361514f$var$getDecimalCount(value) {\n return (String(value).split('.')[1] || '').length;\n}\nfunction $faa2e61a3361514f$var$roundValue(value, decimalCount) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\nconst $faa2e61a3361514f$export$be92b6f5f03c0fe9 = $faa2e61a3361514f$export$472062a354075cee;\nconst $faa2e61a3361514f$export$13921ac0cc260818 = $faa2e61a3361514f$export$105594979f116971;\nconst $faa2e61a3361514f$export$9a58ef0d7ad3278c = $faa2e61a3361514f$export$a5cf38a7a000fe77;\nconst $faa2e61a3361514f$export$6521433ed15a34db = $faa2e61a3361514f$export$2c1b491743890dec;\n\n\n\n\nexport {$faa2e61a3361514f$export$ef72632d7b901f97 as createSliderScope, $faa2e61a3361514f$export$472062a354075cee as Slider, $faa2e61a3361514f$export$105594979f116971 as SliderTrack, $faa2e61a3361514f$export$a5cf38a7a000fe77 as SliderRange, $faa2e61a3361514f$export$2c1b491743890dec as SliderThumb, $faa2e61a3361514f$export$be92b6f5f03c0fe9 as Root, $faa2e61a3361514f$export$13921ac0cc260818 as Track, $faa2e61a3361514f$export$9a58ef0d7ad3278c as Range, $faa2e61a3361514f$export$6521433ed15a34db as Thumb};\n//# sourceMappingURL=index.mjs.map\n","import React, { memo } from 'react';\n\nimport * as SliderPrimitive from '@radix-ui/react-slider';\nimport classNames from 'classnames';\n\nimport styles from './Slider.module.scss';\n\nexport enum Orientation {\n Horizontal = 'horizontal',\n Vertical = 'vertical',\n}\n\nexport enum Direction {\n ltr = 'ltr',\n rtl = 'rtl',\n}\n\nexport enum SliderVariant {\n Primary = 'primary',\n Secondary = 'secondary',\n}\n\ninterface Props {\n label: string;\n name?: string;\n disabled?: boolean;\n orientation?: Orientation;\n direction?: Direction;\n value?: number[];\n defaultValue?: number[];\n min?: number;\n max?: number;\n step?: number;\n minStepsBetweenThumbs?: number;\n onValueChange?: (value: number[]) => void;\n showThumbs?: boolean;\n variant?: SliderVariant;\n withBackground?: boolean;\n}\n\nconst Slider: React.FC<Props> = ({\n label,\n name,\n onValueChange,\n min = 0,\n max = 100,\n step = 1,\n minStepsBetweenThumbs = 0,\n direction = Direction.ltr,\n orientation = Orientation.Horizontal,\n disabled = false,\n defaultValue,\n value,\n showThumbs = true,\n variant = SliderVariant.Primary,\n withBackground = false,\n}) => {\n const values = value || defaultValue;\n\n return (\n <SliderPrimitive.Slider\n className={styles.slider}\n min={min}\n max={max}\n step={step}\n minStepsBetweenThumbs={minStepsBetweenThumbs}\n dir={direction}\n orientation={orientation}\n disabled={disabled}\n aria-label={label}\n {...(defaultValue && { defaultValue })}\n {...(value && { value })}\n {...(onValueChange && { onValueChange })}\n {...(name && { name })}\n >\n <SliderPrimitive.Track\n className={classNames(styles.track, withBackground && styles.trackBackground)}\n >\n <SliderPrimitive.Range\n className={classNames(styles.range, {\n [styles.primary]: variant === SliderVariant.Primary,\n [styles.secondary]: variant === SliderVariant.Secondary,\n })}\n />\n </SliderPrimitive.Track>\n {showThumbs &&\n values.map((...[, index]) => (\n <SliderPrimitive.Thumb className={styles.thumb} key={index} />\n ))}\n </SliderPrimitive.Slider>\n );\n};\nexport default memo(Slider);\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgNoSound = function SvgNoSound(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n height: 24,\n viewBox: \"0 -960 960 960\",\n width: 24\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m616-320-56-56 104-104-104-104 56-56 104 104 104-104 56 56-104 104 104 104-56 56-104-104-104 104Zm-496-40v-240h160l200-200v640L280-360H120Zm280-246-86 86H200v80h114l86 86v-252ZM300-480Z\",\n fill: \"currentColor\"\n })));\n};\nexport default SvgNoSound;","import React, { useContext } from 'react';\n\nimport { useSelector } from '@xstate/react';\nimport { useRouter } from 'next/router';\n\nimport styles from './AudioPlayerSlider.module.scss';\n\nimport Slider, { Direction, SliderVariant } from '@/dls/Slider';\nimport useDirection from '@/hooks/useDirection';\nimport { secondsFormatter } from '@/utils/datetime';\nimport { logEvent } from '@/utils/eventLogger';\nimport { AudioPlayerMachineContext } from 'src/xstate/AudioPlayerMachineContext';\n\nconst AudioPlayerSlider = (): JSX.Element => {\n const router = useRouter();\n const { locale } = router;\n const direction = useDirection();\n\n const audioService = useContext(AudioPlayerMachineContext);\n const elapsed = useSelector(audioService, (state) => state.context.elapsed);\n const downloadProgress = useSelector(audioService, (state) => state.context.downloadProgress);\n const duration = useSelector(audioService, (state) => state.context.duration);\n\n return (\n <div className={styles.container}>\n <span className={styles.currentTime}>{secondsFormatter(elapsed, locale)}</span>\n <div className={styles.sliderContainer}>\n <Slider\n showThumbs={false}\n variant={SliderVariant.Secondary}\n label=\"audio-player\"\n value={[downloadProgress]}\n onValueChange={([newTimestamp]) => {\n logEvent('audio_player_slider_value_change');\n audioService.send({ type: 'SEEK_TO', timestamp: newTimestamp });\n }}\n max={duration}\n direction={direction as Direction}\n withBackground\n />\n </div>\n <div className={styles.sliderContainer}>\n <Slider\n label=\"audio-player\"\n value={[elapsed]}\n onValueChange={([newTimestamp]) => {\n logEvent('audio_player_slider_value_change');\n audioService.send({ type: 'SEEK_TO', timestamp: newTimestamp });\n }}\n max={duration}\n direction={direction as Direction}\n />\n </div>\n <span className={styles.remainingTime}>{secondsFormatter(duration, locale)}</span>\n </div>\n );\n};\n\nexport default AudioPlayerSlider;\n","// Need to stopPropagation() to prevent the event from bubbling up to the parent container\n// which cause dispatch `setIsMobileMinimizedForScrolling` to be called\n// eslint-disable-next-line import/prefer-default-export\nexport const withStopPropagation = (cb: () => void) => (e) => {\n e.stopPropagation();\n cb();\n};\n","import { useContext } from 'react';\n\nimport useTranslation from 'next-translate/useTranslation';\n\nimport Button, { ButtonShape, ButtonVariant } from '@/dls/Button/Button';\nimport CloseIcon from '@/icons/close.svg';\nimport { withStopPropagation } from '@/utils/event';\nimport { logButtonClick } from '@/utils/eventLogger';\nimport { AudioPlayerMachineContext } from 'src/xstate/AudioPlayerMachineContext';\n\nconst CloseButton = () => {\n const { t } = useTranslation('common');\n const audioService = useContext(AudioPlayerMachineContext);\n return (\n <Button\n tooltip={t('audio.player.close-audio-player')}\n shape={ButtonShape.Circle}\n variant={ButtonVariant.Ghost}\n onClick={withStopPropagation(() => {\n logButtonClick(`audio_player_overflow_menu_close`);\n audioService.send({ type: 'CLOSE' });\n })}\n shouldFlipOnRTL={false}\n >\n <CloseIcon />\n </Button>\n );\n};\n\nexport default CloseButton;\n","import { useContext } from 'react';\n\nimport { useSelector } from '@xstate/react';\nimport useTranslation from 'next-translate/useTranslation';\n\nimport Button, { ButtonShape, ButtonVariant } from '@/dls/Button/Button';\nimport Spinner, { SpinnerSize } from '@/dls/Spinner/Spinner';\nimport PauseIcon from '@/icons/pause.svg';\nimport PlayIcon from '@/icons/play-arrow.svg';\nimport { withStopPropagation } from '@/utils/event';\nimport { logButtonClick } from '@/utils/eventLogger';\nimport { selectIsLoading } from 'src/xstate/actors/audioPlayer/selectors';\nimport { AudioPlayerMachineContext } from 'src/xstate/AudioPlayerMachineContext';\n\nconst PlayPauseButton = () => {\n const { t } = useTranslation('common');\n\n const audioService = useContext(AudioPlayerMachineContext);\n\n const isPlaying = useSelector(audioService, (state) =>\n state.matches('VISIBLE.AUDIO_PLAYER_INITIATED.PLAYING'),\n );\n const isLoading = useSelector(audioService, selectIsLoading);\n\n if (isLoading) {\n return (\n <Button\n tooltip={`${t('loading')}...`}\n shape={ButtonShape.Circle}\n variant={ButtonVariant.Ghost}\n isDisabled={isLoading}\n >\n <Spinner size={SpinnerSize.Large} />\n </Button>\n );\n }\n if (isPlaying) {\n return (\n <Button\n tooltip={t('audio.player.pause')}\n shape={ButtonShape.Circle}\n variant={ButtonVariant.Ghost}\n onClick={withStopPropagation(() => {\n logButtonClick('audio_player_pause');\n audioService.send('TOGGLE');\n })}\n >\n <PauseIcon />\n </Button>\n );\n }\n return (\n <Button\n tooltip={t('audio.player.play')}\n shape={ButtonShape.Circle}\n variant={ButtonVariant.Ghost}\n onClick={withStopPropagation(() => {\n logButtonClick('audio_player_play');\n audioService.send('TOGGLE');\n })}\n shouldFlipOnRTL={false}\n >\n <PlayIcon />\n </Button>\n );\n};\n\nexport default PlayPauseButton;\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgVolumeDown = function SvgVolumeDown(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n height: 24,\n viewBox: \"0 -960 960 960\",\n width: 24\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M200-360v-240h160l200-200v640L360-360H200Zm440 40v-322q45 21 72.5 65t27.5 97q0 53-27.5 96T640-320ZM480-606l-86 86H280v80h114l86 86v-252ZM380-480Z\",\n fill: \"currentColor\"\n })));\n};\nexport default SvgVolumeDown;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgVolumeUp = function SvgVolumeUp(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n height: 24,\n viewBox: \"0 -960 960 960\",\n width: 24\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M560-131v-82q90-26 145-100t55-168q0-94-55-168T560-749v-82q124 28 202 125.5T840-481q0 127-78 224.5T560-131ZM120-360v-240h160l200-200v640L280-360H120Zm440 40v-322q47 22 73.5 66t26.5 96q0 51-26.5 94.5T560-320ZM400-606l-86 86H200v80h114l86 86v-252ZM300-480Z\",\n fill: \"currentColor\"\n })));\n};\nexport default SvgVolumeUp;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgExperience = function SvgExperience(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 114 174\",\n width: 114,\n height: 174,\n fill: \"currentColor\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m68.5 6.5.3 29.7L69 66h20c11 0 20 .3 20 .6s-13.4 22.9-29.7 50.2l-29.8 49.6-.3-29.7L49 107H8.1l30.2-50.3z\"\n })));\n};\nexport default SvgExperience;","import { useContext, useEffect, useState } from 'react';\n\nimport { useSelector } from '@xstate/react';\nimport useTranslation from 'next-translate/useTranslation';\n\nimport styles from './VolumeControl.module.scss';\n\nimport Button, { ButtonShape, ButtonVariant } from '@/dls/Button/Button';\nimport PopoverMenu from '@/dls/PopoverMenu/PopoverMenu';\nimport Slider, { SliderVariant } from '@/dls/Slider';\nimport useDirection from '@/hooks/useDirection';\nimport NoSoundIcon from '@/icons/no-sound.svg';\nimport VolumeDownIcon from '@/icons/volume-down.svg';\nimport VolumeUpIcon from '@/icons/volume-up.svg';\nimport { logValueChange } from '@/utils/eventLogger';\nimport { AudioPlayerMachineContext } from '@/xstate/AudioPlayerMachineContext';\n\nconst VOLUME_CONTROL_CLOSE_DELAY = 1500;\nconst VOLUME_ICONS = {\n VOLUME_UP: <VolumeUpIcon />,\n VOLUME_DOWN: <VolumeDownIcon />,\n NO_SOUND: <NoSoundIcon />,\n};\n\nconst getVolumeIconType = (volume: number): keyof typeof VOLUME_ICONS => {\n if (volume < 1) return 'NO_SOUND';\n if (volume < 50) return 'VOLUME_DOWN';\n return 'VOLUME_UP';\n};\n\nconst VolumeControl = () => {\n const direction = useDirection();\n const { t } = useTranslation('common');\n\n const audioService = useContext(AudioPlayerMachineContext);\n const volume = useSelector(audioService, (state) => state.context.volume);\n\n const [isOpen, setIsOpen] = useState(false);\n const [icon, setIcon] = useState(getVolumeIconType(volume * 100));\n\n const handleVolumeChange = ([newVolume]: number[]) => {\n logValueChange('audio_player_volume', volume, newVolume);\n audioService.send({\n type: 'UPDATE_VOLUME',\n volume: newVolume / 100,\n });\n setIcon(getVolumeIconType(newVolume));\n };\n\n // Auto close volume control popover after a value is selected\n useEffect(() => {\n const timeoutId = setTimeout(() => {\n setIsOpen(false);\n }, VOLUME_CONTROL_CLOSE_DELAY);\n\n return () => clearTimeout(timeoutId);\n }, [volume]);\n\n return (\n <div dir={direction}>\n <PopoverMenu\n isPortalled\n isModal\n isOpen={isOpen}\n contentClassName={styles.content}\n onOpenChange={setIsOpen}\n trigger={\n <Button\n tooltip={t('audio.player.volume-control')}\n shape={ButtonShape.Circle}\n variant={ButtonVariant.Ghost}\n >\n {VOLUME_ICONS[icon]}\n </Button>\n }\n >\n <Slider\n min={0}\n max={100}\n step={1}\n label=\"Volume\"\n withBackground\n value={[volume * 100]}\n onValueChange={handleVolumeChange}\n variant={SliderVariant.Primary}\n />\n </PopoverMenu>\n </div>\n );\n};\n\nexport default VolumeControl;\n","import { useSelector } from '@xstate/react';\nimport useTranslation from 'next-translate/useTranslation';\n\nimport { toLocalizedNumber } from '@/utils/locale';\n\nconst RemainingRangeCount = ({ rangeActor }) => {\n const { lang } = useTranslation('common');\n const remainingCount = useSelector(rangeActor, (state) => {\n const { totalRangeCycle, currentRangeCycle } = (state as any).context;\n return totalRangeCycle - currentRangeCycle + 1; // +1 to include the current cycle\n });\n const localizedRemainingCount = toLocalizedNumber(remainingCount, lang);\n\n return <span>{localizedRemainingCount}</span>;\n};\n\nexport default RemainingRangeCount;\n","import React, { useContext } from 'react';\n\nimport { useSelector } from '@xstate/react';\nimport useTranslation from 'next-translate/useTranslation';\n\nimport RemainingRangeCount from './RemainingRangeCount';\n\nimport Wrapper from '@/components/Wrapper/Wrapper';\nimport Badge from '@/dls/Badge/Badge';\nimport Button, { ButtonShape, ButtonVariant } from '@/dls/Button/Button';\nimport OverflowMenuIcon from '@/icons/menu_more_horiz.svg';\nimport { AudioPlayerMachineContext } from 'src/xstate/AudioPlayerMachineContext';\n\nconst AudioPlayerOverflowMenuTrigger: React.FC = () => {\n const { t } = useTranslation('common');\n const audioService = useContext(AudioPlayerMachineContext);\n const repeatActor = useSelector(audioService, (state) => state.context.repeatActor);\n const isInRepeatMode = !!repeatActor;\n return (\n <Wrapper\n shouldWrap={isInRepeatMode}\n wrapper={(children) => (\n <Badge\n content={\n isInRepeatMode && (\n <RemainingRangeCount rangeActor={repeatActor.getSnapshot().context.rangeCycleActor} />\n )\n }\n >\n {children}\n </Badge>\n )}\n >\n <Button\n tooltip={t('more')}\n variant={ButtonVariant.Ghost}\n shape={ButtonShape.Circle}\n id=\"audio-player-overflow-menu-trigger\"\n >\n <OverflowMenuIcon />\n </Button>\n </Wrapper>\n );\n};\n\nexport default AudioPlayerOverflowMenuTrigger;\n","import React from 'react';\n\nimport useTranslation from 'next-translate/useTranslation';\n\nimport styles from './AudioExperienceMenu.module.scss';\n\nimport { WordByWordType } from '@/types/QuranReader';\n\ntype Props = {\n showTooltipFor?: WordByWordType[];\n};\n\nconst ContentTypeMessage: React.FC<Props> = ({ showTooltipFor }) => {\n const { t } = useTranslation('common');\n if (!!showTooltipFor && !!showTooltipFor.length) {\n return (\n <p className={styles.tooltipText}>\n {`${t('audio.displaying')}: `}\n {showTooltipFor?.map((tooltipTextType, index) => (\n <span key={tooltipTextType}>\n {t(tooltipTextType)}\n {`${index === 0 && showTooltipFor.length > 1 ? ' • ' : ''}`}\n </span>\n ))}\n </p>\n );\n }\n return <></>;\n};\n\nexport default ContentTypeMessage;\n","import React from 'react';\n\nimport Trans from 'next-translate/Trans';\nimport { useSelector } from 'react-redux';\n\nimport styles from './AudioExperienceMenu.module.scss';\nimport ContentTypeMessage from './ContentTypeMessage';\n\nimport { selectIsTooltipContentEnabled } from '@/redux/slices/QuranReader/readingPreferences';\nimport { WordByWordType } from '@/types/QuranReader';\n\ntype Props = {\n showTooltipFor?: WordByWordType[];\n};\n\nconst HelpText: React.FC<Props> = ({ showTooltipFor }) => {\n const isTooltipContentEnabled = useSelector(selectIsTooltipContentEnabled);\n return (\n <>\n {isTooltipContentEnabled && <ContentTypeMessage showTooltipFor={showTooltipFor} />}\n <div className={styles.helpText}>\n <Trans\n i18nKey={`${\n isTooltipContentEnabled ? 'common:audio.exp-tip' : 'common:audio.exp-tip-no-select'\n }`}\n components={{\n span: <span key={0} />,\n br: <br key={1} />,\n boldSpan: <span key={2} className={styles.bold} />,\n }}\n />\n </div>\n </>\n );\n};\n\nexport default HelpText;\n","import { ActionCreatorWithOptionalPayload } from '@reduxjs/toolkit';\nimport classNames from 'classnames';\nimport useTranslation from 'next-translate/useTranslation';\nimport { useSelector } from 'react-redux';\n\nimport styles from './AudioExperienceMenu.module.scss';\nimport HelpText from './HelpText';\n\nimport Checkbox from '@/dls/Forms/Checkbox/Checkbox';\nimport PopoverMenu from '@/dls/PopoverMenu/PopoverMenu';\nimport Spinner from '@/dls/Spinner/Spinner';\nimport usePersistPreferenceGroup from '@/hooks/auth/usePersistPreferenceGroup';\nimport ChevronLeftIcon from '@/icons/chevron-left.svg';\nimport {\n setEnableAutoScrolling,\n setShowTooltipWhenPlayingAudio,\n selectAudioPlayerState,\n} from '@/redux/slices/AudioPlayer/state';\nimport { selectTooltipContentType } from '@/redux/slices/QuranReader/readingPreferences';\nimport { logValueChange } from '@/utils/eventLogger';\nimport PreferenceGroup from 'types/auth/PreferenceGroup';\n\nconst AudioExperienceMenu = ({ onBack }) => {\n const { t } = useTranslation('common');\n const {\n isLoading,\n actions: { onSettingsChange },\n } = usePersistPreferenceGroup();\n\n const audioPlayerState = useSelector(selectAudioPlayerState);\n const { enableAutoScrolling, showTooltipWhenPlayingAudio } = audioPlayerState;\n const showTooltipFor = useSelector(selectTooltipContentType);\n\n const onAudioSettingsChange = (\n key: string,\n value: number | boolean,\n actionCreator: ActionCreatorWithOptionalPayload<number | boolean>,\n ) => {\n onSettingsChange(\n key,\n value,\n actionCreator(value),\n actionCreator(audioPlayerState[key]),\n PreferenceGroup.AUDIO,\n );\n };\n\n const onEnableAutoScrollingChange = (newValue: boolean) => {\n logValueChange('audio_settings_auto_scrolling_enabled', !newValue, newValue);\n onAudioSettingsChange('enableAutoScrolling', newValue, setEnableAutoScrolling);\n };\n\n const onShowTooltipWhenPlayingAudioChange = (newValue: boolean) => {\n logValueChange('audio_settings_show_tooltip_when_playing_audio', !newValue, newValue);\n onAudioSettingsChange('showTooltipWhenPlayingAudio', newValue, setShowTooltipWhenPlayingAudio);\n };\n\n return (\n <>\n <PopoverMenu.Item shouldFlipOnRTL icon={<ChevronLeftIcon />} onClick={onBack}>\n {t('audio.experience')}\n </PopoverMenu.Item>\n <PopoverMenu.Divider />\n {isLoading && <Spinner />}\n <div className={styles.checkboxContainer}>\n <div>\n <Checkbox\n checked={enableAutoScrolling}\n id=\"auto-scrolling\"\n name=\"auto-scrolling\"\n label={t('audio.auto-scroll.title')}\n onChange={onEnableAutoScrollingChange}\n disabled={isLoading}\n />\n </div>\n <div>\n <Checkbox\n checked={showTooltipWhenPlayingAudio}\n id=\"show-tooltip\"\n name=\"show-tooltip\"\n label={t('settings.show-tooltip-when-playing-audio')}\n onChange={onShowTooltipWhenPlayingAudioChange}\n disabled={isLoading || (showTooltipFor && showTooltipFor.length === 0)}\n />\n <div className={classNames(styles.experienceTipContainer, styles.helpText)}>\n <HelpText showTooltipFor={showTooltipFor} />\n </div>\n </div>\n </div>\n </>\n );\n};\n\nexport default AudioExperienceMenu;\n","import { useCallback, useContext } from 'react';\n\nimport { useSelector } from '@xstate/react';\nimport useTranslation from 'next-translate/useTranslation';\n\nimport PopoverMenu from '@/dls/PopoverMenu/PopoverMenu';\nimport Spinner from '@/dls/Spinner/Spinner';\nimport usePersistPreferenceGroup from '@/hooks/auth/usePersistPreferenceGroup';\nimport CheckIcon from '@/icons/check.svg';\nimport ChevronLeftIcon from '@/icons/chevron-left.svg';\nimport { logButtonClick, logValueChange } from '@/utils/eventLogger';\nimport { toLocalizedNumber } from '@/utils/locale';\nimport { AudioPlayerMachineContext } from 'src/xstate/AudioPlayerMachineContext';\nimport PreferenceGroup from 'types/auth/PreferenceGroup';\n\nconst playbackRates = [0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2];\n\nconst AudioPlaybackRateMenu = ({ onBack }) => {\n const { t, lang } = useTranslation('common');\n const {\n actions: { onXstateSettingsChange },\n isLoading,\n } = usePersistPreferenceGroup();\n\n const audioService = useContext(AudioPlayerMachineContext);\n const currentPlaybackRate = useSelector(audioService, (state) => state.context.playbackRate);\n\n const getPlaybackRateLabel = useCallback(\n (playbackRate) => {\n return playbackRate === 1\n ? t('audio.playback-normal')\n : toLocalizedNumber(playbackRate, lang);\n },\n [lang, t],\n );\n\n const onPlaybackRateSelected = (playbackRate: number) => {\n const previousPlaybackRate = currentPlaybackRate;\n\n onXstateSettingsChange(\n 'playbackRate',\n playbackRate,\n () =>\n audioService.send({\n type: 'SET_PLAYBACK_SPEED',\n playbackRate,\n }),\n () =>\n audioService.send({\n type: 'SET_PLAYBACK_SPEED',\n playbackRate: previousPlaybackRate,\n }),\n PreferenceGroup.AUDIO,\n onBack,\n );\n };\n\n const getItemIcon = (playbackRate: number) => {\n if (currentPlaybackRate === playbackRate) {\n if (isLoading) {\n return <Spinner />;\n }\n return <CheckIcon />;\n }\n return <span />;\n };\n\n const rates = playbackRates.map((playbackRate) => (\n <PopoverMenu.Item\n key={playbackRate}\n icon={getItemIcon(playbackRate)}\n onClick={() => {\n logButtonClick('audio_player_menu_playback_item');\n logValueChange('audio_playback_rate', currentPlaybackRate, playbackRate);\n onPlaybackRateSelected(playbackRate);\n }}\n >\n {getPlaybackRateLabel(playbackRate)}\n </PopoverMenu.Item>\n ));\n return (\n <>\n <PopoverMenu.Item shouldFlipOnRTL icon={<ChevronLeftIcon />} onClick={onBack}>\n {t('audio.playback-speed')}\n </PopoverMenu.Item>\n <PopoverMenu.Divider />\n {rates}\n </>\n );\n};\n\nexport default AudioPlaybackRateMenu;\n","import { useContext, useState } from 'react';\n\nimport { useSelector } from '@xstate/react';\nimport useTranslation from 'next-translate/useTranslation';\n\nimport RemainingRangeCount from '../RemainingRangeCount';\n\nimport RepeatAudioModal from '@/components/AudioPlayer/RepeatAudioModal/RepeatAudioModal';\nimport { RepetitionMode } from '@/components/AudioPlayer/RepeatAudioModal/SelectRepetitionMode';\nimport Wrapper from '@/components/Wrapper/Wrapper';\nimport Badge from '@/dls/Badge/Badge';\nimport PopoverMenu from '@/dls/PopoverMenu/PopoverMenu';\nimport Spinner, { SpinnerSize } from '@/dls/Spinner/Spinner';\nimport RepeatIcon from '@/icons/repeat.svg';\nimport { logButtonClick } from '@/utils/eventLogger';\nimport { selectIsLoading } from '@/xstate/actors/audioPlayer/selectors';\nimport { AudioPlayerMachineContext } from 'src/xstate/AudioPlayerMachineContext';\n\nconst RepeatAudioButton = () => {\n const { t } = useTranslation('common');\n const audioService = useContext(AudioPlayerMachineContext);\n const [isModalOpen, setIsModalOpen] = useState(false);\n const currentSurah = useSelector(audioService, (state) => state.context.surah);\n const isLoading = useSelector(audioService, selectIsLoading);\n const repeatActor = useSelector(audioService, (state) => state.context.repeatActor);\n const isInRepeatMode = !!repeatActor;\n\n const onButtonClicked = () => {\n logButtonClick('audio_player_repeat');\n setIsModalOpen(true);\n };\n\n return (\n <>\n <PopoverMenu.Item\n onClick={onButtonClicked}\n isDisabled={isLoading}\n icon={\n isLoading ? (\n <Spinner size={SpinnerSize.Large} />\n ) : (\n <Wrapper\n shouldWrap={isInRepeatMode}\n wrapper={(children) => (\n <Badge\n content={\n isInRepeatMode && (\n <RemainingRangeCount\n rangeActor={repeatActor.getSnapshot().context.rangeCycleActor}\n />\n )\n }\n >\n {children}\n </Badge>\n )}\n >\n <RepeatIcon />\n </Wrapper>\n )\n }\n >\n {t('audio.player.manage-repeat-settings')}\n </PopoverMenu.Item>\n {!isLoading && (\n <RepeatAudioModal\n defaultRepetitionMode={RepetitionMode.Range}\n chapterId={currentSurah.toString()}\n isOpen={isModalOpen}\n onClose={() => setIsModalOpen(false)}\n />\n )}\n </>\n );\n};\n\nexport default RepeatAudioButton;\n","import React, { useCallback, useContext, useEffect } from 'react';\n\nimport { useSelector } from '@xstate/react';\nimport useTranslation from 'next-translate/useTranslation';\n\nimport styles from './SelectReciterMenu.module.scss';\n\nimport DataFetcher from '@/components/DataFetcher';\nimport { useOnboarding } from '@/components/Onboarding/OnboardingProvider';\nimport PopoverMenu from '@/dls/PopoverMenu/PopoverMenu';\nimport Spinner from '@/dls/Spinner/Spinner';\nimport usePersistPreferenceGroup from '@/hooks/auth/usePersistPreferenceGroup';\nimport CheckIcon from '@/icons/check.svg';\nimport ChevronLeftIcon from '@/icons/chevron-left.svg';\nimport OnboardingGroup from '@/types/OnboardingGroup';\nimport { makeAvailableRecitersUrl } from '@/utils/apiPaths';\nimport { logButtonClick, logItemSelectionChange, logValueChange } from '@/utils/eventLogger';\nimport { AudioPlayerMachineContext } from 'src/xstate/AudioPlayerMachineContext';\nimport { RecitersResponse } from 'types/ApiResponses';\nimport PreferenceGroup from 'types/auth/PreferenceGroup';\nimport Reciter from 'types/Reciter';\n\nconst DEFAULT_RECITATION_STYLE = 'Murattal';\n\nconst SelectReciterMenu = ({ onBack }) => {\n const { lang, t } = useTranslation('common');\n\n const audioService = useContext(AudioPlayerMachineContext);\n const selectedReciterId = useSelector(audioService, (state) => state.context.reciterId);\n\n const {\n actions: { onXstateSettingsChange },\n isLoading,\n } = usePersistPreferenceGroup();\n\n const { isActive, activeStepGroup, activeStepIndex, nextStep } = useOnboarding();\n\n useEffect(() => {\n if (\n isActive &&\n activeStepGroup === OnboardingGroup.READING_EXPERIENCE &&\n activeStepIndex === 3\n ) {\n nextStep();\n }\n }, [isActive, activeStepGroup, activeStepIndex, nextStep]);\n\n const onReciterSelected = useCallback(\n (reciter: Reciter) => {\n const previousReciterId = selectedReciterId;\n onXstateSettingsChange(\n 'reciter',\n reciter.id,\n () => audioService.send({ type: 'CHANGE_RECITER', reciterId: reciter.id }),\n () => audioService.send({ type: 'CHANGE_RECITER', reciterId: previousReciterId }),\n PreferenceGroup.AUDIO,\n onBack,\n );\n },\n [audioService, onBack, onXstateSettingsChange, selectedReciterId],\n );\n\n const getItemIcon = useCallback(\n (reciterId: number, newlySelectedReciterId: number) => {\n if (newlySelectedReciterId === reciterId) {\n if (isLoading) {\n return <Spinner />;\n }\n return <CheckIcon />;\n }\n return <span />;\n },\n [isLoading],\n );\n\n const renderReciter = useCallback(\n (data: RecitersResponse) => {\n return (\n <div>\n {data.reciters.map((reciter) => (\n <PopoverMenu.Item\n key={reciter.id}\n icon={getItemIcon(reciter.id, selectedReciterId)}\n onClick={() => {\n logButtonClick('audio_player_overflow_menu_reciter_item');\n logValueChange('reciter', selectedReciterId, reciter.id);\n logItemSelectionChange('reciter', reciter.id);\n onReciterSelected(reciter);\n }}\n >\n {reciter.translatedName.name}\n {reciter.style.name !== DEFAULT_RECITATION_STYLE && (\n <p className={styles.reciterStyle}>{` - ${reciter.style.name}`}</p>\n )}\n </PopoverMenu.Item>\n ))}\n </div>\n );\n },\n [getItemIcon, selectedReciterId, onReciterSelected],\n );\n\n const reciters = (\n <div id=\"audio-player-reciter-list\">\n <DataFetcher queryKey={makeAvailableRecitersUrl(lang)} render={renderReciter} />\n </div>\n );\n\n return (\n <>\n <PopoverMenu.Item\n icon={<ChevronLeftIcon />}\n onClick={onBack}\n shouldFlipOnRTL\n id=\"audio-player-reciter-select-item\"\n >\n {t('audio.select-reciter')}\n </PopoverMenu.Item>\n <PopoverMenu.Divider />\n {reciters}\n </>\n );\n};\n\nexport default SelectReciterMenu;\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPerson = function SvgPerson(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 15,\n height: 15,\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5.875a3.625 3.625 0 0 0-1.006 7.109c-1.194.145-2.218.567-2.99 1.328-.982.967-1.479 2.408-1.479 4.288a.475.475 0 1 0 .95 0c0-1.72.453-2.88 1.196-3.612.744-.733 1.856-1.113 3.329-1.113s2.585.38 3.33 1.113c.742.733 1.195 1.892 1.195 3.612a.475.475 0 1 0 .95 0c0-1.88-.497-3.32-1.48-4.288-.77-.76-1.795-1.183-2.989-1.328A3.627 3.627 0 0 0 7.5.875ZM4.825 4.5a2.675 2.675 0 1 1 5.35 0 2.675 2.675 0 0 1-5.35 0Z\",\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n })));\n};\nexport default SvgPerson;","import { useState, useMemo, useContext, useEffect } from 'react';\n\nimport { useSelector } from '@xstate/react';\nimport useTranslation from 'next-translate/useTranslation';\n\nimport AudioExperienceMenu from './Buttons/AudioExperienceMenu';\nimport AudioPlaybackRateMenu from './Buttons/AudioPlaybackRateMenu';\nimport DownloadAudioButton from './Buttons/DownloadAudioButton';\nimport RepeatButton from './Buttons/RepeatButton';\nimport SelectReciterMenu from './Buttons/SelectReciterMenu';\nimport styles from './OverflowAudioPlayActionsMenuBody.module.scss';\n\nimport OnboardingEvent from '@/components/Onboarding/OnboardingChecklist/hooks/OnboardingEvent';\nimport { useOnboarding } from '@/components/Onboarding/OnboardingProvider';\nimport PopoverMenu from '@/dls/PopoverMenu/PopoverMenu';\nimport ChevronRightIcon from '@/icons/chevron-right.svg';\nimport ExperienceIcon from '@/icons/experience.svg';\nimport PersonIcon from '@/icons/person.svg';\nimport { logButtonClick } from '@/utils/eventLogger';\nimport { AudioPlayerMachineContext } from 'src/xstate/AudioPlayerMachineContext';\n\n/**\n * We're using (`1x` `1.25x`) as a replacement for `icon` in popover menu\n * So we need to adjust the font to make it fit the containeer\n *\n * @returns {number} fontSize\n */\nconst getPlaybackRateLabelFontSize = (playbackRates: number) => {\n const numberOfCharacter = playbackRates.toString().length;\n if (numberOfCharacter >= 4) return 11;\n return 14;\n};\n\nenum AudioPlayerOverflowMenu {\n Main = 'main',\n AudioSpeed = 'audio-speed',\n Reciter = 'reciter',\n Experience = 'experience',\n}\n\nconst OverflowAudioPlayActionsMenuBody = () => {\n const [selectedMenu, setSelectedMenu] = useState<AudioPlayerOverflowMenu>(\n AudioPlayerOverflowMenu.Main,\n );\n const audioService = useContext(AudioPlayerMachineContext);\n const { t } = useTranslation('common');\n const playbackRate = useSelector(audioService, (state) => state.context.playbackRate);\n const { prevStep, nextStep } = useOnboarding();\n\n useEffect(() => {\n const handler = () => {\n setSelectedMenu(AudioPlayerOverflowMenu.Main);\n prevStep();\n };\n\n const handleNextOpenRecitersListStep = () => {\n setSelectedMenu(AudioPlayerOverflowMenu.Reciter);\n nextStep();\n };\n\n window.addEventListener(OnboardingEvent.STEP_BEFORE_CHOOSING_RECITER_FROM_LIST, handler);\n window.addEventListener(\n OnboardingEvent.STEP_AFTER_RECITER_LIST_ITEM_CLICK,\n handleNextOpenRecitersListStep,\n );\n return () => {\n window.removeEventListener(OnboardingEvent.STEP_BEFORE_CHOOSING_RECITER_FROM_LIST, handler);\n window.removeEventListener(\n OnboardingEvent.STEP_AFTER_RECITER_LIST_ITEM_CLICK,\n handleNextOpenRecitersListStep,\n );\n };\n }, [nextStep, prevStep]);\n\n const menus = useMemo(\n () => ({\n [AudioPlayerOverflowMenu.Main]: [\n <DownloadAudioButton key={0} />,\n <RepeatButton key={1} />,\n <PopoverMenu.Divider key={2} />,\n <PopoverMenu.Item\n key={3}\n icon={<ExperienceIcon />}\n onClick={() => {\n logButtonClick(`audio_player_overflow_menu_experience`); // TODO: log this\n setSelectedMenu(AudioPlayerOverflowMenu.Experience);\n }}\n >\n <div className={styles.menuWithNestedItems}>\n {t('audio.experience')}\n <ChevronRightIcon />\n </div>\n </PopoverMenu.Item>,\n <PopoverMenu.Item\n key={4}\n icon={\n <span style={{ fontSize: getPlaybackRateLabelFontSize(playbackRate) }}>\n {playbackRate}\n {t('audio.playback-speed-unit')}\n </span>\n }\n onClick={() => {\n logButtonClick(`audio_player_overflow_menu_playback`);\n setSelectedMenu(AudioPlayerOverflowMenu.AudioSpeed);\n }}\n >\n <div className={styles.menuWithNestedItems}>\n {t('audio.speed')}\n <ChevronRightIcon />\n </div>\n </PopoverMenu.Item>,\n <PopoverMenu.Item\n key={5}\n icon={<PersonIcon />}\n onClick={() => {\n logButtonClick(`audio_player_overflow_menu_reciter`);\n setSelectedMenu(AudioPlayerOverflowMenu.Reciter);\n }}\n id=\"audio-player-overflow-menu-reciter\"\n >\n <div className={styles.menuWithNestedItems}>\n {t('reciter')}\n <ChevronRightIcon />\n </div>\n </PopoverMenu.Item>,\n ],\n [AudioPlayerOverflowMenu.AudioSpeed]: (\n <AudioPlaybackRateMenu onBack={() => setSelectedMenu(AudioPlayerOverflowMenu.Main)} />\n ),\n [AudioPlayerOverflowMenu.Reciter]: (\n <SelectReciterMenu onBack={() => setSelectedMenu(AudioPlayerOverflowMenu.Main)} />\n ),\n [AudioPlayerOverflowMenu.Experience]: (\n <AudioExperienceMenu onBack={() => setSelectedMenu(AudioPlayerOverflowMenu.Main)} />\n ),\n }),\n [t, playbackRate],\n );\n\n return <>{menus[selectedMenu]}</>;\n};\n\nexport default OverflowAudioPlayActionsMenuBody;\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgBackward = function SvgBackward(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n \"aria-hidden\": \"true\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 512\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M459.5 71.41 288 214.31v83.45l171.5 142.9c20.6 17.04 52.5 2.64 52.5-25.56V96.03c0-27.37-31.9-41.75-52.5-24.62zm-256 0L11.44 231.4c-15.25 12.87-15.25 36.37 0 49.24l192 159.1c20.63 17.12 52.51 2.749 52.51-24.62V95.22c-.85-26.56-31.85-40.94-52.45-23.81z\"\n })));\n};\nexport default SvgBackward;","/* eslint-disable react-func/max-lines-per-function */\nimport { useEffect, useState } from 'react';\n\nimport AudioPlayerOverflowMenuTrigger from './AudioPlayerOverflowMenuTrigger';\nimport OverflowAudioPlayActionsMenuBody from './OverflowAudioPlayActionsMenuBody';\nimport styles from './OverflowAudioPlayerActionsMenu.module.scss';\n\nimport OnboardingEvent from '@/components/Onboarding/OnboardingChecklist/hooks/OnboardingEvent';\nimport { useOnboarding } from '@/components/Onboarding/OnboardingProvider';\nimport PopoverMenu from '@/dls/PopoverMenu/PopoverMenu';\nimport useDirection from '@/hooks/useDirection';\nimport OnboardingGroup from '@/types/OnboardingGroup';\nimport { logEvent } from '@/utils/eventLogger';\n\nconst OverflowAudioPlayerActionsMenu = () => {\n const direction = useDirection();\n const { isActive, activeStepGroup, activeStepIndex, nextStep, prevStep } = useOnboarding();\n const [open, setOpen] = useState(false);\n\n useEffect(() => {\n const handleAfterChooseReciterStepNext = () => {\n setOpen(false);\n nextStep();\n };\n\n const handlePrevStep3 = () => {\n setOpen(false);\n prevStep();\n };\n\n const handleAfterAudioPlayerTriggerStepNext = () => {\n // manually click the trigger to open the audio player settings menu\n document.getElementById('audio-player-overflow-menu-trigger')?.click();\n nextStep();\n };\n\n window.addEventListener(\n OnboardingEvent.STEP_AFTER_CHOOSING_RECITER_FROM_LIST,\n handleAfterChooseReciterStepNext,\n );\n window.addEventListener(\n OnboardingEvent.STEP_AFTER_AUDIO_PLAYER_TRIGGER,\n handleAfterAudioPlayerTriggerStepNext,\n );\n window.addEventListener(OnboardingEvent.STEP_BEFORE_RECITER_LIST_ITEM_CLICK, handlePrevStep3);\n\n return () => {\n window.removeEventListener(\n OnboardingEvent.STEP_AFTER_CHOOSING_RECITER_FROM_LIST,\n handleAfterChooseReciterStepNext,\n );\n window.removeEventListener(\n OnboardingEvent.STEP_AFTER_AUDIO_PLAYER_TRIGGER,\n handleAfterAudioPlayerTriggerStepNext,\n );\n window.removeEventListener(\n OnboardingEvent.STEP_BEFORE_RECITER_LIST_ITEM_CLICK,\n handlePrevStep3,\n );\n };\n }, [nextStep, prevStep]);\n\n const onOpenChange = (newOpen: boolean) => {\n logEvent(`audio_player_overflow_menu_${open ? 'open' : 'close'}`);\n setOpen(newOpen);\n\n // If the user is in the reading experience onboarding and clicked on the play button, then we should automatically go to the next step when the audio player is mounted.\n if (\n newOpen &&\n isActive &&\n activeStepGroup === OnboardingGroup.READING_EXPERIENCE &&\n activeStepIndex === 2\n ) {\n nextStep();\n }\n };\n\n const shouldStayOpen =\n isActive &&\n activeStepGroup === OnboardingGroup.READING_EXPERIENCE &&\n (activeStepIndex === 3 || activeStepIndex === 4);\n\n return (\n <div dir={direction}>\n <PopoverMenu\n isOpen={open}\n isPortalled\n shouldClose={!shouldStayOpen}\n isModal={!shouldStayOpen} // in the onboarding, we want the popover to not be modal\n trigger={<AudioPlayerOverflowMenuTrigger />}\n onOpenChange={onOpenChange}\n contentClassName={styles.overriddenPopoverMenuContentPositioning}\n >\n <OverflowAudioPlayActionsMenuBody />\n </PopoverMenu>\n </div>\n );\n};\n\nexport default OverflowAudioPlayerActionsMenu;\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgForward = function SvgForward(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n \"aria-hidden\": \"true\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 512\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"m52.51 440.6 171.5-142.9v-83.4L52.51 71.41C31.88 54.28 0 68.66 0 96.03v319.9c0 27.37 31.88 41.77 52.51 24.67zm255.99 0 192-159.1c15.25-12.87 15.25-36.37 0-49.24l-192-159.1c-20.63-17.12-52.51-2.749-52.51 24.62v319.9c.01 25.62 31.91 40.02 52.51 22.92z\"\n })));\n};\nexport default SvgForward;","import { useContext, useMemo } from 'react';\n\nimport { useSelector } from '@xstate/react';\nimport useTranslation from 'next-translate/useTranslation';\n\nimport Button, { ButtonShape, ButtonVariant } from '@/dls/Button/Button';\nimport BackwardIcon from '@/icons/backward.svg';\nimport ForwardIcon from '@/icons/forward.svg';\nimport { getChapterData } from '@/utils/chapter';\nimport { logButtonClick } from '@/utils/eventLogger';\nimport DataContext from 'src/contexts/DataContext';\nimport { AudioPlayerMachineContext } from 'src/xstate/AudioPlayerMachineContext';\n\nexport enum SeekButtonType {\n NextAyah = 'nextAyah',\n PrevAyah = 'prevAyah',\n}\n\ntype SeekButtonProps = {\n type: SeekButtonType;\n isLoading: boolean;\n};\nconst SeekButton = ({ type, isLoading }: SeekButtonProps) => {\n const audioService = useContext(AudioPlayerMachineContext);\n const chaptersData = useContext(DataContext);\n\n const surah = useSelector(audioService, (state) => state.context.surah);\n const ayahNumber = useSelector(audioService, (state) => state.context.ayahNumber);\n\n const chapterData = useMemo(\n () => getChapterData(chaptersData, surah?.toString()),\n [chaptersData, surah],\n );\n\n const { t } = useTranslation('common');\n\n const onSeek = () => {\n // eslint-disable-next-line i18next/no-literal-string\n logButtonClick(`audio_player_${type}`);\n audioService.send({ type: type === SeekButtonType.NextAyah ? 'NEXT_AYAH' : 'PREV_AYAH' });\n };\n\n const isDisabled =\n isLoading ||\n (type === SeekButtonType.PrevAyah && ayahNumber <= 1) ||\n (type === SeekButtonType.NextAyah && ayahNumber >= chapterData?.versesCount);\n\n return (\n <Button\n tooltip={type === SeekButtonType.PrevAyah ? t('previous-ayah') : t('next-ayah')}\n variant={ButtonVariant.Ghost}\n shape={ButtonShape.Circle}\n onClick={onSeek}\n isDisabled={isDisabled}\n >\n {type === SeekButtonType.PrevAyah ? <BackwardIcon /> : <ForwardIcon />}\n </Button>\n );\n};\n\nexport default SeekButton;\n","import { useContext } from 'react';\n\nimport { useSelector } from '@xstate/react';\n\nimport CloseButton from './Buttons/CloseButton';\nimport PlayPauseButton from './Buttons/PlayPauseButton';\nimport VolumeControl from './Buttons/VolumeControl';\nimport OverflowAudioPlayerActionsMenu from './OverflowAudioPlayerActionsMenu';\nimport styles from './PlaybackControls.module.scss';\nimport SeekButton, { SeekButtonType } from './SeekButton';\n\nimport { selectIsLoading } from 'src/xstate/actors/audioPlayer/selectors';\nimport { AudioPlayerMachineContext } from 'src/xstate/AudioPlayerMachineContext';\n\nconst PlaybackControls = () => {\n const audioService = useContext(AudioPlayerMachineContext);\n const isLoading = useSelector(audioService, selectIsLoading);\n\n return (\n <div className={styles.container}>\n <div className={styles.actionItem}>\n <OverflowAudioPlayerActionsMenu />\n </div>\n <div className={styles.actionItem}>\n <VolumeControl />\n </div>\n <div className={styles.actionItem}>\n <SeekButton type={SeekButtonType.PrevAyah} isLoading={isLoading} />\n </div>\n <div className={styles.actionItem}>\n <PlayPauseButton />\n </div>\n <div className={styles.actionItem}>\n <SeekButton type={SeekButtonType.NextAyah} isLoading={isLoading} />\n </div>\n <div className={styles.actionItem}>\n <CloseButton />\n </div>\n </div>\n );\n};\n\nexport default PlaybackControls;\n","import { useContext } from 'react';\n\nimport useTranslation from 'next-translate/useTranslation';\n\nimport Button, { ButtonShape, ButtonVariant } from '@/dls/Button/Button';\nimport CloseIcon from '@/icons/close.svg';\nimport { withStopPropagation } from '@/utils/event';\nimport { logButtonClick } from '@/utils/eventLogger';\nimport { AudioPlayerMachineContext } from 'src/xstate/AudioPlayerMachineContext';\n\nconst CloseRadioButton = () => {\n const { t } = useTranslation('common');\n const audioService = useContext(AudioPlayerMachineContext);\n return (\n <Button\n tooltip={t('close')}\n shape={ButtonShape.Circle}\n variant={ButtonVariant.Ghost}\n onClick={withStopPropagation(() => {\n logButtonClick('radio_player_close');\n audioService.send('CLOSE_RADIO');\n })}\n shouldFlipOnRTL={false}\n >\n <CloseIcon />\n </Button>\n );\n};\n\nexport default CloseRadioButton;\n","import { useActor } from '@xstate/react';\n\nimport CloseRadioButton from './Buttons/CloseRadioButton';\nimport PlayPauseButton from './Buttons/PlayPauseButton';\nimport styles from './RadioPlaybackControl.module.scss';\n\nimport useCurrentStationInfo from 'src/xstate/Radio/useCurrentStationInfo';\n\nconst RadioPlaybackControl = ({ radioActor }) => {\n const [radioService] = useActor(radioActor);\n const stationInfo = useCurrentStationInfo((radioService as any).context);\n return (\n <div className={styles.container}>\n <div className={styles.infoContainer}>\n <div className={styles.title}>{stationInfo.title}</div>\n <div className={styles.description}>{stationInfo.description}</div>\n </div>\n <div className={styles.actions}>\n <PlayPauseButton />\n <CloseRadioButton />\n </div>\n </div>\n );\n};\n\nexport default RadioPlaybackControl;\n","import React, { useContext, useEffect } from 'react';\n\nimport { useSelector } from '@xstate/react';\n\nimport AudioKeyBoardListeners from '../AudioKeyboardListeners';\nimport AudioPlayerSlider from '../AudioPlayerSlider';\nimport PlaybackControls from '../PlaybackControls';\nimport RadioPlaybackControl from '../RadioPlaybackControl';\n\nimport styles from './AudioPlayerBody.module.scss';\n\nimport { useOnboarding } from '@/components/Onboarding/OnboardingProvider';\nimport OnboardingGroup from '@/types/OnboardingGroup';\nimport { AudioPlayerMachineContext } from 'src/xstate/AudioPlayerMachineContext';\n\nconst AudioPlayerBody = () => {\n const audioService = useContext(AudioPlayerMachineContext);\n const isRadioMode = useSelector(audioService, (state) => !!state.context.radioActor);\n const { isActive, activeStepGroup, activeStepIndex, nextStep } = useOnboarding();\n\n // If the user is in the reading experience onboarding and clicked on the play button, then we should automatically go to the next step when the audio player is mounted.\n useEffect(() => {\n if (\n isActive &&\n activeStepGroup === OnboardingGroup.READING_EXPERIENCE &&\n activeStepIndex === 1\n ) {\n nextStep();\n }\n }, [isActive, activeStepGroup, activeStepIndex, nextStep]);\n\n return (\n <>\n <div className={styles.innerContainer}>\n <AudioKeyBoardListeners\n togglePlaying={() => audioService.send('TOGGLE')}\n isAudioPlayerHidden={false}\n />\n {!isRadioMode && (\n <div className={styles.sliderContainer}>\n <AudioPlayerSlider />\n </div>\n )}\n </div>\n {isRadioMode ? (\n <RadioPlaybackControl radioActor={audioService.getSnapshot().context.radioActor} />\n ) : (\n <PlaybackControls />\n )}\n </>\n );\n};\n\nexport default AudioPlayerBody;\n","import React, { useContext } from 'react';\n\nimport { useSelector as useXstateSelector } from '@xstate/react';\nimport useTranslation from 'next-translate/useTranslation';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport PopoverMenu from '@/dls/PopoverMenu/PopoverMenu';\nimport Spinner, { SpinnerSize } from '@/dls/Spinner/Spinner';\nimport DownloadIcon from '@/icons/download.svg';\nimport { selectIsDownloadingAudio, setIsDownloadingAudio } from '@/redux/slices/AudioPlayer/state';\nimport { logButtonClick } from '@/utils/eventLogger';\nimport { AudioPlayerMachineContext } from 'src/xstate/AudioPlayerMachineContext';\n\nexport const download = (url: string, onDone: () => void) => {\n const splits = url.substring(url.lastIndexOf('/') + 1).split('?');\n const [filename] = splits;\n const xhr = new XMLHttpRequest();\n xhr.responseType = 'blob';\n xhr.onload = () => {\n const a = document.createElement('a');\n a.href = window.URL.createObjectURL(xhr.response);\n a.download = filename;\n a.style.display = 'none';\n document.body.appendChild(a);\n a.click();\n onDone();\n };\n xhr.open('GET', url);\n xhr.send();\n};\n\nconst DownloadAudioButton = () => {\n const { t } = useTranslation('common');\n const audioService = useContext(AudioPlayerMachineContext);\n const audioDataUrl = useXstateSelector(audioService, (state) => state.context.audioData.audioUrl);\n const loading = useSelector(selectIsDownloadingAudio);\n const dispatch = useDispatch();\n\n const onClick = () => {\n logButtonClick('audio_player_download');\n dispatch(setIsDownloadingAudio(true));\n download(audioDataUrl, () => {\n dispatch(setIsDownloadingAudio(false));\n });\n };\n\n return (\n <PopoverMenu.Item\n onClick={onClick}\n icon={loading ? <Spinner size={SpinnerSize.Large} /> : <DownloadIcon />}\n >\n {t('audio.player.download')}\n </PopoverMenu.Item>\n );\n};\n\nexport default DownloadAudioButton;\n","import React, { memo } from 'react';\n\nimport useSWRImmutable from 'swr/immutable';\n\nimport Error from '@/components/Error';\nimport Spinner from '@/dls/Spinner/Spinner';\nimport { fetcher } from 'src/api';\nimport { BaseResponse } from 'types/ApiResponses';\n\ninterface Props {\n queryKey: string;\n render: (data: BaseResponse) => JSX.Element;\n renderError?: (error: any) => JSX.Element | undefined;\n initialData?: BaseResponse;\n loading?: () => JSX.Element;\n fetcher?: (queryKey: string) => Promise<BaseResponse>;\n showSpinnerOnRevalidate?: boolean;\n onFetchSuccess?: (data: BaseResponse) => void;\n}\n\n/**\n * Data fetcher is a dynamic component that serves as a container for a component\n * that depends on data from a remote API to render. This component handles:\n * 1. Calling the API.\n * 2. Caching the response (due to using useSwr).\n * 3. Handling errors if any by showing an error message.\n * 4. Handling when the user is offline while trying to fetch the API response.\n * 5. Dynamically passing the response data through render-props to the parent.\n *\n * @param {Props} props\n * @returns {JSX.Element}\n */\nconst DataFetcher: React.FC<Props> = ({\n queryKey,\n render,\n renderError,\n initialData,\n loading = () => <Spinner />,\n fetcher: dataFetcher = fetcher,\n showSpinnerOnRevalidate = true,\n onFetchSuccess,\n}: Props): JSX.Element => {\n const { data, error, isValidating, mutate } = useSWRImmutable(\n queryKey,\n () =>\n dataFetcher(queryKey)\n .then((res) => {\n onFetchSuccess?.(res);\n return Promise.resolve(res);\n })\n .catch((err) => Promise.reject(err)),\n {\n fallbackData: initialData,\n },\n );\n\n // if showSpinnerOnRevalidate is true, we should show the spinner if we are revalidating the data.\n // otherwise, we should only show the spinner on initial loads.\n if (showSpinnerOnRevalidate ? isValidating : isValidating && !data) {\n return loading();\n }\n\n const onRetryClicked = () => {\n mutate();\n };\n\n /**\n * if we haven't fetched the data yet and the device is not online (because we don't want to show an offline message if the data already exists).\n * or if we had an error when calling the API.\n */\n if (error) {\n // if there is a custom error renderer, use it.\n if (renderError) {\n const errorComponent = renderError(error);\n // if the custom error renderer returns false, it means that it doesn't want to render anything special.\n if (typeof errorComponent !== 'undefined') {\n return errorComponent;\n }\n }\n return <Error onRetryClicked={onRetryClicked} error={error} />;\n }\n\n return render(data);\n};\n\nexport default memo(DataFetcher);\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRetry = function SvgRetry(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 15,\n height: 15,\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.85 7.5c0-2.835 2.21-5.65 5.65-5.65 2.778 0 4.152 2.056 4.737 3.15H10.5a.5.5 0 0 0 0 1h3a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-1 0v1.813C12.296 3.071 10.666.85 7.5.85 3.437.85.85 4.185.85 7.5c0 3.315 2.587 6.65 6.65 6.65 1.944 0 3.562-.77 4.714-1.942a6.77 6.77 0 0 0 1.428-2.167.5.5 0 1 0-.925-.38 5.77 5.77 0 0 1-1.216 1.846c-.971.99-2.336 1.643-4.001 1.643-3.44 0-5.65-2.815-5.65-5.65Z\",\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n })));\n};\nexport default SvgRetry;","import React from 'react';\n\nimport useTranslation from 'next-translate/useTranslation';\n\nimport styles from './Error.module.scss';\n\nimport Button, { ButtonSize, ButtonType } from '@/dls/Button/Button';\nimport RetryIcon from '@/icons/retry.svg';\nimport { OFFLINE_ERROR } from 'src/api';\n\ninterface Props {\n onRetryClicked: () => void;\n error: Error;\n}\n\nconst Error: React.FC<Props> = ({ onRetryClicked, error }) => {\n const { t } = useTranslation('common');\n return (\n <div className={styles.container}>\n <p className={styles.text}>\n {error.message !== OFFLINE_ERROR ? t('error.general') : t('error.offline')}\n </p>\n <Button\n prefix={<RetryIcon />}\n size={ButtonSize.Small}\n type={ButtonType.Secondary}\n onClick={onRetryClicked}\n >\n {t('retry')}\n </Button>\n </div>\n );\n};\n\nexport default Error;\n","import classNames from 'classnames';\n\nimport styles from './Badge.module.scss';\n\ntype BadeProps = {\n content: React.ReactNode;\n children: React.ReactNode;\n contentClassName?: string;\n className?: string;\n};\n\nconst Badge = ({ content, children, contentClassName, className }: BadeProps) => {\n return (\n <div className={classNames(styles.container, className)}>\n {children}\n <div className={classNames(contentClassName, styles.content, styles.positionBottomRight)}>\n {content}\n </div>\n </div>\n );\n};\n\nexport default Badge;\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgMinus = function SvgMinus(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 15,\n height: 15,\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.25 7.5a.5.5 0 0 1 .5-.5h9.5a.5.5 0 0 1 0 1h-9.5a.5.5 0 0 1-.5-.5Z\",\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n })));\n};\nexport default SvgMinus;","import { useMemo } from 'react';\n\nimport useTranslation from 'next-translate/useTranslation';\n\nimport styles from './Counter.module.scss';\n\nimport Button, { ButtonShape, ButtonVariant } from '@/dls/Button/Button';\nimport MinusIcon from '@/icons/minus.svg';\nimport PlusIcon from '@/icons/plus.svg';\nimport { toLocalizedNumber } from '@/utils/locale';\n\ntype CounterProps = {\n count: number | string;\n onIncrement?: () => void;\n onDecrement?: () => void;\n};\n\n/**\n *\n * @param {CounterProps} props - the props of the this component\n * @param {number} props.count - the current count\n * @param {() => void} props.onIncrement - the function to call when the increment button is clicked.\n * Button is disabled when the value is `undefined` or `null`\n * @param {() => void} props.onDecrement - the function to call when the decrement button is clicked.\n * Button is disabled when the value is `undefined` or `null`\n * @returns {JSX.Element}\n */\nconst Counter = ({ count, onIncrement, onDecrement }: CounterProps): JSX.Element => {\n const { t, lang } = useTranslation('common');\n const localizedCount = useMemo(() => toLocalizedNumber(Number(count), lang), [count, lang]);\n return (\n <div className={styles.container}>\n <Button\n tooltip={t('counter.decrease')}\n shape={ButtonShape.Circle}\n variant={ButtonVariant.Ghost}\n isDisabled={!onDecrement}\n onClick={onDecrement}\n ariaLabel={t('counter.decrease')}\n >\n <MinusIcon />\n </Button>\n <span className={styles.count}>{localizedCount}</span>\n <Button\n tooltip={t('counter.increase')}\n variant={ButtonVariant.Ghost}\n shape={ButtonShape.Circle}\n isDisabled={!onIncrement}\n onClick={onIncrement}\n ariaLabel={t('counter.increase')}\n >\n <PlusIcon />\n </Button>\n </div>\n );\n};\n\nexport default Counter;\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgDividerHorizontal = function SvgDividerHorizontal(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 20 20\",\n height: 16,\n width: 16,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"var(--color-secondary-medium)\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M5 10h10\"\n })));\n};\nexport default SvgDividerHorizontal;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgTick = function SvgTick(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 20 20\",\n height: 20,\n width: 20,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m14 7-5.5 5.5L6 10\",\n stroke: \"var(--color-background-default)\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n};\nexport default SvgTick;","import React from 'react';\n\nimport * as RadixCheckbox from '@radix-ui/react-checkbox';\nimport classNames from 'classnames';\n\nimport styles from './Checkbox.module.scss';\n\nimport DividerHorizontalIcon from '@/icons/divider-horizontal.svg';\nimport TickIcon from '@/icons/tick.svg';\n\nconst INDETERMINATE = 'indeterminate';\n\ninterface Props {\n id: string;\n onChange: (checked: boolean) => void;\n checked?: boolean | typeof INDETERMINATE;\n disabled?: boolean;\n required?: boolean;\n label?: string | JSX.Element;\n name?: string;\n defaultChecked?: boolean;\n}\n\nconst Checkbox: React.FC<Props> = ({\n disabled = false,\n required = false,\n defaultChecked,\n checked,\n id,\n label,\n name,\n onChange,\n}) => {\n /**\n * Handle when the value of the checkbox input changes.\n *\n * @param {boolean} newChecked\n * @returns {void}\n */\n const handleChange = (newChecked: boolean): void => {\n onChange(newChecked);\n };\n\n return (\n <div className={classNames(styles.container, { [styles.disabled]: disabled })}>\n <RadixCheckbox.Root\n disabled={disabled}\n name={name}\n required={required}\n onCheckedChange={handleChange}\n id={id}\n className={styles.checkbox}\n defaultChecked={defaultChecked}\n {...(checked !== undefined && { checked })} // make it controlled only when checked is passed.\n >\n <RadixCheckbox.Indicator\n className={classNames(styles.indicator, { [styles.disabledIndicator]: disabled })}\n >\n {checked === INDETERMINATE ? <DividerHorizontalIcon /> : <TickIcon />}\n </RadixCheckbox.Indicator>\n </RadixCheckbox.Root>\n {label && (\n <label className={styles.label} htmlFor={id}>\n {label}\n </label>\n )}\n </div>\n );\n};\n\nexport default Checkbox;\n","import useTranslation from 'next-translate/useTranslation';\nimport useSWRImmutable from 'swr/immutable';\n\nimport RadioContext from '../actors/radio/types/RadioContext';\n\nimport curatedStations from '@/components/Radio/curatedStations';\nimport { StationInfo, StationType } from '@/components/Radio/types';\nimport { makeReciterUrl } from '@/utils/apiPaths';\nimport { getReciterData } from 'src/api';\n\nconst useCurrentStationInfo = (context: RadioContext): StationInfo => {\n const { t, lang } = useTranslation('radio');\n\n const stationState = context;\n\n const { data: reciterData } = useSWRImmutable(\n stationState.type === StationType.Reciter ? makeReciterUrl(stationState.id, lang) : null,\n () => getReciterData(stationState.id, lang),\n );\n\n const getCuratedStationInfo = (): StationInfo => {\n const curatedStation = curatedStations[stationState.id];\n return {\n title: t(`curated-station.${curatedStation.title}`),\n description: t(`curated-station.${curatedStation.description}`),\n };\n };\n\n const getReciterStationInfo = (): StationInfo => {\n const selectedReciter = reciterData?.reciter;\n return {\n title: selectedReciter?.translatedName?.name,\n description: selectedReciter?.style?.name,\n };\n };\n\n if (stationState.type === StationType.Curated) return getCuratedStationInfo();\n return getReciterStationInfo();\n};\n\nexport default useCurrentStationInfo;\n","/* eslint-disable import/prefer-default-export */\n\nimport { DEFAULT_RECITER } from '@/redux/defaultSettings/defaultSettings';\nimport { makeVerseKey } from '@/utils/verse';\n\nexport const selectIsUsingDefaultReciter = (state) =>\n state.context.reciterId === DEFAULT_RECITER.id;\n\nexport const selectCurrentAudioReciterId = (state) => state.context.audioData?.reciterId;\n\nexport const selectIsLoading = (state) => state.hasTag('loading');\n\nexport const selectIsAudioPlaying = (state) =>\n state.matches('VISIBLE.AUDIO_PLAYER_INITIATED.PLAYING');\n\nexport const selectIsPlayingCurrentChapter = (state, chapterId) => {\n const isAudioPlaying = selectIsAudioPlaying(state);\n const currentSurah = state.context.surah;\n return isAudioPlaying && currentSurah === chapterId;\n};\n\nexport const selectIsLoadingCurrentChapter = (state, chapterId) => {\n const isLoading = selectIsLoading(state);\n const currentSurah = state.context.surah;\n return isLoading && currentSurah === chapterId;\n};\n\nexport const selectIsVerseBeingPlayed = (state, verseKey) => {\n const { surah, ayahNumber } = state.context;\n return (\n state.matches('VISIBLE.AUDIO_PLAYER_INITIATED.PLAYING') &&\n makeVerseKey(surah, ayahNumber) === verseKey\n );\n};\n\nexport const selectIsVerseLoading = (state, verseKey) => {\n const { surah, ayahNumber } = state.context;\n return selectIsLoading(state) && makeVerseKey(surah, ayahNumber) === verseKey;\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"innerContainer\":\"AudioPlayerBody_innerContainer__GtT8u\",\"sliderContainer\":\"AudioPlayerBody_sliderContainer__LZwWP\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"AudioPlayerSlider_container__3jtMx\",\"sliderContainer\":\"AudioPlayerSlider_sliderContainer__4oR8q\",\"currentTime\":\"AudioPlayerSlider_currentTime__lm6KI\",\"remainingTime\":\"AudioPlayerSlider_remainingTime__X1p9_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"checkboxContainer\":\"AudioExperienceMenu_checkboxContainer__8hmg_\",\"experienceTipContainer\":\"AudioExperienceMenu_experienceTipContainer__cY9lE\",\"link\":\"AudioExperienceMenu_link__zGV1W\",\"bold\":\"AudioExperienceMenu_bold__eo7pp\",\"helpText\":\"AudioExperienceMenu_helpText__a_vH5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"reciterStyle\":\"SelectReciterMenu_reciterStyle__a16nc\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"VolumeControl_content__KQW7C\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menuWithNestedItems\":\"OverflowAudioPlayActionsMenuBody_menuWithNestedItems__Vok9Z\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"overriddenPopoverMenuContentPositioning\":\"OverflowAudioPlayerActionsMenu_overriddenPopoverMenuContentPositioning__W2KGs\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"PlaybackControls_container__qbAEo\",\"actionItem\":\"PlaybackControls_actionItem__t1_CP\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"RadioPlaybackControl_container__gNX1o\",\"infoContainer\":\"RadioPlaybackControl_infoContainer__5Lcad\",\"title\":\"RadioPlaybackControl_title__VhoX_\",\"description\":\"RadioPlaybackControl_description___I0Tp\",\"actions\":\"RadioPlaybackControl_actions__Iq_bm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Error_container__1m9XV\",\"text\":\"Error_text__yg4kD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Badge_container__GXfIf\",\"content\":\"Badge_content__Ue8Y7\",\"positionBottomRight\":\"Badge_positionBottomRight__1JJDw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Counter_container__WfR1A\",\"count\":\"Counter_count__Q6LdA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Checkbox_container__LWbsV\",\"checkbox\":\"Checkbox_checkbox__bbyfA\",\"label\":\"Checkbox_label__MrEvp\",\"disabled\":\"Checkbox_disabled__3XIf_\",\"indicator\":\"Checkbox_indicator__6umIV\",\"disabledIndicator\":\"Checkbox_disabledIndicator__Dmw2E\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"slider\":\"Slider_slider__a38US\",\"track\":\"Slider_track__WpG08\",\"trackBackground\":\"Slider_trackBackground__CLV1R\",\"range\":\"Slider_range__hepcD\",\"primary\":\"Slider_primary__69eXe\",\"secondary\":\"Slider_secondary__y17ey\",\"thumb\":\"Slider_thumb__B0v_r\"};","import $1bpvS$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {forwardRef as $1bpvS$forwardRef, useState as $1bpvS$useState, useRef as $1bpvS$useRef, useEffect as $1bpvS$useEffect, createElement as $1bpvS$createElement} from \"react\";\nimport {useComposedRefs as $1bpvS$useComposedRefs} from \"@radix-ui/react-compose-refs\";\nimport {createContextScope as $1bpvS$createContextScope} from \"@radix-ui/react-context\";\nimport {composeEventHandlers as $1bpvS$composeEventHandlers} from \"@radix-ui/primitive\";\nimport {useControllableState as $1bpvS$useControllableState} from \"@radix-ui/react-use-controllable-state\";\nimport {usePrevious as $1bpvS$usePrevious} from \"@radix-ui/react-use-previous\";\nimport {useSize as $1bpvS$useSize} from \"@radix-ui/react-use-size\";\nimport {Presence as $1bpvS$Presence} from \"@radix-ui/react-presence\";\nimport {Primitive as $1bpvS$Primitive} from \"@radix-ui/react-primitive\";\n\n\n\n\n\n\n\n\n\n\n\n/* -------------------------------------------------------------------------------------------------\n * Checkbox\n * -----------------------------------------------------------------------------------------------*/ const $e698a72e93240346$var$CHECKBOX_NAME = 'Checkbox';\nconst [$e698a72e93240346$var$createCheckboxContext, $e698a72e93240346$export$b566c4ff5488ea01] = $1bpvS$createContextScope($e698a72e93240346$var$CHECKBOX_NAME);\nconst [$e698a72e93240346$var$CheckboxProvider, $e698a72e93240346$var$useCheckboxContext] = $e698a72e93240346$var$createCheckboxContext($e698a72e93240346$var$CHECKBOX_NAME);\nconst $e698a72e93240346$export$48513f6b9f8ce62d = /*#__PURE__*/ $1bpvS$forwardRef((props, forwardedRef)=>{\n const { __scopeCheckbox: __scopeCheckbox , name: name , checked: checkedProp , defaultChecked: defaultChecked , required: required , disabled: disabled , value: value = 'on' , onCheckedChange: onCheckedChange , ...checkboxProps } = props;\n const [button, setButton] = $1bpvS$useState(null);\n const composedRefs = $1bpvS$useComposedRefs(forwardedRef, (node)=>setButton(node)\n );\n const hasConsumerStoppedPropagationRef = $1bpvS$useRef(false); // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = button ? Boolean(button.closest('form')) : true;\n const [checked = false, setChecked] = $1bpvS$useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n const initialCheckedStateRef = $1bpvS$useRef(checked);\n $1bpvS$useEffect(()=>{\n const form = button === null || button === void 0 ? void 0 : button.form;\n if (form) {\n const reset = ()=>setChecked(initialCheckedStateRef.current)\n ;\n form.addEventListener('reset', reset);\n return ()=>form.removeEventListener('reset', reset)\n ;\n }\n }, [\n button,\n setChecked\n ]);\n return /*#__PURE__*/ $1bpvS$createElement($e698a72e93240346$var$CheckboxProvider, {\n scope: __scopeCheckbox,\n state: checked,\n disabled: disabled\n }, /*#__PURE__*/ $1bpvS$createElement($1bpvS$Primitive.button, $1bpvS$babelruntimehelpersesmextends({\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": $e698a72e93240346$var$isIndeterminate(checked) ? 'mixed' : checked,\n \"aria-required\": required,\n \"data-state\": $e698a72e93240346$var$getState(checked),\n \"data-disabled\": disabled ? '' : undefined,\n disabled: disabled,\n value: value\n }, checkboxProps, {\n ref: composedRefs,\n onKeyDown: $1bpvS$composeEventHandlers(props.onKeyDown, (event)=>{\n // According to WAI ARIA, Checkboxes don't activate on enter keypress\n if (event.key === 'Enter') event.preventDefault();\n }),\n onClick: $1bpvS$composeEventHandlers(props.onClick, (event)=>{\n setChecked((prevChecked)=>$e698a72e93240346$var$isIndeterminate(prevChecked) ? true : !prevChecked\n );\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(); // if checkbox is in a form, stop propagation from the button so that we only propagate\n // one click event (from the input). We propagate changes from an input so that native\n // form validation works and form events reflect checkbox updates.\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n })), isFormControl && /*#__PURE__*/ $1bpvS$createElement($e698a72e93240346$var$BubbleInput, {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name: name,\n value: value,\n checked: checked,\n required: required,\n disabled: disabled // We transform because the input is absolutely positioned but we have\n ,\n style: {\n transform: 'translateX(-100%)'\n }\n }));\n});\n/*#__PURE__*/ Object.assign($e698a72e93240346$export$48513f6b9f8ce62d, {\n displayName: $e698a72e93240346$var$CHECKBOX_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * CheckboxIndicator\n * -----------------------------------------------------------------------------------------------*/ const $e698a72e93240346$var$INDICATOR_NAME = 'CheckboxIndicator';\nconst $e698a72e93240346$export$59aad738f51d1c05 = /*#__PURE__*/ $1bpvS$forwardRef((props, forwardedRef)=>{\n const { __scopeCheckbox: __scopeCheckbox , forceMount: forceMount , ...indicatorProps } = props;\n const context = $e698a72e93240346$var$useCheckboxContext($e698a72e93240346$var$INDICATOR_NAME, __scopeCheckbox);\n return /*#__PURE__*/ $1bpvS$createElement($1bpvS$Presence, {\n present: forceMount || $e698a72e93240346$var$isIndeterminate(context.state) || context.state === true\n }, /*#__PURE__*/ $1bpvS$createElement($1bpvS$Primitive.span, $1bpvS$babelruntimehelpersesmextends({\n \"data-state\": $e698a72e93240346$var$getState(context.state),\n \"data-disabled\": context.disabled ? '' : undefined\n }, indicatorProps, {\n ref: forwardedRef,\n style: {\n pointerEvents: 'none',\n ...props.style\n }\n })));\n});\n/*#__PURE__*/ Object.assign($e698a72e93240346$export$59aad738f51d1c05, {\n displayName: $e698a72e93240346$var$INDICATOR_NAME\n});\n/* ---------------------------------------------------------------------------------------------- */ const $e698a72e93240346$var$BubbleInput = (props)=>{\n const { control: control , checked: checked , bubbles: bubbles = true , ...inputProps } = props;\n const ref = $1bpvS$useRef(null);\n const prevChecked = $1bpvS$usePrevious(checked);\n const controlSize = $1bpvS$useSize(control); // Bubble checked change to parents (e.g form change event)\n $1bpvS$useEffect(()=>{\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'checked');\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event('click', {\n bubbles: bubbles\n });\n input.indeterminate = $e698a72e93240346$var$isIndeterminate(checked);\n setChecked.call(input, $e698a72e93240346$var$isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [\n prevChecked,\n checked,\n bubbles\n ]);\n return /*#__PURE__*/ $1bpvS$createElement(\"input\", $1bpvS$babelruntimehelpersesmextends({\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: $e698a72e93240346$var$isIndeterminate(checked) ? false : checked\n }, inputProps, {\n tabIndex: -1,\n ref: ref,\n style: {\n ...props.style,\n ...controlSize,\n position: 'absolute',\n pointerEvents: 'none',\n opacity: 0,\n margin: 0\n }\n }));\n};\nfunction $e698a72e93240346$var$isIndeterminate(checked) {\n return checked === 'indeterminate';\n}\nfunction $e698a72e93240346$var$getState(checked) {\n return $e698a72e93240346$var$isIndeterminate(checked) ? 'indeterminate' : checked ? 'checked' : 'unchecked';\n}\nconst $e698a72e93240346$export$be92b6f5f03c0fe9 = $e698a72e93240346$export$48513f6b9f8ce62d;\nconst $e698a72e93240346$export$adb584737d712b70 = $e698a72e93240346$export$59aad738f51d1c05;\n\n\n\n\nexport {$e698a72e93240346$export$b566c4ff5488ea01 as createCheckboxScope, $e698a72e93240346$export$48513f6b9f8ce62d as Checkbox, $e698a72e93240346$export$59aad738f51d1c05 as CheckboxIndicator, $e698a72e93240346$export$be92b6f5f03c0fe9 as Root, $e698a72e93240346$export$adb584737d712b70 as Indicator};\n//# sourceMappingURL=index.mjs.map\n","import {useRef as $8LvvK$useRef, useMemo as $8LvvK$useMemo} from \"react\";\n\n\nfunction $010c2913dbd2fe3d$export$5cae361ad82dce8b(value) {\n const ref = $8LvvK$useRef({\n value: value,\n previous: value\n }); // We compare values before making an update to ensure that\n // a change has been made. This ensures the previous value is\n // persisted correctly between renders.\n return $8LvvK$useMemo(()=>{\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [\n value\n ]);\n}\n\n\n\n\nexport {$010c2913dbd2fe3d$export$5cae361ad82dce8b as usePrevious};\n//# sourceMappingURL=index.mjs.map\n"],"names":["_path","_extends","Object","assign","bind","n","e","arguments","length","t","r","hasOwnProperty","call","apply","props","viewBox","width","height","stroke","strokeWidth","strokeLinecap","strokeLinejoin","fill","shapeRendering","style","color","d","xmlns","fillRule","clipRule","tagRe","nlRe","getElements","parts","_a","slice","paired","children","unpaired","concat","formatElements","value","elements","replace","split","tree","before","shift","push","forEach","realIndex","key","after","element","Fragment","cloneElement","Trans","i18nKey","values","components","fallback","defaultTrans","ns","_b","useTranslation","lang","useMemo","text","default","togglePlaying","isAudioPlayerHidden","audioService","useContext","AudioPlayerMachineContext","toggleAudioPlayer","useCallback","event","logEvent","preventDefault","options","enabled","useHotkeys","send","type","$ae6933e535247d3d$export$7d15b64cf5a3a4c4","min","max","Math","$faa2e61a3361514f$var$PAGE_KEYS","$faa2e61a3361514f$var$ARROW_KEYS","$faa2e61a3361514f$var$BACK_KEYS","$faa2e61a3361514f$var$SLIDER_NAME","$faa2e61a3361514f$var$Collection","$faa2e61a3361514f$var$useCollection","$faa2e61a3361514f$var$createCollectionScope","$faa2e61a3361514f$var$createSliderContext","$faa2e61a3361514f$export$ef72632d7b901f97","$faa2e61a3361514f$var$SliderProvider","$faa2e61a3361514f$var$useSliderContext","$faa2e61a3361514f$export$472062a354075cee","forwardedRef","name","step","orientation","disabled","minStepsBetweenThumbs","defaultValue","value1","onValueChange","onValueCommit","inverted","sliderProps","slider","setSlider","composedRefs","node","thumbRefs","Set","valueIndexToChangeRef","isHorizontal","isFormControl","Boolean","closest","SliderOrientation","$faa2e61a3361514f$var$SliderHorizontal","$faa2e61a3361514f$var$SliderVertical","setValues","prop","defaultProp","onChange","_thumbs$valueIndexToC","current","focus","valuesBeforeSlideStartRef","updateValues","atIndex","commit","decimalCount","String","$faa2e61a3361514f$var$getDecimalCount","snapToStep","rounder","pow","round","$faa2e61a3361514f$var$roundValue","nextValue","prevValues","nextValues","sort","a","b","$faa2e61a3361514f$var$getNextSortedValues","minStepsBetweenValues","stepsBetweenValues","map","index","$faa2e61a3361514f$var$getStepsBetweenValues","$faa2e61a3361514f$var$hasMinStepsBetweenValues","indexOf","hasChanged","scope","__scopeSlider","thumbs","Provider","Slot","undefined","ref","onPointerDown","onSlideStart","closestIndex","distances","abs","closestDistance","$faa2e61a3361514f$var$getClosestValueIndex","onSlideMove","onSlideEnd","prevValue","onHomeKeyDown","onEndKeyDown","onStepKeyDown","direction","stepDirection","multiplier","includes","shiftKey","$faa2e61a3361514f$var$BubbleInput","$faa2e61a3361514f$var$SliderOrientationProvider","$faa2e61a3361514f$var$useSliderOrientationContext","startEdge","endEdge","size","dir","rectRef","isDirectionLTR","isSlidingFromLeft","getValueFromPointer","pointerPosition","rect","getBoundingClientRect","$faa2e61a3361514f$var$linearScale","left","$faa2e61a3361514f$var$SliderImpl","clientX","isBackKey","sliderRef","isSlidingFromBottom","top","clientY","context","onKeyDown","target","setPointerCapture","pointerId","has","onPointerMove","hasPointerCapture","onPointerUp","releasePointerCapture","$faa2e61a3361514f$var$TRACK_NAME","$faa2e61a3361514f$export$105594979f116971","trackProps","$faa2e61a3361514f$var$RANGE_NAME","$faa2e61a3361514f$export$a5cf38a7a000fe77","rangeProps","valuesCount","percentages","$faa2e61a3361514f$var$convertValueToPercentage","offsetStart","offsetEnd","$faa2e61a3361514f$var$THUMB_NAME","$faa2e61a3361514f$export$2c1b491743890dec","getItems","thumb","setThumb","findIndex","item","$faa2e61a3361514f$var$SliderThumbImpl","thumbProps","percent","label","totalValues","$faa2e61a3361514f$var$getLabel","orientationSize","thumbInBoundsOffset","halfWidth","offset","$faa2e61a3361514f$var$getThumbInBoundsOffset","add","delete","transform","position","ItemSlot","role","tabIndex","display","onFocus","inputProps","input","inputProto","window","HTMLInputElement","prototype","setValue","getOwnPropertyDescriptor","set","Event","bubbles","dispatchEvent","output","ratio","$faa2e61a3361514f$export$13921ac0cc260818","$faa2e61a3361514f$export$9a58ef0d7ad3278c","$faa2e61a3361514f$export$6521433ed15a34db","Orientation","Direction","ltr","rtl","SliderVariant","Slider","Horizontal","showThumbs","variant","Primary","withBackground","SliderPrimitive","className","styles","aria-label","classNames","Secondary","memo","useRouter","locale","useDirection","elapsed","useSelector","state","downloadProgress","duration","div","span","secondsFormatter","newTimestamp","timestamp","withStopPropagation","cb","stopPropagation","Button","tooltip","shape","ButtonShape","ButtonVariant","onClick","logButtonClick","shouldFlipOnRTL","CloseIcon","isPlaying","matches","isLoading","selectIsLoading","isDisabled","Spinner","SpinnerSize","PauseIcon","PlayIcon","VOLUME_ICONS","VOLUME_UP","VolumeUpIcon","VOLUME_DOWN","VolumeDownIcon","NO_SOUND","NoSoundIcon","getVolumeIconType","volume","useState","isOpen","setIsOpen","icon","setIcon","useEffect","timeoutId","setTimeout","clearTimeout","PopoverMenu","isPortalled","isModal","contentClassName","onOpenChange","trigger","newVolume","logValueChange","rangeActor","remainingCount","totalRangeCycle","currentRangeCycle","localizedRemainingCount","toLocalizedNumber","repeatActor","isInRepeatMode","Wrapper","shouldWrap","wrapper","Badge","content","RemainingRangeCount","getSnapshot","rangeCycleActor","id","OverflowMenuIcon","showTooltipFor","p","tooltipTextType","isTooltipContentEnabled","selectIsTooltipContentEnabled","ContentTypeMessage","br","boldSpan","onBack","usePersistPreferenceGroup","actions","onSettingsChange","audioPlayerState","selectAudioPlayerState","enableAutoScrolling","showTooltipWhenPlayingAudio","selectTooltipContentType","onAudioSettingsChange","actionCreator","PreferenceGroup","ChevronLeftIcon","Checkbox","checked","newValue","setEnableAutoScrolling","setShowTooltipWhenPlayingAudio","HelpText","playbackRates","onXstateSettingsChange","currentPlaybackRate","playbackRate","getPlaybackRateLabel","getItemIcon","CheckIcon","rates","previousPlaybackRate","onPlaybackRateSelected","isModalOpen","setIsModalOpen","currentSurah","surah","RepeatIcon","RepeatAudioModal","defaultRepetitionMode","RepetitionMode","chapterId","toString","onClose","selectedReciterId","reciterId","useOnboarding","isActive","activeStepGroup","activeStepIndex","nextStep","OnboardingGroup","onReciterSelected","reciter","previousReciterId","newlySelectedReciterId","renderReciter","data","reciters","logItemSelectionChange","translatedName","DataFetcher","queryKey","makeAvailableRecitersUrl","render","getPlaybackRateLabelFontSize","AudioPlayerOverflowMenu","Main","selectedMenu","setSelectedMenu","prevStep","handler","handleNextOpenRecitersListStep","Reciter","addEventListener","OnboardingEvent","removeEventListener","menus","DownloadAudioButton","RepeatButton","ExperienceIcon","Experience","ChevronRightIcon","fontSize","AudioSpeed","PersonIcon","AudioPlaybackRateMenu","SelectReciterMenu","AudioExperienceMenu","open","setOpen","handleAfterChooseReciterStepNext","handlePrevStep3","handleAfterAudioPlayerTriggerStepNext","document","getElementById","click","shouldStayOpen","shouldClose","AudioPlayerOverflowMenuTrigger","newOpen","OverflowAudioPlayActionsMenuBody","SeekButtonType","chaptersData","DataContext","ayahNumber","chapterData","getChapterData","PrevAyah","NextAyah","versesCount","BackwardIcon","ForwardIcon","OverflowAudioPlayerActionsMenu","VolumeControl","SeekButton","PlayPauseButton","CloseButton","radioActor","radioService","useActor","stationInfo","useCurrentStationInfo","title","description","CloseRadioButton","isRadioMode","AudioKeyBoardListeners","AudioPlayerSlider","RadioPlaybackControl","PlaybackControls","download","url","onDone","splits","substring","lastIndexOf","filename","xhr","XMLHttpRequest","responseType","onload","createElement","href","URL","createObjectURL","response","body","appendChild","audioDataUrl","useXstateSelector","audioData","audioUrl","loading","selectIsDownloadingAudio","dispatch","useDispatch","setIsDownloadingAudio","DownloadIcon","renderError","initialData","dataFetcher","fetcher","showSpinnerOnRevalidate","onFetchSuccess","useSWRImmutable","then","res","Promise","resolve","catch","err","reject","fallbackData","error","isValidating","mutate","errorComponent","Error","onRetryClicked","message","OFFLINE_ERROR","prefix","RetryIcon","ButtonSize","ButtonType","count","onIncrement","onDecrement","localizedCount","Number","ariaLabel","MinusIcon","PlusIcon","required","defaultChecked","RadixCheckbox","onCheckedChange","newChecked","DividerHorizontalIcon","TickIcon","htmlFor","stationState","StationType","makeReciterUrl","getReciterData","curatedStation","curatedStations","getCuratedStationInfo","selectedReciter","reciterData","getReciterStationInfo","selectIsUsingDefaultReciter","DEFAULT_RECITER","selectCurrentAudioReciterId","hasTag","selectIsPlayingCurrentChapter","isAudioPlaying","selectIsAudioPlaying","selectIsLoadingCurrentChapter","selectIsVerseLoading","verseKey","makeVerseKey","module","exports","$e698a72e93240346$var$CHECKBOX_NAME","$e698a72e93240346$var$createCheckboxContext","$e698a72e93240346$export$b566c4ff5488ea01","$e698a72e93240346$var$CheckboxProvider","$e698a72e93240346$var$useCheckboxContext","$e698a72e93240346$export$48513f6b9f8ce62d","__scopeCheckbox","checkedProp","checkboxProps","button","setButton","hasConsumerStoppedPropagationRef","setChecked","initialCheckedStateRef","form","reset","$e698a72e93240346$var$isIndeterminate","$e698a72e93240346$var$getState","prevChecked","isPropagationStopped","$e698a72e93240346$var$BubbleInput","control","$e698a72e93240346$var$INDICATOR_NAME","$e698a72e93240346$export$59aad738f51d1c05","forceMount","indicatorProps","present","pointerEvents","controlSize","indeterminate","opacity","margin","$e698a72e93240346$export$be92b6f5f03c0fe9","$e698a72e93240346$export$adb584737d712b70","$010c2913dbd2fe3d$export$5cae361ad82dce8b","previous"],"sourceRoot":""}