@readerseye2/cr_viewer 1.0.11 → 1.0.12

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/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { default as CRViewer } from './CR_Viewer';
2
+ export type { CRViewerHandle } from './CR_Viewer';
2
3
  export { default as CR_ViewerPlayback } from './playback/CR_ViewerPlayback';
3
4
  export { default as PlaybackBar } from './playback/PlaybackBar';
4
5
  export { default as PlaybackViewport } from './playback/PlaybackViewport';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGlD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGlF,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,oCAAoC,CAAC;AAG5C,cAAc,2BAA2B,CAAC;AAG1C,YAAY,EACV,WAAW,EACX,SAAS,EACT,KAAK,EACL,cAAc,EACd,UAAU,EACV,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,UAAU,EACV,cAAc,GACf,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGlF,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,oCAAoC,CAAC;AAG5C,cAAc,2BAA2B,CAAC;AAG1C,YAAY,EACV,WAAW,EACX,SAAS,EACT,KAAK,EACL,cAAc,EACd,UAAU,EACV,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,UAAU,EACV,cAAc,GACf,MAAM,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -397,18 +397,14 @@ const yn = {
397
397
  },
398
398
  sepia: {
399
399
  bg: "#f4ecd8",
400
- // 따뜻한 베이지
401
400
  fg: "#3e2f1c",
402
- // 짙은 갈색 글자
403
401
  overlayBg: "#f4ecd8",
404
402
  overlayFg: "#3e2f1c",
405
403
  borderColor: "#bfa87a"
406
404
  },
407
405
  green: {
408
406
  bg: "#e9f5e1",
409
- // 밝은 녹색 톤
410
407
  fg: "#1b3d1f",
411
- // 어두운 녹색 글자
412
408
  overlayBg: "#e9f5e1",
413
409
  overlayFg: "#1b3d1f",
414
410
  borderColor: "#93b48b"
@@ -1,6 +1,7 @@
1
1
  import { StoreApi } from 'zustand/vanilla';
2
2
  import { ViewerRecorderStore } from '../recorder/viewerRecorder.store';
3
- export type ViewerMode = 'scroll' | 'page';
3
+ import { ViewerMode, ViewerTheme, PointerStyle, CRViewerState } from '@readerseye2/cr_type';
4
+ export type { ViewerMode, ViewerTheme, PointerStyle, CRViewerState };
4
5
  export declare const THEME_PALETTES: {
5
6
  light: {
6
7
  bg: string;
@@ -31,42 +32,8 @@ export declare const THEME_PALETTES: {
31
32
  borderColor: string;
32
33
  };
33
34
  };
34
- export type ViewerTheme = keyof typeof THEME_PALETTES;
35
35
  export type OverlayPalette = (typeof THEME_PALETTES)[ViewerTheme];
36
- export type PointerStyle = 'highlight' | 'underline';
37
36
  export type BreakMarkKind = 'slash';
38
- export type CRViewerState = {
39
- mode: ViewerMode;
40
- theme: ViewerTheme;
41
- fontFamily: string;
42
- fontSizePx: number;
43
- lineHeight: number;
44
- marginX: number;
45
- marginY: number;
46
- showOverlays: boolean;
47
- /** ✅ 설정 시트 오픈 여부 */
48
- isSettingsOpen: boolean;
49
- pointerStyle: PointerStyle;
50
- pointerColor: string;
51
- breakMarks: {
52
- slash: boolean;
53
- };
54
- breakGapPx: number;
55
- /** 🔇 오디오 기본 음소거 */
56
- muteAudio: boolean;
57
- audioTargetWpm: number;
58
- audioSpeed: number;
59
- /** 🖊️ 포인터(형광펜/밑줄/커스텀) 표시 여부 */
60
- showPointer: boolean;
61
- /** 🪓 끊기표시(간격/슬래쉬) 표시 여부 */
62
- showSplit: boolean;
63
- /** 📐 뷰포트 크기 (이미지 maxHeight 계산 등에 사용) */
64
- viewportWidth: number;
65
- viewportHeight: number;
66
- /** 📐 재생용 뷰포트 크기 (녹화 당시 viewport, 재생 시 recalc/이미지 높이에 사용) */
67
- playbackViewportWidth: number;
68
- playbackViewportHeight: number;
69
- };
70
37
  export type CRViewerActions = {
71
38
  setMode: (m: ViewerMode) => void;
72
39
  setTheme: (t: ViewerTheme) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"crViewer.store.d.ts","sourceRoot":"","sources":["../../../src/stores/viewer/crViewer.store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crViewer.store.d.ts","sourceRoot":"","sources":["../../../src/stores/viewer/crViewer.store.ts"],"names":[],"mappings":"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"}
@@ -1,149 +1,2 @@
1
- import { CRViewerState } from '../stores/viewer/crViewer.store';
2
- /** 뷰어 이벤트 타입 */
3
- export type ViewerEventType = 'recording_start' | 'recording_stop' | 'global_index_change' | 'scroll' | 'page_change' | 'section_change' | 'mode_change' | 'settings_change' | 'viewer_state_snapshot' | 'render_start' | 'loading_start' | 'loading_end' | 'viewport_resize' | 'audio_control';
4
- /** 녹화용 뷰어 상태 */
5
- export type RecordingViewerState = CRViewerState;
6
- /** 오디오 상태 스냅샷 */
7
- export type AudioSnapshot = {
8
- /** 오디오 상태 (playing, paused 등) */
9
- status: 'idle' | 'loading' | 'playing' | 'paused' | 'ended' | 'error';
10
- /** 현재 클립 인덱스 */
11
- currentClip: number;
12
- /** 현재 재생 시간 (ms) */
13
- currentTimeMs: number;
14
- };
15
- /** 녹화 시작 시 저장할 초기 스냅샷 */
16
- export type RecordingSnapshot = {
17
- /** 뷰어 설정 상태 */
18
- viewerState: RecordingViewerState;
19
- /** 현재 globalIndex (마크 위치) */
20
- globalIndex: number;
21
- /** 스크롤 위치 (scroll 모드) - deprecated, anchorGI 사용 권장 */
22
- scrollY?: number;
23
- /** 화면 상단에 보이는 run의 globalIndex (스크롤 복원용) */
24
- anchorGI?: number;
25
- /** anchorGI 요소가 뷰포트 상단에서 떨어진 비율 (0~1) */
26
- anchorOffsetRatio?: number;
27
- /** 현재 페이지 (page 모드) */
28
- currentPage?: number;
29
- /** 섹션 ID */
30
- sectionId: string;
31
- /** 뷰어 렌더 영역 너비 (px) */
32
- viewportWidth: number;
33
- /** 뷰어 렌더 영역 높이 (px) */
34
- viewportHeight: number;
35
- /** 오디오 상태 (optional - 오디오 없을 수 있음) */
36
- audio?: AudioSnapshot;
37
- };
38
- /** 기본 이벤트 (뷰어에서 emit) */
39
- export type ViewerEventBase<T extends ViewerEventType, P = Record<string, unknown>> = {
40
- type: T;
41
- /** 절대 시간 (Date.now()) */
42
- timestamp: number;
43
- payload: P;
44
- };
45
- /** 저장용 이벤트 (외부에서 relTime 추가) */
46
- export type StoredViewerEvent<T extends ViewerEventType, P = Record<string, unknown>> = ViewerEventBase<T, P> & {
47
- /** 녹화 시작 기준 상대 시간 (초 단위, 예: 1.23) */
48
- relTime: number;
49
- };
50
- /** 녹화 시작 이벤트 */
51
- export type RecordingStartEvent = ViewerEventBase<'recording_start', {
52
- snapshot: RecordingSnapshot;
53
- }>;
54
- /** 녹화 중지 이벤트 */
55
- export type RecordingStopEvent = ViewerEventBase<'recording_stop', {
56
- duration: number;
57
- }>;
58
- /** globalIndex 변경 이벤트 */
59
- export type GlobalIndexChangeEvent = ViewerEventBase<'global_index_change', {
60
- globalIndex: number;
61
- }>;
62
- /** 스크롤 이벤트 (scroll 모드 전용) */
63
- export type ScrollEvent = ViewerEventBase<'scroll', {
64
- /** 스크롤 절대 위치 (px) */
65
- scrollTop: number;
66
- /** 스크롤 비율 (0~1, scrollTop / (scrollHeight - clientHeight)) */
67
- scrollRatio: number;
68
- /** 화면 상단 기준 run index */
69
- anchorGI: number;
70
- /** anchorGI 요소가 뷰포트 상단에서 떨어진 비율 (0~1) */
71
- anchorOffsetRatio: number;
72
- }>;
73
- /** 페이지 변경 이벤트 */
74
- export type PageChangeEvent = ViewerEventBase<'page_change', {
75
- page: number;
76
- }>;
77
- /** 섹션 변경 이벤트 */
78
- export type SectionChangeEvent = ViewerEventBase<'section_change', {
79
- sectionId: string;
80
- }>;
81
- /** 모드 변경 이벤트 */
82
- export type ModeChangeEvent = ViewerEventBase<'mode_change', {
83
- mode: 'scroll' | 'page';
84
- }>;
85
- /** 설정 변경 이벤트 (개별 키) */
86
- export type SettingsChangeEvent = ViewerEventBase<'settings_change', {
87
- key: keyof CRViewerState;
88
- value: unknown;
89
- }>;
90
- /** 뷰어 상태 전체 스냅샷 이벤트 (설정 변경 시 전체 상태 기록) */
91
- export type ViewerStateSnapshotEvent = ViewerEventBase<'viewer_state_snapshot', {
92
- viewerState: CRViewerState;
93
- }>;
94
- /** 뷰어 렌더 시작 이벤트 (마운트 시, 섹션 변경 시) */
95
- export type RenderStartEvent = ViewerEventBase<'render_start', {
96
- sectionId: string;
97
- }>;
98
- /** 로딩 시작 이벤트 */
99
- export type LoadingStartEvent = ViewerEventBase<'loading_start', Record<string, never>>;
100
- /** 로딩 완료 이벤트 */
101
- export type LoadingEndEvent = ViewerEventBase<'loading_end', {
102
- /** 로딩 소요 시간 (초, 예: 1.523) */
103
- duration: number;
104
- }>;
105
- /** 뷰포트 리사이즈 이벤트 */
106
- export type ViewportResizeEvent = ViewerEventBase<'viewport_resize', {
107
- width: number;
108
- height: number;
109
- }>;
110
- /** 오디오 제어 액션 타입 */
111
- export type AudioControlAction = 'play' | 'pause' | 'stop';
112
- /** 오디오 제어 이벤트 */
113
- export type AudioControlEvent = ViewerEventBase<'audio_control', {
114
- action: AudioControlAction;
115
- }>;
116
- /** 모든 뷰어 이벤트 타입 */
117
- export type ViewerEvent = RecordingStartEvent | RecordingStopEvent | GlobalIndexChangeEvent | ScrollEvent | PageChangeEvent | SectionChangeEvent | ModeChangeEvent | SettingsChangeEvent | ViewerStateSnapshotEvent | RenderStartEvent | LoadingStartEvent | LoadingEndEvent | ViewportResizeEvent | AudioControlEvent;
118
- export type ViewerEventCallback = (event: ViewerEvent) => void;
119
- /** 저장용 이벤트 (any type) */
120
- export type StoredEvent = StoredViewerEvent<ViewerEventType, unknown>;
121
- /** 녹화 청크 (15초 단위 등) */
122
- export type RecordingChunk = {
123
- /** 청크 인덱스 (0, 1, 2, ...) */
124
- index: number;
125
- /** 청크 시작 시간 (초, 녹화 시작 기준) */
126
- startTime: number;
127
- /** 청크 종료 시간 (초) */
128
- endTime: number;
129
- /** 청크 시작 시점의 뷰어 스냅샷 */
130
- snapshot: RecordingSnapshot;
131
- /** 이 청크에 포함된 이벤트들 */
132
- events: StoredEvent[];
133
- };
134
- /** 녹화 메타데이터 (전체 녹화 정보) */
135
- export type RecordingMeta = {
136
- /** 녹화 ID */
137
- id: string;
138
- /** 녹화 시작 절대 시간 */
139
- startedAt: number;
140
- /** 총 녹화 시간 (초) */
141
- totalDuration: number;
142
- /** 청크 길이 (초) */
143
- chunkDuration: number;
144
- /** 총 청크 수 */
145
- chunkCount: number;
146
- /** 섹션 ID */
147
- sectionId: string;
148
- };
1
+ export type { ViewerMode, ViewerTheme, PointerStyle, CRViewerState, ViewerEventType, AudioSnapshot, RecordingViewerState, RecordingSnapshot, ViewerEventBase, StoredViewerEvent, AudioControlAction, RecordingStartEvent, RecordingStopEvent, GlobalIndexChangeEvent, ScrollEvent, PageChangeEvent, SectionChangeEvent, ModeChangeEvent, SettingsChangeEvent, ViewerStateSnapshotEvent, RenderStartEvent, LoadingStartEvent, LoadingEndEvent, ViewportResizeEvent, AudioControlEvent, ViewerEvent, ViewerEventCallback, StoredEvent, RecordingChunk, RecordingMeta, } from '@readerseye2/cr_type';
149
2
  //# sourceMappingURL=viewerEvent.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"viewerEvent.types.d.ts","sourceRoot":"","sources":["../../src/types/viewerEvent.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAErE,gBAAgB;AAChB,MAAM,MAAM,eAAe,GACvB,iBAAiB,GACjB,gBAAgB,GAChB,qBAAqB,GACrB,QAAQ,GACR,aAAa,GACb,gBAAgB,GAChB,aAAa,GACb,iBAAiB,GACjB,uBAAuB,GACvB,cAAc,GACd,eAAe,GACf,aAAa,GACb,iBAAiB,GACjB,eAAe,CAAC;AAEpB,gBAAgB;AAChB,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAEjD,iBAAiB;AACjB,MAAM,MAAM,aAAa,GAAG;IAC1B,iCAAiC;IACjC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;IACtE,gBAAgB;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,yBAAyB;AACzB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,eAAe;IACf,WAAW,EAAE,oBAAoB,CAAC;IAClC,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,yBAAyB;AACzB,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,eAAe,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IACpF,IAAI,EAAE,CAAC,CAAC;IACR,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,CAAC,CAAC;CACZ,CAAC;AAEF,gCAAgC;AAChC,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,eAAe,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;IAC9G,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,gBAAgB;AAChB,MAAM,MAAM,mBAAmB,GAAG,eAAe,CAAC,iBAAiB,EAAE;IACnE,QAAQ,EAAE,iBAAiB,CAAC;CAC7B,CAAC,CAAC;AAEH,gBAAgB;AAChB,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAAC,gBAAgB,EAAE;IACjE,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CAAC;AAEH,yBAAyB;AACzB,MAAM,MAAM,sBAAsB,GAAG,eAAe,CAAC,qBAAqB,EAAE;IAC1E,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC,CAAC;AAEH,6BAA6B;AAC7B,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,EAAE;IAClD,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC,CAAC;AAEH,iBAAiB;AACjB,MAAM,MAAM,eAAe,GAAG,eAAe,CAAC,aAAa,EAAE;IAC3D,IAAI,EAAE,MAAM,CAAC;CACd,CAAC,CAAC;AAEH,gBAAgB;AAChB,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAAC,gBAAgB,EAAE;IACjE,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC,CAAC;AAEH,gBAAgB;AAChB,MAAM,MAAM,eAAe,GAAG,eAAe,CAAC,aAAa,EAAE;IAC3D,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;CACzB,CAAC,CAAC;AAEH,uBAAuB;AACvB,MAAM,MAAM,mBAAmB,GAAG,eAAe,CAAC,iBAAiB,EAAE;IACnE,GAAG,EAAE,MAAM,aAAa,CAAC;IACzB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC,CAAC;AAEH,0CAA0C;AAC1C,MAAM,MAAM,wBAAwB,GAAG,eAAe,CAAC,uBAAuB,EAAE;IAC9E,WAAW,EAAE,aAAa,CAAC;CAC5B,CAAC,CAAC;AAEH,oCAAoC;AACpC,MAAM,MAAM,gBAAgB,GAAG,eAAe,CAAC,cAAc,EAAE;IAC7D,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC,CAAC;AAEH,gBAAgB;AAChB,MAAM,MAAM,iBAAiB,GAAG,eAAe,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAExF,gBAAgB;AAChB,MAAM,MAAM,eAAe,GAAG,eAAe,CAAC,aAAa,EAAE;IAC3D,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CAAC;AAEH,mBAAmB;AACnB,MAAM,MAAM,mBAAmB,GAAG,eAAe,CAAC,iBAAiB,EAAE;IACnE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC;AAEH,mBAAmB;AACnB,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAE3D,iBAAiB;AACjB,MAAM,MAAM,iBAAiB,GAAG,eAAe,CAAC,eAAe,EAAE;IAC/D,MAAM,EAAE,kBAAkB,CAAC;CAC5B,CAAC,CAAC;AAEH,mBAAmB;AACnB,MAAM,MAAM,WAAW,GACnB,mBAAmB,GACnB,kBAAkB,GAClB,sBAAsB,GACtB,WAAW,GACX,eAAe,GACf,kBAAkB,GAClB,eAAe,GACf,mBAAmB,GACnB,wBAAwB,GACxB,gBAAgB,GAChB,iBAAiB,GACjB,eAAe,GACf,mBAAmB,GACnB,iBAAiB,CAAC;AAEtB,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAE/D,yBAAyB;AACzB,MAAM,MAAM,WAAW,GAAG,iBAAiB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;AAEtE,uBAAuB;AACvB,MAAM,MAAM,cAAc,GAAG;IAC3B,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,qBAAqB;IACrB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB,CAAC;AAEF,0BAA0B;AAC1B,MAAM,MAAM,aAAa,GAAG;IAC1B,YAAY;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC"}
1
+ {"version":3,"file":"viewerEvent.types.d.ts","sourceRoot":"","sources":["../../src/types/viewerEvent.types.ts"],"names":[],"mappings":"AAGA,YAAY,EAEV,UAAU,EACV,WAAW,EACX,YAAY,EACZ,aAAa,EAEb,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAElB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EAEjB,WAAW,EACX,mBAAmB,EACnB,WAAW,EAEX,cAAc,EACd,aAAa,GACd,MAAM,sBAAsB,CAAC"}
package/package.json CHANGED
@@ -1,59 +1,59 @@
1
- {
2
- "name": "@readerseye2/cr_viewer",
3
- "version": "1.0.11",
4
- "type": "module",
5
- "main": "./dist/index.cjs",
6
- "module": "./dist/index.js",
7
- "types": "./dist/index.d.ts",
8
- "exports": {
9
- ".": {
10
- "types": "./dist/index.d.ts",
11
- "import": "./dist/index.js",
12
- "require": "./dist/index.cjs"
13
- }
14
- },
15
- "files": [
16
- "dist"
17
- ],
18
- "scripts": {
19
- "dev": "vite",
20
- "build": "vite build",
21
- "build:lib": "vite build --mode lib",
22
- "preview": "vite preview",
23
- "deploy_npm": "npm run build:lib && npm version patch && npm publish --access public"
24
- },
25
- "peerDependencies": {
26
- "react": "^18.0.0 || ^19.0.0",
27
- "react-dom": "^18.0.0 || ^19.0.0"
28
- },
29
- "dependencies": {
30
- "@readerseye2/cr_type": "^1.0.59",
31
- "lodash": "^4.17.21",
32
- "react-icons": "^5.0.0",
33
- "react-virtuoso": "^4.0.0",
34
- "use-sync-external-store": "^1.6.0",
35
- "zustand": "^5.0.0"
36
- },
37
- "devDependencies": {
38
- "@types/lodash": "^4.17.21",
39
- "@types/react": "^19.0.0",
40
- "@types/react-dom": "^19.0.0",
41
- "@vitejs/plugin-react": "^4.3.0",
42
- "react": "^19.0.0",
43
- "react-dom": "^19.0.0",
44
- "sass": "^1.80.0",
45
- "typescript": "^5.8.0",
46
- "vite": "^6.0.0",
47
- "vite-plugin-css-injected-by-js": "^3.5.2",
48
- "vite-plugin-dts": "^4.0.0"
49
- },
50
- "repository": {
51
- "type": "git",
52
- "url": "https://github.com/bnri/CR_viewer.git"
53
- },
54
- "author": "guripong",
55
- "license": "MIT",
56
- "publishConfig": {
57
- "access": "public"
58
- }
59
- }
1
+ {
2
+ "name": "@readerseye2/cr_viewer",
3
+ "version": "1.0.12",
4
+ "type": "module",
5
+ "main": "./dist/index.cjs",
6
+ "module": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js",
12
+ "require": "./dist/index.cjs"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist"
17
+ ],
18
+ "scripts": {
19
+ "dev": "npm update @readerseye2/cr_type && vite",
20
+ "build": "vite build",
21
+ "build:lib": "vite build --mode lib",
22
+ "preview": "vite preview",
23
+ "deploy_npm": "npm run build:lib && npm version patch && npm publish --access public"
24
+ },
25
+ "peerDependencies": {
26
+ "react": "^18.0.0 || ^19.0.0",
27
+ "react-dom": "^18.0.0 || ^19.0.0"
28
+ },
29
+ "dependencies": {
30
+ "@readerseye2/cr_type": "^1.0.59",
31
+ "lodash": "^4.17.21",
32
+ "react-icons": "^5.0.0",
33
+ "react-virtuoso": "^4.0.0",
34
+ "use-sync-external-store": "^1.6.0",
35
+ "zustand": "^5.0.0"
36
+ },
37
+ "devDependencies": {
38
+ "@types/lodash": "^4.17.21",
39
+ "@types/react": "^19.0.0",
40
+ "@types/react-dom": "^19.0.0",
41
+ "@vitejs/plugin-react": "^4.3.0",
42
+ "react": "^19.0.0",
43
+ "react-dom": "^19.0.0",
44
+ "sass": "^1.80.0",
45
+ "typescript": "^5.8.0",
46
+ "vite": "^6.0.0",
47
+ "vite-plugin-css-injected-by-js": "^3.5.2",
48
+ "vite-plugin-dts": "^4.0.0"
49
+ },
50
+ "repository": {
51
+ "type": "git",
52
+ "url": "https://github.com/bnri/CR_viewer.git"
53
+ },
54
+ "author": "guripong",
55
+ "license": "MIT",
56
+ "publishConfig": {
57
+ "access": "public"
58
+ }
59
+ }