fontdue-js 2.14.0 → 2.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/__generated__/ShareCartCreateSnapshotMutation.graphql.d.ts +22 -0
  2. package/dist/__generated__/ShareCartCreateSnapshotMutation.graphql.js +84 -0
  3. package/dist/__generated__/StoreModalCartQuery.graphql.d.ts +4 -1
  4. package/dist/__generated__/StoreModalCartQuery.graphql.js +62 -53
  5. package/dist/components/AddToCartBanner/index.js +1 -1
  6. package/dist/components/Cart/CartOrder.d.ts +2 -3
  7. package/dist/components/Cart/CartOrder.js +3 -4
  8. package/dist/components/Cart/CartTotals.js +1 -83
  9. package/dist/components/Cart/Download.js +6 -11
  10. package/dist/components/Cart/EmptyCart.d.ts +2 -3
  11. package/dist/components/Cart/EmptyCart.js +1 -2
  12. package/dist/components/Cart/ShareCart.d.ts +2 -0
  13. package/dist/components/Cart/ShareCart.js +89 -0
  14. package/dist/components/Cart/index.js +10 -16
  15. package/dist/components/CartButton/index.js +0 -14
  16. package/dist/components/ComponentsContext.d.ts +1 -1
  17. package/dist/components/CookieNotification/index.js +10 -16
  18. package/dist/components/FontStyle/index.d.ts +1 -1
  19. package/dist/components/SKUPrice/index.js +1 -1
  20. package/dist/components/SelectField/index.js +2 -1
  21. package/dist/components/StoreModal/StoreModalCart.js +6 -2
  22. package/dist/components/StoreModal/index.js +18 -0
  23. package/dist/components/StripeProvider/index.d.ts +2 -2
  24. package/dist/components/TypeTester/useTypeTesterStyler.d.ts +1 -1
  25. package/dist/components/elements/StoreModalCartLayout/index.d.ts +1 -0
  26. package/dist/components/elements/StoreModalCartLayout/index.js +4 -1
  27. package/dist/components/elements/StoreModalFamily/index.d.ts +4 -4
  28. package/dist/components/useInterval.js +1 -1
  29. package/dist/fontdue.css +6 -6
  30. package/dist/hooks.d.ts +1 -1
  31. package/dist/reducer.d.ts +1 -1
  32. package/package.json +16 -19
  33. package/types/jsx-fix.d.ts +8 -0
@@ -5,97 +5,18 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = CartTotals;
7
7
  var _CartTotals_order2 = _interopRequireDefault(require("../../__generated__/CartTotals_order.graphql"));
8
- var _CartTotalsCreateSnapshotMutation2 = _interopRequireDefault(require("../../__generated__/CartTotalsCreateSnapshotMutation.graphql"));
9
- var _react = _interopRequireWildcard(require("react"));
8
+ var _react = _interopRequireDefault(require("react"));
10
9
  var _reactRelay = require("react-relay");
11
10
  var _relayRuntime = require("relay-runtime");
12
11
  var _Price = _interopRequireDefault(require("../Price"));
13
12
  var _CouponText = _interopRequireDefault(require("../CouponText"));
14
13
  var _Icons = require("../Icons");
15
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
16
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
14
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
18
15
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
19
16
  function percentage(decimalValue) {
20
17
  if (!decimalValue) return null;
21
18
  return `${parseFloat(decimalValue) * 100}%`;
22
19
  }
23
- function ShareCart() {
24
- const environment = (0, _reactRelay.useRelayEnvironment)();
25
- const [isSharing, setIsSharing] = (0, _react.useState)(false);
26
- const [snapshot, setSnapshot] = (0, _react.useState)(null);
27
- const [shareError, setShareError] = (0, _react.useState)(null);
28
- const [copied, setCopied] = (0, _react.useState)(false);
29
- const inputRef = (0, _react.useRef)(null);
30
- const handleShareCart = () => {
31
- setIsSharing(true);
32
- setShareError(null);
33
- (0, _reactRelay.commitMutation)(environment, {
34
- mutation: (_CartTotalsCreateSnapshotMutation2.default.hash && _CartTotalsCreateSnapshotMutation2.default.hash !== "97e00cf77f0cc65bb808123fe5944c02" && console.error("The definition of 'CartTotalsCreateSnapshotMutation' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _CartTotalsCreateSnapshotMutation2.default),
35
- variables: {},
36
- onCompleted: (response, errors) => {
37
- var _response$createOrder;
38
- setIsSharing(false);
39
- if (errors && errors.length > 0) {
40
- setShareError(errors[0].message);
41
- } else if ((_response$createOrder = response.createOrderSnapshot) !== null && _response$createOrder !== void 0 && _response$createOrder.orderSnapshot) {
42
- setSnapshot(response.createOrderSnapshot.orderSnapshot);
43
- } else {
44
- setShareError('Failed to create shareable link');
45
- }
46
- },
47
- onError: error => {
48
- setIsSharing(false);
49
- setShareError(error.message);
50
- }
51
- });
52
- };
53
- (0, _react.useEffect)(() => {
54
- var _inputRef$current;
55
- (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.select();
56
- }, [snapshot]);
57
- const timeout = (0, _react.useRef)(null);
58
- const handleCopyToClipboard = () => {
59
- if (snapshot !== null && snapshot !== void 0 && snapshot.shareUrl) {
60
- navigator.clipboard.writeText(snapshot.shareUrl);
61
- setCopied(true);
62
- if (timeout.current) clearTimeout(timeout.current);
63
- timeout.current = setTimeout(() => {
64
- setCopied(false);
65
- }, 1000);
66
- }
67
- };
68
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, snapshot !== null && snapshot !== void 0 && snapshot.shareUrl && snapshot !== null && snapshot !== void 0 && snapshot.quotePdfUrl ? /*#__PURE__*/_react.default.createElement("div", {
69
- className: "cart__share"
70
- }, /*#__PURE__*/_react.default.createElement("div", {
71
- className: "cart__share-title"
72
- }, "Share your cart"), /*#__PURE__*/_react.default.createElement("div", {
73
- className: "cart__share-url-input-container"
74
- }, /*#__PURE__*/_react.default.createElement("input", {
75
- className: "cart__share-url-input",
76
- ref: inputRef,
77
- value: snapshot.shareUrl ?? '',
78
- readOnly: true,
79
- onClick: e => e.currentTarget.select()
80
- }), /*#__PURE__*/_react.default.createElement("button", {
81
- type: "button",
82
- className: "cart__share__button cart__share__copy-button",
83
- onClick: handleCopyToClipboard,
84
- "data-copied": copied
85
- }, /*#__PURE__*/_react.default.createElement("span", null, "Copy"), /*#__PURE__*/_react.default.createElement(_Icons.Check, null))), /*#__PURE__*/_react.default.createElement("a", {
86
- href: snapshot.quotePdfUrl,
87
- className: "cart__share__button cart__share__pdf-button",
88
- target: "_blank",
89
- rel: "noopener noreferrer"
90
- }, "Download PDF quote")) : /*#__PURE__*/_react.default.createElement("button", {
91
- type: "button",
92
- className: "cart__share__button cart__share__share-button",
93
- onClick: handleShareCart,
94
- disabled: isSharing
95
- }, isSharing ? 'Loading...' : 'Share cart'), shareError && /*#__PURE__*/_react.default.createElement("div", {
96
- className: "cart__share-error"
97
- }, "Cannot share your cart right now. Please try again later."));
98
- }
99
20
  function PriceBlock(_ref) {
100
21
  let {
101
22
  label,
@@ -117,7 +38,6 @@ function PriceBlock(_ref) {
117
38
  }), belowPrice));
118
39
  }
119
40
  function CartTotals(_ref2) {
120
- var _order$total;
121
41
  let {
122
42
  order: orderKey,
123
43
  onRemoveDiscount,
@@ -161,7 +81,5 @@ function CartTotals(_ref2) {
161
81
  label: `Total${order.gstIncluded ? ' including GST' : ''}`,
162
82
  price: order.total,
163
83
  "data-line": "total"
164
- }), /*#__PURE__*/_react.default.createElement(ShareCart, {
165
- key: (_order$total = order.total) === null || _order$total === void 0 ? void 0 : _order$total.amount
166
84
  }));
167
85
  }
@@ -8,7 +8,6 @@ var _DownloadRefetchQuery2 = _interopRequireDefault(require("../../__generated__
8
8
  var _Download_order2 = _interopRequireDefault(require("../../__generated__/Download_order.graphql"));
9
9
  var _reactRelay = require("react-relay");
10
10
  var _react = _interopRequireWildcard(require("react"));
11
- var _Transition = _interopRequireDefault(require("react-transition-group/Transition"));
12
11
  var _ComponentsContext = _interopRequireDefault(require("../ComponentsContext"));
13
12
  var _useInterval = _interopRequireDefault(require("../useInterval"));
14
13
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
@@ -17,8 +16,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
17
16
  const DownloadBase = _ref => {
18
17
  let {
19
18
  order,
20
- dismiss,
21
- status
19
+ dismiss
22
20
  } = _ref;
23
21
  const autoDownloaded = (0, _react.useRef)(false);
24
22
  const downloadForm = (0, _react.useRef)(null);
@@ -33,11 +31,11 @@ const DownloadBase = _ref => {
33
31
  Download
34
32
  } = (0, _react.useContext)(_ComponentsContext.default);
35
33
  if (!Download) return null;
36
- if (status === 'exited') {
34
+ if (!open) {
37
35
  return null;
38
36
  }
39
37
  return /*#__PURE__*/_react.default.createElement(Download, {
40
- open: status === 'entering' || status === 'entered',
38
+ open: true,
41
39
  dismiss: dismiss,
42
40
  order: order,
43
41
  downloadFormRef: downloadForm
@@ -55,14 +53,11 @@ const Download = _ref2 => {
55
53
  id: order.id
56
54
  });
57
55
  }, 2000);
58
- return /*#__PURE__*/_react.default.createElement(_Transition.default, {
59
- in: !dismissed,
60
- timeout: 200
61
- }, status => /*#__PURE__*/_react.default.createElement(DownloadBase, {
56
+ if (dismissed) return null;
57
+ return /*#__PURE__*/_react.default.createElement(DownloadBase, {
62
58
  dismiss: () => setDismissed(true),
63
- status: status,
64
59
  order: order
65
- }));
60
+ });
66
61
  };
67
62
  var _default = (0, _reactRelay.createRefetchContainer)(Download, {
68
63
  order: (_Download_order2.default.hash && _Download_order2.default.hash !== "818f18e6bd304c38233be849d75f36a5" && console.error("The definition of 'Download_order' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _Download_order2.default)
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
- import { TransitionStatus } from 'react-transition-group';
3
2
  interface EmptyCart_props {
4
- status: TransitionStatus;
3
+ open: boolean;
5
4
  }
6
- declare const EmptyCart: ({ status }: EmptyCart_props) => React.JSX.Element;
5
+ declare const EmptyCart: ({ open }: EmptyCart_props) => React.JSX.Element;
7
6
  export default EmptyCart;
@@ -13,10 +13,9 @@ const closeCart = () => ({
13
13
  });
14
14
  const EmptyCart = _ref => {
15
15
  let {
16
- status
16
+ open
17
17
  } = _ref;
18
18
  const dispatch = (0, _reactRedux.useDispatch)();
19
- const open = status === 'entering' || status === 'entered';
20
19
  return /*#__PURE__*/_react.default.createElement("div", {
21
20
  className: "cart",
22
21
  "data-open": open
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export default function ShareCart(): React.JSX.Element;
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = ShareCart;
7
+ var _ShareCartCreateSnapshotMutation2 = _interopRequireDefault(require("../../__generated__/ShareCartCreateSnapshotMutation.graphql"));
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _reactRelay = require("react-relay");
10
+ var _Icons = require("../Icons");
11
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ function ShareCart() {
15
+ const environment = (0, _reactRelay.useRelayEnvironment)();
16
+ const [isSharing, setIsSharing] = (0, _react.useState)(false);
17
+ const [snapshot, setSnapshot] = (0, _react.useState)(null);
18
+ const [shareError, setShareError] = (0, _react.useState)(null);
19
+ const [copied, setCopied] = (0, _react.useState)(false);
20
+ const inputRef = (0, _react.useRef)(null);
21
+ const handleShareCart = () => {
22
+ setIsSharing(true);
23
+ setShareError(null);
24
+ (0, _reactRelay.commitMutation)(environment, {
25
+ mutation: (_ShareCartCreateSnapshotMutation2.default.hash && _ShareCartCreateSnapshotMutation2.default.hash !== "320cfd27011ff030005b0ca1cf90adf7" && console.error("The definition of 'ShareCartCreateSnapshotMutation' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _ShareCartCreateSnapshotMutation2.default),
26
+ variables: {},
27
+ onCompleted: (response, errors) => {
28
+ var _response$createOrder;
29
+ setIsSharing(false);
30
+ if (errors && errors.length > 0) {
31
+ setShareError(errors[0].message);
32
+ } else if ((_response$createOrder = response.createOrderSnapshot) !== null && _response$createOrder !== void 0 && _response$createOrder.orderSnapshot) {
33
+ setSnapshot(response.createOrderSnapshot.orderSnapshot);
34
+ } else {
35
+ setShareError('Failed to create shareable link');
36
+ }
37
+ },
38
+ onError: error => {
39
+ setIsSharing(false);
40
+ setShareError(error.message);
41
+ }
42
+ });
43
+ };
44
+ (0, _react.useEffect)(() => {
45
+ var _inputRef$current;
46
+ (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.select();
47
+ }, [snapshot]);
48
+ const timeout = (0, _react.useRef)(null);
49
+ const handleCopyToClipboard = () => {
50
+ if (snapshot !== null && snapshot !== void 0 && snapshot.shareUrl) {
51
+ navigator.clipboard.writeText(snapshot.shareUrl);
52
+ setCopied(true);
53
+ if (timeout.current) clearTimeout(timeout.current);
54
+ timeout.current = setTimeout(() => {
55
+ setCopied(false);
56
+ }, 1000);
57
+ }
58
+ };
59
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, snapshot !== null && snapshot !== void 0 && snapshot.shareUrl && snapshot !== null && snapshot !== void 0 && snapshot.quotePdfUrl ? /*#__PURE__*/_react.default.createElement("div", {
60
+ className: "cart__share"
61
+ }, /*#__PURE__*/_react.default.createElement("div", {
62
+ className: "cart__share-title"
63
+ }, "Share your cart"), /*#__PURE__*/_react.default.createElement("div", {
64
+ className: "cart__share-url-input-container"
65
+ }, /*#__PURE__*/_react.default.createElement("input", {
66
+ className: "cart__share-url-input",
67
+ ref: inputRef,
68
+ value: snapshot.shareUrl ?? '',
69
+ readOnly: true,
70
+ onClick: e => e.currentTarget.select()
71
+ }), /*#__PURE__*/_react.default.createElement("button", {
72
+ type: "button",
73
+ className: "cart__share__button cart__share__copy-button",
74
+ onClick: handleCopyToClipboard,
75
+ "data-copied": copied
76
+ }, /*#__PURE__*/_react.default.createElement("span", null, "Copy"), /*#__PURE__*/_react.default.createElement(_Icons.Check, null))), /*#__PURE__*/_react.default.createElement("a", {
77
+ href: snapshot.quotePdfUrl,
78
+ className: "cart__share__button cart__share__pdf-button",
79
+ target: "_blank",
80
+ rel: "noopener noreferrer"
81
+ }, "Download PDF quote")) : /*#__PURE__*/_react.default.createElement("button", {
82
+ type: "button",
83
+ className: "cart__share__button cart__share__share-button",
84
+ onClick: handleShareCart,
85
+ disabled: isSharing
86
+ }, isSharing ? 'Loading...' : 'Share cart'), shareError && /*#__PURE__*/_react.default.createElement("div", {
87
+ className: "cart__share-error"
88
+ }, "Cannot share your cart right now. Please try again later."));
89
+ }
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _CartQuery2 = _interopRequireDefault(require("../../__generated__/CartQuery.graphql"));
8
8
  var _react = _interopRequireDefault(require("react"));
9
- var _Transition = _interopRequireDefault(require("react-transition-group/Transition"));
10
9
  var _reactRelay = require("react-relay");
11
10
  var _reactRedux = require("react-redux");
12
11
  var _CartOrder = _interopRequireDefault(require("./CartOrder"));
@@ -21,22 +20,17 @@ function Cart() {
21
20
  const {
22
21
  currentOrder
23
22
  } = viewer;
24
- return /*#__PURE__*/_react.default.createElement(_Transition.default, {
25
- in: cartOpen,
26
- timeout: 200
27
- }, status => {
28
- if (!currentOrder) return /*#__PURE__*/_react.default.createElement(_EmptyCart.default, {
29
- status: status
30
- });
31
- return /*#__PURE__*/_react.default.createElement(_StripeProvider.default, {
32
- viewer: viewer,
33
- providerType: "elements"
34
- }, /*#__PURE__*/_react.default.createElement(_CartOrder.default, {
35
- viewer: viewer,
36
- order: currentOrder,
37
- status: status
38
- }));
23
+ if (!currentOrder) return /*#__PURE__*/_react.default.createElement(_EmptyCart.default, {
24
+ open: cartOpen
39
25
  });
26
+ return /*#__PURE__*/_react.default.createElement(_StripeProvider.default, {
27
+ viewer: viewer,
28
+ providerType: "elements"
29
+ }, /*#__PURE__*/_react.default.createElement(_CartOrder.default, {
30
+ viewer: viewer,
31
+ order: currentOrder,
32
+ open: cartOpen
33
+ }));
40
34
  }
41
35
  var _default = Cart;
42
36
  exports.default = _default;
@@ -89,20 +89,6 @@ function CartButtonComponent(_ref) {
89
89
  // set count only on the client, because on the server it's always gonna be zero
90
90
  setCount(cartButtonCount(orderData));
91
91
  }, [orderData, setCount]);
92
-
93
- // Check for store-modal=open URL parameter and open cart automatically
94
- (0, _react.useEffect)(() => {
95
- if (typeof window !== 'undefined') {
96
- const urlParams = new URLSearchParams(window.location.search);
97
- if (urlParams.get('cart') === 'open') {
98
- dispatch({
99
- type: 'STORE_MODAL_REPLACE',
100
- route: 'cart'
101
- });
102
- dispatch(openCart());
103
- }
104
- }
105
- }, [dispatch]);
106
92
  if (!orderData) return null;
107
93
  if (orderData.stripeCharge && orderData.stripeCharge.paid) return null;
108
94
  const suffixNodes = formatSuffix();
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { type JSX } from 'react';
2
2
  import { Download_order$data } from '../__generated__/Download_order.graphql';
3
3
  export interface Download_moduleProps {
4
4
  open: boolean;
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
- var _Transition = _interopRequireDefault(require("react-transition-group/Transition"));
9
8
  var _store = _interopRequireDefault(require("store"));
10
9
  var _ComponentsContext = _interopRequireDefault(require("../ComponentsContext"));
11
10
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -50,21 +49,18 @@ const GetComponent = _ref2 => {
50
49
  };
51
50
  const CookieNotificationBase = _ref3 => {
52
51
  let {
53
- status,
54
52
  siteTitle,
55
- dismiss
53
+ dismiss,
54
+ open
56
55
  } = _ref3;
57
- if (status === 'exited') {
58
- return null;
59
- }
60
- const open = status === 'entering' || status === 'entered';
61
56
  return /*#__PURE__*/_react.default.createElement(GetComponent, {
62
57
  name: "CookieNotification",
63
- fallback: DefaultCookieNotification
58
+ fallback: DefaultCookieNotification,
59
+ open: open
64
60
  }, Component => /*#__PURE__*/_react.default.createElement(Component, {
65
61
  onDismiss: dismiss,
66
- open: open,
67
- siteTitle: siteTitle
62
+ siteTitle: siteTitle,
63
+ open: open
68
64
  }));
69
65
  };
70
66
  class CookieNotification extends _react.default.Component {
@@ -84,13 +80,11 @@ class CookieNotification extends _react.default.Component {
84
80
  const {
85
81
  dismissed
86
82
  } = this.state;
87
- return /*#__PURE__*/_react.default.createElement(_Transition.default, {
88
- in: !dismissed,
89
- timeout: 200
90
- }, status => /*#__PURE__*/_react.default.createElement(CookieNotificationBase, _extends({
83
+ if (dismissed) return null;
84
+ return /*#__PURE__*/_react.default.createElement(CookieNotificationBase, _extends({
91
85
  dismiss: this.dismiss,
92
- status: status
93
- }, this.props)));
86
+ open: true
87
+ }, this.props));
94
88
  }
95
89
  }
96
90
  exports.default = CookieNotification;
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { type JSX } from 'react';
2
2
  import { FontStyle_fontStyle$key } from '../../__generated__/FontStyle_fontStyle.graphql';
3
3
  interface FontStyleProps {
4
4
  fontStyle: FontStyle_fontStyle$key;
@@ -20,7 +20,7 @@ const getSavingsMultiplier = (state, options) => {
20
20
 
21
21
  // we make it a multiplier since the `collectionSkuIdsDifference`
22
22
  // helper doesnt take license multiplication into account
23
- if (collectionWithSavings) {
23
+ if (collectionWithSavings && baseSkuPrice > 0) {
24
24
  return savingsAmount / baseSkuPrice;
25
25
  }
26
26
  return 1;
@@ -10,7 +10,8 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
10
10
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
11
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
12
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
13
- const Input = props => /*#__PURE__*/_react.default.createElement(_reactSelect.components.Input, _extends({}, props, {
13
+ const InputComponent = _reactSelect.components.Input;
14
+ const Input = props => /*#__PURE__*/_react.default.createElement(InputComponent, _extends({}, props, {
14
15
  autoComplete: "go-away"
15
16
  }));
16
17
  const SelectField = _ref => {
@@ -18,6 +18,7 @@ var _StoreModalOrderVariableSelection = _interopRequireDefault(require("./StoreM
18
18
  var _StoreModalUnifiedCheckout = _interopRequireDefault(require("../elements/StoreModalUnifiedCheckout"));
19
19
  var _StripeProvider = _interopRequireDefault(require("../StripeProvider"));
20
20
  var _utils = require("../Cart/utils");
21
+ var _ShareCart = _interopRequireDefault(require("../Cart/ShareCart"));
21
22
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
22
23
  // @ts-ignore
23
24
 
@@ -26,7 +27,7 @@ const StoreModalCart = _ref => {
26
27
  let {
27
28
  prepared
28
29
  } = _ref;
29
- const data = (0, _reactRelay.usePreloadedQuery)((_StoreModalCartQuery2.default.hash && _StoreModalCartQuery2.default.hash !== "a52c45ea8135e2cdae562683dcbfefdf" && console.error("The definition of 'StoreModalCartQuery' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _StoreModalCartQuery2.default), prepared.cartQuery);
30
+ const data = (0, _reactRelay.usePreloadedQuery)((_StoreModalCartQuery2.default.hash && _StoreModalCartQuery2.default.hash !== "01df757f83a8740dcfa4ed706347ab35" && console.error("The definition of 'StoreModalCartQuery' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _StoreModalCartQuery2.default), prepared.cartQuery);
30
31
  const order = data.viewer.currentOrder;
31
32
  const orderHasItems = ((order === null || order === void 0 ? void 0 : (_order$orderItems = order.orderItems) === null || _order$orderItems === void 0 ? void 0 : _order$orderItems.length) ?? 0) > 0;
32
33
  const checkoutEnabled = (0, _utils.textVariablesAllHaveText)(order);
@@ -34,7 +35,7 @@ const StoreModalCart = _ref => {
34
35
  body: order && orderHasItems ? /*#__PURE__*/_react.default.createElement(_CartState.default, {
35
36
  order: order
36
37
  }, _ref2 => {
37
- var _order$orderItems2;
38
+ var _order$orderItems2, _order$total;
38
39
  let {
39
40
  onUpdateOrderVariableSelections,
40
41
  onRemoveDiscount,
@@ -58,6 +59,9 @@ const StoreModalCart = _ref => {
58
59
  });
59
60
  }),
60
61
  couponCodeInput: !(order && order.discount) && /*#__PURE__*/_react.default.createElement(_CouponCodeInput.default, null),
62
+ shareCart: /*#__PURE__*/_react.default.createElement(_ShareCart.default, {
63
+ key: (_order$total = order.total) === null || _order$total === void 0 ? void 0 : _order$total.amount
64
+ }),
61
65
  totals: /*#__PURE__*/_react.default.createElement(_CartTotals.default, {
62
66
  order: order,
63
67
  onRemoveDiscount: onRemoveDiscount,
@@ -9,10 +9,28 @@ var _react = _interopRequireWildcard(require("react"));
9
9
  var _StoreModalLoader = _interopRequireDefault(require("./StoreModalLoader"));
10
10
  var _StoreModalContainer = _interopRequireDefault(require("./StoreModalContainer"));
11
11
  var _StoreModalRouter = _interopRequireDefault(require("./StoreModalRouter"));
12
+ var _reactRedux = require("react-redux");
12
13
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
14
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
15
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
15
16
  const StoreModal = () => {
17
+ const dispatch = (0, _reactRedux.useDispatch)();
18
+
19
+ // Check for store-modal=open URL parameter and open cart automatically
20
+ (0, _react.useEffect)(() => {
21
+ if (typeof window !== 'undefined') {
22
+ const urlParams = new URLSearchParams(window.location.search);
23
+ if (urlParams.get('cart') === 'open') {
24
+ dispatch({
25
+ type: 'STORE_MODAL_REPLACE',
26
+ route: 'cart'
27
+ });
28
+ dispatch({
29
+ type: 'OPEN_CART'
30
+ });
31
+ }
32
+ }
33
+ }, [dispatch]);
16
34
  return /*#__PURE__*/_react.default.createElement(_StoreModalLoader.default, null, /*#__PURE__*/_react.default.createElement(_react.Suspense, {
17
35
  fallback: null
18
36
  }, /*#__PURE__*/_react.default.createElement(_StoreModalContainer.default, null, /*#__PURE__*/_react.default.createElement(_StoreModalRouter.default, null))));
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { type JSX } from 'react';
2
2
  import { StripeProvider_viewer$key } from '../../__generated__/StripeProvider_viewer.graphql';
3
3
  interface StripeProvider_props {
4
4
  viewer: StripeProvider_viewer$key;
@@ -6,5 +6,5 @@ interface StripeProvider_props {
6
6
  providerType: 'checkout' | 'elements';
7
7
  requireClientSecret?: boolean;
8
8
  }
9
- declare const StripeProvider: ({ viewer, providerType, children, requireClientSecret, }: StripeProvider_props) => React.JSX.Element | null;
9
+ declare const StripeProvider: ({ viewer, providerType, children, requireClientSecret, }: StripeProvider_props) => JSX.Element | null;
10
10
  export default StripeProvider;
@@ -23,7 +23,7 @@ export interface UseTypeTesterStylerProps {
23
23
  variableSettings: VariableSettings | null;
24
24
  }
25
25
  declare const useTypeTesterStyler: ({ size, autofit, autofitOnChange, features, setSize, min, max, truncate, focused, lineHeight, letterSpacing, fontStyles, content, contentEdited, alignment, variableSettings, }: UseTypeTesterStylerProps) => {
26
- ref: import("react").RefObject<HTMLDivElement>;
26
+ ref: import("react").RefObject<HTMLDivElement | null>;
27
27
  style: import("react").CSSProperties;
28
28
  };
29
29
  export default useTypeTesterStyler;
@@ -4,6 +4,7 @@ interface StoreModalCartLayout {
4
4
  children: {
5
5
  items: React.ReactNode;
6
6
  couponCodeInput: React.ReactNode;
7
+ shareCart: React.ReactNode;
7
8
  totals: React.ReactNode;
8
9
  checkout: React.ReactNode;
9
10
  orderVariables?: React.ReactNode;
@@ -14,7 +14,8 @@ const StoreModalCartLayout = _ref => {
14
14
  couponCodeInput,
15
15
  totals,
16
16
  checkout,
17
- orderVariables
17
+ orderVariables,
18
+ shareCart
18
19
  }
19
20
  } = _ref;
20
21
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -28,6 +29,8 @@ const StoreModalCartLayout = _ref => {
28
29
  }, items), /*#__PURE__*/_react.default.createElement("div", {
29
30
  className: "store-modal__cart__coupon-code-input"
30
31
  }, couponCodeInput), /*#__PURE__*/_react.default.createElement("div", {
32
+ className: "store-modal__cart__share"
33
+ }, shareCart), /*#__PURE__*/_react.default.createElement("div", {
31
34
  className: "store-modal__cart__totals"
32
35
  }, totals)), /*#__PURE__*/_react.default.createElement("div", {
33
36
  className: "store-modal__cart__checkout",
@@ -1,11 +1,11 @@
1
1
  import React from 'react';
2
2
  interface StoreModalFamilyProps {
3
3
  children: {
4
- stylesheet: React.ReactElement | null;
4
+ stylesheet: React.ReactElement<any> | null;
5
5
  title: React.ReactNode;
6
- familyButton: React.ReactElement;
7
- bundles?: React.ReactElement[] | null;
8
- styleGroups?: React.ReactElement[][] | null;
6
+ familyButton: React.ReactElement<any>;
7
+ bundles?: React.ReactElement<any>[] | null;
8
+ styleGroups?: React.ReactElement<any>[][] | null;
9
9
  };
10
10
  }
11
11
  declare const StoreModalFamily: React.FunctionComponent<StoreModalFamilyProps>;
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _react = require("react");
8
8
  const useInterval = (callback, delay) => {
9
- const savedCallback = (0, _react.useRef)();
9
+ const savedCallback = (0, _react.useRef)(undefined);
10
10
 
11
11
  // Remember the latest callback.
12
12
  (0, _react.useEffect)(() => {
package/dist/fontdue.css CHANGED
@@ -1289,6 +1289,10 @@ body[data-fontdue-store-modal=open] {
1289
1289
  margin-bottom: 30px;
1290
1290
  }
1291
1291
 
1292
+ .store-modal__cart__totals {
1293
+ grid-column: 2/span 1;
1294
+ }
1295
+
1292
1296
  .store-modal__container__overlay {
1293
1297
  position: fixed;
1294
1298
  top: 0;
@@ -2156,6 +2160,8 @@ body[data-fontdue-store-modal=open] {
2156
2160
  border: 1px solid var(--button_border_color);
2157
2161
  color: var(--button_text_color);
2158
2162
  padding: 10px 20px;
2163
+ width: 100%;
2164
+ text-align: center;
2159
2165
  }
2160
2166
  .cart-additions__expand-button:active, .cart-additions__expand-button:focus {
2161
2167
  outline: none;
@@ -2552,13 +2558,8 @@ body[data-fontdue-store-modal=open] {
2552
2558
  font-size: 22px;
2553
2559
  }
2554
2560
 
2555
- /* Share URL section */
2556
2561
  .cart__share {
2557
- margin-top: 20px;
2558
- margin-bottom: 20px;
2559
- padding-top: 20px;
2560
2562
  width: 100%;
2561
- border-top: 1px solid var(--horizontal_rule_color);
2562
2563
  }
2563
2564
 
2564
2565
  .cart__share-title {
@@ -2639,7 +2640,6 @@ body[data-fontdue-store-modal=open] {
2639
2640
  .cart__share__share-button {
2640
2641
  display: block;
2641
2642
  width: 100%;
2642
- margin-bottom: 60px;
2643
2643
  }
2644
2644
 
2645
2645
  .cart__share__copy-button {
package/dist/hooks.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  /// <reference types="react" />
2
- export declare const useNewPortalElement: () => import("react").MutableRefObject<HTMLDivElement>;
2
+ export declare const useNewPortalElement: () => import("react").RefObject<HTMLDivElement>;
package/dist/reducer.d.ts CHANGED
@@ -97,5 +97,5 @@ export type FontdueAction = {
97
97
  };
98
98
  export declare const collectionSkuIdWithDiscount: (state: FontdueState, skuId: string) => [string, number] | [null, null];
99
99
  declare const reducer: Reducer<FontdueState, FontdueAction>;
100
- export declare function createDefaultStore(config: Config | undefined): import("redux").Store<FontdueState, FontdueAction>;
100
+ export declare function createDefaultStore(config: Config | undefined): import("redux").Store<FontdueState, FontdueAction, unknown>;
101
101
  export default reducer;