{"version":3,"sources":["jsdelivr-header.js","/npm/@zag-js/scroll-area@1.31.0/dist/index.js"],"names":[],"mappings":"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","file":"/npm/@zag-js/scroll-area@1.31.0/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@zag-js/scroll-area@1.31.0/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\nvar anatomy$1 = require('@zag-js/anatomy');\nvar domQuery = require('@zag-js/dom-query');\nvar utils = require('@zag-js/utils');\nvar core = require('@zag-js/core');\nvar types = require('@zag-js/types');\n\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar anatomy = anatomy$1.createAnatomy(\"scroll-area\").parts(\"root\", \"viewport\", \"content\", \"scrollbar\", \"thumb\", \"corner\");\nvar parts = anatomy.build();\nvar getRootId = (ctx) => ctx.ids?.root ?? `scroll-area-${ctx.id}`;\nvar getViewportId = (ctx) => ctx.ids?.viewport ?? `scroll-area-${ctx.id}:viewport`;\nvar getContentId = (ctx) => ctx.ids?.content ?? `scroll-area-${ctx.id}:content`;\nvar getRootEl = (ctx) => ctx.getById(getRootId(ctx));\nvar getViewportEl = (ctx) => ctx.getById(getViewportId(ctx));\nvar getContentEl = (ctx) => ctx.getById(getContentId(ctx));\nvar getScrollbarXEl = (ctx) => domQuery.query(getRootEl(ctx), `[data-part=scrollbar][data-orientation=horizontal][data-ownedby=\"${getRootId(ctx)}\"]`);\nvar getScrollbarYEl = (ctx) => domQuery.query(getRootEl(ctx), `[data-part=scrollbar][data-orientation=vertical][data-ownedby=\"${getRootId(ctx)}\"]`);\nvar getThumbXEl = (ctx) => domQuery.query(getScrollbarXEl(ctx), `[data-part=thumb][data-orientation=horizontal][data-ownedby=\"${getRootId(ctx)}\"]`);\nvar getThumbYEl = (ctx) => domQuery.query(getScrollbarYEl(ctx), `[data-part=thumb][data-orientation=vertical][data-ownedby=\"${getRootId(ctx)}\"]`);\nvar getCornerEl = (ctx) => domQuery.query(getRootEl(ctx), `[data-part=corner][data-ownedby=\"${getRootId(ctx)}\"]`);\n\n// src/utils/scroll-progress.ts\nfunction getScrollProgress(element, scrollThreshold) {\n  if (!element) return EMPTY_SCROLL_PROGRESS;\n  let progressX = 0;\n  let progressY = 0;\n  const maxScrollX = element.scrollWidth - element.clientWidth;\n  if (maxScrollX > scrollThreshold) {\n    progressX = Math.min(1, Math.max(0, element.scrollLeft / maxScrollX));\n  }\n  const maxScrollY = element.scrollHeight - element.clientHeight;\n  if (maxScrollY > scrollThreshold) {\n    progressY = Math.min(1, Math.max(0, element.scrollTop / maxScrollY));\n  }\n  return { x: progressX, y: progressY };\n}\nvar EMPTY_SCROLL_PROGRESS = { x: 0, y: 0 };\n\n// src/utils/smooth-scroll.ts\nvar DURATION = 300;\nvar EASE_OUT_QUAD = (t) => t * (2 - t);\nfunction smoothScroll(node, options = {}) {\n  const { top, left, duration = DURATION, easing = EASE_OUT_QUAD, onComplete } = options;\n  if (!node) return;\n  const state = {\n    startTime: 0,\n    startScrollTop: node.scrollTop,\n    startScrollLeft: node.scrollLeft,\n    targetScrollTop: top ?? node.scrollTop,\n    targetScrollLeft: left ?? node.scrollLeft\n  };\n  let cancelled = false;\n  const cleanup = () => {\n    if (state.rafId) {\n      cancelAnimationFrame(state.rafId);\n      state.rafId = void 0;\n    }\n    cancelled = true;\n  };\n  const animate = (currentTime) => {\n    if (cancelled) return;\n    if (state.startTime === 0) {\n      state.startTime = currentTime;\n    }\n    const elapsed = currentTime - state.startTime;\n    const progress = Math.min(elapsed / duration, 1);\n    const easedProgress = easing(progress);\n    const deltaTop = state.targetScrollTop - state.startScrollTop;\n    const deltaLeft = state.targetScrollLeft - state.startScrollLeft;\n    node.scrollTop = state.startScrollTop + deltaTop * easedProgress;\n    node.scrollLeft = state.startScrollLeft + deltaLeft * easedProgress;\n    if (progress < 1) {\n      state.rafId = requestAnimationFrame(animate);\n    } else {\n      onComplete?.();\n    }\n  };\n  state.rafId = requestAnimationFrame(animate);\n  return cleanup;\n}\n\n// src/utils/scroll-to.ts\nfunction scrollTo(node, options = {}) {\n  if (!node) return;\n  const { top, left, behavior = \"smooth\", easing, duration } = options;\n  if (behavior === \"smooth\") {\n    smoothScroll(node, { top, left, easing, duration });\n  } else {\n    const scrollOptions = utils.compact({ behavior, top, left });\n    node.scrollTo(scrollOptions);\n  }\n}\nfunction scrollToEdge(node, edge, dir, behavior = \"smooth\", easing, duration) {\n  if (!node) return;\n  const maxLeft = node.scrollWidth - node.clientWidth;\n  const maxTop = node.scrollHeight - node.clientHeight;\n  const isRtl = dir === \"rtl\";\n  let targetScrollTop;\n  let targetScrollLeft;\n  switch (edge) {\n    case \"top\":\n      targetScrollTop = 0;\n      break;\n    case \"bottom\":\n      targetScrollTop = maxTop;\n      break;\n    case \"left\":\n      if (isRtl) {\n        const negative = node.scrollLeft <= 0;\n        targetScrollLeft = negative ? -maxLeft : 0;\n      } else {\n        targetScrollLeft = 0;\n      }\n      break;\n    case \"right\":\n      if (isRtl) {\n        const negative = node.scrollLeft <= 0;\n        targetScrollLeft = negative ? 0 : maxLeft;\n      } else {\n        targetScrollLeft = maxLeft;\n      }\n      break;\n  }\n  if (behavior === \"smooth\") {\n    smoothScroll(node, { top: targetScrollTop, left: targetScrollLeft, easing, duration });\n  } else {\n    const options = utils.compact({ left: targetScrollLeft, top: targetScrollTop, behavior });\n    node.scrollTo(options);\n  }\n}\n\n// src/scroll-area.connect.ts\nfunction connect(service, normalize) {\n  const { state, send, context, prop, scope } = service;\n  const dragging = state.matches(\"dragging\");\n  const hovering = context.get(\"hovering\");\n  const cornerSize = context.get(\"cornerSize\");\n  const thumbSize = context.get(\"thumbSize\");\n  const hiddenState = context.get(\"hiddenState\");\n  const atSides = context.get(\"atSides\");\n  return {\n    isAtTop: atSides.top,\n    isAtBottom: atSides.bottom,\n    isAtLeft: atSides.left,\n    isAtRight: atSides.right,\n    hasOverflowX: !hiddenState.scrollbarXHidden,\n    hasOverflowY: !hiddenState.scrollbarYHidden,\n    getScrollProgress() {\n      return getScrollProgress(getViewportEl(scope), 0);\n    },\n    scrollToEdge(details) {\n      const { edge, behavior } = details;\n      return scrollToEdge(getViewportEl(scope), edge, prop(\"dir\"), behavior);\n    },\n    scrollTo(details) {\n      return scrollTo(getViewportEl(scope), details);\n    },\n    getScrollbarState(props2) {\n      const horizontal = props2.orientation === \"horizontal\";\n      return {\n        hovering,\n        dragging,\n        scrolling: context.get(horizontal ? \"scrollingX\" : \"scrollingY\"),\n        hidden: horizontal ? hiddenState.scrollbarXHidden : hiddenState.scrollbarYHidden\n      };\n    },\n    getRootProps() {\n      return normalize.element({\n        ...parts.root.attrs,\n        id: getRootId(scope),\n        dir: prop(\"dir\"),\n        role: \"presentation\",\n        \"data-overflow-x\": domQuery.dataAttr(!hiddenState.scrollbarXHidden),\n        \"data-overflow-y\": domQuery.dataAttr(!hiddenState.scrollbarYHidden),\n        onPointerEnter(event) {\n          const target = domQuery.getEventTarget(event);\n          if (!domQuery.contains(event.currentTarget, target)) return;\n          send({ type: \"root.pointerenter\", pointerType: event.pointerType });\n        },\n        onPointerMove(event) {\n          const target = domQuery.getEventTarget(event);\n          if (!domQuery.contains(event.currentTarget, target)) return;\n          send({ type: \"root.pointerenter\", pointerType: event.pointerType });\n        },\n        onPointerDown({ pointerType }) {\n          send({ type: \"root.pointerdown\", pointerType });\n        },\n        onPointerLeave(event) {\n          if (domQuery.contains(event.currentTarget, event.relatedTarget)) return;\n          send({ type: \"root.pointerleave\" });\n        },\n        style: {\n          position: \"relative\",\n          \"--corner-width\": utils.toPx(cornerSize?.width),\n          \"--corner-height\": utils.toPx(cornerSize?.height),\n          \"--thumb-width\": utils.toPx(thumbSize?.width),\n          \"--thumb-height\": utils.toPx(thumbSize?.height)\n        }\n      });\n    },\n    getViewportProps() {\n      const handleUserInteraction = () => {\n        send({ type: \"user.scroll\" });\n      };\n      return normalize.element({\n        ...parts.viewport.attrs,\n        role: \"presentation\",\n        \"data-ownedby\": getRootId(scope),\n        id: getViewportId(scope),\n        \"data-at-top\": domQuery.dataAttr(atSides.top),\n        \"data-at-bottom\": domQuery.dataAttr(atSides.bottom),\n        \"data-at-left\": domQuery.dataAttr(atSides.left),\n        \"data-at-right\": domQuery.dataAttr(atSides.right),\n        \"data-overflow-x\": domQuery.dataAttr(!hiddenState.scrollbarXHidden),\n        \"data-overflow-y\": domQuery.dataAttr(!hiddenState.scrollbarYHidden),\n        tabIndex: hiddenState.scrollbarXHidden || hiddenState.scrollbarYHidden ? void 0 : 0,\n        style: {\n          overflow: \"auto\"\n        },\n        onScroll(event) {\n          send({ type: \"viewport.scroll\", target: event.currentTarget });\n        },\n        onWheel: handleUserInteraction,\n        onTouchMove: handleUserInteraction,\n        onPointerMove: handleUserInteraction,\n        onPointerEnter: handleUserInteraction,\n        onKeyDown: handleUserInteraction\n      });\n    },\n    getContentProps() {\n      return normalize.element({\n        ...parts.content.attrs,\n        id: getContentId(scope),\n        role: \"presentation\",\n        \"data-overflow-x\": domQuery.dataAttr(!hiddenState.scrollbarXHidden),\n        \"data-overflow-y\": domQuery.dataAttr(!hiddenState.scrollbarYHidden),\n        style: {\n          minWidth: \"fit-content\"\n        }\n      });\n    },\n    getScrollbarProps(props2 = {}) {\n      const { orientation = \"vertical\" } = props2;\n      return normalize.element({\n        ...parts.scrollbar.attrs,\n        \"data-ownedby\": getRootId(scope),\n        \"data-orientation\": orientation,\n        \"data-scrolling\": domQuery.dataAttr(context.get(orientation === \"horizontal\" ? \"scrollingX\" : \"scrollingY\")),\n        \"data-hover\": domQuery.dataAttr(hovering),\n        \"data-dragging\": domQuery.dataAttr(dragging),\n        \"data-overflow-x\": domQuery.dataAttr(!hiddenState.scrollbarXHidden),\n        \"data-overflow-y\": domQuery.dataAttr(!hiddenState.scrollbarYHidden),\n        onPointerUp() {\n          send({ type: \"scrollbar.pointerup\", orientation });\n        },\n        onPointerDown(event) {\n          if (event.button !== 0) {\n            return;\n          }\n          if (event.currentTarget !== event.target) {\n            return;\n          }\n          const point = domQuery.getEventPoint(event);\n          send({ type: \"scrollbar.pointerdown\", orientation, point });\n          event.stopPropagation();\n        },\n        style: {\n          position: \"absolute\",\n          touchAction: \"none\",\n          WebkitUserSelect: \"none\",\n          userSelect: \"none\",\n          ...orientation === \"vertical\" && {\n            top: 0,\n            bottom: `var(--corner-height)`,\n            insetInlineEnd: 0\n          },\n          ...orientation === \"horizontal\" && {\n            insetInlineStart: 0,\n            insetInlineEnd: `var(--corner-width)`,\n            bottom: 0\n          }\n        }\n      });\n    },\n    getThumbProps(props2 = {}) {\n      const { orientation = \"vertical\" } = props2;\n      return normalize.element({\n        ...parts.thumb.attrs,\n        \"data-ownedby\": getRootId(scope),\n        \"data-orientation\": orientation,\n        \"data-hover\": domQuery.dataAttr(hovering),\n        \"data-dragging\": domQuery.dataAttr(dragging),\n        onPointerDown(event) {\n          if (event.button !== 0) return;\n          const point = domQuery.getEventPoint(event);\n          send({ type: \"thumb.pointerdown\", orientation, point });\n        },\n        style: {\n          ...orientation === \"vertical\" && {\n            height: \"var(--thumb-height)\"\n          },\n          ...orientation === \"horizontal\" && {\n            width: \"var(--thumb-width)\"\n          }\n        }\n      });\n    },\n    getCornerProps() {\n      return normalize.element({\n        ...parts.corner.attrs,\n        \"data-ownedby\": getRootId(scope),\n        \"data-hover\": domQuery.dataAttr(hovering),\n        \"data-state\": hiddenState.cornerHidden ? \"hidden\" : \"visible\",\n        \"data-overflow-x\": domQuery.dataAttr(!hiddenState.scrollbarXHidden),\n        \"data-overflow-y\": domQuery.dataAttr(!hiddenState.scrollbarYHidden),\n        style: {\n          position: \"absolute\",\n          bottom: 0,\n          insetInlineEnd: 0,\n          width: \"var(--corner-width)\",\n          height: \"var(--corner-height)\"\n        }\n      });\n    }\n  };\n}\nfunction getScrollOffset(element, prop, axis) {\n  if (!element) return 0;\n  const styles = domQuery.getComputedStyle(element);\n  const propAxis = axis === \"x\" ? \"Inline\" : \"Block\";\n  if (axis === \"x\" && prop === \"margin\") {\n    return parseFloat(styles[`${prop}InlineStart`]) * 2;\n  }\n  return parseFloat(styles[`${prop}${propAxis}Start`]) + parseFloat(styles[`${prop}${propAxis}End`]);\n}\n\n// src/utils/scroll-sides.ts\nfunction getScrollSides(node, dir) {\n  const scrollTop = node.scrollTop;\n  const scrollLeft = node.scrollLeft;\n  const isRtl = dir === \"rtl\";\n  const threshold = 1;\n  const hasVerticalScroll = node.scrollHeight - node.clientHeight > threshold;\n  const hasHorizontalScroll = node.scrollWidth - node.clientWidth > threshold;\n  const maxScrollLeft = node.scrollWidth - node.clientWidth;\n  const maxScrollTop = node.scrollHeight - node.clientHeight;\n  let atLeft = false;\n  let atRight = false;\n  let atTop = false;\n  let atBottom = false;\n  if (hasHorizontalScroll) {\n    if (isRtl) {\n      if (scrollLeft <= 0) {\n        atLeft = Math.abs(scrollLeft) >= maxScrollLeft - threshold;\n        atRight = Math.abs(scrollLeft) <= threshold;\n      } else {\n        atLeft = scrollLeft <= threshold;\n        atRight = scrollLeft >= maxScrollLeft - threshold;\n      }\n    } else {\n      atLeft = scrollLeft <= threshold;\n      atRight = scrollLeft >= maxScrollLeft - threshold;\n    }\n  }\n  if (hasVerticalScroll) {\n    atTop = scrollTop <= threshold;\n    atBottom = scrollTop >= maxScrollTop - threshold;\n  }\n  return {\n    top: atTop,\n    right: atRight,\n    bottom: atBottom,\n    left: atLeft\n  };\n}\n\n// src/utils/timeout.ts\nvar EMPTY = 0;\nvar Timeout = class {\n  constructor() {\n    __publicField(this, \"currentId\", EMPTY);\n    __publicField(this, \"clear\", () => {\n      if (this.currentId !== EMPTY) {\n        clearTimeout(this.currentId);\n        this.currentId = EMPTY;\n      }\n    });\n    __publicField(this, \"disposeEffect\", () => {\n      return this.clear;\n    });\n  }\n  start(delay, fn) {\n    this.clear();\n    this.currentId = setTimeout(() => {\n      this.currentId = EMPTY;\n      fn();\n    }, delay);\n  }\n  isStarted() {\n    return this.currentId !== EMPTY;\n  }\n};\n\n// src/scroll-area.machine.ts\nvar MIN_THUMB_SIZE = 20;\nvar SCROLL_TIMEOUT = 1e3;\nvar machine = core.createMachine({\n  props({ props: props2 }) {\n    utils.ensureProps(props2, [\"id\"]);\n    return props2;\n  },\n  context({ bindable }) {\n    return {\n      scrollingX: bindable(() => ({ defaultValue: false })),\n      scrollingY: bindable(() => ({ defaultValue: false })),\n      hovering: bindable(() => ({ defaultValue: false })),\n      dragging: bindable(() => ({ defaultValue: false })),\n      touchModality: bindable(() => ({ defaultValue: false })),\n      atSides: bindable(() => ({\n        defaultValue: { top: true, right: false, bottom: false, left: true }\n      })),\n      cornerSize: bindable(() => ({\n        defaultValue: { width: 0, height: 0 }\n      })),\n      thumbSize: bindable(() => ({\n        defaultValue: { width: 0, height: 0 }\n      })),\n      hiddenState: bindable(() => ({\n        defaultValue: {\n          scrollbarYHidden: false,\n          scrollbarXHidden: false,\n          cornerHidden: false\n        },\n        hash(a) {\n          return `Y:${a.scrollbarYHidden} X:${a.scrollbarXHidden} C:${a.cornerHidden}`;\n        }\n      }))\n    };\n  },\n  refs() {\n    return {\n      orientation: \"vertical\",\n      scrollPosition: { x: 0, y: 0 },\n      scrollYTimeout: new Timeout(),\n      scrollXTimeout: new Timeout(),\n      scrollEndTimeout: new Timeout(),\n      startX: 0,\n      startY: 0,\n      startScrollTop: 0,\n      startScrollLeft: 0,\n      programmaticScroll: true\n    };\n  },\n  initialState() {\n    return \"idle\";\n  },\n  watch({ track, prop, context, send }) {\n    track([() => prop(\"dir\"), () => context.hash(\"hiddenState\")], () => {\n      send({ type: \"thumb.measure\" });\n    });\n  },\n  effects: [\"trackContentResize\", \"trackViewportVisibility\", \"trackWheelEvent\"],\n  entry: [\"checkHovering\"],\n  exit: [\"clearTimeouts\"],\n  on: {\n    \"thumb.measure\": {\n      actions: [\"setThumbSize\"]\n    },\n    \"viewport.scroll\": {\n      actions: [\"setThumbSize\", \"setScrolling\", \"setProgrammaticScroll\"]\n    },\n    \"root.pointerenter\": {\n      actions: [\"setTouchModality\", \"setHovering\"]\n    },\n    \"root.pointerdown\": {\n      actions: [\"setTouchModality\"]\n    },\n    \"root.pointerleave\": {\n      actions: [\"clearHovering\"]\n    }\n  },\n  states: {\n    idle: {\n      on: {\n        \"scrollbar.pointerdown\": {\n          target: \"dragging\",\n          actions: [\"scrollToPointer\", \"startDragging\"]\n        },\n        \"thumb.pointerdown\": {\n          target: \"dragging\",\n          actions: [\"startDragging\"]\n        }\n      }\n    },\n    dragging: {\n      effects: [\"trackPointerMove\"],\n      on: {\n        \"thumb.pointermove\": {\n          actions: [\"setDraggingScroll\"]\n        },\n        \"scrollbar.pointerup\": {\n          target: \"idle\",\n          actions: [\"stopDragging\"]\n        },\n        \"thumb.pointerup\": {\n          target: \"idle\",\n          actions: [\"clearScrolling\", \"stopDragging\"]\n        }\n      }\n    }\n  },\n  implementations: {\n    actions: {\n      setTouchModality({ context, event }) {\n        context.set(\"touchModality\", event.pointerType === \"touch\");\n      },\n      setHovering({ context }) {\n        context.set(\"hovering\", true);\n      },\n      clearHovering({ context }) {\n        context.set(\"hovering\", false);\n      },\n      setProgrammaticScroll({ refs }) {\n        const scrollEndTimeout = refs.get(\"scrollEndTimeout\");\n        scrollEndTimeout.start(100, () => {\n          refs.set(\"programmaticScroll\", true);\n        });\n      },\n      clearScrolling({ context, event }) {\n        context.set(event.orientation === \"vertical\" ? \"scrollingY\" : \"scrollingX\", false);\n      },\n      setThumbSize({ context, scope, prop }) {\n        const viewportEl = getViewportEl(scope);\n        if (!viewportEl) return;\n        const scrollableContentHeight = viewportEl.scrollHeight;\n        const scrollableContentWidth = viewportEl.scrollWidth;\n        if (scrollableContentHeight === 0 || scrollableContentWidth === 0) return;\n        const scrollbarYEl = getScrollbarYEl(scope);\n        const scrollbarXEl = getScrollbarXEl(scope);\n        const thumbYEl = getThumbYEl(scope);\n        const thumbXEl = getThumbXEl(scope);\n        const viewportHeight = viewportEl.clientHeight;\n        const viewportWidth = viewportEl.clientWidth;\n        const scrollTop = viewportEl.scrollTop;\n        const scrollLeft = viewportEl.scrollLeft;\n        const scrollbarYHidden = viewportHeight >= scrollableContentHeight;\n        const scrollbarXHidden = viewportWidth >= scrollableContentWidth;\n        const ratioX = viewportWidth / scrollableContentWidth;\n        const ratioY = viewportHeight / scrollableContentHeight;\n        const nextWidth = scrollbarXHidden ? 0 : viewportWidth;\n        const nextHeight = scrollbarYHidden ? 0 : viewportHeight;\n        const scrollbarXOffset = getScrollOffset(scrollbarXEl, \"padding\", \"x\");\n        const scrollbarYOffset = getScrollOffset(scrollbarYEl, \"padding\", \"y\");\n        const thumbXOffset = getScrollOffset(thumbXEl, \"margin\", \"x\");\n        const thumbYOffset = getScrollOffset(thumbYEl, \"margin\", \"y\");\n        const idealNextWidth = nextWidth - scrollbarXOffset - thumbXOffset;\n        const idealNextHeight = nextHeight - scrollbarYOffset - thumbYOffset;\n        const maxNextWidth = scrollbarXEl ? Math.min(scrollbarXEl.offsetWidth, idealNextWidth) : idealNextWidth;\n        const maxNextHeight = scrollbarYEl ? Math.min(scrollbarYEl.offsetHeight, idealNextHeight) : idealNextHeight;\n        const clampedNextWidth = Math.max(MIN_THUMB_SIZE, maxNextWidth * ratioX);\n        const clampedNextHeight = Math.max(MIN_THUMB_SIZE, maxNextHeight * ratioY);\n        context.set(\"thumbSize\", (prevSize) => {\n          if (prevSize.height === clampedNextHeight && prevSize.width === clampedNextWidth) {\n            return prevSize;\n          }\n          return {\n            width: clampedNextWidth,\n            height: clampedNextHeight\n          };\n        });\n        if (scrollbarYEl && thumbYEl) {\n          const maxThumbOffsetY = scrollbarYEl.offsetHeight - clampedNextHeight - scrollbarYOffset - thumbYOffset;\n          const scrollRatioY = scrollTop / (scrollableContentHeight - viewportHeight);\n          const thumbOffsetY = Math.min(maxThumbOffsetY, Math.max(0, scrollRatioY * maxThumbOffsetY));\n          thumbYEl.style.transform = `translate3d(0,${thumbOffsetY}px,0)`;\n        }\n        if (scrollbarXEl && thumbXEl) {\n          const maxThumbOffsetX = scrollbarXEl.offsetWidth - clampedNextWidth - scrollbarXOffset - thumbXOffset;\n          const scrollRatioX = scrollLeft / (scrollableContentWidth - viewportWidth);\n          const thumbOffsetX = prop(\"dir\") === \"rtl\" ? utils.clampValue(scrollRatioX * maxThumbOffsetX, -maxThumbOffsetX, 0) : utils.clampValue(scrollRatioX * maxThumbOffsetX, 0, maxThumbOffsetX);\n          thumbXEl.style.transform = `translate3d(${thumbOffsetX}px,0,0)`;\n        }\n        const cornerEl = getCornerEl(scope);\n        if (cornerEl) {\n          if (scrollbarXHidden || scrollbarYHidden) {\n            context.set(\"cornerSize\", { width: 0, height: 0 });\n          } else if (!scrollbarXHidden && !scrollbarYHidden) {\n            const width = scrollbarYEl?.offsetWidth || 0;\n            const height = scrollbarXEl?.offsetHeight || 0;\n            context.set(\"cornerSize\", { width, height });\n          }\n        }\n        context.set(\"hiddenState\", (prevState) => {\n          const cornerHidden = scrollbarYHidden || scrollbarXHidden;\n          if (prevState.scrollbarYHidden === scrollbarYHidden && prevState.scrollbarXHidden === scrollbarXHidden && prevState.cornerHidden === cornerHidden) {\n            return prevState;\n          }\n          return {\n            scrollbarYHidden,\n            scrollbarXHidden,\n            cornerHidden\n          };\n        });\n        context.set(\"atSides\", (prev) => {\n          const next = getScrollSides(viewportEl, prop(\"dir\"));\n          if (utils.isEqual(prev, next)) return prev;\n          return next;\n        });\n      },\n      checkHovering({ scope, context }) {\n        const viewportEl = getViewportEl(scope);\n        if (viewportEl?.matches(\":hover\")) {\n          context.set(\"hovering\", true);\n        }\n      },\n      setScrolling({ event, refs, context, prop }) {\n        const scrollPosition = {\n          x: event.target.scrollLeft,\n          y: event.target.scrollTop\n        };\n        const scrollPositionRef = refs.get(\"scrollPosition\");\n        const offsetX = scrollPosition.x - scrollPositionRef.x;\n        const offsetY = scrollPosition.y - scrollPositionRef.y;\n        refs.set(\"scrollPosition\", scrollPosition);\n        context.set(\"atSides\", (prev) => {\n          const next = getScrollSides(event.target, prop(\"dir\"));\n          if (utils.isEqual(prev, next)) return prev;\n          return next;\n        });\n        if (offsetY !== 0) {\n          context.set(\"scrollingY\", true);\n          refs.get(\"scrollYTimeout\").start(SCROLL_TIMEOUT, () => {\n            context.set(\"scrollingY\", false);\n          });\n        }\n        if (offsetX !== 0) {\n          context.set(\"scrollingX\", true);\n          refs.get(\"scrollXTimeout\").start(SCROLL_TIMEOUT, () => {\n            context.set(\"scrollingX\", false);\n          });\n        }\n      },\n      scrollToPointer({ event, scope, prop }) {\n        const viewportEl = getViewportEl(scope);\n        if (!viewportEl) return;\n        const thumbYRef = getThumbYEl(scope);\n        const scrollbarYRef = getScrollbarYEl(scope);\n        const thumbXRef = getThumbXEl(scope);\n        const scrollbarXRef = getScrollbarXEl(scope);\n        const client = event.point;\n        if (thumbYRef && scrollbarYRef && event.orientation === \"vertical\") {\n          const thumbYOffset = getScrollOffset(thumbYRef, \"margin\", \"y\");\n          const scrollbarYOffset = getScrollOffset(scrollbarYRef, \"padding\", \"y\");\n          const thumbHeight = thumbYRef.offsetHeight;\n          const trackRectY = scrollbarYRef.getBoundingClientRect();\n          const clickY = client.y - trackRectY.top - thumbHeight / 2 - scrollbarYOffset + thumbYOffset / 2;\n          const scrollableContentHeight = viewportEl.scrollHeight;\n          const viewportHeight = viewportEl.clientHeight;\n          const maxThumbOffsetY = scrollbarYRef.offsetHeight - thumbHeight - scrollbarYOffset - thumbYOffset;\n          const scrollRatioY = clickY / maxThumbOffsetY;\n          const newScrollTop = scrollRatioY * (scrollableContentHeight - viewportHeight);\n          viewportEl.scrollTop = newScrollTop;\n        }\n        if (thumbXRef && scrollbarXRef && event.orientation === \"horizontal\") {\n          const thumbXOffset = getScrollOffset(thumbXRef, \"margin\", \"x\");\n          const scrollbarXOffset = getScrollOffset(scrollbarXRef, \"padding\", \"x\");\n          const thumbWidth = thumbXRef.offsetWidth;\n          const trackRectX = scrollbarXRef.getBoundingClientRect();\n          const clickX = client.x - trackRectX.left - thumbWidth / 2 - scrollbarXOffset + thumbXOffset / 2;\n          const scrollableContentWidth = viewportEl.scrollWidth;\n          const viewportWidth = viewportEl.clientWidth;\n          const maxThumbOffsetX = scrollbarXRef.offsetWidth - thumbWidth - scrollbarXOffset - thumbXOffset;\n          const scrollRatioX = clickX / maxThumbOffsetX;\n          let newScrollLeft;\n          if (prop(\"dir\") === \"rtl\") {\n            newScrollLeft = (1 - scrollRatioX) * (scrollableContentWidth - viewportWidth);\n            if (viewportEl.scrollLeft <= 0) {\n              newScrollLeft = -newScrollLeft;\n            }\n          } else {\n            newScrollLeft = scrollRatioX * (scrollableContentWidth - viewportWidth);\n          }\n          viewportEl.scrollLeft = newScrollLeft;\n        }\n      },\n      startDragging({ event, refs, scope }) {\n        refs.set(\"startX\", event.point.x);\n        refs.set(\"startY\", event.point.y);\n        refs.set(\"orientation\", event.orientation);\n        const viewportEl = getViewportEl(scope);\n        if (!viewportEl) return;\n        refs.set(\"startScrollTop\", viewportEl.scrollTop);\n        refs.set(\"startScrollLeft\", viewportEl.scrollLeft);\n      },\n      setDraggingScroll({ event, refs, scope, context }) {\n        const startY = refs.get(\"startY\");\n        const startX = refs.get(\"startX\");\n        const startScrollTop = refs.get(\"startScrollTop\");\n        const startScrollLeft = refs.get(\"startScrollLeft\");\n        const client = event.point;\n        const deltaY = client.y - startY;\n        const deltaX = client.x - startX;\n        const viewportEl = getViewportEl(scope);\n        if (!viewportEl) return;\n        const scrollableContentHeight = viewportEl.scrollHeight;\n        const viewportHeight = viewportEl.clientHeight;\n        const scrollableContentWidth = viewportEl.scrollWidth;\n        const viewportWidth = viewportEl.clientWidth;\n        const orientation = refs.get(\"orientation\");\n        const thumbYEl = getThumbYEl(scope);\n        const scrollbarYEl = getScrollbarYEl(scope);\n        if (thumbYEl && scrollbarYEl && orientation === \"vertical\") {\n          const scrollbarYOffset = getScrollOffset(scrollbarYEl, \"padding\", \"y\");\n          const thumbYOffset = getScrollOffset(thumbYEl, \"margin\", \"y\");\n          const thumbHeight = thumbYEl.offsetHeight;\n          const maxThumbOffsetY = scrollbarYEl.offsetHeight - thumbHeight - scrollbarYOffset - thumbYOffset;\n          const scrollRatioY = deltaY / maxThumbOffsetY;\n          viewportEl.scrollTop = startScrollTop + scrollRatioY * (scrollableContentHeight - viewportHeight);\n          context.set(\"scrollingY\", true);\n          refs.get(\"scrollYTimeout\").start(SCROLL_TIMEOUT, () => {\n            context.set(\"scrollingY\", false);\n          });\n        }\n        const thumbXEl = getThumbXEl(scope);\n        const scrollbarXEl = getScrollbarXEl(scope);\n        if (thumbXEl && scrollbarXEl && orientation === \"horizontal\") {\n          const scrollbarXOffset = getScrollOffset(scrollbarXEl, \"padding\", \"x\");\n          const thumbXOffset = getScrollOffset(thumbXEl, \"margin\", \"x\");\n          const thumbWidth = thumbXEl.offsetWidth;\n          const maxThumbOffsetX = scrollbarXEl.offsetWidth - thumbWidth - scrollbarXOffset - thumbXOffset;\n          const scrollRatioX = deltaX / maxThumbOffsetX;\n          viewportEl.scrollLeft = startScrollLeft + scrollRatioX * (scrollableContentWidth - viewportWidth);\n          context.set(\"scrollingX\", true);\n          refs.get(\"scrollXTimeout\").start(SCROLL_TIMEOUT, () => {\n            context.set(\"scrollingX\", false);\n          });\n        }\n      },\n      stopDragging({ refs }) {\n        refs.set(\"orientation\", null);\n      },\n      clearTimeouts({ refs }) {\n        refs.get(\"scrollYTimeout\").clear();\n        refs.get(\"scrollXTimeout\").clear();\n        refs.get(\"scrollEndTimeout\").clear();\n      }\n    },\n    effects: {\n      trackContentResize({ scope, send }) {\n        const contentEl = getContentEl(scope);\n        const rootEl = getRootEl(scope);\n        if (!contentEl || !rootEl) return;\n        const win = scope.getWin();\n        const obs = new win.ResizeObserver(() => {\n          setTimeout(() => {\n            send({ type: \"thumb.measure\" });\n          }, 1);\n        });\n        obs.observe(contentEl);\n        obs.observe(rootEl);\n        return () => {\n          obs.disconnect();\n        };\n      },\n      trackViewportVisibility({ scope, send }) {\n        const win = scope.getWin();\n        const viewportEl = getViewportEl(scope);\n        if (!viewportEl) return;\n        const observer = new win.IntersectionObserver((entries) => {\n          entries.forEach((entry) => {\n            if (entry.intersectionRatio > 0) {\n              send({ type: \"thumb.measure\" });\n              observer.disconnect();\n            }\n          });\n        });\n        observer.observe(viewportEl);\n        return () => {\n          observer.disconnect();\n        };\n      },\n      trackWheelEvent({ scope }) {\n        const scrollbarYEl = getScrollbarYEl(scope);\n        const scrollbarXEl = getScrollbarXEl(scope);\n        if (!scrollbarYEl && !scrollbarXEl) return;\n        const onWheel = (event) => {\n          const viewportEl = getViewportEl(scope);\n          if (!viewportEl || event.ctrlKey) return;\n          const orientation = event.currentTarget.dataset.orientation;\n          if (orientation === \"vertical\") {\n            const canScrollY = viewportEl.scrollHeight > viewportEl.clientHeight;\n            const atTop = viewportEl.scrollTop === 0 && event.deltaY < 0;\n            const atBottom = viewportEl.scrollTop === viewportEl.scrollHeight - viewportEl.clientHeight && event.deltaY > 0;\n            const shouldScroll = canScrollY && event.deltaY !== 0 && !(atTop || atBottom);\n            if (!shouldScroll) return;\n            event.preventDefault();\n            viewportEl.scrollTop += event.deltaY;\n          } else if (orientation === \"horizontal\") {\n            const canScrollX = viewportEl.scrollWidth > viewportEl.clientWidth;\n            const atLeft = viewportEl.scrollLeft === 0 && event.deltaX < 0;\n            const atRight = viewportEl.scrollLeft === viewportEl.scrollWidth - viewportEl.clientWidth && event.deltaX > 0;\n            const shouldScroll = canScrollX && event.deltaX !== 0 && !(atLeft || atRight);\n            if (!shouldScroll) return;\n            event.preventDefault();\n            viewportEl.scrollLeft += event.deltaX;\n          }\n        };\n        return utils.callAll(\n          scrollbarYEl && domQuery.addDomEvent(scrollbarYEl, \"wheel\", onWheel, { passive: false }),\n          scrollbarXEl && domQuery.addDomEvent(scrollbarXEl, \"wheel\", onWheel, { passive: false })\n        );\n      },\n      trackPointerMove({ scope, send, refs }) {\n        const doc = scope.getDoc();\n        const orientation = refs.get(\"orientation\");\n        return domQuery.trackPointerMove(doc, {\n          onPointerMove({ point }) {\n            send({ type: \"thumb.pointermove\", orientation, point });\n          },\n          onPointerUp() {\n            send({ type: \"thumb.pointerup\", orientation });\n          }\n        });\n      }\n    }\n  }\n});\nvar props = types.createProps()([\"dir\", \"getRootNode\", \"ids\", \"id\"]);\nvar splitProps = utils.createSplitProps(props);\n\nexports.anatomy = anatomy;\nexports.connect = connect;\nexports.machine = machine;\nexports.props = props;\nexports.splitProps = splitProps;\n"]}