@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 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,0BAA0B,CAAC;AAGlC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,cAAc,CAAC;AAG1D,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EAAE,gCAAgC;AACrD,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EAEtB,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,EAC5B,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,EACjB,yBAAyB,EACzB,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,YAAY,EACZ,eAAe,EAEf,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,EAEd,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,cAAc,EACd,4BAA4B,EAC5B,cAAc,EACd,eAAe,EACf,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,YAAY,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { PlacementLayout, ImageLayout, ContainerBounds, LayoutConfig, ImageConfig } from '../config/types';
2
+ interface ClusterLayoutOptions extends Partial<LayoutConfig> {
3
+ fixedHeight?: number;
4
+ }
5
+ export declare class ClusterPlacementLayout implements PlacementLayout {
6
+ private config;
7
+ private imageConfig;
8
+ constructor(config: LayoutConfig, imageConfig?: ImageConfig);
9
+ /**
10
+ * Generate cluster layout positions for images
11
+ * @param imageCount - Number of images to layout
12
+ * @param containerBounds - Container dimensions {width, height}
13
+ * @param options - Optional overrides (includes fixedHeight)
14
+ * @returns Array of layout objects with position, rotation, scale
15
+ */
16
+ generate(imageCount: number, containerBounds: ContainerBounds, options?: ClusterLayoutOptions): ImageLayout[];
17
+ /**
18
+ * Calculate optimal number of clusters based on image count and container
19
+ */
20
+ private calculateClusterCount;
21
+ /**
22
+ * Generate cluster center positions with spacing constraints
23
+ */
24
+ private generateClusterCenters;
25
+ /**
26
+ * Calculate spread for a cluster (may vary if density='varied')
27
+ */
28
+ private calculateClusterSpread;
29
+ /**
30
+ * Generate a random number with approximately Gaussian distribution
31
+ * Using Box-Muller transform
32
+ */
33
+ private gaussianRandom;
34
+ /**
35
+ * Utility: Generate random number between min and max
36
+ */
37
+ private random;
38
+ }
39
+ export {};
40
+ //# sourceMappingURL=ClusterPlacementLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClusterPlacementLayout.d.ts","sourceRoot":"","sources":["../../src/layouts/ClusterPlacementLayout.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAA0B,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAQxI,UAAU,oBAAqB,SAAQ,OAAO,CAAC,YAAY,CAAC;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAWD,qBAAa,sBAAuB,YAAW,eAAe;IAC5D,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,WAAW,CAAc;gBAErB,MAAM,EAAE,YAAY,EAAE,WAAW,GAAE,WAAgB;IAK/D;;;;;;OAMG;IACH,QAAQ,CACN,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,eAAe,EAChC,OAAO,GAAE,oBAAyB,GACjC,WAAW,EAAE;IAuHhB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAwB7B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAyD9B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAS9B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAWtB;;OAEG;IACH,OAAO,CAAC,MAAM;CAGf"}
@@ -0,0 +1,27 @@
1
+ import { PlacementLayout, ImageLayout, ContainerBounds, LayoutConfig, ImageConfig } from '../config/types';
2
+ interface GridLayoutOptions extends Partial<LayoutConfig> {
3
+ fixedHeight?: number;
4
+ }
5
+ export declare class GridPlacementLayout implements PlacementLayout {
6
+ private config;
7
+ private imageConfig;
8
+ constructor(config: LayoutConfig, imageConfig?: ImageConfig);
9
+ /**
10
+ * Generate grid layout positions for images
11
+ * @param imageCount - Number of images to layout
12
+ * @param containerBounds - Container dimensions {width, height}
13
+ * @param options - Optional overrides (includes fixedHeight)
14
+ * @returns Array of layout objects with position, rotation, scale
15
+ */
16
+ generate(imageCount: number, containerBounds: ContainerBounds, options?: GridLayoutOptions): ImageLayout[];
17
+ /**
18
+ * Calculate optimal grid dimensions based on image count and container
19
+ */
20
+ private calculateGridDimensions;
21
+ /**
22
+ * Utility: Generate random number between min and max
23
+ */
24
+ private random;
25
+ }
26
+ export {};
27
+ //# sourceMappingURL=GridPlacementLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GridPlacementLayout.d.ts","sourceRoot":"","sources":["../../src/layouts/GridPlacementLayout.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAuB,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAErI,UAAU,iBAAkB,SAAQ,OAAO,CAAC,YAAY,CAAC;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA4BD,qBAAa,mBAAoB,YAAW,eAAe;IACzD,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,WAAW,CAAc;gBAErB,MAAM,EAAE,YAAY,EAAE,WAAW,GAAE,WAAgB;IAK/D;;;;;;OAMG;IACH,QAAQ,CACN,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,eAAe,EAChC,OAAO,GAAE,iBAAsB,GAC9B,WAAW,EAAE;IAkOhB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAqC/B;;OAEG;IACH,OAAO,CAAC,MAAM;CAGf"}
@@ -0,0 +1,33 @@
1
+ import { PlacementLayout, ImageLayout, ContainerBounds, LayoutConfig, ImageConfig } from '../config/types';
2
+ interface RadialLayoutOptions extends Partial<LayoutConfig> {
3
+ fixedHeight?: number;
4
+ }
5
+ export declare class RadialPlacementLayout implements PlacementLayout {
6
+ private config;
7
+ private imageConfig;
8
+ constructor(config: LayoutConfig, imageConfig?: ImageConfig);
9
+ /**
10
+ * Generate radial layout positions for images
11
+ * @param imageCount - Number of images to layout
12
+ * @param containerBounds - Container dimensions {width, height}
13
+ * @param options - Optional overrides
14
+ * @returns Array of layout objects with position, rotation, scale
15
+ */
16
+ generate(imageCount: number, containerBounds: ContainerBounds, options?: RadialLayoutOptions): ImageLayout[];
17
+ /**
18
+ * Estimate image width based on height
19
+ * Assumes landscape aspect ratio (approximately 1.4:1)
20
+ * @param height - Image height
21
+ * @returns Estimated width
22
+ */
23
+ private estimateWidth;
24
+ /**
25
+ * Utility: Generate random number between min and max
26
+ * @param min - Minimum value
27
+ * @param max - Maximum value
28
+ * @returns Random number in range
29
+ */
30
+ private random;
31
+ }
32
+ export {};
33
+ //# sourceMappingURL=RadialPlacementLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadialPlacementLayout.d.ts","sourceRoot":"","sources":["../../src/layouts/RadialPlacementLayout.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEhH,UAAU,mBAAoB,SAAQ,OAAO,CAAC,YAAY,CAAC;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,qBAAsB,YAAW,eAAe;IAC3D,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,WAAW,CAAc;gBAErB,MAAM,EAAE,YAAY,EAAE,WAAW,GAAE,WAAgB;IAK/D;;;;;;OAMG;IACH,QAAQ,CACN,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,eAAe,EAChC,OAAO,GAAE,mBAAwB,GAChC,WAAW,EAAE;IAiIhB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAMrB;;;;;OAKG;IACH,OAAO,CAAC,MAAM;CAGf"}
@@ -0,0 +1,26 @@
1
+ import { PlacementLayout, ImageLayout, ContainerBounds, LayoutConfig, ImageConfig } from '../config/types';
2
+ interface RandomLayoutOptions extends Partial<LayoutConfig> {
3
+ fixedHeight?: number;
4
+ }
5
+ export declare class RandomPlacementLayout implements PlacementLayout {
6
+ private config;
7
+ private imageConfig;
8
+ constructor(config: LayoutConfig, imageConfig?: ImageConfig);
9
+ /**
10
+ * Generate random layout positions for images
11
+ * @param imageCount - Number of images to layout
12
+ * @param containerBounds - Container dimensions {width, height}
13
+ * @param options - Optional overrides (includes fixedHeight)
14
+ * @returns Array of layout objects with position, rotation, scale
15
+ */
16
+ generate(imageCount: number, containerBounds: ContainerBounds, options?: RandomLayoutOptions): ImageLayout[];
17
+ /**
18
+ * Utility: Generate random number between min and max
19
+ * @param min - Minimum value
20
+ * @param max - Maximum value
21
+ * @returns Random number in range
22
+ */
23
+ private random;
24
+ }
25
+ export {};
26
+ //# sourceMappingURL=RandomPlacementLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RandomPlacementLayout.d.ts","sourceRoot":"","sources":["../../src/layouts/RandomPlacementLayout.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEhH,UAAU,mBAAoB,SAAQ,OAAO,CAAC,YAAY,CAAC;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,qBAAsB,YAAW,eAAe;IAC3D,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,WAAW,CAAc;gBAErB,MAAM,EAAE,YAAY,EAAE,WAAW,GAAE,WAAgB;IAK/D;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,OAAO,GAAE,mBAAwB,GAAG,WAAW,EAAE;IAwDhH;;;;;OAKG;IACH,OAAO,CAAC,MAAM;CAGf"}
@@ -0,0 +1,43 @@
1
+ import { PlacementLayout, ImageLayout, ContainerBounds, LayoutConfig, ImageConfig } from '../config/types';
2
+ interface SpiralLayoutOptions extends Partial<LayoutConfig> {
3
+ fixedHeight?: number;
4
+ }
5
+ export declare class SpiralPlacementLayout implements PlacementLayout {
6
+ private config;
7
+ private imageConfig;
8
+ constructor(config: LayoutConfig, imageConfig?: ImageConfig);
9
+ /**
10
+ * Generate spiral layout positions for images
11
+ * @param imageCount - Number of images to layout
12
+ * @param containerBounds - Container dimensions {width, height}
13
+ * @param options - Optional overrides (includes fixedHeight)
14
+ * @returns Array of layout objects with position, rotation, scale
15
+ */
16
+ generate(imageCount: number, containerBounds: ContainerBounds, options?: SpiralLayoutOptions): ImageLayout[];
17
+ /**
18
+ * Calculate tangent angle for spiral curve at given position
19
+ * This aligns the image along the spiral's direction of travel
20
+ */
21
+ private calculateSpiralTangent;
22
+ /**
23
+ * Calculate radius for golden spiral (Vogel's model)
24
+ * Creates even distribution like sunflower seeds
25
+ */
26
+ private calculateGoldenRadius;
27
+ /**
28
+ * Calculate radius for Archimedean spiral
29
+ * r = a + b*θ (constant spacing between arms)
30
+ */
31
+ private calculateArchimedeanRadius;
32
+ /**
33
+ * Calculate radius for logarithmic (equiangular) spiral
34
+ * r = a * e^(b*θ)
35
+ */
36
+ private calculateLogarithmicRadius;
37
+ /**
38
+ * Utility: Generate random number between min and max
39
+ */
40
+ private random;
41
+ }
42
+ export {};
43
+ //# sourceMappingURL=SpiralPlacementLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpiralPlacementLayout.d.ts","sourceRoot":"","sources":["../../src/layouts/SpiralPlacementLayout.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAyB,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEvI,UAAU,mBAAoB,SAAQ,OAAO,CAAC,YAAY,CAAC;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAaD,qBAAa,qBAAsB,YAAW,eAAe;IAC3D,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,WAAW,CAAc;gBAErB,MAAM,EAAE,YAAY,EAAE,WAAW,GAAE,WAAgB;IAK/D;;;;;;OAMG;IACH,QAAQ,CACN,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,eAAe,EAChC,OAAO,GAAE,mBAAwB,GAChC,WAAW,EAAE;IAsHhB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAoC9B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAa7B;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAYlC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAmBlC;;OAEG;IACH,OAAO,CAAC,MAAM;CAGf"}
@@ -0,0 +1,48 @@
1
+ import { PlacementLayout, ImageLayout, ContainerBounds, LayoutConfig, ImageConfig } from '../config/types';
2
+ interface WaveLayoutOptions extends Partial<LayoutConfig> {
3
+ fixedHeight?: number;
4
+ }
5
+ export declare class WavePlacementLayout implements PlacementLayout {
6
+ private config;
7
+ private imageConfig;
8
+ constructor(config: LayoutConfig, imageConfig?: ImageConfig);
9
+ /**
10
+ * Generate wave layout positions for images
11
+ * @param imageCount - Number of images to layout
12
+ * @param containerBounds - Container dimensions {width, height}
13
+ * @param options - Optional overrides
14
+ * @returns Array of layout objects with position, rotation, scale
15
+ */
16
+ generate(imageCount: number, containerBounds: ContainerBounds, options?: WaveLayoutOptions): ImageLayout[];
17
+ /**
18
+ * Calculate Y position displacement on wave curve
19
+ * @param x - Horizontal position
20
+ * @param containerWidth - Container width
21
+ * @param amplitude - Wave amplitude
22
+ * @param frequency - Wave frequency
23
+ * @param phase - Phase offset
24
+ * @returns Y displacement from baseline
25
+ */
26
+ private calculateWaveY;
27
+ /**
28
+ * Calculate rotation based on wave tangent
29
+ * @param x - Horizontal position
30
+ * @param containerWidth - Container width
31
+ * @param amplitude - Wave amplitude
32
+ * @param frequency - Wave frequency
33
+ * @param phase - Phase offset
34
+ * @returns Rotation angle in degrees
35
+ */
36
+ private calculateRotation;
37
+ /**
38
+ * Estimate image width based on height
39
+ /**
40
+ * Utility: Generate random number between min and max
41
+ * @param min - Minimum value
42
+ * @param max - Maximum value
43
+ * @returns Random number in range
44
+ */
45
+ private random;
46
+ }
47
+ export {};
48
+ //# sourceMappingURL=WavePlacementLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WavePlacementLayout.d.ts","sourceRoot":"","sources":["../../src/layouts/WavePlacementLayout.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGhH,UAAU,iBAAkB,SAAQ,OAAO,CAAC,YAAY,CAAC;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,mBAAoB,YAAW,eAAe;IACzD,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,WAAW,CAAc;gBAErB,MAAM,EAAE,YAAY,EAAE,WAAW,GAAE,WAAgB;IAK/D;;;;;;OAMG;IACH,QAAQ,CACN,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,eAAe,EAChC,OAAO,GAAE,iBAAsB,GAC9B,WAAW,EAAE;IAgIhB;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;IActB;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAiBzB;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM;CAGf"}
@@ -0,0 +1,37 @@
1
+ import { ImageLoader, IImageFilter } from '../config/types';
2
+ export interface CompositeLoaderConfig {
3
+ loaders: ImageLoader[];
4
+ debugLogging?: boolean;
5
+ }
6
+ export declare class CompositeLoader implements ImageLoader {
7
+ private loaders;
8
+ private debugLogging;
9
+ private _prepared;
10
+ private _discoveredUrls;
11
+ constructor(config: CompositeLoaderConfig);
12
+ /**
13
+ * Prepare all loaders in parallel and combine their results
14
+ * @param filter - Filter to apply to discovered images
15
+ */
16
+ prepare(filter: IImageFilter): Promise<void>;
17
+ /**
18
+ * Get the combined number of discovered images
19
+ * @throws Error if called before prepare()
20
+ */
21
+ imagesLength(): number;
22
+ /**
23
+ * Get the combined ordered list of image URLs
24
+ * @throws Error if called before prepare()
25
+ */
26
+ imageURLs(): string[];
27
+ /**
28
+ * Check if the loader has been prepared
29
+ */
30
+ isPrepared(): boolean;
31
+ /**
32
+ * Debug logging helper
33
+ * @param args - Arguments to log
34
+ */
35
+ private log;
36
+ }
37
+ //# sourceMappingURL=CompositeLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompositeLoader.d.ts","sourceRoot":"","sources":["../../src/loaders/CompositeLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEjE,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,qBAAa,eAAgB,YAAW,WAAW;IACjD,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAU;IAG9B,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,eAAe,CAAgB;gBAE3B,MAAM,EAAE,qBAAqB;IAYzC;;;OAGG;IACG,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BlD;;;OAGG;IACH,YAAY,IAAI,MAAM;IAOtB;;;OAGG;IACH,SAAS,IAAI,MAAM,EAAE;IAOrB;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;;OAGG;IACH,OAAO,CAAC,GAAG;CAKZ"}
@@ -0,0 +1,90 @@
1
+ import { ImageLoader, IImageFilter, GoogleDriveLoaderInnerConfig } from '../config/types';
2
+ export declare class GoogleDriveLoader implements ImageLoader {
3
+ private apiKey;
4
+ private apiEndpoint;
5
+ private debugLogging;
6
+ private sources;
7
+ private _prepared;
8
+ private _discoveredUrls;
9
+ constructor(config: GoogleDriveLoaderInnerConfig);
10
+ /**
11
+ * Prepare the loader by discovering all images from configured sources
12
+ * @param filter - Filter to apply to discovered images
13
+ */
14
+ prepare(filter: IImageFilter): Promise<void>;
15
+ /**
16
+ * Get the number of discovered images
17
+ * @throws Error if called before prepare()
18
+ */
19
+ imagesLength(): number;
20
+ /**
21
+ * Get the ordered list of image URLs
22
+ * @throws Error if called before prepare()
23
+ */
24
+ imageURLs(): string[];
25
+ /**
26
+ * Check if the loader has been prepared
27
+ */
28
+ isPrepared(): boolean;
29
+ /**
30
+ * Extract folder ID from various Google Drive URL formats
31
+ * @param folderUrl - Google Drive folder URL
32
+ * @returns Folder ID or null if invalid
33
+ */
34
+ extractFolderId(folderUrl: string): string | null;
35
+ /**
36
+ * Load images from a Google Drive folder
37
+ * @param folderUrl - Google Drive folder URL
38
+ * @param filter - Filter to apply to discovered images
39
+ * @param recursive - Whether to include images from subfolders
40
+ * @returns Promise resolving to array of image URLs
41
+ */
42
+ private loadFromFolder;
43
+ /**
44
+ * Load images from a single folder (non-recursive)
45
+ * @param folderId - Google Drive folder ID
46
+ * @param filter - Filter to apply to discovered images
47
+ * @returns Promise resolving to array of image URLs
48
+ */
49
+ private loadImagesFromSingleFolder;
50
+ /**
51
+ * Load specific files by their URLs or IDs
52
+ * @param fileUrls - Array of Google Drive file URLs or IDs
53
+ * @param filter - Filter to apply to discovered images
54
+ * @returns Promise resolving to array of image URLs
55
+ */
56
+ private loadFiles;
57
+ /**
58
+ * Extract file ID from Google Drive file URL
59
+ * @param fileUrl - Google Drive file URL or file ID
60
+ * @returns File ID or null if invalid
61
+ */
62
+ private extractFileId;
63
+ /**
64
+ * Recursively load images from a folder and all its subfolders
65
+ * @param folderId - Google Drive folder ID
66
+ * @param filter - Filter to apply to discovered images
67
+ * @returns Promise resolving to array of image URLs
68
+ */
69
+ private loadImagesRecursively;
70
+ /**
71
+ * Direct loading method (no API key required, but less reliable)
72
+ * Uses embedded folder view to scrape image IDs
73
+ * @param folderId - Google Drive folder ID
74
+ * @param filter - Filter to apply (not used in fallback mode)
75
+ * @returns Promise resolving to array of image URLs
76
+ */
77
+ private loadImagesDirectly;
78
+ /**
79
+ * Manually add image URLs (for testing or when auto-loading fails)
80
+ * @param imageIds - Array of Google Drive file IDs
81
+ * @returns Array of direct image URLs
82
+ */
83
+ manualImageUrls(imageIds: string[]): string[];
84
+ /**
85
+ * Debug logging helper
86
+ * @param args - Arguments to log
87
+ */
88
+ private log;
89
+ }
90
+ //# sourceMappingURL=GoogleDriveLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GoogleDriveLoader.d.ts","sourceRoot":"","sources":["../../src/loaders/GoogleDriveLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAuB,4BAA4B,EAAqB,MAAM,iBAAiB,CAAC;AAEvI,qBAAa,iBAAkB,YAAW,WAAW;IACnD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,OAAO,CAAsB;IAGrC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,eAAe,CAAgB;gBAE3B,MAAM,EAAE,4BAA4B;IAYhD;;;OAGG;IACG,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBlD;;;OAGG;IACH,YAAY,IAAI,MAAM;IAOtB;;;OAGG;IACH,SAAS,IAAI,MAAM,EAAE;IAOrB;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;;;OAIG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAoBjD;;;;;;OAMG;YACW,cAAc;IAyB5B;;;;;OAKG;YACW,0BAA0B;IAgCxC;;;;;OAKG;YACW,SAAS;IAyCvB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA2BrB;;;;;OAKG;YACW,qBAAqB;IA0DnC;;;;;;OAMG;YACW,kBAAkB;IAwChC;;;;OAIG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAI7C;;;OAGG;IACH,OAAO,CAAC,GAAG;CAKZ"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * ImageFilter.ts
3
+ * Filters images by extension, designed for future extensibility
4
+ * (e.g., size filters, date filters, etc.)
5
+ */
6
+ export declare class ImageFilter {
7
+ private allowedExtensions;
8
+ /**
9
+ * Create a new ImageFilter
10
+ * @param extensions - Array of allowed file extensions (without dots)
11
+ * Defaults to common image formats if not provided
12
+ */
13
+ constructor(extensions?: string[]);
14
+ /**
15
+ * Check if a filename has an allowed extension
16
+ * @param filename - The filename to check (can include path or query string)
17
+ * @returns True if the file extension is allowed
18
+ */
19
+ isAllowed(filename: string): boolean;
20
+ /**
21
+ * Get the list of allowed extensions
22
+ * @returns Array of allowed extensions
23
+ */
24
+ getAllowedExtensions(): string[];
25
+ }
26
+ //# sourceMappingURL=ImageFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageFilter.d.ts","sourceRoot":"","sources":["../../src/loaders/ImageFilter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,qBAAa,WAAW;IACtB,OAAO,CAAC,iBAAiB,CAAW;IAEpC;;;;OAIG;gBACS,UAAU,CAAC,EAAE,MAAM,EAAE;IAMjC;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAOpC;;;OAGG;IACH,oBAAoB,IAAI,MAAM,EAAE;CAQjC"}
@@ -0,0 +1,85 @@
1
+ import { ImageLoader, IImageFilter, StaticLoaderInnerConfig } from '../config/types';
2
+ export declare class StaticImageLoader implements ImageLoader {
3
+ private validateUrls;
4
+ private validationTimeout;
5
+ private validationMethod;
6
+ private sources;
7
+ private debugLogging;
8
+ private _prepared;
9
+ private _discoveredUrls;
10
+ constructor(config: StaticLoaderInnerConfig);
11
+ /**
12
+ * Prepare the loader by discovering all images from configured sources
13
+ * @param filter - Filter to apply to discovered images
14
+ */
15
+ prepare(filter: IImageFilter): Promise<void>;
16
+ /**
17
+ * Get the number of discovered images
18
+ * @throws Error if called before prepare()
19
+ */
20
+ imagesLength(): number;
21
+ /**
22
+ * Get the ordered list of image URLs
23
+ * @throws Error if called before prepare()
24
+ */
25
+ imageURLs(): string[];
26
+ /**
27
+ * Check if the loader has been prepared
28
+ */
29
+ isPrepared(): boolean;
30
+ /**
31
+ * Process a single source object using shape-based detection
32
+ * @param source - Source configuration detected by key presence
33
+ * @param filter - Filter to apply to discovered images
34
+ * @returns Promise resolving to array of valid URLs from this source
35
+ */
36
+ private processSource;
37
+ /**
38
+ * Process a list of direct URLs
39
+ * @param urls - Array of image URLs
40
+ * @param filter - Filter to apply to discovered images
41
+ * @returns Promise resolving to array of validated URLs
42
+ */
43
+ private processUrls;
44
+ /**
45
+ * Process a path-based source
46
+ * @param basePath - Base path (relative or absolute)
47
+ * @param files - Array of filenames
48
+ * @param filter - Filter to apply to discovered images
49
+ * @returns Promise resolving to array of validated URLs
50
+ */
51
+ private processPath;
52
+ /**
53
+ * Process a JSON endpoint source
54
+ * Fetches a JSON endpoint that returns { images: string[] }
55
+ * @param url - JSON endpoint URL
56
+ * @param filter - Filter to apply to discovered images
57
+ * @returns Promise resolving to array of validated URLs
58
+ */
59
+ private processJson;
60
+ /**
61
+ * Validate a single URL using HEAD request
62
+ * @param url - URL to validate
63
+ * @returns Promise resolving to true if valid and accessible
64
+ */
65
+ private validateUrl;
66
+ /**
67
+ * Construct full URL from basePath and filename
68
+ * @param basePath - Base path (relative or absolute)
69
+ * @param filename - Filename to append
70
+ * @returns Complete URL
71
+ */
72
+ private constructUrl;
73
+ /**
74
+ * Check if URL is absolute (contains protocol)
75
+ * @param url - URL to check
76
+ * @returns True if absolute URL
77
+ */
78
+ private isAbsoluteUrl;
79
+ /**
80
+ * Debug logging helper
81
+ * @param args - Arguments to log
82
+ */
83
+ private log;
84
+ }
85
+ //# sourceMappingURL=StaticImageLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StaticImageLoader.d.ts","sourceRoot":"","sources":["../../src/loaders/StaticImageLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAgB,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAExG,qBAAa,iBAAkB,YAAW,WAAW;IACnD,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,YAAY,CAAU;IAG9B,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,eAAe,CAAgB;gBAE3B,MAAM,EAAE,uBAAuB;IAe3C;;;OAGG;IACG,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBlD;;;OAGG;IACH,YAAY,IAAI,MAAM;IAOtB;;;OAGG;IACH,SAAS,IAAI,MAAM,EAAE;IAOrB;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;;;;OAKG;YACW,aAAa;IAkB3B;;;;;OAKG;YACW,WAAW;IAgCzB;;;;;;OAMG;YACW,WAAW;IAkCzB;;;;;;OAMG;YACW,WAAW;IAkCzB;;;;OAIG;YACW,WAAW;IAkEzB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAsBpB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IASrB;;;OAGG;IACH,OAAO,CAAC,GAAG;CAKZ"}
@@ -0,0 +1,16 @@
1
+ import { CSSProperties } from 'react';
2
+ import { ImageCloud as ImageCloudCore } from '../ImageCloud';
3
+ import { ImageCloudOptions } from '../config/types';
4
+ export type ImageCloudProps = Omit<ImageCloudOptions, 'container'> & {
5
+ className?: string;
6
+ style?: CSSProperties;
7
+ };
8
+ export interface ImageCloudRef {
9
+ instance: ImageCloudCore | null;
10
+ }
11
+ export declare const ImageCloud: import('react').ForwardRefExoticComponent<Omit<ImageCloudOptions, "container"> & {
12
+ className?: string;
13
+ style?: CSSProperties;
14
+ } & import('react').RefAttributes<ImageCloudRef>>;
15
+ export type { ImageCloudOptions, LayoutAlgorithm, LayoutConfig, AnimationConfig, ImageStylingConfig, } from '../config/types';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,GAAG;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;CACjC;AAED,eAAO,MAAM,UAAU;gBART,MAAM;YACV,aAAa;iDAwCtB,CAAC;AAGF,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,kBAAkB,GACnB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,GAAG;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;CACjC;AAED,eAAO,MAAM,UAAU;gBART,MAAM;YACV,aAAa;iDAwCtB,CAAC;AAGF,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,kBAAkB,GACnB,MAAM,iBAAiB,CAAC"}