{"version":3,"file":"static/chunks/184-7eb2f39911bc475b.js","mappings":"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","sources":["webpack://_N_E/../../node_modules/next/dist/api/link.js","webpack://_N_E/../src/avatar.tsx","webpack://_N_E/../src/toggle.tsx","webpack://_N_E/../../node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.js","webpack://_N_E/../../node_modules/embla-carousel/esm/embla-carousel.esm.js","webpack://_N_E/../../node_modules/embla-carousel-react/esm/embla-carousel-react.esm.js"],"sourcesContent":["export { default } from \"../client/link\";\nexport * from \"../client/link\";\n\n//# sourceMappingURL=link.js.map","import * as React from 'react';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport { Primitive } from '@radix-ui/react-primitive';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Avatar\n * -----------------------------------------------------------------------------------------------*/\n\nconst AVATAR_NAME = 'Avatar';\n\ntype ScopedProps

= P & { __scopeAvatar?: Scope };\nconst [createAvatarContext, createAvatarScope] = createContextScope(AVATAR_NAME);\n\ntype ImageLoadingStatus = 'idle' | 'loading' | 'loaded' | 'error';\n\ntype AvatarContextValue = {\n imageLoadingStatus: ImageLoadingStatus;\n onImageLoadingStatusChange(status: ImageLoadingStatus): void;\n};\n\nconst [AvatarProvider, useAvatarContext] = createAvatarContext(AVATAR_NAME);\n\ntype AvatarElement = React.ElementRef;\ntype PrimitiveSpanProps = React.ComponentPropsWithoutRef;\ninterface AvatarProps extends PrimitiveSpanProps {}\n\nconst Avatar = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeAvatar, ...avatarProps } = props;\n const [imageLoadingStatus, setImageLoadingStatus] = React.useState('idle');\n return (\n \n \n \n );\n }\n);\n\nAvatar.displayName = AVATAR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AvatarImage\n * -----------------------------------------------------------------------------------------------*/\n\nconst IMAGE_NAME = 'AvatarImage';\n\ntype AvatarImageElement = React.ElementRef;\ntype PrimitiveImageProps = React.ComponentPropsWithoutRef;\ninterface AvatarImageProps extends PrimitiveImageProps {\n onLoadingStatusChange?: (status: ImageLoadingStatus) => void;\n}\n\nconst AvatarImage = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeAvatar, src, onLoadingStatusChange = () => {}, ...imageProps } = props;\n const context = useAvatarContext(IMAGE_NAME, __scopeAvatar);\n const imageLoadingStatus = useImageLoadingStatus(src, imageProps.referrerPolicy);\n const handleLoadingStatusChange = useCallbackRef((status: ImageLoadingStatus) => {\n onLoadingStatusChange(status);\n context.onImageLoadingStatusChange(status);\n });\n\n useLayoutEffect(() => {\n if (imageLoadingStatus !== 'idle') {\n handleLoadingStatusChange(imageLoadingStatus);\n }\n }, [imageLoadingStatus, handleLoadingStatusChange]);\n\n return imageLoadingStatus === 'loaded' ? (\n \n ) : null;\n }\n);\n\nAvatarImage.displayName = IMAGE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AvatarFallback\n * -----------------------------------------------------------------------------------------------*/\n\nconst FALLBACK_NAME = 'AvatarFallback';\n\ntype AvatarFallbackElement = React.ElementRef;\ninterface AvatarFallbackProps extends PrimitiveSpanProps {\n delayMs?: number;\n}\n\nconst AvatarFallback = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeAvatar, delayMs, ...fallbackProps } = props;\n const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar);\n const [canRender, setCanRender] = React.useState(delayMs === undefined);\n\n React.useEffect(() => {\n if (delayMs !== undefined) {\n const timerId = window.setTimeout(() => setCanRender(true), delayMs);\n return () => window.clearTimeout(timerId);\n }\n }, [delayMs]);\n\n return canRender && context.imageLoadingStatus !== 'loaded' ? (\n \n ) : null;\n }\n);\n\nAvatarFallback.displayName = FALLBACK_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction useImageLoadingStatus(src?: string, referrerPolicy?: React.HTMLAttributeReferrerPolicy) {\n const [loadingStatus, setLoadingStatus] = React.useState('idle');\n\n useLayoutEffect(() => {\n if (!src) {\n setLoadingStatus('error');\n return;\n }\n\n let isMounted = true;\n const image = new window.Image();\n\n const updateStatus = (status: ImageLoadingStatus) => () => {\n if (!isMounted) return;\n setLoadingStatus(status);\n };\n\n setLoadingStatus('loading');\n image.onload = updateStatus('loaded');\n image.onerror = updateStatus('error');\n image.src = src;\n if (referrerPolicy) {\n image.referrerPolicy = referrerPolicy;\n }\n\n return () => {\n isMounted = false;\n };\n }, [src, referrerPolicy]);\n\n return loadingStatus;\n}\nconst Root = Avatar;\nconst Image = AvatarImage;\nconst Fallback = AvatarFallback;\n\nexport {\n createAvatarScope,\n //\n Avatar,\n AvatarImage,\n AvatarFallback,\n //\n Root,\n Image,\n Fallback,\n};\nexport type { AvatarProps, AvatarImageProps, AvatarFallbackProps };\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { Primitive } from '@radix-ui/react-primitive';\n\n/* -------------------------------------------------------------------------------------------------\n * Toggle\n * -----------------------------------------------------------------------------------------------*/\n\nconst NAME = 'Toggle';\n\ntype ToggleElement = React.ElementRef;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef;\ninterface ToggleProps extends PrimitiveButtonProps {\n /**\n * The controlled state of the toggle.\n */\n pressed?: boolean;\n /**\n * The state of the toggle when initially rendered. Use `defaultPressed`\n * if you do not need to control the state of the toggle.\n * @defaultValue false\n */\n defaultPressed?: boolean;\n /**\n * The callback that fires when the state of the toggle changes.\n */\n onPressedChange?(pressed: boolean): void;\n}\n\nconst Toggle = React.forwardRef((props, forwardedRef) => {\n const { pressed: pressedProp, defaultPressed = false, onPressedChange, ...buttonProps } = props;\n\n const [pressed = false, setPressed] = useControllableState({\n prop: pressedProp,\n onChange: onPressedChange,\n defaultProp: defaultPressed,\n });\n\n return (\n {\n if (!props.disabled) {\n setPressed(!pressed);\n }\n })}\n />\n );\n});\n\nToggle.displayName = NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\nconst Root = Toggle;\n\nexport {\n Toggle,\n //\n Root,\n};\nexport type { ToggleProps };\n","function isObject(subject) {\n return Object.prototype.toString.call(subject) === '[object Object]';\n}\nfunction isRecord(subject) {\n return isObject(subject) || Array.isArray(subject);\n}\nfunction canUseDOM() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}\nfunction areOptionsEqual(optionsA, optionsB) {\n const optionsAKeys = Object.keys(optionsA);\n const optionsBKeys = Object.keys(optionsB);\n if (optionsAKeys.length !== optionsBKeys.length) return false;\n const breakpointsA = JSON.stringify(Object.keys(optionsA.breakpoints || {}));\n const breakpointsB = JSON.stringify(Object.keys(optionsB.breakpoints || {}));\n if (breakpointsA !== breakpointsB) return false;\n return optionsAKeys.every(key => {\n const valueA = optionsA[key];\n const valueB = optionsB[key];\n if (typeof valueA === 'function') return `${valueA}` === `${valueB}`;\n if (!isRecord(valueA) || !isRecord(valueB)) return valueA === valueB;\n return areOptionsEqual(valueA, valueB);\n });\n}\nfunction sortAndMapPluginToOptions(plugins) {\n return plugins.concat().sort((a, b) => a.name > b.name ? 1 : -1).map(plugin => plugin.options);\n}\nfunction arePluginsEqual(pluginsA, pluginsB) {\n if (pluginsA.length !== pluginsB.length) return false;\n const optionsA = sortAndMapPluginToOptions(pluginsA);\n const optionsB = sortAndMapPluginToOptions(pluginsB);\n return optionsA.every((optionA, index) => {\n const optionB = optionsB[index];\n return areOptionsEqual(optionA, optionB);\n });\n}\n\nexport { areOptionsEqual, arePluginsEqual, canUseDOM, sortAndMapPluginToOptions };\n//# sourceMappingURL=embla-carousel-reactive-utils.esm.js.map\n","function isNumber(subject) {\n return typeof subject === 'number';\n}\nfunction isString(subject) {\n return typeof subject === 'string';\n}\nfunction isBoolean(subject) {\n return typeof subject === 'boolean';\n}\nfunction isObject(subject) {\n return Object.prototype.toString.call(subject) === '[object Object]';\n}\nfunction mathAbs(n) {\n return Math.abs(n);\n}\nfunction mathSign(n) {\n return Math.sign(n);\n}\nfunction deltaAbs(valueB, valueA) {\n return mathAbs(valueB - valueA);\n}\nfunction factorAbs(valueB, valueA) {\n if (valueB === 0 || valueA === 0) return 0;\n if (mathAbs(valueB) <= mathAbs(valueA)) return 0;\n const diff = deltaAbs(mathAbs(valueB), mathAbs(valueA));\n return mathAbs(diff / valueB);\n}\nfunction arrayKeys(array) {\n return objectKeys(array).map(Number);\n}\nfunction arrayLast(array) {\n return array[arrayLastIndex(array)];\n}\nfunction arrayLastIndex(array) {\n return Math.max(0, array.length - 1);\n}\nfunction arrayIsLastIndex(array, index) {\n return index === arrayLastIndex(array);\n}\nfunction arrayFromNumber(n, startAt = 0) {\n return Array.from(Array(n), (_, i) => startAt + i);\n}\nfunction objectKeys(object) {\n return Object.keys(object);\n}\nfunction objectsMergeDeep(objectA, objectB) {\n return [objectA, objectB].reduce((mergedObjects, currentObject) => {\n objectKeys(currentObject).forEach(key => {\n const valueA = mergedObjects[key];\n const valueB = currentObject[key];\n const areObjects = isObject(valueA) && isObject(valueB);\n mergedObjects[key] = areObjects ? objectsMergeDeep(valueA, valueB) : valueB;\n });\n return mergedObjects;\n }, {});\n}\nfunction isMouseEvent(evt, ownerWindow) {\n return typeof ownerWindow.MouseEvent !== 'undefined' && evt instanceof ownerWindow.MouseEvent;\n}\n\nfunction Alignment(align, viewSize) {\n const predefined = {\n start,\n center,\n end\n };\n function start() {\n return 0;\n }\n function center(n) {\n return end(n) / 2;\n }\n function end(n) {\n return viewSize - n;\n }\n function measure(n, index) {\n if (isString(align)) return predefined[align](n);\n return align(viewSize, n, index);\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction EventStore() {\n let listeners = [];\n function add(node, type, handler, options = {\n passive: true\n }) {\n let removeListener;\n if ('addEventListener' in node) {\n node.addEventListener(type, handler, options);\n removeListener = () => node.removeEventListener(type, handler, options);\n } else {\n const legacyMediaQueryList = node;\n legacyMediaQueryList.addListener(handler);\n removeListener = () => legacyMediaQueryList.removeListener(handler);\n }\n listeners.push(removeListener);\n return self;\n }\n function clear() {\n listeners = listeners.filter(remove => remove());\n }\n const self = {\n add,\n clear\n };\n return self;\n}\n\nfunction Animations(ownerDocument, ownerWindow, update, render) {\n const documentVisibleHandler = EventStore();\n const timeStep = 1000 / 60;\n let lastTimeStamp = null;\n let lag = 0;\n let animationFrame = 0;\n function init() {\n documentVisibleHandler.add(ownerDocument, 'visibilitychange', () => {\n if (ownerDocument.hidden) reset();\n });\n }\n function destroy() {\n stop();\n documentVisibleHandler.clear();\n }\n function animate(timeStamp) {\n if (!animationFrame) return;\n if (!lastTimeStamp) lastTimeStamp = timeStamp;\n const elapsed = timeStamp - lastTimeStamp;\n lastTimeStamp = timeStamp;\n lag += elapsed;\n while (lag >= timeStep) {\n update();\n lag -= timeStep;\n }\n const lagOffset = mathAbs(lag / timeStep);\n render(lagOffset);\n if (animationFrame) ownerWindow.requestAnimationFrame(animate);\n }\n function start() {\n if (animationFrame) return;\n animationFrame = ownerWindow.requestAnimationFrame(animate);\n }\n function stop() {\n ownerWindow.cancelAnimationFrame(animationFrame);\n lastTimeStamp = null;\n lag = 0;\n animationFrame = 0;\n }\n function reset() {\n lastTimeStamp = null;\n lag = 0;\n }\n const self = {\n init,\n destroy,\n start,\n stop,\n update,\n render\n };\n return self;\n}\n\nfunction Axis(axis, contentDirection) {\n const isRightToLeft = contentDirection === 'rtl';\n const isVertical = axis === 'y';\n const scroll = isVertical ? 'y' : 'x';\n const cross = isVertical ? 'x' : 'y';\n const sign = !isVertical && isRightToLeft ? -1 : 1;\n const startEdge = getStartEdge();\n const endEdge = getEndEdge();\n function measureSize(nodeRect) {\n const {\n height,\n width\n } = nodeRect;\n return isVertical ? height : width;\n }\n function getStartEdge() {\n if (isVertical) return 'top';\n return isRightToLeft ? 'right' : 'left';\n }\n function getEndEdge() {\n if (isVertical) return 'bottom';\n return isRightToLeft ? 'left' : 'right';\n }\n function direction(n) {\n return n * sign;\n }\n const self = {\n scroll,\n cross,\n startEdge,\n endEdge,\n measureSize,\n direction\n };\n return self;\n}\n\nfunction Limit(min = 0, max = 0) {\n const length = mathAbs(min - max);\n function reachedMin(n) {\n return n < min;\n }\n function reachedMax(n) {\n return n > max;\n }\n function reachedAny(n) {\n return reachedMin(n) || reachedMax(n);\n }\n function constrain(n) {\n if (!reachedAny(n)) return n;\n return reachedMin(n) ? min : max;\n }\n function removeOffset(n) {\n if (!length) return n;\n return n - length * Math.ceil((n - max) / length);\n }\n const self = {\n length,\n max,\n min,\n constrain,\n reachedAny,\n reachedMax,\n reachedMin,\n removeOffset\n };\n return self;\n}\n\nfunction Counter(max, start, loop) {\n const {\n constrain\n } = Limit(0, max);\n const loopEnd = max + 1;\n let counter = withinLimit(start);\n function withinLimit(n) {\n return !loop ? constrain(n) : mathAbs((loopEnd + n) % loopEnd);\n }\n function get() {\n return counter;\n }\n function set(n) {\n counter = withinLimit(n);\n return self;\n }\n function add(n) {\n return clone().set(get() + n);\n }\n function clone() {\n return Counter(max, get(), loop);\n }\n const self = {\n get,\n set,\n add,\n clone\n };\n return self;\n}\n\nfunction DragHandler(axis, rootNode, ownerDocument, ownerWindow, target, dragTracker, location, animation, scrollTo, scrollBody, scrollTarget, index, eventHandler, percentOfView, dragFree, dragThreshold, skipSnaps, baseFriction, watchDrag) {\n const {\n cross: crossAxis,\n direction\n } = axis;\n const focusNodes = ['INPUT', 'SELECT', 'TEXTAREA'];\n const nonPassiveEvent = {\n passive: false\n };\n const initEvents = EventStore();\n const dragEvents = EventStore();\n const goToNextThreshold = Limit(50, 225).constrain(percentOfView.measure(20));\n const snapForceBoost = {\n mouse: 300,\n touch: 400\n };\n const freeForceBoost = {\n mouse: 500,\n touch: 600\n };\n const baseSpeed = dragFree ? 43 : 25;\n let isMoving = false;\n let startScroll = 0;\n let startCross = 0;\n let pointerIsDown = false;\n let preventScroll = false;\n let preventClick = false;\n let isMouse = false;\n function init(emblaApi) {\n if (!watchDrag) return;\n function downIfAllowed(evt) {\n if (isBoolean(watchDrag) || watchDrag(emblaApi, evt)) down(evt);\n }\n const node = rootNode;\n initEvents.add(node, 'dragstart', evt => evt.preventDefault(), nonPassiveEvent).add(node, 'touchmove', () => undefined, nonPassiveEvent).add(node, 'touchend', () => undefined).add(node, 'touchstart', downIfAllowed).add(node, 'mousedown', downIfAllowed).add(node, 'touchcancel', up).add(node, 'contextmenu', up).add(node, 'click', click, true);\n }\n function destroy() {\n initEvents.clear();\n dragEvents.clear();\n }\n function addDragEvents() {\n const node = isMouse ? ownerDocument : rootNode;\n dragEvents.add(node, 'touchmove', move, nonPassiveEvent).add(node, 'touchend', up).add(node, 'mousemove', move, nonPassiveEvent).add(node, 'mouseup', up);\n }\n function isFocusNode(node) {\n const nodeName = node.nodeName || '';\n return focusNodes.includes(nodeName);\n }\n function forceBoost() {\n const boost = dragFree ? freeForceBoost : snapForceBoost;\n const type = isMouse ? 'mouse' : 'touch';\n return boost[type];\n }\n function allowedForce(force, targetChanged) {\n const next = index.add(mathSign(force) * -1);\n const baseForce = scrollTarget.byDistance(force, !dragFree).distance;\n if (dragFree || mathAbs(force) < goToNextThreshold) return baseForce;\n if (skipSnaps && targetChanged) return baseForce * 0.5;\n return scrollTarget.byIndex(next.get(), 0).distance;\n }\n function down(evt) {\n const isMouseEvt = isMouseEvent(evt, ownerWindow);\n isMouse = isMouseEvt;\n preventClick = dragFree && isMouseEvt && !evt.buttons && isMoving;\n isMoving = deltaAbs(target.get(), location.get()) >= 2;\n if (isMouseEvt && evt.button !== 0) return;\n if (isFocusNode(evt.target)) return;\n pointerIsDown = true;\n dragTracker.pointerDown(evt);\n scrollBody.useFriction(0).useDuration(0);\n target.set(location);\n addDragEvents();\n startScroll = dragTracker.readPoint(evt);\n startCross = dragTracker.readPoint(evt, crossAxis);\n eventHandler.emit('pointerDown');\n }\n function move(evt) {\n const lastScroll = dragTracker.readPoint(evt);\n const lastCross = dragTracker.readPoint(evt, crossAxis);\n const diffScroll = deltaAbs(lastScroll, startScroll);\n const diffCross = deltaAbs(lastCross, startCross);\n if (!preventScroll && !isMouse) {\n if (!evt.cancelable) return up(evt);\n preventScroll = diffScroll > diffCross;\n if (!preventScroll) return up(evt);\n }\n const diff = dragTracker.pointerMove(evt);\n if (diffScroll > dragThreshold) preventClick = true;\n scrollBody.useFriction(0.3).useDuration(1);\n animation.start();\n target.add(direction(diff));\n evt.preventDefault();\n }\n function up(evt) {\n const currentLocation = scrollTarget.byDistance(0, false);\n const targetChanged = currentLocation.index !== index.get();\n const rawForce = dragTracker.pointerUp(evt) * forceBoost();\n const force = allowedForce(direction(rawForce), targetChanged);\n const forceFactor = factorAbs(rawForce, force);\n const speed = baseSpeed - 10 * forceFactor;\n const friction = baseFriction + forceFactor / 50;\n preventScroll = false;\n pointerIsDown = false;\n dragEvents.clear();\n scrollBody.useDuration(speed).useFriction(friction);\n scrollTo.distance(force, !dragFree);\n isMouse = false;\n eventHandler.emit('pointerUp');\n }\n function click(evt) {\n if (preventClick) {\n evt.stopPropagation();\n evt.preventDefault();\n preventClick = false;\n }\n }\n function pointerDown() {\n return pointerIsDown;\n }\n const self = {\n init,\n pointerDown,\n destroy\n };\n return self;\n}\n\nfunction DragTracker(axis, ownerWindow) {\n const logInterval = 170;\n let startEvent;\n let lastEvent;\n function readTime(evt) {\n return evt.timeStamp;\n }\n function readPoint(evt, evtAxis) {\n const property = evtAxis || axis.scroll;\n const coord = `client${property === 'x' ? 'X' : 'Y'}`;\n return (isMouseEvent(evt, ownerWindow) ? evt : evt.touches[0])[coord];\n }\n function pointerDown(evt) {\n startEvent = evt;\n lastEvent = evt;\n return readPoint(evt);\n }\n function pointerMove(evt) {\n const diff = readPoint(evt) - readPoint(lastEvent);\n const expired = readTime(evt) - readTime(startEvent) > logInterval;\n lastEvent = evt;\n if (expired) startEvent = evt;\n return diff;\n }\n function pointerUp(evt) {\n if (!startEvent || !lastEvent) return 0;\n const diffDrag = readPoint(lastEvent) - readPoint(startEvent);\n const diffTime = readTime(evt) - readTime(startEvent);\n const expired = readTime(evt) - readTime(lastEvent) > logInterval;\n const force = diffDrag / diffTime;\n const isFlick = diffTime && !expired && mathAbs(force) > 0.1;\n return isFlick ? force : 0;\n }\n const self = {\n pointerDown,\n pointerMove,\n pointerUp,\n readPoint\n };\n return self;\n}\n\nfunction NodeRects() {\n function measure(node) {\n const {\n offsetTop,\n offsetLeft,\n offsetWidth,\n offsetHeight\n } = node;\n const offset = {\n top: offsetTop,\n right: offsetLeft + offsetWidth,\n bottom: offsetTop + offsetHeight,\n left: offsetLeft,\n width: offsetWidth,\n height: offsetHeight\n };\n return offset;\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction PercentOfView(viewSize) {\n function measure(n) {\n return viewSize * (n / 100);\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction ResizeHandler(container, eventHandler, ownerWindow, slides, axis, watchResize, nodeRects) {\n let resizeObserver;\n let containerSize;\n let slideSizes = [];\n let destroyed = false;\n function readSize(node) {\n return axis.measureSize(nodeRects.measure(node));\n }\n function init(emblaApi) {\n if (!watchResize) return;\n containerSize = readSize(container);\n slideSizes = slides.map(readSize);\n function defaultCallback(entries) {\n for (const entry of entries) {\n const isContainer = entry.target === container;\n const slideIndex = slides.indexOf(entry.target);\n const lastSize = isContainer ? containerSize : slideSizes[slideIndex];\n const newSize = readSize(isContainer ? container : slides[slideIndex]);\n const diffSize = mathAbs(newSize - lastSize);\n if (diffSize >= 0.5) {\n ownerWindow.requestAnimationFrame(() => {\n emblaApi.reInit();\n eventHandler.emit('resize');\n });\n break;\n }\n }\n }\n resizeObserver = new ResizeObserver(entries => {\n if (destroyed) return;\n if (isBoolean(watchResize) || watchResize(emblaApi, entries)) {\n defaultCallback(entries);\n }\n });\n const observeNodes = [container].concat(slides);\n observeNodes.forEach(node => resizeObserver.observe(node));\n }\n function destroy() {\n if (resizeObserver) resizeObserver.disconnect();\n destroyed = true;\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction ScrollBody(location, offsetLocation, target, baseDuration, baseFriction) {\n let bodyVelocity = 0;\n let scrollDirection = 0;\n let scrollDuration = baseDuration;\n let scrollFriction = baseFriction;\n let rawLocation = location.get();\n let rawLocationPrevious = 0;\n function seek() {\n const diff = target.get() - location.get();\n const isInstant = !scrollDuration;\n let directionDiff = 0;\n if (isInstant) {\n bodyVelocity = 0;\n location.set(target);\n directionDiff = diff;\n } else {\n bodyVelocity += diff / scrollDuration;\n bodyVelocity *= scrollFriction;\n rawLocation += bodyVelocity;\n location.add(bodyVelocity);\n directionDiff = rawLocation - rawLocationPrevious;\n }\n scrollDirection = mathSign(directionDiff);\n rawLocationPrevious = rawLocation;\n return self;\n }\n function settled() {\n const diff = target.get() - offsetLocation.get();\n return mathAbs(diff) < 0.001;\n }\n function duration() {\n return scrollDuration;\n }\n function direction() {\n return scrollDirection;\n }\n function velocity() {\n return bodyVelocity;\n }\n function useBaseDuration() {\n return useDuration(baseDuration);\n }\n function useBaseFriction() {\n return useFriction(baseFriction);\n }\n function useDuration(n) {\n scrollDuration = n;\n return self;\n }\n function useFriction(n) {\n scrollFriction = n;\n return self;\n }\n const self = {\n direction,\n duration,\n velocity,\n seek,\n settled,\n useBaseFriction,\n useBaseDuration,\n useFriction,\n useDuration\n };\n return self;\n}\n\nfunction ScrollBounds(limit, offsetLocation, target, scrollBody, percentOfView) {\n const pullBackThreshold = percentOfView.measure(10);\n const edgeOffsetTolerance = percentOfView.measure(50);\n const frictionLimit = Limit(0.1, 0.99);\n let disabled = false;\n function shouldConstrain() {\n if (disabled) return false;\n if (!limit.reachedAny(target.get())) return false;\n if (!limit.reachedAny(offsetLocation.get())) return false;\n return true;\n }\n function constrain(pointerDown) {\n if (!shouldConstrain()) return;\n const edge = limit.reachedMin(offsetLocation.get()) ? 'min' : 'max';\n const diffToEdge = mathAbs(limit[edge] - offsetLocation.get());\n const diffToTarget = target.get() - offsetLocation.get();\n const friction = frictionLimit.constrain(diffToEdge / edgeOffsetTolerance);\n target.subtract(diffToTarget * friction);\n if (!pointerDown && mathAbs(diffToTarget) < pullBackThreshold) {\n target.set(limit.constrain(target.get()));\n scrollBody.useDuration(25).useBaseFriction();\n }\n }\n function toggleActive(active) {\n disabled = !active;\n }\n const self = {\n constrain,\n toggleActive\n };\n return self;\n}\n\nfunction ScrollContain(viewSize, contentSize, snapsAligned, containScroll, pixelTolerance) {\n const scrollBounds = Limit(-contentSize + viewSize, 0);\n const snapsBounded = measureBounded();\n const scrollContainLimit = findScrollContainLimit();\n const snapsContained = measureContained();\n function usePixelTolerance(bound, snap) {\n return deltaAbs(bound, snap) < 1;\n }\n function findScrollContainLimit() {\n const startSnap = snapsBounded[0];\n const endSnap = arrayLast(snapsBounded);\n const min = snapsBounded.lastIndexOf(startSnap);\n const max = snapsBounded.indexOf(endSnap) + 1;\n return Limit(min, max);\n }\n function measureBounded() {\n return snapsAligned.map((snapAligned, index) => {\n const {\n min,\n max\n } = scrollBounds;\n const snap = scrollBounds.constrain(snapAligned);\n const isFirst = !index;\n const isLast = arrayIsLastIndex(snapsAligned, index);\n if (isFirst) return max;\n if (isLast) return min;\n if (usePixelTolerance(min, snap)) return min;\n if (usePixelTolerance(max, snap)) return max;\n return snap;\n }).map(scrollBound => parseFloat(scrollBound.toFixed(3)));\n }\n function measureContained() {\n if (contentSize <= viewSize + pixelTolerance) return [scrollBounds.max];\n if (containScroll === 'keepSnaps') return snapsBounded;\n const {\n min,\n max\n } = scrollContainLimit;\n return snapsBounded.slice(min, max);\n }\n const self = {\n snapsContained,\n scrollContainLimit\n };\n return self;\n}\n\nfunction ScrollLimit(contentSize, scrollSnaps, loop) {\n const max = scrollSnaps[0];\n const min = loop ? max - contentSize : arrayLast(scrollSnaps);\n const limit = Limit(min, max);\n const self = {\n limit\n };\n return self;\n}\n\nfunction ScrollLooper(contentSize, limit, offsetLocation, vectors) {\n const jointSafety = 0.1;\n const min = limit.min + jointSafety;\n const max = limit.max + jointSafety;\n const {\n reachedMin,\n reachedMax\n } = Limit(min, max);\n function shouldLoop(direction) {\n if (direction === 1) return reachedMax(offsetLocation.get());\n if (direction === -1) return reachedMin(offsetLocation.get());\n return false;\n }\n function loop(direction) {\n if (!shouldLoop(direction)) return;\n const loopDistance = contentSize * (direction * -1);\n vectors.forEach(v => v.add(loopDistance));\n }\n const self = {\n loop\n };\n return self;\n}\n\nfunction ScrollProgress(limit) {\n const {\n max,\n length\n } = limit;\n function get(n) {\n const currentLocation = n - max;\n return length ? currentLocation / -length : 0;\n }\n const self = {\n get\n };\n return self;\n}\n\nfunction ScrollSnaps(axis, alignment, containerRect, slideRects, slidesToScroll) {\n const {\n startEdge,\n endEdge\n } = axis;\n const {\n groupSlides\n } = slidesToScroll;\n const alignments = measureSizes().map(alignment.measure);\n const snaps = measureUnaligned();\n const snapsAligned = measureAligned();\n function measureSizes() {\n return groupSlides(slideRects).map(rects => arrayLast(rects)[endEdge] - rects[0][startEdge]).map(mathAbs);\n }\n function measureUnaligned() {\n return slideRects.map(rect => containerRect[startEdge] - rect[startEdge]).map(snap => -mathAbs(snap));\n }\n function measureAligned() {\n return groupSlides(snaps).map(g => g[0]).map((snap, index) => snap + alignments[index]);\n }\n const self = {\n snaps,\n snapsAligned\n };\n return self;\n}\n\nfunction SlideRegistry(containSnaps, containScroll, scrollSnaps, scrollContainLimit, slidesToScroll, slideIndexes) {\n const {\n groupSlides\n } = slidesToScroll;\n const {\n min,\n max\n } = scrollContainLimit;\n const slideRegistry = createSlideRegistry();\n function createSlideRegistry() {\n const groupedSlideIndexes = groupSlides(slideIndexes);\n const doNotContain = !containSnaps || containScroll === 'keepSnaps';\n if (scrollSnaps.length === 1) return [slideIndexes];\n if (doNotContain) return groupedSlideIndexes;\n return groupedSlideIndexes.slice(min, max).map((group, index, groups) => {\n const isFirst = !index;\n const isLast = arrayIsLastIndex(groups, index);\n if (isFirst) {\n const range = arrayLast(groups[0]) + 1;\n return arrayFromNumber(range);\n }\n if (isLast) {\n const range = arrayLastIndex(slideIndexes) - arrayLast(groups)[0] + 1;\n return arrayFromNumber(range, arrayLast(groups)[0]);\n }\n return group;\n });\n }\n const self = {\n slideRegistry\n };\n return self;\n}\n\nfunction ScrollTarget(loop, scrollSnaps, contentSize, limit, targetVector) {\n const {\n reachedAny,\n removeOffset,\n constrain\n } = limit;\n function minDistance(distances) {\n return distances.concat().sort((a, b) => mathAbs(a) - mathAbs(b))[0];\n }\n function findTargetSnap(target) {\n const distance = loop ? removeOffset(target) : constrain(target);\n const ascDiffsToSnaps = scrollSnaps.map((snap, index) => ({\n diff: shortcut(snap - distance, 0),\n index\n })).sort((d1, d2) => mathAbs(d1.diff) - mathAbs(d2.diff));\n const {\n index\n } = ascDiffsToSnaps[0];\n return {\n index,\n distance\n };\n }\n function shortcut(target, direction) {\n const targets = [target, target + contentSize, target - contentSize];\n if (!loop) return targets[0];\n if (!direction) return minDistance(targets);\n const matchingTargets = targets.filter(t => mathSign(t) === direction);\n if (matchingTargets.length) return minDistance(matchingTargets);\n return arrayLast(targets) - contentSize;\n }\n function byIndex(index, direction) {\n const diffToSnap = scrollSnaps[index] - targetVector.get();\n const distance = shortcut(diffToSnap, direction);\n return {\n index,\n distance\n };\n }\n function byDistance(distance, snap) {\n const target = targetVector.get() + distance;\n const {\n index,\n distance: targetSnapDistance\n } = findTargetSnap(target);\n const reachedBound = !loop && reachedAny(target);\n if (!snap || reachedBound) return {\n index,\n distance\n };\n const diffToSnap = scrollSnaps[index] - targetSnapDistance;\n const snapDistance = distance + shortcut(diffToSnap, 0);\n return {\n index,\n distance: snapDistance\n };\n }\n const self = {\n byDistance,\n byIndex,\n shortcut\n };\n return self;\n}\n\nfunction ScrollTo(animation, indexCurrent, indexPrevious, scrollBody, scrollTarget, targetVector, eventHandler) {\n function scrollTo(target) {\n const distanceDiff = target.distance;\n const indexDiff = target.index !== indexCurrent.get();\n targetVector.add(distanceDiff);\n if (distanceDiff) {\n if (scrollBody.duration()) {\n animation.start();\n } else {\n animation.update();\n animation.render(1);\n animation.update();\n }\n }\n if (indexDiff) {\n indexPrevious.set(indexCurrent.get());\n indexCurrent.set(target.index);\n eventHandler.emit('select');\n }\n }\n function distance(n, snap) {\n const target = scrollTarget.byDistance(n, snap);\n scrollTo(target);\n }\n function index(n, direction) {\n const targetIndex = indexCurrent.clone().set(n);\n const target = scrollTarget.byIndex(targetIndex.get(), direction);\n scrollTo(target);\n }\n const self = {\n distance,\n index\n };\n return self;\n}\n\nfunction SlideFocus(root, slides, slideRegistry, scrollTo, scrollBody, eventStore) {\n let lastTabPressTime = 0;\n function init() {\n eventStore.add(document, 'keydown', registerTabPress, false);\n slides.forEach(addSlideFocusEvent);\n }\n function registerTabPress(event) {\n if (event.code === 'Tab') lastTabPressTime = new Date().getTime();\n }\n function addSlideFocusEvent(slide) {\n const focus = () => {\n const nowTime = new Date().getTime();\n const diffTime = nowTime - lastTabPressTime;\n if (diffTime > 10) return;\n root.scrollLeft = 0;\n const index = slides.indexOf(slide);\n const group = slideRegistry.findIndex(group => group.includes(index));\n if (!isNumber(group)) return;\n scrollBody.useDuration(0);\n scrollTo.index(group, 0);\n };\n eventStore.add(slide, 'focus', focus, {\n passive: true,\n capture: true\n });\n }\n const self = {\n init\n };\n return self;\n}\n\nfunction Vector1D(initialValue) {\n let value = initialValue;\n function get() {\n return value;\n }\n function set(n) {\n value = normalizeInput(n);\n }\n function add(n) {\n value += normalizeInput(n);\n }\n function subtract(n) {\n value -= normalizeInput(n);\n }\n function normalizeInput(n) {\n return isNumber(n) ? n : n.get();\n }\n const self = {\n get,\n set,\n add,\n subtract\n };\n return self;\n}\n\nfunction Translate(axis, container) {\n const translate = axis.scroll === 'x' ? x : y;\n const containerStyle = container.style;\n let disabled = false;\n function x(n) {\n return `translate3d(${n}px,0px,0px)`;\n }\n function y(n) {\n return `translate3d(0px,${n}px,0px)`;\n }\n function to(target) {\n if (disabled) return;\n containerStyle.transform = translate(axis.direction(target));\n }\n function toggleActive(active) {\n disabled = !active;\n }\n function clear() {\n if (disabled) return;\n containerStyle.transform = '';\n if (!container.getAttribute('style')) container.removeAttribute('style');\n }\n const self = {\n clear,\n to,\n toggleActive\n };\n return self;\n}\n\nfunction SlideLooper(axis, viewSize, contentSize, slideSizes, slideSizesWithGaps, snaps, scrollSnaps, offsetLocation, slides) {\n const roundingSafety = 0.5;\n const ascItems = arrayKeys(slideSizesWithGaps);\n const descItems = arrayKeys(slideSizesWithGaps).reverse();\n const loopPoints = startPoints().concat(endPoints());\n function removeSlideSizes(indexes, from) {\n return indexes.reduce((a, i) => {\n return a - slideSizesWithGaps[i];\n }, from);\n }\n function slidesInGap(indexes, gap) {\n return indexes.reduce((a, i) => {\n const remainingGap = removeSlideSizes(a, gap);\n return remainingGap > 0 ? a.concat([i]) : a;\n }, []);\n }\n function findSlideBounds(offset) {\n return snaps.map((snap, index) => ({\n start: snap - slideSizes[index] + roundingSafety + offset,\n end: snap + viewSize - roundingSafety + offset\n }));\n }\n function findLoopPoints(indexes, offset, isEndEdge) {\n const slideBounds = findSlideBounds(offset);\n return indexes.map(index => {\n const initial = isEndEdge ? 0 : -contentSize;\n const altered = isEndEdge ? contentSize : 0;\n const boundEdge = isEndEdge ? 'end' : 'start';\n const loopPoint = slideBounds[index][boundEdge];\n return {\n index,\n loopPoint,\n slideLocation: Vector1D(-1),\n translate: Translate(axis, slides[index]),\n target: () => offsetLocation.get() > loopPoint ? initial : altered\n };\n });\n }\n function startPoints() {\n const gap = scrollSnaps[0];\n const indexes = slidesInGap(descItems, gap);\n return findLoopPoints(indexes, contentSize, false);\n }\n function endPoints() {\n const gap = viewSize - scrollSnaps[0] - 1;\n const indexes = slidesInGap(ascItems, gap);\n return findLoopPoints(indexes, -contentSize, true);\n }\n function canLoop() {\n return loopPoints.every(({\n index\n }) => {\n const otherIndexes = ascItems.filter(i => i !== index);\n return removeSlideSizes(otherIndexes, viewSize) <= 0.1;\n });\n }\n function loop() {\n loopPoints.forEach(loopPoint => {\n const {\n target,\n translate,\n slideLocation\n } = loopPoint;\n const shiftLocation = target();\n if (shiftLocation === slideLocation.get()) return;\n translate.to(shiftLocation);\n slideLocation.set(shiftLocation);\n });\n }\n function clear() {\n loopPoints.forEach(loopPoint => loopPoint.translate.clear());\n }\n const self = {\n canLoop,\n clear,\n loop,\n loopPoints\n };\n return self;\n}\n\nfunction SlidesHandler(container, eventHandler, watchSlides) {\n let mutationObserver;\n let destroyed = false;\n function init(emblaApi) {\n if (!watchSlides) return;\n function defaultCallback(mutations) {\n for (const mutation of mutations) {\n if (mutation.type === 'childList') {\n emblaApi.reInit();\n eventHandler.emit('slidesChanged');\n break;\n }\n }\n }\n mutationObserver = new MutationObserver(mutations => {\n if (destroyed) return;\n if (isBoolean(watchSlides) || watchSlides(emblaApi, mutations)) {\n defaultCallback(mutations);\n }\n });\n mutationObserver.observe(container, {\n childList: true\n });\n }\n function destroy() {\n if (mutationObserver) mutationObserver.disconnect();\n destroyed = true;\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction SlidesInView(container, slides, eventHandler, threshold) {\n const intersectionEntryMap = {};\n let inViewCache = null;\n let notInViewCache = null;\n let intersectionObserver;\n let destroyed = false;\n function init() {\n intersectionObserver = new IntersectionObserver(entries => {\n if (destroyed) return;\n entries.forEach(entry => {\n const index = slides.indexOf(entry.target);\n intersectionEntryMap[index] = entry;\n });\n inViewCache = null;\n notInViewCache = null;\n eventHandler.emit('slidesInView');\n }, {\n root: container.parentElement,\n threshold\n });\n slides.forEach(slide => intersectionObserver.observe(slide));\n }\n function destroy() {\n if (intersectionObserver) intersectionObserver.disconnect();\n destroyed = true;\n }\n function createInViewList(inView) {\n return objectKeys(intersectionEntryMap).reduce((list, slideIndex) => {\n const index = parseInt(slideIndex);\n const {\n isIntersecting\n } = intersectionEntryMap[index];\n const inViewMatch = inView && isIntersecting;\n const notInViewMatch = !inView && !isIntersecting;\n if (inViewMatch || notInViewMatch) list.push(index);\n return list;\n }, []);\n }\n function get(inView = true) {\n if (inView && inViewCache) return inViewCache;\n if (!inView && notInViewCache) return notInViewCache;\n const slideIndexes = createInViewList(inView);\n if (inView) inViewCache = slideIndexes;\n if (!inView) notInViewCache = slideIndexes;\n return slideIndexes;\n }\n const self = {\n init,\n destroy,\n get\n };\n return self;\n}\n\nfunction SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap, ownerWindow) {\n const {\n measureSize,\n startEdge,\n endEdge\n } = axis;\n const withEdgeGap = slideRects[0] && readEdgeGap;\n const startGap = measureStartGap();\n const endGap = measureEndGap();\n const slideSizes = slideRects.map(measureSize);\n const slideSizesWithGaps = measureWithGaps();\n function measureStartGap() {\n if (!withEdgeGap) return 0;\n const slideRect = slideRects[0];\n return mathAbs(containerRect[startEdge] - slideRect[startEdge]);\n }\n function measureEndGap() {\n if (!withEdgeGap) return 0;\n const style = ownerWindow.getComputedStyle(arrayLast(slides));\n return parseFloat(style.getPropertyValue(`margin-${endEdge}`));\n }\n function measureWithGaps() {\n return slideRects.map((rect, index, rects) => {\n const isFirst = !index;\n const isLast = arrayIsLastIndex(rects, index);\n if (isFirst) return slideSizes[index] + startGap;\n if (isLast) return slideSizes[index] + endGap;\n return rects[index + 1][startEdge] - rect[startEdge];\n }).map(mathAbs);\n }\n const self = {\n slideSizes,\n slideSizesWithGaps,\n startGap,\n endGap\n };\n return self;\n}\n\nfunction SlidesToScroll(axis, viewSize, slidesToScroll, loop, containerRect, slideRects, startGap, endGap, pixelTolerance) {\n const {\n startEdge,\n endEdge,\n direction\n } = axis;\n const groupByNumber = isNumber(slidesToScroll);\n function byNumber(array, groupSize) {\n return arrayKeys(array).filter(i => i % groupSize === 0).map(i => array.slice(i, i + groupSize));\n }\n function bySize(array) {\n if (!array.length) return [];\n return arrayKeys(array).reduce((groups, rectB, index) => {\n const rectA = arrayLast(groups) || 0;\n const isFirst = rectA === 0;\n const isLast = rectB === arrayLastIndex(array);\n const edgeA = containerRect[startEdge] - slideRects[rectA][startEdge];\n const edgeB = containerRect[startEdge] - slideRects[rectB][endEdge];\n const gapA = !loop && isFirst ? direction(startGap) : 0;\n const gapB = !loop && isLast ? direction(endGap) : 0;\n const chunkSize = mathAbs(edgeB - gapB - (edgeA + gapA));\n if (index && chunkSize > viewSize + pixelTolerance) groups.push(rectB);\n if (isLast) groups.push(array.length);\n return groups;\n }, []).map((currentSize, index, groups) => {\n const previousSize = Math.max(groups[index - 1] || 0);\n return array.slice(previousSize, currentSize);\n });\n }\n function groupSlides(array) {\n return groupByNumber ? byNumber(array, slidesToScroll) : bySize(array);\n }\n const self = {\n groupSlides\n };\n return self;\n}\n\nfunction Engine(root, container, slides, ownerDocument, ownerWindow, options, eventHandler) {\n // Options\n const {\n align,\n axis: scrollAxis,\n direction,\n startIndex,\n loop,\n duration,\n dragFree,\n dragThreshold,\n inViewThreshold,\n slidesToScroll: groupSlides,\n skipSnaps,\n containScroll,\n watchResize,\n watchSlides,\n watchDrag\n } = options;\n // Measurements\n const pixelTolerance = 2;\n const nodeRects = NodeRects();\n const containerRect = nodeRects.measure(container);\n const slideRects = slides.map(nodeRects.measure);\n const axis = Axis(scrollAxis, direction);\n const viewSize = axis.measureSize(containerRect);\n const percentOfView = PercentOfView(viewSize);\n const alignment = Alignment(align, viewSize);\n const containSnaps = !loop && !!containScroll;\n const readEdgeGap = loop || !!containScroll;\n const {\n slideSizes,\n slideSizesWithGaps,\n startGap,\n endGap\n } = SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap, ownerWindow);\n const slidesToScroll = SlidesToScroll(axis, viewSize, groupSlides, loop, containerRect, slideRects, startGap, endGap, pixelTolerance);\n const {\n snaps,\n snapsAligned\n } = ScrollSnaps(axis, alignment, containerRect, slideRects, slidesToScroll);\n const contentSize = -arrayLast(snaps) + arrayLast(slideSizesWithGaps);\n const {\n snapsContained,\n scrollContainLimit\n } = ScrollContain(viewSize, contentSize, snapsAligned, containScroll, pixelTolerance);\n const scrollSnaps = containSnaps ? snapsContained : snapsAligned;\n const {\n limit\n } = ScrollLimit(contentSize, scrollSnaps, loop);\n // Indexes\n const index = Counter(arrayLastIndex(scrollSnaps), startIndex, loop);\n const indexPrevious = index.clone();\n const slideIndexes = arrayKeys(slides);\n // Animation\n const update = ({\n dragHandler,\n scrollBody,\n scrollBounds,\n options: {\n loop\n }\n }) => {\n if (!loop) scrollBounds.constrain(dragHandler.pointerDown());\n scrollBody.seek();\n };\n const render = ({\n scrollBody,\n translate,\n location,\n offsetLocation,\n scrollLooper,\n slideLooper,\n dragHandler,\n animation,\n eventHandler,\n options: {\n loop\n }\n }, lagOffset) => {\n const velocity = scrollBody.velocity();\n const hasSettled = scrollBody.settled();\n if (hasSettled && !dragHandler.pointerDown()) {\n animation.stop();\n eventHandler.emit('settle');\n }\n if (!hasSettled) eventHandler.emit('scroll');\n offsetLocation.set(location.get() - velocity + velocity * lagOffset);\n if (loop) {\n scrollLooper.loop(scrollBody.direction());\n slideLooper.loop();\n }\n translate.to(offsetLocation.get());\n };\n const animation = Animations(ownerDocument, ownerWindow, () => update(engine), lagOffset => render(engine, lagOffset));\n // Shared\n const friction = 0.68;\n const startLocation = scrollSnaps[index.get()];\n const location = Vector1D(startLocation);\n const offsetLocation = Vector1D(startLocation);\n const target = Vector1D(startLocation);\n const scrollBody = ScrollBody(location, offsetLocation, target, duration, friction);\n const scrollTarget = ScrollTarget(loop, scrollSnaps, contentSize, limit, target);\n const scrollTo = ScrollTo(animation, index, indexPrevious, scrollBody, scrollTarget, target, eventHandler);\n const scrollProgress = ScrollProgress(limit);\n const eventStore = EventStore();\n const slidesInView = SlidesInView(container, slides, eventHandler, inViewThreshold);\n const {\n slideRegistry\n } = SlideRegistry(containSnaps, containScroll, scrollSnaps, scrollContainLimit, slidesToScroll, slideIndexes);\n const slideFocus = SlideFocus(root, slides, slideRegistry, scrollTo, scrollBody, eventStore);\n // Engine\n const engine = {\n ownerDocument,\n ownerWindow,\n eventHandler,\n containerRect,\n slideRects,\n animation,\n axis,\n dragHandler: DragHandler(axis, root, ownerDocument, ownerWindow, target, DragTracker(axis, ownerWindow), location, animation, scrollTo, scrollBody, scrollTarget, index, eventHandler, percentOfView, dragFree, dragThreshold, skipSnaps, friction, watchDrag),\n eventStore,\n percentOfView,\n index,\n indexPrevious,\n limit,\n location,\n offsetLocation,\n options,\n resizeHandler: ResizeHandler(container, eventHandler, ownerWindow, slides, axis, watchResize, nodeRects),\n scrollBody,\n scrollBounds: ScrollBounds(limit, offsetLocation, target, scrollBody, percentOfView),\n scrollLooper: ScrollLooper(contentSize, limit, offsetLocation, [location, offsetLocation, target]),\n scrollProgress,\n scrollSnapList: scrollSnaps.map(scrollProgress.get),\n scrollSnaps,\n scrollTarget,\n scrollTo,\n slideLooper: SlideLooper(axis, viewSize, contentSize, slideSizes, slideSizesWithGaps, snaps, scrollSnaps, offsetLocation, slides),\n slideFocus,\n slidesHandler: SlidesHandler(container, eventHandler, watchSlides),\n slidesInView,\n slideIndexes,\n slideRegistry,\n slidesToScroll,\n target,\n translate: Translate(axis, container)\n };\n return engine;\n}\n\nfunction EventHandler() {\n const listeners = {};\n let api;\n function init(emblaApi) {\n api = emblaApi;\n }\n function getListeners(evt) {\n return listeners[evt] || [];\n }\n function emit(evt) {\n getListeners(evt).forEach(e => e(api, evt));\n return self;\n }\n function on(evt, cb) {\n listeners[evt] = getListeners(evt).concat([cb]);\n return self;\n }\n function off(evt, cb) {\n listeners[evt] = getListeners(evt).filter(e => e !== cb);\n return self;\n }\n const self = {\n init,\n emit,\n off,\n on\n };\n return self;\n}\n\nconst defaultOptions = {\n align: 'center',\n axis: 'x',\n container: null,\n slides: null,\n containScroll: 'trimSnaps',\n direction: 'ltr',\n slidesToScroll: 1,\n inViewThreshold: 0,\n breakpoints: {},\n dragFree: false,\n dragThreshold: 10,\n loop: false,\n skipSnaps: false,\n duration: 25,\n startIndex: 0,\n active: true,\n watchDrag: true,\n watchResize: true,\n watchSlides: true\n};\n\nfunction OptionsHandler(ownerWindow) {\n function mergeOptions(optionsA, optionsB) {\n return objectsMergeDeep(optionsA, optionsB || {});\n }\n function optionsAtMedia(options) {\n const optionsAtMedia = options.breakpoints || {};\n const matchedMediaOptions = objectKeys(optionsAtMedia).filter(media => ownerWindow.matchMedia(media).matches).map(media => optionsAtMedia[media]).reduce((a, mediaOption) => mergeOptions(a, mediaOption), {});\n return mergeOptions(options, matchedMediaOptions);\n }\n function optionsMediaQueries(optionsList) {\n return optionsList.map(options => objectKeys(options.breakpoints || {})).reduce((acc, mediaQueries) => acc.concat(mediaQueries), []).map(ownerWindow.matchMedia);\n }\n const self = {\n mergeOptions,\n optionsAtMedia,\n optionsMediaQueries\n };\n return self;\n}\n\nfunction PluginsHandler(optionsHandler) {\n let activePlugins = [];\n function init(emblaApi, plugins) {\n activePlugins = plugins.filter(({\n options\n }) => optionsHandler.optionsAtMedia(options).active !== false);\n activePlugins.forEach(plugin => plugin.init(emblaApi, optionsHandler));\n return plugins.reduce((map, plugin) => Object.assign(map, {\n [plugin.name]: plugin\n }), {});\n }\n function destroy() {\n activePlugins = activePlugins.filter(plugin => plugin.destroy());\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction EmblaCarousel(root, userOptions, userPlugins) {\n const ownerDocument = root.ownerDocument;\n const ownerWindow = ownerDocument.defaultView;\n const optionsHandler = OptionsHandler(ownerWindow);\n const pluginsHandler = PluginsHandler(optionsHandler);\n const mediaHandlers = EventStore();\n const eventHandler = EventHandler();\n const {\n mergeOptions,\n optionsAtMedia,\n optionsMediaQueries\n } = optionsHandler;\n const {\n on,\n off,\n emit\n } = eventHandler;\n const reInit = reActivate;\n let destroyed = false;\n let engine;\n let optionsBase = mergeOptions(defaultOptions, EmblaCarousel.globalOptions);\n let options = mergeOptions(optionsBase);\n let pluginList = [];\n let pluginApis;\n let container;\n let slides;\n function storeElements() {\n const {\n container: userContainer,\n slides: userSlides\n } = options;\n const customContainer = isString(userContainer) ? root.querySelector(userContainer) : userContainer;\n container = customContainer || root.children[0];\n const customSlides = isString(userSlides) ? container.querySelectorAll(userSlides) : userSlides;\n slides = [].slice.call(customSlides || container.children);\n }\n function createEngine(options) {\n const engine = Engine(root, container, slides, ownerDocument, ownerWindow, options, eventHandler);\n if (options.loop && !engine.slideLooper.canLoop()) {\n const optionsWithoutLoop = Object.assign({}, options, {\n loop: false\n });\n return createEngine(optionsWithoutLoop);\n }\n return engine;\n }\n function activate(withOptions, withPlugins) {\n if (destroyed) return;\n optionsBase = mergeOptions(optionsBase, withOptions);\n options = optionsAtMedia(optionsBase);\n pluginList = withPlugins || pluginList;\n storeElements();\n engine = createEngine(options);\n optionsMediaQueries([optionsBase, ...pluginList.map(({\n options\n }) => options)]).forEach(query => mediaHandlers.add(query, 'change', reActivate));\n if (!options.active) return;\n engine.translate.to(engine.location.get());\n engine.animation.init();\n engine.slidesInView.init();\n engine.slideFocus.init();\n engine.eventHandler.init(self);\n engine.resizeHandler.init(self);\n engine.slidesHandler.init(self);\n if (engine.options.loop) engine.slideLooper.loop();\n if (container.offsetParent && slides.length) engine.dragHandler.init(self);\n pluginApis = pluginsHandler.init(self, pluginList);\n }\n function reActivate(withOptions, withPlugins) {\n const startIndex = selectedScrollSnap();\n deActivate();\n activate(mergeOptions({\n startIndex\n }, withOptions), withPlugins);\n eventHandler.emit('reInit');\n }\n function deActivate() {\n engine.dragHandler.destroy();\n engine.eventStore.clear();\n engine.translate.clear();\n engine.slideLooper.clear();\n engine.resizeHandler.destroy();\n engine.slidesHandler.destroy();\n engine.slidesInView.destroy();\n engine.animation.destroy();\n pluginsHandler.destroy();\n mediaHandlers.clear();\n }\n function destroy() {\n if (destroyed) return;\n destroyed = true;\n mediaHandlers.clear();\n deActivate();\n eventHandler.emit('destroy');\n }\n function scrollTo(index, jump, direction) {\n if (!options.active || destroyed) return;\n engine.scrollBody.useBaseFriction().useDuration(jump === true ? 0 : options.duration);\n engine.scrollTo.index(index, direction || 0);\n }\n function scrollNext(jump) {\n const next = engine.index.add(1).get();\n scrollTo(next, jump, -1);\n }\n function scrollPrev(jump) {\n const prev = engine.index.add(-1).get();\n scrollTo(prev, jump, 1);\n }\n function canScrollNext() {\n const next = engine.index.add(1).get();\n return next !== selectedScrollSnap();\n }\n function canScrollPrev() {\n const prev = engine.index.add(-1).get();\n return prev !== selectedScrollSnap();\n }\n function scrollSnapList() {\n return engine.scrollSnapList;\n }\n function scrollProgress() {\n return engine.scrollProgress.get(engine.location.get());\n }\n function selectedScrollSnap() {\n return engine.index.get();\n }\n function previousScrollSnap() {\n return engine.indexPrevious.get();\n }\n function slidesInView() {\n return engine.slidesInView.get();\n }\n function slidesNotInView() {\n return engine.slidesInView.get(false);\n }\n function plugins() {\n return pluginApis;\n }\n function internalEngine() {\n return engine;\n }\n function rootNode() {\n return root;\n }\n function containerNode() {\n return container;\n }\n function slideNodes() {\n return slides;\n }\n const self = {\n canScrollNext,\n canScrollPrev,\n containerNode,\n internalEngine,\n destroy,\n off,\n on,\n emit,\n plugins,\n previousScrollSnap,\n reInit,\n rootNode,\n scrollNext,\n scrollPrev,\n scrollProgress,\n scrollSnapList,\n scrollTo,\n selectedScrollSnap,\n slideNodes,\n slidesInView,\n slidesNotInView\n };\n activate(userOptions, userPlugins);\n setTimeout(() => eventHandler.emit('init'), 0);\n return self;\n}\nEmblaCarousel.globalOptions = undefined;\n\nexport { EmblaCarousel as default };\n//# sourceMappingURL=embla-carousel.esm.js.map\n","import { useRef, useState, useCallback, useEffect } from 'react';\nimport { canUseDOM, areOptionsEqual, arePluginsEqual } from 'embla-carousel-reactive-utils';\nimport EmblaCarousel from 'embla-carousel';\n\nfunction useEmblaCarousel(options = {}, plugins = []) {\n const storedOptions = useRef(options);\n const storedPlugins = useRef(plugins);\n const [emblaApi, setEmblaApi] = useState();\n const [viewport, setViewport] = useState();\n const reInit = useCallback(() => {\n if (emblaApi) emblaApi.reInit(storedOptions.current, storedPlugins.current);\n }, [emblaApi]);\n useEffect(() => {\n if (canUseDOM() && viewport) {\n EmblaCarousel.globalOptions = useEmblaCarousel.globalOptions;\n const newEmblaApi = EmblaCarousel(viewport, storedOptions.current, storedPlugins.current);\n setEmblaApi(newEmblaApi);\n return () => newEmblaApi.destroy();\n } else {\n setEmblaApi(undefined);\n }\n }, [viewport, setEmblaApi]);\n useEffect(() => {\n if (areOptionsEqual(storedOptions.current, options)) return;\n storedOptions.current = options;\n reInit();\n }, [options, reInit]);\n useEffect(() => {\n if (arePluginsEqual(storedPlugins.current, plugins)) return;\n storedPlugins.current = plugins;\n reInit();\n }, [plugins, reInit]);\n return [setViewport, emblaApi];\n}\nuseEmblaCarousel.globalOptions = undefined;\n\nexport { useEmblaCarousel as default };\n//# sourceMappingURL=embla-carousel-react.esm.js.map\n"],"names":["AVATAR_NAME","createAvatarContext","createAvatarScope","createContextScope","AvatarProvider","useAvatarContext","Avatar","React","props","forwardedRef","__scopeAvatar","avatarProps","imageLoadingStatus","setImageLoadingStatus","jsx","scope","onImageLoadingStatusChange","children","Primitive","span","ref","displayName","IMAGE_NAME","AvatarImage","src","onLoadingStatusChange","imageProps","context","useImageLoadingStatus","referrerPolicy","loadingStatus","setLoadingStatus","useLayoutEffect","isMounted","image","window","Image","updateStatus","status","onload","onerror","handleLoadingStatusChange","useCallbackRef","img","FALLBACK_NAME","AvatarFallback","delayMs","fallbackProps","canRender","setCanRender","timerId","setTimeout","clearTimeout","Root","Fallback","Toggle","pressed","pressedProp","defaultPressed","onPressedChange","buttonProps","setPressed","useControllableState","prop","onChange","defaultProp","button","type","disabled","onClick","composeEventHandlers","isRecord","subject","Object","prototype","toString","call","Array","isArray","areOptionsEqual","optionsA","optionsB","optionsAKeys","keys","optionsBKeys","length","breakpointsA","stringify","breakpoints","JSON","every","key","valueA","valueB","sortAndMapPluginToOptions","plugins","concat","sort","a","b","name","map","plugin","options","isNumber","isString","isBoolean","embla_carousel_esm_isObject","mathAbs","n","Math","abs","mathSign","sign","arrayKeys","array","objectKeys","Number","arrayLast","arrayLastIndex","max","arrayFromNumber","startAt","from","_","i","object","isMouseEvent","evt","ownerWindow","MouseEvent","EventStore","listeners","self","add","node","handler","passive","removeListener","addEventListener","removeEventListener","legacyMediaQueryList","addListener","push","clear","filter","remove","Limit","min","reachedAny","reachedMin","constrain","reachedMax","removeOffset","ceil","Vector1D","initialValue","value","normalizeInput","get","set","subtract","Translate","axis","container","translate","scroll","containerStyle","style","transform","getAttribute","removeAttribute","to","target","direction","toggleActive","active","defaultOptions","align","slides","containScroll","slidesToScroll","inViewThreshold","dragFree","dragThreshold","loop","skipSnaps","duration","startIndex","watchDrag","watchResize","watchSlides","EmblaCarousel","root","userOptions","userPlugins","engine","pluginApis","activePlugins","ownerDocument","defaultView","optionsHandler","OptionsHandler","mergeOptions","objectsMergeDeep","objectA","objectB","reduce","mergedObjects","currentObject","forEach","areObjects","optionsAtMedia","matchedMediaOptions","media","matchMedia","matches","mediaOption","optionsMediaQueries","optionsList","acc","mediaQueries","pluginsHandler","init","emblaApi","assign","destroy","mediaHandlers","eventHandler","EventHandler","api","emit","getListeners","e","off","cb","on","destroyed","optionsBase","globalOptions","pluginList","activate","withOptions","withPlugins","storeElements","userContainer","userSlides","customContainer","querySelector","customSlides","querySelectorAll","slice","createEngine","Engine","mutationObserver","scrollAxis","groupSlides","nodeRects","measure","offsetTop","offsetLeft","offsetWidth","offsetHeight","top","right","bottom","left","width","height","containerRect","slideRects","Axis","contentDirection","isRightToLeft","isVertical","cross","startEdge","endEdge","measureSize","nodeRect","viewSize","percentOfView","alignment","Alignment","predefined","start","center","end","index","containSnaps","slideSizes","slideSizesWithGaps","startGap","endGap","SlideSizes","readEdgeGap","withEdgeGap","measureStartGap","slideRect","parseFloat","getComputedStyle","getPropertyValue","rect","rects","isLast","SlidesToScroll","pixelTolerance","groupByNumber","groups","rectB","rectA","edgeA","edgeB","gapA","chunkSize","currentSize","previousSize","snaps","snapsAligned","ScrollSnaps","alignments","measureSizes","snap","g","contentSize","snapsContained","scrollContainLimit","ScrollContain","scrollBounds","snapsBounded","snapAligned","deltaAbs","scrollBound","toFixed","findScrollContainLimit","startSnap","endSnap","lastIndexOf","indexOf","measureContained","scrollSnaps","limit","ScrollLimit","Counter","loopEnd","counter","withinLimit","clone","indexPrevious","slideIndexes","update","dragHandler","scrollBody","pointerDown","seek","render","location","offsetLocation","scrollLooper","slideLooper","animation","lagOffset","velocity","hasSettled","settled","stop","Animations","documentVisibleHandler","timeStep","lastTimeStamp","lag","animationFrame","animate","timeStamp","elapsed","requestAnimationFrame","cancelAnimationFrame","hidden","startLocation","ScrollBody","baseDuration","baseFriction","bodyVelocity","scrollDirection","scrollDuration","scrollFriction","rawLocation","rawLocationPrevious","useDuration","useFriction","diff","directionDiff","useBaseFriction","useBaseDuration","scrollTarget","ScrollTarget","targetVector","minDistance","distances","shortcut","targets","matchingTargets","t","byDistance","distance","targetSnapDistance","findTargetSnap","ascDiffsToSnaps","d1","d2","reachedBound","snapDistance","byIndex","scrollTo","ScrollTo","indexCurrent","distanceDiff","indexDiff","targetIndex","scrollProgress","ScrollProgress","currentLocation","eventStore","slidesInView","SlidesInView","threshold","intersectionObserver","intersectionEntryMap","inViewCache","notInViewCache","IntersectionObserver","entries","entry","parentElement","slide","observe","disconnect","inView","list","slideIndex","parseInt","isIntersecting","inViewMatch","slideRegistry","SlideRegistry","createSlideRegistry","groupedSlideIndexes","group","slideFocus","SlideFocus","lastTabPressTime","registerTabPress","event","code","Date","getTime","addSlideFocusEvent","diffTime","scrollLeft","findIndex","includes","capture","document","DragHandler","rootNode","dragTracker","crossAxis","focusNodes","nonPassiveEvent","initEvents","dragEvents","goToNextThreshold","snapForceBoost","mouse","touch","freeForceBoost","baseSpeed","isMoving","startScroll","startCross","pointerIsDown","preventScroll","preventClick","isMouse","move","lastScroll","readPoint","lastCross","diffScroll","diffCross","cancelable","up","pointerMove","preventDefault","targetChanged","rawForce","pointerUp","boost","force","allowedForce","next","baseForce","forceFactor","factorAbs","click","stopPropagation","undefined","downIfAllowed","down","isMouseEvt","buttons","isFocusNode","nodeName","addDragEvents","DragTracker","startEvent","lastEvent","readTime","evtAxis","property","coord","touches","expired","diffDrag","isFlick","resizeHandler","ResizeHandler","resizeObserver","containerSize","readSize","ResizeObserver","defaultCallback","isContainer","lastSize","diffSize","newSize","reInit","observeNodes","ScrollBounds","pullBackThreshold","edgeOffsetTolerance","frictionLimit","edge","diffToEdge","diffToTarget","friction","ScrollLooper","vectors","loopDistance","v","scrollSnapList","SlideLooper","ascItems","loopPoints","startPoints","slidesInGap","reverse","findLoopPoints","removeSlideSizes","indexes","gap","remainingGap","offset","isEndEdge","slideBounds","initial","altered","loopPoint","slideLocation","canLoop","shiftLocation","slidesHandler","MutationObserver","mutations","mutation","childList","query","reActivate","offsetParent","selectedScrollSnap","deActivate","jump","canScrollNext","canScrollPrev","prev","containerNode","internalEngine","previousScrollSnap","scrollNext","scrollPrev","slideNodes","slidesNotInView","useEmblaCarousel","storedOptions","react","useRef","storedPlugins","setEmblaApi","useState","viewport","setViewport","useCallback","current","useEffect","canUseDOM","createElement","newEmblaApi","arePluginsEqual","pluginsA","pluginsB","optionA"],"sourceRoot":""}