@jobber/components 3.4.4 → 3.4.6-pre.6

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 (66) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/Autocomplete/Autocomplete.d.ts +1 -0
  3. package/dist/Autocomplete/Menu.d.ts +1 -0
  4. package/dist/Avatar/Avatar.d.ts +1 -0
  5. package/dist/Banner/index.js +15 -18
  6. package/dist/Card/CardHeader.d.ts +1 -0
  7. package/dist/Chips/Chip.d.ts +1 -0
  8. package/dist/Chips/Chips.d.ts +1 -0
  9. package/dist/Chips/InternalChip.d.ts +1 -0
  10. package/dist/Chips/InternalChipDismissible/InternalChipDismissible.d.ts +1 -0
  11. package/dist/Chips/InternalChipDismissible/InternalChipDismissibleInput.d.ts +1 -0
  12. package/dist/Chips/InternalChipMultiSelect.d.ts +1 -0
  13. package/dist/Chips/InternalChipSingleSelect.d.ts +1 -0
  14. package/dist/ConfirmationModal/ConfirmationModal.d.ts +1 -1
  15. package/dist/Countdown/Countdown.d.ts +1 -0
  16. package/dist/DataDump/DataDump.d.ts +1 -0
  17. package/dist/DataTable/Footer.d.ts +1 -0
  18. package/dist/DataTable/Header.d.ts +1 -0
  19. package/dist/DataTable/Pagination.d.ts +1 -0
  20. package/dist/DataTable/SortIcon.d.ts +1 -0
  21. package/dist/DatePicker/DatePickerCustomHeader.d.ts +1 -0
  22. package/dist/Divider/Divider.d.ts +1 -0
  23. package/dist/FormField/FormField.d.ts +1 -0
  24. package/dist/FormField/FormFieldDescription.d.ts +1 -0
  25. package/dist/FormField/FormFieldPostFix.d.ts +1 -0
  26. package/dist/FormatDate/FormatDate.d.ts +1 -0
  27. package/dist/FormatEmail/FormatEmail.d.ts +1 -0
  28. package/dist/FormatFile/FormatFileDeleteButton.d.ts +1 -0
  29. package/dist/FormatFile/InternalThumbnail.d.ts +1 -0
  30. package/dist/FormatRelativeDateTime/FormatRelativeDateTime.d.ts +1 -0
  31. package/dist/FormatTime/FormatTime.d.ts +1 -0
  32. package/dist/Gallery/Gallery.d.ts +1 -0
  33. package/dist/Gallery/index.js +6 -7
  34. package/dist/Icon/Icon.d.ts +1 -0
  35. package/dist/InputAvatar/InputAvatar.d.ts +1 -0
  36. package/dist/InputDate/InputDate.d.ts +1 -0
  37. package/dist/InputEmail/InputEmail.d.ts +1 -0
  38. package/dist/InputFile/InputFile.d.ts +1 -0
  39. package/dist/InputPassword/InputPassword.d.ts +1 -0
  40. package/dist/InputTime/InputTime.d.ts +1 -0
  41. package/dist/InputTime/InputTimeSafari.d.ts +1 -0
  42. package/dist/InputValidation/InputValidation.d.ts +1 -0
  43. package/dist/LightBox/LightBox.d.ts +2 -2
  44. package/dist/LightBox/index.js +12 -3
  45. package/dist/LightBox-4eb2e6f0.js +118 -0
  46. package/dist/List/List.d.ts +1 -0
  47. package/dist/List/List.stories.d.ts +1 -0
  48. package/dist/Markdown/Markdown.d.ts +1 -0
  49. package/dist/Menu/Menu.stories.d.ts +1 -0
  50. package/dist/ProgressBar/ProgressBar.d.ts +1 -0
  51. package/dist/RecurringSelect/CurrentRecurrenceComponent.d.ts +1 -0
  52. package/dist/RecurringSelect/RecurringSelect.d.ts +1 -0
  53. package/dist/RecurringSelect/components/DayOfMonthSelect.d.ts +1 -0
  54. package/dist/RecurringSelect/components/MonthlyDayOfWeekSelect.d.ts +1 -0
  55. package/dist/RecurringSelect/components/MonthlySelect.d.ts +1 -0
  56. package/dist/RecurringSelect/components/WeeklySelect.d.ts +1 -0
  57. package/dist/Select/Select.d.ts +1 -0
  58. package/dist/Spinner/Spinner.d.ts +1 -0
  59. package/dist/StatusLabel/StatusLabel.d.ts +1 -0
  60. package/dist/Switch/Switch.d.ts +1 -0
  61. package/dist/Table/Cells/CellCurrency.d.ts +1 -0
  62. package/dist/Table/Cells/CellNumeric.d.ts +1 -0
  63. package/dist/Toast/Toast.d.ts +1 -0
  64. package/package.json +10 -11
  65. package/rollup.config.js +0 -2
  66. package/dist/LightBox-6aea2128.js +0 -42
package/CHANGELOG.md CHANGED
@@ -3,6 +3,14 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [3.4.5](https://github.com/GetJobber/atlantis/compare/@jobber/components@3.4.4...@jobber/components@3.4.5) (2023-03-06)
7
+
8
+ **Note:** Version bump only for package @jobber/components
9
+
10
+
11
+
12
+
13
+
6
14
  ## [3.4.4](https://github.com/GetJobber/atlantis/compare/@jobber/components@3.4.3...@jobber/components@3.4.4) (2023-03-03)
7
15
 
8
16
  **Note:** Version bump only for package @jobber/components
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { XOR } from "ts-xor";
2
3
  import { GroupOption, Option } from "./Option";
3
4
  import { FormFieldProps } from "../FormField";
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { Option } from "./Option";
2
3
  interface MenuProps {
3
4
  readonly visible: boolean;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { XOR } from "ts-xor";
2
3
  declare type AvatarSize = "base" | "large" | "small";
3
4
  interface AvatarFoundationProps {
@@ -19,8 +19,8 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
19
19
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
20
20
  var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
21
21
 
22
- var css$1 = ":root {\n --flash--inset: var(--space-base);\n --flash--inset--small: var(--space-small);\n}\n\n._364vcgV1m5AeWxKbtAvmwW {\n display: -ms-flexbox;\n display: flex;\n position: relative;\n box-shadow: var(--shadow-base);\n padding: var(--space-base);\n padding: var(--space-base);\n padding: var(--flash--inset);\n color: var(--color-black);\n background-color: var(--color-grey--lightest);\n -ms-flex-align: center;\n align-items: center;\n}\n\n._3vGMT9on-QbjXBlSaiNcgm {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n._2iRHpLiGUYBO-8xY0h00rp {\n -ms-flex-item-align: center;\n align-self: center;\n}\n\n._3GnUCvx5Y7mFbH2Z7IN5U- {\n padding-top: var(--space-smallest);\n padding-right: var(--space-base);\n padding-right: var(--space-base);\n padding-right: var(--flash--inset);\n}\n\n._3vGMT9on-QbjXBlSaiNcgm > * {\n margin-top: var(--space-small);\n margin-top: var(--space-small);\n margin-top: var(--flash--inset--small);\n margin-bottom: var(--space-small);\n margin-bottom: var(--space-small);\n margin-bottom: var(--flash--inset--small);\n}\n\n._3vGMT9on-QbjXBlSaiNcgm > *:first-child {\n margin-top: 0;\n margin-right: var(--space-base);\n}\n\n._3vGMT9on-QbjXBlSaiNcgm > *:last-child {\n margin-bottom: 0;\n}\n\n._1S5EoHZng2ePaBlNMXhUYb ._3vGMT9on-QbjXBlSaiNcgm {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n\n._1S5EoHZng2ePaBlNMXhUYb ._3vGMT9on-QbjXBlSaiNcgm > * {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n._12QzEnq3z7-XCpLmgYARp {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n}\n\n._2MtsHfzp46XdG3BZQtOLm- {\n padding: var(--space-smallest);\n border: none;\n background-color: transparent;\n cursor: pointer;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n -ms-flex: 0;\n flex: 0;\n -ms-flex-item-align: start;\n align-self: flex-start;\n}\n\n._2MtsHfzp46XdG3BZQtOLm-:hover {\n background: rgba(0, 0, 0, 0.025);\n}\n\n._2MtsHfzp46XdG3BZQtOLm-:focus {\n box-shadow: var(--shadow-focus);\n outline: none;\n background: rgba(0, 0, 0, 0.05);\n}\n";
23
- var styles = {"flash":"_364vcgV1m5AeWxKbtAvmwW","bannerContent":"_3vGMT9on-QbjXBlSaiNcgm","bannerChildren":"_2iRHpLiGUYBO-8xY0h00rp","dismissibleSpacing":"_3GnUCvx5Y7mFbH2Z7IN5U-","medium":"_1S5EoHZng2ePaBlNMXhUYb","bannerAction":"_12QzEnq3z7-XCpLmgYARp","closeButton":"_2MtsHfzp46XdG3BZQtOLm-"};
22
+ var css$1 = ".XnQ3RJFzByInxjZ8LTsv8 {\n display: -ms-flexbox;\n display: flex;\n position: relative;\n box-shadow: var(--shadow-base);\n padding: var(--space-base);\n color: var(--color-text);\n background-color: var(--color-surface--background);\n grid-gap: var(--space-small);\n grid-gap: var(--space-small);\n gap: var(--space-small);\n -ms-flex-align: center;\n align-items: center;\n}\n\n._3vGMT9on-QbjXBlSaiNcgm {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n grid-gap: var(--space-small);\n grid-gap: var(--space-small);\n gap: var(--space-small);\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n._2iRHpLiGUYBO-8xY0h00rp {\n -ms-flex-item-align: center;\n align-self: center;\n}\n\n._3vGMT9on-QbjXBlSaiNcgm > *:last-child {\n margin-bottom: 0;\n}\n\n._1S5EoHZng2ePaBlNMXhUYb ._3vGMT9on-QbjXBlSaiNcgm {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n\n._12QzEnq3z7-XCpLmgYARp {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n}\n\n._2MtsHfzp46XdG3BZQtOLm- {\n margin: calc(var(--space-smallest) * -1) 0;\n padding: var(--space-smallest);\n border: none;\n background-color: transparent;\n cursor: pointer;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n -ms-flex: 0;\n flex: 0;\n -ms-flex-item-align: start;\n align-self: flex-start;\n}\n\n._2MtsHfzp46XdG3BZQtOLm-:hover {\n background: rgba(0, 0, 0, 0.025);\n}\n\n._2MtsHfzp46XdG3BZQtOLm-:focus {\n box-shadow: var(--shadow-focus);\n outline: none;\n background: rgba(0, 0, 0, 0.05);\n}\n";
23
+ var styles = {"banner":"XnQ3RJFzByInxjZ8LTsv8","bannerContent":"_3vGMT9on-QbjXBlSaiNcgm","bannerChildren":"_2iRHpLiGUYBO-8xY0h00rp","medium":"_1S5EoHZng2ePaBlNMXhUYb","bannerAction":"_12QzEnq3z7-XCpLmgYARp","closeButton":"_2MtsHfzp46XdG3BZQtOLm-"};
24
24
  styleInject_es.styleInject(css$1);
25
25
 
26
26
  var css = ".nw7Tf4jicBNmfENtxh7tG {\n background-color: var(--color-informative--surface);\n}\n\n/* Our Banner \"surface\" colors should be lighter than they are so we're leaving the following alone for now */\n\n.myY4eq0vr_r4Twz0QcBwu {\n background-color: var(--color-green--lighter);\n}\n\n.eExwEf69eCfam2C6Ekk5D {\n background-color: var(--color-yellow--lighter);\n}\n\n._1U_-uPZepxvaZPO5hh8G4O {\n background-color: var(--color-red--lighter);\n}\n";
@@ -28,21 +28,21 @@ var types = {"notice":"nw7Tf4jicBNmfENtxh7tG","success":"myY4eq0vr_r4Twz0QcBwu",
28
28
  styleInject_es.styleInject(css);
29
29
 
30
30
  function Banner(_a) {
31
- var _b, _c;
32
- var children = _a.children, type = _a.type, primaryAction = _a.primaryAction, _d = _a.dismissible, dismissible = _d === void 0 ? true : _d, onDismiss = _a.onDismiss;
33
- var _e = tslib_es6.__read(React.useState(true), 2), showFlash = _e[0], setShowFlash = _e[1];
31
+ var _b;
32
+ var children = _a.children, type = _a.type, primaryAction = _a.primaryAction, _c = _a.dismissible, dismissible = _c === void 0 ? true : _c, onDismiss = _a.onDismiss;
33
+ var _d = tslib_es6.__read(React.useState(true), 2), showBanner = _d[0], setShowBanner = _d[1];
34
34
  var bannerWidths = {
35
35
  small: 320,
36
36
  medium: 480,
37
37
  };
38
- var _f = tslib_es6.__read(jobberHooks.useResizeObserver({
38
+ var _e = tslib_es6.__read(jobberHooks.useResizeObserver({
39
39
  widths: bannerWidths,
40
- }), 2), bannerRef = _f[0], _g = _f[1].width, bannerWidth = _g === void 0 ? bannerWidths.small : _g;
40
+ }), 2), bannerRef = _e[0], _f = _e[1].width, bannerWidth = _f === void 0 ? bannerWidths.small : _f;
41
41
  var iconColors = {
42
- notice: "lightBlue",
43
- success: "green",
44
- warning: "yellow",
45
- error: "red",
42
+ notice: "informative",
43
+ success: "success",
44
+ warning: "warning",
45
+ error: "critical",
46
46
  };
47
47
  if (primaryAction != undefined) {
48
48
  primaryAction = Object.assign({
@@ -51,14 +51,11 @@ function Banner(_a) {
51
51
  variation: type === "notice" ? "learning" : "work",
52
52
  }, primaryAction);
53
53
  }
54
- var flashClassNames = classnames__default["default"](styles.flash, types[type], (_b = {},
54
+ var bannerClassNames = classnames__default["default"](styles.banner, types[type], (_b = {},
55
55
  _b[styles.medium] = bannerWidth >= bannerWidths.medium,
56
56
  _b));
57
- var contentClassNames = classnames__default["default"](styles.bannerContent, (_c = {},
58
- _c[styles.dismissibleSpacing] = dismissible,
59
- _c));
60
- return (React__default["default"].createElement(React__default["default"].Fragment, null, showFlash && (React__default["default"].createElement("div", { className: flashClassNames, ref: bannerRef, role: type === "error" ? "alert" : "status" },
61
- React__default["default"].createElement("div", { className: contentClassNames },
57
+ return (React__default["default"].createElement(React__default["default"].Fragment, null, showBanner && (React__default["default"].createElement("div", { className: bannerClassNames, ref: bannerRef, role: type === "error" ? "alert" : "status" },
58
+ React__default["default"].createElement("div", { className: styles.bannerContent },
62
59
  React__default["default"].createElement("div", { className: styles.bannerChildren },
63
60
  React__default["default"].createElement(BannerChildren, null, children)),
64
61
  primaryAction && (React__default["default"].createElement("div", { className: styles.bannerAction },
@@ -66,7 +63,7 @@ function Banner(_a) {
66
63
  dismissible && (React__default["default"].createElement("button", { className: styles.closeButton, onClick: handleClose, "aria-label": "Close this notification" },
67
64
  React__default["default"].createElement(Icon.Icon, { name: "cross", color: iconColors[type] })))))));
68
65
  function handleClose() {
69
- setShowFlash(!showFlash);
66
+ setShowBanner(!showBanner);
70
67
  onDismiss && onDismiss();
71
68
  }
72
69
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { CardProps } from "./types";
2
3
  /**
3
4
  * Intended to be used in the Card component.
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { InternalChipProps } from "./ChipTypes";
2
3
  export interface ChipProps extends Pick<InternalChipProps, "label" | "prefix" | "disabled" | "invalid"> {
3
4
  /**
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  import { ChipsProps } from "./ChipsTypes";
2
3
  export declare function Chips(props: ChipsProps): JSX.Element;
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  import { InternalChipProps } from "./ChipTypes";
2
3
  export declare function InternalChip({ label, active, disabled, invalid, prefix, suffix, tabIndex, ariaLabel, onClick, onKeyDown, }: InternalChipProps): JSX.Element;
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  import { InternalChipDismissibleProps } from "./InternalChipDismissibleTypes";
2
3
  export declare function InternalChipDismissible(props: InternalChipDismissibleProps): JSX.Element;
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  import { ChipDismissibleInputProps } from "./InternalChipDismissibleTypes";
2
3
  export declare function InternalChipDismissibleInput(props: ChipDismissibleInputProps): JSX.Element;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { ChipMultiSelectProps } from "./ChipsTypes";
2
3
  declare type InternalChipChoiceMultipleProps = Pick<ChipMultiSelectProps, "selected" | "onChange" | "children" | "onClick">;
3
4
  export declare function InternalChipMultiSelect({ children, selected, onChange, onClick, }: InternalChipChoiceMultipleProps): JSX.Element;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { ChipSingleSelectProps } from "./ChipsTypes";
2
3
  declare type InternalChipChoiceProps = Pick<ChipSingleSelectProps, "selected" | "onChange" | "children" | "onClick" | "name">;
3
4
  export declare function InternalChipSingleSelect({ children, selected, name, onChange, onClick, }: InternalChipChoiceProps): JSX.Element;
@@ -74,5 +74,5 @@ interface StringMessage extends BaseConfirmationModalProps {
74
74
  message: string;
75
75
  children?: never;
76
76
  }
77
- export declare const ConfirmationModal: React.ForwardRefExoticComponent<(SimpleConfirmationModalProps & ChildrenMessage & React.RefAttributes<ConfirmationModalRef>) | (SimpleConfirmationModalProps & StringMessage & React.RefAttributes<ConfirmationModalRef>) | (ComplexConfirmationModalProps & ChildrenMessage & React.RefAttributes<ConfirmationModalRef>) | (ComplexConfirmationModalProps & StringMessage & React.RefAttributes<ConfirmationModalRef>)>;
77
+ export declare const ConfirmationModal: React.ForwardRefExoticComponent<(SimpleConfirmationModalProps & ChildrenMessage & React.RefAttributes<ConfirmationModalRef>) | (SimpleConfirmationModalProps & StringMessage & React.RefAttributes<ConfirmationModalRef>) | (Pick<ComplexConfirmationModalProps & ChildrenMessage, "children" | "size" | "title" | "variation" | "message" | "open" | "onRequestClose" | "onCancel" | "confirmLabel" | "cancelLabel" | "onConfirm"> & React.RefAttributes<ConfirmationModalRef>) | (Pick<ComplexConfirmationModalProps & StringMessage, "children" | "size" | "title" | "variation" | "message" | "open" | "onRequestClose" | "onCancel" | "confirmLabel" | "cancelLabel" | "onConfirm"> & React.RefAttributes<ConfirmationModalRef>)>;
78
78
  export {};
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { CivilDate } from "@std-proposal/temporal";
2
3
  /**
3
4
  * Options for deciding how much information is shown to the user
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  interface DataDebuggerProps {
2
3
  /**
3
4
  * Label for the DataDump
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { Table } from "@tanstack/react-table";
2
3
  export declare type ViewType = "desktop" | "handheld";
3
4
  export interface FooterProps<T> {
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { Row, Table } from "@tanstack/react-table";
2
3
  import { SortingType } from "./types";
3
4
  interface HeaderProps<T> {
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { Table } from "@tanstack/react-table";
2
3
  interface PaginationProps<T> {
3
4
  table: Table<T>;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  export declare enum SortDirection {
2
3
  ascending = 0,
3
4
  descending = 1,
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  import { ReactDatePickerCustomHeaderProps } from "react-datepicker";
2
3
  export declare function DatePickerCustomHeader({ monthDate, decreaseMonth, increaseMonth, prevMonthButtonDisabled, nextMonthButtonDisabled, }: ReactDatePickerCustomHeaderProps): JSX.Element;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  interface DividerProps {
2
3
  /**
3
4
  * The weight of the divider.
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  import { FormFieldProps } from "./FormFieldTypes";
2
3
  export declare function FormField(props: FormFieldProps): JSX.Element;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  interface FormFieldDescriptionProps {
2
3
  readonly id: string;
3
4
  readonly description: string;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  interface FormFieldPostFixProps {
2
3
  readonly variation: "select" | "spinner";
3
4
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { CivilDate } from "@std-proposal/temporal";
2
3
  interface FormatDateProps {
3
4
  /**
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  interface FormatEmailProps {
2
3
  /**
3
4
  * Email address to format
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  interface DeleteButtonProps {
2
3
  size?: "base" | "large";
3
4
  onDelete?: () => void;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { FileUpload } from "../InputFile";
2
3
  interface InternalThumbnailProps {
3
4
  readonly name?: string;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { CivilDateTime } from "@std-proposal/temporal";
2
3
  interface FormatRelativeDateTimeProps {
3
4
  /**
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { CivilTime } from "@std-proposal/temporal";
2
3
  interface FormatTimeProps {
3
4
  /**
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  import { GalleryProps } from "./GalleryTypes";
2
3
  export declare function Gallery({ files, size, max, onDelete }: GalleryProps): JSX.Element;
@@ -6,20 +6,19 @@ var tslib_es6 = require('../tslib.es6-5b50eb8e.js');
6
6
  var React = require('react');
7
7
  var classnames = require('classnames');
8
8
  var styleInject_es = require('../style-inject.es-dcee06b6.js');
9
- var LightBox = require('../LightBox-6aea2128.js');
9
+ var LightBox = require('../LightBox-4eb2e6f0.js');
10
10
  var FormatFile = require('../FormatFile-44fc7b58.js');
11
11
  var Button = require('../Button-cd30df0f.js');
12
- require('react-image-lightbox');
13
- require('react-image-lightbox/style.css');
12
+ require('framer-motion');
13
+ require('react-dom');
14
+ require('lodash/debounce');
15
+ require('@jobber/hooks');
16
+ require('../ButtonDismiss-a9590195.js');
14
17
  require('filesize');
15
18
  require('../ConfirmationModal-e95f46d7.js');
16
- require('@jobber/hooks');
17
19
  require('../Modal-cc3bd7bf.js');
18
- require('react-dom');
19
- require('framer-motion');
20
20
  require('../Heading-a9a66964.js');
21
21
  require('../Typography-fbe0ed6e.js');
22
- require('../ButtonDismiss-a9590195.js');
23
22
  require('../Content-18de5fbb.js');
24
23
  require('../Markdown-b53e0308.js');
25
24
  require('react-markdown');
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { IconColorNames, IconNames, IconSizes } from "@jobber/design";
2
3
  export { IconColorNames, IconNames } from "@jobber/design";
3
4
  export interface IconProps {
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { AvatarProps } from "../Avatar";
2
3
  import { FileUpload, UploadParams } from "../InputFile";
3
4
  interface InputAvatarProps extends Omit<AvatarProps, "size"> {
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { CommonFormFieldProps, FormFieldProps } from "../FormField";
2
3
  interface InputDateProps extends CommonFormFieldProps, Pick<FormFieldProps, "readonly" | "disabled" | "onEnter" | "onFocus" | "inputRef" | "validations" | "placeholder" | "onChange" | "onBlur"> {
3
4
  /**
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { CommonFormFieldProps, FormFieldProps } from "../FormField";
2
3
  declare type InputEmailProps = CommonFormFieldProps & Pick<FormFieldProps, "maxLength" | "readonly" | "validations" | "defaultValue">;
3
4
  export declare const validationMessage = "Please enter a valid email";
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  export interface FileUpload {
2
3
  /**
3
4
  * File Identifier
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { CommonFormFieldProps, FormFieldProps } from "../FormField";
2
3
  interface InputPasswordProps extends CommonFormFieldProps, Pick<FormFieldProps, "autocomplete" | "onEnter" | "onFocus" | "onBlur" | "inputRef" | "validations" | "defaultValue"> {
3
4
  value?: string;
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  import { InputTimeProps } from "./InputTimeProps";
2
3
  export declare function InputTime({ defaultValue, value, onChange, ...params }: InputTimeProps): JSX.Element;
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  import { InputTimeProps } from "./InputTimeProps";
2
3
  export declare function InputTimeSafari({ defaultValue, value, onChange, ...params }: InputTimeProps): JSX.Element;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  interface InputValidationProps {
2
3
  /**
3
4
  * Validation message to be displayed
@@ -1,4 +1,4 @@
1
- import "react-image-lightbox/style.css";
1
+ import React from "react";
2
2
  interface PresentedImage {
3
3
  title?: string;
4
4
  caption?: string;
@@ -33,5 +33,5 @@ interface LightBoxProps {
33
33
  */
34
34
  onRequestClose(options: RequestCloseOptions): void;
35
35
  }
36
- export declare function LightBox({ open, images, imageIndex, onRequestClose, }: LightBoxProps): JSX.Element;
36
+ export declare function LightBox({ open, images, imageIndex, onRequestClose, }: LightBoxProps): React.ReactPortal;
37
37
  export {};
@@ -2,12 +2,21 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var LightBox = require('../LightBox-6aea2128.js');
5
+ var LightBox = require('../LightBox-4eb2e6f0.js');
6
6
  require('../tslib.es6-5b50eb8e.js');
7
7
  require('react');
8
- require('react-image-lightbox');
8
+ require('framer-motion');
9
+ require('react-dom');
10
+ require('lodash/debounce');
11
+ require('@jobber/hooks');
9
12
  require('../style-inject.es-dcee06b6.js');
10
- require('react-image-lightbox/style.css');
13
+ require('../ButtonDismiss-a9590195.js');
14
+ require('../Button-cd30df0f.js');
15
+ require('classnames');
16
+ require('react-router-dom');
17
+ require('../Icon-d5ad1a6d.js');
18
+ require('@jobber/design');
19
+ require('../Typography-fbe0ed6e.js');
11
20
 
12
21
 
13
22
 
@@ -0,0 +1,118 @@
1
+ 'use strict';
2
+
3
+ var tslib_es6 = require('./tslib.es6-5b50eb8e.js');
4
+ var React = require('react');
5
+ var framerMotion = require('framer-motion');
6
+ var ReactDOM = require('react-dom');
7
+ var debounce = require('lodash/debounce');
8
+ var jobberHooks = require('@jobber/hooks');
9
+ var styleInject_es = require('./style-inject.es-dcee06b6.js');
10
+ var ButtonDismiss = require('./ButtonDismiss-a9590195.js');
11
+ var Button = require('./Button-cd30df0f.js');
12
+
13
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
+
15
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
16
+ var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
17
+ var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
18
+
19
+ var css = "._2qgU3ylcPWUJGRthB18cb,\n._27gh3HPkx5J1Ru4Tqp_1tF {\n display: -ms-flexbox;\n display: flex;\n position: absolute;\n top: 50%;\n z-index: var(--elevation-base);\n -webkit-transform: translateY(-50%);\n transform: translateY(-50%);\n}\n\n._2qgU3ylcPWUJGRthB18cb {\n right: var(--space-base);\n}\n\n._27gh3HPkx5J1Ru4Tqp_1tF {\n left: var(--space-base);\n}\n\n._3FuSx2b8rfxjzTQKeVn6MW {\n display: -ms-flexbox;\n display: flex;\n position: fixed;\n top: 0;\n left: 0;\n z-index: var(--elevation-modal);\n width: 100%;\n height: 100%;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n._2gGRj41uQJhcl0zcSNgsOA {\n display: -ms-flexbox;\n display: flex;\n z-index: var(--elevation-base);\n padding: var(--space-small) var(--space-base);\n color: var(--color-text--reverse--secondary);\n font-size: var(--typography--fontSize-large);\n background-color: var(--color-surface--reverse);\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n\n.oyIA3-aR1Fvwn0lpp1Mgx {\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-align: center;\n align-items: center;\n}\n\n._1PPDSsP7v3FAZG3DA--Oq3 {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n position: relative;\n -ms-flex: 1 1 0px;\n flex: 1 1 0;\n min-height: 0;\n}\n\n._23IH8HE3ZATpurQqLyWj-l {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: var(--color-overlay);\n}\n\n._2UNyNw_u8HDWIzzxcSLUU6 {\n position: absolute;\n top: 50%;\n max-width: 100%;\n max-height: 100%;\n margin: auto;\n}\n";
20
+ var styles = {"next":"_2qgU3ylcPWUJGRthB18cb","prev":"_27gh3HPkx5J1Ru4Tqp_1tF","lightboxWrapper":"_3FuSx2b8rfxjzTQKeVn6MW","toolbar":"_2gGRj41uQJhcl0zcSNgsOA","title":"oyIA3-aR1Fvwn0lpp1Mgx","imagesWrapper":"_1PPDSsP7v3FAZG3DA--Oq3","overlay":"_23IH8HE3ZATpurQqLyWj-l","image":"_2UNyNw_u8HDWIzzxcSLUU6"};
21
+ styleInject_es.styleInject(css);
22
+
23
+ var swipeConfidenceThreshold = 10000;
24
+ var swipePower = function (offset, velocity) {
25
+ return Math.abs(offset) * velocity;
26
+ };
27
+ var variants = {
28
+ enter: function (direction) {
29
+ return {
30
+ x: direction > 0 ? 1000 : -1000,
31
+ opacity: 0,
32
+ };
33
+ },
34
+ center: {
35
+ zIndex: 1,
36
+ x: 0,
37
+ opacity: 1,
38
+ },
39
+ exit: function (direction) {
40
+ return {
41
+ zIndex: 0,
42
+ x: direction < 0 ? 1000 : -1000,
43
+ opacity: 0,
44
+ };
45
+ },
46
+ };
47
+ var imageTransition = {
48
+ x: { type: "spring", stiffness: 300, damping: 30 },
49
+ opacity: { duration: 0.2 },
50
+ };
51
+ // A little bit more than the transition's duration
52
+ // We're doing this to prevent a bug from framer-motion
53
+ // https://github.com/framer/motion/issues/1769
54
+ var debounceDuration = 250;
55
+ function LightBox(_a) {
56
+ var open = _a.open, images = _a.images, _b = _a.imageIndex, imageIndex = _b === void 0 ? 0 : _b, onRequestClose = _a.onRequestClose;
57
+ var _c = tslib_es6.__read(React.useState(imageIndex), 2), currentImageIndex = _c[0], setCurrentImageIndex = _c[1];
58
+ var _d = tslib_es6.__read(React.useState(0), 2), direction = _d[0], setDirection = _d[1];
59
+ var lightboxRef = jobberHooks.useFocusTrap(open);
60
+ var debouncedHandleNext = debounce__default["default"](handleMoveNext, debounceDuration);
61
+ var debouncedHandlePrevious = debounce__default["default"](handleMovePrevious, debounceDuration);
62
+ jobberHooks.useRefocusOnActivator(open);
63
+ jobberHooks.useOnKeyDown(handleRequestClose, "Escape");
64
+ jobberHooks.useOnKeyDown(debouncedHandlePrevious, {
65
+ key: "ArrowLeft",
66
+ });
67
+ jobberHooks.useOnKeyDown(debouncedHandleNext, {
68
+ key: "ArrowRight",
69
+ });
70
+ React.useEffect(function () {
71
+ setCurrentImageIndex(imageIndex);
72
+ }, [imageIndex, open]);
73
+ var template = (React__default["default"].createElement(React__default["default"].Fragment, null, open && (React__default["default"].createElement("div", { className: styles.lightboxWrapper, tabIndex: 0, "aria-label": "Lightbox", key: "Lightbox", ref: lightboxRef },
74
+ React__default["default"].createElement("div", { className: styles.toolbar },
75
+ React__default["default"].createElement("span", { className: styles.title }, images[currentImageIndex].title),
76
+ React__default["default"].createElement(ButtonDismiss.ButtonDismiss, { ariaLabel: "Close", onClick: handleRequestClose })),
77
+ React__default["default"].createElement("div", { className: styles.imagesWrapper },
78
+ React__default["default"].createElement(framerMotion.AnimatePresence, { initial: false },
79
+ React__default["default"].createElement(framerMotion.motion.img, { key: currentImageIndex, variants: variants, src: images[currentImageIndex].url, custom: direction, className: styles.image, style: { y: "-50%" }, initial: "enter", animate: "center", exit: "exit", transition: imageTransition, drag: "x", dragConstraints: { left: 0, right: 0 }, dragElastic: 1, onDragEnd: handleOnDragEnd }))),
80
+ React__default["default"].createElement(PreviousButton, { onClick: debouncedHandlePrevious }),
81
+ React__default["default"].createElement(NextButton, { onClick: debouncedHandleNext }),
82
+ React__default["default"].createElement("div", { className: styles.toolbar }, images[currentImageIndex].caption),
83
+ React__default["default"].createElement("div", { className: styles.overlay, onClick: handleRequestClose })))));
84
+ return ReactDOM__default["default"].createPortal(template, document.body);
85
+ function handleMovePrevious() {
86
+ setDirection(-1);
87
+ setCurrentImageIndex((currentImageIndex + images.length - 1) % images.length);
88
+ }
89
+ function handleMoveNext() {
90
+ setDirection(1);
91
+ setCurrentImageIndex((currentImageIndex + 1) % images.length);
92
+ }
93
+ function handleRequestClose() {
94
+ onRequestClose({ lastPosition: currentImageIndex });
95
+ }
96
+ function handleOnDragEnd(event, _a) {
97
+ var offset = _a.offset, velocity = _a.velocity;
98
+ var swipe = swipePower(offset.x, velocity.x);
99
+ if (swipe < -swipeConfidenceThreshold) {
100
+ handleMoveNext();
101
+ }
102
+ else if (swipe > swipeConfidenceThreshold) {
103
+ handleMovePrevious();
104
+ }
105
+ }
106
+ }
107
+ function PreviousButton(_a) {
108
+ var onClick = _a.onClick;
109
+ return (React__default["default"].createElement("div", { className: styles.prev },
110
+ React__default["default"].createElement(Button.Button, { size: "large", variation: "subtle", type: "secondary", icon: "arrowLeft", ariaLabel: "Previous image", onClick: onClick })));
111
+ }
112
+ function NextButton(_a) {
113
+ var onClick = _a.onClick;
114
+ return (React__default["default"].createElement("div", { className: styles.next },
115
+ React__default["default"].createElement(Button.Button, { size: "large", variation: "subtle", type: "secondary", icon: "arrowRight", ariaLabel: "Next image", onClick: onClick })));
116
+ }
117
+
118
+ exports.LightBox = LightBox;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { ListItemProps } from "./ListItem";
2
3
  interface ListProps {
3
4
  /**
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  import { ListItemProps } from "./ListItem";
2
3
  export declare const StorybookListPropsInterface: (_: ListItemProps) => JSX.Element;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  interface MarkdownProps {
2
3
  /**
3
4
  * Rich text content.
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  import { SectionProps } from ".";
2
3
  export declare const StorybookMenuSectionShape: (_: SectionProps) => JSX.Element;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import sizes from "./Sizes.css";
2
3
  interface ProgressBarProps {
3
4
  /**
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { RecurrenceRule } from "./types";
2
3
  interface RecurringSelectProps {
3
4
  disabled?: boolean;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { RecurrenceRule } from "./types";
2
3
  interface RecurringSelectProps {
3
4
  readonly disabled?: boolean;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { DayOfMonth } from "../types";
2
3
  interface DayOfMonthSelectProps {
3
4
  selectedDays: Set<DayOfMonth>;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { WeekDay } from "../types";
2
3
  interface MonthlyDayOfWeekSelectProps {
3
4
  disabled: boolean;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { DurationPeriod } from "../types";
2
3
  interface MonthlySelectProps {
3
4
  disabled: boolean;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { WeekDay } from "../types";
2
3
  interface WeeklySelectProps {
3
4
  disabled: boolean;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { FormFieldProps } from "../FormField";
2
3
  /**
3
4
  * The following is the same as:
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  interface SpinnerProps {
2
3
  /**
3
4
  * Specifies the size of the spinner
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  export declare type StatusType = "success" | "warning" | "critical" | "inactive" | "informative";
2
3
  export interface StatusLabelType {
3
4
  readonly statusLabel: string;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  interface SwitchProps {
2
3
  readonly value?: boolean;
3
4
  /**
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { CurrencyType } from "@jobber/formatters";
2
3
  import { CellNumericProps } from "./CellNumeric";
3
4
  interface CellCurrencyProps extends CellNumericProps {
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  export interface CellNumericProps {
2
3
  value: number | string;
3
4
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { XOR } from "ts-xor";
2
3
  interface BaseToastProps {
3
4
  readonly variation?: "info" | "success" | "error";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jobber/components",
3
- "version": "3.4.4",
3
+ "version": "3.4.6-pre.6+932bbb8b",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -18,9 +18,9 @@
18
18
  "dist/*"
19
19
  ],
20
20
  "dependencies": {
21
- "@jobber/design": "^0.29.3",
22
- "@jobber/formatters": "^0.2.1",
23
- "@jobber/hooks": "^1.13.0",
21
+ "@jobber/design": "^0.29.4-pre.34+932bbb8b",
22
+ "@jobber/formatters": "^0.2.2-pre.34+932bbb8b",
23
+ "@jobber/hooks": "^1.13.1-pre.19+932bbb8b",
24
24
  "@popperjs/core": "^2.0.6",
25
25
  "@std-proposal/temporal": "0.0.1",
26
26
  "@tanstack/react-table": "8.5.13",
@@ -41,7 +41,6 @@
41
41
  "react-datepicker": "^4.10.0",
42
42
  "react-dropzone": "^11.0.2",
43
43
  "react-hook-form": "^6.15.8",
44
- "react-image-lightbox": "^5.1.1",
45
44
  "react-markdown": "^8.0.3",
46
45
  "react-popper": "^2.2.5",
47
46
  "react-router-dom": "~5.2.0",
@@ -53,13 +52,13 @@
53
52
  "@rollup/plugin-commonjs": "^23.0.0",
54
53
  "@rollup/plugin-typescript": "^9.0.1",
55
54
  "@testing-library/jest-dom": "^5.10.1",
56
- "@testing-library/react": "^10.3.0",
55
+ "@testing-library/react": "^14.0.0",
57
56
  "@testing-library/react-hooks": "^7.0.2",
58
57
  "@testing-library/user-event": "^12.0.2",
59
58
  "@types/classnames": "^2.2.7",
60
59
  "@types/glob": "^7.1.1",
61
- "@types/react": "^16.9.43",
62
- "@types/react-dom": "^16.8.4",
60
+ "@types/react": "^18.0.28",
61
+ "@types/react-dom": "^18.0.11",
63
62
  "@types/uuid": "^8.3.3",
64
63
  "autoprefixer": "^9.5.1",
65
64
  "copyfiles": "^2.4.1",
@@ -77,13 +76,13 @@
77
76
  "uuid": "^8.3.2"
78
77
  },
79
78
  "peerDependencies": {
80
- "react": "^16.8.6",
81
- "react-dom": "^16.8.6"
79
+ "react": ">=16.8",
80
+ "react-dom": ">=16.8"
82
81
  },
83
82
  "browserslist": [
84
83
  "last 1 version",
85
84
  "> 1%",
86
85
  "IE 10"
87
86
  ],
88
- "gitHead": "df4f27f66d6c395606d792bc11ccc80ea72c04e6"
87
+ "gitHead": "932bbb8b9dd1cdacc858efb1f7feed546a710d11"
89
88
  }
package/rollup.config.js CHANGED
@@ -50,8 +50,6 @@ export default {
50
50
  "react-countdown",
51
51
  "react-popper",
52
52
  "react-datepicker",
53
- "react-image-lightbox",
54
- "react-image-lightbox/style.css",
55
53
  "react-dropzone",
56
54
  "axios",
57
55
  "filesize",
@@ -1,42 +0,0 @@
1
- 'use strict';
2
-
3
- var tslib_es6 = require('./tslib.es6-5b50eb8e.js');
4
- var React = require('react');
5
- var ExternalLightBox = require('react-image-lightbox');
6
- var styleInject_es = require('./style-inject.es-dcee06b6.js');
7
- require('react-image-lightbox/style.css');
8
-
9
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
-
11
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
- var ExternalLightBox__default = /*#__PURE__*/_interopDefaultLegacy(ExternalLightBox);
13
-
14
- var css = "._23H2TI8rNmnv0zlHOHZooa.ril__outer {\n font-family: var(--typography--fontFamily-normal);\n background-color: transparent;\n}\n\n._23H2TI8rNmnv0zlHOHZooa.ril__outer:before {\n content: \"\";\n display: block;\n width: 100%;\n height: 100%;\n background-color: var(--color-overlay);\n}\n\n._23H2TI8rNmnv0zlHOHZooa.ril__outer .ril__captionContent {\n color: var(--color-greyBlue--lighter);\n}\n\n._23H2TI8rNmnv0zlHOHZooa.ril__outer .ril__toolbarItem {\n color: var(--color-greyBlue--lighter);\n}\n";
15
- var styles = {"wrapper":"_23H2TI8rNmnv0zlHOHZooa"};
16
- styleInject_es.styleInject(css);
17
-
18
- function LightBox(_a) {
19
- var open = _a.open, images = _a.images, _b = _a.imageIndex, imageIndex = _b === void 0 ? 0 : _b, onRequestClose = _a.onRequestClose;
20
- var _c = tslib_es6.__read(React.useState(imageIndex), 2), currentImageIndex = _c[0], setCurrentImageIndex = _c[1];
21
- var nextSrc = undefined;
22
- var prevSrc = undefined;
23
- if (images.length > 1) {
24
- nextSrc = images[(currentImageIndex + 1) % images.length].url;
25
- prevSrc =
26
- images[(currentImageIndex + images.length - 1) % images.length].url;
27
- }
28
- React.useEffect(function () {
29
- setCurrentImageIndex(imageIndex);
30
- }, [imageIndex]);
31
- return (React__default["default"].createElement(React__default["default"].Fragment, null, open && (React__default["default"].createElement(ExternalLightBox__default["default"], { wrapperClassName: styles.wrapper, mainSrc: images[currentImageIndex].url, enableZoom: false, nextSrc: nextSrc, prevSrc: prevSrc, imageTitle: images[currentImageIndex].title, imageCaption: images[currentImageIndex].caption, onCloseRequest: function () {
32
- return onRequestClose({ lastPosition: currentImageIndex });
33
- }, onMovePrevRequest: handleMovePrevious, onMoveNextRequest: handleMoveNext }))));
34
- function handleMovePrevious() {
35
- setCurrentImageIndex((currentImageIndex + images.length - 1) % images.length);
36
- }
37
- function handleMoveNext() {
38
- setCurrentImageIndex((currentImageIndex + 1) % images.length);
39
- }
40
- }
41
-
42
- exports.LightBox = LightBox;