@ehfuse/overlay-scrollbar 1.6.9 → 1.6.11
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/LICENSE +21 -21
- package/README.md +120 -120
- package/dist/OverlayScrollbar.d.ts.map +1 -1
- package/dist/hooks/useKeyboardNavigation.d.ts.map +1 -1
- package/dist/index.esm.js +2 -2
- package/dist/index.esm.js.map +3 -3
- package/dist/index.js +2 -2
- package/dist/index.js.map +3 -3
- package/package.json +52 -52
- package/dist/src/OverlayScrollbar.d.ts +0 -86
- package/dist/src/OverlayScrollbar.d.ts.map +0 -1
- package/dist/src/components/ScrollbarArrows.d.ts +0 -29
- package/dist/src/components/ScrollbarArrows.d.ts.map +0 -1
- package/dist/src/components/ScrollbarThumb.d.ts +0 -35
- package/dist/src/components/ScrollbarThumb.d.ts.map +0 -1
- package/dist/src/components/ScrollbarTrack.d.ts +0 -32
- package/dist/src/components/ScrollbarTrack.d.ts.map +0 -1
- package/dist/src/hooks/useArrowNavigation.d.ts +0 -27
- package/dist/src/hooks/useArrowNavigation.d.ts.map +0 -1
- package/dist/src/hooks/useAutoHide.d.ts +0 -19
- package/dist/src/hooks/useAutoHide.d.ts.map +0 -1
- package/dist/src/hooks/useDragScroll.d.ts +0 -23
- package/dist/src/hooks/useDragScroll.d.ts.map +0 -1
- package/dist/src/hooks/useKeyboardNavigation.d.ts +0 -18
- package/dist/src/hooks/useKeyboardNavigation.d.ts.map +0 -1
- package/dist/src/hooks/useScrollEvents.d.ts +0 -20
- package/dist/src/hooks/useScrollEvents.d.ts.map +0 -1
- package/dist/src/hooks/useScrollbarConfig.d.ts +0 -53
- package/dist/src/hooks/useScrollbarConfig.d.ts.map +0 -1
- package/dist/src/hooks/useScrollbarInitialization.d.ts +0 -21
- package/dist/src/hooks/useScrollbarInitialization.d.ts.map +0 -1
- package/dist/src/hooks/useScrollbarUpdate.d.ts +0 -27
- package/dist/src/hooks/useScrollbarUpdate.d.ts.map +0 -1
- package/dist/src/hooks/useThumbDrag.d.ts +0 -25
- package/dist/src/hooks/useThumbDrag.d.ts.map +0 -1
- package/dist/src/hooks/useTrackClick.d.ts +0 -20
- package/dist/src/hooks/useTrackClick.d.ts.map +0 -1
- package/dist/src/types.d.ts +0 -69
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/utils/dragScrollUtils.d.ts +0 -40
- package/dist/src/utils/dragScrollUtils.d.ts.map +0 -1
package/package.json
CHANGED
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@ehfuse/overlay-scrollbar",
|
|
3
|
-
"version": "1.6.
|
|
4
|
-
"description": "A React component that provides a custom overlay scrollbar with smooth animations and auto-hide functionality",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "dist/index.js",
|
|
7
|
-
"module": "dist/index.esm.js",
|
|
8
|
-
"types": "dist/index.d.ts",
|
|
9
|
-
"files": [
|
|
10
|
-
"dist",
|
|
11
|
-
"README.md",
|
|
12
|
-
"LICENSE"
|
|
13
|
-
],
|
|
14
|
-
"scripts": {
|
|
15
|
-
"build": "node build.js",
|
|
16
|
-
"prepublishOnly": "npm run build",
|
|
17
|
-
"dev": "node build.js",
|
|
18
|
-
"test": "echo \"Error: no test specified\" && exit 1"
|
|
19
|
-
},
|
|
20
|
-
"keywords": [
|
|
21
|
-
"react",
|
|
22
|
-
"scrollbar",
|
|
23
|
-
"overlay",
|
|
24
|
-
"custom-scrollbar",
|
|
25
|
-
"typescript",
|
|
26
|
-
"ui-component",
|
|
27
|
-
"smooth-scrolling",
|
|
28
|
-
"auto-hide"
|
|
29
|
-
],
|
|
30
|
-
"author": "KIM YOUNG JIN <ehfuse@gmail.com>",
|
|
31
|
-
"license": "MIT",
|
|
32
|
-
"repository": {
|
|
33
|
-
"type": "git",
|
|
34
|
-
"url": "https://github.com/ehfuse/overlay-scrollbar.git"
|
|
35
|
-
},
|
|
36
|
-
"bugs": {
|
|
37
|
-
"url": "https://github.com/ehfuse/overlay-scrollbar/issues"
|
|
38
|
-
},
|
|
39
|
-
"homepage": "https://github.com/ehfuse/overlay-scrollbar#readme",
|
|
40
|
-
"peerDependencies": {
|
|
41
|
-
"react": ">=16.8.0",
|
|
42
|
-
"react-dom": ">=16.8.0"
|
|
43
|
-
},
|
|
44
|
-
"devDependencies": {
|
|
45
|
-
"@types/node": "^20.19.17",
|
|
46
|
-
"@types/react": "^18.2.31",
|
|
47
|
-
"@types/react-dom": "^18.2.14",
|
|
48
|
-
"esbuild": "^0.27.0",
|
|
49
|
-
"tslib": "^2.8.1",
|
|
50
|
-
"typescript": "^5.9.3"
|
|
51
|
-
}
|
|
52
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@ehfuse/overlay-scrollbar",
|
|
3
|
+
"version": "1.6.11",
|
|
4
|
+
"description": "A React component that provides a custom overlay scrollbar with smooth animations and auto-hide functionality",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"module": "dist/index.esm.js",
|
|
8
|
+
"types": "dist/index.d.ts",
|
|
9
|
+
"files": [
|
|
10
|
+
"dist",
|
|
11
|
+
"README.md",
|
|
12
|
+
"LICENSE"
|
|
13
|
+
],
|
|
14
|
+
"scripts": {
|
|
15
|
+
"build": "node build.js",
|
|
16
|
+
"prepublishOnly": "npm run build",
|
|
17
|
+
"dev": "node build.js",
|
|
18
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
19
|
+
},
|
|
20
|
+
"keywords": [
|
|
21
|
+
"react",
|
|
22
|
+
"scrollbar",
|
|
23
|
+
"overlay",
|
|
24
|
+
"custom-scrollbar",
|
|
25
|
+
"typescript",
|
|
26
|
+
"ui-component",
|
|
27
|
+
"smooth-scrolling",
|
|
28
|
+
"auto-hide"
|
|
29
|
+
],
|
|
30
|
+
"author": "KIM YOUNG JIN <ehfuse@gmail.com>",
|
|
31
|
+
"license": "MIT",
|
|
32
|
+
"repository": {
|
|
33
|
+
"type": "git",
|
|
34
|
+
"url": "https://github.com/ehfuse/overlay-scrollbar.git"
|
|
35
|
+
},
|
|
36
|
+
"bugs": {
|
|
37
|
+
"url": "https://github.com/ehfuse/overlay-scrollbar/issues"
|
|
38
|
+
},
|
|
39
|
+
"homepage": "https://github.com/ehfuse/overlay-scrollbar#readme",
|
|
40
|
+
"peerDependencies": {
|
|
41
|
+
"react": ">=16.8.0",
|
|
42
|
+
"react-dom": ">=16.8.0"
|
|
43
|
+
},
|
|
44
|
+
"devDependencies": {
|
|
45
|
+
"@types/node": "^20.19.17",
|
|
46
|
+
"@types/react": "^18.2.31",
|
|
47
|
+
"@types/react-dom": "^18.2.14",
|
|
48
|
+
"esbuild": "^0.27.0",
|
|
49
|
+
"tslib": "^2.8.1",
|
|
50
|
+
"typescript": "^5.9.3"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OverlayScrollbar.tsx
|
|
3
|
-
*
|
|
4
|
-
* @copyright 2025 KIM YOUNG JIN (ehfuse@gmail.com)
|
|
5
|
-
*
|
|
6
|
-
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
-
* of this software and associated documentation files (the "Software"), to deal
|
|
8
|
-
* in the Software without restriction, including without limitation the rights
|
|
9
|
-
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
-
* copies of the Software, and to permit persons to whom the Software is
|
|
11
|
-
* furnished to do so, subject to the following conditions:
|
|
12
|
-
*
|
|
13
|
-
* The above copyright notice and this permission notice shall be included in all
|
|
14
|
-
* copies or substantial portions of the Software.
|
|
15
|
-
*
|
|
16
|
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
-
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
-
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
-
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
-
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
-
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
|
-
* SOFTWARE.
|
|
23
|
-
*/
|
|
24
|
-
import React, { ReactNode } from "react";
|
|
25
|
-
export interface ThumbConfig {
|
|
26
|
-
width?: number;
|
|
27
|
-
minHeight?: number;
|
|
28
|
-
radius?: number;
|
|
29
|
-
color?: string;
|
|
30
|
-
opacity?: number;
|
|
31
|
-
hoverColor?: string;
|
|
32
|
-
hoverOpacity?: number;
|
|
33
|
-
}
|
|
34
|
-
export interface TrackConfig {
|
|
35
|
-
width?: number;
|
|
36
|
-
color?: string;
|
|
37
|
-
visible?: boolean;
|
|
38
|
-
alignment?: "center" | "right";
|
|
39
|
-
radius?: number;
|
|
40
|
-
margin?: number;
|
|
41
|
-
}
|
|
42
|
-
export interface ArrowsConfig {
|
|
43
|
-
visible?: boolean;
|
|
44
|
-
step?: number;
|
|
45
|
-
color?: string;
|
|
46
|
-
opacity?: number;
|
|
47
|
-
hoverColor?: string;
|
|
48
|
-
hoverOpacity?: number;
|
|
49
|
-
}
|
|
50
|
-
export interface DragScrollConfig {
|
|
51
|
-
enabled?: boolean;
|
|
52
|
-
excludeClasses?: string[];
|
|
53
|
-
excludeSelectors?: string[];
|
|
54
|
-
}
|
|
55
|
-
export interface AutoHideConfig {
|
|
56
|
-
enabled?: boolean;
|
|
57
|
-
delay?: number;
|
|
58
|
-
delayOnWheel?: number;
|
|
59
|
-
initialDelay?: number;
|
|
60
|
-
}
|
|
61
|
-
export interface OverlayScrollbarProps {
|
|
62
|
-
className?: string;
|
|
63
|
-
style?: React.CSSProperties;
|
|
64
|
-
containerStyle?: React.CSSProperties;
|
|
65
|
-
contentStyle?: React.CSSProperties;
|
|
66
|
-
children: ReactNode;
|
|
67
|
-
onScroll?: (event: Event) => void;
|
|
68
|
-
thumb?: ThumbConfig;
|
|
69
|
-
track?: TrackConfig;
|
|
70
|
-
arrows?: ArrowsConfig;
|
|
71
|
-
dragScroll?: DragScrollConfig;
|
|
72
|
-
autoHide?: AutoHideConfig;
|
|
73
|
-
showScrollbar?: boolean;
|
|
74
|
-
detectInnerScroll?: boolean;
|
|
75
|
-
}
|
|
76
|
-
export interface OverlayScrollbarRef {
|
|
77
|
-
getScrollContainer: () => HTMLDivElement | null;
|
|
78
|
-
scrollTo: (options: ScrollToOptions) => void;
|
|
79
|
-
scrollTop: number;
|
|
80
|
-
scrollHeight: number;
|
|
81
|
-
clientHeight: number;
|
|
82
|
-
}
|
|
83
|
-
declare const OverlayScrollbar: React.ForwardRefExoticComponent<OverlayScrollbarProps & React.RefAttributes<OverlayScrollbarRef>>;
|
|
84
|
-
export default OverlayScrollbar;
|
|
85
|
-
export { OverlayScrollbar };
|
|
86
|
-
//# sourceMappingURL=OverlayScrollbar.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OverlayScrollbar.d.ts","sourceRoot":"","sources":["../../src/OverlayScrollbar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,EAMV,SAAS,EAIZ,MAAM,OAAO,CAAC;AAIf,MAAM,WAAW,WAAW;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD,MAAM,WAAW,WAAW;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,YAAY;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD,MAAM,WAAW,gBAAgB;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAGD,MAAM,WAAW,cAAc;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,YAAY,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACnC,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAGlC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAG1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAGD,MAAM,WAAW,mBAAmB;IAChC,kBAAkB,EAAE,MAAM,cAAc,GAAG,IAAI,CAAC;IAChD,QAAQ,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACxB;AASD,QAAA,MAAM,gBAAgB,mGAq0CrB,CAAC;AAEF,eAAe,gBAAgB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ScrollbarArrows.tsx
|
|
3
|
-
* 스크롤바 화살표 버튼 컴포넌트
|
|
4
|
-
*
|
|
5
|
-
* @copyright 2025 KIM YOUNG JIN (ehfuse@gmail.com)
|
|
6
|
-
*/
|
|
7
|
-
import React from "react";
|
|
8
|
-
interface ScrollbarArrowsProps {
|
|
9
|
-
adjustedTrackWidth: number;
|
|
10
|
-
finalThumbWidth: number;
|
|
11
|
-
scrollbarVisible: boolean;
|
|
12
|
-
hoveredArrow: "up" | "down" | null;
|
|
13
|
-
finalArrowsConfig: {
|
|
14
|
-
color: string;
|
|
15
|
-
opacity: number;
|
|
16
|
-
hoverColor: string;
|
|
17
|
-
hoverOpacity: number;
|
|
18
|
-
};
|
|
19
|
-
finalTrackConfig: {
|
|
20
|
-
alignment: string;
|
|
21
|
-
margin: number;
|
|
22
|
-
};
|
|
23
|
-
setHoveredArrow: (arrow: "up" | "down" | null) => void;
|
|
24
|
-
handleUpArrowClick: (e: React.MouseEvent) => void;
|
|
25
|
-
handleDownArrowClick: (e: React.MouseEvent) => void;
|
|
26
|
-
}
|
|
27
|
-
export declare const ScrollbarArrows: React.FC<ScrollbarArrowsProps>;
|
|
28
|
-
export {};
|
|
29
|
-
//# sourceMappingURL=ScrollbarArrows.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollbarArrows.d.ts","sourceRoot":"","sources":["../../../src/components/ScrollbarArrows.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,oBAAoB;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IACnC,iBAAiB,EAAE;QACf,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,gBAAgB,EAAE;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,eAAe,EAAE,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACvD,kBAAkB,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAClD,oBAAoB,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;CACvD;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA8E1D,CAAC"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ScrollbarThumb.tsx
|
|
3
|
-
* 스크롤바 썸 컴포넌트
|
|
4
|
-
*
|
|
5
|
-
* @copyright 2025 KIM YOUNG JIN (ehfuse@gmail.com)
|
|
6
|
-
*/
|
|
7
|
-
import React from "react";
|
|
8
|
-
interface ScrollbarThumbProps {
|
|
9
|
-
thumbRef: React.RefObject<HTMLDivElement>;
|
|
10
|
-
thumbTop: number;
|
|
11
|
-
thumbHeight: number;
|
|
12
|
-
thumbMinHeight: number;
|
|
13
|
-
showArrows: boolean;
|
|
14
|
-
finalThumbWidth: number;
|
|
15
|
-
adjustedTrackWidth: number;
|
|
16
|
-
isDragging: boolean;
|
|
17
|
-
isThumbHovered: boolean;
|
|
18
|
-
finalThumbConfig: {
|
|
19
|
-
width: number;
|
|
20
|
-
color: string;
|
|
21
|
-
opacity: number;
|
|
22
|
-
hoverColor: string;
|
|
23
|
-
hoverOpacity: number;
|
|
24
|
-
radius: number;
|
|
25
|
-
};
|
|
26
|
-
finalTrackConfig: {
|
|
27
|
-
alignment: string;
|
|
28
|
-
margin: number;
|
|
29
|
-
};
|
|
30
|
-
handleThumbMouseDown: (e: React.MouseEvent) => void;
|
|
31
|
-
setIsThumbHovered: (hovered: boolean) => void;
|
|
32
|
-
}
|
|
33
|
-
export declare const ScrollbarThumb: React.FC<ScrollbarThumbProps>;
|
|
34
|
-
export {};
|
|
35
|
-
//# sourceMappingURL=ScrollbarThumb.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollbarThumb.d.ts","sourceRoot":"","sources":["../../../src/components/ScrollbarThumb.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,mBAAmB;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE;QACd,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,gBAAgB,EAAE;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,oBAAoB,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACpD,iBAAiB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACjD;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAkDxD,CAAC"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ScrollbarTrack.tsx
|
|
3
|
-
* 스크롤바 트랙 컴포넌트
|
|
4
|
-
*
|
|
5
|
-
* @copyright 2025 KIM YOUNG JIN (ehfuse@gmail.com)
|
|
6
|
-
*/
|
|
7
|
-
import React from "react";
|
|
8
|
-
interface ScrollbarTrackProps {
|
|
9
|
-
scrollbarRef: React.RefObject<HTMLDivElement>;
|
|
10
|
-
adjustedTrackWidth: number;
|
|
11
|
-
scrollbarVisible: boolean;
|
|
12
|
-
isDragging: boolean;
|
|
13
|
-
showArrows: boolean;
|
|
14
|
-
finalThumbWidth: number;
|
|
15
|
-
finalTrackConfig: {
|
|
16
|
-
visible: boolean;
|
|
17
|
-
alignment: string;
|
|
18
|
-
margin: number;
|
|
19
|
-
color: string;
|
|
20
|
-
radius: number;
|
|
21
|
-
width: number;
|
|
22
|
-
};
|
|
23
|
-
clearHideTimer: () => void;
|
|
24
|
-
setScrollbarVisible: (visible: boolean) => void;
|
|
25
|
-
setHideTimer: (delay: number) => void;
|
|
26
|
-
autoHideDelay: number;
|
|
27
|
-
handleTrackClick: (e: React.MouseEvent) => void;
|
|
28
|
-
children: React.ReactNode;
|
|
29
|
-
}
|
|
30
|
-
export declare const ScrollbarTrack: React.FC<ScrollbarTrackProps>;
|
|
31
|
-
export {};
|
|
32
|
-
//# sourceMappingURL=ScrollbarTrack.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollbarTrack.d.ts","sourceRoot":"","sources":["../../../src/components/ScrollbarTrack.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,mBAAmB;IACzB,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE;QACd,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,mBAAmB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAChD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA+ExD,CAAC"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useArrowNavigation.ts
|
|
3
|
-
* 화살표 네비게이션 관련 로직
|
|
4
|
-
*
|
|
5
|
-
* @copyright 2025 KIM YOUNG JIN (ehfuse@gmail.com)
|
|
6
|
-
*/
|
|
7
|
-
import { ArrowsConfig } from "../types";
|
|
8
|
-
interface UseArrowNavigationProps {
|
|
9
|
-
arrows: ArrowsConfig;
|
|
10
|
-
containerRef: React.RefObject<HTMLDivElement>;
|
|
11
|
-
contentRef: React.RefObject<HTMLDivElement>;
|
|
12
|
-
updateScrollbar: () => void;
|
|
13
|
-
setScrollbarVisible: (visible: boolean) => void;
|
|
14
|
-
setHideTimer: (delay: number) => void;
|
|
15
|
-
hideDelay: number;
|
|
16
|
-
maintainFocus: () => void;
|
|
17
|
-
}
|
|
18
|
-
export declare const useArrowNavigation: ({ arrows, containerRef, contentRef, updateScrollbar, setScrollbarVisible, setHideTimer, hideDelay, maintainFocus, }: UseArrowNavigationProps) => {
|
|
19
|
-
activeArrow: "up" | "down" | null;
|
|
20
|
-
setActiveArrow: import("react").Dispatch<import("react").SetStateAction<"up" | "down" | null>>;
|
|
21
|
-
hoveredArrow: "up" | "down" | null;
|
|
22
|
-
setHoveredArrow: import("react").Dispatch<import("react").SetStateAction<"up" | "down" | null>>;
|
|
23
|
-
handleUpArrowClick: (event: React.MouseEvent) => void;
|
|
24
|
-
handleDownArrowClick: (event: React.MouseEvent) => void;
|
|
25
|
-
};
|
|
26
|
-
export {};
|
|
27
|
-
//# sourceMappingURL=useArrowNavigation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useArrowNavigation.d.ts","sourceRoot":"","sources":["../../../src/hooks/useArrowNavigation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,UAAU,uBAAuB;IAC7B,MAAM,EAAE,YAAY,CAAC;IACrB,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9C,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC5C,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,mBAAmB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,eAAO,MAAM,kBAAkB,GAAI,qHAShC,uBAAuB;;;;;gCAUV,KAAK,CAAC,UAAU;kCAiChB,KAAK,CAAC,UAAU;CA2C/B,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useAutoHide.ts
|
|
3
|
-
* 스크롤바 자동 숨김 관련 로직
|
|
4
|
-
*
|
|
5
|
-
* @copyright 2025 KIM YOUNG JIN (ehfuse@gmail.com)
|
|
6
|
-
*/
|
|
7
|
-
import { AutoHideConfig } from "../types";
|
|
8
|
-
interface UseAutoHideProps {
|
|
9
|
-
autoHide: AutoHideConfig;
|
|
10
|
-
isScrollable: () => boolean;
|
|
11
|
-
setScrollbarVisible: (visible: boolean) => void;
|
|
12
|
-
}
|
|
13
|
-
export declare const useAutoHide: ({ autoHide, isScrollable, setScrollbarVisible, }: UseAutoHideProps) => {
|
|
14
|
-
clearHideTimer: () => void;
|
|
15
|
-
setHideTimer: (delay: number) => void;
|
|
16
|
-
hideTimeoutRef: import("react").MutableRefObject<NodeJS.Timeout | null>;
|
|
17
|
-
};
|
|
18
|
-
export {};
|
|
19
|
-
//# sourceMappingURL=useAutoHide.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useAutoHide.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAutoHide.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,UAAU,gBAAgB;IACtB,QAAQ,EAAE,cAAc,CAAC;IACzB,YAAY,EAAE,MAAM,OAAO,CAAC;IAC5B,mBAAmB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACnD;AAED,eAAO,MAAM,WAAW,GAAI,kDAIzB,gBAAgB;;0BAaH,MAAM;;CAiBrB,CAAC"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useDragScroll.ts
|
|
3
|
-
* 드래그 스크롤 관련 로직
|
|
4
|
-
*
|
|
5
|
-
* @copyright 2025 KIM YOUNG JIN (ehfuse@gmail.com)
|
|
6
|
-
*/
|
|
7
|
-
import { DragScrollConfig } from "../types";
|
|
8
|
-
interface UseDragScrollProps {
|
|
9
|
-
dragScroll: DragScrollConfig;
|
|
10
|
-
findScrollableElement: () => HTMLElement | null;
|
|
11
|
-
clearHideTimer: () => void;
|
|
12
|
-
setScrollbarVisible: (visible: boolean) => void;
|
|
13
|
-
updateScrollbar: () => void;
|
|
14
|
-
setHideTimer: (delay: number) => void;
|
|
15
|
-
hideDelay: number;
|
|
16
|
-
isScrollable: () => boolean;
|
|
17
|
-
}
|
|
18
|
-
export declare const useDragScroll: ({ dragScroll, findScrollableElement, clearHideTimer, setScrollbarVisible, updateScrollbar, setHideTimer, hideDelay, isScrollable, }: UseDragScrollProps) => {
|
|
19
|
-
isDragScrolling: boolean;
|
|
20
|
-
handleDragScrollStart: (event: React.MouseEvent) => void;
|
|
21
|
-
};
|
|
22
|
-
export {};
|
|
23
|
-
//# sourceMappingURL=useDragScroll.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useDragScroll.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDragScroll.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG5C,UAAU,kBAAkB;IACxB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,qBAAqB,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IAChD,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,mBAAmB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,OAAO,CAAC;CAC/B;AAED,eAAO,MAAM,aAAa,GAAI,qIAS3B,kBAAkB;;mCAeL,KAAK,CAAC,UAAU;CAsH/B,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useKeyboardNavigation.ts
|
|
3
|
-
* 키보드 네비게이션 관련 로직 (방향키, PageUp/PageDown/Home/End)
|
|
4
|
-
*
|
|
5
|
-
* @copyright 2025 KIM YOUNG JIN (ehfuse@gmail.com)
|
|
6
|
-
*/
|
|
7
|
-
interface UseKeyboardNavigationProps {
|
|
8
|
-
containerRef: React.RefObject<HTMLDivElement>;
|
|
9
|
-
findScrollableElement: () => HTMLElement | null;
|
|
10
|
-
updateScrollbar: () => void;
|
|
11
|
-
clearHideTimer: () => void;
|
|
12
|
-
setScrollbarVisible: (visible: boolean) => void;
|
|
13
|
-
setHideTimer: (delay: number) => void;
|
|
14
|
-
hideDelay: number;
|
|
15
|
-
}
|
|
16
|
-
export declare const useKeyboardNavigation: ({ containerRef, findScrollableElement, updateScrollbar, clearHideTimer, setScrollbarVisible, setHideTimer, hideDelay, }: UseKeyboardNavigationProps) => void;
|
|
17
|
-
export {};
|
|
18
|
-
//# sourceMappingURL=useKeyboardNavigation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useKeyboardNavigation.d.ts","sourceRoot":"","sources":["../../../src/hooks/useKeyboardNavigation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,UAAU,0BAA0B;IAChC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9C,qBAAqB,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IAChD,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,mBAAmB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,qBAAqB,GAAI,yHAQnC,0BAA0B,SA+F5B,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useScrollEvents.ts
|
|
3
|
-
* 스크롤 이벤트 관련 로직
|
|
4
|
-
*
|
|
5
|
-
* @copyright 2025 KIM YOUNG JIN (ehfuse@gmail.com)
|
|
6
|
-
*/
|
|
7
|
-
import { AutoHideConfig } from "../types";
|
|
8
|
-
interface UseScrollEventsProps {
|
|
9
|
-
containerRef: React.RefObject<HTMLDivElement>;
|
|
10
|
-
findScrollableElement: () => HTMLElement | null;
|
|
11
|
-
updateScrollbar: () => void;
|
|
12
|
-
clearHideTimer: () => void;
|
|
13
|
-
setScrollbarVisible: (visible: boolean) => void;
|
|
14
|
-
setHideTimer: (delay: number) => void;
|
|
15
|
-
autoHide: AutoHideConfig;
|
|
16
|
-
onScroll?: (event: Event) => void;
|
|
17
|
-
}
|
|
18
|
-
export declare const useScrollEvents: ({ containerRef, findScrollableElement, updateScrollbar, clearHideTimer, setScrollbarVisible, setHideTimer, autoHide, onScroll, }: UseScrollEventsProps) => void;
|
|
19
|
-
export {};
|
|
20
|
-
//# sourceMappingURL=useScrollEvents.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useScrollEvents.d.ts","sourceRoot":"","sources":["../../../src/hooks/useScrollEvents.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,UAAU,oBAAoB;IAC1B,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9C,qBAAqB,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IAChD,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,mBAAmB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACrC;AAED,eAAO,MAAM,eAAe,GAAI,kIAS7B,oBAAoB,SA+JtB,CAAC"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useScrollbarConfig.ts
|
|
3
|
-
* 스크롤바 설정 계산 로직
|
|
4
|
-
*
|
|
5
|
-
* @copyright 2025 KIM YOUNG JIN (ehfuse@gmail.com)
|
|
6
|
-
*/
|
|
7
|
-
import { ThumbConfig, TrackConfig, ArrowsConfig, DragScrollConfig, AutoHideConfig } from "../types";
|
|
8
|
-
interface UseScrollbarConfigProps {
|
|
9
|
-
thumb: ThumbConfig;
|
|
10
|
-
track: TrackConfig;
|
|
11
|
-
arrows: ArrowsConfig;
|
|
12
|
-
dragScroll: DragScrollConfig;
|
|
13
|
-
autoHide: AutoHideConfig;
|
|
14
|
-
}
|
|
15
|
-
export declare const useScrollbarConfig: ({ thumb, track, arrows, dragScroll, autoHide, }: UseScrollbarConfigProps) => {
|
|
16
|
-
finalThumbConfig: {
|
|
17
|
-
width: number;
|
|
18
|
-
minHeight: number;
|
|
19
|
-
radius: number;
|
|
20
|
-
color: string;
|
|
21
|
-
opacity: number;
|
|
22
|
-
hoverColor: string;
|
|
23
|
-
hoverOpacity: number;
|
|
24
|
-
};
|
|
25
|
-
finalTrackConfig: {
|
|
26
|
-
width: number;
|
|
27
|
-
color: string;
|
|
28
|
-
visible: boolean;
|
|
29
|
-
alignment: "center" | "right";
|
|
30
|
-
radius: number;
|
|
31
|
-
margin: number;
|
|
32
|
-
};
|
|
33
|
-
finalArrowsConfig: {
|
|
34
|
-
visible: boolean;
|
|
35
|
-
step: number;
|
|
36
|
-
color: string;
|
|
37
|
-
opacity: number;
|
|
38
|
-
hoverColor: string;
|
|
39
|
-
hoverOpacity: number;
|
|
40
|
-
};
|
|
41
|
-
finalDragScrollConfig: {
|
|
42
|
-
enabled: boolean;
|
|
43
|
-
excludeClasses: string[];
|
|
44
|
-
excludeSelectors: string[];
|
|
45
|
-
};
|
|
46
|
-
finalAutoHideConfig: {
|
|
47
|
-
enabled: boolean;
|
|
48
|
-
delay: number;
|
|
49
|
-
delayOnWheel: number;
|
|
50
|
-
};
|
|
51
|
-
};
|
|
52
|
-
export {};
|
|
53
|
-
//# sourceMappingURL=useScrollbarConfig.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useScrollbarConfig.d.ts","sourceRoot":"","sources":["../../../src/hooks/useScrollbarConfig.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACH,WAAW,EACX,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACjB,MAAM,UAAU,CAAC;AAElB,UAAU,uBAAuB;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,EAAE,cAAc,CAAC;CAC5B;AAED,eAAO,MAAM,kBAAkB,GAAI,iDAMhC,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoEzB,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useScrollbarInitialization.ts
|
|
3
|
-
* 스크롤바 초기화 관련 로직 (ResizeObserver, MutationObserver, CSS 주입 등)
|
|
4
|
-
*
|
|
5
|
-
* @copyright 2025 KIM YOUNG JIN (ehfuse@gmail.com)
|
|
6
|
-
*/
|
|
7
|
-
import { AutoHideConfig } from "../types";
|
|
8
|
-
interface UseScrollbarInitializationProps {
|
|
9
|
-
containerRef: React.RefObject<HTMLDivElement>;
|
|
10
|
-
contentRef: React.RefObject<HTMLDivElement>;
|
|
11
|
-
cachedScrollContainerRef: React.MutableRefObject<HTMLElement | null>;
|
|
12
|
-
updateScrollbar: () => void;
|
|
13
|
-
setScrollbarVisible: (visible: boolean) => void;
|
|
14
|
-
isScrollable: () => boolean;
|
|
15
|
-
autoHide: AutoHideConfig;
|
|
16
|
-
}
|
|
17
|
-
export declare const useScrollbarInitialization: ({ containerRef, contentRef, cachedScrollContainerRef, updateScrollbar, setScrollbarVisible, isScrollable, autoHide, }: UseScrollbarInitializationProps) => {
|
|
18
|
-
isInitialized: boolean;
|
|
19
|
-
};
|
|
20
|
-
export {};
|
|
21
|
-
//# sourceMappingURL=useScrollbarInitialization.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useScrollbarInitialization.d.ts","sourceRoot":"","sources":["../../../src/hooks/useScrollbarInitialization.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,UAAU,+BAA+B;IACrC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9C,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC5C,wBAAwB,EAAE,KAAK,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACrE,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,mBAAmB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,YAAY,EAAE,MAAM,OAAO,CAAC;IAC5B,QAAQ,EAAE,cAAc,CAAC;CAC5B;AAED,eAAO,MAAM,0BAA0B,GAAI,uHAQxC,+BAA+B;;CA6HjC,CAAC"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useScrollbarUpdate.ts
|
|
3
|
-
* 스크롤바 업데이트 관련 로직
|
|
4
|
-
*
|
|
5
|
-
* @copyright 2025 KIM YOUNG JIN (ehfuse@gmail.com)
|
|
6
|
-
*/
|
|
7
|
-
import { ThumbConfig, TrackConfig, ArrowsConfig, AutoHideConfig } from "../types";
|
|
8
|
-
interface UseScrollbarUpdateProps {
|
|
9
|
-
wrapperRef: React.RefObject<HTMLDivElement>;
|
|
10
|
-
scrollbarRef: React.RefObject<HTMLDivElement>;
|
|
11
|
-
contentRef: React.RefObject<HTMLDivElement>;
|
|
12
|
-
findScrollableElement: () => HTMLElement | null;
|
|
13
|
-
clearHideTimer: () => void;
|
|
14
|
-
setScrollbarVisible: (visible: boolean) => void;
|
|
15
|
-
thumb: ThumbConfig;
|
|
16
|
-
track: TrackConfig;
|
|
17
|
-
arrows: ArrowsConfig;
|
|
18
|
-
autoHide: AutoHideConfig;
|
|
19
|
-
}
|
|
20
|
-
export declare const useScrollbarUpdate: ({ wrapperRef, scrollbarRef, contentRef, findScrollableElement, clearHideTimer, setScrollbarVisible, thumb, track, arrows, autoHide, }: UseScrollbarUpdateProps) => {
|
|
21
|
-
thumbHeight: number;
|
|
22
|
-
thumbTop: number;
|
|
23
|
-
hasScrollableContent: boolean;
|
|
24
|
-
updateScrollbar: () => void;
|
|
25
|
-
};
|
|
26
|
-
export {};
|
|
27
|
-
//# sourceMappingURL=useScrollbarUpdate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useScrollbarUpdate.d.ts","sourceRoot":"","sources":["../../../src/hooks/useScrollbarUpdate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACH,WAAW,EACX,WAAW,EACX,YAAY,EACZ,cAAc,EACjB,MAAM,UAAU,CAAC;AAElB,UAAU,uBAAuB;IAC7B,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC5C,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9C,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC5C,qBAAqB,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IAChD,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,mBAAmB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC;CAC5B;AAED,eAAO,MAAM,kBAAkB,GAAI,uIAWhC,uBAAuB;;;;;CAiHzB,CAAC"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useThumbDrag.ts
|
|
3
|
-
* 썸 드래그 관련 로직
|
|
4
|
-
*
|
|
5
|
-
* @copyright 2025 KIM YOUNG JIN (ehfuse@gmail.com)
|
|
6
|
-
*/
|
|
7
|
-
interface UseThumbDragProps {
|
|
8
|
-
findScrollableElement: () => HTMLElement | null;
|
|
9
|
-
thumbHeight: number;
|
|
10
|
-
clearHideTimer: () => void;
|
|
11
|
-
setScrollbarVisible: (visible: boolean) => void;
|
|
12
|
-
updateScrollbar: () => void;
|
|
13
|
-
setHideTimer: (delay: number) => void;
|
|
14
|
-
hideDelay: number;
|
|
15
|
-
isScrollable: () => boolean;
|
|
16
|
-
maintainFocus: () => void;
|
|
17
|
-
}
|
|
18
|
-
export declare const useThumbDrag: ({ findScrollableElement, thumbHeight, clearHideTimer, setScrollbarVisible, updateScrollbar, setHideTimer, hideDelay, isScrollable, maintainFocus, }: UseThumbDragProps) => {
|
|
19
|
-
isDragging: boolean;
|
|
20
|
-
isThumbHovered: boolean;
|
|
21
|
-
setIsThumbHovered: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|
|
22
|
-
handleThumbMouseDown: (event: React.MouseEvent) => void;
|
|
23
|
-
};
|
|
24
|
-
export {};
|
|
25
|
-
//# sourceMappingURL=useThumbDrag.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useThumbDrag.d.ts","sourceRoot":"","sources":["../../../src/hooks/useThumbDrag.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,UAAU,iBAAiB;IACvB,qBAAqB,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,mBAAmB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,OAAO,CAAC;IAC5B,aAAa,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,eAAO,MAAM,YAAY,GAAI,qJAU1B,iBAAiB;;;;kCAOJ,KAAK,CAAC,UAAU;CA2F/B,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useTrackClick.ts
|
|
3
|
-
* 트랙 클릭 관련 로직
|
|
4
|
-
*
|
|
5
|
-
* @copyright 2025 KIM YOUNG JIN (ehfuse@gmail.com)
|
|
6
|
-
*/
|
|
7
|
-
interface UseTrackClickProps {
|
|
8
|
-
scrollbarRef: React.RefObject<HTMLDivElement>;
|
|
9
|
-
findScrollableElement: () => HTMLElement | null;
|
|
10
|
-
updateScrollbar: () => void;
|
|
11
|
-
setScrollbarVisible: (visible: boolean) => void;
|
|
12
|
-
setHideTimer: (delay: number) => void;
|
|
13
|
-
hideDelay: number;
|
|
14
|
-
maintainFocus: () => void;
|
|
15
|
-
}
|
|
16
|
-
export declare const useTrackClick: ({ scrollbarRef, findScrollableElement, updateScrollbar, setScrollbarVisible, setHideTimer, hideDelay, maintainFocus, }: UseTrackClickProps) => {
|
|
17
|
-
handleTrackClick: (event: React.MouseEvent) => void;
|
|
18
|
-
};
|
|
19
|
-
export {};
|
|
20
|
-
//# sourceMappingURL=useTrackClick.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useTrackClick.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTrackClick.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,UAAU,kBAAkB;IACxB,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9C,qBAAqB,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IAChD,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,mBAAmB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,eAAO,MAAM,aAAa,GAAI,wHAQ3B,kBAAkB;8BAGL,KAAK,CAAC,UAAU;CA+C/B,CAAC"}
|