@redot-src/glare 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,237 @@
1
+ export type ContentType = 'image' | 'video' | 'iframe' | 'inline' | 'ajax' | 'html';
2
+ export type AnimationEffect = false | 'fade' | 'zoom' | 'zoom-in-out' | 'slide' | 'circular' | 'tube' | 'rotate';
3
+ export type TransitionEffect = false | 'fade' | 'slide' | 'circular' | 'tube' | 'zoom-in-out' | 'rotate';
4
+ export type ClickAction = false | 'close' | 'next' | 'nextOrClose' | 'toggleControls' | 'zoom' | ((current: SlideItem, event: Event) => ClickAction | void);
5
+ export type ToolbarButton = 'zoom' | 'slideshow' | 'thumbs' | 'close' | 'download' | 'share' | 'fullscreen' | string;
6
+ export interface MediaProvider {
7
+ matcher: RegExp;
8
+ type?: ContentType | 'iframe' | 'image';
9
+ url?: string | ((match: RegExpMatchArray, url: string) => string);
10
+ thumb?: string | ((match: RegExpMatchArray, url: string) => string);
11
+ params?: Record<string, string | number | boolean>;
12
+ paramPlace?: number;
13
+ }
14
+ export interface SlideSource {
15
+ src?: string;
16
+ type?: ContentType;
17
+ width?: number | string;
18
+ height?: number | string;
19
+ caption?: string;
20
+ title?: string;
21
+ thumb?: string;
22
+ alt?: string;
23
+ downloadSrc?: string;
24
+ html?: string;
25
+ content?: string | HTMLElement;
26
+ poster?: string;
27
+ format?: string;
28
+ preload?: boolean;
29
+ autoStart?: boolean;
30
+ opts?: Partial<GlareOptions>;
31
+ $trigger?: HTMLElement | null;
32
+ [key: string]: unknown;
33
+ }
34
+ export interface SlideItem extends SlideSource {
35
+ index: number;
36
+ type: ContentType;
37
+ src: string;
38
+ contentEl?: HTMLElement | null;
39
+ $content?: HTMLElement | null;
40
+ $slide?: HTMLElement | null;
41
+ $image?: HTMLImageElement | null;
42
+ isLoaded?: boolean;
43
+ isComplete?: boolean;
44
+ isError?: boolean;
45
+ hasError?: boolean;
46
+ pos?: number;
47
+ width?: number | string;
48
+ height?: number | string;
49
+ contentWidth?: number;
50
+ contentHeight?: number;
51
+ scaleX?: number;
52
+ scaleY?: number;
53
+ canZoomIn?: boolean;
54
+ canZoomOut?: boolean;
55
+ }
56
+ export interface TouchOptions {
57
+ vertical?: boolean;
58
+ momentum?: boolean;
59
+ }
60
+ export interface ImageOptions {
61
+ preload?: boolean;
62
+ }
63
+ export interface AjaxOptions {
64
+ settings?: RequestInit & {
65
+ data?: Record<string, string>;
66
+ };
67
+ }
68
+ export interface IframeOptions {
69
+ preload?: boolean;
70
+ css?: Partial<CSSStyleDeclaration>;
71
+ attr?: Record<string, string>;
72
+ tpl?: string;
73
+ }
74
+ export interface VideoOptions {
75
+ tpl?: string;
76
+ format?: string;
77
+ autoStart?: boolean;
78
+ }
79
+ export interface ThumbsOptions {
80
+ autoStart?: boolean;
81
+ hideOnClose?: boolean;
82
+ parentEl?: string | HTMLElement;
83
+ axis?: 'x' | 'y';
84
+ }
85
+ export interface SlideshowOptions {
86
+ autoStart?: boolean;
87
+ speed?: number;
88
+ }
89
+ export interface FullscreenOptions {
90
+ autoStart?: boolean;
91
+ }
92
+ export interface ShareOptions {
93
+ url?: string | ((item: SlideItem) => string);
94
+ tpl?: string;
95
+ }
96
+ export interface HashOptions {
97
+ enabled?: boolean;
98
+ }
99
+ export interface I18nDict {
100
+ CLOSE: string;
101
+ NEXT: string;
102
+ PREV: string;
103
+ ERROR: string;
104
+ PLAY_START: string;
105
+ PLAY_STOP: string;
106
+ FULL_SCREEN: string;
107
+ THUMBS: string;
108
+ DOWNLOAD: string;
109
+ SHARE: string;
110
+ ZOOM: string;
111
+ }
112
+ export type EventName = 'onInit' | 'beforeLoad' | 'afterLoad' | 'beforeShow' | 'afterShow' | 'beforeClose' | 'afterClose' | 'onActivate' | 'onDeactivate' | 'onUpdate' | 'onReveal' | 'onDestroy';
113
+ export type EventHandler = (instance: GlareInstance, current?: SlideItem, ...args: unknown[]) => unknown;
114
+ export interface GlareOptions {
115
+ closeExisting?: boolean;
116
+ loop?: boolean;
117
+ gutter?: number;
118
+ keyboard?: boolean;
119
+ preventCaptionOverlap?: boolean;
120
+ arrows?: boolean;
121
+ infobar?: boolean;
122
+ smallBtn?: boolean | 'auto';
123
+ toolbar?: boolean | 'auto';
124
+ buttons?: ToolbarButton[];
125
+ idleTime?: number | false;
126
+ protect?: boolean;
127
+ modal?: boolean;
128
+ image?: ImageOptions;
129
+ ajax?: AjaxOptions;
130
+ iframe?: IframeOptions;
131
+ video?: VideoOptions;
132
+ defaultType?: ContentType;
133
+ animationEffect?: AnimationEffect;
134
+ animationDuration?: number;
135
+ zoomOpacity?: boolean | 'auto';
136
+ transitionEffect?: TransitionEffect;
137
+ transitionDuration?: number;
138
+ slideClass?: string;
139
+ baseClass?: string;
140
+ parentEl?: string | HTMLElement;
141
+ hideScrollbar?: boolean;
142
+ autoFocus?: boolean;
143
+ backFocus?: boolean;
144
+ trapFocus?: boolean;
145
+ fullScreen?: FullscreenOptions | boolean;
146
+ touch?: TouchOptions | false;
147
+ hash?: HashOptions | boolean | null;
148
+ media?: Record<string, MediaProvider>;
149
+ slideShow?: SlideshowOptions | boolean;
150
+ thumbs?: ThumbsOptions | boolean;
151
+ share?: ShareOptions | boolean;
152
+ wheel?: boolean | 'auto' | 'slide';
153
+ clickContent?: ClickAction;
154
+ clickSlide?: ClickAction;
155
+ clickOutside?: ClickAction;
156
+ dblclickContent?: ClickAction;
157
+ dblclickSlide?: ClickAction;
158
+ dblclickOutside?: ClickAction;
159
+ mobile?: Partial<GlareOptions>;
160
+ lang?: string;
161
+ i18n?: Record<string, Partial<I18nDict>>;
162
+ caption?: string | ((instance: GlareInstance, current: SlideItem) => string);
163
+ onInit?: EventHandler;
164
+ beforeLoad?: EventHandler;
165
+ afterLoad?: EventHandler;
166
+ beforeShow?: EventHandler;
167
+ afterShow?: EventHandler;
168
+ beforeClose?: EventHandler;
169
+ afterClose?: EventHandler;
170
+ onActivate?: EventHandler;
171
+ onDeactivate?: EventHandler;
172
+ onUpdate?: EventHandler;
173
+ btnTpl?: Partial<Record<string, string>>;
174
+ spinnerTpl?: string;
175
+ errorTpl?: string;
176
+ baseTpl?: string;
177
+ [key: string]: unknown;
178
+ }
179
+ export interface GlareInstance {
180
+ id: number;
181
+ group: SlideItem[];
182
+ opts: GlareOptions;
183
+ current: SlideItem | null;
184
+ currIndex: number;
185
+ prevIndex: number;
186
+ isActive: boolean;
187
+ isClosing: boolean;
188
+ isAnimating: boolean;
189
+ $refs: {
190
+ container: HTMLElement | null;
191
+ stage: HTMLElement | null;
192
+ bg: HTMLElement | null;
193
+ inner: HTMLElement | null;
194
+ caption: HTMLElement | null;
195
+ toolbar: HTMLElement | null;
196
+ infobar: HTMLElement | null;
197
+ navigation: HTMLElement | null;
198
+ };
199
+ open: (index?: number) => void;
200
+ close: (event?: Event | null, duration?: number) => void;
201
+ next: (duration?: number) => void;
202
+ previous: (duration?: number) => void;
203
+ prev: (duration?: number) => void;
204
+ jumpTo: (index: number, duration?: number) => void;
205
+ scaleToFit: (duration?: number) => void;
206
+ scaleToActual: (x?: number, y?: number, duration?: number) => void;
207
+ update: () => void;
208
+ focus: () => void;
209
+ toggleControls: (force?: boolean) => void;
210
+ isIdle: boolean;
211
+ SlideShow?: {
212
+ start: () => void;
213
+ stop: () => void;
214
+ toggle: () => void;
215
+ isActive: () => boolean;
216
+ };
217
+ Thumbs?: {
218
+ show: () => void;
219
+ hide: () => void;
220
+ toggle: () => void;
221
+ focus: (index?: number) => void;
222
+ isActive: boolean;
223
+ };
224
+ FullScreen?: {
225
+ request: () => void;
226
+ exit: () => void;
227
+ toggle: () => void;
228
+ isFullscreen: () => boolean;
229
+ };
230
+ }
231
+ export interface BoundGroup {
232
+ selector: string;
233
+ options: GlareOptions;
234
+ elements: HTMLElement[];
235
+ destroy: () => void;
236
+ }
237
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GACnB,OAAO,GACP,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,MAAM,CAAA;AAEV,MAAM,MAAM,eAAe,GACvB,KAAK,GACL,MAAM,GACN,MAAM,GACN,aAAa,GACb,OAAO,GACP,UAAU,GACV,MAAM,GACN,QAAQ,CAAA;AAEZ,MAAM,MAAM,gBAAgB,GACxB,KAAK,GACL,MAAM,GACN,OAAO,GACP,UAAU,GACV,MAAM,GACN,aAAa,GACb,QAAQ,CAAA;AAEZ,MAAM,MAAM,WAAW,GACnB,KAAK,GACL,OAAO,GACP,MAAM,GACN,aAAa,GACb,gBAAgB,GAChB,MAAM,GACN,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,KAAK,WAAW,GAAG,IAAI,CAAC,CAAA;AAE9D,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,WAAW,GACX,QAAQ,GACR,OAAO,GACP,UAAU,GACV,OAAO,GACP,YAAY,GACZ,MAAM,CAAA;AAEV,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAA;IACvC,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,CAAA;IACjE,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,CAAA;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAA;IAClD,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,CAAA;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IAC5B,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,SAAU,SAAQ,WAAW;IAC5C,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,WAAW,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC9B,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC7B,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC3B,MAAM,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,WAAW,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;CAC3D;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,CAAA;IAC/B,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAA;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,KAAK,MAAM,CAAC,CAAA;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,MAAM,SAAS,GACjB,QAAQ,GACR,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,WAAW,GACX,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,cAAc,GACd,UAAU,GACV,UAAU,GACV,WAAW,CAAA;AAEf,MAAM,MAAM,YAAY,GAAG,CACzB,QAAQ,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,SAAS,EACnB,GAAG,IAAI,EAAE,OAAO,EAAE,KACf,OAAO,CAAA;AAEZ,MAAM,WAAW,YAAY;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC3B,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC1B,OAAO,CAAC,EAAE,aAAa,EAAE,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC9B,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,CAAA;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAA;IACxC,KAAK,CAAC,EAAE,YAAY,GAAG,KAAK,CAAA;IAC5B,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,GAAG,IAAI,CAAA;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IACrC,SAAS,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAA;IACtC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAA;IAChC,KAAK,CAAC,EAAE,YAAY,GAAG,OAAO,CAAA;IAC9B,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAA;IAClC,YAAY,CAAC,EAAE,WAAW,CAAA;IAC1B,UAAU,CAAC,EAAE,WAAW,CAAA;IACxB,YAAY,CAAC,EAAE,WAAW,CAAA;IAC1B,eAAe,CAAC,EAAE,WAAW,CAAA;IAC7B,aAAa,CAAC,EAAE,WAAW,CAAA;IAC3B,eAAe,CAAC,EAAE,WAAW,CAAA;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;IACxC,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,KAAK,MAAM,CAAC,CAAA;IAC5E,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,UAAU,CAAC,EAAE,YAAY,CAAA;IACzB,SAAS,CAAC,EAAE,YAAY,CAAA;IACxB,UAAU,CAAC,EAAE,YAAY,CAAA;IACzB,SAAS,CAAC,EAAE,YAAY,CAAA;IACxB,WAAW,CAAC,EAAE,YAAY,CAAA;IAC1B,UAAU,CAAC,EAAE,YAAY,CAAA;IACzB,UAAU,CAAC,EAAE,YAAY,CAAA;IACzB,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACxC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,SAAS,EAAE,CAAA;IAClB,IAAI,EAAE,YAAY,CAAA;IAClB,OAAO,EAAE,SAAS,GAAG,IAAI,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;IAClB,WAAW,EAAE,OAAO,CAAA;IACpB,KAAK,EAAE;QACL,SAAS,EAAE,WAAW,GAAG,IAAI,CAAA;QAC7B,KAAK,EAAE,WAAW,GAAG,IAAI,CAAA;QACzB,EAAE,EAAE,WAAW,GAAG,IAAI,CAAA;QACtB,KAAK,EAAE,WAAW,GAAG,IAAI,CAAA;QACzB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;QAC3B,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;QAC3B,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;QAC3B,UAAU,EAAE,WAAW,GAAG,IAAI,CAAA;KAC/B,CAAA;IACD,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACxD,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAClD,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAClE,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,cAAc,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IACzC,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,CAAC,EAAE;QACV,KAAK,EAAE,MAAM,IAAI,CAAA;QACjB,IAAI,EAAE,MAAM,IAAI,CAAA;QAChB,MAAM,EAAE,MAAM,IAAI,CAAA;QAClB,QAAQ,EAAE,MAAM,OAAO,CAAA;KACxB,CAAA;IACD,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,IAAI,CAAA;QAChB,IAAI,EAAE,MAAM,IAAI,CAAA;QAChB,MAAM,EAAE,MAAM,IAAI,CAAA;QAClB,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;QAC/B,QAAQ,EAAE,OAAO,CAAA;KAClB,CAAA;IACD,UAAU,CAAC,EAAE;QACX,OAAO,EAAE,MAAM,IAAI,CAAA;QACnB,IAAI,EAAE,MAAM,IAAI,CAAA;QAChB,MAAM,EAAE,MAAM,IAAI,CAAA;QAClB,YAAY,EAAE,MAAM,OAAO,CAAA;KAC5B,CAAA;CACF;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,YAAY,CAAA;IACrB,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB"}
@@ -0,0 +1,31 @@
1
+ export declare function isObject(value: unknown): value is Record<string, unknown>;
2
+ export declare function deepMerge<T extends Record<string, unknown>>(target: T, ...sources: Array<Partial<T> | Record<string, unknown> | undefined | null | false>): T;
3
+ export declare function $(selector: string, context?: ParentNode): HTMLElement | null;
4
+ export declare function $$(selector: string, context?: ParentNode): HTMLElement[];
5
+ export declare function createEl<K extends keyof HTMLElementTagNameMap>(tag: K, className?: string, html?: string): HTMLElementTagNameMap[K];
6
+ export declare function setAttributes(el: HTMLElement, attrs: Record<string, string | number | boolean | null | undefined>): void;
7
+ export declare function on<K extends keyof HTMLElementEventMap>(el: EventTarget, type: K, handler: (event: HTMLElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions): () => void;
8
+ export declare function on(el: EventTarget, type: string, handler: EventListener, options?: boolean | AddEventListenerOptions): () => void;
9
+ export declare function once(el: EventTarget, type: string, handler: EventListener, options?: boolean | AddEventListenerOptions): () => void;
10
+ export declare function css(el: HTMLElement, styles: Partial<CSSStyleDeclaration> | Record<string, string | number | null>): void;
11
+ export declare function kebab(str: string): string;
12
+ export declare function clamp(value: number, min: number, max: number): number;
13
+ export declare function isMobile(): boolean;
14
+ export declare function getScrollbarWidth(): number;
15
+ export declare function lockScroll(lock: boolean): void;
16
+ export declare function translate(template: string, dict: Record<string, string>): string;
17
+ export declare function getOffset(el: HTMLElement): DOMRect;
18
+ export declare function getCenter(el: HTMLElement): {
19
+ x: number;
20
+ y: number;
21
+ };
22
+ export declare function requestAnimFrame(cb: FrameRequestCallback): number;
23
+ export declare function nextFrame(cb: () => void): void;
24
+ export declare function parseDataOptions(el: HTMLElement): Record<string, unknown>;
25
+ export declare function getAttr(el: HTMLElement, names: string[]): string | null;
26
+ export declare function toArray<T>(value: T | T[] | null | undefined): T[];
27
+ export declare function uniqueId(prefix?: string): string;
28
+ export declare function prefersReducedMotion(): boolean;
29
+ export declare function loadImage(src: string): Promise<HTMLImageElement>;
30
+ export declare function buildQuery(params: Record<string, string | number | boolean>): string;
31
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { GlareInstance } from './types';
2
+ export declare class WheelNav {
3
+ private instance;
4
+ private mode;
5
+ private cleanups;
6
+ private locked;
7
+ constructor(instance: GlareInstance, mode: boolean | 'auto' | 'slide');
8
+ init(stage: HTMLElement): void;
9
+ destroy(): void;
10
+ }
11
+ //# sourceMappingURL=wheel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wheel.d.ts","sourceRoot":"","sources":["../src/wheel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAG5C,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,MAAM,CAAQ;gBAEV,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO;IAKrE,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAgC9B,OAAO,IAAI,IAAI;CAIhB"}
package/package.json ADDED
@@ -0,0 +1,75 @@
1
+ {
2
+ "name": "@redot-src/glare",
3
+ "version": "1.0.0",
4
+ "description": "Modern, touch-enabled, fully customizable lightbox for the web — zero dependencies.",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "author": "Glare Contributors",
8
+ "homepage": "https://redot-src.github.io/glare/",
9
+ "publishConfig": {
10
+ "access": "public"
11
+ },
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "git+https://github.com/redot-src/glare.git"
15
+ },
16
+ "bugs": {
17
+ "url": "https://github.com/redot-src/glare/issues"
18
+ },
19
+ "keywords": [
20
+ "lightbox",
21
+ "gallery",
22
+ "modal",
23
+ "zoom",
24
+ "image",
25
+ "video",
26
+ "touch",
27
+ "responsive",
28
+ "typescript",
29
+ "vanilla"
30
+ ],
31
+ "main": "./dist/glare.js",
32
+ "module": "./dist/glare.esm.js",
33
+ "types": "./dist/index.d.ts",
34
+ "unpkg": "./dist/glare.js",
35
+ "jsdelivr": "./dist/glare.js",
36
+ "exports": {
37
+ ".": {
38
+ "types": "./dist/index.d.ts",
39
+ "import": "./dist/glare.esm.js",
40
+ "require": "./dist/glare.js",
41
+ "default": "./dist/glare.esm.js"
42
+ },
43
+ "./style.css": "./dist/glare.css",
44
+ "./dist/glare.css": "./dist/glare.css",
45
+ "./dist/glare.js": "./dist/glare.js",
46
+ "./dist/glare.esm.js": "./dist/glare.esm.js"
47
+ },
48
+ "files": [
49
+ "dist",
50
+ "LICENSE",
51
+ "README.md"
52
+ ],
53
+ "sideEffects": [
54
+ "**/*.css"
55
+ ],
56
+ "scripts": {
57
+ "dev": "vite",
58
+ "build": "tsc --noEmit && vite build && tsc -p tsconfig.build.json",
59
+ "preview": "vite preview",
60
+ "demo:build": "vite build --config vite.demo.config.ts",
61
+ "docs:dev": "vitepress dev docs",
62
+ "docs:build": "vitepress build docs",
63
+ "docs:preview": "vitepress preview docs",
64
+ "pages:build": "npm run docs:build && npm run demo:build",
65
+ "typecheck": "tsc --noEmit",
66
+ "prepublishOnly": "npm run build"
67
+ },
68
+ "devDependencies": {
69
+ "@types/node": "^26.5.1",
70
+ "typescript": "^5.9.2",
71
+ "vite": "^7.1.5",
72
+ "vitepress": "^1.6.4",
73
+ "vue": "^3.5.21"
74
+ }
75
+ }