lizaui 8.2.9 → 8.4.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/button/index.cjs.js +1 -1
- package/dist/button/index.es.js +1 -1
- package/dist/calendar/index.cjs.js +2 -2
- package/dist/calendar/index.cjs.js.map +1 -1
- package/dist/calendar/index.es.js +9 -9
- package/dist/checkbox/index.cjs.js +1 -1
- package/dist/checkbox/index.es.js +1 -1
- package/dist/chip/index.cjs.js +1 -1
- package/dist/chip/index.cjs.js.map +1 -1
- package/dist/chip/index.es.js +2 -2
- package/dist/chunks/bundle-mjs-2oQ8XDAz.js +2748 -0
- package/dist/chunks/bundle-mjs-2oQ8XDAz.js.map +1 -0
- package/dist/chunks/bundle-mjs-8z5d_e-8.js +2 -0
- package/dist/chunks/bundle-mjs-8z5d_e-8.js.map +1 -0
- package/dist/chunks/button-DFrxQHAW.js +2 -0
- package/dist/chunks/{button-OdZ6El_t.js.map → button-DFrxQHAW.js.map} +1 -1
- package/dist/chunks/{button-CSuKvE1x.js → button-uo4_Xad_.js} +4 -4
- package/dist/chunks/{button-CSuKvE1x.js.map → button-uo4_Xad_.js.map} +1 -1
- package/dist/chunks/{checkbox-BhW9i0pm.js → checkbox-BvvZL9H4.js} +3 -3
- package/dist/chunks/{checkbox-BhW9i0pm.js.map → checkbox-BvvZL9H4.js.map} +1 -1
- package/dist/chunks/checkbox-w969v4lK.js +2 -0
- package/dist/chunks/{checkbox-CWDPVAn2.js.map → checkbox-w969v4lK.js.map} +1 -1
- package/dist/chunks/clsx-C11secjj.js +2 -0
- package/dist/chunks/clsx-C11secjj.js.map +1 -0
- package/dist/chunks/clsx-OuTLNxxd.js +17 -0
- package/dist/chunks/clsx-OuTLNxxd.js.map +1 -0
- package/dist/chunks/features-animation-BRAvwYFN.js +3437 -0
- package/dist/chunks/features-animation-BRAvwYFN.js.map +1 -0
- package/dist/chunks/features-animation-BoXKk5t2.js +2 -0
- package/dist/chunks/features-animation-BoXKk5t2.js.map +1 -0
- package/dist/chunks/index-BbDfYVLO.js +174 -0
- package/dist/chunks/index-BbDfYVLO.js.map +1 -0
- package/dist/chunks/index-CL73JQgs.js +2 -0
- package/dist/chunks/index-CL73JQgs.js.map +1 -0
- package/dist/chunks/{index-BOQuZ0gG.js → index-D29mdTf5.js} +2 -2
- package/dist/chunks/{index-BOQuZ0gG.js.map → index-D29mdTf5.js.map} +1 -1
- package/dist/chunks/index-DC9BfnBH.js +208 -0
- package/dist/chunks/index-DC9BfnBH.js.map +1 -0
- package/dist/chunks/index-lrI_r1ww.js +10 -0
- package/dist/chunks/index-lrI_r1ww.js.map +1 -0
- package/dist/chunks/index-nwdlcB7h.js +2 -0
- package/dist/chunks/{index-BxK4T-v8.js.map → index-nwdlcB7h.js.map} +1 -1
- package/dist/chunks/label-error-B8Rq-HGY.js +2 -0
- package/dist/chunks/{label-error-Ax74Uy3M.js.map → label-error-B8Rq-HGY.js.map} +1 -1
- package/dist/chunks/label-error-BOE4Qj5S.js +10 -0
- package/dist/chunks/{label-error-DGQqDKTV.js.map → label-error-BOE4Qj5S.js.map} +1 -1
- package/dist/chunks/proxy-BwQyOw8U.js +2 -0
- package/dist/chunks/proxy-BwQyOw8U.js.map +1 -0
- package/dist/chunks/proxy-kv_Ue2k_.js +1346 -0
- package/dist/chunks/proxy-kv_Ue2k_.js.map +1 -0
- package/dist/chunks/ripple-CzU7YM2G.js +69 -0
- package/dist/chunks/{ripple-DMI95LHg.js.map → ripple-CzU7YM2G.js.map} +1 -1
- package/dist/chunks/ripple-SBteSEo3.js +2 -0
- package/dist/chunks/{ripple-DieNd7XQ.js.map → ripple-SBteSEo3.js.map} +1 -1
- package/dist/chunks/{scroll-area-C8l3z7wv.js → scroll-area-B0mWCpSW.js} +2 -2
- package/dist/chunks/{scroll-area-C8l3z7wv.js.map → scroll-area-B0mWCpSW.js.map} +1 -1
- package/dist/chunks/{scroll-area-zt_z9PRo.js → scroll-area-CE7quLQL.js} +3 -3
- package/dist/chunks/{scroll-area-zt_z9PRo.js.map → scroll-area-CE7quLQL.js.map} +1 -1
- package/dist/chunks/{select-qaP_vaF3.js → select-BwMqXSzv.js} +3 -3
- package/dist/chunks/{select-qaP_vaF3.js.map → select-BwMqXSzv.js.map} +1 -1
- package/dist/chunks/{select-CC7ump6t.js → select-DGSPwoy8.js} +2 -2
- package/dist/chunks/{select-CC7ump6t.js.map → select-DGSPwoy8.js.map} +1 -1
- package/dist/chunks/{textarea-BIy5pTb5.js → textarea-BYbersWf.js} +38 -37
- package/dist/chunks/{textarea-BIy5pTb5.js.map → textarea-BYbersWf.js.map} +1 -1
- package/dist/chunks/{textarea-Cklud2kp.js → textarea-D9X4fUkV.js} +12 -12
- package/dist/chunks/{textarea-Cklud2kp.js.map → textarea-D9X4fUkV.js.map} +1 -1
- package/dist/chunks/tooltip-BPp8Maa7.js +2 -0
- package/dist/chunks/{tooltip-DGFz59KW.js.map → tooltip-BPp8Maa7.js.map} +1 -1
- package/dist/chunks/{tooltip-B-5G3VVC.js → tooltip-Bf9DqrJk.js} +3 -3
- package/dist/chunks/{tooltip-B-5G3VVC.js.map → tooltip-Bf9DqrJk.js.map} +1 -1
- package/dist/chunks/tv-CGkrzbji.js +2 -0
- package/dist/chunks/tv-CGkrzbji.js.map +1 -0
- package/dist/chunks/tv-DQO4decF.js +268 -0
- package/dist/chunks/tv-DQO4decF.js.map +1 -0
- package/dist/chunks/utils-CvyT6Z0O.js +9 -0
- package/dist/chunks/{utils-B6yFEsav.js.map → utils-CvyT6Z0O.js.map} +1 -1
- package/dist/chunks/utils-CxdrMFeI.js +2 -0
- package/dist/chunks/{utils-IjLH3w2e.js.map → utils-CxdrMFeI.js.map} +1 -1
- package/dist/chunks/v4-BysszJq8.js +31 -0
- package/dist/chunks/v4-BysszJq8.js.map +1 -0
- package/dist/chunks/v4-CqdK_b8Y.js +2 -0
- package/dist/chunks/v4-CqdK_b8Y.js.map +1 -0
- package/dist/divider/index.cjs.js +1 -1
- package/dist/divider/index.es.js +1 -1
- package/dist/modal/index.cjs.js +1 -1
- package/dist/modal/index.cjs.js.map +1 -1
- package/dist/modal/index.es.js +17 -16
- package/dist/modal/index.es.js.map +1 -1
- package/dist/pagination/index.cjs.js +1 -1
- package/dist/pagination/index.cjs.js.map +1 -1
- package/dist/pagination/index.es.js +18 -18
- package/dist/phone-input/index.cjs.js +1 -1
- package/dist/phone-input/index.cjs.js.map +1 -1
- package/dist/phone-input/index.es.js +35 -35
- package/dist/ripple/index.cjs.js +1 -1
- package/dist/ripple/index.es.js +1 -1
- package/dist/select-input/index.cjs.js +2 -2
- package/dist/select-input/index.cjs.js.map +1 -1
- package/dist/select-input/index.es.js +5 -5
- package/dist/table/index.cjs.js +1 -1
- package/dist/table/index.cjs.js.map +1 -1
- package/dist/table/index.es.js +17 -17
- package/dist/table/index.es.js.map +1 -1
- package/dist/time-input/index.cjs.js +2 -2
- package/dist/time-input/index.cjs.js.map +1 -1
- package/dist/time-input/index.es.js +5 -5
- package/dist/tooltip/index.cjs.js +1 -1
- package/dist/tooltip/index.es.js +1 -1
- package/dist/ui/index.cjs.js +1 -1
- package/dist/ui/index.es.js +10 -10
- package/package.json +1 -1
- package/dist/chunks/button-OdZ6El_t.js +0 -2
- package/dist/chunks/checkbox-CWDPVAn2.js +0 -2
- package/dist/chunks/index-BxK4T-v8.js +0 -2
- package/dist/chunks/label-error-Ax74Uy3M.js +0 -2
- package/dist/chunks/label-error-DGQqDKTV.js +0 -10
- package/dist/chunks/ripple-DMI95LHg.js +0 -68
- package/dist/chunks/ripple-DieNd7XQ.js +0 -2
- package/dist/chunks/tooltip-DGFz59KW.js +0 -2
- package/dist/chunks/tv-3Bk5oRI_.js +0 -39
- package/dist/chunks/tv-3Bk5oRI_.js.map +0 -1
- package/dist/chunks/tv-CLzaSzqw.js +0 -2
- package/dist/chunks/tv-CLzaSzqw.js.map +0 -1
- package/dist/chunks/utils-B6yFEsav.js +0 -9
- package/dist/chunks/utils-IjLH3w2e.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ripple-
|
|
1
|
+
{"version":3,"file":"ripple-CzU7YM2G.js","sources":["../../src/functions/numbers.ts","../../src/components/ripple/use-ripple.ts","../../src/components/ripple/ripple.tsx"],"sourcesContent":["/**\n * Clamps a value between a minimum and maximum range.\n *\n * @param value - The value to be clamped.\n * @param min - The minimum value of the range.\n * @param max - The maximum value of the range.\n * @returns The clamped value.\n */\nexport function clamp(value: number, min: number, max: number) {\n\treturn Math.min(Math.max(value, min), max);\n}\n\n/**\n * Generates a unique identifier using a specified prefix and a random number.\n *\n * @param prefix - The prefix to prepend to the unique identifier.\n * @returns A string that combines the prefix and a random number.\n *\n * @example\n * getUniqueID('btn'); // returns 'btn-123456'\n */\nexport function getUniqueID(prefix: string) {\n\treturn `${prefix}-${Math.floor(Math.random() * 1000000)}`;\n}\n","import { getUniqueID } from \"@/functions\";\nimport React, { useCallback, useState } from \"react\";\n\nexport type RippleType = {\n\tkey: React.Key;\n\tx: number;\n\ty: number;\n\tsize: number;\n};\n\nexport function useRipple(props: any = {}) {\n\tconst [ripples, setRipples] = useState<RippleType[]>([]);\n\n\tconst onPress = useCallback((event: any) => {\n\t\tconst trigger = event.target;\n\n\t\tconst size = Math.max(trigger.clientWidth, trigger.clientHeight);\n\n\t\tsetRipples((prevRipples) => [\n\t\t\t...prevRipples,\n\t\t\t{\n\t\t\t\tkey: getUniqueID(prevRipples.length.toString()),\n\t\t\t\tsize,\n\t\t\t\tx: event.x - size / 2,\n\t\t\t\ty: event.y - size / 2,\n\t\t\t},\n\t\t]);\n\t}, []);\n\n\tconst onClear = useCallback((key: React.Key) => {\n\t\tsetRipples((prevState) => prevState.filter((ripple) => ripple.key !== key));\n\t}, []);\n\n\treturn { ripples, onClear, onPress, ...props };\n}\n\nexport type UseRippleReturn = ReturnType<typeof useRipple>;\n","import type { RippleType } from \"./use-ripple\";\nimport type { FC } from \"react\";\nimport type { HTMLMotionProps } from \"framer-motion\";\nimport { domAnimation } from \"framer-motion\";\n\nimport { AnimatePresence, m, LazyMotion } from \"framer-motion\";\nimport { clamp } from \"@/functions\";\n\n\nexport type As<Props = any> = React.ElementType<Props>;\nexport type PropsOf<T extends As> = React.ComponentPropsWithoutRef<T> & {\n as?: As;\n};\nexport type HTMLProps<T extends As = \"div\", OmitKeys extends keyof any = never> = Omit<\n PropsOf<T>,\n \"ref\" | \"color\" | \"slot\" | \"size\" | \"defaultChecked\" | \"defaultValue\" | OmitKeys\n> & {\n as?: As;\n};\nexport interface RippleProps extends HTMLProps<\"span\"> {\n\tripples: RippleType[];\n\tcolor?: string;\n\tmotionProps?: HTMLMotionProps<\"span\">;\n\tstyle?: React.CSSProperties;\n\tonClear: (key: React.Key) => void;\n}\n\n\nconst Ripple: FC<RippleProps> = (props) => {\n const {ripples = [], motionProps, color = \"currentColor\", style, onClear} = props;\n\n return (\n <>\n {ripples.map((ripple) => {\n const duration = clamp(0.01 * ripple.size, 0.2, ripple.size > 100 ? 0.75 : 0.5);\n\n return (\n <LazyMotion key={ripple.key} features={domAnimation}>\n <AnimatePresence mode=\"popLayout\">\n <m.span\n animate={{transform: \"scale(2)\", opacity: 0}}\n className=\"ripple-item-span\"\n exit={{opacity: 0}}\n initial={{transform: \"scale(0)\", opacity: 0.35}}\n style={{\n position: \"absolute\",\n backgroundColor: color,\n borderRadius: \"100%\",\n transformOrigin: \"center\",\n pointerEvents: \"none\",\n overflow: \"hidden\",\n inset: 0,\n zIndex: 0,\n top: ripple.y,\n left: ripple.x,\n width: `${ripple.size}px`,\n height: `${ripple.size}px`,\n ...style,\n }}\n transition={{duration}}\n onAnimationComplete={() => {\n onClear(ripple.key);\n }}\n {...motionProps}\n />\n </AnimatePresence>\n </LazyMotion>\n );\n })}\n </>\n );\n};\nRipple.displayName = \"LizaUI.Ripple\";\n\nexport default Ripple;\n"],"names":["clamp","value","min","max","getUniqueID","prefix","useRipple","props","ripples","setRipples","useState","onPress","useCallback","event","trigger","size","prevRipples","onClear","key","prevState","ripple","Ripple","motionProps","color","style","jsx","Fragment","duration","LazyMotion","domAnimation","AnimatePresence","m"],"mappings":";;;;;AAQO,SAASA,EAAMC,GAAeC,GAAaC,GAAa;AAC9D,SAAO,KAAK,IAAI,KAAK,IAAIF,GAAOC,CAAG,GAAGC,CAAG;AAC1C;AAWO,SAASC,EAAYC,GAAgB;AAC3C,SAAO,GAAGA,CAAM,IAAI,KAAK,MAAM,KAAK,OAAA,IAAW,GAAO,CAAC;AACxD;ACbO,SAASC,EAAUC,IAAa,IAAI;AAC1C,QAAM,CAACC,GAASC,CAAU,IAAIC,EAAuB,CAAA,CAAE,GAEjDC,IAAUC,EAAY,CAACC,MAAe;AAC3C,UAAMC,IAAUD,EAAM,QAEhBE,IAAO,KAAK,IAAID,EAAQ,aAAaA,EAAQ,YAAY;AAE/D,IAAAL,EAAW,CAACO,MAAgB;AAAA,MAC3B,GAAGA;AAAA,MACH;AAAA,QACC,KAAKZ,EAAYY,EAAY,OAAO,UAAU;AAAA,QAC9C,MAAAD;AAAA,QACA,GAAGF,EAAM,IAAIE,IAAO;AAAA,QACpB,GAAGF,EAAM,IAAIE,IAAO;AAAA,MAAA;AAAA,IACrB,CACA;AAAA,EACF,GAAG,CAAA,CAAE,GAECE,IAAUL,EAAY,CAACM,MAAmB;AAC/C,IAAAT,EAAW,CAACU,MAAcA,EAAU,OAAO,CAACC,MAAWA,EAAO,QAAQF,CAAG,CAAC;AAAA,EAC3E,GAAG,CAAA,CAAE;AAEL,SAAO,EAAE,SAAAV,GAAS,SAAAS,GAAS,SAAAN,GAAS,GAAGJ,EAAA;AACxC;ACNA,MAAMc,IAA0B,CAACd,MAAU;AACzC,QAAM,EAAC,SAAAC,IAAU,CAAA,GAAI,aAAAc,GAAa,OAAAC,IAAQ,gBAAgB,OAAAC,GAAO,SAAAP,EAAA,IAAWV;AAE5E,SACEkB,gBAAAA,EAAAA,IAAAC,EAAAA,UAAA,EACG,UAAAlB,EAAQ,IAAI,CAACY,MAAW;AACvB,UAAMO,IAAW3B,EAAM,OAAOoB,EAAO,MAAM,KAAKA,EAAO,OAAO,MAAM,OAAO,GAAG;AAE9E,iCACGQ,GAAA,EAA4B,UAAUC,GACrC,UAAAJ,gBAAAA,EAAAA,IAACK,GAAA,EAAgB,MAAK,aACpB,UAAAL,gBAAAA,EAAAA;AAAAA,MAACM,EAAE;AAAA,MAAF;AAAA,QACC,SAAS,EAAC,WAAW,YAAY,SAAS,EAAA;AAAA,QAC1C,WAAU;AAAA,QACV,MAAM,EAAC,SAAS,EAAA;AAAA,QAChB,SAAS,EAAC,WAAW,YAAY,SAAS,KAAA;AAAA,QAC1C,OAAO;AAAA,UACL,UAAU;AAAA,UACV,iBAAiBR;AAAA,UACjB,cAAc;AAAA,UACd,iBAAiB;AAAA,UACjB,eAAe;AAAA,UACf,UAAU;AAAA,UACV,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,KAAKH,EAAO;AAAA,UACZ,MAAMA,EAAO;AAAA,UACb,OAAO,GAAGA,EAAO,IAAI;AAAA,UACrB,QAAQ,GAAGA,EAAO,IAAI;AAAA,UACtB,GAAGI;AAAA,QAAA;AAAA,QAEL,YAAY,EAAC,UAAAG,EAAA;AAAA,QACb,qBAAqB,MAAM;AACzB,UAAAV,EAAQG,EAAO,GAAG;AAAA,QACpB;AAAA,QACC,GAAGE;AAAA,MAAA;AAAA,IAAA,GAER,EAAA,GA5BeF,EAAO,GA6BxB;AAAA,EAEJ,CAAC,EAAA,CACH;AAEJ;AACAC,EAAO,cAAc;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";require("./assertion-C7nbUE-q.js");const u=require("react"),r=require("./jsx-runtime-BjzqJBtL.js"),m=require("./index-lrI_r1ww.js"),x=require("./features-animation-BoXKk5t2.js");function d(e,o,s){return Math.min(Math.max(e,o),s)}function h(e){return`${e}-${Math.floor(Math.random()*1e6)}`}function y(e={}){const[o,s]=u.useState([]),a=u.useCallback(n=>{const t=n.target,i=Math.max(t.clientWidth,t.clientHeight);s(l=>[...l,{key:h(l.length.toString()),size:i,x:n.x-i/2,y:n.y-i/2}])},[]),c=u.useCallback(n=>{s(t=>t.filter(i=>i.key!==n))},[]);return{ripples:o,onClear:c,onPress:a,...e}}const p=e=>{const{ripples:o=[],motionProps:s,color:a="currentColor",style:c,onClear:n}=e;return r.jsxRuntimeExports.jsx(r.jsxRuntimeExports.Fragment,{children:o.map(t=>{const i=d(.01*t.size,.2,t.size>100?.75:.5);return r.jsxRuntimeExports.jsx(m.LazyMotion,{features:x.domAnimation,children:r.jsxRuntimeExports.jsx(m.AnimatePresence,{mode:"popLayout",children:r.jsxRuntimeExports.jsx(x.m.span,{animate:{transform:"scale(2)",opacity:0},className:"ripple-item-span",exit:{opacity:0},initial:{transform:"scale(0)",opacity:.35},style:{position:"absolute",backgroundColor:a,borderRadius:"100%",transformOrigin:"center",pointerEvents:"none",overflow:"hidden",inset:0,zIndex:0,top:t.y,left:t.x,width:`${t.size}px`,height:`${t.size}px`,...c},transition:{duration:i},onAnimationComplete:()=>{n(t.key)},...s})})},t.key)})})};p.displayName="LizaUI.Ripple";exports.Ripple=p;exports.useRipple=y;
|
|
2
|
+
//# sourceMappingURL=ripple-SBteSEo3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ripple-
|
|
1
|
+
{"version":3,"file":"ripple-SBteSEo3.js","sources":["../../src/functions/numbers.ts","../../src/components/ripple/use-ripple.ts","../../src/components/ripple/ripple.tsx"],"sourcesContent":["/**\n * Clamps a value between a minimum and maximum range.\n *\n * @param value - The value to be clamped.\n * @param min - The minimum value of the range.\n * @param max - The maximum value of the range.\n * @returns The clamped value.\n */\nexport function clamp(value: number, min: number, max: number) {\n\treturn Math.min(Math.max(value, min), max);\n}\n\n/**\n * Generates a unique identifier using a specified prefix and a random number.\n *\n * @param prefix - The prefix to prepend to the unique identifier.\n * @returns A string that combines the prefix and a random number.\n *\n * @example\n * getUniqueID('btn'); // returns 'btn-123456'\n */\nexport function getUniqueID(prefix: string) {\n\treturn `${prefix}-${Math.floor(Math.random() * 1000000)}`;\n}\n","import { getUniqueID } from \"@/functions\";\nimport React, { useCallback, useState } from \"react\";\n\nexport type RippleType = {\n\tkey: React.Key;\n\tx: number;\n\ty: number;\n\tsize: number;\n};\n\nexport function useRipple(props: any = {}) {\n\tconst [ripples, setRipples] = useState<RippleType[]>([]);\n\n\tconst onPress = useCallback((event: any) => {\n\t\tconst trigger = event.target;\n\n\t\tconst size = Math.max(trigger.clientWidth, trigger.clientHeight);\n\n\t\tsetRipples((prevRipples) => [\n\t\t\t...prevRipples,\n\t\t\t{\n\t\t\t\tkey: getUniqueID(prevRipples.length.toString()),\n\t\t\t\tsize,\n\t\t\t\tx: event.x - size / 2,\n\t\t\t\ty: event.y - size / 2,\n\t\t\t},\n\t\t]);\n\t}, []);\n\n\tconst onClear = useCallback((key: React.Key) => {\n\t\tsetRipples((prevState) => prevState.filter((ripple) => ripple.key !== key));\n\t}, []);\n\n\treturn { ripples, onClear, onPress, ...props };\n}\n\nexport type UseRippleReturn = ReturnType<typeof useRipple>;\n","import type { RippleType } from \"./use-ripple\";\nimport type { FC } from \"react\";\nimport type { HTMLMotionProps } from \"framer-motion\";\nimport { domAnimation } from \"framer-motion\";\n\nimport { AnimatePresence, m, LazyMotion } from \"framer-motion\";\nimport { clamp } from \"@/functions\";\n\n\nexport type As<Props = any> = React.ElementType<Props>;\nexport type PropsOf<T extends As> = React.ComponentPropsWithoutRef<T> & {\n as?: As;\n};\nexport type HTMLProps<T extends As = \"div\", OmitKeys extends keyof any = never> = Omit<\n PropsOf<T>,\n \"ref\" | \"color\" | \"slot\" | \"size\" | \"defaultChecked\" | \"defaultValue\" | OmitKeys\n> & {\n as?: As;\n};\nexport interface RippleProps extends HTMLProps<\"span\"> {\n\tripples: RippleType[];\n\tcolor?: string;\n\tmotionProps?: HTMLMotionProps<\"span\">;\n\tstyle?: React.CSSProperties;\n\tonClear: (key: React.Key) => void;\n}\n\n\nconst Ripple: FC<RippleProps> = (props) => {\n const {ripples = [], motionProps, color = \"currentColor\", style, onClear} = props;\n\n return (\n <>\n {ripples.map((ripple) => {\n const duration = clamp(0.01 * ripple.size, 0.2, ripple.size > 100 ? 0.75 : 0.5);\n\n return (\n <LazyMotion key={ripple.key} features={domAnimation}>\n <AnimatePresence mode=\"popLayout\">\n <m.span\n animate={{transform: \"scale(2)\", opacity: 0}}\n className=\"ripple-item-span\"\n exit={{opacity: 0}}\n initial={{transform: \"scale(0)\", opacity: 0.35}}\n style={{\n position: \"absolute\",\n backgroundColor: color,\n borderRadius: \"100%\",\n transformOrigin: \"center\",\n pointerEvents: \"none\",\n overflow: \"hidden\",\n inset: 0,\n zIndex: 0,\n top: ripple.y,\n left: ripple.x,\n width: `${ripple.size}px`,\n height: `${ripple.size}px`,\n ...style,\n }}\n transition={{duration}}\n onAnimationComplete={() => {\n onClear(ripple.key);\n }}\n {...motionProps}\n />\n </AnimatePresence>\n </LazyMotion>\n );\n })}\n </>\n );\n};\nRipple.displayName = \"LizaUI.Ripple\";\n\nexport default Ripple;\n"],"names":["clamp","value","min","max","getUniqueID","prefix","useRipple","props","ripples","setRipples","useState","onPress","useCallback","event","trigger","size","prevRipples","onClear","key","prevState","ripple","Ripple","motionProps","color","style","jsx","Fragment","duration","LazyMotion","domAnimation","AnimatePresence","m"],"mappings":"+LAQO,SAASA,EAAMC,EAAeC,EAAaC,EAAa,CAC9D,OAAO,KAAK,IAAI,KAAK,IAAIF,EAAOC,CAAG,EAAGC,CAAG,CAC1C,CAWO,SAASC,EAAYC,EAAgB,CAC3C,MAAO,GAAGA,CAAM,IAAI,KAAK,MAAM,KAAK,OAAA,EAAW,GAAO,CAAC,EACxD,CCbO,SAASC,EAAUC,EAAa,GAAI,CAC1C,KAAM,CAACC,EAASC,CAAU,EAAIC,EAAAA,SAAuB,CAAA,CAAE,EAEjDC,EAAUC,cAAaC,GAAe,CAC3C,MAAMC,EAAUD,EAAM,OAEhBE,EAAO,KAAK,IAAID,EAAQ,YAAaA,EAAQ,YAAY,EAE/DL,EAAYO,GAAgB,CAC3B,GAAGA,EACH,CACC,IAAKZ,EAAYY,EAAY,OAAO,UAAU,EAC9C,KAAAD,EACA,EAAGF,EAAM,EAAIE,EAAO,EACpB,EAAGF,EAAM,EAAIE,EAAO,CAAA,CACrB,CACA,CACF,EAAG,CAAA,CAAE,EAECE,EAAUL,cAAaM,GAAmB,CAC/CT,EAAYU,GAAcA,EAAU,OAAQC,GAAWA,EAAO,MAAQF,CAAG,CAAC,CAC3E,EAAG,CAAA,CAAE,EAEL,MAAO,CAAE,QAAAV,EAAS,QAAAS,EAAS,QAAAN,EAAS,GAAGJ,CAAA,CACxC,CCNA,MAAMc,EAA2Bd,GAAU,CACzC,KAAM,CAAC,QAAAC,EAAU,CAAA,EAAI,YAAAc,EAAa,MAAAC,EAAQ,eAAgB,MAAAC,EAAO,QAAAP,CAAA,EAAWV,EAE5E,OACEkB,EAAAA,kBAAAA,IAAAC,EAAAA,kBAAAA,SAAA,CACG,SAAAlB,EAAQ,IAAKY,GAAW,CACvB,MAAMO,EAAW3B,EAAM,IAAOoB,EAAO,KAAM,GAAKA,EAAO,KAAO,IAAM,IAAO,EAAG,EAE9E,+BACGQ,EAAAA,WAAA,CAA4B,SAAUC,EAAAA,aACrC,SAAAJ,EAAAA,kBAAAA,IAACK,EAAAA,gBAAA,CAAgB,KAAK,YACpB,SAAAL,EAAAA,kBAAAA,IAACM,EAAAA,EAAE,KAAF,CACC,QAAS,CAAC,UAAW,WAAY,QAAS,CAAA,EAC1C,UAAU,mBACV,KAAM,CAAC,QAAS,CAAA,EAChB,QAAS,CAAC,UAAW,WAAY,QAAS,GAAA,EAC1C,MAAO,CACL,SAAU,WACV,gBAAiBR,EACjB,aAAc,OACd,gBAAiB,SACjB,cAAe,OACf,SAAU,SACV,MAAO,EACP,OAAQ,EACR,IAAKH,EAAO,EACZ,KAAMA,EAAO,EACb,MAAO,GAAGA,EAAO,IAAI,KACrB,OAAQ,GAAGA,EAAO,IAAI,KACtB,GAAGI,CAAA,EAEL,WAAY,CAAC,SAAAG,CAAA,EACb,oBAAqB,IAAM,CACzBV,EAAQG,EAAO,GAAG,CACpB,EACC,GAAGE,CAAA,CAAA,EAER,CAAA,EA5BeF,EAAO,GA6BxB,CAEJ,CAAC,CAAA,CACH,CAEJ,EACAC,EAAO,YAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const I=require("./index-BydcKEwP.js"),h=require("./jsx-runtime-BjzqJBtL.js"),le=require("react"),p=require("./textarea-Cklud2kp.js"),C=require("./index-6ER8bShj.js"),B=require("./utils-IjLH3w2e.js");function se(e){const t=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(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const s=se(le);const ce=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],ie=I.createLucideIcon("search",ce);function ae(e,t){return s.useReducer((r,n)=>t[r][n]??r,e)}var M="ScrollArea",[V,Ce]=p.createContextScope(M),[ue,v]=V(M),F=s.forwardRef((e,t)=>{const{__scopeScrollArea:r,type:n="hover",dir:o,scrollHideDelay:l=600,...c}=e,[i,a]=s.useState(null),[f,u]=s.useState(null),[m,d]=s.useState(null),[b,w]=s.useState(null),[j,z]=s.useState(null),[g,T]=s.useState(0),[k,y]=s.useState(0),[_,A]=s.useState(!1),[L,D]=s.useState(!1),S=C.useComposedRefs(t,E=>a(E)),x=I.useDirection(o);return h.jsxRuntimeExports.jsx(ue,{scope:r,type:n,dir:x,scrollHideDelay:l,scrollArea:i,viewport:f,onViewportChange:u,content:m,onContentChange:d,scrollbarX:b,onScrollbarXChange:w,scrollbarXEnabled:_,onScrollbarXEnabledChange:A,scrollbarY:j,onScrollbarYChange:z,scrollbarYEnabled:L,onScrollbarYEnabledChange:D,onCornerWidthChange:T,onCornerHeightChange:y,children:h.jsxRuntimeExports.jsx(p.Primitive.div,{dir:x,...c,ref:S,style:{position:"relative","--radix-scroll-area-corner-width":g+"px","--radix-scroll-area-corner-height":k+"px",...e.style}})})});F.displayName=M;var q="ScrollAreaViewport",$=s.forwardRef((e,t)=>{const{__scopeScrollArea:r,children:n,nonce:o,...l}=e,c=v(q,r),i=s.useRef(null),a=C.useComposedRefs(t,i,c.onViewportChange);return h.jsxRuntimeExports.jsxs(h.jsxRuntimeExports.Fragment,{children:[h.jsxRuntimeExports.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:o}),h.jsxRuntimeExports.jsx(p.Primitive.div,{"data-radix-scroll-area-viewport":"",...l,ref:a,style:{overflowX:c.scrollbarXEnabled?"scroll":"hidden",overflowY:c.scrollbarYEnabled?"scroll":"hidden",...e.style},children:h.jsxRuntimeExports.jsx("div",{ref:c.onContentChange,style:{minWidth:"100%",display:"table"},children:n})})]})});$.displayName=q;var R="ScrollAreaScrollbar",G=s.forwardRef((e,t)=>{const{forceMount:r,...n}=e,o=v(R,e.__scopeScrollArea),{onScrollbarXEnabledChange:l,onScrollbarYEnabledChange:c}=o,i=e.orientation==="horizontal";return s.useEffect(()=>(i?l(!0):c(!0),()=>{i?l(!1):c(!1)}),[i,l,c]),o.type==="hover"?h.jsxRuntimeExports.jsx(de,{...n,ref:t,forceMount:r}):o.type==="scroll"?h.jsxRuntimeExports.jsx(fe,{...n,ref:t,forceMount:r}):o.type==="auto"?h.jsxRuntimeExports.jsx(J,{...n,ref:t,forceMount:r}):o.type==="always"?h.jsxRuntimeExports.jsx(X,{...n,ref:t}):null});G.displayName=R;var de=s.forwardRef((e,t)=>{const{forceMount:r,...n}=e,o=v(R,e.__scopeScrollArea),[l,c]=s.useState(!1);return s.useEffect(()=>{const i=o.scrollArea;let a=0;if(i){const f=()=>{window.clearTimeout(a),c(!0)},u=()=>{a=window.setTimeout(()=>c(!1),o.scrollHideDelay)};return i.addEventListener("pointerenter",f),i.addEventListener("pointerleave",u),()=>{window.clearTimeout(a),i.removeEventListener("pointerenter",f),i.removeEventListener("pointerleave",u)}}},[o.scrollArea,o.scrollHideDelay]),h.jsxRuntimeExports.jsx(p.Presence,{present:r||l,children:h.jsxRuntimeExports.jsx(J,{"data-state":l?"visible":"hidden",...n,ref:t})})}),fe=s.forwardRef((e,t)=>{const{forceMount:r,...n}=e,o=v(R,e.__scopeScrollArea),l=e.orientation==="horizontal",c=W(()=>a("SCROLL_END"),100),[i,a]=ae("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 s.useEffect(()=>{if(i==="idle"){const f=window.setTimeout(()=>a("HIDE"),o.scrollHideDelay);return()=>window.clearTimeout(f)}},[i,o.scrollHideDelay,a]),s.useEffect(()=>{const f=o.viewport,u=l?"scrollLeft":"scrollTop";if(f){let m=f[u];const d=()=>{const b=f[u];m!==b&&(a("SCROLL"),c()),m=b};return f.addEventListener("scroll",d),()=>f.removeEventListener("scroll",d)}},[o.viewport,l,a,c]),h.jsxRuntimeExports.jsx(p.Presence,{present:r||i!=="hidden",children:h.jsxRuntimeExports.jsx(X,{"data-state":i==="hidden"?"hidden":"visible",...n,ref:t,onPointerEnter:p.composeEventHandlers(e.onPointerEnter,()=>a("POINTER_ENTER")),onPointerLeave:p.composeEventHandlers(e.onPointerLeave,()=>a("POINTER_LEAVE"))})})}),J=s.forwardRef((e,t)=>{const r=v(R,e.__scopeScrollArea),{forceMount:n,...o}=e,[l,c]=s.useState(!1),i=e.orientation==="horizontal",a=W(()=>{if(r.viewport){const f=r.viewport.offsetWidth<r.viewport.scrollWidth,u=r.viewport.offsetHeight<r.viewport.scrollHeight;c(i?f:u)}},10);return P(r.viewport,a),P(r.content,a),h.jsxRuntimeExports.jsx(p.Presence,{present:n||l,children:h.jsxRuntimeExports.jsx(X,{"data-state":l?"visible":"hidden",...o,ref:t})})}),X=s.forwardRef((e,t)=>{const{orientation:r="vertical",...n}=e,o=v(R,e.__scopeScrollArea),l=s.useRef(null),c=s.useRef(0),[i,a]=s.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),f=re(i.viewport,i.content),u={...n,sizes:i,onSizesChange:a,hasThumb:f>0&&f<1,onThumbChange:d=>l.current=d,onThumbPointerUp:()=>c.current=0,onThumbPointerDown:d=>c.current=d};function m(d,b){return ve(d,c.current,i,b)}return r==="horizontal"?h.jsxRuntimeExports.jsx(he,{...u,ref:t,onThumbPositionChange:()=>{if(o.viewport&&l.current){const d=o.viewport.scrollLeft,b=U(d,i,o.dir);l.current.style.transform=`translate3d(${b}px, 0, 0)`}},onWheelScroll:d=>{o.viewport&&(o.viewport.scrollLeft=d)},onDragScroll:d=>{o.viewport&&(o.viewport.scrollLeft=m(d,o.dir))}}):r==="vertical"?h.jsxRuntimeExports.jsx(me,{...u,ref:t,onThumbPositionChange:()=>{if(o.viewport&&l.current){const d=o.viewport.scrollTop,b=U(d,i);l.current.style.transform=`translate3d(0, ${b}px, 0)`}},onWheelScroll:d=>{o.viewport&&(o.viewport.scrollTop=d)},onDragScroll:d=>{o.viewport&&(o.viewport.scrollTop=m(d))}}):null}),he=s.forwardRef((e,t)=>{const{sizes:r,onSizesChange:n,...o}=e,l=v(R,e.__scopeScrollArea),[c,i]=s.useState(),a=s.useRef(null),f=C.useComposedRefs(t,a,l.onScrollbarXChange);return s.useEffect(()=>{a.current&&i(getComputedStyle(a.current))},[a]),h.jsxRuntimeExports.jsx(Q,{"data-orientation":"horizontal",...o,ref:f,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":O(r)+"px",...e.style},onThumbPointerDown:u=>e.onThumbPointerDown(u.x),onDragScroll:u=>e.onDragScroll(u.x),onWheelScroll:(u,m)=>{if(l.viewport){const d=l.viewport.scrollLeft+u.deltaX;e.onWheelScroll(d),oe(d,m)&&u.preventDefault()}},onResize:()=>{a.current&&l.viewport&&c&&n({content:l.viewport.scrollWidth,viewport:l.viewport.offsetWidth,scrollbar:{size:a.current.clientWidth,paddingStart:N(c.paddingLeft),paddingEnd:N(c.paddingRight)}})}})}),me=s.forwardRef((e,t)=>{const{sizes:r,onSizesChange:n,...o}=e,l=v(R,e.__scopeScrollArea),[c,i]=s.useState(),a=s.useRef(null),f=C.useComposedRefs(t,a,l.onScrollbarYChange);return s.useEffect(()=>{a.current&&i(getComputedStyle(a.current))},[a]),h.jsxRuntimeExports.jsx(Q,{"data-orientation":"vertical",...o,ref:f,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":O(r)+"px",...e.style},onThumbPointerDown:u=>e.onThumbPointerDown(u.y),onDragScroll:u=>e.onDragScroll(u.y),onWheelScroll:(u,m)=>{if(l.viewport){const d=l.viewport.scrollTop+u.deltaY;e.onWheelScroll(d),oe(d,m)&&u.preventDefault()}},onResize:()=>{a.current&&l.viewport&&c&&n({content:l.viewport.scrollHeight,viewport:l.viewport.offsetHeight,scrollbar:{size:a.current.clientHeight,paddingStart:N(c.paddingTop),paddingEnd:N(c.paddingBottom)}})}})}),[pe,K]=V(R),Q=s.forwardRef((e,t)=>{const{__scopeScrollArea:r,sizes:n,hasThumb:o,onThumbChange:l,onThumbPointerUp:c,onThumbPointerDown:i,onThumbPositionChange:a,onDragScroll:f,onWheelScroll:u,onResize:m,...d}=e,b=v(R,r),[w,j]=s.useState(null),z=C.useComposedRefs(t,S=>j(S)),g=s.useRef(null),T=s.useRef(""),k=b.viewport,y=n.content-n.viewport,_=p.useCallbackRef(u),A=p.useCallbackRef(a),L=W(m,10);function D(S){if(g.current){const x=S.clientX-g.current.left,E=S.clientY-g.current.top;f({x,y:E})}}return s.useEffect(()=>{const S=x=>{const E=x.target;w?.contains(E)&&_(x,y)};return document.addEventListener("wheel",S,{passive:!1}),()=>document.removeEventListener("wheel",S,{passive:!1})},[k,w,y,_]),s.useEffect(A,[n,A]),P(w,L),P(b.content,L),h.jsxRuntimeExports.jsx(pe,{scope:r,scrollbar:w,hasThumb:o,onThumbChange:p.useCallbackRef(l),onThumbPointerUp:p.useCallbackRef(c),onThumbPositionChange:A,onThumbPointerDown:p.useCallbackRef(i),children:h.jsxRuntimeExports.jsx(p.Primitive.div,{...d,ref:z,style:{position:"absolute",...d.style},onPointerDown:p.composeEventHandlers(e.onPointerDown,S=>{S.button===0&&(S.target.setPointerCapture(S.pointerId),g.current=w.getBoundingClientRect(),T.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",b.viewport&&(b.viewport.style.scrollBehavior="auto"),D(S))}),onPointerMove:p.composeEventHandlers(e.onPointerMove,D),onPointerUp:p.composeEventHandlers(e.onPointerUp,S=>{const x=S.target;x.hasPointerCapture(S.pointerId)&&x.releasePointerCapture(S.pointerId),document.body.style.webkitUserSelect=T.current,b.viewport&&(b.viewport.style.scrollBehavior=""),g.current=null})})})}),H="ScrollAreaThumb",Z=s.forwardRef((e,t)=>{const{forceMount:r,...n}=e,o=K(H,e.__scopeScrollArea);return h.jsxRuntimeExports.jsx(p.Presence,{present:r||o.hasThumb,children:h.jsxRuntimeExports.jsx(be,{ref:t,...n})})}),be=s.forwardRef((e,t)=>{const{__scopeScrollArea:r,style:n,...o}=e,l=v(H,r),c=K(H,r),{onThumbPositionChange:i}=c,a=C.useComposedRefs(t,m=>c.onThumbChange(m)),f=s.useRef(void 0),u=W(()=>{f.current&&(f.current(),f.current=void 0)},100);return s.useEffect(()=>{const m=l.viewport;if(m){const d=()=>{if(u(),!f.current){const b=xe(m,i);f.current=b,i()}};return i(),m.addEventListener("scroll",d),()=>m.removeEventListener("scroll",d)}},[l.viewport,u,i]),h.jsxRuntimeExports.jsx(p.Primitive.div,{"data-state":c.hasThumb?"visible":"hidden",...o,ref:a,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...n},onPointerDownCapture:p.composeEventHandlers(e.onPointerDownCapture,m=>{const b=m.target.getBoundingClientRect(),w=m.clientX-b.left,j=m.clientY-b.top;c.onThumbPointerDown({x:w,y:j})}),onPointerUp:p.composeEventHandlers(e.onPointerUp,c.onThumbPointerUp)})});Z.displayName=H;var Y="ScrollAreaCorner",ee=s.forwardRef((e,t)=>{const r=v(Y,e.__scopeScrollArea),n=!!(r.scrollbarX&&r.scrollbarY);return r.type!=="scroll"&&n?h.jsxRuntimeExports.jsx(Se,{...e,ref:t}):null});ee.displayName=Y;var Se=s.forwardRef((e,t)=>{const{__scopeScrollArea:r,...n}=e,o=v(Y,r),[l,c]=s.useState(0),[i,a]=s.useState(0),f=!!(l&&i);return P(o.scrollbarX,()=>{const u=o.scrollbarX?.offsetHeight||0;o.onCornerHeightChange(u),a(u)}),P(o.scrollbarY,()=>{const u=o.scrollbarY?.offsetWidth||0;o.onCornerWidthChange(u),c(u)}),f?h.jsxRuntimeExports.jsx(p.Primitive.div,{...n,ref:t,style:{width:l,height:i,position:"absolute",right:o.dir==="ltr"?0:void 0,left:o.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function N(e){return e?parseInt(e,10):0}function re(e,t){const r=e/t;return isNaN(r)?0:r}function O(e){const t=re(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,n=(e.scrollbar.size-r)*t;return Math.max(n,18)}function ve(e,t,r,n="ltr"){const o=O(r),l=o/2,c=t||l,i=o-c,a=r.scrollbar.paddingStart+c,f=r.scrollbar.size-r.scrollbar.paddingEnd-i,u=r.content-r.viewport,m=n==="ltr"?[0,u]:[u*-1,0];return te([a,f],m)(e)}function U(e,t,r="ltr"){const n=O(t),o=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,l=t.scrollbar.size-o,c=t.content-t.viewport,i=l-n,a=r==="ltr"?[0,c]:[c*-1,0],f=I.clamp(e,a);return te([0,c],[0,i])(f)}function te(e,t){return r=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const n=(t[1]-t[0])/(e[1]-e[0]);return t[0]+n*(r-e[0])}}function oe(e,t){return e>0&&e<t}var xe=(e,t=()=>{})=>{let r={left:e.scrollLeft,top:e.scrollTop},n=0;return(function o(){const l={left:e.scrollLeft,top:e.scrollTop},c=r.left!==l.left,i=r.top!==l.top;(c||i)&&t(),r=l,n=window.requestAnimationFrame(o)})(),()=>window.cancelAnimationFrame(n)};function W(e,t){const r=p.useCallbackRef(e),n=s.useRef(0);return s.useEffect(()=>()=>window.clearTimeout(n.current),[]),s.useCallback(()=>{window.clearTimeout(n.current),n.current=window.setTimeout(r,t)},[r,t])}function P(e,t){const r=p.useCallbackRef(t);p.useLayoutEffect2(()=>{let n=0;if(e){const o=new ResizeObserver(()=>{cancelAnimationFrame(n),n=window.requestAnimationFrame(r)});return o.observe(e),()=>{window.cancelAnimationFrame(n),o.unobserve(e)}}},[e,r])}var we=F,Re=$,ge=ee;function Ee({className:e,children:t,...r}){return h.jsxRuntimeExports.jsxs(we,{"data-slot":"scroll-area",className:B.cn("relative",e),...r,children:[h.jsxRuntimeExports.jsx(Re,{"data-slot":"scroll-area-viewport",className:"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",children:t}),h.jsxRuntimeExports.jsx(ne,{}),h.jsxRuntimeExports.jsx(ge,{})]})}function ne({className:e,orientation:t="vertical",...r}){return h.jsxRuntimeExports.jsx(G,{"data-slot":"scroll-area-scrollbar",orientation:t,className:B.cn("flex touch-none p-px transition-colors select-none",t==="vertical"&&"h-full w-2.5 border-l border-l-transparent",t==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent",e),...r,children:h.jsxRuntimeExports.jsx(Z,{"data-slot":"scroll-area-thumb",className:"bg-border relative flex-1 rounded-full"})})}exports.ScrollArea=Ee;exports.ScrollBar=ne;exports.Search=ie;
|
|
2
|
-
//# sourceMappingURL=scroll-area-
|
|
1
|
+
"use strict";const I=require("./index-BydcKEwP.js"),h=require("./jsx-runtime-BjzqJBtL.js"),le=require("react"),p=require("./textarea-D9X4fUkV.js"),C=require("./index-6ER8bShj.js"),B=require("./utils-CxdrMFeI.js");function se(e){const t=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(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const s=se(le);const ce=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],ie=I.createLucideIcon("search",ce);function ae(e,t){return s.useReducer((r,n)=>t[r][n]??r,e)}var M="ScrollArea",[V,Ce]=p.createContextScope(M),[ue,v]=V(M),F=s.forwardRef((e,t)=>{const{__scopeScrollArea:r,type:n="hover",dir:o,scrollHideDelay:l=600,...c}=e,[i,a]=s.useState(null),[f,u]=s.useState(null),[m,d]=s.useState(null),[b,w]=s.useState(null),[j,z]=s.useState(null),[g,T]=s.useState(0),[k,y]=s.useState(0),[_,A]=s.useState(!1),[L,D]=s.useState(!1),S=C.useComposedRefs(t,E=>a(E)),x=I.useDirection(o);return h.jsxRuntimeExports.jsx(ue,{scope:r,type:n,dir:x,scrollHideDelay:l,scrollArea:i,viewport:f,onViewportChange:u,content:m,onContentChange:d,scrollbarX:b,onScrollbarXChange:w,scrollbarXEnabled:_,onScrollbarXEnabledChange:A,scrollbarY:j,onScrollbarYChange:z,scrollbarYEnabled:L,onScrollbarYEnabledChange:D,onCornerWidthChange:T,onCornerHeightChange:y,children:h.jsxRuntimeExports.jsx(p.Primitive.div,{dir:x,...c,ref:S,style:{position:"relative","--radix-scroll-area-corner-width":g+"px","--radix-scroll-area-corner-height":k+"px",...e.style}})})});F.displayName=M;var q="ScrollAreaViewport",$=s.forwardRef((e,t)=>{const{__scopeScrollArea:r,children:n,nonce:o,...l}=e,c=v(q,r),i=s.useRef(null),a=C.useComposedRefs(t,i,c.onViewportChange);return h.jsxRuntimeExports.jsxs(h.jsxRuntimeExports.Fragment,{children:[h.jsxRuntimeExports.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:o}),h.jsxRuntimeExports.jsx(p.Primitive.div,{"data-radix-scroll-area-viewport":"",...l,ref:a,style:{overflowX:c.scrollbarXEnabled?"scroll":"hidden",overflowY:c.scrollbarYEnabled?"scroll":"hidden",...e.style},children:h.jsxRuntimeExports.jsx("div",{ref:c.onContentChange,style:{minWidth:"100%",display:"table"},children:n})})]})});$.displayName=q;var R="ScrollAreaScrollbar",G=s.forwardRef((e,t)=>{const{forceMount:r,...n}=e,o=v(R,e.__scopeScrollArea),{onScrollbarXEnabledChange:l,onScrollbarYEnabledChange:c}=o,i=e.orientation==="horizontal";return s.useEffect(()=>(i?l(!0):c(!0),()=>{i?l(!1):c(!1)}),[i,l,c]),o.type==="hover"?h.jsxRuntimeExports.jsx(de,{...n,ref:t,forceMount:r}):o.type==="scroll"?h.jsxRuntimeExports.jsx(fe,{...n,ref:t,forceMount:r}):o.type==="auto"?h.jsxRuntimeExports.jsx(J,{...n,ref:t,forceMount:r}):o.type==="always"?h.jsxRuntimeExports.jsx(X,{...n,ref:t}):null});G.displayName=R;var de=s.forwardRef((e,t)=>{const{forceMount:r,...n}=e,o=v(R,e.__scopeScrollArea),[l,c]=s.useState(!1);return s.useEffect(()=>{const i=o.scrollArea;let a=0;if(i){const f=()=>{window.clearTimeout(a),c(!0)},u=()=>{a=window.setTimeout(()=>c(!1),o.scrollHideDelay)};return i.addEventListener("pointerenter",f),i.addEventListener("pointerleave",u),()=>{window.clearTimeout(a),i.removeEventListener("pointerenter",f),i.removeEventListener("pointerleave",u)}}},[o.scrollArea,o.scrollHideDelay]),h.jsxRuntimeExports.jsx(p.Presence,{present:r||l,children:h.jsxRuntimeExports.jsx(J,{"data-state":l?"visible":"hidden",...n,ref:t})})}),fe=s.forwardRef((e,t)=>{const{forceMount:r,...n}=e,o=v(R,e.__scopeScrollArea),l=e.orientation==="horizontal",c=W(()=>a("SCROLL_END"),100),[i,a]=ae("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 s.useEffect(()=>{if(i==="idle"){const f=window.setTimeout(()=>a("HIDE"),o.scrollHideDelay);return()=>window.clearTimeout(f)}},[i,o.scrollHideDelay,a]),s.useEffect(()=>{const f=o.viewport,u=l?"scrollLeft":"scrollTop";if(f){let m=f[u];const d=()=>{const b=f[u];m!==b&&(a("SCROLL"),c()),m=b};return f.addEventListener("scroll",d),()=>f.removeEventListener("scroll",d)}},[o.viewport,l,a,c]),h.jsxRuntimeExports.jsx(p.Presence,{present:r||i!=="hidden",children:h.jsxRuntimeExports.jsx(X,{"data-state":i==="hidden"?"hidden":"visible",...n,ref:t,onPointerEnter:p.composeEventHandlers(e.onPointerEnter,()=>a("POINTER_ENTER")),onPointerLeave:p.composeEventHandlers(e.onPointerLeave,()=>a("POINTER_LEAVE"))})})}),J=s.forwardRef((e,t)=>{const r=v(R,e.__scopeScrollArea),{forceMount:n,...o}=e,[l,c]=s.useState(!1),i=e.orientation==="horizontal",a=W(()=>{if(r.viewport){const f=r.viewport.offsetWidth<r.viewport.scrollWidth,u=r.viewport.offsetHeight<r.viewport.scrollHeight;c(i?f:u)}},10);return P(r.viewport,a),P(r.content,a),h.jsxRuntimeExports.jsx(p.Presence,{present:n||l,children:h.jsxRuntimeExports.jsx(X,{"data-state":l?"visible":"hidden",...o,ref:t})})}),X=s.forwardRef((e,t)=>{const{orientation:r="vertical",...n}=e,o=v(R,e.__scopeScrollArea),l=s.useRef(null),c=s.useRef(0),[i,a]=s.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),f=re(i.viewport,i.content),u={...n,sizes:i,onSizesChange:a,hasThumb:f>0&&f<1,onThumbChange:d=>l.current=d,onThumbPointerUp:()=>c.current=0,onThumbPointerDown:d=>c.current=d};function m(d,b){return ve(d,c.current,i,b)}return r==="horizontal"?h.jsxRuntimeExports.jsx(he,{...u,ref:t,onThumbPositionChange:()=>{if(o.viewport&&l.current){const d=o.viewport.scrollLeft,b=U(d,i,o.dir);l.current.style.transform=`translate3d(${b}px, 0, 0)`}},onWheelScroll:d=>{o.viewport&&(o.viewport.scrollLeft=d)},onDragScroll:d=>{o.viewport&&(o.viewport.scrollLeft=m(d,o.dir))}}):r==="vertical"?h.jsxRuntimeExports.jsx(me,{...u,ref:t,onThumbPositionChange:()=>{if(o.viewport&&l.current){const d=o.viewport.scrollTop,b=U(d,i);l.current.style.transform=`translate3d(0, ${b}px, 0)`}},onWheelScroll:d=>{o.viewport&&(o.viewport.scrollTop=d)},onDragScroll:d=>{o.viewport&&(o.viewport.scrollTop=m(d))}}):null}),he=s.forwardRef((e,t)=>{const{sizes:r,onSizesChange:n,...o}=e,l=v(R,e.__scopeScrollArea),[c,i]=s.useState(),a=s.useRef(null),f=C.useComposedRefs(t,a,l.onScrollbarXChange);return s.useEffect(()=>{a.current&&i(getComputedStyle(a.current))},[a]),h.jsxRuntimeExports.jsx(Q,{"data-orientation":"horizontal",...o,ref:f,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":O(r)+"px",...e.style},onThumbPointerDown:u=>e.onThumbPointerDown(u.x),onDragScroll:u=>e.onDragScroll(u.x),onWheelScroll:(u,m)=>{if(l.viewport){const d=l.viewport.scrollLeft+u.deltaX;e.onWheelScroll(d),oe(d,m)&&u.preventDefault()}},onResize:()=>{a.current&&l.viewport&&c&&n({content:l.viewport.scrollWidth,viewport:l.viewport.offsetWidth,scrollbar:{size:a.current.clientWidth,paddingStart:N(c.paddingLeft),paddingEnd:N(c.paddingRight)}})}})}),me=s.forwardRef((e,t)=>{const{sizes:r,onSizesChange:n,...o}=e,l=v(R,e.__scopeScrollArea),[c,i]=s.useState(),a=s.useRef(null),f=C.useComposedRefs(t,a,l.onScrollbarYChange);return s.useEffect(()=>{a.current&&i(getComputedStyle(a.current))},[a]),h.jsxRuntimeExports.jsx(Q,{"data-orientation":"vertical",...o,ref:f,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":O(r)+"px",...e.style},onThumbPointerDown:u=>e.onThumbPointerDown(u.y),onDragScroll:u=>e.onDragScroll(u.y),onWheelScroll:(u,m)=>{if(l.viewport){const d=l.viewport.scrollTop+u.deltaY;e.onWheelScroll(d),oe(d,m)&&u.preventDefault()}},onResize:()=>{a.current&&l.viewport&&c&&n({content:l.viewport.scrollHeight,viewport:l.viewport.offsetHeight,scrollbar:{size:a.current.clientHeight,paddingStart:N(c.paddingTop),paddingEnd:N(c.paddingBottom)}})}})}),[pe,K]=V(R),Q=s.forwardRef((e,t)=>{const{__scopeScrollArea:r,sizes:n,hasThumb:o,onThumbChange:l,onThumbPointerUp:c,onThumbPointerDown:i,onThumbPositionChange:a,onDragScroll:f,onWheelScroll:u,onResize:m,...d}=e,b=v(R,r),[w,j]=s.useState(null),z=C.useComposedRefs(t,S=>j(S)),g=s.useRef(null),T=s.useRef(""),k=b.viewport,y=n.content-n.viewport,_=p.useCallbackRef(u),A=p.useCallbackRef(a),L=W(m,10);function D(S){if(g.current){const x=S.clientX-g.current.left,E=S.clientY-g.current.top;f({x,y:E})}}return s.useEffect(()=>{const S=x=>{const E=x.target;w?.contains(E)&&_(x,y)};return document.addEventListener("wheel",S,{passive:!1}),()=>document.removeEventListener("wheel",S,{passive:!1})},[k,w,y,_]),s.useEffect(A,[n,A]),P(w,L),P(b.content,L),h.jsxRuntimeExports.jsx(pe,{scope:r,scrollbar:w,hasThumb:o,onThumbChange:p.useCallbackRef(l),onThumbPointerUp:p.useCallbackRef(c),onThumbPositionChange:A,onThumbPointerDown:p.useCallbackRef(i),children:h.jsxRuntimeExports.jsx(p.Primitive.div,{...d,ref:z,style:{position:"absolute",...d.style},onPointerDown:p.composeEventHandlers(e.onPointerDown,S=>{S.button===0&&(S.target.setPointerCapture(S.pointerId),g.current=w.getBoundingClientRect(),T.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",b.viewport&&(b.viewport.style.scrollBehavior="auto"),D(S))}),onPointerMove:p.composeEventHandlers(e.onPointerMove,D),onPointerUp:p.composeEventHandlers(e.onPointerUp,S=>{const x=S.target;x.hasPointerCapture(S.pointerId)&&x.releasePointerCapture(S.pointerId),document.body.style.webkitUserSelect=T.current,b.viewport&&(b.viewport.style.scrollBehavior=""),g.current=null})})})}),H="ScrollAreaThumb",Z=s.forwardRef((e,t)=>{const{forceMount:r,...n}=e,o=K(H,e.__scopeScrollArea);return h.jsxRuntimeExports.jsx(p.Presence,{present:r||o.hasThumb,children:h.jsxRuntimeExports.jsx(be,{ref:t,...n})})}),be=s.forwardRef((e,t)=>{const{__scopeScrollArea:r,style:n,...o}=e,l=v(H,r),c=K(H,r),{onThumbPositionChange:i}=c,a=C.useComposedRefs(t,m=>c.onThumbChange(m)),f=s.useRef(void 0),u=W(()=>{f.current&&(f.current(),f.current=void 0)},100);return s.useEffect(()=>{const m=l.viewport;if(m){const d=()=>{if(u(),!f.current){const b=xe(m,i);f.current=b,i()}};return i(),m.addEventListener("scroll",d),()=>m.removeEventListener("scroll",d)}},[l.viewport,u,i]),h.jsxRuntimeExports.jsx(p.Primitive.div,{"data-state":c.hasThumb?"visible":"hidden",...o,ref:a,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...n},onPointerDownCapture:p.composeEventHandlers(e.onPointerDownCapture,m=>{const b=m.target.getBoundingClientRect(),w=m.clientX-b.left,j=m.clientY-b.top;c.onThumbPointerDown({x:w,y:j})}),onPointerUp:p.composeEventHandlers(e.onPointerUp,c.onThumbPointerUp)})});Z.displayName=H;var Y="ScrollAreaCorner",ee=s.forwardRef((e,t)=>{const r=v(Y,e.__scopeScrollArea),n=!!(r.scrollbarX&&r.scrollbarY);return r.type!=="scroll"&&n?h.jsxRuntimeExports.jsx(Se,{...e,ref:t}):null});ee.displayName=Y;var Se=s.forwardRef((e,t)=>{const{__scopeScrollArea:r,...n}=e,o=v(Y,r),[l,c]=s.useState(0),[i,a]=s.useState(0),f=!!(l&&i);return P(o.scrollbarX,()=>{const u=o.scrollbarX?.offsetHeight||0;o.onCornerHeightChange(u),a(u)}),P(o.scrollbarY,()=>{const u=o.scrollbarY?.offsetWidth||0;o.onCornerWidthChange(u),c(u)}),f?h.jsxRuntimeExports.jsx(p.Primitive.div,{...n,ref:t,style:{width:l,height:i,position:"absolute",right:o.dir==="ltr"?0:void 0,left:o.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function N(e){return e?parseInt(e,10):0}function re(e,t){const r=e/t;return isNaN(r)?0:r}function O(e){const t=re(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,n=(e.scrollbar.size-r)*t;return Math.max(n,18)}function ve(e,t,r,n="ltr"){const o=O(r),l=o/2,c=t||l,i=o-c,a=r.scrollbar.paddingStart+c,f=r.scrollbar.size-r.scrollbar.paddingEnd-i,u=r.content-r.viewport,m=n==="ltr"?[0,u]:[u*-1,0];return te([a,f],m)(e)}function U(e,t,r="ltr"){const n=O(t),o=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,l=t.scrollbar.size-o,c=t.content-t.viewport,i=l-n,a=r==="ltr"?[0,c]:[c*-1,0],f=I.clamp(e,a);return te([0,c],[0,i])(f)}function te(e,t){return r=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const n=(t[1]-t[0])/(e[1]-e[0]);return t[0]+n*(r-e[0])}}function oe(e,t){return e>0&&e<t}var xe=(e,t=()=>{})=>{let r={left:e.scrollLeft,top:e.scrollTop},n=0;return(function o(){const l={left:e.scrollLeft,top:e.scrollTop},c=r.left!==l.left,i=r.top!==l.top;(c||i)&&t(),r=l,n=window.requestAnimationFrame(o)})(),()=>window.cancelAnimationFrame(n)};function W(e,t){const r=p.useCallbackRef(e),n=s.useRef(0);return s.useEffect(()=>()=>window.clearTimeout(n.current),[]),s.useCallback(()=>{window.clearTimeout(n.current),n.current=window.setTimeout(r,t)},[r,t])}function P(e,t){const r=p.useCallbackRef(t);p.useLayoutEffect2(()=>{let n=0;if(e){const o=new ResizeObserver(()=>{cancelAnimationFrame(n),n=window.requestAnimationFrame(r)});return o.observe(e),()=>{window.cancelAnimationFrame(n),o.unobserve(e)}}},[e,r])}var we=F,Re=$,ge=ee;function Ee({className:e,children:t,...r}){return h.jsxRuntimeExports.jsxs(we,{"data-slot":"scroll-area",className:B.cn("relative",e),...r,children:[h.jsxRuntimeExports.jsx(Re,{"data-slot":"scroll-area-viewport",className:"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",children:t}),h.jsxRuntimeExports.jsx(ne,{}),h.jsxRuntimeExports.jsx(ge,{})]})}function ne({className:e,orientation:t="vertical",...r}){return h.jsxRuntimeExports.jsx(G,{"data-slot":"scroll-area-scrollbar",orientation:t,className:B.cn("flex touch-none p-px transition-colors select-none",t==="vertical"&&"h-full w-2.5 border-l border-l-transparent",t==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent",e),...r,children:h.jsxRuntimeExports.jsx(Z,{"data-slot":"scroll-area-thumb",className:"bg-border relative flex-1 rounded-full"})})}exports.ScrollArea=Ee;exports.ScrollBar=ne;exports.Search=ie;
|
|
2
|
+
//# sourceMappingURL=scroll-area-B0mWCpSW.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll-area-C8l3z7wv.js","sources":["../../node_modules/.pnpm/lucide-react@0.543.0_react@19.1.1/node_modules/lucide-react/dist/esm/icons/search.js","../../node_modules/.pnpm/@radix-ui+react-scroll-area@1.2.10_@types+react-dom@19.1.9_@types+react@19.1.12__@types+react_2ybifjy3bplh5o2sdq6cwy7gae/node_modules/@radix-ui/react-scroll-area/dist/index.mjs","../../src/components/ui/scroll-area.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.543.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"m21 21-4.34-4.34\", key: \"14j7rj\" }],\n [\"circle\", { cx: \"11\", cy: \"11\", r: \"8\", key: \"4ej97u\" }]\n];\nconst Search = createLucideIcon(\"search\", __iconNode);\n\nexport { __iconNode, Search as default };\n//# sourceMappingURL=search.js.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","import * as React from \"react\";\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction ScrollArea({ className, children, ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.Root>) {\n\treturn (\n\t\t<ScrollAreaPrimitive.Root data-slot=\"scroll-area\" className={cn(\"relative\", className)} {...props}>\n\t\t\t<ScrollAreaPrimitive.Viewport\n\t\t\t\tdata-slot=\"scroll-area-viewport\"\n\t\t\t\tclassName=\"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1\"\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</ScrollAreaPrimitive.Viewport>\n\t\t\t<ScrollBar />\n\t\t\t<ScrollAreaPrimitive.Corner />\n\t\t</ScrollAreaPrimitive.Root>\n\t);\n}\n\nfunction ScrollBar({ className, orientation = \"vertical\", ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n\treturn (\n\t\t<ScrollAreaPrimitive.ScrollAreaScrollbar\n\t\t\tdata-slot=\"scroll-area-scrollbar\"\n\t\t\torientation={orientation}\n\t\t\tclassName={cn(\n\t\t\t\t\"flex touch-none p-px transition-colors select-none\",\n\t\t\t\torientation === \"vertical\" && \"h-full w-2.5 border-l border-l-transparent\",\n\t\t\t\torientation === \"horizontal\" && \"h-2.5 flex-col border-t border-t-transparent\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ScrollAreaPrimitive.ScrollAreaThumb data-slot=\"scroll-area-thumb\" className=\"bg-border relative flex-1 rounded-full\" />\n\t\t</ScrollAreaPrimitive.ScrollAreaScrollbar>\n\t);\n}\n\nexport { ScrollArea, ScrollBar };\n"],"names":["__iconNode","Search","createLucideIcon","useStateMachine","initialState","machine","React","state","event","SCROLL_AREA_NAME","createScrollAreaContext","createScrollAreaScope","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","y","handleWheel","element","THUMB_NAME","ScrollAreaThumb","thumbProps","scrollbarContext","ScrollAreaThumbImpl","style","scrollAreaContext","composedRef","removeUnlinkedScrollListenerRef","listener","addUnlinkedScrollListener","thumbRect","x","CORNER_NAME","ScrollAreaCorner","hasBothScrollbarsVisible","ScrollAreaCornerImpl","cornerProps","width","setWidth","height","setHeight","hasSize","height2","width2","value","viewportSize","contentSize","ratio","scrollbarPadding","thumbSize","pointerOffset","thumbSizePx","thumbCenter","thumbOffsetFromEnd","minPointerPos","maxPointerPos","scrollRange","linearScale","maxThumbPos","scrollClampRange","scrollWithoutMomentum","clamp","input","output","handler","prevPosition","rAF","loop","position","isHorizontalScroll","isVerticalScroll","callback","delay","handleCallback","debounceTimerRef","useLayoutEffect","resizeObserver","Root","Viewport","Corner","className","ScrollAreaPrimitive.Root","cn","ScrollAreaPrimitive.Viewport","ScrollBar","ScrollAreaPrimitive.Corner","ScrollAreaPrimitive.ScrollAreaScrollbar","ScrollAreaPrimitive.ScrollAreaThumb"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
1
|
+
{"version":3,"file":"scroll-area-B0mWCpSW.js","sources":["../../node_modules/.pnpm/lucide-react@0.543.0_react@19.1.1/node_modules/lucide-react/dist/esm/icons/search.js","../../node_modules/.pnpm/@radix-ui+react-scroll-area@1.2.10_@types+react-dom@19.1.9_@types+react@19.1.12__@types+react_2ybifjy3bplh5o2sdq6cwy7gae/node_modules/@radix-ui/react-scroll-area/dist/index.mjs","../../src/components/ui/scroll-area.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.543.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"m21 21-4.34-4.34\", key: \"14j7rj\" }],\n [\"circle\", { cx: \"11\", cy: \"11\", r: \"8\", key: \"4ej97u\" }]\n];\nconst Search = createLucideIcon(\"search\", __iconNode);\n\nexport { __iconNode, Search as default };\n//# sourceMappingURL=search.js.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","import * as React from \"react\";\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction ScrollArea({ className, children, ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.Root>) {\n\treturn (\n\t\t<ScrollAreaPrimitive.Root data-slot=\"scroll-area\" className={cn(\"relative\", className)} {...props}>\n\t\t\t<ScrollAreaPrimitive.Viewport\n\t\t\t\tdata-slot=\"scroll-area-viewport\"\n\t\t\t\tclassName=\"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1\"\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</ScrollAreaPrimitive.Viewport>\n\t\t\t<ScrollBar />\n\t\t\t<ScrollAreaPrimitive.Corner />\n\t\t</ScrollAreaPrimitive.Root>\n\t);\n}\n\nfunction ScrollBar({ className, orientation = \"vertical\", ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n\treturn (\n\t\t<ScrollAreaPrimitive.ScrollAreaScrollbar\n\t\t\tdata-slot=\"scroll-area-scrollbar\"\n\t\t\torientation={orientation}\n\t\t\tclassName={cn(\n\t\t\t\t\"flex touch-none p-px transition-colors select-none\",\n\t\t\t\torientation === \"vertical\" && \"h-full w-2.5 border-l border-l-transparent\",\n\t\t\t\torientation === \"horizontal\" && \"h-2.5 flex-col border-t border-t-transparent\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ScrollAreaPrimitive.ScrollAreaThumb data-slot=\"scroll-area-thumb\" className=\"bg-border relative flex-1 rounded-full\" />\n\t\t</ScrollAreaPrimitive.ScrollAreaScrollbar>\n\t);\n}\n\nexport { ScrollArea, ScrollBar };\n"],"names":["__iconNode","Search","createLucideIcon","useStateMachine","initialState","machine","React","state","event","SCROLL_AREA_NAME","createScrollAreaContext","createScrollAreaScope","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","y","handleWheel","element","THUMB_NAME","ScrollAreaThumb","thumbProps","scrollbarContext","ScrollAreaThumbImpl","style","scrollAreaContext","composedRef","removeUnlinkedScrollListenerRef","listener","addUnlinkedScrollListener","thumbRect","x","CORNER_NAME","ScrollAreaCorner","hasBothScrollbarsVisible","ScrollAreaCornerImpl","cornerProps","width","setWidth","height","setHeight","hasSize","height2","width2","value","viewportSize","contentSize","ratio","scrollbarPadding","thumbSize","pointerOffset","thumbSizePx","thumbCenter","thumbOffsetFromEnd","minPointerPos","maxPointerPos","scrollRange","linearScale","maxThumbPos","scrollClampRange","scrollWithoutMomentum","clamp","input","output","handler","prevPosition","rAF","loop","position","isHorizontalScroll","isVerticalScroll","callback","delay","handleCallback","debounceTimerRef","useLayoutEffect","resizeObserver","Root","Viewport","Corner","className","ScrollAreaPrimitive.Root","cn","ScrollAreaPrimitive.Viewport","ScrollBar","ScrollAreaPrimitive.Corner","ScrollAreaPrimitive.ScrollAreaScrollbar","ScrollAreaPrimitive.ScrollAreaThumb"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { c as ce, u as se, b as ae } from "./index-VJ2Qvmen.js";
|
|
2
2
|
import { j as f } from "./jsx-runtime-Cl_4eDuT.js";
|
|
3
3
|
import * as c from "react";
|
|
4
|
-
import { c as ie, P as _, a as O, b as C, u as P, d as de } from "./textarea-
|
|
4
|
+
import { c as ie, P as _, a as O, b as C, u as P, d as de } from "./textarea-BYbersWf.js";
|
|
5
5
|
import { u as A } from "./index-Do-g2tEs.js";
|
|
6
|
-
import { c as F } from "./utils-
|
|
6
|
+
import { c as F } from "./utils-CvyT6Z0O.js";
|
|
7
7
|
const ue = [
|
|
8
8
|
["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
|
|
9
9
|
["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
|
|
@@ -553,4 +553,4 @@ export {
|
|
|
553
553
|
He as a,
|
|
554
554
|
Ae as b
|
|
555
555
|
};
|
|
556
|
-
//# sourceMappingURL=scroll-area-
|
|
556
|
+
//# sourceMappingURL=scroll-area-CE7quLQL.js.map
|