fontdue-js 2.13.0 → 2.15.0-alpha1

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 (37) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/__generated__/ShareCartCreateSnapshotMutation.graphql.d.ts +22 -0
  3. package/dist/__generated__/ShareCartCreateSnapshotMutation.graphql.js +84 -0
  4. package/dist/__generated__/StoreModalCartQuery.graphql.d.ts +4 -1
  5. package/dist/__generated__/StoreModalCartQuery.graphql.js +62 -53
  6. package/dist/components/AddToCartBanner/index.js +1 -1
  7. package/dist/components/Cart/CartOrder.d.ts +2 -3
  8. package/dist/components/Cart/CartOrder.js +3 -4
  9. package/dist/components/Cart/CartTotals.js +1 -83
  10. package/dist/components/Cart/Download.js +6 -11
  11. package/dist/components/Cart/EmptyCart.d.ts +2 -3
  12. package/dist/components/Cart/EmptyCart.js +1 -2
  13. package/dist/components/Cart/ShareCart.d.ts +2 -0
  14. package/dist/components/Cart/ShareCart.js +89 -0
  15. package/dist/components/Cart/index.js +10 -16
  16. package/dist/components/CartButton/index.js +0 -14
  17. package/dist/components/ComponentsContext.d.ts +1 -1
  18. package/dist/components/ConfigContext.d.ts +11 -0
  19. package/dist/components/ConfigContext.js +4 -1
  20. package/dist/components/CookieNotification/index.js +10 -16
  21. package/dist/components/FontStyle/index.d.ts +1 -1
  22. package/dist/components/SKUPrice/index.js +1 -1
  23. package/dist/components/SelectField/index.js +2 -1
  24. package/dist/components/StoreModal/StoreModalCart.js +6 -2
  25. package/dist/components/StoreModal/index.js +18 -0
  26. package/dist/components/StripeProvider/index.d.ts +2 -2
  27. package/dist/components/StripeProvider/index.js +5 -1
  28. package/dist/components/TypeTester/useTypeTesterStyler.d.ts +1 -1
  29. package/dist/components/elements/StoreModalCartLayout/index.d.ts +1 -0
  30. package/dist/components/elements/StoreModalCartLayout/index.js +4 -1
  31. package/dist/components/elements/StoreModalFamily/index.d.ts +4 -4
  32. package/dist/components/useInterval.js +1 -1
  33. package/dist/fontdue.css +6 -6
  34. package/dist/hooks.d.ts +1 -1
  35. package/dist/reducer.d.ts +1 -1
  36. package/package.json +16 -19
  37. 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;
@@ -1,13 +1,18 @@
1
1
  import React from 'react';
2
2
  import { TypeTesterConfig } from './TypeTester';
3
3
  import { StoreModalConfig } from './StoreModal/types';
4
+ import { Appearance } from '@stripe/stripe-js';
4
5
  interface FormConfig {
5
6
  checkboxStyle?: 'check' | 'cross';
6
7
  }
8
+ interface StripeConfig {
9
+ appearance?: Appearance;
10
+ }
7
11
  export interface Config {
8
12
  form?: FormConfig;
9
13
  storeModal?: StoreModalConfig;
10
14
  typeTester?: TypeTesterConfig;
15
+ stripe?: StripeConfig;
11
16
  }
12
17
  export declare const makeConfig: (config?: Config) => {
13
18
  typeTester: {
@@ -64,6 +69,9 @@ export declare const makeConfig: (config?: Config) => {
64
69
  indexExcludeTags: string[] | undefined;
65
70
  productLicensesPosition: "top" | "bottom";
66
71
  };
72
+ stripe: {
73
+ appearance: Appearance | null;
74
+ };
67
75
  };
68
76
  declare const _default: React.Context<{
69
77
  typeTester: {
@@ -120,5 +128,8 @@ declare const _default: React.Context<{
120
128
  indexExcludeTags: string[] | undefined;
121
129
  productLicensesPosition: "top" | "bottom";
122
130
  };
131
+ stripe: {
132
+ appearance: Appearance | null;
133
+ };
123
134
  }>;
124
135
  export default _default;
@@ -54,7 +54,7 @@ const makeTypeTesterConfig = config => {
54
54
  };
55
55
  };
56
56
  const makeConfig = config => {
57
- var _config$form, _config$storeModal, _config$storeModal2, _config$storeModal3;
57
+ var _config$form, _config$storeModal, _config$storeModal2, _config$storeModal3, _config$stripe;
58
58
  return {
59
59
  typeTester: makeTypeTesterConfig(config === null || config === void 0 ? void 0 : config.typeTester),
60
60
  form: {
@@ -64,6 +64,9 @@ const makeConfig = config => {
64
64
  indexLayout: (config === null || config === void 0 ? void 0 : (_config$storeModal = config.storeModal) === null || _config$storeModal === void 0 ? void 0 : _config$storeModal.indexLayout) ?? 'styled-aa',
65
65
  indexExcludeTags: config === null || config === void 0 ? void 0 : (_config$storeModal2 = config.storeModal) === null || _config$storeModal2 === void 0 ? void 0 : _config$storeModal2.indexExcludeTags,
66
66
  productLicensesPosition: (config === null || config === void 0 ? void 0 : (_config$storeModal3 = config.storeModal) === null || _config$storeModal3 === void 0 ? void 0 : _config$storeModal3.productLicensesPosition) ?? 'top'
67
+ },
68
+ stripe: {
69
+ appearance: (config === null || config === void 0 ? void 0 : (_config$stripe = config.stripe) === null || _config$stripe === void 0 ? void 0 : _config$stripe.appearance) ?? null
67
70
  }
68
71
  };
69
72
  };
@@ -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;
@@ -11,6 +11,7 @@ var _reactRelay = require("react-relay");
11
11
  var _reactStripeJs = require("@stripe/react-stripe-js");
12
12
  var _stripeJs = require("@stripe/stripe-js");
13
13
  var _utils = require("../../utils");
14
+ var _ConfigContext = _interopRequireDefault(require("../ConfigContext"));
14
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); }
15
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; }
16
17
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -72,8 +73,11 @@ const StripeProvider = _ref => {
72
73
  });
73
74
  });
74
75
  }, [environment]);
76
+ const {
77
+ stripe: config
78
+ } = (0, _react.useContext)(_ConfigContext.default);
75
79
  const options = {
76
- appearance: {
80
+ appearance: config.appearance ?? {
77
81
  theme: 'flat',
78
82
  variables: {
79
83
  borderRadius: '0',
@@ -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",