fontdue-js 1.6.0 → 1.7.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 CHANGED
@@ -1,3 +1,7 @@
1
+ ## 1.7.0
2
+
3
+ - Updated `TypeTester` API for React and added documentation
4
+
1
5
  ## 1.6.0
2
6
 
3
7
  - Added `CustomerLoginForm` component
package/README.md CHANGED
@@ -138,16 +138,24 @@ import TypeTesters from 'fontdue-js/TypeTesters';
138
138
  | `onBlur` | (Optional) `() => void` when any type tester is blurred |
139
139
  | `onToolbarOpenClose` | (Optional) `(open: boolean) => void` Callback when toolbar is opened/closed |
140
140
 
141
- ## `TypeTester`
141
+ ## `TypeTester` (standalone)
142
142
 
143
143
  Standalone version of the type tester, which does not query the Fontdue CMS for content. You supply the content instead. Does not support the "Affect all styles" feature of the TypeTesters component.
144
144
 
145
- The props accepted for this compnenent will change and be documented thereafter.
146
-
147
145
  ```tsx
148
146
  import TypeTester from 'fontdue-js/TypeTester';
149
147
  ```
150
148
 
149
+ | Prop | Description |
150
+ | --- | --- |
151
+ | `familyName` | (Required) `string` Font family name (must have been already uploaded to your Fontdue admin) |
152
+ | `styleName` | (Required) `string` The name of the style from the family to display. |
153
+ | `fontSize` | (Optional) `number` Initial font size in pixels. |
154
+ | `lineHeight` | (Optional) `number` Line-height as a proportional value where `1 == fontSize`. |
155
+ | `content` | (Optional) `string` The initial content to display. |
156
+ | `features` | (Optional) `string[]` List of opentype feature codes to expose as options to users. (e.g. `['ss01', 'ss02']`) |
157
+ | `autofit` | (Optional) See `TypeTesters.autofit` above |
158
+
151
159
  ## `TestFontsForm`
152
160
 
153
161
  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.
@@ -60,7 +60,7 @@ const customElementMap = {
60
60
  'fontdue-sticky-nav': loadable(() => Promise.resolve().then(() => _interopRequireWildcard(require('../StickyNav')))),
61
61
  'fontdue-store-modal': loadable(() => Promise.resolve().then(() => _interopRequireWildcard(require('../StoreModal')))),
62
62
  'fontdue-test-fonts-form': loadable(() => Promise.resolve().then(() => _interopRequireWildcard(require('../TestFontsForm')))),
63
- 'fontdue-type-tester': loadable(() => Promise.resolve().then(() => _interopRequireWildcard(require('../TypeTester/TypeTesterStandalone')))),
63
+ 'fontdue-type-tester': loadable(() => Promise.resolve().then(() => _interopRequireWildcard(require('../TypeTester/TypeTesterStandaloneElement')))),
64
64
  'fontdue-type-testers': loadable(() => Promise.resolve().then(() => _interopRequireWildcard(require('../TypeTesters'))))
65
65
  };
66
66
  Object.keys(customElementMap).forEach(elementName => {
@@ -1,15 +1,15 @@
1
1
  import React from 'react';
2
- import { Alignment } from './types';
2
+ import { Alignment, Direction } from './types';
3
3
  interface TypeTesterStandalone {
4
4
  familyName: string;
5
5
  styleName: string;
6
- lineHeight?: string;
7
- fontSize?: string;
8
- features?: string;
6
+ lineHeight?: number;
7
+ fontSize?: number;
8
+ features?: string[];
9
9
  content?: string;
10
- direction?: string;
10
+ direction?: Direction;
11
11
  alignment?: Alignment;
12
- autofit?: string;
12
+ autofit?: boolean;
13
13
  onFocus?: () => void;
14
14
  onBlur?: () => void;
15
15
  }
@@ -19,8 +19,6 @@ var _TypeTesterStandalone_StyleQuery;
19
19
 
20
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
21
 
22
- const parseBool = input => input === 'true' ? true : false;
23
-
24
22
  const TypeTesterStandalone = _ref => {
25
23
  let {
26
24
  familyName,
@@ -44,7 +42,7 @@ const TypeTesterStandalone = _ref => {
44
42
  },
45
43
  environment: environment,
46
44
  render: _ref2 => {
47
- var _props$viewer$fontSty, _props$viewer, _props$viewer$fontSty2, _features$split, _props$viewer$fontSty3, _props$viewer2, _props$viewer2$fontSt, _props$viewer2$fontSt2, _props$viewer2$fontSt3, _props$viewer3, _props$viewer3$fontSt, _props$viewer3$fontSt2;
45
+ var _props$viewer$fontSty, _props$viewer, _props$viewer$fontSty2, _props$viewer$fontSty3, _props$viewer2, _props$viewer2$fontSt, _props$viewer2$fontSt2, _props$viewer2$fontSt3, _props$viewer3, _props$viewer3$fontSt, _props$viewer3$fontSt2;
48
46
 
49
47
  let {
50
48
  props
@@ -55,17 +53,17 @@ const TypeTesterStandalone = _ref => {
55
53
  testers: {
56
54
  standalone: {
57
55
  content: content !== null && content !== void 0 ? content : 'The quick brown fox...',
58
- autofit: parseBool(autofit),
59
- size: fontSize ? parseFloat(fontSize) : 72,
60
- lineHeight: lineHeight ? parseFloat(lineHeight) : 1,
56
+ autofit: autofit !== null && autofit !== void 0 ? autofit : false,
57
+ size: fontSize !== null && fontSize !== void 0 ? fontSize : 72,
58
+ lineHeight: lineHeight !== null && lineHeight !== void 0 ? lineHeight : 1,
61
59
  alignment: alignment !== null && alignment !== void 0 ? alignment : 'left'
62
60
  }
63
61
  }
64
62
  }, /*#__PURE__*/_react.default.createElement(_index.default, {
65
63
  id: "standalone",
66
64
  fontStyleId: (_props$viewer$fontSty = (_props$viewer = props.viewer) === null || _props$viewer === void 0 ? void 0 : (_props$viewer$fontSty2 = _props$viewer.fontStyle) === null || _props$viewer$fontSty2 === void 0 ? void 0 : _props$viewer$fontSty2.id) !== null && _props$viewer$fontSty !== void 0 ? _props$viewer$fontSty : null,
67
- features: (_features$split = features === null || features === void 0 ? void 0 : features.split(',')) !== null && _features$split !== void 0 ? _features$split : [],
68
- direction: direction === 'rtl' ? 'rtl' : 'ltr',
65
+ features: features,
66
+ direction: direction,
69
67
  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
68
  groupEdit: false,
71
69
  onFocus: onFocus,
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ interface TypeTesterElement_props {
3
+ familyName: string;
4
+ styleName: string;
5
+ lineHeight?: string;
6
+ fontSize?: string;
7
+ features?: string;
8
+ content?: string;
9
+ direction?: string;
10
+ alignment?: string;
11
+ autofit?: string;
12
+ }
13
+ export declare const TypeTesterStandaloneElement: React.FC<TypeTesterElement_props>;
14
+ export default TypeTesterStandaloneElement;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.TypeTesterStandaloneElement = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _TypeTesterStandalone = _interopRequireDefault(require("./TypeTesterStandalone"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
15
+
16
+ const isAlignment = str => {
17
+ return str === 'left' || str === 'center' || str === 'right';
18
+ };
19
+
20
+ const isDirection = str => {
21
+ return str === 'ltr' || str === 'rtl';
22
+ };
23
+
24
+ const parseBool = input => input === 'true' ? true : false;
25
+
26
+ const TypeTesterStandaloneElement = _ref => {
27
+ var _features$split;
28
+
29
+ let {
30
+ lineHeight,
31
+ fontSize,
32
+ features,
33
+ alignment,
34
+ direction,
35
+ autofit,
36
+ ...rest
37
+ } = _ref;
38
+ return /*#__PURE__*/_react.default.createElement(_TypeTesterStandalone.default, _extends({
39
+ autofit: parseBool(autofit),
40
+ lineHeight: lineHeight ? parseFloat(lineHeight) : undefined,
41
+ fontSize: fontSize ? parseFloat(fontSize) : undefined,
42
+ features: (_features$split = features === null || features === void 0 ? void 0 : features.split(',')) !== null && _features$split !== void 0 ? _features$split : [],
43
+ alignment: isAlignment(alignment) ? alignment : undefined,
44
+ direction: isDirection(direction) ? direction : undefined
45
+ }, rest));
46
+ };
47
+
48
+ exports.TypeTesterStandaloneElement = TypeTesterStandaloneElement;
49
+ var _default = TypeTesterStandaloneElement;
50
+ exports.default = _default;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { Alignment } from './types';
2
+ import { Alignment, Direction } from './types';
3
3
  export interface TypeTesterConfig {
4
4
  min?: number;
5
5
  max?: number;
@@ -45,7 +45,7 @@ export interface TypeTesterConfig {
45
45
  export interface TypeTesterBaseProps {
46
46
  id: string;
47
47
  productId?: string;
48
- direction: 'ltr' | 'rtl';
48
+ direction: Direction | undefined;
49
49
  onSelectFontStyleId: (value: string) => void;
50
50
  features?: readonly string[] | null;
51
51
  groupEdit?: boolean;
@@ -71,7 +71,7 @@ const TypeTesterComponent = _ref => {
71
71
  let {
72
72
  id,
73
73
  productId,
74
- direction,
74
+ direction = 'ltr',
75
75
  fontStyle,
76
76
  viewer,
77
77
  onSelectFontStyleId,
@@ -4,4 +4,5 @@ export declare type Size = number;
4
4
  export declare type LineHeight = number;
5
5
  export declare type Features = string[];
6
6
  export declare type Alignment = 'left' | 'center' | 'right';
7
+ export declare type Direction = 'ltr' | 'rtl';
7
8
  export declare type TypeTesterMode = 'local' | 'group';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fontdue-js",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "main": "index.js",
5
5
  "scripts": {
6
6
  "build": "run-p build-js build-css build-ts-declarations",