fontdue-js 0.1.3 → 1.1.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 (42) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/CharacterViewer.d.ts +3 -0
  3. package/CharacterViewer.js +1 -0
  4. package/README.md +37 -25
  5. package/dist/__generated__/CharacterViewer_SlugQuery.graphql.d.ts +20 -0
  6. package/dist/__generated__/CharacterViewer_SlugQuery.graphql.js +289 -0
  7. package/dist/__generated__/TypeTesterFeatures_fontStyle.graphql.d.ts +1 -7
  8. package/dist/__generated__/TypeTesterFeatures_fontStyle.graphql.js +3 -35
  9. package/dist/__generated__/TypeTesterFloatingToolbar_testers.graphql.d.ts +1 -1
  10. package/dist/__generated__/TypeTesterFloatingToolbar_testers.graphql.js +5 -1
  11. package/dist/__generated__/TypeTester_StyleQuery.graphql.js +14 -9
  12. package/dist/__generated__/TypeTester_fontStyle.graphql.d.ts +1 -1
  13. package/dist/__generated__/TypeTester_fontStyle.graphql.js +5 -1
  14. package/dist/__generated__/TypeTestersIDQuery.graphql.js +14 -9
  15. package/dist/__generated__/TypeTestersSlugQuery.graphql.js +14 -9
  16. package/dist/__generated__/useFeaturesData_fontStyle.graphql.d.ts +19 -0
  17. package/dist/__generated__/useFeaturesData_fontStyle.graphql.js +59 -0
  18. package/dist/components/CharacterViewer/index.d.ts +2 -1
  19. package/dist/components/CharacterViewer/index.js +51 -25
  20. package/dist/components/ConfigContext.d.ts +22 -4
  21. package/dist/components/ConfigContext.js +15 -6
  22. package/dist/components/SKUPrice/index.js +6 -5
  23. package/dist/components/Select/index.js +1 -3
  24. package/dist/components/TypeTester/TypeTesterFeatures.d.ts +1 -1
  25. package/dist/components/TypeTester/TypeTesterFeatures.js +21 -36
  26. package/dist/components/TypeTester/TypeTesterFeaturesButton.d.ts +4 -3
  27. package/dist/components/TypeTester/TypeTesterFeaturesButton.js +71 -14
  28. package/dist/components/TypeTester/TypeTesterFloatingToolbar.js +5 -7
  29. package/dist/components/TypeTester/TypeTesterSlider.d.ts +1 -0
  30. package/dist/components/TypeTester/TypeTesterSlider.js +2 -1
  31. package/dist/components/TypeTester/TypeTesterStandalone.js +1 -4
  32. package/dist/components/TypeTester/TypeTesterState.d.ts +1 -0
  33. package/dist/components/TypeTester/TypeTesterState.js +7 -0
  34. package/dist/components/TypeTester/TypeTesterToolbar.d.ts +3 -0
  35. package/dist/components/TypeTester/TypeTesterToolbar.js +27 -8
  36. package/dist/components/TypeTester/index.d.ts +12 -1
  37. package/dist/components/TypeTester/index.js +26 -12
  38. package/dist/components/TypeTester/useFeaturesData.d.ts +19 -0
  39. package/dist/components/TypeTester/useFeaturesData.js +51 -0
  40. package/fontdue.css +32 -3
  41. package/fontdue.css.map +1 -1
  42. package/package.json +1 -1
package/CHANGELOG.md ADDED
@@ -0,0 +1,16 @@
1
+ ## 1.1.0
2
+
3
+ - Added `interactionStyle` config for type tester OT features with a new `select` option
4
+ - Added `lineHeight` config to type tester
5
+ - The size slider now has a "Size" label which can be customized or disabled
6
+ - Fixed an issue where some component updates were causing excessive graphql requests
7
+ - Fixed CharacterViewer component for fonts with no GSUB glyphs
8
+ - Adjusted default type tester styles for better spacing and mobile defaults
9
+
10
+ ## 1.0.1
11
+
12
+ - Fixed an issue with Select component spacing
13
+
14
+ ## 1.0.0
15
+
16
+ - Initial release
@@ -0,0 +1,3 @@
1
+ import CharacterViewer from './dist/components/CharacterViewer';
2
+ export * from './dist/components/CharacterViewer';
3
+ export default CharacterViewer;
@@ -0,0 +1 @@
1
+ module.exports = require('./dist/components/CharacterViewer');
package/README.md CHANGED
@@ -5,7 +5,7 @@ This package exports [Fontdue.js](https://docs.fontdue.com/fontduejs) components
5
5
  ## Usage
6
6
 
7
7
  1. Wrap the root of your project with the [`FontdueProvider`](#fontdueprovider) component. For example in a Next.js app, add it to your `_app.tsx`.
8
- 2. Replace the `url` property with your Fontdue store URL.
8
+ 2. Include the `url` property with your Fontdue store URL.
9
9
  3. Render the [`StoreModal`](#storemodal) component so that is it available on every page.
10
10
  4. Import the `fontdue-js/fontdue.css` CSS file. (This example uses Next.js)
11
11
 
@@ -21,13 +21,11 @@ import 'fontdue-js/fontdue.css';
21
21
 
22
22
  function MyApp({ Component, pageProps }: AppProps) {
23
23
  return (
24
- <React.Fragment>
25
- <FontdueProvider url="https://example.fontdue.com" config={{}}>
26
- <Component {...pageProps} />
24
+ <FontdueProvider url="https://example.fontdue.com" config={{}}>
25
+ <Component {...pageProps} />
27
26
 
28
- <StoreModal />
29
- </FontdueProvider>
30
- </React.Fragment>
27
+ <StoreModal />
28
+ </FontdueProvider>
31
29
  );
32
30
  }
33
31
 
@@ -69,7 +67,9 @@ import StoreModal from 'fontdue-js/StoreModal';
69
67
 
70
68
  ## `BuyButton`
71
69
 
72
- Show a **Buy** button for a particular collection. When clicked, opens the StoreModal showing that collection.
70
+ A button which when clicked opens the Cart to the relevant collection, and selects the collection.
71
+
72
+ Renders a button with the text `Buy {collectionName}`
73
73
 
74
74
  ```tsx
75
75
  import BuyButton from 'fontdue-js/BuyButton';
@@ -78,11 +78,11 @@ import BuyButton from 'fontdue-js/BuyButton';
78
78
  | Prop | Description |
79
79
  | --- | --- |
80
80
  | `collectionId` or `collectionSlug` | (Required) `string` Collection identifier |
81
- | `collectionName` | (Optional) `string` Name to display as a suffix in the button: `Buy {collectionName}` |
81
+ | `collectionName` | (Optional) `string` The name to render in the button: `Buy {collectionName}` |
82
82
 
83
83
  ## `CartButton`
84
84
 
85
- A cart button. When clicked, it opens the StoreModal. If a user has items in their cart, it will show the current cart. Otherwise, it shows the index "Browse" page of the StoreModal.
85
+ A button to open the Store Modal. If the user has items in their cart, the button will navigate straight to the Cart screen. Otherwise it opens the fonts index.
86
86
 
87
87
  ```tsx
88
88
  import CartButton from 'fontdue-js/CartButton';
@@ -90,12 +90,24 @@ import CartButton from 'fontdue-js/CartButton';
90
90
 
91
91
  | Prop | Description |
92
92
  | --- | --- |
93
- | `buttonStyle` | (Optional) `'icon' \| 'inline'` Style of the button. Defaults to an unstyled button. |
94
- | `label` | (Optional) `string` Text label instead of "Cart" when `buttonStyle` is not `icon`. |
93
+ | `buttonStyle` | (Optional) `'icon' \| 'inline'` Button style. If left blank, the button is unstyled. |
94
+ | `label` | (Optional) `string` For non-icon style buttons, the text to render inside the button. Defaults to "Cart" |
95
+
96
+ ## `CharacterViewer`
97
+
98
+ An interactive character/glyph explorer.
99
+
100
+ ```tsx
101
+ import CharacterViewer from 'fontdue-js/CharacterViewer';
102
+ ```
103
+
104
+ | Prop | Description |
105
+ | --- | --- |
106
+ | `collectionId` or `collectionSlug` | (Required) `string` Identifier for collection |
95
107
 
96
108
  ## `TypeTesters`
97
109
 
98
- Displays a list of type testers for a collection, by pulling data from the Fontdue CMS for that collection.
110
+ A group of type tester components for a collection. You must first add content for the collection's type testers through the Fontdue dashboard.
99
111
 
100
112
  ```tsx
101
113
  import TypeTesters from 'fontdue-js/TypeTesters';
@@ -122,33 +134,33 @@ The props accepted for this compnenent will change and be documented thereafter.
122
134
  import TypeTester from 'fontdue-js/TypeTester';
123
135
  ```
124
136
 
125
- ## `NewsletterSignup`
137
+ ## `TestFontsForm`
126
138
 
127
- A newsletter signup form. Customers entering their information here simply adds them as a Customer in the Fontdue CMS.
139
+ Displays a form for users to enter their information and download test fonts. Make sure you have configured [Test Fonts](https://docs.fontdue.com/test-fonts) for this to work.
128
140
 
129
141
  ```tsx
130
- import NewsletterSignup from 'fontdue-js/NewsletterSignup';
142
+ import TestFontsForm from 'fontdue-js/TestFontsForm';
131
143
  ```
132
144
 
133
145
  | Prop | Description |
134
146
  | --- | --- |
135
- | `optInLabel` | (Required) `string` Label that appears with the checkbox required to be checked. |
136
- | `buttonLabel` | (Optional) `string` Label for the button. Defaults to "Subscribe" |
137
- | `optInCheckboxChecked` | (Optional) `boolean` Set the checkbox checked by default. |
147
+ | `agreementLabel` | (Optional) `string` Label for required checkbox. Defaults to the field "EULA agreement text" in your Fontdue Labels settings |
148
+ | `downloadLabel` | (Optional) `string` Download button label. Defaults to "Download test fonts" |
149
+ | `newsletterCheckboxChecked` | (Optional) `boolean` Set the newsletter opt-in checkbox checked by default |
138
150
 
139
- ## `TestFontsForm`
151
+ ## `NewsletterSignup`
140
152
 
141
- Displays a form for users to enter their information in order to download test fonts. Make sure you have configured [Test Fonts](https://docs.fontdue.com/test-fonts) for this to work.
153
+ A newsletter signup form. Customers entering their information here simply adds them as a Customer in the Fontdue CMS.
142
154
 
143
155
  ```tsx
144
- import TestFontsForm from 'fontdue-js/TestFontsForm';
156
+ import NewsletterSignup from 'fontdue-js/NewsletterSignup';
145
157
  ```
146
158
 
147
159
  | Prop | Description |
148
160
  | --- | --- |
149
- | `agreementLabel` | (Optional) `string` Label for required checkbox. Defaults to the field "EULA agreement text" in your Fontdue Labels settings |
150
- | `downloadLabel` | (Optional) `string` Download button label. Defaults to "Download test fonts" |
151
- | `newsletterCheckboxChecked` | (Optional) `boolean` Set the newsletter opt-in checkbox checked by default |
161
+ | `optInLabel` | (Required) `string` Label that appears with the checkbox required to be checked. |
162
+ | `buttonLabel` | (Optional) `string` Label for the button. Defaults to "Subscribe" |
163
+ | `optInCheckboxChecked` | (Optional) `boolean` Set the checkbox checked by default. |
152
164
 
153
165
  ## `useFontStyle`
154
166
 
@@ -0,0 +1,20 @@
1
+ import { ConcreteRequest } from "relay-runtime";
2
+ import { FragmentRefs } from "relay-runtime";
3
+ export declare type CharacterViewer_SlugQueryVariables = {
4
+ collectionSlug: string;
5
+ };
6
+ export declare type CharacterViewer_SlugQueryResponse = {
7
+ readonly viewer: {
8
+ readonly slug: {
9
+ readonly fontCollection: {
10
+ readonly " $fragmentRefs": FragmentRefs<"CharacterViewer_collection">;
11
+ } | null;
12
+ } | null;
13
+ } | null;
14
+ };
15
+ export declare type CharacterViewer_SlugQuery = {
16
+ readonly response: CharacterViewer_SlugQueryResponse;
17
+ readonly variables: CharacterViewer_SlugQueryVariables;
18
+ };
19
+ declare const node: ConcreteRequest;
20
+ export default node;
@@ -0,0 +1,289 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ /* tslint:disable */
9
+
10
+ /* eslint-disable */
11
+ // @ts-nocheck
12
+
13
+ /*
14
+ query CharacterViewer_SlugQuery(
15
+ $collectionSlug: String!
16
+ ) {
17
+ viewer {
18
+ slug(name: $collectionSlug) {
19
+ fontCollection {
20
+ ...CharacterViewer_collection
21
+ id
22
+ }
23
+ id
24
+ }
25
+ id
26
+ }
27
+ }
28
+
29
+ fragment CharacterViewer_collection on FontCollection {
30
+ featureStyle {
31
+ id
32
+ }
33
+ id
34
+ name
35
+ fontStyles {
36
+ id
37
+ cssFamily
38
+ name
39
+ characterBlocks {
40
+ name
41
+ characters
42
+ }
43
+ featureCharacters {
44
+ feature
45
+ name
46
+ characters
47
+ }
48
+ }
49
+ children(collectionTypes: [FAMILY]) {
50
+ id
51
+ name
52
+ fontStyles {
53
+ id
54
+ cssFamily
55
+ name
56
+ characterBlocks {
57
+ name
58
+ characters
59
+ }
60
+ featureCharacters {
61
+ feature
62
+ name
63
+ characters
64
+ }
65
+ }
66
+ }
67
+ }
68
+ */
69
+ const node = function () {
70
+ var v0 = [{
71
+ "defaultValue": null,
72
+ "kind": "LocalArgument",
73
+ "name": "collectionSlug"
74
+ }],
75
+ v1 = [{
76
+ "kind": "Variable",
77
+ "name": "name",
78
+ "variableName": "collectionSlug"
79
+ }],
80
+ v2 = {
81
+ "alias": null,
82
+ "args": null,
83
+ "kind": "ScalarField",
84
+ "name": "id",
85
+ "storageKey": null
86
+ },
87
+ v3 = {
88
+ "alias": null,
89
+ "args": null,
90
+ "kind": "ScalarField",
91
+ "name": "name",
92
+ "storageKey": null
93
+ },
94
+ v4 = {
95
+ "alias": null,
96
+ "args": null,
97
+ "kind": "ScalarField",
98
+ "name": "characters",
99
+ "storageKey": null
100
+ },
101
+ v5 = {
102
+ "alias": null,
103
+ "args": null,
104
+ "concreteType": "FontStyle",
105
+ "kind": "LinkedField",
106
+ "name": "fontStyles",
107
+ "plural": true,
108
+ "selections": [v2
109
+ /*: any*/
110
+ , {
111
+ "alias": null,
112
+ "args": null,
113
+ "kind": "ScalarField",
114
+ "name": "cssFamily",
115
+ "storageKey": null
116
+ }, v3
117
+ /*: any*/
118
+ , {
119
+ "alias": null,
120
+ "args": null,
121
+ "concreteType": "CharacterBlock",
122
+ "kind": "LinkedField",
123
+ "name": "characterBlocks",
124
+ "plural": true,
125
+ "selections": [v3
126
+ /*: any*/
127
+ , v4
128
+ /*: any*/
129
+ ],
130
+ "storageKey": null
131
+ }, {
132
+ "alias": null,
133
+ "args": null,
134
+ "concreteType": "FeatureCharacters",
135
+ "kind": "LinkedField",
136
+ "name": "featureCharacters",
137
+ "plural": true,
138
+ "selections": [{
139
+ "alias": null,
140
+ "args": null,
141
+ "kind": "ScalarField",
142
+ "name": "feature",
143
+ "storageKey": null
144
+ }, v3
145
+ /*: any*/
146
+ , v4
147
+ /*: any*/
148
+ ],
149
+ "storageKey": null
150
+ }],
151
+ "storageKey": null
152
+ };
153
+ return {
154
+ "fragment": {
155
+ "argumentDefinitions": v0
156
+ /*: any*/
157
+ ,
158
+ "kind": "Fragment",
159
+ "metadata": null,
160
+ "name": "CharacterViewer_SlugQuery",
161
+ "selections": [{
162
+ "alias": null,
163
+ "args": null,
164
+ "concreteType": "Viewer",
165
+ "kind": "LinkedField",
166
+ "name": "viewer",
167
+ "plural": false,
168
+ "selections": [{
169
+ "alias": null,
170
+ "args": v1
171
+ /*: any*/
172
+ ,
173
+ "concreteType": "Slug",
174
+ "kind": "LinkedField",
175
+ "name": "slug",
176
+ "plural": false,
177
+ "selections": [{
178
+ "alias": null,
179
+ "args": null,
180
+ "concreteType": "FontCollection",
181
+ "kind": "LinkedField",
182
+ "name": "fontCollection",
183
+ "plural": false,
184
+ "selections": [{
185
+ "args": null,
186
+ "kind": "FragmentSpread",
187
+ "name": "CharacterViewer_collection"
188
+ }],
189
+ "storageKey": null
190
+ }],
191
+ "storageKey": null
192
+ }],
193
+ "storageKey": null
194
+ }],
195
+ "type": "RootQueryType",
196
+ "abstractKey": null
197
+ },
198
+ "kind": "Request",
199
+ "operation": {
200
+ "argumentDefinitions": v0
201
+ /*: any*/
202
+ ,
203
+ "kind": "Operation",
204
+ "name": "CharacterViewer_SlugQuery",
205
+ "selections": [{
206
+ "alias": null,
207
+ "args": null,
208
+ "concreteType": "Viewer",
209
+ "kind": "LinkedField",
210
+ "name": "viewer",
211
+ "plural": false,
212
+ "selections": [{
213
+ "alias": null,
214
+ "args": v1
215
+ /*: any*/
216
+ ,
217
+ "concreteType": "Slug",
218
+ "kind": "LinkedField",
219
+ "name": "slug",
220
+ "plural": false,
221
+ "selections": [{
222
+ "alias": null,
223
+ "args": null,
224
+ "concreteType": "FontCollection",
225
+ "kind": "LinkedField",
226
+ "name": "fontCollection",
227
+ "plural": false,
228
+ "selections": [{
229
+ "alias": null,
230
+ "args": null,
231
+ "concreteType": "FontStyle",
232
+ "kind": "LinkedField",
233
+ "name": "featureStyle",
234
+ "plural": false,
235
+ "selections": [v2
236
+ /*: any*/
237
+ ],
238
+ "storageKey": null
239
+ }, v2
240
+ /*: any*/
241
+ , v3
242
+ /*: any*/
243
+ , v5
244
+ /*: any*/
245
+ , {
246
+ "alias": null,
247
+ "args": [{
248
+ "kind": "Literal",
249
+ "name": "collectionTypes",
250
+ "value": ["FAMILY"]
251
+ }],
252
+ "concreteType": "FontCollection",
253
+ "kind": "LinkedField",
254
+ "name": "children",
255
+ "plural": true,
256
+ "selections": [v2
257
+ /*: any*/
258
+ , v3
259
+ /*: any*/
260
+ , v5
261
+ /*: any*/
262
+ ],
263
+ "storageKey": "children(collectionTypes:[\"FAMILY\"])"
264
+ }],
265
+ "storageKey": null
266
+ }, v2
267
+ /*: any*/
268
+ ],
269
+ "storageKey": null
270
+ }, v2
271
+ /*: any*/
272
+ ],
273
+ "storageKey": null
274
+ }]
275
+ },
276
+ "params": {
277
+ "cacheID": "f69a908fd095e2408ba06adeeb8cd0f0",
278
+ "id": null,
279
+ "metadata": {},
280
+ "name": "CharacterViewer_SlugQuery",
281
+ "operationKind": "query",
282
+ "text": "query CharacterViewer_SlugQuery(\n $collectionSlug: String!\n) {\n viewer {\n slug(name: $collectionSlug) {\n fontCollection {\n ...CharacterViewer_collection\n id\n }\n id\n }\n id\n }\n}\n\nfragment CharacterViewer_collection on FontCollection {\n featureStyle {\n id\n }\n id\n name\n fontStyles {\n id\n cssFamily\n name\n characterBlocks {\n name\n characters\n }\n featureCharacters {\n feature\n name\n characters\n }\n }\n children(collectionTypes: [FAMILY]) {\n id\n name\n fontStyles {\n id\n cssFamily\n name\n characterBlocks {\n name\n characters\n }\n featureCharacters {\n feature\n name\n characters\n }\n }\n }\n}\n"
283
+ }
284
+ };
285
+ }();
286
+
287
+ node.hash = 'de903e7c2640562aee374a900e089c9c';
288
+ var _default = node;
289
+ exports.default = _default;
@@ -1,13 +1,7 @@
1
1
  import { ReaderFragment } from "relay-runtime";
2
2
  import { FragmentRefs } from "relay-runtime";
3
3
  export declare type TypeTesterFeatures_fontStyle = {
4
- readonly fontFeatures: {
5
- readonly supportedFeatures: ReadonlyArray<string>;
6
- readonly stylisticSetNames: ReadonlyArray<{
7
- readonly featureName: string;
8
- readonly humanName: string;
9
- }>;
10
- };
4
+ readonly " $fragmentRefs": FragmentRefs<"useFeaturesData_fontStyle">;
11
5
  readonly " $refType": "TypeTesterFeatures_fontStyle";
12
6
  };
13
7
  export declare type TypeTesterFeatures_fontStyle$data = TypeTesterFeatures_fontStyle;
@@ -15,45 +15,13 @@ const node = {
15
15
  "metadata": null,
16
16
  "name": "TypeTesterFeatures_fontStyle",
17
17
  "selections": [{
18
- "alias": null,
19
18
  "args": null,
20
- "concreteType": "FontFeatures",
21
- "kind": "LinkedField",
22
- "name": "fontFeatures",
23
- "plural": false,
24
- "selections": [{
25
- "alias": null,
26
- "args": null,
27
- "kind": "ScalarField",
28
- "name": "supportedFeatures",
29
- "storageKey": null
30
- }, {
31
- "alias": null,
32
- "args": null,
33
- "concreteType": "StylisticSetName",
34
- "kind": "LinkedField",
35
- "name": "stylisticSetNames",
36
- "plural": true,
37
- "selections": [{
38
- "alias": null,
39
- "args": null,
40
- "kind": "ScalarField",
41
- "name": "featureName",
42
- "storageKey": null
43
- }, {
44
- "alias": null,
45
- "args": null,
46
- "kind": "ScalarField",
47
- "name": "humanName",
48
- "storageKey": null
49
- }],
50
- "storageKey": null
51
- }],
52
- "storageKey": null
19
+ "kind": "FragmentSpread",
20
+ "name": "useFeaturesData_fontStyle"
53
21
  }],
54
22
  "type": "FontStyle",
55
23
  "abstractKey": null
56
24
  };
57
- node.hash = '838ddab02dcbca47c8368b219c302934';
25
+ node.hash = '25582c33916ebaadd2f674b1d0b6bf4b';
58
26
  var _default = node;
59
27
  exports.default = _default;
@@ -3,7 +3,7 @@ import { FragmentRefs } from "relay-runtime";
3
3
  export declare type TypeTesterFloatingToolbar_testers = ReadonlyArray<{
4
4
  readonly id: string;
5
5
  readonly fontStyle: {
6
- readonly " $fragmentRefs": FragmentRefs<"TypeTesterFeatures_fontStyle">;
6
+ readonly " $fragmentRefs": FragmentRefs<"useFeaturesData_fontStyle" | "TypeTesterFeatures_fontStyle">;
7
7
  } | null;
8
8
  readonly " $refType": "TypeTesterFloatingToolbar_testers";
9
9
  }>;
@@ -30,6 +30,10 @@ const node = {
30
30
  "name": "fontStyle",
31
31
  "plural": false,
32
32
  "selections": [{
33
+ "args": null,
34
+ "kind": "FragmentSpread",
35
+ "name": "useFeaturesData_fontStyle"
36
+ }, {
33
37
  "args": null,
34
38
  "kind": "FragmentSpread",
35
39
  "name": "TypeTesterFeatures_fontStyle"
@@ -39,6 +43,6 @@ const node = {
39
43
  "type": "TypeTester",
40
44
  "abstractKey": null
41
45
  };
42
- node.hash = '5554933cac70854b361575a5ed0af8ac';
46
+ node.hash = '3b87269ef35fe6c6cfabcc7a2e330a3c';
43
47
  var _default = node;
44
48
  exports.default = _default;
@@ -57,13 +57,7 @@ fragment SelectButton_sku on Sku {
57
57
  }
58
58
 
59
59
  fragment TypeTesterFeatures_fontStyle on FontStyle {
60
- fontFeatures {
61
- supportedFeatures
62
- stylisticSetNames {
63
- featureName
64
- humanName
65
- }
66
- }
60
+ ...useFeaturesData_fontStyle
67
61
  }
68
62
 
69
63
  fragment TypeTesterStyleSelectData_fontStyle on FontStyle {
@@ -100,6 +94,7 @@ fragment TypeTester_fontStyle on FontStyle {
100
94
  ...TypeTesterFeatures_fontStyle
101
95
  ...TypeTesterStyleSelectData_fontStyle
102
96
  ...FontStyle_fontStyle
97
+ ...useFeaturesData_fontStyle
103
98
  family {
104
99
  cssUrl
105
100
  id
@@ -128,6 +123,16 @@ fragment TypeTester_fontStyle on FontStyle {
128
123
  fragment TypeTester_viewer on Viewer {
129
124
  ...TypeTesterStyleSelectData_viewer
130
125
  }
126
+
127
+ fragment useFeaturesData_fontStyle on FontStyle {
128
+ fontFeatures {
129
+ supportedFeatures
130
+ stylisticSetNames {
131
+ featureName
132
+ humanName
133
+ }
134
+ }
135
+ }
131
136
  */
132
137
  const node = function () {
133
138
  var v0 = [{
@@ -455,12 +460,12 @@ const node = function () {
455
460
  }]
456
461
  },
457
462
  "params": {
458
- "cacheID": "80bf60fbcc8c99ccaff09a562f3d53ee",
463
+ "cacheID": "d729e19f7123d0dd27c4d856eff7b41c",
459
464
  "id": null,
460
465
  "metadata": {},
461
466
  "name": "TypeTester_StyleQuery",
462
467
  "operationKind": "query",
463
- "text": "query TypeTester_StyleQuery(\n $id: ID!\n) {\n fontStyle: node(id: $id) {\n __typename\n ...TypeTester_fontStyle\n id\n }\n viewer {\n ...TypeTester_viewer\n id\n }\n}\n\nfragment FontStyle_fontStyle on FontStyle {\n cssFamily\n name\n}\n\nfragment Price_price on Money {\n amount\n currency\n}\n\nfragment SKUPrice_sku on Sku {\n id\n price(licenseOptions: []) {\n amount\n ...Price_price\n }\n}\n\nfragment SKUPrice_sku_2AMk59 on Sku {\n id\n price(licenseOptions: []) {\n amount\n ...Price_price\n }\n}\n\nfragment SelectButton_sku on Sku {\n id\n ...SKUPrice_sku_2AMk59\n}\n\nfragment TypeTesterFeatures_fontStyle on FontStyle {\n fontFeatures {\n supportedFeatures\n stylisticSetNames {\n featureName\n humanName\n }\n }\n}\n\nfragment TypeTesterStyleSelectData_fontStyle on FontStyle {\n id\n name\n cssWeight\n cssStyle\n cssStretch\n family {\n name\n id\n }\n}\n\nfragment TypeTesterStyleSelectData_viewer on Viewer {\n families: fontCollections(collectionTypes: [FAMILY], first: 999) {\n edges {\n node {\n id\n name\n fontStyles {\n id\n name\n cssWeight\n cssStyle\n cssStretch\n }\n }\n }\n }\n}\n\nfragment TypeTester_fontStyle on FontStyle {\n ...TypeTesterFeatures_fontStyle\n ...TypeTesterStyleSelectData_fontStyle\n ...FontStyle_fontStyle\n family {\n cssUrl\n id\n }\n sku {\n ...SelectButton_sku\n ...SKUPrice_sku\n id\n basePrice: price {\n amount\n }\n }\n fontCollections {\n sku {\n ...SelectButton_sku\n ...SKUPrice_sku\n id\n basePrice: price {\n amount\n }\n }\n id\n }\n}\n\nfragment TypeTester_viewer on Viewer {\n ...TypeTesterStyleSelectData_viewer\n}\n"
468
+ "text": "query TypeTester_StyleQuery(\n $id: ID!\n) {\n fontStyle: node(id: $id) {\n __typename\n ...TypeTester_fontStyle\n id\n }\n viewer {\n ...TypeTester_viewer\n id\n }\n}\n\nfragment FontStyle_fontStyle on FontStyle {\n cssFamily\n name\n}\n\nfragment Price_price on Money {\n amount\n currency\n}\n\nfragment SKUPrice_sku on Sku {\n id\n price(licenseOptions: []) {\n amount\n ...Price_price\n }\n}\n\nfragment SKUPrice_sku_2AMk59 on Sku {\n id\n price(licenseOptions: []) {\n amount\n ...Price_price\n }\n}\n\nfragment SelectButton_sku on Sku {\n id\n ...SKUPrice_sku_2AMk59\n}\n\nfragment TypeTesterFeatures_fontStyle on FontStyle {\n ...useFeaturesData_fontStyle\n}\n\nfragment TypeTesterStyleSelectData_fontStyle on FontStyle {\n id\n name\n cssWeight\n cssStyle\n cssStretch\n family {\n name\n id\n }\n}\n\nfragment TypeTesterStyleSelectData_viewer on Viewer {\n families: fontCollections(collectionTypes: [FAMILY], first: 999) {\n edges {\n node {\n id\n name\n fontStyles {\n id\n name\n cssWeight\n cssStyle\n cssStretch\n }\n }\n }\n }\n}\n\nfragment TypeTester_fontStyle on FontStyle {\n ...TypeTesterFeatures_fontStyle\n ...TypeTesterStyleSelectData_fontStyle\n ...FontStyle_fontStyle\n ...useFeaturesData_fontStyle\n family {\n cssUrl\n id\n }\n sku {\n ...SelectButton_sku\n ...SKUPrice_sku\n id\n basePrice: price {\n amount\n }\n }\n fontCollections {\n sku {\n ...SelectButton_sku\n ...SKUPrice_sku\n id\n basePrice: price {\n amount\n }\n }\n id\n }\n}\n\nfragment TypeTester_viewer on Viewer {\n ...TypeTesterStyleSelectData_viewer\n}\n\nfragment useFeaturesData_fontStyle on FontStyle {\n fontFeatures {\n supportedFeatures\n stylisticSetNames {\n featureName\n humanName\n }\n }\n}\n"
464
469
  }
465
470
  };
466
471
  }();
@@ -20,7 +20,7 @@ export declare type TypeTester_fontStyle = {
20
20
  readonly " $fragmentRefs": FragmentRefs<"SelectButton_sku" | "SKUPrice_sku">;
21
21
  } | null;
22
22
  } | null> | null;
23
- readonly " $fragmentRefs": FragmentRefs<"TypeTesterFeatures_fontStyle" | "TypeTesterStyleSelectData_fontStyle" | "FontStyle_fontStyle">;
23
+ readonly " $fragmentRefs": FragmentRefs<"TypeTesterFeatures_fontStyle" | "TypeTesterStyleSelectData_fontStyle" | "FontStyle_fontStyle" | "useFeaturesData_fontStyle">;
24
24
  readonly " $refType": "TypeTester_fontStyle";
25
25
  };
26
26
  export declare type TypeTester_fontStyle$data = TypeTester_fontStyle;
@@ -94,12 +94,16 @@ const node = function () {
94
94
  "args": null,
95
95
  "kind": "FragmentSpread",
96
96
  "name": "FontStyle_fontStyle"
97
+ }, {
98
+ "args": null,
99
+ "kind": "FragmentSpread",
100
+ "name": "useFeaturesData_fontStyle"
97
101
  }],
98
102
  "type": "FontStyle",
99
103
  "abstractKey": null
100
104
  };
101
105
  }();
102
106
 
103
- node.hash = '0d5783f65fd4bf6f0840996214179fca';
107
+ node.hash = 'e570d7809bdb60196f3190d2cf27ee0f';
104
108
  var _default = node;
105
109
  exports.default = _default;