@ehfuse/overlay-scrollbar 1.6.0 → 1.6.2
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/README.md +1 -0
- package/dist/OverlayScrollbar.d.ts +86 -0
- package/dist/OverlayScrollbar.d.ts.map +1 -0
- package/dist/components/ScrollbarArrows.d.ts +29 -0
- package/dist/components/ScrollbarArrows.d.ts.map +1 -0
- package/dist/components/ScrollbarThumb.d.ts +35 -0
- package/dist/components/ScrollbarThumb.d.ts.map +1 -0
- package/dist/components/ScrollbarTrack.d.ts +32 -0
- package/dist/components/ScrollbarTrack.d.ts.map +1 -0
- package/dist/hooks/useArrowNavigation.d.ts +27 -0
- package/dist/hooks/useArrowNavigation.d.ts.map +1 -0
- package/dist/hooks/useAutoHide.d.ts +19 -0
- package/dist/hooks/useAutoHide.d.ts.map +1 -0
- package/dist/hooks/useDragScroll.d.ts +23 -0
- package/dist/hooks/useDragScroll.d.ts.map +1 -0
- package/dist/hooks/useKeyboardNavigation.d.ts +18 -0
- package/dist/hooks/useKeyboardNavigation.d.ts.map +1 -0
- package/dist/hooks/useScrollEvents.d.ts +20 -0
- package/dist/hooks/useScrollEvents.d.ts.map +1 -0
- package/dist/hooks/useScrollbarConfig.d.ts +53 -0
- package/dist/hooks/useScrollbarConfig.d.ts.map +1 -0
- package/dist/hooks/useScrollbarInitialization.d.ts +21 -0
- package/dist/hooks/useScrollbarInitialization.d.ts.map +1 -0
- package/dist/hooks/useScrollbarUpdate.d.ts +27 -0
- package/dist/hooks/useScrollbarUpdate.d.ts.map +1 -0
- package/dist/hooks/useThumbDrag.d.ts +25 -0
- package/dist/hooks/useThumbDrag.d.ts.map +1 -0
- package/dist/hooks/useTrackClick.d.ts +20 -0
- package/dist/hooks/useTrackClick.d.ts.map +1 -0
- package/dist/index.d.ts +8 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +43 -21
- package/dist/index.esm.js.map +4 -4
- package/dist/index.js +43 -21
- package/dist/index.js.map +4 -4
- package/dist/src/OverlayScrollbar.d.ts +61 -2
- package/dist/src/OverlayScrollbar.d.ts.map +1 -1
- package/dist/types.d.ts +70 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils/dragScrollUtils.d.ts +40 -0
- package/dist/utils/dragScrollUtils.d.ts.map +1 -0
- package/package.json +4 -11
package/README.md
CHANGED
|
@@ -100,6 +100,7 @@ interface AutoHideConfig {
|
|
|
100
100
|
enabled?: boolean; // Enable auto-hide (default: true)
|
|
101
101
|
delay?: number; // Auto-hide delay (default: 1500ms)
|
|
102
102
|
delayOnWheel?: number; // Quick hide after wheel (default: 700ms)
|
|
103
|
+
initialDelay?: number; // Delay before showing scrollbar on mount (default: 200ms)
|
|
103
104
|
}
|
|
104
105
|
```
|
|
105
106
|
|
|
@@ -0,0 +1,86 @@
|
|
|
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" | "outside";
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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,SAAS,CAAC;IACjC,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,mGA6oDrB,CAAC;AAEF,eAAe,gBAAgB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
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" | "outside";
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/**
|
|
2
|
+
* src/index.ts
|
|
3
|
+
*
|
|
4
|
+
* @copyright 2025 KIM YOUNG JIN (ehfuse@gmail.com)
|
|
5
|
+
*/
|
|
6
|
+
export { default } from "./OverlayScrollbar";
|
|
7
|
+
export { default as OverlayScrollbar } from "./OverlayScrollbar";
|
|
8
|
+
export type { OverlayScrollbarRef, OverlayScrollbarProps, ThumbConfig, TrackConfig, ArrowsConfig, DragScrollConfig, AutoHideConfig, } from "./types";
|
|
4
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,YAAY,EACR,mBAAmB,EACnB,qBAAqB,EACrB,WAAW,EACX,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,cAAc,GACjB,MAAM,SAAS,CAAC"}
|