commerce-toolkit 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/dist/category-card-link-BqMAG9Op.js +211 -0
  2. package/dist/category-card-link-BqMAG9Op.js.map +1 -0
  3. package/dist/category-card-link-BwSFHFcd.cjs +2 -0
  4. package/dist/category-card-link-BwSFHFcd.cjs.map +1 -0
  5. package/dist/category-card.cjs +1 -1
  6. package/dist/category-card.cjs.map +1 -1
  7. package/dist/category-card.js +23 -218
  8. package/dist/category-card.js.map +1 -1
  9. package/dist/checkbox-indicator-GNoyS6OL.cjs +2 -0
  10. package/dist/checkbox-indicator-GNoyS6OL.cjs.map +1 -0
  11. package/dist/checkbox-indicator-os50dewx.js +18 -0
  12. package/dist/checkbox-indicator-os50dewx.js.map +1 -0
  13. package/dist/{checkbox-indicator-Cfw9uH_b.js → checkbox-root-B9W2Y8rY.js} +74 -85
  14. package/dist/checkbox-root-B9W2Y8rY.js.map +1 -0
  15. package/dist/checkbox-root-g9HcYZCP.cjs +2 -0
  16. package/dist/checkbox-root-g9HcYZCP.cjs.map +1 -0
  17. package/dist/checkbox.cjs +1 -1
  18. package/dist/checkbox.js +5 -4
  19. package/dist/checkbox.js.map +1 -1
  20. package/dist/compare-card-specs-empty-BMLUSqQL.js +281 -0
  21. package/dist/compare-card-specs-empty-BMLUSqQL.js.map +1 -0
  22. package/dist/compare-card-specs-empty-ar5CneZv.cjs +2 -0
  23. package/dist/compare-card-specs-empty-ar5CneZv.cjs.map +1 -0
  24. package/dist/compare-card.cjs +2 -0
  25. package/dist/compare-card.cjs.map +1 -0
  26. package/dist/compare-card.js +65 -0
  27. package/dist/compare-card.js.map +1 -0
  28. package/dist/components/accordion/index.d.ts.map +1 -1
  29. package/dist/components/alert/index.d.ts.map +1 -1
  30. package/dist/components/banner/index.d.ts.map +1 -1
  31. package/dist/components/blog-post-card/index.d.ts.map +1 -1
  32. package/dist/components/card/index.d.ts.map +1 -1
  33. package/dist/components/carousel/index.d.ts.map +1 -1
  34. package/dist/components/checkbox/index.d.ts.map +1 -1
  35. package/dist/components/chip/index.d.ts.map +1 -1
  36. package/dist/components/compare-card/compare-card.d.ts +45 -0
  37. package/dist/components/compare-card/compare-card.d.ts.map +1 -0
  38. package/dist/components/compare-card/index.d.ts +3 -0
  39. package/dist/components/compare-card/index.d.ts.map +1 -0
  40. package/dist/components/compare-card/primitives/compare-card-description-content.d.ts +4 -0
  41. package/dist/components/compare-card/primitives/compare-card-description-content.d.ts.map +1 -0
  42. package/dist/components/compare-card/primitives/compare-card-description-empty.d.ts +4 -0
  43. package/dist/components/compare-card/primitives/compare-card-description-empty.d.ts.map +1 -0
  44. package/dist/components/compare-card/primitives/compare-card-description-label.d.ts +4 -0
  45. package/dist/components/compare-card/primitives/compare-card-description-label.d.ts.map +1 -0
  46. package/dist/components/compare-card/primitives/compare-card-description.d.ts +4 -0
  47. package/dist/components/compare-card/primitives/compare-card-description.d.ts.map +1 -0
  48. package/dist/components/compare-card/primitives/compare-card-form-input.d.ts +4 -0
  49. package/dist/components/compare-card/primitives/compare-card-form-input.d.ts.map +1 -0
  50. package/dist/components/compare-card/primitives/compare-card-form.d.ts +4 -0
  51. package/dist/components/compare-card/primitives/compare-card-form.d.ts.map +1 -0
  52. package/dist/components/compare-card/primitives/compare-card-link.d.ts +5 -0
  53. package/dist/components/compare-card/primitives/compare-card-link.d.ts.map +1 -0
  54. package/dist/components/compare-card/primitives/compare-card-product.d.ts +4 -0
  55. package/dist/components/compare-card/primitives/compare-card-product.d.ts.map +1 -0
  56. package/dist/components/compare-card/primitives/compare-card-rating-empty.d.ts +4 -0
  57. package/dist/components/compare-card/primitives/compare-card-rating-empty.d.ts.map +1 -0
  58. package/dist/components/compare-card/primitives/compare-card-rating-label.d.ts +4 -0
  59. package/dist/components/compare-card/primitives/compare-card-rating-label.d.ts.map +1 -0
  60. package/dist/components/compare-card/primitives/compare-card-rating.d.ts +4 -0
  61. package/dist/components/compare-card/primitives/compare-card-rating.d.ts.map +1 -0
  62. package/dist/components/compare-card/primitives/compare-card-root.d.ts +4 -0
  63. package/dist/components/compare-card/primitives/compare-card-root.d.ts.map +1 -0
  64. package/dist/components/compare-card/primitives/compare-card-skeleton.d.ts +4 -0
  65. package/dist/components/compare-card/primitives/compare-card-skeleton.d.ts.map +1 -0
  66. package/dist/components/compare-card/primitives/compare-card-specs-definition.d.ts +4 -0
  67. package/dist/components/compare-card/primitives/compare-card-specs-definition.d.ts.map +1 -0
  68. package/dist/components/compare-card/primitives/compare-card-specs-empty.d.ts +4 -0
  69. package/dist/components/compare-card/primitives/compare-card-specs-empty.d.ts.map +1 -0
  70. package/dist/components/compare-card/primitives/compare-card-specs-label.d.ts +4 -0
  71. package/dist/components/compare-card/primitives/compare-card-specs-label.d.ts.map +1 -0
  72. package/dist/components/compare-card/primitives/compare-card-specs-list.d.ts +4 -0
  73. package/dist/components/compare-card/primitives/compare-card-specs-list.d.ts.map +1 -0
  74. package/dist/components/compare-card/primitives/compare-card-specs-term.d.ts +4 -0
  75. package/dist/components/compare-card/primitives/compare-card-specs-term.d.ts.map +1 -0
  76. package/dist/components/compare-card/primitives/compare-card-specs.d.ts +4 -0
  77. package/dist/components/compare-card/primitives/compare-card-specs.d.ts.map +1 -0
  78. package/dist/components/compare-card/primitives.d.ts +20 -0
  79. package/dist/components/compare-card/primitives.d.ts.map +1 -0
  80. package/dist/components/compare-drawer/index.d.ts.map +1 -1
  81. package/dist/components/cursor-pagination/index.d.ts +1 -1
  82. package/dist/components/cursor-pagination/index.d.ts.map +1 -1
  83. package/dist/components/dropdown-menu/index.d.ts.map +1 -1
  84. package/dist/components/favorite/index.d.ts.map +1 -1
  85. package/dist/components/icon/index.d.ts.map +1 -1
  86. package/dist/components/label/index.d.ts.map +1 -1
  87. package/dist/components/logo/index.d.ts.map +1 -1
  88. package/dist/components/modal/index.d.ts.map +1 -1
  89. package/dist/components/offset-pagination/index.d.ts +1 -1
  90. package/dist/components/offset-pagination/index.d.ts.map +1 -1
  91. package/dist/components/price/index.d.ts.map +1 -1
  92. package/dist/components/product-card/index.d.ts.map +1 -1
  93. package/dist/components/rating/index.d.ts.map +1 -1
  94. package/dist/components/reveal/index.d.ts.map +1 -1
  95. package/dist/components/scroll-area/index.d.ts.map +1 -1
  96. package/dist/components/side-panel/index.d.ts +3 -0
  97. package/dist/components/side-panel/index.d.ts.map +1 -0
  98. package/dist/components/side-panel/primitives/side-panel-body.d.ts +4 -0
  99. package/dist/components/side-panel/primitives/side-panel-body.d.ts.map +1 -0
  100. package/dist/components/side-panel/primitives/side-panel-close.d.ts +5 -0
  101. package/dist/components/side-panel/primitives/side-panel-close.d.ts.map +1 -0
  102. package/dist/components/side-panel/primitives/side-panel-content.d.ts +5 -0
  103. package/dist/components/side-panel/primitives/side-panel-content.d.ts.map +1 -0
  104. package/dist/components/side-panel/primitives/side-panel-header.d.ts +4 -0
  105. package/dist/components/side-panel/primitives/side-panel-header.d.ts.map +1 -0
  106. package/dist/components/side-panel/primitives/side-panel-overlay.d.ts +5 -0
  107. package/dist/components/side-panel/primitives/side-panel-overlay.d.ts.map +1 -0
  108. package/dist/components/side-panel/primitives/side-panel-portal.d.ts +5 -0
  109. package/dist/components/side-panel/primitives/side-panel-portal.d.ts.map +1 -0
  110. package/dist/components/side-panel/primitives/side-panel-root.d.ts +5 -0
  111. package/dist/components/side-panel/primitives/side-panel-root.d.ts.map +1 -0
  112. package/dist/components/side-panel/primitives/side-panel-title.d.ts +5 -0
  113. package/dist/components/side-panel/primitives/side-panel-title.d.ts.map +1 -0
  114. package/dist/components/side-panel/primitives/side-panel-trigger.d.ts +5 -0
  115. package/dist/components/side-panel/primitives/side-panel-trigger.d.ts.map +1 -0
  116. package/dist/components/side-panel/primitives.d.ts +10 -0
  117. package/dist/components/side-panel/primitives.d.ts.map +1 -0
  118. package/dist/components/side-panel/side-panel.d.ts +28 -0
  119. package/dist/components/side-panel/side-panel.d.ts.map +1 -0
  120. package/dist/components/skeleton/index.d.ts.map +1 -1
  121. package/dist/components/tabs/index.d.ts.map +1 -1
  122. package/dist/{dropdown-menu-node-C7Z-zRyr.js → dropdown-menu-node-4Pe3uXjC.js} +2 -2
  123. package/dist/{dropdown-menu-node-C7Z-zRyr.js.map → dropdown-menu-node-4Pe3uXjC.js.map} +1 -1
  124. package/dist/{dropdown-menu-node-BB7FJzMX.cjs → dropdown-menu-node-zOplWIzZ.cjs} +2 -2
  125. package/dist/{dropdown-menu-node-BB7FJzMX.cjs.map → dropdown-menu-node-zOplWIzZ.cjs.map} +1 -1
  126. package/dist/dropdown-menu.cjs +1 -1
  127. package/dist/dropdown-menu.js +1 -1
  128. package/dist/index-BppAzNV8.cjs +6 -0
  129. package/dist/index-BppAzNV8.cjs.map +1 -0
  130. package/dist/index-ChSlzMYI.js +242 -0
  131. package/dist/index-ChSlzMYI.js.map +1 -0
  132. package/dist/index.cjs +10 -5
  133. package/dist/index.cjs.map +1 -1
  134. package/dist/index.d.ts +26 -19
  135. package/dist/index.d.ts.map +1 -1
  136. package/dist/index.js +1275 -1133
  137. package/dist/index.js.map +1 -1
  138. package/dist/lib/index.d.ts.map +1 -1
  139. package/dist/modal-title-CuB6IpxH.cjs +2 -0
  140. package/dist/modal-title-CuB6IpxH.cjs.map +1 -0
  141. package/dist/modal-title-MIH3Xsp2.js +58 -0
  142. package/dist/modal-title-MIH3Xsp2.js.map +1 -0
  143. package/dist/modal.cjs +1 -1
  144. package/dist/modal.js +1 -1
  145. package/dist/offset-pagination-ellipsis-DWDhFCgW.js +79 -0
  146. package/dist/offset-pagination-ellipsis-DWDhFCgW.js.map +1 -0
  147. package/dist/offset-pagination-ellipsis-MCFHXB-5.cjs +2 -0
  148. package/dist/offset-pagination-ellipsis-MCFHXB-5.cjs.map +1 -0
  149. package/dist/offset-pagination.cjs +1 -1
  150. package/dist/offset-pagination.cjs.map +1 -1
  151. package/dist/offset-pagination.js +6 -76
  152. package/dist/offset-pagination.js.map +1 -1
  153. package/dist/product-card-label-CJmC9ICf.js +312 -0
  154. package/dist/product-card-label-CJmC9ICf.js.map +1 -0
  155. package/dist/product-card-label-D43AXtRL.cjs +2 -0
  156. package/dist/product-card-label-D43AXtRL.cjs.map +1 -0
  157. package/dist/product-card-root-4Xz4-pdL.js +43 -0
  158. package/dist/product-card-root-4Xz4-pdL.js.map +1 -0
  159. package/dist/product-card-root-BMTVhhFp.cjs +2 -0
  160. package/dist/product-card-root-BMTVhhFp.cjs.map +1 -0
  161. package/dist/product-card-skeleton-CCQkDMNl.cjs +2 -0
  162. package/dist/product-card-skeleton-CCQkDMNl.cjs.map +1 -0
  163. package/dist/product-card-skeleton-Dkqf-bfA.js +34 -0
  164. package/dist/product-card-skeleton-Dkqf-bfA.js.map +1 -0
  165. package/dist/product-card.cjs +1 -1
  166. package/dist/product-card.cjs.map +1 -1
  167. package/dist/product-card.js +25 -326
  168. package/dist/product-card.js.map +1 -1
  169. package/dist/{scroll-area-corner-DLTYMMl-.js → scroll-area-corner-Bq7PB1XK.js} +2 -2
  170. package/dist/{scroll-area-corner-DLTYMMl-.js.map → scroll-area-corner-Bq7PB1XK.js.map} +1 -1
  171. package/dist/{scroll-area-corner-CEc2oMZt.cjs → scroll-area-corner-DsyetkPH.cjs} +2 -2
  172. package/dist/{scroll-area-corner-CEc2oMZt.cjs.map → scroll-area-corner-DsyetkPH.cjs.map} +1 -1
  173. package/dist/scroll-area.cjs +1 -1
  174. package/dist/scroll-area.js +1 -1
  175. package/dist/side-panel-close-Bjcn4BEE.cjs +2 -0
  176. package/dist/side-panel-close-Bjcn4BEE.cjs.map +1 -0
  177. package/dist/side-panel-close-DVJwOxdM.js +86 -0
  178. package/dist/side-panel-close-DVJwOxdM.js.map +1 -0
  179. package/dist/side-panel.cjs +2 -0
  180. package/dist/side-panel.cjs.map +1 -0
  181. package/dist/side-panel.js +13 -0
  182. package/dist/side-panel.js.map +1 -0
  183. package/package.json +21 -1
  184. package/dist/arrow-up-right-Cfau6CiE.cjs +0 -7
  185. package/dist/arrow-up-right-Cfau6CiE.cjs.map +0 -1
  186. package/dist/arrow-up-right-D7smpXBs.js +0 -16
  187. package/dist/arrow-up-right-D7smpXBs.js.map +0 -1
  188. package/dist/checkbox-indicator-BgXRGvAh.cjs +0 -2
  189. package/dist/checkbox-indicator-BgXRGvAh.cjs.map +0 -1
  190. package/dist/checkbox-indicator-Cfw9uH_b.js.map +0 -1
  191. package/dist/modal-title-B2Yr1KDi.js +0 -288
  192. package/dist/modal-title-B2Yr1KDi.js.map +0 -1
  193. package/dist/modal-title-CpD_Fors.cjs +0 -6
  194. package/dist/modal-title-CpD_Fors.cjs.map +0 -1
  195. package/dist/price-BwaeTmkR.js +0 -53
  196. package/dist/price-BwaeTmkR.js.map +0 -1
  197. package/dist/price-CdK2ye4P.cjs +0 -2
  198. package/dist/price-CdK2ye4P.cjs.map +0 -1
  199. package/dist/primitives--2McVg9Z.js +0 -15
  200. package/dist/primitives--2McVg9Z.js.map +0 -1
  201. package/dist/primitives-DmqzDKi2.cjs +0 -2
  202. package/dist/primitives-DmqzDKi2.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"scroll-area-corner-DLTYMMl-.js","sources":["../node_modules/.pnpm/@radix-ui+number@1.1.1/node_modules/@radix-ui/number/dist/index.mjs","../node_modules/.pnpm/@radix-ui+react-scroll-area@1.2.10_@types+react-dom@19.2.2_@types+react@19.2.2__@types+react@_m2oggim3nwx6rzalxypqu3tc4m/node_modules/@radix-ui/react-scroll-area/dist/index.mjs","../src/components/scroll-area/primitives/scroll-area-root.tsx","../src/components/scroll-area/primitives/scroll-area-provider.tsx","../src/components/scroll-area/primitives/scroll-area-viewport.tsx","../src/components/scroll-area/primitives/scroll-area-bar.tsx","../src/components/scroll-area/primitives/scroll-area-thumb.tsx","../src/components/scroll-area/primitives/scroll-area-corner.tsx"],"sourcesContent":["// packages/core/number/src/number.ts\nfunction clamp(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\nexport {\n clamp\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/scroll-area.tsx\nimport * as React2 from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\n\n// src/use-state-machine.ts\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// src/scroll-area.tsx\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar SCROLL_AREA_NAME = \"ScrollArea\";\nvar [createScrollAreaContext, createScrollAreaScope] = createContextScope(SCROLL_AREA_NAME);\nvar [ScrollAreaProvider, useScrollAreaContext] = createScrollAreaContext(SCROLL_AREA_NAME);\nvar ScrollArea = React2.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeScrollArea,\n type = \"hover\",\n dir,\n scrollHideDelay = 600,\n ...scrollAreaProps\n } = props;\n const [scrollArea, setScrollArea] = React2.useState(null);\n const [viewport, setViewport] = React2.useState(null);\n const [content, setContent] = React2.useState(null);\n const [scrollbarX, setScrollbarX] = React2.useState(null);\n const [scrollbarY, setScrollbarY] = React2.useState(null);\n const [cornerWidth, setCornerWidth] = React2.useState(0);\n const [cornerHeight, setCornerHeight] = React2.useState(0);\n const [scrollbarXEnabled, setScrollbarXEnabled] = React2.useState(false);\n const [scrollbarYEnabled, setScrollbarYEnabled] = React2.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setScrollArea(node));\n const direction = useDirection(dir);\n return /* @__PURE__ */ jsx(\n ScrollAreaProvider,\n {\n scope: __scopeScrollArea,\n type,\n dir: direction,\n scrollHideDelay,\n scrollArea,\n viewport,\n onViewportChange: setViewport,\n content,\n onContentChange: setContent,\n scrollbarX,\n onScrollbarXChange: setScrollbarX,\n scrollbarXEnabled,\n onScrollbarXEnabledChange: setScrollbarXEnabled,\n scrollbarY,\n onScrollbarYChange: setScrollbarY,\n scrollbarYEnabled,\n onScrollbarYEnabledChange: setScrollbarYEnabled,\n onCornerWidthChange: setCornerWidth,\n onCornerHeightChange: setCornerHeight,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n ...scrollAreaProps,\n ref: composedRefs,\n style: {\n position: \"relative\",\n // Pass corner sizes as CSS vars to reduce re-renders of context consumers\n [\"--radix-scroll-area-corner-width\"]: cornerWidth + \"px\",\n [\"--radix-scroll-area-corner-height\"]: cornerHeight + \"px\",\n ...props.style\n }\n }\n )\n }\n );\n }\n);\nScrollArea.displayName = SCROLL_AREA_NAME;\nvar VIEWPORT_NAME = \"ScrollAreaViewport\";\nvar ScrollAreaViewport = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeScrollArea, children, nonce, ...viewportProps } = props;\n const context = useScrollAreaContext(VIEWPORT_NAME, __scopeScrollArea);\n const ref = React2.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onViewportChange);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n \"style\",\n {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`\n },\n nonce\n }\n ),\n /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-radix-scroll-area-viewport\": \"\",\n ...viewportProps,\n ref: composedRefs,\n style: {\n /**\n * We don't support `visible` because the intention is to have at least one scrollbar\n * if this component is used and `visible` will behave like `auto` in that case\n * https://developer.mozilla.org/en-US/docs/Web/CSS/overflow#description\n *\n * We don't handle `auto` because the intention is for the native implementation\n * to be hidden if using this component. We just want to ensure the node is scrollable\n * so could have used either `scroll` or `auto` here. We picked `scroll` to prevent\n * the browser from having to work out whether to render native scrollbars or not,\n * we tell it to with the intention of hiding them in CSS.\n */\n overflowX: context.scrollbarXEnabled ? \"scroll\" : \"hidden\",\n overflowY: context.scrollbarYEnabled ? \"scroll\" : \"hidden\",\n ...props.style\n },\n children: /* @__PURE__ */ jsx(\"div\", { ref: context.onContentChange, style: { minWidth: \"100%\", display: \"table\" }, children })\n }\n )\n ] });\n }\n);\nScrollAreaViewport.displayName = VIEWPORT_NAME;\nvar SCROLLBAR_NAME = \"ScrollAreaScrollbar\";\nvar ScrollAreaScrollbar = React2.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { onScrollbarXEnabledChange, onScrollbarYEnabledChange } = context;\n const isHorizontal = props.orientation === \"horizontal\";\n React2.useEffect(() => {\n isHorizontal ? onScrollbarXEnabledChange(true) : onScrollbarYEnabledChange(true);\n return () => {\n isHorizontal ? onScrollbarXEnabledChange(false) : onScrollbarYEnabledChange(false);\n };\n }, [isHorizontal, onScrollbarXEnabledChange, onScrollbarYEnabledChange]);\n return context.type === \"hover\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarHover, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"scroll\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarScroll, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"auto\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarAuto, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"always\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarVisible, { ...scrollbarProps, ref: forwardedRef }) : null;\n }\n);\nScrollAreaScrollbar.displayName = SCROLLBAR_NAME;\nvar ScrollAreaScrollbarHover = React2.forwardRef((props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [visible, setVisible] = React2.useState(false);\n React2.useEffect(() => {\n const scrollArea = context.scrollArea;\n let hideTimer = 0;\n if (scrollArea) {\n const handlePointerEnter = () => {\n window.clearTimeout(hideTimer);\n setVisible(true);\n };\n const handlePointerLeave = () => {\n hideTimer = window.setTimeout(() => setVisible(false), context.scrollHideDelay);\n };\n scrollArea.addEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.addEventListener(\"pointerleave\", handlePointerLeave);\n return () => {\n window.clearTimeout(hideTimer);\n scrollArea.removeEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.removeEventListener(\"pointerleave\", handlePointerLeave);\n };\n }\n }, [context.scrollArea, context.scrollHideDelay]);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || visible, children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarAuto,\n {\n \"data-state\": visible ? \"visible\" : \"hidden\",\n ...scrollbarProps,\n ref: forwardedRef\n }\n ) });\n});\nvar ScrollAreaScrollbarScroll = React2.forwardRef((props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const isHorizontal = props.orientation === \"horizontal\";\n const debounceScrollEnd = useDebounceCallback(() => send(\"SCROLL_END\"), 100);\n const [state, send] = useStateMachine(\"hidden\", {\n hidden: {\n SCROLL: \"scrolling\"\n },\n scrolling: {\n SCROLL_END: \"idle\",\n POINTER_ENTER: \"interacting\"\n },\n interacting: {\n SCROLL: \"interacting\",\n POINTER_LEAVE: \"idle\"\n },\n idle: {\n HIDE: \"hidden\",\n SCROLL: \"scrolling\",\n POINTER_ENTER: \"interacting\"\n }\n });\n React2.useEffect(() => {\n if (state === \"idle\") {\n const hideTimer = window.setTimeout(() => send(\"HIDE\"), context.scrollHideDelay);\n return () => window.clearTimeout(hideTimer);\n }\n }, [state, context.scrollHideDelay, send]);\n React2.useEffect(() => {\n const viewport = context.viewport;\n const scrollDirection = isHorizontal ? \"scrollLeft\" : \"scrollTop\";\n if (viewport) {\n let prevScrollPos = viewport[scrollDirection];\n const handleScroll = () => {\n const scrollPos = viewport[scrollDirection];\n const hasScrollInDirectionChanged = prevScrollPos !== scrollPos;\n if (hasScrollInDirectionChanged) {\n send(\"SCROLL\");\n debounceScrollEnd();\n }\n prevScrollPos = scrollPos;\n };\n viewport.addEventListener(\"scroll\", handleScroll);\n return () => viewport.removeEventListener(\"scroll\", handleScroll);\n }\n }, [context.viewport, isHorizontal, send, debounceScrollEnd]);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || state !== \"hidden\", children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarVisible,\n {\n \"data-state\": state === \"hidden\" ? \"hidden\" : \"visible\",\n ...scrollbarProps,\n ref: forwardedRef,\n onPointerEnter: composeEventHandlers(props.onPointerEnter, () => send(\"POINTER_ENTER\")),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, () => send(\"POINTER_LEAVE\"))\n }\n ) });\n});\nvar ScrollAreaScrollbarAuto = React2.forwardRef((props, forwardedRef) => {\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { forceMount, ...scrollbarProps } = props;\n const [visible, setVisible] = React2.useState(false);\n const isHorizontal = props.orientation === \"horizontal\";\n const handleResize = useDebounceCallback(() => {\n if (context.viewport) {\n const isOverflowX = context.viewport.offsetWidth < context.viewport.scrollWidth;\n const isOverflowY = context.viewport.offsetHeight < context.viewport.scrollHeight;\n setVisible(isHorizontal ? isOverflowX : isOverflowY);\n }\n }, 10);\n useResizeObserver(context.viewport, handleResize);\n useResizeObserver(context.content, handleResize);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || visible, children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarVisible,\n {\n \"data-state\": visible ? \"visible\" : \"hidden\",\n ...scrollbarProps,\n ref: forwardedRef\n }\n ) });\n});\nvar ScrollAreaScrollbarVisible = React2.forwardRef((props, forwardedRef) => {\n const { orientation = \"vertical\", ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const thumbRef = React2.useRef(null);\n const pointerOffsetRef = React2.useRef(0);\n const [sizes, setSizes] = React2.useState({\n content: 0,\n viewport: 0,\n scrollbar: { size: 0, paddingStart: 0, paddingEnd: 0 }\n });\n const thumbRatio = getThumbRatio(sizes.viewport, sizes.content);\n const commonProps = {\n ...scrollbarProps,\n sizes,\n onSizesChange: setSizes,\n hasThumb: Boolean(thumbRatio > 0 && thumbRatio < 1),\n onThumbChange: (thumb) => thumbRef.current = thumb,\n onThumbPointerUp: () => pointerOffsetRef.current = 0,\n onThumbPointerDown: (pointerPos) => pointerOffsetRef.current = pointerPos\n };\n function getScrollPosition(pointerPos, dir) {\n return getScrollPositionFromPointer(pointerPos, pointerOffsetRef.current, sizes, dir);\n }\n if (orientation === \"horizontal\") {\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarX,\n {\n ...commonProps,\n ref: forwardedRef,\n onThumbPositionChange: () => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollLeft;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes, context.dir);\n thumbRef.current.style.transform = `translate3d(${offset}px, 0, 0)`;\n }\n },\n onWheelScroll: (scrollPos) => {\n if (context.viewport) context.viewport.scrollLeft = scrollPos;\n },\n onDragScroll: (pointerPos) => {\n if (context.viewport) {\n context.viewport.scrollLeft = getScrollPosition(pointerPos, context.dir);\n }\n }\n }\n );\n }\n if (orientation === \"vertical\") {\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarY,\n {\n ...commonProps,\n ref: forwardedRef,\n onThumbPositionChange: () => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollTop;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes);\n thumbRef.current.style.transform = `translate3d(0, ${offset}px, 0)`;\n }\n },\n onWheelScroll: (scrollPos) => {\n if (context.viewport) context.viewport.scrollTop = scrollPos;\n },\n onDragScroll: (pointerPos) => {\n if (context.viewport) context.viewport.scrollTop = getScrollPosition(pointerPos);\n }\n }\n );\n }\n return null;\n});\nvar ScrollAreaScrollbarX = React2.forwardRef((props, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = React2.useState();\n const ref = React2.useRef(null);\n const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarXChange);\n React2.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarImpl,\n {\n \"data-orientation\": \"horizontal\",\n ...scrollbarProps,\n ref: composeRefs,\n sizes,\n style: {\n bottom: 0,\n left: context.dir === \"rtl\" ? \"var(--radix-scroll-area-corner-width)\" : 0,\n right: context.dir === \"ltr\" ? \"var(--radix-scroll-area-corner-width)\" : 0,\n [\"--radix-scroll-area-thumb-width\"]: getThumbSize(sizes) + \"px\",\n ...props.style\n },\n onThumbPointerDown: (pointerPos) => props.onThumbPointerDown(pointerPos.x),\n onDragScroll: (pointerPos) => props.onDragScroll(pointerPos.x),\n onWheelScroll: (event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollLeft + event.deltaX;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n },\n onResize: () => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollWidth,\n viewport: context.viewport.offsetWidth,\n scrollbar: {\n size: ref.current.clientWidth,\n paddingStart: toInt(computedStyle.paddingLeft),\n paddingEnd: toInt(computedStyle.paddingRight)\n }\n });\n }\n }\n }\n );\n});\nvar ScrollAreaScrollbarY = React2.forwardRef((props, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = React2.useState();\n const ref = React2.useRef(null);\n const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarYChange);\n React2.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarImpl,\n {\n \"data-orientation\": \"vertical\",\n ...scrollbarProps,\n ref: composeRefs,\n sizes,\n style: {\n top: 0,\n right: context.dir === \"ltr\" ? 0 : void 0,\n left: context.dir === \"rtl\" ? 0 : void 0,\n bottom: \"var(--radix-scroll-area-corner-height)\",\n [\"--radix-scroll-area-thumb-height\"]: getThumbSize(sizes) + \"px\",\n ...props.style\n },\n onThumbPointerDown: (pointerPos) => props.onThumbPointerDown(pointerPos.y),\n onDragScroll: (pointerPos) => props.onDragScroll(pointerPos.y),\n onWheelScroll: (event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollTop + event.deltaY;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n },\n onResize: () => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollHeight,\n viewport: context.viewport.offsetHeight,\n scrollbar: {\n size: ref.current.clientHeight,\n paddingStart: toInt(computedStyle.paddingTop),\n paddingEnd: toInt(computedStyle.paddingBottom)\n }\n });\n }\n }\n }\n );\n});\nvar [ScrollbarProvider, useScrollbarContext] = createScrollAreaContext(SCROLLBAR_NAME);\nvar ScrollAreaScrollbarImpl = React2.forwardRef((props, forwardedRef) => {\n const {\n __scopeScrollArea,\n sizes,\n hasThumb,\n onThumbChange,\n onThumbPointerUp,\n onThumbPointerDown,\n onThumbPositionChange,\n onDragScroll,\n onWheelScroll,\n onResize,\n ...scrollbarProps\n } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, __scopeScrollArea);\n const [scrollbar, setScrollbar] = React2.useState(null);\n const composeRefs = useComposedRefs(forwardedRef, (node) => setScrollbar(node));\n const rectRef = React2.useRef(null);\n const prevWebkitUserSelectRef = React2.useRef(\"\");\n const viewport = context.viewport;\n const maxScrollPos = sizes.content - sizes.viewport;\n const handleWheelScroll = useCallbackRef(onWheelScroll);\n const handleThumbPositionChange = useCallbackRef(onThumbPositionChange);\n const handleResize = useDebounceCallback(onResize, 10);\n function handleDragScroll(event) {\n if (rectRef.current) {\n const x = event.clientX - rectRef.current.left;\n const y = event.clientY - rectRef.current.top;\n onDragScroll({ x, y });\n }\n }\n React2.useEffect(() => {\n const handleWheel = (event) => {\n const element = event.target;\n const isScrollbarWheel = scrollbar?.contains(element);\n if (isScrollbarWheel) handleWheelScroll(event, maxScrollPos);\n };\n document.addEventListener(\"wheel\", handleWheel, { passive: false });\n return () => document.removeEventListener(\"wheel\", handleWheel, { passive: false });\n }, [viewport, scrollbar, maxScrollPos, handleWheelScroll]);\n React2.useEffect(handleThumbPositionChange, [sizes, handleThumbPositionChange]);\n useResizeObserver(scrollbar, handleResize);\n useResizeObserver(context.content, handleResize);\n return /* @__PURE__ */ jsx(\n ScrollbarProvider,\n {\n scope: __scopeScrollArea,\n scrollbar,\n hasThumb,\n onThumbChange: useCallbackRef(onThumbChange),\n onThumbPointerUp: useCallbackRef(onThumbPointerUp),\n onThumbPositionChange: handleThumbPositionChange,\n onThumbPointerDown: useCallbackRef(onThumbPointerDown),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...scrollbarProps,\n ref: composeRefs,\n style: { position: \"absolute\", ...scrollbarProps.style },\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n const mainPointer = 0;\n if (event.button === mainPointer) {\n const element = event.target;\n element.setPointerCapture(event.pointerId);\n rectRef.current = scrollbar.getBoundingClientRect();\n prevWebkitUserSelectRef.current = document.body.style.webkitUserSelect;\n document.body.style.webkitUserSelect = \"none\";\n if (context.viewport) context.viewport.style.scrollBehavior = \"auto\";\n handleDragScroll(event);\n }\n }),\n onPointerMove: composeEventHandlers(props.onPointerMove, handleDragScroll),\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n const element = event.target;\n if (element.hasPointerCapture(event.pointerId)) {\n element.releasePointerCapture(event.pointerId);\n }\n document.body.style.webkitUserSelect = prevWebkitUserSelectRef.current;\n if (context.viewport) context.viewport.style.scrollBehavior = \"\";\n rectRef.current = null;\n })\n }\n )\n }\n );\n});\nvar THUMB_NAME = \"ScrollAreaThumb\";\nvar ScrollAreaThumb = React2.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...thumbProps } = props;\n const scrollbarContext = useScrollbarContext(THUMB_NAME, props.__scopeScrollArea);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || scrollbarContext.hasThumb, children: /* @__PURE__ */ jsx(ScrollAreaThumbImpl, { ref: forwardedRef, ...thumbProps }) });\n }\n);\nvar ScrollAreaThumbImpl = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeScrollArea, style, ...thumbProps } = props;\n const scrollAreaContext = useScrollAreaContext(THUMB_NAME, __scopeScrollArea);\n const scrollbarContext = useScrollbarContext(THUMB_NAME, __scopeScrollArea);\n const { onThumbPositionChange } = scrollbarContext;\n const composedRef = useComposedRefs(\n forwardedRef,\n (node) => scrollbarContext.onThumbChange(node)\n );\n const removeUnlinkedScrollListenerRef = React2.useRef(void 0);\n const debounceScrollEnd = useDebounceCallback(() => {\n if (removeUnlinkedScrollListenerRef.current) {\n removeUnlinkedScrollListenerRef.current();\n removeUnlinkedScrollListenerRef.current = void 0;\n }\n }, 100);\n React2.useEffect(() => {\n const viewport = scrollAreaContext.viewport;\n if (viewport) {\n const handleScroll = () => {\n debounceScrollEnd();\n if (!removeUnlinkedScrollListenerRef.current) {\n const listener = addUnlinkedScrollListener(viewport, onThumbPositionChange);\n removeUnlinkedScrollListenerRef.current = listener;\n onThumbPositionChange();\n }\n };\n onThumbPositionChange();\n viewport.addEventListener(\"scroll\", handleScroll);\n return () => viewport.removeEventListener(\"scroll\", handleScroll);\n }\n }, [scrollAreaContext.viewport, debounceScrollEnd, onThumbPositionChange]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": scrollbarContext.hasThumb ? \"visible\" : \"hidden\",\n ...thumbProps,\n ref: composedRef,\n style: {\n width: \"var(--radix-scroll-area-thumb-width)\",\n height: \"var(--radix-scroll-area-thumb-height)\",\n ...style\n },\n onPointerDownCapture: composeEventHandlers(props.onPointerDownCapture, (event) => {\n const thumb = event.target;\n const thumbRect = thumb.getBoundingClientRect();\n const x = event.clientX - thumbRect.left;\n const y = event.clientY - thumbRect.top;\n scrollbarContext.onThumbPointerDown({ x, y });\n }),\n onPointerUp: composeEventHandlers(props.onPointerUp, scrollbarContext.onThumbPointerUp)\n }\n );\n }\n);\nScrollAreaThumb.displayName = THUMB_NAME;\nvar CORNER_NAME = \"ScrollAreaCorner\";\nvar ScrollAreaCorner = React2.forwardRef(\n (props, forwardedRef) => {\n const context = useScrollAreaContext(CORNER_NAME, props.__scopeScrollArea);\n const hasBothScrollbarsVisible = Boolean(context.scrollbarX && context.scrollbarY);\n const hasCorner = context.type !== \"scroll\" && hasBothScrollbarsVisible;\n return hasCorner ? /* @__PURE__ */ jsx(ScrollAreaCornerImpl, { ...props, ref: forwardedRef }) : null;\n }\n);\nScrollAreaCorner.displayName = CORNER_NAME;\nvar ScrollAreaCornerImpl = React2.forwardRef((props, forwardedRef) => {\n const { __scopeScrollArea, ...cornerProps } = props;\n const context = useScrollAreaContext(CORNER_NAME, __scopeScrollArea);\n const [width, setWidth] = React2.useState(0);\n const [height, setHeight] = React2.useState(0);\n const hasSize = Boolean(width && height);\n useResizeObserver(context.scrollbarX, () => {\n const height2 = context.scrollbarX?.offsetHeight || 0;\n context.onCornerHeightChange(height2);\n setHeight(height2);\n });\n useResizeObserver(context.scrollbarY, () => {\n const width2 = context.scrollbarY?.offsetWidth || 0;\n context.onCornerWidthChange(width2);\n setWidth(width2);\n });\n return hasSize ? /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...cornerProps,\n ref: forwardedRef,\n style: {\n width,\n height,\n position: \"absolute\",\n right: context.dir === \"ltr\" ? 0 : void 0,\n left: context.dir === \"rtl\" ? 0 : void 0,\n bottom: 0,\n ...props.style\n }\n }\n ) : null;\n});\nfunction toInt(value) {\n return value ? parseInt(value, 10) : 0;\n}\nfunction getThumbRatio(viewportSize, contentSize) {\n const ratio = viewportSize / contentSize;\n return isNaN(ratio) ? 0 : ratio;\n}\nfunction getThumbSize(sizes) {\n const ratio = getThumbRatio(sizes.viewport, sizes.content);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio;\n return Math.max(thumbSize, 18);\n}\nfunction getScrollPositionFromPointer(pointerPos, pointerOffset, sizes, dir = \"ltr\") {\n const thumbSizePx = getThumbSize(sizes);\n const thumbCenter = thumbSizePx / 2;\n const offset = pointerOffset || thumbCenter;\n const thumbOffsetFromEnd = thumbSizePx - offset;\n const minPointerPos = sizes.scrollbar.paddingStart + offset;\n const maxPointerPos = sizes.scrollbar.size - sizes.scrollbar.paddingEnd - thumbOffsetFromEnd;\n const maxScrollPos = sizes.content - sizes.viewport;\n const scrollRange = dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const interpolate = linearScale([minPointerPos, maxPointerPos], scrollRange);\n return interpolate(pointerPos);\n}\nfunction getThumbOffsetFromScroll(scrollPos, sizes, dir = \"ltr\") {\n const thumbSizePx = getThumbSize(sizes);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const scrollbar = sizes.scrollbar.size - scrollbarPadding;\n const maxScrollPos = sizes.content - sizes.viewport;\n const maxThumbPos = scrollbar - thumbSizePx;\n const scrollClampRange = dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const scrollWithoutMomentum = clamp(scrollPos, scrollClampRange);\n const interpolate = linearScale([0, maxScrollPos], [0, maxThumbPos]);\n return interpolate(scrollWithoutMomentum);\n}\nfunction linearScale(input, output) {\n return (value) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos) {\n return scrollPos > 0 && scrollPos < maxScrollPos;\n}\nvar addUnlinkedScrollListener = (node, handler = () => {\n}) => {\n let prevPosition = { left: node.scrollLeft, top: node.scrollTop };\n let rAF = 0;\n (function loop() {\n const position = { left: node.scrollLeft, top: node.scrollTop };\n const isHorizontalScroll = prevPosition.left !== position.left;\n const isVerticalScroll = prevPosition.top !== position.top;\n if (isHorizontalScroll || isVerticalScroll) handler();\n prevPosition = position;\n rAF = window.requestAnimationFrame(loop);\n })();\n return () => window.cancelAnimationFrame(rAF);\n};\nfunction useDebounceCallback(callback, delay) {\n const handleCallback = useCallbackRef(callback);\n const debounceTimerRef = React2.useRef(0);\n React2.useEffect(() => () => window.clearTimeout(debounceTimerRef.current), []);\n return React2.useCallback(() => {\n window.clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = window.setTimeout(handleCallback, delay);\n }, [handleCallback, delay]);\n}\nfunction useResizeObserver(element, onResize) {\n const handleResize = useCallbackRef(onResize);\n useLayoutEffect(() => {\n let rAF = 0;\n if (element) {\n const resizeObserver = new ResizeObserver(() => {\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n });\n resizeObserver.observe(element);\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n };\n }\n }, [element, handleResize]);\n}\nvar Root = ScrollArea;\nvar Viewport = ScrollAreaViewport;\nvar Scrollbar = ScrollAreaScrollbar;\nvar Thumb = ScrollAreaThumb;\nvar Corner = ScrollAreaCorner;\nexport {\n Corner,\n Root,\n ScrollArea,\n ScrollAreaCorner,\n ScrollAreaScrollbar,\n ScrollAreaThumb,\n ScrollAreaViewport,\n Scrollbar,\n Thumb,\n Viewport,\n createScrollAreaScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type ScrollAreaRootProps = ComponentProps<typeof ScrollAreaPrimitive.Root>;\n\nexport function ScrollAreaRoot({ className, children, ...props }: ScrollAreaRootProps) {\n return (\n <ScrollAreaPrimitive.Root\n className={cn('relative', className)}\n data-slot=\"scroll-area-root\"\n {...props}\n >\n {children}\n </ScrollAreaPrimitive.Root>\n );\n}\n","'use client';\n\nimport { createContext, use, useMemo } from 'react';\nimport type { ReactNode } from 'react';\n\ninterface ScrollAreaContext {\n orientation: 'vertical' | 'horizontal' | 'both';\n scrollHideDelay: number;\n type: 'auto' | 'always' | 'scroll' | 'hover';\n}\n\nexport const ScrollAreaContext = createContext<ScrollAreaContext | undefined>(undefined);\n\nexport interface ScrollAreaProviderProps {\n orientation?: 'vertical' | 'horizontal' | 'both';\n scrollHideDelay?: number;\n type?: 'auto' | 'always' | 'scroll' | 'hover';\n children: ReactNode;\n}\n\nexport function ScrollAreaProvider({\n children,\n orientation = 'vertical',\n scrollHideDelay = 500,\n type = 'hover',\n}: ScrollAreaProviderProps) {\n const contextValues = useMemo(\n () => ({\n orientation,\n scrollHideDelay,\n type,\n }),\n [orientation, scrollHideDelay, type],\n );\n\n return <ScrollAreaContext.Provider value={contextValues}>{children}</ScrollAreaContext.Provider>;\n}\n\nexport function useScrollArea() {\n const context = use(ScrollAreaContext);\n\n if (context === undefined) {\n throw new Error('useScrollArea must be used within a ScrollAreaProvider');\n }\n\n return context;\n}\n","'use client';\n\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type ScrollAreaViewportProps = ComponentProps<typeof ScrollAreaPrimitive.Viewport>;\n\nexport function ScrollAreaViewport({ className, children, ...props }: ScrollAreaViewportProps) {\n return (\n <ScrollAreaPrimitive.Viewport\n className={cn(\n 'size-full rounded-[inherit] transition-[color,box-shadow] focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-primary',\n className,\n )}\n data-slot=\"scroll-area-viewport\"\n {...props}\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n );\n}\n","'use client';\n\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';\nimport type { ComponentProps } from 'react';\n\nimport { useScrollArea } from '@/components/scroll-area';\nimport { cn } from '@/lib';\n\nexport type ScrollAreaBarProps = ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>;\n\nexport function ScrollAreaBar({ className, children, ...props }: ScrollAreaBarProps) {\n const { orientation } = useScrollArea();\n\n const baseClasses =\n 'flex touch-none select-none bg-transparent p-1 transition-colors data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out-0 data-[state=visible]:fade-in-0';\n\n const verticalClasses = 'h-full w-3.5 border-l border-l-transparent';\n\n const horizontalClasses = 'h-3.5 flex-col border-t border-t-transparent';\n\n if (orientation === 'both') {\n return (\n <>\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n className={cn(baseClasses, verticalClasses, className)}\n data-slot=\"scroll-area-vertical-scrollbar\"\n orientation=\"vertical\"\n {...props}\n >\n {children}\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n className={cn(baseClasses, horizontalClasses, className)}\n data-slot=\"scroll-area-horizontal-scrollbar\"\n orientation=\"horizontal\"\n {...props}\n >\n {children}\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n </>\n );\n }\n\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n className={cn(\n baseClasses,\n orientation === 'vertical' && verticalClasses,\n orientation === 'horizontal' && horizontalClasses,\n className,\n )}\n data-slot={`scroll-area-${orientation}-scrollbar`}\n orientation={orientation}\n {...props}\n >\n {children}\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n );\n}\n","'use client';\n\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type ScrollAreaThumbProps = ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaThumb>;\n\nexport function ScrollAreaThumb({ className, ...props }: ScrollAreaThumbProps) {\n return (\n <ScrollAreaPrimitive.ScrollAreaThumb\n className={cn('relative flex-1 rounded-full bg-contrast-200', className)}\n data-slot=\"scroll-area-thumb\"\n {...props}\n />\n );\n}\n","'use client';\n\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';\nimport type { ComponentProps } from 'react';\n\nexport type ScrollAreaCornerProps = ComponentProps<typeof ScrollAreaPrimitive.Corner>;\n\nexport function ScrollAreaCorner({ className, ...props }: ScrollAreaCornerProps) {\n return (\n <ScrollAreaPrimitive.Corner className={className} data-slot=\"scroll-area-corner\" {...props} />\n );\n}\n"],"names":["clamp","value","min","max","useStateMachine","initialState","machine","React","state","event","SCROLL_AREA_NAME","createScrollAreaContext","createContextScope","ScrollAreaProvider","useScrollAreaContext","ScrollArea","React2","props","forwardedRef","__scopeScrollArea","type","dir","scrollHideDelay","scrollAreaProps","scrollArea","setScrollArea","viewport","setViewport","content","setContent","scrollbarX","setScrollbarX","scrollbarY","setScrollbarY","cornerWidth","setCornerWidth","cornerHeight","setCornerHeight","scrollbarXEnabled","setScrollbarXEnabled","scrollbarYEnabled","setScrollbarYEnabled","composedRefs","useComposedRefs","node","direction","useDirection","jsx","Primitive","VIEWPORT_NAME","ScrollAreaViewport","children","nonce","viewportProps","context","ref","jsxs","Fragment","SCROLLBAR_NAME","ScrollAreaScrollbar","forceMount","scrollbarProps","onScrollbarXEnabledChange","onScrollbarYEnabledChange","isHorizontal","ScrollAreaScrollbarHover","ScrollAreaScrollbarScroll","ScrollAreaScrollbarAuto","ScrollAreaScrollbarVisible","visible","setVisible","hideTimer","handlePointerEnter","handlePointerLeave","Presence","debounceScrollEnd","useDebounceCallback","send","scrollDirection","prevScrollPos","handleScroll","scrollPos","composeEventHandlers","handleResize","isOverflowX","isOverflowY","useResizeObserver","orientation","thumbRef","pointerOffsetRef","sizes","setSizes","thumbRatio","getThumbRatio","commonProps","thumb","pointerPos","getScrollPosition","getScrollPositionFromPointer","ScrollAreaScrollbarX","offset","getThumbOffsetFromScroll","ScrollAreaScrollbarY","onSizesChange","computedStyle","setComputedStyle","composeRefs","ScrollAreaScrollbarImpl","getThumbSize","maxScrollPos","isScrollingWithinScrollbarBounds","toInt","ScrollbarProvider","useScrollbarContext","hasThumb","onThumbChange","onThumbPointerUp","onThumbPointerDown","onThumbPositionChange","onDragScroll","onWheelScroll","onResize","scrollbar","setScrollbar","rectRef","prevWebkitUserSelectRef","handleWheelScroll","useCallbackRef","handleThumbPositionChange","handleDragScroll","x","y","handleWheel","element","THUMB_NAME","ScrollAreaThumb","thumbProps","scrollbarContext","ScrollAreaThumbImpl","style","scrollAreaContext","composedRef","removeUnlinkedScrollListenerRef","listener","addUnlinkedScrollListener","thumbRect","CORNER_NAME","ScrollAreaCorner","hasBothScrollbarsVisible","ScrollAreaCornerImpl","cornerProps","width","setWidth","height","setHeight","hasSize","height2","width2","viewportSize","contentSize","ratio","scrollbarPadding","thumbSize","pointerOffset","thumbSizePx","thumbCenter","thumbOffsetFromEnd","minPointerPos","maxPointerPos","scrollRange","linearScale","maxThumbPos","scrollClampRange","scrollWithoutMomentum","input","output","handler","prevPosition","rAF","loop","position","isHorizontalScroll","isVerticalScroll","callback","delay","handleCallback","debounceTimerRef","useLayoutEffect","resizeObserver","Root","Viewport","Corner","ScrollAreaRoot","className","ScrollAreaPrimitive.Root","cn","ScrollAreaContext","createContext","contextValues","useMemo","useScrollArea","use","ScrollAreaPrimitive.Viewport","ScrollAreaBar","baseClasses","verticalClasses","horizontalClasses","ScrollAreaPrimitive.ScrollAreaScrollbar","ScrollAreaPrimitive.ScrollAreaThumb","ScrollAreaPrimitive.Corner"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"scroll-area-corner-Bq7PB1XK.js","sources":["../node_modules/.pnpm/@radix-ui+number@1.1.1/node_modules/@radix-ui/number/dist/index.mjs","../node_modules/.pnpm/@radix-ui+react-scroll-area@1.2.10_@types+react-dom@19.2.2_@types+react@19.2.2__@types+react@_m2oggim3nwx6rzalxypqu3tc4m/node_modules/@radix-ui/react-scroll-area/dist/index.mjs","../src/components/scroll-area/primitives/scroll-area-root.tsx","../src/components/scroll-area/primitives/scroll-area-provider.tsx","../src/components/scroll-area/primitives/scroll-area-viewport.tsx","../src/components/scroll-area/primitives/scroll-area-bar.tsx","../src/components/scroll-area/primitives/scroll-area-thumb.tsx","../src/components/scroll-area/primitives/scroll-area-corner.tsx"],"sourcesContent":["// packages/core/number/src/number.ts\nfunction clamp(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\nexport {\n clamp\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/scroll-area.tsx\nimport * as React2 from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\n\n// src/use-state-machine.ts\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// src/scroll-area.tsx\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar SCROLL_AREA_NAME = \"ScrollArea\";\nvar [createScrollAreaContext, createScrollAreaScope] = createContextScope(SCROLL_AREA_NAME);\nvar [ScrollAreaProvider, useScrollAreaContext] = createScrollAreaContext(SCROLL_AREA_NAME);\nvar ScrollArea = React2.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeScrollArea,\n type = \"hover\",\n dir,\n scrollHideDelay = 600,\n ...scrollAreaProps\n } = props;\n const [scrollArea, setScrollArea] = React2.useState(null);\n const [viewport, setViewport] = React2.useState(null);\n const [content, setContent] = React2.useState(null);\n const [scrollbarX, setScrollbarX] = React2.useState(null);\n const [scrollbarY, setScrollbarY] = React2.useState(null);\n const [cornerWidth, setCornerWidth] = React2.useState(0);\n const [cornerHeight, setCornerHeight] = React2.useState(0);\n const [scrollbarXEnabled, setScrollbarXEnabled] = React2.useState(false);\n const [scrollbarYEnabled, setScrollbarYEnabled] = React2.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setScrollArea(node));\n const direction = useDirection(dir);\n return /* @__PURE__ */ jsx(\n ScrollAreaProvider,\n {\n scope: __scopeScrollArea,\n type,\n dir: direction,\n scrollHideDelay,\n scrollArea,\n viewport,\n onViewportChange: setViewport,\n content,\n onContentChange: setContent,\n scrollbarX,\n onScrollbarXChange: setScrollbarX,\n scrollbarXEnabled,\n onScrollbarXEnabledChange: setScrollbarXEnabled,\n scrollbarY,\n onScrollbarYChange: setScrollbarY,\n scrollbarYEnabled,\n onScrollbarYEnabledChange: setScrollbarYEnabled,\n onCornerWidthChange: setCornerWidth,\n onCornerHeightChange: setCornerHeight,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n ...scrollAreaProps,\n ref: composedRefs,\n style: {\n position: \"relative\",\n // Pass corner sizes as CSS vars to reduce re-renders of context consumers\n [\"--radix-scroll-area-corner-width\"]: cornerWidth + \"px\",\n [\"--radix-scroll-area-corner-height\"]: cornerHeight + \"px\",\n ...props.style\n }\n }\n )\n }\n );\n }\n);\nScrollArea.displayName = SCROLL_AREA_NAME;\nvar VIEWPORT_NAME = \"ScrollAreaViewport\";\nvar ScrollAreaViewport = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeScrollArea, children, nonce, ...viewportProps } = props;\n const context = useScrollAreaContext(VIEWPORT_NAME, __scopeScrollArea);\n const ref = React2.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onViewportChange);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n \"style\",\n {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`\n },\n nonce\n }\n ),\n /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-radix-scroll-area-viewport\": \"\",\n ...viewportProps,\n ref: composedRefs,\n style: {\n /**\n * We don't support `visible` because the intention is to have at least one scrollbar\n * if this component is used and `visible` will behave like `auto` in that case\n * https://developer.mozilla.org/en-US/docs/Web/CSS/overflow#description\n *\n * We don't handle `auto` because the intention is for the native implementation\n * to be hidden if using this component. We just want to ensure the node is scrollable\n * so could have used either `scroll` or `auto` here. We picked `scroll` to prevent\n * the browser from having to work out whether to render native scrollbars or not,\n * we tell it to with the intention of hiding them in CSS.\n */\n overflowX: context.scrollbarXEnabled ? \"scroll\" : \"hidden\",\n overflowY: context.scrollbarYEnabled ? \"scroll\" : \"hidden\",\n ...props.style\n },\n children: /* @__PURE__ */ jsx(\"div\", { ref: context.onContentChange, style: { minWidth: \"100%\", display: \"table\" }, children })\n }\n )\n ] });\n }\n);\nScrollAreaViewport.displayName = VIEWPORT_NAME;\nvar SCROLLBAR_NAME = \"ScrollAreaScrollbar\";\nvar ScrollAreaScrollbar = React2.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { onScrollbarXEnabledChange, onScrollbarYEnabledChange } = context;\n const isHorizontal = props.orientation === \"horizontal\";\n React2.useEffect(() => {\n isHorizontal ? onScrollbarXEnabledChange(true) : onScrollbarYEnabledChange(true);\n return () => {\n isHorizontal ? onScrollbarXEnabledChange(false) : onScrollbarYEnabledChange(false);\n };\n }, [isHorizontal, onScrollbarXEnabledChange, onScrollbarYEnabledChange]);\n return context.type === \"hover\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarHover, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"scroll\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarScroll, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"auto\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarAuto, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"always\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarVisible, { ...scrollbarProps, ref: forwardedRef }) : null;\n }\n);\nScrollAreaScrollbar.displayName = SCROLLBAR_NAME;\nvar ScrollAreaScrollbarHover = React2.forwardRef((props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [visible, setVisible] = React2.useState(false);\n React2.useEffect(() => {\n const scrollArea = context.scrollArea;\n let hideTimer = 0;\n if (scrollArea) {\n const handlePointerEnter = () => {\n window.clearTimeout(hideTimer);\n setVisible(true);\n };\n const handlePointerLeave = () => {\n hideTimer = window.setTimeout(() => setVisible(false), context.scrollHideDelay);\n };\n scrollArea.addEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.addEventListener(\"pointerleave\", handlePointerLeave);\n return () => {\n window.clearTimeout(hideTimer);\n scrollArea.removeEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.removeEventListener(\"pointerleave\", handlePointerLeave);\n };\n }\n }, [context.scrollArea, context.scrollHideDelay]);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || visible, children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarAuto,\n {\n \"data-state\": visible ? \"visible\" : \"hidden\",\n ...scrollbarProps,\n ref: forwardedRef\n }\n ) });\n});\nvar ScrollAreaScrollbarScroll = React2.forwardRef((props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const isHorizontal = props.orientation === \"horizontal\";\n const debounceScrollEnd = useDebounceCallback(() => send(\"SCROLL_END\"), 100);\n const [state, send] = useStateMachine(\"hidden\", {\n hidden: {\n SCROLL: \"scrolling\"\n },\n scrolling: {\n SCROLL_END: \"idle\",\n POINTER_ENTER: \"interacting\"\n },\n interacting: {\n SCROLL: \"interacting\",\n POINTER_LEAVE: \"idle\"\n },\n idle: {\n HIDE: \"hidden\",\n SCROLL: \"scrolling\",\n POINTER_ENTER: \"interacting\"\n }\n });\n React2.useEffect(() => {\n if (state === \"idle\") {\n const hideTimer = window.setTimeout(() => send(\"HIDE\"), context.scrollHideDelay);\n return () => window.clearTimeout(hideTimer);\n }\n }, [state, context.scrollHideDelay, send]);\n React2.useEffect(() => {\n const viewport = context.viewport;\n const scrollDirection = isHorizontal ? \"scrollLeft\" : \"scrollTop\";\n if (viewport) {\n let prevScrollPos = viewport[scrollDirection];\n const handleScroll = () => {\n const scrollPos = viewport[scrollDirection];\n const hasScrollInDirectionChanged = prevScrollPos !== scrollPos;\n if (hasScrollInDirectionChanged) {\n send(\"SCROLL\");\n debounceScrollEnd();\n }\n prevScrollPos = scrollPos;\n };\n viewport.addEventListener(\"scroll\", handleScroll);\n return () => viewport.removeEventListener(\"scroll\", handleScroll);\n }\n }, [context.viewport, isHorizontal, send, debounceScrollEnd]);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || state !== \"hidden\", children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarVisible,\n {\n \"data-state\": state === \"hidden\" ? \"hidden\" : \"visible\",\n ...scrollbarProps,\n ref: forwardedRef,\n onPointerEnter: composeEventHandlers(props.onPointerEnter, () => send(\"POINTER_ENTER\")),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, () => send(\"POINTER_LEAVE\"))\n }\n ) });\n});\nvar ScrollAreaScrollbarAuto = React2.forwardRef((props, forwardedRef) => {\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { forceMount, ...scrollbarProps } = props;\n const [visible, setVisible] = React2.useState(false);\n const isHorizontal = props.orientation === \"horizontal\";\n const handleResize = useDebounceCallback(() => {\n if (context.viewport) {\n const isOverflowX = context.viewport.offsetWidth < context.viewport.scrollWidth;\n const isOverflowY = context.viewport.offsetHeight < context.viewport.scrollHeight;\n setVisible(isHorizontal ? isOverflowX : isOverflowY);\n }\n }, 10);\n useResizeObserver(context.viewport, handleResize);\n useResizeObserver(context.content, handleResize);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || visible, children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarVisible,\n {\n \"data-state\": visible ? \"visible\" : \"hidden\",\n ...scrollbarProps,\n ref: forwardedRef\n }\n ) });\n});\nvar ScrollAreaScrollbarVisible = React2.forwardRef((props, forwardedRef) => {\n const { orientation = \"vertical\", ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const thumbRef = React2.useRef(null);\n const pointerOffsetRef = React2.useRef(0);\n const [sizes, setSizes] = React2.useState({\n content: 0,\n viewport: 0,\n scrollbar: { size: 0, paddingStart: 0, paddingEnd: 0 }\n });\n const thumbRatio = getThumbRatio(sizes.viewport, sizes.content);\n const commonProps = {\n ...scrollbarProps,\n sizes,\n onSizesChange: setSizes,\n hasThumb: Boolean(thumbRatio > 0 && thumbRatio < 1),\n onThumbChange: (thumb) => thumbRef.current = thumb,\n onThumbPointerUp: () => pointerOffsetRef.current = 0,\n onThumbPointerDown: (pointerPos) => pointerOffsetRef.current = pointerPos\n };\n function getScrollPosition(pointerPos, dir) {\n return getScrollPositionFromPointer(pointerPos, pointerOffsetRef.current, sizes, dir);\n }\n if (orientation === \"horizontal\") {\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarX,\n {\n ...commonProps,\n ref: forwardedRef,\n onThumbPositionChange: () => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollLeft;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes, context.dir);\n thumbRef.current.style.transform = `translate3d(${offset}px, 0, 0)`;\n }\n },\n onWheelScroll: (scrollPos) => {\n if (context.viewport) context.viewport.scrollLeft = scrollPos;\n },\n onDragScroll: (pointerPos) => {\n if (context.viewport) {\n context.viewport.scrollLeft = getScrollPosition(pointerPos, context.dir);\n }\n }\n }\n );\n }\n if (orientation === \"vertical\") {\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarY,\n {\n ...commonProps,\n ref: forwardedRef,\n onThumbPositionChange: () => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollTop;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes);\n thumbRef.current.style.transform = `translate3d(0, ${offset}px, 0)`;\n }\n },\n onWheelScroll: (scrollPos) => {\n if (context.viewport) context.viewport.scrollTop = scrollPos;\n },\n onDragScroll: (pointerPos) => {\n if (context.viewport) context.viewport.scrollTop = getScrollPosition(pointerPos);\n }\n }\n );\n }\n return null;\n});\nvar ScrollAreaScrollbarX = React2.forwardRef((props, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = React2.useState();\n const ref = React2.useRef(null);\n const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarXChange);\n React2.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarImpl,\n {\n \"data-orientation\": \"horizontal\",\n ...scrollbarProps,\n ref: composeRefs,\n sizes,\n style: {\n bottom: 0,\n left: context.dir === \"rtl\" ? \"var(--radix-scroll-area-corner-width)\" : 0,\n right: context.dir === \"ltr\" ? \"var(--radix-scroll-area-corner-width)\" : 0,\n [\"--radix-scroll-area-thumb-width\"]: getThumbSize(sizes) + \"px\",\n ...props.style\n },\n onThumbPointerDown: (pointerPos) => props.onThumbPointerDown(pointerPos.x),\n onDragScroll: (pointerPos) => props.onDragScroll(pointerPos.x),\n onWheelScroll: (event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollLeft + event.deltaX;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n },\n onResize: () => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollWidth,\n viewport: context.viewport.offsetWidth,\n scrollbar: {\n size: ref.current.clientWidth,\n paddingStart: toInt(computedStyle.paddingLeft),\n paddingEnd: toInt(computedStyle.paddingRight)\n }\n });\n }\n }\n }\n );\n});\nvar ScrollAreaScrollbarY = React2.forwardRef((props, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = React2.useState();\n const ref = React2.useRef(null);\n const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarYChange);\n React2.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarImpl,\n {\n \"data-orientation\": \"vertical\",\n ...scrollbarProps,\n ref: composeRefs,\n sizes,\n style: {\n top: 0,\n right: context.dir === \"ltr\" ? 0 : void 0,\n left: context.dir === \"rtl\" ? 0 : void 0,\n bottom: \"var(--radix-scroll-area-corner-height)\",\n [\"--radix-scroll-area-thumb-height\"]: getThumbSize(sizes) + \"px\",\n ...props.style\n },\n onThumbPointerDown: (pointerPos) => props.onThumbPointerDown(pointerPos.y),\n onDragScroll: (pointerPos) => props.onDragScroll(pointerPos.y),\n onWheelScroll: (event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollTop + event.deltaY;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n },\n onResize: () => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollHeight,\n viewport: context.viewport.offsetHeight,\n scrollbar: {\n size: ref.current.clientHeight,\n paddingStart: toInt(computedStyle.paddingTop),\n paddingEnd: toInt(computedStyle.paddingBottom)\n }\n });\n }\n }\n }\n );\n});\nvar [ScrollbarProvider, useScrollbarContext] = createScrollAreaContext(SCROLLBAR_NAME);\nvar ScrollAreaScrollbarImpl = React2.forwardRef((props, forwardedRef) => {\n const {\n __scopeScrollArea,\n sizes,\n hasThumb,\n onThumbChange,\n onThumbPointerUp,\n onThumbPointerDown,\n onThumbPositionChange,\n onDragScroll,\n onWheelScroll,\n onResize,\n ...scrollbarProps\n } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, __scopeScrollArea);\n const [scrollbar, setScrollbar] = React2.useState(null);\n const composeRefs = useComposedRefs(forwardedRef, (node) => setScrollbar(node));\n const rectRef = React2.useRef(null);\n const prevWebkitUserSelectRef = React2.useRef(\"\");\n const viewport = context.viewport;\n const maxScrollPos = sizes.content - sizes.viewport;\n const handleWheelScroll = useCallbackRef(onWheelScroll);\n const handleThumbPositionChange = useCallbackRef(onThumbPositionChange);\n const handleResize = useDebounceCallback(onResize, 10);\n function handleDragScroll(event) {\n if (rectRef.current) {\n const x = event.clientX - rectRef.current.left;\n const y = event.clientY - rectRef.current.top;\n onDragScroll({ x, y });\n }\n }\n React2.useEffect(() => {\n const handleWheel = (event) => {\n const element = event.target;\n const isScrollbarWheel = scrollbar?.contains(element);\n if (isScrollbarWheel) handleWheelScroll(event, maxScrollPos);\n };\n document.addEventListener(\"wheel\", handleWheel, { passive: false });\n return () => document.removeEventListener(\"wheel\", handleWheel, { passive: false });\n }, [viewport, scrollbar, maxScrollPos, handleWheelScroll]);\n React2.useEffect(handleThumbPositionChange, [sizes, handleThumbPositionChange]);\n useResizeObserver(scrollbar, handleResize);\n useResizeObserver(context.content, handleResize);\n return /* @__PURE__ */ jsx(\n ScrollbarProvider,\n {\n scope: __scopeScrollArea,\n scrollbar,\n hasThumb,\n onThumbChange: useCallbackRef(onThumbChange),\n onThumbPointerUp: useCallbackRef(onThumbPointerUp),\n onThumbPositionChange: handleThumbPositionChange,\n onThumbPointerDown: useCallbackRef(onThumbPointerDown),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...scrollbarProps,\n ref: composeRefs,\n style: { position: \"absolute\", ...scrollbarProps.style },\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n const mainPointer = 0;\n if (event.button === mainPointer) {\n const element = event.target;\n element.setPointerCapture(event.pointerId);\n rectRef.current = scrollbar.getBoundingClientRect();\n prevWebkitUserSelectRef.current = document.body.style.webkitUserSelect;\n document.body.style.webkitUserSelect = \"none\";\n if (context.viewport) context.viewport.style.scrollBehavior = \"auto\";\n handleDragScroll(event);\n }\n }),\n onPointerMove: composeEventHandlers(props.onPointerMove, handleDragScroll),\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n const element = event.target;\n if (element.hasPointerCapture(event.pointerId)) {\n element.releasePointerCapture(event.pointerId);\n }\n document.body.style.webkitUserSelect = prevWebkitUserSelectRef.current;\n if (context.viewport) context.viewport.style.scrollBehavior = \"\";\n rectRef.current = null;\n })\n }\n )\n }\n );\n});\nvar THUMB_NAME = \"ScrollAreaThumb\";\nvar ScrollAreaThumb = React2.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...thumbProps } = props;\n const scrollbarContext = useScrollbarContext(THUMB_NAME, props.__scopeScrollArea);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || scrollbarContext.hasThumb, children: /* @__PURE__ */ jsx(ScrollAreaThumbImpl, { ref: forwardedRef, ...thumbProps }) });\n }\n);\nvar ScrollAreaThumbImpl = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeScrollArea, style, ...thumbProps } = props;\n const scrollAreaContext = useScrollAreaContext(THUMB_NAME, __scopeScrollArea);\n const scrollbarContext = useScrollbarContext(THUMB_NAME, __scopeScrollArea);\n const { onThumbPositionChange } = scrollbarContext;\n const composedRef = useComposedRefs(\n forwardedRef,\n (node) => scrollbarContext.onThumbChange(node)\n );\n const removeUnlinkedScrollListenerRef = React2.useRef(void 0);\n const debounceScrollEnd = useDebounceCallback(() => {\n if (removeUnlinkedScrollListenerRef.current) {\n removeUnlinkedScrollListenerRef.current();\n removeUnlinkedScrollListenerRef.current = void 0;\n }\n }, 100);\n React2.useEffect(() => {\n const viewport = scrollAreaContext.viewport;\n if (viewport) {\n const handleScroll = () => {\n debounceScrollEnd();\n if (!removeUnlinkedScrollListenerRef.current) {\n const listener = addUnlinkedScrollListener(viewport, onThumbPositionChange);\n removeUnlinkedScrollListenerRef.current = listener;\n onThumbPositionChange();\n }\n };\n onThumbPositionChange();\n viewport.addEventListener(\"scroll\", handleScroll);\n return () => viewport.removeEventListener(\"scroll\", handleScroll);\n }\n }, [scrollAreaContext.viewport, debounceScrollEnd, onThumbPositionChange]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": scrollbarContext.hasThumb ? \"visible\" : \"hidden\",\n ...thumbProps,\n ref: composedRef,\n style: {\n width: \"var(--radix-scroll-area-thumb-width)\",\n height: \"var(--radix-scroll-area-thumb-height)\",\n ...style\n },\n onPointerDownCapture: composeEventHandlers(props.onPointerDownCapture, (event) => {\n const thumb = event.target;\n const thumbRect = thumb.getBoundingClientRect();\n const x = event.clientX - thumbRect.left;\n const y = event.clientY - thumbRect.top;\n scrollbarContext.onThumbPointerDown({ x, y });\n }),\n onPointerUp: composeEventHandlers(props.onPointerUp, scrollbarContext.onThumbPointerUp)\n }\n );\n }\n);\nScrollAreaThumb.displayName = THUMB_NAME;\nvar CORNER_NAME = \"ScrollAreaCorner\";\nvar ScrollAreaCorner = React2.forwardRef(\n (props, forwardedRef) => {\n const context = useScrollAreaContext(CORNER_NAME, props.__scopeScrollArea);\n const hasBothScrollbarsVisible = Boolean(context.scrollbarX && context.scrollbarY);\n const hasCorner = context.type !== \"scroll\" && hasBothScrollbarsVisible;\n return hasCorner ? /* @__PURE__ */ jsx(ScrollAreaCornerImpl, { ...props, ref: forwardedRef }) : null;\n }\n);\nScrollAreaCorner.displayName = CORNER_NAME;\nvar ScrollAreaCornerImpl = React2.forwardRef((props, forwardedRef) => {\n const { __scopeScrollArea, ...cornerProps } = props;\n const context = useScrollAreaContext(CORNER_NAME, __scopeScrollArea);\n const [width, setWidth] = React2.useState(0);\n const [height, setHeight] = React2.useState(0);\n const hasSize = Boolean(width && height);\n useResizeObserver(context.scrollbarX, () => {\n const height2 = context.scrollbarX?.offsetHeight || 0;\n context.onCornerHeightChange(height2);\n setHeight(height2);\n });\n useResizeObserver(context.scrollbarY, () => {\n const width2 = context.scrollbarY?.offsetWidth || 0;\n context.onCornerWidthChange(width2);\n setWidth(width2);\n });\n return hasSize ? /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...cornerProps,\n ref: forwardedRef,\n style: {\n width,\n height,\n position: \"absolute\",\n right: context.dir === \"ltr\" ? 0 : void 0,\n left: context.dir === \"rtl\" ? 0 : void 0,\n bottom: 0,\n ...props.style\n }\n }\n ) : null;\n});\nfunction toInt(value) {\n return value ? parseInt(value, 10) : 0;\n}\nfunction getThumbRatio(viewportSize, contentSize) {\n const ratio = viewportSize / contentSize;\n return isNaN(ratio) ? 0 : ratio;\n}\nfunction getThumbSize(sizes) {\n const ratio = getThumbRatio(sizes.viewport, sizes.content);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio;\n return Math.max(thumbSize, 18);\n}\nfunction getScrollPositionFromPointer(pointerPos, pointerOffset, sizes, dir = \"ltr\") {\n const thumbSizePx = getThumbSize(sizes);\n const thumbCenter = thumbSizePx / 2;\n const offset = pointerOffset || thumbCenter;\n const thumbOffsetFromEnd = thumbSizePx - offset;\n const minPointerPos = sizes.scrollbar.paddingStart + offset;\n const maxPointerPos = sizes.scrollbar.size - sizes.scrollbar.paddingEnd - thumbOffsetFromEnd;\n const maxScrollPos = sizes.content - sizes.viewport;\n const scrollRange = dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const interpolate = linearScale([minPointerPos, maxPointerPos], scrollRange);\n return interpolate(pointerPos);\n}\nfunction getThumbOffsetFromScroll(scrollPos, sizes, dir = \"ltr\") {\n const thumbSizePx = getThumbSize(sizes);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const scrollbar = sizes.scrollbar.size - scrollbarPadding;\n const maxScrollPos = sizes.content - sizes.viewport;\n const maxThumbPos = scrollbar - thumbSizePx;\n const scrollClampRange = dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const scrollWithoutMomentum = clamp(scrollPos, scrollClampRange);\n const interpolate = linearScale([0, maxScrollPos], [0, maxThumbPos]);\n return interpolate(scrollWithoutMomentum);\n}\nfunction linearScale(input, output) {\n return (value) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos) {\n return scrollPos > 0 && scrollPos < maxScrollPos;\n}\nvar addUnlinkedScrollListener = (node, handler = () => {\n}) => {\n let prevPosition = { left: node.scrollLeft, top: node.scrollTop };\n let rAF = 0;\n (function loop() {\n const position = { left: node.scrollLeft, top: node.scrollTop };\n const isHorizontalScroll = prevPosition.left !== position.left;\n const isVerticalScroll = prevPosition.top !== position.top;\n if (isHorizontalScroll || isVerticalScroll) handler();\n prevPosition = position;\n rAF = window.requestAnimationFrame(loop);\n })();\n return () => window.cancelAnimationFrame(rAF);\n};\nfunction useDebounceCallback(callback, delay) {\n const handleCallback = useCallbackRef(callback);\n const debounceTimerRef = React2.useRef(0);\n React2.useEffect(() => () => window.clearTimeout(debounceTimerRef.current), []);\n return React2.useCallback(() => {\n window.clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = window.setTimeout(handleCallback, delay);\n }, [handleCallback, delay]);\n}\nfunction useResizeObserver(element, onResize) {\n const handleResize = useCallbackRef(onResize);\n useLayoutEffect(() => {\n let rAF = 0;\n if (element) {\n const resizeObserver = new ResizeObserver(() => {\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n });\n resizeObserver.observe(element);\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n };\n }\n }, [element, handleResize]);\n}\nvar Root = ScrollArea;\nvar Viewport = ScrollAreaViewport;\nvar Scrollbar = ScrollAreaScrollbar;\nvar Thumb = ScrollAreaThumb;\nvar Corner = ScrollAreaCorner;\nexport {\n Corner,\n Root,\n ScrollArea,\n ScrollAreaCorner,\n ScrollAreaScrollbar,\n ScrollAreaThumb,\n ScrollAreaViewport,\n Scrollbar,\n Thumb,\n Viewport,\n createScrollAreaScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type ScrollAreaRootProps = ComponentProps<typeof ScrollAreaPrimitive.Root>;\n\nexport function ScrollAreaRoot({ className, children, ...props }: ScrollAreaRootProps) {\n return (\n <ScrollAreaPrimitive.Root\n className={cn('relative overflow-hidden', className)}\n data-slot=\"scroll-area-root\"\n {...props}\n >\n {children}\n </ScrollAreaPrimitive.Root>\n );\n}\n","'use client';\n\nimport { createContext, use, useMemo } from 'react';\nimport type { ReactNode } from 'react';\n\ninterface ScrollAreaContext {\n orientation: 'vertical' | 'horizontal' | 'both';\n scrollHideDelay: number;\n type: 'auto' | 'always' | 'scroll' | 'hover';\n}\n\nexport const ScrollAreaContext = createContext<ScrollAreaContext | undefined>(undefined);\n\nexport interface ScrollAreaProviderProps {\n orientation?: 'vertical' | 'horizontal' | 'both';\n scrollHideDelay?: number;\n type?: 'auto' | 'always' | 'scroll' | 'hover';\n children: ReactNode;\n}\n\nexport function ScrollAreaProvider({\n children,\n orientation = 'vertical',\n scrollHideDelay = 500,\n type = 'hover',\n}: ScrollAreaProviderProps) {\n const contextValues = useMemo(\n () => ({\n orientation,\n scrollHideDelay,\n type,\n }),\n [orientation, scrollHideDelay, type],\n );\n\n return <ScrollAreaContext.Provider value={contextValues}>{children}</ScrollAreaContext.Provider>;\n}\n\nexport function useScrollArea() {\n const context = use(ScrollAreaContext);\n\n if (context === undefined) {\n throw new Error('useScrollArea must be used within a ScrollAreaProvider');\n }\n\n return context;\n}\n","'use client';\n\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type ScrollAreaViewportProps = ComponentProps<typeof ScrollAreaPrimitive.Viewport>;\n\nexport function ScrollAreaViewport({ className, children, ...props }: ScrollAreaViewportProps) {\n return (\n <ScrollAreaPrimitive.Viewport\n className={cn(\n 'size-full rounded-[inherit] transition-[color,box-shadow] focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-primary',\n className,\n )}\n data-slot=\"scroll-area-viewport\"\n {...props}\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n );\n}\n","'use client';\n\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';\nimport type { ComponentProps } from 'react';\n\nimport { useScrollArea } from '@/components/scroll-area';\nimport { cn } from '@/lib';\n\nexport type ScrollAreaBarProps = ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>;\n\nexport function ScrollAreaBar({ className, children, ...props }: ScrollAreaBarProps) {\n const { orientation } = useScrollArea();\n\n const baseClasses =\n 'flex touch-none select-none bg-transparent p-1 transition-colors data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out-0 data-[state=visible]:fade-in-0';\n\n const verticalClasses = 'h-full w-3.5 border-l border-l-transparent';\n\n const horizontalClasses = 'h-3.5 flex-col border-t border-t-transparent';\n\n if (orientation === 'both') {\n return (\n <>\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n className={cn(baseClasses, verticalClasses, className)}\n data-slot=\"scroll-area-vertical-scrollbar\"\n orientation=\"vertical\"\n {...props}\n >\n {children}\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n className={cn(baseClasses, horizontalClasses, className)}\n data-slot=\"scroll-area-horizontal-scrollbar\"\n orientation=\"horizontal\"\n {...props}\n >\n {children}\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n </>\n );\n }\n\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n className={cn(\n baseClasses,\n orientation === 'vertical' && verticalClasses,\n orientation === 'horizontal' && horizontalClasses,\n className,\n )}\n data-slot={`scroll-area-${orientation}-scrollbar`}\n orientation={orientation}\n {...props}\n >\n {children}\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n );\n}\n","'use client';\n\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type ScrollAreaThumbProps = ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaThumb>;\n\nexport function ScrollAreaThumb({ className, ...props }: ScrollAreaThumbProps) {\n return (\n <ScrollAreaPrimitive.ScrollAreaThumb\n className={cn('relative flex-1 rounded-full bg-contrast-200', className)}\n data-slot=\"scroll-area-thumb\"\n {...props}\n />\n );\n}\n","'use client';\n\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';\nimport type { ComponentProps } from 'react';\n\nexport type ScrollAreaCornerProps = ComponentProps<typeof ScrollAreaPrimitive.Corner>;\n\nexport function ScrollAreaCorner({ className, ...props }: ScrollAreaCornerProps) {\n return (\n <ScrollAreaPrimitive.Corner className={className} data-slot=\"scroll-area-corner\" {...props} />\n );\n}\n"],"names":["clamp","value","min","max","useStateMachine","initialState","machine","React","state","event","SCROLL_AREA_NAME","createScrollAreaContext","createContextScope","ScrollAreaProvider","useScrollAreaContext","ScrollArea","React2","props","forwardedRef","__scopeScrollArea","type","dir","scrollHideDelay","scrollAreaProps","scrollArea","setScrollArea","viewport","setViewport","content","setContent","scrollbarX","setScrollbarX","scrollbarY","setScrollbarY","cornerWidth","setCornerWidth","cornerHeight","setCornerHeight","scrollbarXEnabled","setScrollbarXEnabled","scrollbarYEnabled","setScrollbarYEnabled","composedRefs","useComposedRefs","node","direction","useDirection","jsx","Primitive","VIEWPORT_NAME","ScrollAreaViewport","children","nonce","viewportProps","context","ref","jsxs","Fragment","SCROLLBAR_NAME","ScrollAreaScrollbar","forceMount","scrollbarProps","onScrollbarXEnabledChange","onScrollbarYEnabledChange","isHorizontal","ScrollAreaScrollbarHover","ScrollAreaScrollbarScroll","ScrollAreaScrollbarAuto","ScrollAreaScrollbarVisible","visible","setVisible","hideTimer","handlePointerEnter","handlePointerLeave","Presence","debounceScrollEnd","useDebounceCallback","send","scrollDirection","prevScrollPos","handleScroll","scrollPos","composeEventHandlers","handleResize","isOverflowX","isOverflowY","useResizeObserver","orientation","thumbRef","pointerOffsetRef","sizes","setSizes","thumbRatio","getThumbRatio","commonProps","thumb","pointerPos","getScrollPosition","getScrollPositionFromPointer","ScrollAreaScrollbarX","offset","getThumbOffsetFromScroll","ScrollAreaScrollbarY","onSizesChange","computedStyle","setComputedStyle","composeRefs","ScrollAreaScrollbarImpl","getThumbSize","maxScrollPos","isScrollingWithinScrollbarBounds","toInt","ScrollbarProvider","useScrollbarContext","hasThumb","onThumbChange","onThumbPointerUp","onThumbPointerDown","onThumbPositionChange","onDragScroll","onWheelScroll","onResize","scrollbar","setScrollbar","rectRef","prevWebkitUserSelectRef","handleWheelScroll","useCallbackRef","handleThumbPositionChange","handleDragScroll","x","y","handleWheel","element","THUMB_NAME","ScrollAreaThumb","thumbProps","scrollbarContext","ScrollAreaThumbImpl","style","scrollAreaContext","composedRef","removeUnlinkedScrollListenerRef","listener","addUnlinkedScrollListener","thumbRect","CORNER_NAME","ScrollAreaCorner","hasBothScrollbarsVisible","ScrollAreaCornerImpl","cornerProps","width","setWidth","height","setHeight","hasSize","height2","width2","viewportSize","contentSize","ratio","scrollbarPadding","thumbSize","pointerOffset","thumbSizePx","thumbCenter","thumbOffsetFromEnd","minPointerPos","maxPointerPos","scrollRange","linearScale","maxThumbPos","scrollClampRange","scrollWithoutMomentum","input","output","handler","prevPosition","rAF","loop","position","isHorizontalScroll","isVerticalScroll","callback","delay","handleCallback","debounceTimerRef","useLayoutEffect","resizeObserver","Root","Viewport","Corner","ScrollAreaRoot","className","ScrollAreaPrimitive.Root","cn","ScrollAreaContext","createContext","contextValues","useMemo","useScrollArea","use","ScrollAreaPrimitive.Viewport","ScrollAreaBar","baseClasses","verticalClasses","horizontalClasses","ScrollAreaPrimitive.ScrollAreaScrollbar","ScrollAreaPrimitive.ScrollAreaThumb","ScrollAreaPrimitive.Corner"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -1,2 +1,2 @@
1
- "use strict";const d=require("react/jsx-runtime"),A=require("./utils-LBH114_M.cjs"),I=require("react"),T=require("./index-Bw7_huW8.cjs"),j=require("./index-CnXYiTkW.cjs"),y=require("./index-_XxjJPRD.cjs"),C=require("./index-CzY-WZXL.cjs"),ie=require("./index-Cje7xxa1.cjs"),P=require("./index-BqyOu62e.cjs");function ue(e){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(o,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}return o.default=e,Object.freeze(o)}const c=ue(I);function de(e,[o,r]){return Math.min(r,Math.max(o,e))}function fe(e,o){return c.useReducer((r,n)=>o[r][n]??r,e)}var B="ScrollArea",[G]=j.createContextScope(B),[he,m]=G(B),J=c.forwardRef((e,o)=>{const{__scopeScrollArea:r,type:n="hover",dir:t,scrollHideDelay:l=600,...s}=e,[a,i]=c.useState(null),[h,u]=c.useState(null),[b,f]=c.useState(null),[v,w]=c.useState(null),[_,V]=c.useState(null),[x,D]=c.useState(0),[U,H]=c.useState(0),[z,L]=c.useState(!1),[N,O]=c.useState(!1),S=y.useComposedRefs(o,R=>i(R)),p=ie.useDirection(t);return d.jsx(he,{scope:r,type:n,dir:p,scrollHideDelay:l,scrollArea:a,viewport:h,onViewportChange:u,content:b,onContentChange:f,scrollbarX:v,onScrollbarXChange:w,scrollbarXEnabled:z,onScrollbarXEnabledChange:L,scrollbarY:_,onScrollbarYChange:V,scrollbarYEnabled:N,onScrollbarYEnabledChange:O,onCornerWidthChange:D,onCornerHeightChange:H,children:d.jsx(T.Primitive.div,{dir:p,...s,ref:S,style:{position:"relative","--radix-scroll-area-corner-width":x+"px","--radix-scroll-area-corner-height":U+"px",...e.style}})})});J.displayName=B;var K="ScrollAreaViewport",Q=c.forwardRef((e,o)=>{const{__scopeScrollArea:r,children:n,nonce:t,...l}=e,s=m(K,r),a=c.useRef(null),i=y.useComposedRefs(o,a,s.onViewportChange);return d.jsxs(d.Fragment,{children:[d.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:t}),d.jsx(T.Primitive.div,{"data-radix-scroll-area-viewport":"",...l,ref:i,style:{overflowX:s.scrollbarXEnabled?"scroll":"hidden",overflowY:s.scrollbarYEnabled?"scroll":"hidden",...e.style},children:d.jsx("div",{ref:s.onContentChange,style:{minWidth:"100%",display:"table"},children:n})})]})});Q.displayName=K;var g="ScrollAreaScrollbar",W=c.forwardRef((e,o)=>{const{forceMount:r,...n}=e,t=m(g,e.__scopeScrollArea),{onScrollbarXEnabledChange:l,onScrollbarYEnabledChange:s}=t,a=e.orientation==="horizontal";return c.useEffect(()=>(a?l(!0):s(!0),()=>{a?l(!1):s(!1)}),[a,l,s]),t.type==="hover"?d.jsx(be,{...n,ref:o,forceMount:r}):t.type==="scroll"?d.jsx(ve,{...n,ref:o,forceMount:r}):t.type==="auto"?d.jsx(Z,{...n,ref:o,forceMount:r}):t.type==="always"?d.jsx(F,{...n,ref:o}):null});W.displayName=g;var be=c.forwardRef((e,o)=>{const{forceMount:r,...n}=e,t=m(g,e.__scopeScrollArea),[l,s]=c.useState(!1);return c.useEffect(()=>{const a=t.scrollArea;let i=0;if(a){const h=()=>{window.clearTimeout(i),s(!0)},u=()=>{i=window.setTimeout(()=>s(!1),t.scrollHideDelay)};return a.addEventListener("pointerenter",h),a.addEventListener("pointerleave",u),()=>{window.clearTimeout(i),a.removeEventListener("pointerenter",h),a.removeEventListener("pointerleave",u)}}},[t.scrollArea,t.scrollHideDelay]),d.jsx(j.Presence,{present:r||l,children:d.jsx(Z,{"data-state":l?"visible":"hidden",...n,ref:o})})}),ve=c.forwardRef((e,o)=>{const{forceMount:r,...n}=e,t=m(g,e.__scopeScrollArea),l=e.orientation==="horizontal",s=Y(()=>i("SCROLL_END"),100),[a,i]=fe("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return c.useEffect(()=>{if(a==="idle"){const h=window.setTimeout(()=>i("HIDE"),t.scrollHideDelay);return()=>window.clearTimeout(h)}},[a,t.scrollHideDelay,i]),c.useEffect(()=>{const h=t.viewport,u=l?"scrollLeft":"scrollTop";if(h){let b=h[u];const f=()=>{const v=h[u];b!==v&&(i("SCROLL"),s()),b=v};return h.addEventListener("scroll",f),()=>h.removeEventListener("scroll",f)}},[t.viewport,l,i,s]),d.jsx(j.Presence,{present:r||a!=="hidden",children:d.jsx(F,{"data-state":a==="hidden"?"hidden":"visible",...n,ref:o,onPointerEnter:P.composeEventHandlers(e.onPointerEnter,()=>i("POINTER_ENTER")),onPointerLeave:P.composeEventHandlers(e.onPointerLeave,()=>i("POINTER_LEAVE"))})})}),Z=c.forwardRef((e,o)=>{const r=m(g,e.__scopeScrollArea),{forceMount:n,...t}=e,[l,s]=c.useState(!1),a=e.orientation==="horizontal",i=Y(()=>{if(r.viewport){const h=r.viewport.offsetWidth<r.viewport.scrollWidth,u=r.viewport.offsetHeight<r.viewport.scrollHeight;s(a?h:u)}},10);return E(r.viewport,i),E(r.content,i),d.jsx(j.Presence,{present:n||l,children:d.jsx(F,{"data-state":l?"visible":"hidden",...t,ref:o})})}),F=c.forwardRef((e,o)=>{const{orientation:r="vertical",...n}=e,t=m(g,e.__scopeScrollArea),l=c.useRef(null),s=c.useRef(0),[a,i]=c.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),h=ne(a.viewport,a.content),u={...n,sizes:a,onSizesChange:i,hasThumb:h>0&&h<1,onThumbChange:f=>l.current=f,onThumbPointerUp:()=>s.current=0,onThumbPointerDown:f=>s.current=f};function b(f,v){return xe(f,s.current,a,v)}return r==="horizontal"?d.jsx(Se,{...u,ref:o,onThumbPositionChange:()=>{if(t.viewport&&l.current){const f=t.viewport.scrollLeft,v=q(f,a,t.dir);l.current.style.transform=`translate3d(${v}px, 0, 0)`}},onWheelScroll:f=>{t.viewport&&(t.viewport.scrollLeft=f)},onDragScroll:f=>{t.viewport&&(t.viewport.scrollLeft=b(f,t.dir))}}):r==="vertical"?d.jsx(me,{...u,ref:o,onThumbPositionChange:()=>{if(t.viewport&&l.current){const f=t.viewport.scrollTop,v=q(f,a);l.current.style.transform=`translate3d(0, ${v}px, 0)`}},onWheelScroll:f=>{t.viewport&&(t.viewport.scrollTop=f)},onDragScroll:f=>{t.viewport&&(t.viewport.scrollTop=b(f))}}):null}),Se=c.forwardRef((e,o)=>{const{sizes:r,onSizesChange:n,...t}=e,l=m(g,e.__scopeScrollArea),[s,a]=c.useState(),i=c.useRef(null),h=y.useComposedRefs(o,i,l.onScrollbarXChange);return c.useEffect(()=>{i.current&&a(getComputedStyle(i.current))},[i]),d.jsx(re,{"data-orientation":"horizontal",...t,ref:h,sizes:r,style:{bottom:0,left:l.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:l.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":X(r)+"px",...e.style},onThumbPointerDown:u=>e.onThumbPointerDown(u.x),onDragScroll:u=>e.onDragScroll(u.x),onWheelScroll:(u,b)=>{if(l.viewport){const f=l.viewport.scrollLeft+u.deltaX;e.onWheelScroll(f),se(f,b)&&u.preventDefault()}},onResize:()=>{i.current&&l.viewport&&s&&n({content:l.viewport.scrollWidth,viewport:l.viewport.offsetWidth,scrollbar:{size:i.current.clientWidth,paddingStart:k(s.paddingLeft),paddingEnd:k(s.paddingRight)}})}})}),me=c.forwardRef((e,o)=>{const{sizes:r,onSizesChange:n,...t}=e,l=m(g,e.__scopeScrollArea),[s,a]=c.useState(),i=c.useRef(null),h=y.useComposedRefs(o,i,l.onScrollbarYChange);return c.useEffect(()=>{i.current&&a(getComputedStyle(i.current))},[i]),d.jsx(re,{"data-orientation":"vertical",...t,ref:h,sizes:r,style:{top:0,right:l.dir==="ltr"?0:void 0,left:l.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":X(r)+"px",...e.style},onThumbPointerDown:u=>e.onThumbPointerDown(u.y),onDragScroll:u=>e.onDragScroll(u.y),onWheelScroll:(u,b)=>{if(l.viewport){const f=l.viewport.scrollTop+u.deltaY;e.onWheelScroll(f),se(f,b)&&u.preventDefault()}},onResize:()=>{i.current&&l.viewport&&s&&n({content:l.viewport.scrollHeight,viewport:l.viewport.offsetHeight,scrollbar:{size:i.current.clientHeight,paddingStart:k(s.paddingTop),paddingEnd:k(s.paddingBottom)}})}})}),[pe,ee]=G(g),re=c.forwardRef((e,o)=>{const{__scopeScrollArea:r,sizes:n,hasThumb:t,onThumbChange:l,onThumbPointerUp:s,onThumbPointerDown:a,onThumbPositionChange:i,onDragScroll:h,onWheelScroll:u,onResize:b,...f}=e,v=m(g,r),[w,_]=c.useState(null),V=y.useComposedRefs(o,S=>_(S)),x=c.useRef(null),D=c.useRef(""),U=v.viewport,H=n.content-n.viewport,z=C.useCallbackRef(u),L=C.useCallbackRef(i),N=Y(b,10);function O(S){if(x.current){const p=S.clientX-x.current.left,R=S.clientY-x.current.top;h({x:p,y:R})}}return c.useEffect(()=>{const S=p=>{const R=p.target;w?.contains(R)&&z(p,H)};return document.addEventListener("wheel",S,{passive:!1}),()=>document.removeEventListener("wheel",S,{passive:!1})},[U,w,H,z]),c.useEffect(L,[n,L]),E(w,N),E(v.content,N),d.jsx(pe,{scope:r,scrollbar:w,hasThumb:t,onThumbChange:C.useCallbackRef(l),onThumbPointerUp:C.useCallbackRef(s),onThumbPositionChange:L,onThumbPointerDown:C.useCallbackRef(a),children:d.jsx(T.Primitive.div,{...f,ref:V,style:{position:"absolute",...f.style},onPointerDown:P.composeEventHandlers(e.onPointerDown,S=>{S.button===0&&(S.target.setPointerCapture(S.pointerId),x.current=w.getBoundingClientRect(),D.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",v.viewport&&(v.viewport.style.scrollBehavior="auto"),O(S))}),onPointerMove:P.composeEventHandlers(e.onPointerMove,O),onPointerUp:P.composeEventHandlers(e.onPointerUp,S=>{const p=S.target;p.hasPointerCapture(S.pointerId)&&p.releasePointerCapture(S.pointerId),document.body.style.webkitUserSelect=D.current,v.viewport&&(v.viewport.style.scrollBehavior=""),x.current=null})})})}),M="ScrollAreaThumb",oe=c.forwardRef((e,o)=>{const{forceMount:r,...n}=e,t=ee(M,e.__scopeScrollArea);return d.jsx(j.Presence,{present:r||t.hasThumb,children:d.jsx(we,{ref:o,...n})})}),we=c.forwardRef((e,o)=>{const{__scopeScrollArea:r,style:n,...t}=e,l=m(M,r),s=ee(M,r),{onThumbPositionChange:a}=s,i=y.useComposedRefs(o,b=>s.onThumbChange(b)),h=c.useRef(void 0),u=Y(()=>{h.current&&(h.current(),h.current=void 0)},100);return c.useEffect(()=>{const b=l.viewport;if(b){const f=()=>{if(u(),!h.current){const v=Ce(b,a);h.current=v,a()}};return a(),b.addEventListener("scroll",f),()=>b.removeEventListener("scroll",f)}},[l.viewport,u,a]),d.jsx(T.Primitive.div,{"data-state":s.hasThumb?"visible":"hidden",...t,ref:i,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...n},onPointerDownCapture:P.composeEventHandlers(e.onPointerDownCapture,b=>{const v=b.target.getBoundingClientRect(),w=b.clientX-v.left,_=b.clientY-v.top;s.onThumbPointerDown({x:w,y:_})}),onPointerUp:P.composeEventHandlers(e.onPointerUp,s.onThumbPointerUp)})});oe.displayName=M;var $="ScrollAreaCorner",te=c.forwardRef((e,o)=>{const r=m($,e.__scopeScrollArea),n=!!(r.scrollbarX&&r.scrollbarY);return r.type!=="scroll"&&n?d.jsx(ge,{...e,ref:o}):null});te.displayName=$;var ge=c.forwardRef((e,o)=>{const{__scopeScrollArea:r,...n}=e,t=m($,r),[l,s]=c.useState(0),[a,i]=c.useState(0),h=!!(l&&a);return E(t.scrollbarX,()=>{const u=t.scrollbarX?.offsetHeight||0;t.onCornerHeightChange(u),i(u)}),E(t.scrollbarY,()=>{const u=t.scrollbarY?.offsetWidth||0;t.onCornerWidthChange(u),s(u)}),h?d.jsx(T.Primitive.div,{...n,ref:o,style:{width:l,height:a,position:"absolute",right:t.dir==="ltr"?0:void 0,left:t.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function k(e){return e?parseInt(e,10):0}function ne(e,o){const r=e/o;return isNaN(r)?0:r}function X(e){const o=ne(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,n=(e.scrollbar.size-r)*o;return Math.max(n,18)}function xe(e,o,r,n="ltr"){const t=X(r),l=t/2,s=o||l,a=t-s,i=r.scrollbar.paddingStart+s,h=r.scrollbar.size-r.scrollbar.paddingEnd-a,u=r.content-r.viewport,b=n==="ltr"?[0,u]:[u*-1,0];return le([i,h],b)(e)}function q(e,o,r="ltr"){const n=X(o),t=o.scrollbar.paddingStart+o.scrollbar.paddingEnd,l=o.scrollbar.size-t,s=o.content-o.viewport,a=l-n,i=r==="ltr"?[0,s]:[s*-1,0],h=de(e,i);return le([0,s],[0,a])(h)}function le(e,o){return r=>{if(e[0]===e[1]||o[0]===o[1])return o[0];const n=(o[1]-o[0])/(e[1]-e[0]);return o[0]+n*(r-e[0])}}function se(e,o){return e>0&&e<o}var Ce=(e,o=()=>{})=>{let r={left:e.scrollLeft,top:e.scrollTop},n=0;return(function t(){const l={left:e.scrollLeft,top:e.scrollTop},s=r.left!==l.left,a=r.top!==l.top;(s||a)&&o(),r=l,n=window.requestAnimationFrame(t)})(),()=>window.cancelAnimationFrame(n)};function Y(e,o){const r=C.useCallbackRef(e),n=c.useRef(0);return c.useEffect(()=>()=>window.clearTimeout(n.current),[]),c.useCallback(()=>{window.clearTimeout(n.current),n.current=window.setTimeout(r,o)},[r,o])}function E(e,o){const r=C.useCallbackRef(o);T.useLayoutEffect2(()=>{let n=0;if(e){const t=new ResizeObserver(()=>{cancelAnimationFrame(n),n=window.requestAnimationFrame(r)});return t.observe(e),()=>{window.cancelAnimationFrame(n),t.unobserve(e)}}},[e,r])}var Pe=J,Re=Q,Ae=te;function Ee({className:e,children:o,...r}){return d.jsx(Pe,{className:A.cn("relative",e),"data-slot":"scroll-area-root",...r,children:o})}const ce=I.createContext(void 0);function Te({children:e,orientation:o="vertical",scrollHideDelay:r=500,type:n="hover"}){const t=I.useMemo(()=>({orientation:o,scrollHideDelay:r,type:n}),[o,r,n]);return d.jsx(ce.Provider,{value:t,children:e})}function ae(){const e=I.use(ce);if(e===void 0)throw new Error("useScrollArea must be used within a ScrollAreaProvider");return e}function ye({className:e,children:o,...r}){return d.jsx(Re,{className:A.cn("size-full rounded-[inherit] transition-[color,box-shadow] focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-primary",e),"data-slot":"scroll-area-viewport",...r,children:o})}function _e({className:e,children:o,...r}){const{orientation:n}=ae(),t="flex touch-none select-none bg-transparent p-1 transition-colors data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out-0 data-[state=visible]:fade-in-0",l="h-full w-3.5 border-l border-l-transparent",s="h-3.5 flex-col border-t border-t-transparent";return n==="both"?d.jsxs(d.Fragment,{children:[d.jsx(W,{className:A.cn(t,l,e),"data-slot":"scroll-area-vertical-scrollbar",orientation:"vertical",...r,children:o}),d.jsx(W,{className:A.cn(t,s,e),"data-slot":"scroll-area-horizontal-scrollbar",orientation:"horizontal",...r,children:o})]}):d.jsx(W,{className:A.cn(t,n==="vertical"&&l,n==="horizontal"&&s,e),"data-slot":`scroll-area-${n}-scrollbar`,orientation:n,...r,children:o})}function Le({className:e,...o}){return d.jsx(oe,{className:A.cn("relative flex-1 rounded-full bg-contrast-200",e),"data-slot":"scroll-area-thumb",...o})}function je({className:e,...o}){return d.jsx(Ae,{className:e,"data-slot":"scroll-area-corner",...o})}exports.ScrollAreaBar=_e;exports.ScrollAreaCorner=je;exports.ScrollAreaProvider=Te;exports.ScrollAreaRoot=Ee;exports.ScrollAreaThumb=Le;exports.ScrollAreaViewport=ye;exports.useScrollArea=ae;
2
- //# sourceMappingURL=scroll-area-corner-CEc2oMZt.cjs.map
1
+ "use strict";const d=require("react/jsx-runtime"),A=require("./utils-LBH114_M.cjs"),I=require("react"),T=require("./index-Bw7_huW8.cjs"),j=require("./index-CnXYiTkW.cjs"),y=require("./index-_XxjJPRD.cjs"),C=require("./index-CzY-WZXL.cjs"),ie=require("./index-Cje7xxa1.cjs"),P=require("./index-BqyOu62e.cjs");function ue(e){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(o,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}return o.default=e,Object.freeze(o)}const c=ue(I);function de(e,[o,r]){return Math.min(r,Math.max(o,e))}function fe(e,o){return c.useReducer((r,n)=>o[r][n]??r,e)}var B="ScrollArea",[G]=j.createContextScope(B),[he,m]=G(B),J=c.forwardRef((e,o)=>{const{__scopeScrollArea:r,type:n="hover",dir:t,scrollHideDelay:l=600,...s}=e,[a,i]=c.useState(null),[h,u]=c.useState(null),[b,f]=c.useState(null),[v,w]=c.useState(null),[_,V]=c.useState(null),[x,D]=c.useState(0),[U,H]=c.useState(0),[z,L]=c.useState(!1),[N,O]=c.useState(!1),S=y.useComposedRefs(o,R=>i(R)),p=ie.useDirection(t);return d.jsx(he,{scope:r,type:n,dir:p,scrollHideDelay:l,scrollArea:a,viewport:h,onViewportChange:u,content:b,onContentChange:f,scrollbarX:v,onScrollbarXChange:w,scrollbarXEnabled:z,onScrollbarXEnabledChange:L,scrollbarY:_,onScrollbarYChange:V,scrollbarYEnabled:N,onScrollbarYEnabledChange:O,onCornerWidthChange:D,onCornerHeightChange:H,children:d.jsx(T.Primitive.div,{dir:p,...s,ref:S,style:{position:"relative","--radix-scroll-area-corner-width":x+"px","--radix-scroll-area-corner-height":U+"px",...e.style}})})});J.displayName=B;var K="ScrollAreaViewport",Q=c.forwardRef((e,o)=>{const{__scopeScrollArea:r,children:n,nonce:t,...l}=e,s=m(K,r),a=c.useRef(null),i=y.useComposedRefs(o,a,s.onViewportChange);return d.jsxs(d.Fragment,{children:[d.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:t}),d.jsx(T.Primitive.div,{"data-radix-scroll-area-viewport":"",...l,ref:i,style:{overflowX:s.scrollbarXEnabled?"scroll":"hidden",overflowY:s.scrollbarYEnabled?"scroll":"hidden",...e.style},children:d.jsx("div",{ref:s.onContentChange,style:{minWidth:"100%",display:"table"},children:n})})]})});Q.displayName=K;var g="ScrollAreaScrollbar",W=c.forwardRef((e,o)=>{const{forceMount:r,...n}=e,t=m(g,e.__scopeScrollArea),{onScrollbarXEnabledChange:l,onScrollbarYEnabledChange:s}=t,a=e.orientation==="horizontal";return c.useEffect(()=>(a?l(!0):s(!0),()=>{a?l(!1):s(!1)}),[a,l,s]),t.type==="hover"?d.jsx(be,{...n,ref:o,forceMount:r}):t.type==="scroll"?d.jsx(ve,{...n,ref:o,forceMount:r}):t.type==="auto"?d.jsx(Z,{...n,ref:o,forceMount:r}):t.type==="always"?d.jsx(F,{...n,ref:o}):null});W.displayName=g;var be=c.forwardRef((e,o)=>{const{forceMount:r,...n}=e,t=m(g,e.__scopeScrollArea),[l,s]=c.useState(!1);return c.useEffect(()=>{const a=t.scrollArea;let i=0;if(a){const h=()=>{window.clearTimeout(i),s(!0)},u=()=>{i=window.setTimeout(()=>s(!1),t.scrollHideDelay)};return a.addEventListener("pointerenter",h),a.addEventListener("pointerleave",u),()=>{window.clearTimeout(i),a.removeEventListener("pointerenter",h),a.removeEventListener("pointerleave",u)}}},[t.scrollArea,t.scrollHideDelay]),d.jsx(j.Presence,{present:r||l,children:d.jsx(Z,{"data-state":l?"visible":"hidden",...n,ref:o})})}),ve=c.forwardRef((e,o)=>{const{forceMount:r,...n}=e,t=m(g,e.__scopeScrollArea),l=e.orientation==="horizontal",s=Y(()=>i("SCROLL_END"),100),[a,i]=fe("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return c.useEffect(()=>{if(a==="idle"){const h=window.setTimeout(()=>i("HIDE"),t.scrollHideDelay);return()=>window.clearTimeout(h)}},[a,t.scrollHideDelay,i]),c.useEffect(()=>{const h=t.viewport,u=l?"scrollLeft":"scrollTop";if(h){let b=h[u];const f=()=>{const v=h[u];b!==v&&(i("SCROLL"),s()),b=v};return h.addEventListener("scroll",f),()=>h.removeEventListener("scroll",f)}},[t.viewport,l,i,s]),d.jsx(j.Presence,{present:r||a!=="hidden",children:d.jsx(F,{"data-state":a==="hidden"?"hidden":"visible",...n,ref:o,onPointerEnter:P.composeEventHandlers(e.onPointerEnter,()=>i("POINTER_ENTER")),onPointerLeave:P.composeEventHandlers(e.onPointerLeave,()=>i("POINTER_LEAVE"))})})}),Z=c.forwardRef((e,o)=>{const r=m(g,e.__scopeScrollArea),{forceMount:n,...t}=e,[l,s]=c.useState(!1),a=e.orientation==="horizontal",i=Y(()=>{if(r.viewport){const h=r.viewport.offsetWidth<r.viewport.scrollWidth,u=r.viewport.offsetHeight<r.viewport.scrollHeight;s(a?h:u)}},10);return E(r.viewport,i),E(r.content,i),d.jsx(j.Presence,{present:n||l,children:d.jsx(F,{"data-state":l?"visible":"hidden",...t,ref:o})})}),F=c.forwardRef((e,o)=>{const{orientation:r="vertical",...n}=e,t=m(g,e.__scopeScrollArea),l=c.useRef(null),s=c.useRef(0),[a,i]=c.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),h=ne(a.viewport,a.content),u={...n,sizes:a,onSizesChange:i,hasThumb:h>0&&h<1,onThumbChange:f=>l.current=f,onThumbPointerUp:()=>s.current=0,onThumbPointerDown:f=>s.current=f};function b(f,v){return xe(f,s.current,a,v)}return r==="horizontal"?d.jsx(Se,{...u,ref:o,onThumbPositionChange:()=>{if(t.viewport&&l.current){const f=t.viewport.scrollLeft,v=q(f,a,t.dir);l.current.style.transform=`translate3d(${v}px, 0, 0)`}},onWheelScroll:f=>{t.viewport&&(t.viewport.scrollLeft=f)},onDragScroll:f=>{t.viewport&&(t.viewport.scrollLeft=b(f,t.dir))}}):r==="vertical"?d.jsx(me,{...u,ref:o,onThumbPositionChange:()=>{if(t.viewport&&l.current){const f=t.viewport.scrollTop,v=q(f,a);l.current.style.transform=`translate3d(0, ${v}px, 0)`}},onWheelScroll:f=>{t.viewport&&(t.viewport.scrollTop=f)},onDragScroll:f=>{t.viewport&&(t.viewport.scrollTop=b(f))}}):null}),Se=c.forwardRef((e,o)=>{const{sizes:r,onSizesChange:n,...t}=e,l=m(g,e.__scopeScrollArea),[s,a]=c.useState(),i=c.useRef(null),h=y.useComposedRefs(o,i,l.onScrollbarXChange);return c.useEffect(()=>{i.current&&a(getComputedStyle(i.current))},[i]),d.jsx(re,{"data-orientation":"horizontal",...t,ref:h,sizes:r,style:{bottom:0,left:l.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:l.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":X(r)+"px",...e.style},onThumbPointerDown:u=>e.onThumbPointerDown(u.x),onDragScroll:u=>e.onDragScroll(u.x),onWheelScroll:(u,b)=>{if(l.viewport){const f=l.viewport.scrollLeft+u.deltaX;e.onWheelScroll(f),se(f,b)&&u.preventDefault()}},onResize:()=>{i.current&&l.viewport&&s&&n({content:l.viewport.scrollWidth,viewport:l.viewport.offsetWidth,scrollbar:{size:i.current.clientWidth,paddingStart:k(s.paddingLeft),paddingEnd:k(s.paddingRight)}})}})}),me=c.forwardRef((e,o)=>{const{sizes:r,onSizesChange:n,...t}=e,l=m(g,e.__scopeScrollArea),[s,a]=c.useState(),i=c.useRef(null),h=y.useComposedRefs(o,i,l.onScrollbarYChange);return c.useEffect(()=>{i.current&&a(getComputedStyle(i.current))},[i]),d.jsx(re,{"data-orientation":"vertical",...t,ref:h,sizes:r,style:{top:0,right:l.dir==="ltr"?0:void 0,left:l.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":X(r)+"px",...e.style},onThumbPointerDown:u=>e.onThumbPointerDown(u.y),onDragScroll:u=>e.onDragScroll(u.y),onWheelScroll:(u,b)=>{if(l.viewport){const f=l.viewport.scrollTop+u.deltaY;e.onWheelScroll(f),se(f,b)&&u.preventDefault()}},onResize:()=>{i.current&&l.viewport&&s&&n({content:l.viewport.scrollHeight,viewport:l.viewport.offsetHeight,scrollbar:{size:i.current.clientHeight,paddingStart:k(s.paddingTop),paddingEnd:k(s.paddingBottom)}})}})}),[pe,ee]=G(g),re=c.forwardRef((e,o)=>{const{__scopeScrollArea:r,sizes:n,hasThumb:t,onThumbChange:l,onThumbPointerUp:s,onThumbPointerDown:a,onThumbPositionChange:i,onDragScroll:h,onWheelScroll:u,onResize:b,...f}=e,v=m(g,r),[w,_]=c.useState(null),V=y.useComposedRefs(o,S=>_(S)),x=c.useRef(null),D=c.useRef(""),U=v.viewport,H=n.content-n.viewport,z=C.useCallbackRef(u),L=C.useCallbackRef(i),N=Y(b,10);function O(S){if(x.current){const p=S.clientX-x.current.left,R=S.clientY-x.current.top;h({x:p,y:R})}}return c.useEffect(()=>{const S=p=>{const R=p.target;w?.contains(R)&&z(p,H)};return document.addEventListener("wheel",S,{passive:!1}),()=>document.removeEventListener("wheel",S,{passive:!1})},[U,w,H,z]),c.useEffect(L,[n,L]),E(w,N),E(v.content,N),d.jsx(pe,{scope:r,scrollbar:w,hasThumb:t,onThumbChange:C.useCallbackRef(l),onThumbPointerUp:C.useCallbackRef(s),onThumbPositionChange:L,onThumbPointerDown:C.useCallbackRef(a),children:d.jsx(T.Primitive.div,{...f,ref:V,style:{position:"absolute",...f.style},onPointerDown:P.composeEventHandlers(e.onPointerDown,S=>{S.button===0&&(S.target.setPointerCapture(S.pointerId),x.current=w.getBoundingClientRect(),D.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",v.viewport&&(v.viewport.style.scrollBehavior="auto"),O(S))}),onPointerMove:P.composeEventHandlers(e.onPointerMove,O),onPointerUp:P.composeEventHandlers(e.onPointerUp,S=>{const p=S.target;p.hasPointerCapture(S.pointerId)&&p.releasePointerCapture(S.pointerId),document.body.style.webkitUserSelect=D.current,v.viewport&&(v.viewport.style.scrollBehavior=""),x.current=null})})})}),M="ScrollAreaThumb",oe=c.forwardRef((e,o)=>{const{forceMount:r,...n}=e,t=ee(M,e.__scopeScrollArea);return d.jsx(j.Presence,{present:r||t.hasThumb,children:d.jsx(we,{ref:o,...n})})}),we=c.forwardRef((e,o)=>{const{__scopeScrollArea:r,style:n,...t}=e,l=m(M,r),s=ee(M,r),{onThumbPositionChange:a}=s,i=y.useComposedRefs(o,b=>s.onThumbChange(b)),h=c.useRef(void 0),u=Y(()=>{h.current&&(h.current(),h.current=void 0)},100);return c.useEffect(()=>{const b=l.viewport;if(b){const f=()=>{if(u(),!h.current){const v=Ce(b,a);h.current=v,a()}};return a(),b.addEventListener("scroll",f),()=>b.removeEventListener("scroll",f)}},[l.viewport,u,a]),d.jsx(T.Primitive.div,{"data-state":s.hasThumb?"visible":"hidden",...t,ref:i,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...n},onPointerDownCapture:P.composeEventHandlers(e.onPointerDownCapture,b=>{const v=b.target.getBoundingClientRect(),w=b.clientX-v.left,_=b.clientY-v.top;s.onThumbPointerDown({x:w,y:_})}),onPointerUp:P.composeEventHandlers(e.onPointerUp,s.onThumbPointerUp)})});oe.displayName=M;var $="ScrollAreaCorner",te=c.forwardRef((e,o)=>{const r=m($,e.__scopeScrollArea),n=!!(r.scrollbarX&&r.scrollbarY);return r.type!=="scroll"&&n?d.jsx(ge,{...e,ref:o}):null});te.displayName=$;var ge=c.forwardRef((e,o)=>{const{__scopeScrollArea:r,...n}=e,t=m($,r),[l,s]=c.useState(0),[a,i]=c.useState(0),h=!!(l&&a);return E(t.scrollbarX,()=>{const u=t.scrollbarX?.offsetHeight||0;t.onCornerHeightChange(u),i(u)}),E(t.scrollbarY,()=>{const u=t.scrollbarY?.offsetWidth||0;t.onCornerWidthChange(u),s(u)}),h?d.jsx(T.Primitive.div,{...n,ref:o,style:{width:l,height:a,position:"absolute",right:t.dir==="ltr"?0:void 0,left:t.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function k(e){return e?parseInt(e,10):0}function ne(e,o){const r=e/o;return isNaN(r)?0:r}function X(e){const o=ne(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,n=(e.scrollbar.size-r)*o;return Math.max(n,18)}function xe(e,o,r,n="ltr"){const t=X(r),l=t/2,s=o||l,a=t-s,i=r.scrollbar.paddingStart+s,h=r.scrollbar.size-r.scrollbar.paddingEnd-a,u=r.content-r.viewport,b=n==="ltr"?[0,u]:[u*-1,0];return le([i,h],b)(e)}function q(e,o,r="ltr"){const n=X(o),t=o.scrollbar.paddingStart+o.scrollbar.paddingEnd,l=o.scrollbar.size-t,s=o.content-o.viewport,a=l-n,i=r==="ltr"?[0,s]:[s*-1,0],h=de(e,i);return le([0,s],[0,a])(h)}function le(e,o){return r=>{if(e[0]===e[1]||o[0]===o[1])return o[0];const n=(o[1]-o[0])/(e[1]-e[0]);return o[0]+n*(r-e[0])}}function se(e,o){return e>0&&e<o}var Ce=(e,o=()=>{})=>{let r={left:e.scrollLeft,top:e.scrollTop},n=0;return(function t(){const l={left:e.scrollLeft,top:e.scrollTop},s=r.left!==l.left,a=r.top!==l.top;(s||a)&&o(),r=l,n=window.requestAnimationFrame(t)})(),()=>window.cancelAnimationFrame(n)};function Y(e,o){const r=C.useCallbackRef(e),n=c.useRef(0);return c.useEffect(()=>()=>window.clearTimeout(n.current),[]),c.useCallback(()=>{window.clearTimeout(n.current),n.current=window.setTimeout(r,o)},[r,o])}function E(e,o){const r=C.useCallbackRef(o);T.useLayoutEffect2(()=>{let n=0;if(e){const t=new ResizeObserver(()=>{cancelAnimationFrame(n),n=window.requestAnimationFrame(r)});return t.observe(e),()=>{window.cancelAnimationFrame(n),t.unobserve(e)}}},[e,r])}var Pe=J,Re=Q,Ae=te;function Ee({className:e,children:o,...r}){return d.jsx(Pe,{className:A.cn("relative overflow-hidden",e),"data-slot":"scroll-area-root",...r,children:o})}const ce=I.createContext(void 0);function Te({children:e,orientation:o="vertical",scrollHideDelay:r=500,type:n="hover"}){const t=I.useMemo(()=>({orientation:o,scrollHideDelay:r,type:n}),[o,r,n]);return d.jsx(ce.Provider,{value:t,children:e})}function ae(){const e=I.use(ce);if(e===void 0)throw new Error("useScrollArea must be used within a ScrollAreaProvider");return e}function ye({className:e,children:o,...r}){return d.jsx(Re,{className:A.cn("size-full rounded-[inherit] transition-[color,box-shadow] focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-primary",e),"data-slot":"scroll-area-viewport",...r,children:o})}function _e({className:e,children:o,...r}){const{orientation:n}=ae(),t="flex touch-none select-none bg-transparent p-1 transition-colors data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out-0 data-[state=visible]:fade-in-0",l="h-full w-3.5 border-l border-l-transparent",s="h-3.5 flex-col border-t border-t-transparent";return n==="both"?d.jsxs(d.Fragment,{children:[d.jsx(W,{className:A.cn(t,l,e),"data-slot":"scroll-area-vertical-scrollbar",orientation:"vertical",...r,children:o}),d.jsx(W,{className:A.cn(t,s,e),"data-slot":"scroll-area-horizontal-scrollbar",orientation:"horizontal",...r,children:o})]}):d.jsx(W,{className:A.cn(t,n==="vertical"&&l,n==="horizontal"&&s,e),"data-slot":`scroll-area-${n}-scrollbar`,orientation:n,...r,children:o})}function Le({className:e,...o}){return d.jsx(oe,{className:A.cn("relative flex-1 rounded-full bg-contrast-200",e),"data-slot":"scroll-area-thumb",...o})}function je({className:e,...o}){return d.jsx(Ae,{className:e,"data-slot":"scroll-area-corner",...o})}exports.ScrollAreaBar=_e;exports.ScrollAreaCorner=je;exports.ScrollAreaProvider=Te;exports.ScrollAreaRoot=Ee;exports.ScrollAreaThumb=Le;exports.ScrollAreaViewport=ye;exports.useScrollArea=ae;
2
+ //# sourceMappingURL=scroll-area-corner-DsyetkPH.cjs.map