yet-another-react-lightbox 3.9.1 → 3.10.1

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,6 +1,6 @@
1
1
  import * as React from 'react';
2
- import { LightboxExternalProps, LightboxProps, Labels, Slide, SlideImage, LengthOrPercentage, ContainerRect, ToolbarSettings, Component, Module, Node, Plugin, Augmentation, EventTypes, ComponentProps, LightboxStateSwipeAction, LightboxStateUpdateAction, LightboxState, Render, ImageFit, ControllerRef, Callback, RenderFunction } from './types.js';
3
- export { ACTION_CLOSE, ACTION_NEXT, ACTION_PREV, ACTION_SWIPE, ACTIVE_SLIDE_COMPLETE, ACTIVE_SLIDE_ERROR, ACTIVE_SLIDE_LOADING, ACTIVE_SLIDE_PLAYING, AnimationSettings, CLASS_FLEX_CENTER, CLASS_FULLSIZE, CLASS_NO_SCROLL, CLASS_NO_SCROLL_PADDING, Callbacks, CarouselSettings, ClickCallbackProps, ControllerSettings, DeepPartial, DeepPartialValue, ELEMENT_BUTTON, ELEMENT_ICON, EVENT_ON_KEY_DOWN, EVENT_ON_KEY_UP, EVENT_ON_POINTER_CANCEL, EVENT_ON_POINTER_DOWN, EVENT_ON_POINTER_LEAVE, EVENT_ON_POINTER_MOVE, EVENT_ON_POINTER_UP, EVENT_ON_WHEEL, GenericSlide, IMAGE_FIT_CONTAIN, IMAGE_FIT_COVER, ImageSource, MODULE_CAROUSEL, MODULE_CONTROLLER, MODULE_NAVIGATION, MODULE_NO_SCROLL, MODULE_PORTAL, MODULE_ROOT, MODULE_TOOLBAR, NavigationAction, PLUGIN_CAPTIONS, PLUGIN_COUNTER, PLUGIN_DOWNLOAD, PLUGIN_FULLSCREEN, PLUGIN_INLINE, PLUGIN_SHARE, PLUGIN_SLIDESHOW, PLUGIN_THUMBNAILS, PLUGIN_ZOOM, PluginProps, PortalSettings, RenderSlideContainerProps, RenderSlideFooterProps, RenderSlideHeaderProps, RenderSlideProps, SLIDE_STATUS_COMPLETE, SLIDE_STATUS_ERROR, SLIDE_STATUS_LOADING, SLIDE_STATUS_PLACEHOLDER, SLIDE_STATUS_PLAYING, SlideStatus, SlideTypeKey, SlideTypes, Slot, SlotStyles, SlotType, ToolbarButtonKey, ToolbarButtonKeys, UNKNOWN_ACTION_TYPE, VK_ARROW_LEFT, VK_ARROW_RIGHT, VK_ESCAPE, ViewCallbackProps, activeSlideStatus } from './types.js';
2
+ import { LightboxExternalProps, LightboxProps, Labels, Slide, SlideImage, LengthOrPercentage, ContainerRect, ToolbarSettings, Component, Module, Node, Plugin, Augmentation, EventTypes, ComponentProps, LightboxStateSwipeAction, LightboxStateUpdateAction, LightboxState, CarouselSettings, Render, ControllerRef, Callback, RenderFunction } from './types.js';
3
+ export { ACTION_CLOSE, ACTION_NEXT, ACTION_PREV, ACTION_SWIPE, ACTIVE_SLIDE_COMPLETE, ACTIVE_SLIDE_ERROR, ACTIVE_SLIDE_LOADING, ACTIVE_SLIDE_PLAYING, AnimationSettings, CLASS_FLEX_CENTER, CLASS_FULLSIZE, CLASS_NO_SCROLL, CLASS_NO_SCROLL_PADDING, Callbacks, ClickCallbackProps, ControllerSettings, DeepPartial, DeepPartialValue, ELEMENT_BUTTON, ELEMENT_ICON, EVENT_ON_KEY_DOWN, EVENT_ON_KEY_UP, EVENT_ON_POINTER_CANCEL, EVENT_ON_POINTER_DOWN, EVENT_ON_POINTER_LEAVE, EVENT_ON_POINTER_MOVE, EVENT_ON_POINTER_UP, EVENT_ON_WHEEL, GenericSlide, IMAGE_FIT_CONTAIN, IMAGE_FIT_COVER, ImageFit, ImageSource, MODULE_CAROUSEL, MODULE_CONTROLLER, MODULE_NAVIGATION, MODULE_NO_SCROLL, MODULE_PORTAL, MODULE_ROOT, MODULE_TOOLBAR, NavigationAction, PLUGIN_CAPTIONS, PLUGIN_COUNTER, PLUGIN_DOWNLOAD, PLUGIN_FULLSCREEN, PLUGIN_INLINE, PLUGIN_SHARE, PLUGIN_SLIDESHOW, PLUGIN_THUMBNAILS, PLUGIN_ZOOM, PluginProps, PortalSettings, RenderSlideContainerProps, RenderSlideFooterProps, RenderSlideHeaderProps, RenderSlideProps, SLIDE_STATUS_COMPLETE, SLIDE_STATUS_ERROR, SLIDE_STATUS_LOADING, SLIDE_STATUS_PLACEHOLDER, SLIDE_STATUS_PLAYING, SlideStatus, SlideTypeKey, SlideTypes, Slot, SlotStyles, SlotType, ToolbarButtonKey, ToolbarButtonKeys, UNKNOWN_ACTION_TYPE, VK_ARROW_LEFT, VK_ARROW_RIGHT, VK_ESCAPE, ViewCallbackProps, activeSlideStatus } from './types.js';
4
4
 
5
5
  /** Lightbox component */
6
6
  declare function Lightbox({ carousel, animation, render, toolbar, controller, on, plugins, slides, index, ...restProps }: LightboxExternalProps): React.JSX.Element | null;
@@ -183,17 +183,16 @@ declare const ErrorIcon: {
183
183
  displayName: string;
184
184
  };
185
185
 
186
- type ImageSlideProps = {
186
+ type ImageSlideProps = Partial<Pick<CarouselSettings, "imageFit" | "imageProps">> & {
187
187
  slide: SlideImage;
188
188
  offset?: number;
189
189
  render?: Render;
190
190
  rect?: ContainerRect;
191
- imageFit?: ImageFit;
192
191
  onClick?: () => void;
193
192
  onLoad?: (image: HTMLImageElement) => void;
194
193
  style?: React.CSSProperties;
195
194
  };
196
- declare function ImageSlide({ slide: image, offset, render, rect, imageFit, onClick, onLoad, style }: ImageSlideProps): React.JSX.Element;
195
+ declare function ImageSlide({ slide: image, offset, render, rect, imageFit, imageProps, onClick, onLoad, style, }: ImageSlideProps): React.JSX.Element;
197
196
 
198
197
  declare function Carousel({ carousel: { finite, preload, padding, spacing } }: ComponentProps): React.JSX.Element;
199
198
  declare const CarouselModule: Module;
@@ -252,4 +251,4 @@ declare const RootModule: Module;
252
251
  declare function Toolbar({ toolbar: { buttons }, render: { buttonClose, iconClose } }: ComponentProps): React.JSX.Element;
253
252
  declare const ToolbarModule: Module;
254
253
 
255
- export { Augmentation, Callback, Carousel, CarouselModule, CloseIcon, Component, ComponentProps, ComputeAnimation, ContainerRect, Controller, ControllerContext, ControllerContextType, ControllerModule, ControllerRef, ErrorIcon, Event, EventCallback, EventTypes, EventsContext, EventsContextType, EventsProvider, IconButton, IconButtonProps, ImageFit, ImageSlide, ImageSlideProps, KeyboardEventType, Labels, LengthOrPercentage, Lightbox, LightboxDefaultProps, LightboxDispatchContext, LightboxDispatchContextType, LightboxExternalProps, LightboxProps, LightboxPropsContext, LightboxPropsContextType, LightboxPropsProvider, LightboxState, LightboxStateAction, LightboxStateContext, LightboxStateContextType, LightboxStateProvider, LightboxStateProviderProps, LightboxStateSwipeAction, LightboxStateUpdateAction, LoadingIcon, Module, Navigation, NavigationButton, NavigationButtonProps, NavigationModule, NextIcon, NoScroll, NoScrollModule, Node, Plugin, PointerEventType, Portal, PortalModule, PreviousIcon, Publish, ReactEventType, RegisterSensors, Render, RenderFunction, Root, RootModule, SensorCallback, Slide, SlideImage, Subscribe, SubscribeSensors, SupportedEventType, SwipeState, TimeoutsContext, TimeoutsContextType, TimeoutsProvider, Toolbar, ToolbarModule, ToolbarSettings, Topic, Unsubscribe, UseSensors, WheelEventType, addToolbarButton, cleanup, clsx, composePrefix, computeSlideRect, createIcon, createIconDisabled, createModule, createNode, cssClass, cssVar, Lightbox as default, devicePixelRatio, getSlide, getSlideIfPresent, getSlideIndex, hasSlides, hasWindow, isImageFitCover, isImageSlide, label, makeComposePrefix, makeUseContext, parseLengthPercentage, round, setRef, stopNavigationEventsPropagation, useAnimation, useContainerRect, useController, useDelay, useEventCallback, useEvents, useForkRef, useLayoutEffect, useLightboxDispatch, useLightboxProps, useLightboxState, useLoseFocus, useMotionPreference, usePointerSwipe, usePreventSwipeNavigation, useRTL, useSensors, useThrottle, useTimeouts, useWheelSwipe, withPlugins };
254
+ export { Augmentation, Callback, Carousel, CarouselModule, CarouselSettings, CloseIcon, Component, ComponentProps, ComputeAnimation, ContainerRect, Controller, ControllerContext, ControllerContextType, ControllerModule, ControllerRef, ErrorIcon, Event, EventCallback, EventTypes, EventsContext, EventsContextType, EventsProvider, IconButton, IconButtonProps, ImageSlide, ImageSlideProps, KeyboardEventType, Labels, LengthOrPercentage, Lightbox, LightboxDefaultProps, LightboxDispatchContext, LightboxDispatchContextType, LightboxExternalProps, LightboxProps, LightboxPropsContext, LightboxPropsContextType, LightboxPropsProvider, LightboxState, LightboxStateAction, LightboxStateContext, LightboxStateContextType, LightboxStateProvider, LightboxStateProviderProps, LightboxStateSwipeAction, LightboxStateUpdateAction, LoadingIcon, Module, Navigation, NavigationButton, NavigationButtonProps, NavigationModule, NextIcon, NoScroll, NoScrollModule, Node, Plugin, PointerEventType, Portal, PortalModule, PreviousIcon, Publish, ReactEventType, RegisterSensors, Render, RenderFunction, Root, RootModule, SensorCallback, Slide, SlideImage, Subscribe, SubscribeSensors, SupportedEventType, SwipeState, TimeoutsContext, TimeoutsContextType, TimeoutsProvider, Toolbar, ToolbarModule, ToolbarSettings, Topic, Unsubscribe, UseSensors, WheelEventType, addToolbarButton, cleanup, clsx, composePrefix, computeSlideRect, createIcon, createIconDisabled, createModule, createNode, cssClass, cssVar, Lightbox as default, devicePixelRatio, getSlide, getSlideIfPresent, getSlideIndex, hasSlides, hasWindow, isImageFitCover, isImageSlide, label, makeComposePrefix, makeUseContext, parseLengthPercentage, round, setRef, stopNavigationEventsPropagation, useAnimation, useContainerRect, useController, useDelay, useEventCallback, useEvents, useForkRef, useLayoutEffect, useLightboxDispatch, useLightboxProps, useLightboxState, useLoseFocus, useMotionPreference, usePointerSwipe, usePreventSwipeNavigation, useRTL, useSensors, useThrottle, useTimeouts, useWheelSwipe, withPlugins };
package/dist/index.js CHANGED
@@ -28,6 +28,7 @@ const LightboxDefaultProps = {
28
28
  padding: "16px",
29
29
  spacing: "30%",
30
30
  imageFit: IMAGE_FIT_CONTAIN,
31
+ imageProps: {},
31
32
  },
32
33
  controller: {
33
34
  ref: null,
@@ -566,7 +567,7 @@ function useThrottle(callback, delay) {
566
567
 
567
568
  const slidePrefix = makeComposePrefix("slide");
568
569
  const slideImagePrefix = makeComposePrefix("slide_image");
569
- function ImageSlide({ slide: image, offset, render, rect, imageFit, onClick, onLoad, style }) {
570
+ function ImageSlide({ slide: image, offset, render, rect, imageFit, imageProps, onClick, onLoad, style, }) {
570
571
  var _a, _b, _c, _d, _e, _f, _g;
571
572
  const [status, setStatus] = React.useState(SLIDE_STATUS_LOADING);
572
573
  const { publish } = useEvents();
@@ -618,8 +619,9 @@ function ImageSlide({ slide: image, offset, render, rect, imageFit, onClick, onL
618
619
  const srcSet = (_g = image.srcSet) === null || _g === void 0 ? void 0 : _g.sort((a, b) => a.width - b.width).map((item) => `${item.src} ${item.width}w`).join(", ");
619
620
  const estimateActualWidth = () => rect && !cover && image.width && image.height ? (rect.height / image.height) * image.width : Number.MAX_VALUE;
620
621
  const sizes = srcSet && rect && hasWindow() ? `${Math.round(Math.min(estimateActualWidth(), rect.width))}px` : undefined;
622
+ const { style: imagePropsStyle, className: imagePropsClassName, ...restImageProps } = imageProps || {};
621
623
  return (React.createElement(React.Fragment, null,
622
- React.createElement("img", { ref: setImageRef, onLoad: handleOnLoad, onError: onError, onClick: onClick, className: clsx(cssClass(slideImagePrefix()), cover && cssClass(slideImagePrefix("cover")), status !== SLIDE_STATUS_COMPLETE && cssClass(slideImagePrefix("loading"))), draggable: false, alt: image.alt, style: { ...defaultStyle, ...style }, sizes: sizes, srcSet: srcSet, src: image.src }),
624
+ React.createElement("img", { ref: setImageRef, onLoad: handleOnLoad, onError: onError, onClick: onClick, draggable: false, className: clsx(cssClass(slideImagePrefix()), cover && cssClass(slideImagePrefix("cover")), status !== SLIDE_STATUS_COMPLETE && cssClass(slideImagePrefix("loading")), imagePropsClassName), style: { ...defaultStyle, ...style, ...imagePropsStyle }, ...restImageProps, alt: image.alt, sizes: sizes, srcSet: srcSet, src: image.src }),
623
625
  status !== SLIDE_STATUS_COMPLETE && (React.createElement("div", { className: cssClass(slidePrefix(SLIDE_STATUS_PLACEHOLDER)) },
624
626
  status === SLIDE_STATUS_LOADING &&
625
627
  ((render === null || render === void 0 ? void 0 : render.iconLoading) ? (render.iconLoading()) : (React.createElement(LoadingIcon, { className: clsx(cssClass(ELEMENT_ICON), cssClass(slidePrefix(SLIDE_STATUS_LOADING))) }))),
@@ -1141,12 +1143,12 @@ function CarouselSlide({ slide, offset }) {
1141
1143
  const containerRef = React.useRef(null);
1142
1144
  const { currentIndex } = useLightboxState();
1143
1145
  const { slideRect, close } = useController();
1144
- const { render, carousel: { imageFit }, on: { click: onClick }, controller: { closeOnBackdropClick }, } = useLightboxProps();
1146
+ const { render, carousel: { imageFit, imageProps }, on: { click: onClick }, controller: { closeOnBackdropClick }, } = useLightboxProps();
1145
1147
  const renderSlide = () => {
1146
1148
  var _a, _b, _c, _d;
1147
1149
  let rendered = (_a = render.slide) === null || _a === void 0 ? void 0 : _a.call(render, { slide, offset, rect: slideRect });
1148
1150
  if (!rendered && isImageSlide(slide)) {
1149
- rendered = (React.createElement(ImageSlide, { slide: slide, offset: offset, render: render, rect: slideRect, imageFit: imageFit, onClick: offset === 0 ? () => onClick === null || onClick === void 0 ? void 0 : onClick({ index: currentIndex }) : undefined }));
1151
+ rendered = (React.createElement(ImageSlide, { slide: slide, offset: offset, render: render, rect: slideRect, imageFit: imageFit, imageProps: imageProps, onClick: offset === 0 ? () => onClick === null || onClick === void 0 ? void 0 : onClick({ index: currentIndex }) : undefined }));
1150
1152
  }
1151
1153
  return rendered ? (React.createElement(React.Fragment, null, (_b = render.slideHeader) === null || _b === void 0 ? void 0 :
1152
1154
  _b.call(render, { slide }),
@@ -4,8 +4,7 @@ import { PluginProps, PLUGIN_CAPTIONS } from '../../types.js';
4
4
  /** Captions plugin */
5
5
  declare function Captions({ augment, addModule }: PluginProps): void;
6
6
 
7
- declare module "../../types.js" {
8
- type TextAlignment = "start" | "end" | "center";
7
+ declare module "yet-another-react-lightbox" {
9
8
  interface GenericSlide {
10
9
  /** slide title */
11
10
  title?: React.ReactNode;
@@ -23,7 +22,7 @@ declare module "../../types.js" {
23
22
  /** if `true`, show Captions Toggle button in the toolbar */
24
23
  showToggle?: boolean;
25
24
  /** description text alignment */
26
- descriptionTextAlign?: TextAlignment;
25
+ descriptionTextAlign?: "start" | "end" | "center";
27
26
  /** maximum number of lines to display in the description section */
28
27
  descriptionMaxLines?: number;
29
28
  };
@@ -4,7 +4,7 @@ import { PluginProps } from '../../types.js';
4
4
  /** Counter plugin */
5
5
  declare function Counter({ augment, addChild }: PluginProps): void;
6
6
 
7
- declare module "../../types.js" {
7
+ declare module "yet-another-react-lightbox" {
8
8
  interface LightboxProps {
9
9
  /** Counter plugin settings */
10
10
  counter?: React.HTMLAttributes<HTMLDivElement> & {
@@ -2,7 +2,7 @@ import { PluginProps, PLUGIN_DOWNLOAD } from '../../types.js';
2
2
 
3
3
  declare function Download({ augment }: PluginProps): void;
4
4
 
5
- declare module "../../types.js" {
5
+ declare module "yet-another-react-lightbox" {
6
6
  interface GenericSlide {
7
7
  /** @deprecated - use `download` instead */
8
8
  downloadUrl?: string;
@@ -4,7 +4,7 @@ import { PluginProps, PLUGIN_FULLSCREEN } from '../../types.js';
4
4
  /** Fullscreen plugin */
5
5
  declare function Fullscreen({ augment, contains, addParent }: PluginProps): void;
6
6
 
7
- declare module "../../types.js" {
7
+ declare module "yet-another-react-lightbox" {
8
8
  interface LightboxProps {
9
9
  /** Fullscreen plugin settings */
10
10
  fullscreen?: {
@@ -4,7 +4,7 @@ import { PluginProps } from '../../types.js';
4
4
  /** Inline plugin */
5
5
  declare function Inline({ augment, replace, remove }: PluginProps): void;
6
6
 
7
- declare module "../../types.js" {
7
+ declare module "yet-another-react-lightbox" {
8
8
  interface LightboxProps {
9
9
  /** HTML div element attributes to be passed to the Inline plugin container */
10
10
  inline?: React.HTMLAttributes<HTMLDivElement>;
@@ -4,7 +4,7 @@ declare function Share({ augment }: PluginProps): void;
4
4
 
5
5
  declare function isShareSupported(): boolean;
6
6
 
7
- declare module "../../types.js" {
7
+ declare module "yet-another-react-lightbox" {
8
8
  interface GenericSlide {
9
9
  /** share url or share props */
10
10
  share?: boolean | string | {
@@ -4,7 +4,7 @@ import { PluginProps, PLUGIN_SLIDESHOW } from '../../types.js';
4
4
  /** Slideshow plugin */
5
5
  declare function Slideshow({ augment, addModule }: PluginProps): void;
6
6
 
7
- declare module "../../types.js" {
7
+ declare module "yet-another-react-lightbox" {
8
8
  interface LightboxProps {
9
9
  /** Slideshow plugin settings */
10
10
  slideshow?: {
@@ -1,17 +1,17 @@
1
+ import * as React from 'react';
1
2
  import { PluginProps, PLUGIN_THUMBNAILS } from '../../types.js';
2
3
 
3
4
  /** Thumbnails plugin */
4
5
  declare function Thumbnails({ augment, contains, append, addParent }: PluginProps): void;
5
6
 
6
- type Position = "top" | "bottom" | "start" | "end";
7
- declare module "../../types.js" {
7
+ declare module "yet-another-react-lightbox" {
8
8
  interface LightboxProps {
9
9
  /** Thumbnails plugin settings */
10
10
  thumbnails?: {
11
11
  /** Thumbnails plugin ref */
12
12
  ref?: React.ForwardedRef<ThumbnailsRef>;
13
13
  /** thumbnails position */
14
- position?: Position;
14
+ position?: "top" | "bottom" | "start" | "end";
15
15
  /** thumbnail width */
16
16
  width?: number;
17
17
  /** thumbnail height */
@@ -66,7 +66,7 @@ declare module "../../types.js" {
66
66
  visible: boolean;
67
67
  /** show thumbnails */
68
68
  show: Callback;
69
- /** hide thuumbnails */
69
+ /** hide thumbnails */
70
70
  hide: Callback;
71
71
  }
72
72
  }
@@ -3,7 +3,7 @@ import { PluginProps } from '../../types.js';
3
3
  /** Video plugin */
4
4
  declare function Video({ augment }: PluginProps): void;
5
5
 
6
- declare module "../../types.js" {
6
+ declare module "yet-another-react-lightbox" {
7
7
  interface SlideTypes {
8
8
  /** video slide type */
9
9
  video: SlideVideo;
@@ -1,9 +1,10 @@
1
+ import * as React from 'react';
1
2
  import { Plugin, PLUGIN_ZOOM } from '../../types.js';
2
3
 
3
4
  /** Zoom plugin */
4
5
  declare const Zoom: Plugin;
5
6
 
6
- declare module "../../types.js" {
7
+ declare module "yet-another-react-lightbox" {
7
8
  interface LightboxProps {
8
9
  /** Zoom plugin settings */
9
10
  zoom?: {
@@ -473,6 +473,7 @@ function ZoomWrapper({ render, slide, offset, rect }) {
473
473
  rect,
474
474
  render,
475
475
  imageFit: carousel.imageFit,
476
+ imageProps: carousel.imageProps,
476
477
  onClick: offset === 0 ? () => { var _a; return (_a = on.click) === null || _a === void 0 ? void 0 : _a.call(on, { index: currentIndex }); } : undefined,
477
478
  };
478
479
  rendered = isResponsiveImageSlide(slide) ? (React.createElement(ResponsiveImage, { key: slide.src, ...slideProps, slide: slide, rect: offset === 0 ? { width: rect.width * zoom, height: rect.height * zoom } : rect })) : (React.createElement(ImageSlide, { key: slide.src, onLoad: (img) => setImageDimensions({ width: img.naturalWidth, height: img.naturalHeight }), ...slideProps }));
package/dist/types.d.ts CHANGED
@@ -53,7 +53,7 @@ declare const IMAGE_FIT_COVER = "cover";
53
53
  declare const UNKNOWN_ACTION_TYPE = "Unknown action type";
54
54
 
55
55
  /** Lightbox external props */
56
- type LightboxExternalProps = DeepPartial<LightboxProps, "carousel" | "animation" | "controller" | "toolbar">;
56
+ type LightboxExternalProps = DeepPartial<DeepPartial<DeepPartial<LightboxProps, "animation" | "toolbar">, "carousel", "imageProps">, "controller", "ref">;
57
57
  /** Lightbox properties */
58
58
  interface LightboxProps {
59
59
  /** if `true`, the lightbox is open */
@@ -184,6 +184,8 @@ interface CarouselSettings {
184
184
  spacing: LengthOrPercentage;
185
185
  /** `object-fit` setting for image slides */
186
186
  imageFit: ImageFit;
187
+ /** custom image attributes */
188
+ imageProps: Omit<React.ImgHTMLAttributes<HTMLImageElement>, "src" | "alt" | "sizes" | "srcSet" | "onLoad" | "onError" | "onClick">;
187
189
  }
188
190
  type LengthOrPercentage = `${number}px` | `${number}%` | number;
189
191
  /** Animation settings */
@@ -395,11 +397,11 @@ interface PluginProps {
395
397
  /** Lightbox plugin */
396
398
  type Plugin = (props: PluginProps) => void;
397
399
  /** Deep partial utility type */
398
- type DeepPartial<T extends {}, K extends keyof T> = Omit<Partial<T>, K> & {
399
- [P in K]?: DeepPartialValue<T[P]>;
400
+ type DeepPartial<T extends {}, K extends keyof T = keyof T, E extends string = never> = Omit<Partial<T>, K> & {
401
+ [P in K]?: DeepPartialValue<T[P], E>;
400
402
  };
401
- type DeepPartialValue<T> = T extends any[] ? T : T extends (...props: any[]) => any ? T : T extends {} ? {
402
- [P in keyof T]?: P extends "ref" ? T[P] : DeepPartialValue<T[P]>;
403
+ type DeepPartialValue<T, E extends string = never> = T extends any[] ? T : T extends (...props: any[]) => any ? T : T extends {} ? {
404
+ [P in keyof T]?: P extends E ? T[P] : DeepPartialValue<T[P], E>;
403
405
  } : T;
404
406
 
405
407
  export { ACTION_CLOSE, ACTION_NEXT, ACTION_PREV, ACTION_SWIPE, ACTIVE_SLIDE_COMPLETE, ACTIVE_SLIDE_ERROR, ACTIVE_SLIDE_LOADING, ACTIVE_SLIDE_PLAYING, AnimationSettings, Augmentation, CLASS_FLEX_CENTER, CLASS_FULLSIZE, CLASS_NO_SCROLL, CLASS_NO_SCROLL_PADDING, Callback, Callbacks, CarouselSettings, ClickCallbackProps, Component, ComponentProps, ContainerRect, ControllerRef, ControllerSettings, DeepPartial, DeepPartialValue, ELEMENT_BUTTON, ELEMENT_ICON, EVENT_ON_KEY_DOWN, EVENT_ON_KEY_UP, EVENT_ON_POINTER_CANCEL, EVENT_ON_POINTER_DOWN, EVENT_ON_POINTER_LEAVE, EVENT_ON_POINTER_MOVE, EVENT_ON_POINTER_UP, EVENT_ON_WHEEL, EventTypes, GenericSlide, IMAGE_FIT_CONTAIN, IMAGE_FIT_COVER, ImageFit, ImageSource, Labels, LengthOrPercentage, LightboxExternalProps, LightboxProps, LightboxState, LightboxStateSwipeAction, LightboxStateUpdateAction, MODULE_CAROUSEL, MODULE_CONTROLLER, MODULE_NAVIGATION, MODULE_NO_SCROLL, MODULE_PORTAL, MODULE_ROOT, MODULE_TOOLBAR, Module, NavigationAction, Node, PLUGIN_CAPTIONS, PLUGIN_COUNTER, PLUGIN_DOWNLOAD, PLUGIN_FULLSCREEN, PLUGIN_INLINE, PLUGIN_SHARE, PLUGIN_SLIDESHOW, PLUGIN_THUMBNAILS, PLUGIN_ZOOM, Plugin, PluginProps, PortalSettings, Render, RenderFunction, RenderSlideContainerProps, RenderSlideFooterProps, RenderSlideHeaderProps, RenderSlideProps, SLIDE_STATUS_COMPLETE, SLIDE_STATUS_ERROR, SLIDE_STATUS_LOADING, SLIDE_STATUS_PLACEHOLDER, SLIDE_STATUS_PLAYING, Slide, SlideImage, SlideStatus, SlideTypeKey, SlideTypes, Slot, SlotStyles, SlotType, ToolbarButtonKey, ToolbarButtonKeys, ToolbarSettings, UNKNOWN_ACTION_TYPE, VK_ARROW_LEFT, VK_ARROW_RIGHT, VK_ESCAPE, ViewCallbackProps, activeSlideStatus };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yet-another-react-lightbox",
3
- "version": "3.9.1",
3
+ "version": "3.10.1",
4
4
  "description": "Modern React lightbox component",
5
5
  "author": "Igor Danchenko",
6
6
  "license": "MIT",