@frybynite/image-cloud 0.4.2 → 0.5.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.
Files changed (70) hide show
  1. package/dist/ImageCloud.d.ts +99 -0
  2. package/dist/ImageCloud.d.ts.map +1 -0
  3. package/dist/config/adapter.d.ts +50 -0
  4. package/dist/config/adapter.d.ts.map +1 -0
  5. package/dist/config/defaults.d.ts +118 -0
  6. package/dist/config/defaults.d.ts.map +1 -0
  7. package/dist/config/types.d.ts +599 -0
  8. package/dist/config/types.d.ts.map +1 -0
  9. package/dist/engines/AnimationEngine.d.ts +82 -0
  10. package/dist/engines/AnimationEngine.d.ts.map +1 -0
  11. package/dist/engines/EntryAnimationEngine.d.ts +161 -0
  12. package/dist/engines/EntryAnimationEngine.d.ts.map +1 -0
  13. package/dist/engines/LayoutEngine.d.ts +68 -0
  14. package/dist/engines/LayoutEngine.d.ts.map +1 -0
  15. package/dist/engines/PathAnimator.d.ts +50 -0
  16. package/dist/engines/PathAnimator.d.ts.map +1 -0
  17. package/dist/engines/SwipeEngine.d.ts +53 -0
  18. package/dist/engines/SwipeEngine.d.ts.map +1 -0
  19. package/dist/engines/ZoomEngine.d.ts +139 -0
  20. package/dist/engines/ZoomEngine.d.ts.map +1 -0
  21. package/dist/image-cloud-auto-init.d.ts +14 -0
  22. package/dist/image-cloud-auto-init.d.ts.map +1 -0
  23. package/dist/image-cloud-auto-init.js +215 -244
  24. package/dist/image-cloud-auto-init.js.map +1 -1
  25. package/dist/image-cloud.js +235 -264
  26. package/dist/image-cloud.js.map +1 -1
  27. package/dist/image-cloud.umd.js +3 -3
  28. package/dist/image-cloud.umd.js.map +1 -1
  29. package/dist/index.d.ts +23 -1637
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/layouts/ClusterPlacementLayout.d.ts +40 -0
  32. package/dist/layouts/ClusterPlacementLayout.d.ts.map +1 -0
  33. package/dist/layouts/GridPlacementLayout.d.ts +27 -0
  34. package/dist/layouts/GridPlacementLayout.d.ts.map +1 -0
  35. package/dist/layouts/RadialPlacementLayout.d.ts +33 -0
  36. package/dist/layouts/RadialPlacementLayout.d.ts.map +1 -0
  37. package/dist/layouts/RandomPlacementLayout.d.ts +26 -0
  38. package/dist/layouts/RandomPlacementLayout.d.ts.map +1 -0
  39. package/dist/layouts/SpiralPlacementLayout.d.ts +43 -0
  40. package/dist/layouts/SpiralPlacementLayout.d.ts.map +1 -0
  41. package/dist/layouts/WavePlacementLayout.d.ts +48 -0
  42. package/dist/layouts/WavePlacementLayout.d.ts.map +1 -0
  43. package/dist/loaders/CompositeLoader.d.ts +37 -0
  44. package/dist/loaders/CompositeLoader.d.ts.map +1 -0
  45. package/dist/loaders/GoogleDriveLoader.d.ts +90 -0
  46. package/dist/loaders/GoogleDriveLoader.d.ts.map +1 -0
  47. package/dist/loaders/ImageFilter.d.ts +26 -0
  48. package/dist/loaders/ImageFilter.d.ts.map +1 -0
  49. package/dist/loaders/StaticImageLoader.d.ts +85 -0
  50. package/dist/loaders/StaticImageLoader.d.ts.map +1 -0
  51. package/dist/react/index.d.ts +16 -0
  52. package/dist/react/index.d.ts.map +1 -0
  53. package/dist/react.d.ts +1 -0
  54. package/dist/react.js +3227 -0
  55. package/dist/react.js.map +1 -0
  56. package/dist/styles/functionalStyles.d.ts +11 -0
  57. package/dist/styles/functionalStyles.d.ts.map +1 -0
  58. package/dist/utils/styleUtils.d.ts +54 -0
  59. package/dist/utils/styleUtils.d.ts.map +1 -0
  60. package/dist/vue/index.d.ts +18 -0
  61. package/dist/vue/index.d.ts.map +1 -0
  62. package/dist/vue.d.ts +1 -0
  63. package/dist/vue.js +3241 -0
  64. package/dist/vue.js.map +1 -0
  65. package/dist/web-component/index.d.ts +15 -0
  66. package/dist/web-component/index.d.ts.map +1 -0
  67. package/dist/web-component.d.ts +1 -0
  68. package/dist/web-component.js +3265 -0
  69. package/dist/web-component.js.map +1 -0
  70. package/package.json +38 -4
@@ -0,0 +1,599 @@
1
+ /**
2
+ * Type definitions for Image Gallery Library
3
+ */
4
+ export interface ImageLayout {
5
+ id: number;
6
+ x: number;
7
+ y: number;
8
+ rotation: number;
9
+ scale: number;
10
+ baseSize: number;
11
+ zIndex?: number;
12
+ }
13
+ export interface ContainerBounds {
14
+ width: number;
15
+ height: number;
16
+ }
17
+ export interface ResponsiveHeight {
18
+ minWidth: number;
19
+ height: number;
20
+ }
21
+ export interface TransformParams {
22
+ x?: number;
23
+ y?: number;
24
+ rotation?: number;
25
+ scale?: number;
26
+ }
27
+ export interface StaticUrlsSource {
28
+ urls: string[];
29
+ }
30
+ export interface StaticPathSource {
31
+ path: string;
32
+ files: string[];
33
+ }
34
+ export interface StaticJsonSource {
35
+ json: string;
36
+ }
37
+ export type StaticSource = StaticUrlsSource | StaticPathSource | StaticJsonSource;
38
+ export interface GoogleDriveFolderSource {
39
+ folders: string[];
40
+ recursive?: boolean;
41
+ }
42
+ export interface GoogleDriveFilesSource {
43
+ files: string[];
44
+ }
45
+ export type GoogleDriveSource = GoogleDriveFolderSource | GoogleDriveFilesSource;
46
+ export interface StaticLoaderInnerConfig {
47
+ sources: StaticSource[];
48
+ validateUrls?: boolean;
49
+ validationTimeout?: number;
50
+ validationMethod?: 'head' | 'simple' | 'none';
51
+ allowedExtensions?: string[];
52
+ debugLogging?: boolean;
53
+ }
54
+ export interface GoogleDriveLoaderInnerConfig {
55
+ apiKey: string;
56
+ sources: GoogleDriveSource[];
57
+ apiEndpoint?: string;
58
+ allowedExtensions?: string[];
59
+ debugLogging?: boolean;
60
+ }
61
+ export interface StaticLoaderEntry {
62
+ static: StaticLoaderInnerConfig;
63
+ }
64
+ export interface GoogleDriveLoaderEntry {
65
+ googleDrive: GoogleDriveLoaderInnerConfig;
66
+ }
67
+ export type LoaderEntry = StaticLoaderEntry | GoogleDriveLoaderEntry;
68
+ export interface SharedLoaderConfig {
69
+ validateUrls?: boolean;
70
+ validationTimeout?: number;
71
+ validationMethod?: 'head' | 'simple' | 'none';
72
+ allowedExtensions?: string[];
73
+ }
74
+ export interface DebugConfig {
75
+ enabled?: boolean;
76
+ centers?: boolean;
77
+ loaders?: boolean;
78
+ }
79
+ export interface ConfigSection {
80
+ loaders?: SharedLoaderConfig;
81
+ debug?: DebugConfig;
82
+ }
83
+ /**
84
+ * Sizing mode:
85
+ * - 'fixed': single explicit height for all breakpoints
86
+ * - 'responsive': different heights per breakpoint (mobile/tablet/screen)
87
+ * - 'adaptive': auto-calculates based on container size and image count
88
+ */
89
+ export type SizingMode = 'fixed' | 'responsive' | 'adaptive';
90
+ /**
91
+ * Fixed mode height configuration with responsive breakpoints
92
+ * At least one of mobile, tablet, or screen is required
93
+ */
94
+ export interface FixedModeHeight {
95
+ mobile?: number;
96
+ tablet?: number;
97
+ screen?: number;
98
+ }
99
+ /**
100
+ * Legacy responsive base height configuration (kept for backward compatibility)
101
+ */
102
+ export interface ResponsiveBaseHeight {
103
+ default: number;
104
+ tablet?: number;
105
+ mobile?: number;
106
+ }
107
+ /**
108
+ * Image variance configuration
109
+ * Controls random size variation applied to images
110
+ */
111
+ export interface ImageVarianceConfig {
112
+ min: number;
113
+ max: number;
114
+ }
115
+ /**
116
+ * Image sizing configuration
117
+ */
118
+ export interface ImageSizingConfig {
119
+ mode: SizingMode;
120
+ height?: number | FixedModeHeight;
121
+ minSize?: number;
122
+ maxSize?: number;
123
+ variance?: ImageVarianceConfig;
124
+ }
125
+ /**
126
+ * Image rotation mode
127
+ */
128
+ export type ImageRotationMode = 'none' | 'random' | 'tangent';
129
+ /**
130
+ * Image rotation range configuration
131
+ */
132
+ export interface ImageRotationRange {
133
+ min: number;
134
+ max: number;
135
+ }
136
+ /**
137
+ * Image rotation configuration
138
+ */
139
+ export interface ImageRotationConfig {
140
+ mode: ImageRotationMode;
141
+ range?: ImageRotationRange;
142
+ }
143
+ /**
144
+ * Combined image configuration
145
+ */
146
+ export interface ImageConfig {
147
+ sizing?: ImageSizingConfig;
148
+ rotation?: ImageRotationConfig;
149
+ }
150
+ export interface AdaptiveSizingResult {
151
+ height: number;
152
+ }
153
+ /**
154
+ * Responsive breakpoints configuration for layout
155
+ * Defines viewport width thresholds for mobile and tablet
156
+ */
157
+ export interface ResponsiveBreakpoints {
158
+ mobile: {
159
+ maxWidth: number;
160
+ };
161
+ tablet: {
162
+ maxWidth: number;
163
+ };
164
+ }
165
+ export interface LayoutSpacingConfig {
166
+ padding: number;
167
+ minGap: number;
168
+ }
169
+ export interface LegacyLayoutRotationConfig {
170
+ enabled: boolean;
171
+ range: {
172
+ min: number;
173
+ max: number;
174
+ };
175
+ }
176
+ export interface GridAlgorithmConfig {
177
+ columns: number | 'auto';
178
+ rows: number | 'auto';
179
+ stagger: 'none' | 'row' | 'column';
180
+ jitter: number;
181
+ overlap: number;
182
+ fillDirection: 'row' | 'column';
183
+ alignment: 'start' | 'center' | 'end';
184
+ gap: number;
185
+ overflowOffset: number;
186
+ }
187
+ export interface SpiralAlgorithmConfig {
188
+ spiralType: 'golden' | 'archimedean' | 'logarithmic';
189
+ direction: 'clockwise' | 'counterclockwise';
190
+ tightness: number;
191
+ scaleDecay: number;
192
+ startAngle: number;
193
+ }
194
+ export interface ClusterAlgorithmConfig {
195
+ clusterCount: number | 'auto';
196
+ clusterSpread: number;
197
+ clusterSpacing: number;
198
+ density: 'uniform' | 'varied';
199
+ overlap: number;
200
+ distribution: 'gaussian' | 'uniform';
201
+ }
202
+ export interface WaveAlgorithmConfig {
203
+ rows: number;
204
+ amplitude: number;
205
+ frequency: number;
206
+ phaseShift: number;
207
+ synchronization: 'offset' | 'synchronized' | 'alternating';
208
+ }
209
+ export type LayoutAlgorithm = 'random' | 'radial' | 'grid' | 'spiral' | 'cluster' | 'wave';
210
+ export interface LayoutConfig {
211
+ algorithm: LayoutAlgorithm;
212
+ spacing: LayoutSpacingConfig;
213
+ scaleDecay?: number;
214
+ responsive?: ResponsiveBreakpoints;
215
+ targetCoverage?: number;
216
+ densityFactor?: number;
217
+ grid?: GridAlgorithmConfig;
218
+ spiral?: SpiralAlgorithmConfig;
219
+ cluster?: ClusterAlgorithmConfig;
220
+ wave?: WaveAlgorithmConfig;
221
+ }
222
+ export type EntryPathType = 'linear' | 'arc' | 'bounce' | 'elastic' | 'wave';
223
+ export interface BouncePathConfig {
224
+ overshoot: number;
225
+ bounces: 1 | 2 | 3;
226
+ decayRatio: number;
227
+ }
228
+ export type BouncePreset = 'energetic' | 'playful' | 'subtle';
229
+ export interface ElasticPathConfig {
230
+ stiffness: number;
231
+ damping: number;
232
+ mass: number;
233
+ oscillations: number;
234
+ }
235
+ export type ElasticPreset = 'gentle' | 'bouncy' | 'wobbly' | 'snappy';
236
+ export interface WavePathConfig {
237
+ amplitude: number;
238
+ frequency: number;
239
+ decay: boolean;
240
+ decayRate: number;
241
+ phase: number;
242
+ }
243
+ export type WavePathPreset = 'gentle' | 'playful' | 'serpentine' | 'flutter';
244
+ export interface EntryPathConfig {
245
+ type: EntryPathType;
246
+ bouncePreset?: BouncePreset;
247
+ elasticPreset?: ElasticPreset;
248
+ wavePreset?: WavePathPreset;
249
+ bounce?: Partial<BouncePathConfig>;
250
+ elastic?: Partial<ElasticPathConfig>;
251
+ wave?: Partial<WavePathConfig>;
252
+ }
253
+ export type EntryRotationMode = 'none' | 'settle' | 'spin' | 'wobble' | 'random';
254
+ export interface EntryRotationConfig {
255
+ mode: EntryRotationMode;
256
+ startRotation?: number | {
257
+ min: number;
258
+ max: number;
259
+ };
260
+ spinCount?: number;
261
+ direction?: 'clockwise' | 'counterclockwise' | 'auto' | 'random';
262
+ wobble?: {
263
+ amplitude: number;
264
+ frequency: number;
265
+ decay: boolean;
266
+ };
267
+ }
268
+ export type EntryScaleMode = 'none' | 'grow' | 'shrink' | 'pop' | 'random';
269
+ export interface EntryScalePopConfig {
270
+ overshoot: number;
271
+ bounces: number;
272
+ }
273
+ export interface EntryScaleConfig {
274
+ mode: EntryScaleMode;
275
+ startScale?: number;
276
+ range?: {
277
+ min: number;
278
+ max: number;
279
+ };
280
+ pop?: EntryScalePopConfig;
281
+ }
282
+ export type EntryStartPosition = 'nearest-edge' | 'top' | 'bottom' | 'left' | 'right' | 'center' | 'random-edge' | 'circular';
283
+ export interface EntryCircularConfig {
284
+ radius?: number | string;
285
+ distribution?: 'even' | 'random';
286
+ }
287
+ export interface EntryStartConfig {
288
+ position: EntryStartPosition;
289
+ offset?: number;
290
+ circular?: EntryCircularConfig;
291
+ }
292
+ export interface EntryTimingConfig {
293
+ duration: number;
294
+ }
295
+ export interface EntryAnimationConfig {
296
+ start: EntryStartConfig;
297
+ timing: EntryTimingConfig;
298
+ easing: string;
299
+ path?: EntryPathConfig;
300
+ rotation?: EntryRotationConfig;
301
+ scale?: EntryScaleConfig;
302
+ }
303
+ export interface AnimationEasingConfig {
304
+ default: string;
305
+ bounce: string;
306
+ focus: string;
307
+ }
308
+ export interface AnimationQueueConfig {
309
+ enabled: boolean;
310
+ interval: number;
311
+ maxConcurrent?: number;
312
+ }
313
+ export interface AnimationPerformanceConfig {
314
+ useGPU?: boolean;
315
+ reduceMotion?: boolean;
316
+ }
317
+ export interface AnimationConfig {
318
+ duration: number;
319
+ easing: AnimationEasingConfig;
320
+ queue: AnimationQueueConfig;
321
+ performance?: AnimationPerformanceConfig;
322
+ entry?: EntryAnimationConfig;
323
+ }
324
+ export interface FocusInteractionConfig {
325
+ scalePercent: number;
326
+ zIndex: number;
327
+ animationDuration?: number;
328
+ }
329
+ export interface NavigationInteractionConfig {
330
+ keyboard?: boolean;
331
+ swipe?: boolean;
332
+ mouseWheel?: boolean;
333
+ }
334
+ export interface GestureInteractionConfig {
335
+ pinchToZoom?: boolean;
336
+ doubleTapToFocus?: boolean;
337
+ }
338
+ export interface InteractionConfig {
339
+ focus: FocusInteractionConfig;
340
+ navigation?: NavigationInteractionConfig;
341
+ gestures?: GestureInteractionConfig;
342
+ }
343
+ export interface ResponsiveRenderingConfig {
344
+ breakpoints: {
345
+ mobile: number;
346
+ tablet?: number;
347
+ desktop?: number;
348
+ };
349
+ mobileDetection: () => boolean;
350
+ }
351
+ export interface UIRenderingConfig {
352
+ showLoadingSpinner: boolean;
353
+ showImageCounter?: boolean;
354
+ showThumbnails?: boolean;
355
+ theme?: 'light' | 'dark' | 'auto';
356
+ loadingElement?: string | HTMLElement;
357
+ errorElement?: string | HTMLElement;
358
+ counterElement?: string | HTMLElement;
359
+ }
360
+ export interface PerformanceRenderingConfig {
361
+ lazyLoad?: boolean;
362
+ preloadCount?: number;
363
+ imageQuality?: 'auto' | 'high' | 'medium' | 'low';
364
+ }
365
+ export interface RenderingConfig {
366
+ responsive: ResponsiveRenderingConfig;
367
+ ui: UIRenderingConfig;
368
+ performance?: PerformanceRenderingConfig;
369
+ }
370
+ export interface ImageCloudConfig {
371
+ loaders: LoaderEntry[];
372
+ config: ConfigSection;
373
+ image: ImageConfig;
374
+ layout: LayoutConfig;
375
+ animation: AnimationConfig;
376
+ interaction: InteractionConfig;
377
+ rendering: RenderingConfig;
378
+ styling?: ImageStylingConfig;
379
+ }
380
+ export type GalleryConfig = ImageCloudConfig;
381
+ export interface ImageCloudOptions {
382
+ container?: string | HTMLElement;
383
+ images?: string[];
384
+ loaders?: LoaderEntry[];
385
+ config?: ConfigSection;
386
+ image?: Partial<ImageConfig>;
387
+ layout?: Partial<LayoutConfig>;
388
+ animation?: Partial<AnimationConfig>;
389
+ interaction?: Partial<InteractionConfig>;
390
+ rendering?: Partial<RenderingConfig>;
391
+ styling?: Partial<ImageStylingConfig>;
392
+ }
393
+ export type ImageGalleryOptions = ImageCloudOptions;
394
+ export interface LegacyLayoutConfig {
395
+ baseImageSize?: number;
396
+ rotationRange?: {
397
+ min: number;
398
+ max: number;
399
+ };
400
+ type?: 'random' | 'radial';
401
+ sizeVarianceMin?: number;
402
+ sizeVarianceMax?: number;
403
+ responsiveHeights?: ResponsiveHeight[];
404
+ padding?: number;
405
+ minSpacing?: number;
406
+ minRotation?: number;
407
+ maxRotation?: number;
408
+ }
409
+ export interface LegacyAnimationConfig {
410
+ duration?: number;
411
+ queueInterval?: number;
412
+ easing?: string;
413
+ bounceEasing?: string;
414
+ }
415
+ export interface LegacyZoomConfig {
416
+ focusScale?: number;
417
+ mobileScale?: number;
418
+ focusZIndex?: number;
419
+ }
420
+ export interface LegacyConfig {
421
+ layout?: LegacyLayoutConfig;
422
+ animation?: LegacyAnimationConfig;
423
+ zoom?: LegacyZoomConfig;
424
+ googleDrive?: {
425
+ apiKey?: string;
426
+ apiEndpoint?: string;
427
+ imageExtensions?: string[];
428
+ };
429
+ breakpoints?: {
430
+ mobile?: number;
431
+ tablet?: number;
432
+ desktop?: number;
433
+ };
434
+ isMobile?: () => boolean;
435
+ ui?: {
436
+ showLoadingSpinner?: boolean;
437
+ };
438
+ }
439
+ export interface LegacyImageGalleryOptions {
440
+ containerId?: string;
441
+ loaderType?: 'googleDrive' | 'static';
442
+ folderUrl?: string;
443
+ googleDrive?: {
444
+ apiKey?: string;
445
+ };
446
+ }
447
+ export interface PlacementLayout {
448
+ generate(imageCount: number, containerBounds: ContainerBounds, options?: Partial<LayoutConfig>): ImageLayout[];
449
+ }
450
+ /**
451
+ * ImageFilter interface for filtering images by extension
452
+ * Implemented by the ImageFilter class in loaders/ImageFilter.ts
453
+ */
454
+ export interface IImageFilter {
455
+ isAllowed(filename: string): boolean;
456
+ getAllowedExtensions(): string[];
457
+ }
458
+ /**
459
+ * ImageLoader interface with consistent lifecycle pattern:
460
+ * 1. Constructor - Initialize with required parameters, throw if missing
461
+ * 2. prepare(filter) - Async discovery of images, accepts filter
462
+ * 3. imagesLength() - Return count of images (after prepare)
463
+ * 4. imageURLs() - Return ordered list of URLs (after prepare)
464
+ */
465
+ export interface ImageLoader {
466
+ /**
467
+ * Async preparation - discovers images and applies filter
468
+ * Succeeds even if 0 images found (gallery handles empty state)
469
+ * @param filter - Filter to apply to discovered images
470
+ */
471
+ prepare(filter: IImageFilter): Promise<void>;
472
+ /**
473
+ * Get the number of discovered images
474
+ * @throws Error if called before prepare() completes
475
+ */
476
+ imagesLength(): number;
477
+ /**
478
+ * Get the ordered list of image URLs
479
+ * @throws Error if called before prepare() completes
480
+ */
481
+ imageURLs(): string[];
482
+ /**
483
+ * Check if the loader has been prepared
484
+ */
485
+ isPrepared(): boolean;
486
+ }
487
+ export interface GoogleDriveFile {
488
+ id: string;
489
+ name: string;
490
+ mimeType: string;
491
+ parents?: string[];
492
+ }
493
+ export interface GoogleDriveResponse {
494
+ files: GoogleDriveFile[];
495
+ nextPageToken?: string;
496
+ }
497
+ export type DeepPartial<T> = {
498
+ [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
499
+ };
500
+ export type ShadowPreset = 'none' | 'sm' | 'md' | 'lg' | 'glow';
501
+ export type BorderStyle = 'solid' | 'dashed' | 'dotted' | 'double' | 'none' | 'groove' | 'ridge' | 'inset' | 'outset' | 'hidden';
502
+ export interface BorderConfig {
503
+ width?: number;
504
+ color?: string;
505
+ radius?: number;
506
+ style?: BorderStyle;
507
+ }
508
+ export interface DropShadowConfig {
509
+ x: number;
510
+ y: number;
511
+ blur: number;
512
+ color: string;
513
+ }
514
+ export interface FilterConfig {
515
+ grayscale?: number;
516
+ blur?: number;
517
+ brightness?: number;
518
+ contrast?: number;
519
+ saturate?: number;
520
+ opacity?: number;
521
+ sepia?: number;
522
+ hueRotate?: number;
523
+ invert?: number;
524
+ dropShadow?: DropShadowConfig | string;
525
+ }
526
+ export interface OutlineConfig {
527
+ width?: number;
528
+ color?: string;
529
+ style?: BorderStyle;
530
+ offset?: number;
531
+ }
532
+ export interface ImageStyleState {
533
+ className?: string | string[];
534
+ border?: BorderConfig;
535
+ borderTop?: Partial<BorderConfig>;
536
+ borderRight?: Partial<BorderConfig>;
537
+ borderBottom?: Partial<BorderConfig>;
538
+ borderLeft?: Partial<BorderConfig>;
539
+ borderRadiusTopLeft?: number;
540
+ borderRadiusTopRight?: number;
541
+ borderRadiusBottomRight?: number;
542
+ borderRadiusBottomLeft?: number;
543
+ shadow?: ShadowPreset | string;
544
+ filter?: FilterConfig;
545
+ opacity?: number;
546
+ cursor?: string;
547
+ outline?: OutlineConfig;
548
+ objectFit?: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down';
549
+ aspectRatio?: string;
550
+ }
551
+ export interface ImageStylingConfig {
552
+ default?: ImageStyleState;
553
+ hover?: Partial<ImageStyleState>;
554
+ focused?: Partial<ImageStyleState>;
555
+ }
556
+ /**
557
+ * State machine states for zoom/focus animations
558
+ */
559
+ export declare enum ZoomState {
560
+ IDLE = "idle",// No focus, no animations
561
+ FOCUSING = "focusing",// Single image animating in
562
+ FOCUSED = "focused",// Stable focused state
563
+ UNFOCUSING = "unfocusing",// Single image animating out
564
+ CROSS_ANIMATING = "cross_animating"
565
+ }
566
+ /**
567
+ * Handle for a cancellable animation using Web Animations API
568
+ */
569
+ export interface AnimationHandle {
570
+ id: string;
571
+ element: HTMLElement;
572
+ animation: Animation;
573
+ fromState: TransformParams;
574
+ toState: TransformParams;
575
+ startTime: number;
576
+ duration: number;
577
+ }
578
+ /**
579
+ * Snapshot of an element's current transform state
580
+ * Used for capturing position mid-animation
581
+ */
582
+ export interface AnimationSnapshot {
583
+ x: number;
584
+ y: number;
585
+ rotation: number;
586
+ scale: number;
587
+ }
588
+ /**
589
+ * Tracks an image that is currently animating
590
+ */
591
+ export interface AnimatingImage {
592
+ element: HTMLElement;
593
+ originalState: ImageLayout;
594
+ animationHandle: AnimationHandle;
595
+ direction: 'in' | 'out';
596
+ originalWidth?: number;
597
+ originalHeight?: number;
598
+ }
599
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}