fontdue-js 1.0.1 → 1.2.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.
- package/CHANGELOG.md +16 -0
- package/dist/__generated__/StoreModalReviewQuery.graphql.js +9 -5
- package/dist/__generated__/StoreModalReview_viewer.graphql.js +7 -3
- package/dist/__generated__/TypeTesterFeatures_fontStyle.graphql.d.ts +1 -7
- package/dist/__generated__/TypeTesterFeatures_fontStyle.graphql.js +3 -35
- package/dist/__generated__/TypeTesterFloatingToolbar_testers.graphql.d.ts +1 -1
- package/dist/__generated__/TypeTesterFloatingToolbar_testers.graphql.js +5 -1
- package/dist/__generated__/TypeTester_StyleQuery.graphql.js +14 -9
- package/dist/__generated__/TypeTester_fontStyle.graphql.d.ts +1 -1
- package/dist/__generated__/TypeTester_fontStyle.graphql.js +5 -1
- package/dist/__generated__/TypeTestersIDQuery.graphql.js +14 -9
- package/dist/__generated__/TypeTestersSlugQuery.graphql.js +14 -9
- package/dist/__generated__/useFeaturesData_fontStyle.graphql.d.ts +19 -0
- package/dist/__generated__/useFeaturesData_fontStyle.graphql.js +59 -0
- package/dist/components/CharacterViewer/index.js +4 -4
- package/dist/components/ConfigContext.d.ts +22 -4
- package/dist/components/ConfigContext.js +15 -6
- package/dist/components/SKUPrice/index.js +6 -5
- package/dist/components/StoreModal/StoreModalContainer.js +16 -24
- package/dist/components/StoreModal/StoreModalReview.js +1 -1
- package/dist/components/StoreModalProductSummary/index.js +1 -3
- package/dist/components/TypeTester/TypeTesterFeatures.d.ts +1 -1
- package/dist/components/TypeTester/TypeTesterFeatures.js +21 -36
- package/dist/components/TypeTester/TypeTesterFeaturesButton.d.ts +5 -3
- package/dist/components/TypeTester/TypeTesterFeaturesButton.js +72 -14
- package/dist/components/TypeTester/TypeTesterFloatingToolbar.js +5 -7
- package/dist/components/TypeTester/TypeTesterSlider.d.ts +1 -0
- package/dist/components/TypeTester/TypeTesterSlider.js +2 -1
- package/dist/components/TypeTester/TypeTesterStandalone.js +1 -4
- package/dist/components/TypeTester/TypeTesterState.d.ts +1 -0
- package/dist/components/TypeTester/TypeTesterState.js +7 -0
- package/dist/components/TypeTester/TypeTesterToolbar.d.ts +3 -0
- package/dist/components/TypeTester/TypeTesterToolbar.js +28 -8
- package/dist/components/TypeTester/index.d.ts +12 -1
- package/dist/components/TypeTester/index.js +26 -12
- package/dist/components/TypeTester/useFeaturesData.d.ts +19 -0
- package/dist/components/TypeTester/useFeaturesData.js +52 -0
- package/dist/components/elements/StoreModalContainer/index.d.ts +1 -0
- package/dist/components/elements/StoreModalContainer/index.js +10 -4
- package/dist/components/elements/StoreModalPageContainer/index.d.ts +0 -1
- package/dist/components/elements/StoreModalPageContainer/index.js +1 -4
- package/fontdue.css +81 -27
- package/fontdue.css.map +1 -1
- package/package.json +1 -1
|
@@ -31,41 +31,32 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
31
31
|
|
|
32
32
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
33
33
|
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
text: 'Browse'
|
|
37
|
-
};
|
|
38
|
-
const previous = history[history.length - 1];
|
|
39
|
-
if (!previous) return null;
|
|
40
|
-
|
|
41
|
-
switch (previous.name) {
|
|
34
|
+
const getPageTitle = name => {
|
|
35
|
+
switch (name) {
|
|
42
36
|
case 'index':
|
|
43
|
-
return
|
|
44
|
-
text: 'Browse'
|
|
45
|
-
};
|
|
37
|
+
return 'All collections';
|
|
46
38
|
|
|
47
39
|
case 'product':
|
|
48
|
-
return
|
|
49
|
-
text: 'Buying options'
|
|
50
|
-
};
|
|
40
|
+
return 'Buying options';
|
|
51
41
|
|
|
52
42
|
case 'cart':
|
|
53
|
-
return
|
|
54
|
-
text: 'Edit cart'
|
|
55
|
-
};
|
|
43
|
+
return 'Cart';
|
|
56
44
|
|
|
57
45
|
case 'checkout':
|
|
58
|
-
return
|
|
59
|
-
text: 'Checkout'
|
|
60
|
-
};
|
|
46
|
+
return 'Checkout';
|
|
61
47
|
|
|
62
48
|
case 'review':
|
|
63
|
-
return
|
|
64
|
-
text: 'Review'
|
|
65
|
-
};
|
|
49
|
+
return 'Review';
|
|
66
50
|
}
|
|
67
51
|
};
|
|
68
52
|
|
|
53
|
+
const getBackLink = (history, currentRoute) => {
|
|
54
|
+
if (currentRoute !== 'index' && history.length === 0) return 'All collections';
|
|
55
|
+
const previous = history[history.length - 1];
|
|
56
|
+
if (!previous) return null;
|
|
57
|
+
return getPageTitle(previous.name);
|
|
58
|
+
};
|
|
59
|
+
|
|
69
60
|
const StoreModalContainer = _ref => {
|
|
70
61
|
var _currentOrder$orderIt, _currentOrder, _currentOrder$orderIt2, _settings, _settings2;
|
|
71
62
|
|
|
@@ -124,7 +115,8 @@ const StoreModalContainer = _ref => {
|
|
|
124
115
|
uiFontUrl: (_settings = data.viewer.settings) === null || _settings === void 0 ? void 0 : _settings.uiFontUrl,
|
|
125
116
|
uiFontName: (_settings2 = data.viewer.settings) === null || _settings2 === void 0 ? void 0 : _settings2.uiFontName
|
|
126
117
|
}, {
|
|
127
|
-
backText: link
|
|
118
|
+
backText: link,
|
|
119
|
+
pageTitle: getPageTitle(currentRoute),
|
|
128
120
|
body: /*#__PURE__*/_react.default.createElement(_react.Suspense, {
|
|
129
121
|
fallback: /*#__PURE__*/_react.default.createElement(_StoreModalLoadingScreen.default, null)
|
|
130
122
|
}, children)
|
|
@@ -64,7 +64,7 @@ const StoreModalReview = _ref => {
|
|
|
64
64
|
stripe
|
|
65
65
|
} = _ref;
|
|
66
66
|
const order = (0, _reactRelay.useFragment)(_StoreModalReview_order !== void 0 ? _StoreModalReview_order : (_StoreModalReview_order = require("../../__generated__/StoreModalReview_order.graphql"), _StoreModalReview_order.hash && _StoreModalReview_order.hash !== "c7fc7251b9f1cb7f33e0f7a436498492" && console.error("The definition of 'StoreModalReview_order' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _StoreModalReview_order), orderKey);
|
|
67
|
-
const viewer = (0, _reactRelay.useFragment)(_StoreModalReview_viewer !== void 0 ? _StoreModalReview_viewer : (_StoreModalReview_viewer = require("../../__generated__/StoreModalReview_viewer.graphql"), _StoreModalReview_viewer.hash && _StoreModalReview_viewer.hash !== "
|
|
67
|
+
const viewer = (0, _reactRelay.useFragment)(_StoreModalReview_viewer !== void 0 ? _StoreModalReview_viewer : (_StoreModalReview_viewer = require("../../__generated__/StoreModalReview_viewer.graphql"), _StoreModalReview_viewer.hash && _StoreModalReview_viewer.hash !== "9136dd09437ff0102d8235b72b9b5c66" && console.error("The definition of 'StoreModalReview_viewer' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _StoreModalReview_viewer), viewerKey);
|
|
68
68
|
const dispatch = (0, _reactRedux.useDispatch)();
|
|
69
69
|
const [completing, setCompleting] = (0, _react.useState)(false);
|
|
70
70
|
const [error, setError] = (0, _react.useState)(null);
|
|
@@ -134,9 +134,7 @@ const StoreModalProductSummary = _ref => {
|
|
|
134
134
|
const hasSelection = anySkusSelected && licenseOptions.length > 0;
|
|
135
135
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
136
136
|
className: "store-modal__product-summary__container"
|
|
137
|
-
}, hasSelection ? viewer.precart.subtotal ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("
|
|
138
|
-
className: "store-modal__product-summary__label"
|
|
139
|
-
}, "Your selection"), /*#__PURE__*/_react.default.createElement("div", {
|
|
137
|
+
}, hasSelection ? viewer.precart.subtotal ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
140
138
|
className: "store-modal__product-summary__selection-text"
|
|
141
139
|
}, (0, _utils.pluralize)(countStyles(viewer), 'style'), ' for ', viewer.precart.subtotal.amount < stylesPrice && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
|
|
142
140
|
className: "store-modal__product-summary__styles-price"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TypeTesterFeatures_fontStyle } from '
|
|
1
|
+
import { TypeTesterFeatures_fontStyle } from '__generated__/TypeTesterFeatures_fontStyle.graphql';
|
|
2
2
|
interface TypeTesterFeatures_props {
|
|
3
3
|
id: string;
|
|
4
4
|
fontStyle: TypeTesterFeatures_fontStyle;
|
|
@@ -9,8 +9,6 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _reactRelay = require("react-relay");
|
|
11
11
|
|
|
12
|
-
var _features = _interopRequireDefault(require("./features"));
|
|
13
|
-
|
|
14
12
|
var _TypeTesterBullet = _interopRequireDefault(require("../TypeTester/TypeTesterBullet"));
|
|
15
13
|
|
|
16
14
|
var _TypeTesterState = _interopRequireDefault(require("./TypeTesterState"));
|
|
@@ -19,7 +17,9 @@ var _Checkbox = _interopRequireDefault(require("../Checkbox"));
|
|
|
19
17
|
|
|
20
18
|
var _ConfigContext = _interopRequireDefault(require("../ConfigContext"));
|
|
21
19
|
|
|
22
|
-
var
|
|
20
|
+
var _useFeaturesData = _interopRequireDefault(require("./useFeaturesData"));
|
|
21
|
+
|
|
22
|
+
var _TypeTesterFeatures_fontStyle;
|
|
23
23
|
|
|
24
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
25
|
|
|
@@ -63,57 +63,42 @@ function useHeightAnimation() {
|
|
|
63
63
|
};
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
const shouldIncludeFeature = (supportedFeatures, feature) =>
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
let {
|
|
70
|
-
featureName
|
|
71
|
-
} = _ref;
|
|
72
|
-
return featureName === feature;
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
const getFeatureName = (feature, stylisticSetNames) => {
|
|
76
|
-
const stylisticSetName = getStylisticSetName(feature, stylisticSetNames);
|
|
77
|
-
|
|
78
|
-
if (stylisticSetName) {
|
|
79
|
-
return stylisticSetName.humanName;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
if (_features.default.hasOwnProperty(feature)) {
|
|
83
|
-
return _features.default[feature];
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
return null;
|
|
66
|
+
const shouldIncludeFeature = (supportedFeatures, feature) => {
|
|
67
|
+
if (!supportedFeatures) return false;
|
|
68
|
+
return supportedFeatures.indexOf(feature) >= 0;
|
|
87
69
|
};
|
|
88
70
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
const TypeTesterFeatures = _ref2 => {
|
|
71
|
+
const TypeTesterFeatures = _ref => {
|
|
92
72
|
var _config$openTypeFeatu, _config$openTypeFeatu2, _config$openTypeFeatu3, _config$openTypeFeatu4;
|
|
93
73
|
|
|
94
74
|
let {
|
|
95
75
|
id,
|
|
96
76
|
fontStyle,
|
|
97
77
|
features: showFeatures
|
|
98
|
-
} =
|
|
78
|
+
} = _ref;
|
|
99
79
|
const {
|
|
100
80
|
typeTester: config
|
|
101
81
|
} = (0, _react.useContext)(_ConfigContext.default);
|
|
102
82
|
const {
|
|
103
|
-
features,
|
|
83
|
+
features: selectedFeatures,
|
|
104
84
|
toggleFeature,
|
|
105
85
|
featuresOpen
|
|
106
86
|
} = (0, _TypeTesterState.default)({
|
|
107
87
|
id
|
|
108
88
|
});
|
|
109
89
|
const selectionStyle = config.openTypeFeatures.selectionStyle;
|
|
90
|
+
const {
|
|
91
|
+
featureNames,
|
|
92
|
+
fontFeatures
|
|
93
|
+
} = (0, _useFeaturesData.default)({
|
|
94
|
+
fontStyle,
|
|
95
|
+
features: showFeatures
|
|
96
|
+
});
|
|
110
97
|
|
|
111
98
|
const renderFeature = feature => {
|
|
112
|
-
var _fontStyle$fontFeatur;
|
|
113
|
-
|
|
114
99
|
const featureCode = typeof feature === 'string' ? feature : feature.code;
|
|
115
|
-
const featureName = typeof feature === 'string' ?
|
|
116
|
-
const checked =
|
|
100
|
+
const featureName = typeof feature === 'string' ? featureNames[featureCode] : feature.name;
|
|
101
|
+
const checked = selectedFeatures.indexOf(featureCode) >= 0;
|
|
117
102
|
return /*#__PURE__*/_react.default.createElement("button", {
|
|
118
103
|
key: featureCode,
|
|
119
104
|
className: "type-tester__features__button",
|
|
@@ -140,9 +125,9 @@ const TypeTesterFeatures = _ref2 => {
|
|
|
140
125
|
style: {
|
|
141
126
|
'--grid-range': columnConfig.range
|
|
142
127
|
}
|
|
143
|
-
}, columnConfig.features.filter(feature => shouldIncludeFeature(
|
|
128
|
+
}, columnConfig.features.filter(feature => shouldIncludeFeature(fontFeatures === null || fontFeatures === void 0 ? void 0 : fontFeatures.supportedFeatures, typeof feature === 'string' ? feature : feature.code)).map(renderFeature))));
|
|
144
129
|
} else {
|
|
145
|
-
featuresColumns = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, showFeatures.filter(feature => shouldIncludeFeature(
|
|
130
|
+
featuresColumns = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, showFeatures.filter(feature => shouldIncludeFeature(fontFeatures === null || fontFeatures === void 0 ? void 0 : fontFeatures.supportedFeatures, feature)).map(renderFeature));
|
|
146
131
|
}
|
|
147
132
|
|
|
148
133
|
const {
|
|
@@ -167,7 +152,7 @@ const TypeTesterFeatures = _ref2 => {
|
|
|
167
152
|
};
|
|
168
153
|
|
|
169
154
|
var _default = (0, _reactRelay.createFragmentContainer)(TypeTesterFeatures, {
|
|
170
|
-
fontStyle: _TypeTesterFeatures_fontStyle !== void 0 ? _TypeTesterFeatures_fontStyle : (_TypeTesterFeatures_fontStyle = require("../../__generated__/TypeTesterFeatures_fontStyle.graphql"), _TypeTesterFeatures_fontStyle.hash && _TypeTesterFeatures_fontStyle.hash !== "
|
|
155
|
+
fontStyle: _TypeTesterFeatures_fontStyle !== void 0 ? _TypeTesterFeatures_fontStyle : (_TypeTesterFeatures_fontStyle = require("../../__generated__/TypeTesterFeatures_fontStyle.graphql"), _TypeTesterFeatures_fontStyle.hash && _TypeTesterFeatures_fontStyle.hash !== "25582c33916ebaadd2f674b1d0b6bf4b" && console.error("The definition of 'TypeTesterFeatures_fontStyle' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _TypeTesterFeatures_fontStyle)
|
|
171
156
|
});
|
|
172
157
|
|
|
173
158
|
exports.default = _default;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { useFeaturesData_fontStyle$key } from '__generated__/useFeaturesData_fontStyle.graphql';
|
|
2
3
|
interface TypeTesterFeaturesButton_props {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
id: string;
|
|
5
|
+
fontStyle: useFeaturesData_fontStyle$key;
|
|
6
|
+
onNeedsRefocus?: () => void;
|
|
7
|
+
features: readonly string[] | null | undefined;
|
|
6
8
|
}
|
|
7
9
|
declare const TypeTesterFeaturesButton: React.FC<TypeTesterFeaturesButton_props>;
|
|
8
10
|
export default TypeTesterFeaturesButton;
|
|
@@ -5,31 +5,89 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
var _react =
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
|
|
10
|
+
var _ConfigContext = _interopRequireDefault(require("../ConfigContext"));
|
|
9
11
|
|
|
10
12
|
var _CarrotDown = _interopRequireDefault(require("../Icons/CarrotDown"));
|
|
11
13
|
|
|
12
14
|
var _CarrotUp = _interopRequireDefault(require("../Icons/CarrotUp"));
|
|
13
15
|
|
|
16
|
+
var _Select = _interopRequireDefault(require("../Select"));
|
|
17
|
+
|
|
18
|
+
var _TypeTesterState = _interopRequireDefault(require("./TypeTesterState"));
|
|
19
|
+
|
|
20
|
+
var _useFeaturesData = _interopRequireDefault(require("./useFeaturesData"));
|
|
21
|
+
|
|
14
22
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
23
|
|
|
24
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
25
|
+
|
|
26
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
27
|
+
|
|
16
28
|
const TypeTesterFeaturesButton = _ref => {
|
|
17
29
|
let {
|
|
30
|
+
id,
|
|
31
|
+
fontStyle,
|
|
32
|
+
onNeedsRefocus,
|
|
33
|
+
features: showFeatures
|
|
34
|
+
} = _ref;
|
|
35
|
+
const {
|
|
36
|
+
typeTester: config
|
|
37
|
+
} = (0, _react.useContext)(_ConfigContext.default);
|
|
38
|
+
const {
|
|
18
39
|
featuresOpen,
|
|
40
|
+
toggleFeaturesOpen,
|
|
19
41
|
features,
|
|
20
|
-
|
|
21
|
-
} =
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
|
|
42
|
+
setFeatures
|
|
43
|
+
} = (0, _TypeTesterState.default)({
|
|
44
|
+
id
|
|
45
|
+
});
|
|
46
|
+
const selectedFeature = features[0];
|
|
47
|
+
const {
|
|
48
|
+
featureNames
|
|
49
|
+
} = (0, _useFeaturesData.default)({
|
|
50
|
+
fontStyle,
|
|
51
|
+
features
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
if (config.openTypeFeatures.interactionStyle === 'panel') {
|
|
55
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
56
|
+
className: "type-tester__features-button",
|
|
57
|
+
"data-features-open": featuresOpen,
|
|
58
|
+
"data-features-selected": features.length || 0
|
|
59
|
+
}, /*#__PURE__*/_react.default.createElement("button", {
|
|
60
|
+
className: "type-tester__features-button__button",
|
|
61
|
+
type: "button",
|
|
62
|
+
onClick: () => toggleFeaturesOpen()
|
|
63
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
64
|
+
className: "type-tester__features-button__text"
|
|
65
|
+
}, "OT Features"), ' ', featuresOpen ? /*#__PURE__*/_react.default.createElement(_CarrotUp.default, null) : /*#__PURE__*/_react.default.createElement(_CarrotDown.default, null)));
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (config.openTypeFeatures.interactionStyle === 'select') {
|
|
69
|
+
if (!showFeatures || showFeatures.length === 0) return null;
|
|
70
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
71
|
+
className: "type-tester__features-select"
|
|
72
|
+
}, /*#__PURE__*/_react.default.createElement(_Select.default, {
|
|
73
|
+
value: selectedFeature !== null && selectedFeature !== void 0 ? selectedFeature : '',
|
|
74
|
+
options: [{
|
|
75
|
+
value: '',
|
|
76
|
+
text: 'OT Features'
|
|
77
|
+
}].concat(showFeatures.map(feature => ({
|
|
78
|
+
value: feature,
|
|
79
|
+
text: featureNames[feature]
|
|
80
|
+
}))),
|
|
81
|
+
onChange: e => {
|
|
82
|
+
setFeatures(e.target.value === '' ? [] : [e.target.value]);
|
|
83
|
+
onNeedsRefocus === null || onNeedsRefocus === void 0 ? void 0 : onNeedsRefocus();
|
|
84
|
+
},
|
|
85
|
+
onClick: e => e.stopPropagation(),
|
|
86
|
+
onMouseDown: e => e.stopPropagation()
|
|
87
|
+
}));
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
return null;
|
|
33
91
|
};
|
|
34
92
|
|
|
35
93
|
var _default = TypeTesterFeaturesButton;
|
|
@@ -9,8 +9,6 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _reactRelay = require("react-relay");
|
|
11
11
|
|
|
12
|
-
var _ConfigContext = _interopRequireDefault(require("../ConfigContext"));
|
|
13
|
-
|
|
14
12
|
var _TypeTesterContext = require("./TypeTesterContext");
|
|
15
13
|
|
|
16
14
|
var _TypeTesterFeatures = _interopRequireDefault(require("./TypeTesterFeatures"));
|
|
@@ -33,7 +31,6 @@ const TypeTesterFloatingToolbar = _ref => {
|
|
|
33
31
|
features,
|
|
34
32
|
onToolbarOpenClose
|
|
35
33
|
} = _ref;
|
|
36
|
-
const config = (0, _react.useContext)(_ConfigContext.default);
|
|
37
34
|
const {
|
|
38
35
|
testers
|
|
39
36
|
} = (0, _react.useContext)(_TypeTesterContext.TypeTesterContext);
|
|
@@ -75,10 +72,11 @@ const TypeTesterFloatingToolbar = _ref => {
|
|
|
75
72
|
className: "type-tester__floating-toolbar",
|
|
76
73
|
onMouseDown: e => e.preventDefault(),
|
|
77
74
|
"data-open": activeId && open
|
|
78
|
-
}, activeId && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_TypeTesterToolbar.default, {
|
|
75
|
+
}, activeId && fontStyle && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_TypeTesterToolbar.default, {
|
|
79
76
|
id: activeId,
|
|
80
|
-
features: features
|
|
81
|
-
|
|
77
|
+
features: features,
|
|
78
|
+
fontStyle: fontStyle
|
|
79
|
+
}), features && /*#__PURE__*/_react.default.createElement(_TypeTesterFeatures.default, {
|
|
82
80
|
id: activeId,
|
|
83
81
|
features: features,
|
|
84
82
|
fontStyle: fontStyle
|
|
@@ -86,7 +84,7 @@ const TypeTesterFloatingToolbar = _ref => {
|
|
|
86
84
|
};
|
|
87
85
|
|
|
88
86
|
var _default = (0, _reactRelay.createFragmentContainer)(TypeTesterFloatingToolbar, {
|
|
89
|
-
testers: _TypeTesterFloatingToolbar_testers !== void 0 ? _TypeTesterFloatingToolbar_testers : (_TypeTesterFloatingToolbar_testers = require("../../__generated__/TypeTesterFloatingToolbar_testers.graphql"), _TypeTesterFloatingToolbar_testers.hash && _TypeTesterFloatingToolbar_testers.hash !== "
|
|
87
|
+
testers: _TypeTesterFloatingToolbar_testers !== void 0 ? _TypeTesterFloatingToolbar_testers : (_TypeTesterFloatingToolbar_testers = require("../../__generated__/TypeTesterFloatingToolbar_testers.graphql"), _TypeTesterFloatingToolbar_testers.hash && _TypeTesterFloatingToolbar_testers.hash !== "3b87269ef35fe6c6cfabcc7a2e330a3c" && console.error("The definition of 'TypeTesterFloatingToolbar_testers' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _TypeTesterFloatingToolbar_testers)
|
|
90
88
|
});
|
|
91
89
|
|
|
92
90
|
exports.default = _default;
|
|
@@ -49,6 +49,7 @@ const TypeTesterSlider = _ref => {
|
|
|
49
49
|
let {
|
|
50
50
|
min,
|
|
51
51
|
max,
|
|
52
|
+
stepSize,
|
|
52
53
|
value,
|
|
53
54
|
onChange
|
|
54
55
|
} = _ref;
|
|
@@ -59,7 +60,7 @@ const TypeTesterSlider = _ref => {
|
|
|
59
60
|
} = (0, _reactRanger.useRanger)({
|
|
60
61
|
min,
|
|
61
62
|
max,
|
|
62
|
-
stepSize
|
|
63
|
+
stepSize,
|
|
63
64
|
values: [value],
|
|
64
65
|
onChange: handleChange,
|
|
65
66
|
onDrag: handleChange,
|
|
@@ -67,10 +67,7 @@ const TypeTesterStandalone = _ref => {
|
|
|
67
67
|
features: (_features$split = features === null || features === void 0 ? void 0 : features.split(',')) !== null && _features$split !== void 0 ? _features$split : [],
|
|
68
68
|
direction: direction === 'rtl' ? 'rtl' : 'ltr',
|
|
69
69
|
productId: (_props$viewer$fontSty3 = (_props$viewer2 = props.viewer) === null || _props$viewer2 === void 0 ? void 0 : (_props$viewer2$fontSt = _props$viewer2.fontStyle) === null || _props$viewer2$fontSt === void 0 ? void 0 : (_props$viewer2$fontSt2 = _props$viewer2$fontSt.family) === null || _props$viewer2$fontSt2 === void 0 ? void 0 : (_props$viewer2$fontSt3 = _props$viewer2$fontSt2.parent) === null || _props$viewer2$fontSt3 === void 0 ? void 0 : _props$viewer2$fontSt3.id) !== null && _props$viewer$fontSty3 !== void 0 ? _props$viewer$fontSty3 : (_props$viewer3 = props.viewer) === null || _props$viewer3 === void 0 ? void 0 : (_props$viewer3$fontSt = _props$viewer3.fontStyle) === null || _props$viewer3$fontSt === void 0 ? void 0 : (_props$viewer3$fontSt2 = _props$viewer3$fontSt.family) === null || _props$viewer3$fontSt2 === void 0 ? void 0 : _props$viewer3$fontSt2.id,
|
|
70
|
-
|
|
71
|
-
groupEdit: false,
|
|
72
|
-
buyButton: false
|
|
73
|
-
},
|
|
70
|
+
groupEdit: false,
|
|
74
71
|
onFocus: onFocus,
|
|
75
72
|
onBlur: onBlur
|
|
76
73
|
})));
|
|
@@ -16,6 +16,7 @@ interface TypeTesterState {
|
|
|
16
16
|
focused: boolean;
|
|
17
17
|
setFocused: (value: boolean) => void;
|
|
18
18
|
features: string[];
|
|
19
|
+
setFeatures: (value: string[]) => void;
|
|
19
20
|
toggleFeature: (value: string) => void;
|
|
20
21
|
featuresOpen: boolean;
|
|
21
22
|
toggleFeaturesOpen: (value?: boolean) => void;
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { useFeaturesData_fontStyle$key } from '__generated__/useFeaturesData_fontStyle.graphql';
|
|
2
3
|
interface TypeTesterToolbar_props {
|
|
3
4
|
id: string;
|
|
4
5
|
features: readonly string[] | null | undefined;
|
|
6
|
+
fontStyle: useFeaturesData_fontStyle$key;
|
|
7
|
+
onNeedsRefocus?: () => void;
|
|
5
8
|
}
|
|
6
9
|
declare const TypeTesterToolbar: React.FC<TypeTesterToolbar_props>;
|
|
7
10
|
export default TypeTesterToolbar;
|
|
@@ -30,7 +30,9 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
30
30
|
const TypeTesterToolbar = _ref => {
|
|
31
31
|
let {
|
|
32
32
|
id,
|
|
33
|
-
features
|
|
33
|
+
features,
|
|
34
|
+
fontStyle,
|
|
35
|
+
onNeedsRefocus
|
|
34
36
|
} = _ref;
|
|
35
37
|
const {
|
|
36
38
|
typeTester: config
|
|
@@ -43,17 +45,35 @@ const TypeTesterToolbar = _ref => {
|
|
|
43
45
|
onMouseDown: e => e.preventDefault()
|
|
44
46
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
45
47
|
className: "type-tester__slider"
|
|
46
|
-
}, config.
|
|
47
|
-
|
|
48
|
-
|
|
48
|
+
}, config.size.label && /*#__PURE__*/_react.default.createElement("span", {
|
|
49
|
+
className: "type-tester__slider__size-label"
|
|
50
|
+
}, config.size.label), config.textInput && /*#__PURE__*/_react.default.createElement(_TypeTesterInput.default, {
|
|
51
|
+
min: config.size.min,
|
|
52
|
+
max: config.size.max,
|
|
49
53
|
value: props.size,
|
|
50
54
|
onChange: props.setSize
|
|
51
55
|
}), /*#__PURE__*/_react.default.createElement(_TypeTesterSlider.default, {
|
|
52
|
-
min: config.min,
|
|
53
|
-
max: config.max,
|
|
56
|
+
min: config.size.min,
|
|
57
|
+
max: config.size.max,
|
|
54
58
|
value: props.size,
|
|
55
|
-
onChange: props.setSize
|
|
56
|
-
|
|
59
|
+
onChange: props.setSize,
|
|
60
|
+
stepSize: 1
|
|
61
|
+
}), config.lineHeight && /*#__PURE__*/_react.default.createElement("div", {
|
|
62
|
+
className: "type-tester__slider__line-height"
|
|
63
|
+
}, config.lineHeight.label && /*#__PURE__*/_react.default.createElement("span", {
|
|
64
|
+
className: "type-tester__slider__line-height-label"
|
|
65
|
+
}, config.lineHeight.label), /*#__PURE__*/_react.default.createElement(_TypeTesterSlider.default, {
|
|
66
|
+
min: config.lineHeight.min,
|
|
67
|
+
max: config.lineHeight.max,
|
|
68
|
+
value: props.lineHeight,
|
|
69
|
+
onChange: props.setLineHeight,
|
|
70
|
+
stepSize: 0.01
|
|
71
|
+
}))), Boolean(features === null || features === void 0 ? void 0 : features.length) && /*#__PURE__*/_react.default.createElement(_TypeTesterFeaturesButton.default, {
|
|
72
|
+
id: id,
|
|
73
|
+
fontStyle: fontStyle,
|
|
74
|
+
onNeedsRefocus: onNeedsRefocus,
|
|
75
|
+
features: features
|
|
76
|
+
}), config.alignmentButtons && /*#__PURE__*/_react.default.createElement(_TypeTesterAlignButtons.default, props), config.groupEdit && /*#__PURE__*/_react.default.createElement(_TypeTesterEditAll.default, props));
|
|
57
77
|
};
|
|
58
78
|
|
|
59
79
|
var _default = TypeTesterToolbar;
|
|
@@ -19,6 +19,7 @@ export interface TypeTesterConfig {
|
|
|
19
19
|
priceText?: boolean;
|
|
20
20
|
autofitOnChange?: boolean;
|
|
21
21
|
openTypeFeatures?: {
|
|
22
|
+
interactionStyle: 'panel' | 'select';
|
|
22
23
|
columns?: {
|
|
23
24
|
features: ({
|
|
24
25
|
code: string;
|
|
@@ -30,6 +31,16 @@ export interface TypeTesterConfig {
|
|
|
30
31
|
};
|
|
31
32
|
alignmentButtons?: boolean;
|
|
32
33
|
initialAlignment?: Alignment;
|
|
34
|
+
size?: {
|
|
35
|
+
label?: string | false;
|
|
36
|
+
min?: number;
|
|
37
|
+
max?: number;
|
|
38
|
+
};
|
|
39
|
+
lineHeight?: {
|
|
40
|
+
label?: string | false;
|
|
41
|
+
min?: number;
|
|
42
|
+
max?: number;
|
|
43
|
+
};
|
|
33
44
|
}
|
|
34
45
|
export interface TypeTesterBaseProps {
|
|
35
46
|
id: string;
|
|
@@ -37,7 +48,7 @@ export interface TypeTesterBaseProps {
|
|
|
37
48
|
direction: 'ltr' | 'rtl';
|
|
38
49
|
onSelectFontStyleId: (value: string) => void;
|
|
39
50
|
features?: readonly string[] | null;
|
|
40
|
-
|
|
51
|
+
groupEdit?: boolean;
|
|
41
52
|
onFocus?: () => void;
|
|
42
53
|
onBlur?: () => void;
|
|
43
54
|
}
|
|
@@ -78,18 +78,24 @@ const TypeTesterComponent = _ref => {
|
|
|
78
78
|
onFocus,
|
|
79
79
|
onBlur,
|
|
80
80
|
features,
|
|
81
|
-
|
|
81
|
+
groupEdit
|
|
82
82
|
} = _ref;
|
|
83
83
|
const contentRef = (0, _react.useRef)(null);
|
|
84
84
|
const ref = (0, _react.useRef)(null);
|
|
85
85
|
const [buyButtonIsHovered, setBuyButtonIsHovered] = (0, _react.useState)(false);
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
};
|
|
86
|
+
let {
|
|
87
|
+
typeTester: config
|
|
88
|
+
} = (0, _react.useContext)(_ConfigContext.default);
|
|
90
89
|
const props = (0, _TypeTesterState.default)({
|
|
91
90
|
id
|
|
92
91
|
});
|
|
92
|
+
|
|
93
|
+
if (groupEdit) {
|
|
94
|
+
config = { ...config,
|
|
95
|
+
groupEdit
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
|
|
93
99
|
(0, _react.useEffect)(() => {
|
|
94
100
|
if (onFocus && props.focused) onFocus();
|
|
95
101
|
if (onBlur && !props.focused) onBlur();
|
|
@@ -97,6 +103,13 @@ const TypeTesterComponent = _ref => {
|
|
|
97
103
|
const selected = (0, _reactRedux.useSelector)(fontStyle && fontStyle.sku ? (0, _utils.isSelected)(fontStyle.sku.id) : () => false);
|
|
98
104
|
const precartOpen = (0, _reactRedux.useSelector)(state => state.precartOpen);
|
|
99
105
|
const sku = getSku(fontStyle);
|
|
106
|
+
|
|
107
|
+
const onNeedsRefocus = () => {
|
|
108
|
+
var _contentRef$current;
|
|
109
|
+
|
|
110
|
+
(_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 ? void 0 : _contentRef$current.focus();
|
|
111
|
+
};
|
|
112
|
+
|
|
100
113
|
if (!fontStyle) return null;
|
|
101
114
|
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, fontStyle.family && fontStyle.family.cssUrl && /*#__PURE__*/_react.default.createElement(_Stylesheet.default, {
|
|
102
115
|
href: fontStyle.family.cssUrl
|
|
@@ -119,10 +132,9 @@ const TypeTesterComponent = _ref => {
|
|
|
119
132
|
fontStyle: fontStyle,
|
|
120
133
|
viewer: viewer,
|
|
121
134
|
onSelectFontStyleId: value => {
|
|
122
|
-
var _contentRef$current;
|
|
123
|
-
|
|
124
135
|
onSelectFontStyleId(value);
|
|
125
|
-
|
|
136
|
+
props.setFeatures([]);
|
|
137
|
+
onNeedsRefocus();
|
|
126
138
|
},
|
|
127
139
|
config: config
|
|
128
140
|
}), config.priceText && fontStyle.sku && /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -132,7 +144,9 @@ const TypeTesterComponent = _ref => {
|
|
|
132
144
|
sku: fontStyle.sku
|
|
133
145
|
})), config.toolsPosition === 'inline' && /*#__PURE__*/_react.default.createElement(_TypeTesterToolbar.default, {
|
|
134
146
|
id: id,
|
|
135
|
-
features: features
|
|
147
|
+
features: features,
|
|
148
|
+
fontStyle: fontStyle,
|
|
149
|
+
onNeedsRefocus: onNeedsRefocus
|
|
136
150
|
}), config.selectButton && sku && productId && /*#__PURE__*/_react.default.createElement("div", {
|
|
137
151
|
className: "type-tester__select-button-wrapper",
|
|
138
152
|
onMouseDown: e => e.preventDefault()
|
|
@@ -169,8 +183,8 @@ const TypeTesterComponent = _ref => {
|
|
|
169
183
|
fontStyles: style,
|
|
170
184
|
truncate: config.truncate,
|
|
171
185
|
direction: direction,
|
|
172
|
-
min: config.min,
|
|
173
|
-
max: config.max,
|
|
186
|
+
min: config.size.min,
|
|
187
|
+
max: config.size.max,
|
|
174
188
|
autofitOnChange: config.autofitOnChange
|
|
175
189
|
}));
|
|
176
190
|
}
|
|
@@ -187,7 +201,7 @@ const TypeTesterComponent = _ref => {
|
|
|
187
201
|
|
|
188
202
|
_TypeTester_sku !== void 0 ? _TypeTester_sku : (_TypeTester_sku = require("../../__generated__/TypeTester_sku.graphql"), _TypeTester_sku.hash && _TypeTester_sku.hash !== "1538559015ee3064ae577b7a5e90f34e" && console.error("The definition of 'TypeTester_sku' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _TypeTester_sku);
|
|
189
203
|
const TypeTester = (0, _reactRelay.createFragmentContainer)(TypeTesterComponent, {
|
|
190
|
-
fontStyle: _TypeTester_fontStyle !== void 0 ? _TypeTester_fontStyle : (_TypeTester_fontStyle = require("../../__generated__/TypeTester_fontStyle.graphql"), _TypeTester_fontStyle.hash && _TypeTester_fontStyle.hash !== "
|
|
204
|
+
fontStyle: _TypeTester_fontStyle !== void 0 ? _TypeTester_fontStyle : (_TypeTester_fontStyle = require("../../__generated__/TypeTester_fontStyle.graphql"), _TypeTester_fontStyle.hash && _TypeTester_fontStyle.hash !== "e570d7809bdb60196f3190d2cf27ee0f" && console.error("The definition of 'TypeTester_fontStyle' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _TypeTester_fontStyle),
|
|
191
205
|
viewer: _TypeTester_viewer !== void 0 ? _TypeTester_viewer : (_TypeTester_viewer = require("../../__generated__/TypeTester_viewer.graphql"), _TypeTester_viewer.hash && _TypeTester_viewer.hash !== "a12af7126d512a50ab0b7e5e14a7d8eb" && console.error("The definition of 'TypeTester_viewer' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _TypeTester_viewer)
|
|
192
206
|
});
|
|
193
207
|
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { useFeaturesData_fontStyle$key } from '__generated__/useFeaturesData_fontStyle.graphql';
|
|
2
|
+
interface useFeatures_props {
|
|
3
|
+
features: Readonly<string[]>;
|
|
4
|
+
fontStyle: useFeaturesData_fontStyle$key;
|
|
5
|
+
}
|
|
6
|
+
declare const useFeaturesData: ({ fontStyle }: useFeatures_props) => {
|
|
7
|
+
featureNames: {
|
|
8
|
+
[feature: string]: string;
|
|
9
|
+
};
|
|
10
|
+
fontFeatures: {
|
|
11
|
+
readonly supportedFeatures: readonly string[];
|
|
12
|
+
readonly stylisticSetNames: readonly {
|
|
13
|
+
readonly featureName: string;
|
|
14
|
+
readonly humanName: string;
|
|
15
|
+
}[];
|
|
16
|
+
};
|
|
17
|
+
" $refType": "useFeaturesData_fontStyle";
|
|
18
|
+
};
|
|
19
|
+
export default useFeaturesData;
|