@imposium-hub/components 2.13.7 → 2.14.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 (105) hide show
  1. package/dist/cjs/components/advanced-number-field/AdvancedNumberField.d.ts +9 -0
  2. package/dist/cjs/components/advanced-number-field/AdvancedNumberField.js +2 -2
  3. package/dist/cjs/components/advanced-number-field/AdvancedNumberField.js.map +1 -1
  4. package/dist/cjs/components/button-group-field/ButtonGroupField.d.ts +9 -0
  5. package/dist/cjs/components/button-group-field/ButtonGroupField.js +38 -20
  6. package/dist/cjs/components/button-group-field/ButtonGroupField.js.map +1 -1
  7. package/dist/cjs/components/checkbox-field/CheckboxField.d.ts +8 -0
  8. package/dist/cjs/components/checkbox-field/CheckboxField.js +2 -2
  9. package/dist/cjs/components/checkbox-field/CheckboxField.js.map +1 -1
  10. package/dist/cjs/components/color-field/ColorField.d.ts +8 -0
  11. package/dist/cjs/components/color-field/ColorField.js +2 -2
  12. package/dist/cjs/components/color-field/ColorField.js.map +1 -1
  13. package/dist/cjs/components/controlled-list/ControlledList.d.ts +6 -2
  14. package/dist/cjs/components/controlled-list/ControlledList.js +22 -6
  15. package/dist/cjs/components/controlled-list/ControlledList.js.map +1 -1
  16. package/dist/cjs/components/field-wrapper/FieldWrapper.d.ts +11 -0
  17. package/dist/cjs/components/field-wrapper/FieldWrapper.js +25 -6
  18. package/dist/cjs/components/field-wrapper/FieldWrapper.js.map +1 -1
  19. package/dist/cjs/components/number-field/NumberField.d.ts +9 -0
  20. package/dist/cjs/components/number-field/NumberField.js +2 -5
  21. package/dist/cjs/components/number-field/NumberField.js.map +1 -1
  22. package/dist/cjs/components/select-field/SelectField.d.ts +8 -0
  23. package/dist/cjs/components/select-field/SelectField.js +2 -2
  24. package/dist/cjs/components/select-field/SelectField.js.map +1 -1
  25. package/dist/cjs/components/slider-field/SliderField.d.ts +9 -0
  26. package/dist/cjs/components/slider-field/SliderField.js +2 -2
  27. package/dist/cjs/components/slider-field/SliderField.js.map +1 -1
  28. package/dist/cjs/constants/copy.d.ts +3 -0
  29. package/dist/cjs/constants/copy.js +4 -1
  30. package/dist/cjs/constants/copy.js.map +1 -1
  31. package/dist/cjs/constants/icons.d.ts +2 -0
  32. package/dist/cjs/constants/icons.js +3 -1
  33. package/dist/cjs/constants/icons.js.map +1 -1
  34. package/dist/cjs/constants/variables.d.ts +4 -0
  35. package/dist/cjs/constants/variables.js +13 -1
  36. package/dist/cjs/constants/variables.js.map +1 -1
  37. package/dist/cjs/index.d.ts +6 -2
  38. package/dist/cjs/index.js +9 -1
  39. package/dist/cjs/index.js.map +1 -1
  40. package/dist/esm/components/advanced-number-field/AdvancedNumberField.d.ts +9 -0
  41. package/dist/esm/components/advanced-number-field/AdvancedNumberField.js +2 -2
  42. package/dist/esm/components/advanced-number-field/AdvancedNumberField.js.map +1 -1
  43. package/dist/esm/components/button-group-field/ButtonGroupField.d.ts +9 -0
  44. package/dist/esm/components/button-group-field/ButtonGroupField.js +38 -20
  45. package/dist/esm/components/button-group-field/ButtonGroupField.js.map +1 -1
  46. package/dist/esm/components/checkbox-field/CheckboxField.d.ts +8 -0
  47. package/dist/esm/components/checkbox-field/CheckboxField.js +2 -2
  48. package/dist/esm/components/checkbox-field/CheckboxField.js.map +1 -1
  49. package/dist/esm/components/color-field/ColorField.d.ts +8 -0
  50. package/dist/esm/components/color-field/ColorField.js +2 -2
  51. package/dist/esm/components/color-field/ColorField.js.map +1 -1
  52. package/dist/esm/components/controlled-list/ControlledList.d.ts +6 -2
  53. package/dist/esm/components/controlled-list/ControlledList.js +24 -7
  54. package/dist/esm/components/controlled-list/ControlledList.js.map +1 -1
  55. package/dist/esm/components/field-wrapper/FieldWrapper.d.ts +11 -0
  56. package/dist/esm/components/field-wrapper/FieldWrapper.js +24 -6
  57. package/dist/esm/components/field-wrapper/FieldWrapper.js.map +1 -1
  58. package/dist/esm/components/number-field/NumberField.d.ts +9 -0
  59. package/dist/esm/components/number-field/NumberField.js +2 -5
  60. package/dist/esm/components/number-field/NumberField.js.map +1 -1
  61. package/dist/esm/components/select-field/SelectField.d.ts +8 -0
  62. package/dist/esm/components/select-field/SelectField.js +2 -2
  63. package/dist/esm/components/select-field/SelectField.js.map +1 -1
  64. package/dist/esm/components/slider-field/SliderField.d.ts +9 -0
  65. package/dist/esm/components/slider-field/SliderField.js +2 -2
  66. package/dist/esm/components/slider-field/SliderField.js.map +1 -1
  67. package/dist/esm/constants/copy.d.ts +3 -0
  68. package/dist/esm/constants/copy.js +3 -0
  69. package/dist/esm/constants/copy.js.map +1 -1
  70. package/dist/esm/constants/icons.d.ts +2 -0
  71. package/dist/esm/constants/icons.js +4 -2
  72. package/dist/esm/constants/icons.js.map +1 -1
  73. package/dist/esm/constants/variables.d.ts +4 -0
  74. package/dist/esm/constants/variables.js +11 -0
  75. package/dist/esm/constants/variables.js.map +1 -1
  76. package/dist/esm/index.d.ts +6 -2
  77. package/dist/esm/index.js +5 -1
  78. package/dist/esm/index.js.map +1 -1
  79. package/dist/styles.css +130 -13
  80. package/dist/styles.less +369 -209
  81. package/less/components/button.less +5 -1
  82. package/less/components/controlled-list.less +122 -13
  83. package/less/components/dropdown.less +3 -0
  84. package/less/components/font-picker.less +18 -14
  85. package/less/components/form-field.less +224 -182
  86. package/package.json +3 -1
  87. package/src/components/advanced-number-field/AdvancedNumberField.tsx +33 -4
  88. package/src/components/button-group-field/ButtonGroupField.tsx +110 -39
  89. package/src/components/checkbox-field/CheckboxField.tsx +36 -3
  90. package/src/components/color-field/ColorField.tsx +29 -4
  91. package/src/components/config-variable-button/ConfigVariableButton.tsx +144 -0
  92. package/src/components/controlled-list/ControlledList.tsx +68 -14
  93. package/src/components/field-wrapper/FieldWrapper.tsx +80 -6
  94. package/src/components/font-field/FontField.tsx +78 -0
  95. package/src/components/icon-toggle/IconToggle.tsx +63 -0
  96. package/src/components/number-field/NumberField.tsx +34 -8
  97. package/src/components/select-field/SelectField.tsx +29 -4
  98. package/src/components/slider-field/SliderField.tsx +32 -2
  99. package/src/components/text-area-autocomplete/TextAreaAutocomplete.tsx +80 -0
  100. package/src/components/variables-dropdown/VariableDropdown.tsx +98 -0
  101. package/src/constants/copy.ts +4 -0
  102. package/src/constants/fonts.ts +296 -0
  103. package/src/constants/icons.tsx +6 -1
  104. package/src/constants/variables.ts +16 -0
  105. package/src/index.ts +11 -2
@@ -0,0 +1,78 @@
1
+ import FieldWrapper from '../field-wrapper/FieldWrapper';
2
+ import React from 'react';
3
+ import FontPicker from '../font-picker/FontPicker';
4
+ import { fontField } from '../../constants/copy';
5
+ import { DEFAULT_FONTS } from '../../constants/fonts';
6
+
7
+ interface IFontFieldProps {
8
+ font: string;
9
+ availableFonts: any[];
10
+ apiKey: string;
11
+ onChange: (font: string) => void;
12
+ width?: string | number;
13
+ labelPosition?: string;
14
+ label?: any;
15
+
16
+ override?: any;
17
+ showCopyPropIds?: boolean;
18
+ propKey?: string;
19
+ setOverride?(e): void;
20
+ removeOverride?(): void;
21
+ inventory?: any;
22
+ onClose?(e: boolean): void;
23
+ activeOverride: string;
24
+ }
25
+
26
+ const FontField = (props: IFontFieldProps) => {
27
+ const {
28
+ font,
29
+ availableFonts,
30
+ apiKey,
31
+ onChange,
32
+ width,
33
+ labelPosition,
34
+ label,
35
+ override,
36
+ showCopyPropIds,
37
+ propKey,
38
+ setOverride,
39
+ removeOverride,
40
+ inventory,
41
+ onClose,
42
+ activeOverride
43
+ } = props;
44
+
45
+ const customAvailableFonts = availableFonts.map((asset) => asset.name);
46
+ const standardFonts = DEFAULT_FONTS.map((f) => f.name);
47
+ const availableAssets = [...standardFonts, ...customAvailableFonts].sort();
48
+ const fontCheck = availableAssets.includes(font);
49
+ const fontValue = fontCheck ? font : fontField.fontNotFound;
50
+
51
+ return (
52
+ <FieldWrapper
53
+ customClass='font-field'
54
+ label={label}
55
+ labelPosition={labelPosition}
56
+ width={width}
57
+ propKey={propKey}
58
+ showCopyPropIds={showCopyPropIds}
59
+ inventory={inventory}
60
+ setOverride={setOverride}
61
+ onClose={onClose}
62
+ activeOverride={activeOverride}
63
+ removeOverride={removeOverride}
64
+ override={override}
65
+ type='text'>
66
+ <FontPicker
67
+ apiKey={apiKey}
68
+ activeFontFamily={fontValue}
69
+ families={availableAssets}
70
+ defaultFonts={DEFAULT_FONTS}
71
+ customFonts={availableFonts}
72
+ onChange={onChange}
73
+ />
74
+ </FieldWrapper>
75
+ );
76
+ };
77
+
78
+ export default FontField;
@@ -0,0 +1,63 @@
1
+ import React from 'react';
2
+ import { getConfigVariableButton } from '../config-variable-button/ConfigVariableButton';
3
+ import { getOverrideHandler } from '../../constants/variables';
4
+
5
+ interface IIconToggleProps {
6
+ selected: boolean;
7
+ onChange(selected: boolean): any;
8
+ icon: any;
9
+
10
+ override?: any;
11
+ showCopyPropIds?: boolean;
12
+ propKey?: string;
13
+ setOverride?(e): void;
14
+ removeOverride?(): void;
15
+ inventory?: any;
16
+ onClose?(e: boolean): void;
17
+ activeOverride?: string;
18
+ }
19
+
20
+ const IconToggle: React.FC<IIconToggleProps> = ({
21
+ icon,
22
+ selected,
23
+ onChange,
24
+ override,
25
+ showCopyPropIds,
26
+ propKey,
27
+ setOverride,
28
+ removeOverride,
29
+ inventory,
30
+ onClose,
31
+ activeOverride
32
+ }) => {
33
+ const content = selected ? icon : null;
34
+
35
+ const { hasOverride } = getOverrideHandler(propKey, override, inventory);
36
+
37
+ const inputField = () => {
38
+ if (hasOverride || showCopyPropIds) {
39
+ return getConfigVariableButton(
40
+ showCopyPropIds,
41
+ 'boolean',
42
+ inventory,
43
+ (o) => setOverride(o),
44
+ (o) => onClose(o),
45
+ icon,
46
+ activeOverride,
47
+ () => removeOverride()
48
+ );
49
+ } else {
50
+ return (
51
+ <div
52
+ className='icon-toggle'
53
+ onClick={() => onChange(!selected)}>
54
+ {content}
55
+ </div>
56
+ );
57
+ }
58
+ };
59
+
60
+ return inputField();
61
+ };
62
+
63
+ export default IconToggle;
@@ -18,6 +18,17 @@ interface INumberFieldProps {
18
18
  max?: number;
19
19
  onBlur?(e): void;
20
20
  focusOnMount?: boolean;
21
+
22
+ override?: any;
23
+ showCopyPropIds?: boolean;
24
+ propKey?: string;
25
+ setOverride?(e): void;
26
+ removeOverride?(): void;
27
+ inventory?: any;
28
+ onClose?(e: boolean): void;
29
+ activeOverride?: string;
30
+
31
+ previewMultiplier?: number;
21
32
  }
22
33
 
23
34
  interface INumberFieldState {
@@ -122,17 +133,24 @@ class NumberField extends React.PureComponent<INumberFieldProps, INumberFieldSta
122
133
  let error: string = null;
123
134
 
124
135
  const {
125
- label,
126
136
  placeholder,
127
137
  width,
128
138
  readOnly,
129
- buttons,
130
139
  tooltip,
131
140
  info,
132
141
  labelPosition,
133
142
  labelWidth,
134
143
  min,
135
- max
144
+ max,
145
+ showCopyPropIds,
146
+ propKey,
147
+ override,
148
+ inventory,
149
+ setOverride,
150
+ removeOverride,
151
+ onClose,
152
+ activeOverride,
153
+ previewMultiplier
136
154
  } = this.props;
137
155
  let value: any = this.state.value;
138
156
  if (value === null) {
@@ -154,15 +172,23 @@ class NumberField extends React.PureComponent<INumberFieldProps, INumberFieldSta
154
172
  return (
155
173
  <FieldWrapper
156
174
  customClass={`number-field ${this.state.error ? 'invalid' : ''}`}
157
- // draggableValue = {true}
158
- // onDrag = {(v)=>this.handleLabelDrag(v)}
159
- label={label}
175
+ label={this.props.label}
160
176
  tooltip={tooltip}
161
- buttons={buttons}
177
+ buttons={this.props.buttons}
162
178
  info={error}
163
179
  labelPosition={labelPosition}
164
180
  labelWidth={labelWidth}
165
- width={width}>
181
+ width={width}
182
+ propKey={propKey}
183
+ showCopyPropIds={showCopyPropIds}
184
+ inventory={inventory}
185
+ setOverride={setOverride}
186
+ onClose={onClose}
187
+ activeOverride={activeOverride}
188
+ removeOverride={removeOverride}
189
+ override={override}
190
+ type='number'
191
+ previewMultiplier={previewMultiplier}>
166
192
  <input
167
193
  ref={this.inputRef}
168
194
  type='number'
@@ -23,6 +23,15 @@ interface ISelectFieldProps {
23
23
  showCopy?: boolean;
24
24
  onNotification?(e): void;
25
25
  onError?(e): void;
26
+
27
+ override?: any;
28
+ showCopyPropIds?: boolean;
29
+ propKey?: string;
30
+ setOverride?(e): void;
31
+ removeOverride?(): void;
32
+ inventory?: any;
33
+ onClose?(e: boolean): void;
34
+ activeOverride?: string;
26
35
  }
27
36
 
28
37
  class SelectField extends React.PureComponent<ISelectFieldProps> {
@@ -68,7 +77,6 @@ class SelectField extends React.PureComponent<ISelectFieldProps> {
68
77
 
69
78
  public render() {
70
79
  const {
71
- label,
72
80
  showCopy,
73
81
  options,
74
82
  value,
@@ -80,7 +88,15 @@ class SelectField extends React.PureComponent<ISelectFieldProps> {
80
88
  info,
81
89
  labelPosition,
82
90
  labelWidth,
83
- disableFirst
91
+ disableFirst,
92
+ propKey,
93
+ override,
94
+ inventory,
95
+ setOverride,
96
+ removeOverride,
97
+ onClose,
98
+ showCopyPropIds,
99
+ activeOverride
84
100
  } = this.props;
85
101
 
86
102
  const selectValue = value === null || value === undefined ? '' : value;
@@ -147,13 +163,22 @@ class SelectField extends React.PureComponent<ISelectFieldProps> {
147
163
  return (
148
164
  <FieldWrapper
149
165
  customClass='select-field'
150
- label={label}
166
+ label={this.props.label}
151
167
  tooltip={tooltip}
152
168
  buttons={btns}
153
169
  info={info}
154
170
  labelPosition={labelPosition}
155
171
  labelWidth={labelWidth}
156
- width={width}>
172
+ width={width}
173
+ propKey={propKey}
174
+ showCopyPropIds={showCopyPropIds}
175
+ inventory={inventory}
176
+ setOverride={setOverride}
177
+ onClose={onClose}
178
+ activeOverride={activeOverride}
179
+ removeOverride={removeOverride}
180
+ override={override}
181
+ type='text'>
157
182
  <select
158
183
  value={selectValue}
159
184
  onChange={(e) => this.onChange(e)}
@@ -17,6 +17,17 @@ interface ISliderFieldProps {
17
17
  labelPosition?: string;
18
18
  labelWidth?: string | number;
19
19
  enabledToggle?: boolean;
20
+
21
+ override?: any;
22
+ showCopyPropIds?: boolean;
23
+ propKey?: string;
24
+ setOverride?(e): void;
25
+ removeOverride?(): void;
26
+ inventory?: any;
27
+ onClose?(e: boolean): void;
28
+ activeOverride?: string;
29
+
30
+ previewMultiplier?: number;
20
31
  }
21
32
 
22
33
  interface ISliderFieldState {
@@ -92,7 +103,16 @@ class SliderField extends React.PureComponent<ISliderFieldProps, ISliderFieldSta
92
103
  info,
93
104
  labelPosition,
94
105
  labelWidth,
95
- enabledToggle
106
+ enabledToggle,
107
+ propKey,
108
+ showCopyPropIds,
109
+ inventory,
110
+ setOverride,
111
+ onClose,
112
+ activeOverride,
113
+ removeOverride,
114
+ override,
115
+ previewMultiplier
96
116
  } = this.props;
97
117
  const { tempValue } = this.state;
98
118
  const valueSet = value !== null && value !== undefined;
@@ -109,7 +129,17 @@ class SliderField extends React.PureComponent<ISliderFieldProps, ISliderFieldSta
109
129
  info={info}
110
130
  labelPosition={labelPosition}
111
131
  labelWidth={labelWidth}
112
- width={width}>
132
+ width={width}
133
+ propKey={propKey}
134
+ showCopyPropIds={showCopyPropIds}
135
+ inventory={inventory}
136
+ setOverride={setOverride}
137
+ onClose={onClose}
138
+ activeOverride={activeOverride}
139
+ removeOverride={removeOverride}
140
+ override={override}
141
+ type='number'
142
+ previewMultiplier={previewMultiplier}>
113
143
  {enabledToggle && (
114
144
  <div
115
145
  className='checkbox'
@@ -0,0 +1,80 @@
1
+ import React from 'react';
2
+ import ReactTextareaAutocomplete from '@imposium-hub/react-textarea-autocomplete';
3
+ import FieldWrapper from '../field-wrapper/FieldWrapper';
4
+ import Spinner from '../spinner/Spinner';
5
+
6
+ interface ITextAreaAutocompleteProps {
7
+ options: any;
8
+ variables: any;
9
+ varsData: any;
10
+ variableItem: any;
11
+ onChange?(e: any): void;
12
+ label?: any;
13
+
14
+ override?: any;
15
+ showCopyPropIds?: boolean;
16
+ propKey?: string;
17
+ setOverride?(e): void;
18
+ removeOverride?(): void;
19
+ inventory?: any;
20
+ onClose?(e: boolean): void;
21
+ activeOverride?: string;
22
+ }
23
+
24
+ const TextAreaAutocomplete = (props: ITextAreaAutocompleteProps) => {
25
+ const {
26
+ options,
27
+ showCopyPropIds,
28
+ inventory,
29
+ override,
30
+ setOverride,
31
+ removeOverride,
32
+ onClose,
33
+ propKey,
34
+ varsData,
35
+ variableItem,
36
+ onChange,
37
+ activeOverride,
38
+ label
39
+ } = props;
40
+
41
+ return (
42
+ <FieldWrapper
43
+ label={label}
44
+ labelPosition='top'
45
+ customClass='text-area-field autocomplete'
46
+ propKey={propKey}
47
+ showCopyPropIds={showCopyPropIds}
48
+ inventory={inventory}
49
+ setOverride={setOverride}
50
+ onClose={onClose}
51
+ activeOverride={activeOverride}
52
+ removeOverride={removeOverride}
53
+ override={override}
54
+ type='textarea'>
55
+ <ReactTextareaAutocomplete
56
+ key='text-autocomplete'
57
+ onChange={(e) => onChange(e.target.value)}
58
+ value={options['content']}
59
+ loadingComponent={() => <Spinner />}
60
+ movePopupAsYouType
61
+ minChar={0}
62
+ tabOrEnter={true}
63
+ trigger={{
64
+ '{': {
65
+ dataProvider: (d) => {
66
+ const filtered = varsData.filter((f) =>
67
+ f.name.toLowerCase().startsWith(d)
68
+ );
69
+ return filtered;
70
+ },
71
+ component: variableItem,
72
+ output: (value) => `{{${value.name}}}`
73
+ }
74
+ }}
75
+ />
76
+ </FieldWrapper>
77
+ );
78
+ };
79
+
80
+ export default TextAreaAutocomplete;
@@ -0,0 +1,98 @@
1
+ import React from 'react';
2
+ import { ICON_TIMES, ICON_WARNING } from '../../constants/icons';
3
+ import { ControlListType } from '../controlled-list/ControlledList';
4
+ import Button from '../button/Button';
5
+ import { renderTooltip, renderTooltipProps } from '../Tooltip';
6
+ import { generateUUID } from '../../Util';
7
+
8
+ interface IVariableDropDownProps {
9
+ returnVariables: boolean;
10
+ type: ControlListType;
11
+ inventory: any;
12
+ setOverride?(e): void;
13
+ removeOverride?(): void;
14
+ activeOverride?: string;
15
+ }
16
+
17
+ const VariableDropDown: React.FC<IVariableDropDownProps> = (props: IVariableDropDownProps) => {
18
+ const { returnVariables, inventory, setOverride, removeOverride, activeOverride } = props;
19
+
20
+ const type = props.type === 'textarea' ? 'text' : props.type;
21
+ const include = type ? [type.toLowerCase()] : [];
22
+
23
+ const variableOptions = [];
24
+
25
+ if (returnVariables) {
26
+ for (const key in inventory) {
27
+ if (inventory.hasOwnProperty(key)) {
28
+ const variable = inventory[key];
29
+
30
+ if (include.indexOf(variable.type.toLowerCase()) !== -1 || include.length === 0) {
31
+ variableOptions.push(variable);
32
+ }
33
+ }
34
+ }
35
+
36
+ const warningTooltipId = `imposium-button-${generateUUID()}`;
37
+ const warning = (
38
+ <div
39
+ className='warning'
40
+ {...renderTooltipProps(warningTooltipId, 'No variable preview')}>
41
+ {ICON_WARNING}
42
+ {renderTooltip(warningTooltipId, 'No variable preview')}
43
+ </div>
44
+ );
45
+
46
+ const removeButton = (
47
+ <div className='buttons'>
48
+ <Button
49
+ onClick={() => removeOverride()}
50
+ size='small'
51
+ style='subtle'
52
+ color='danger'>
53
+ {ICON_TIMES}
54
+ </Button>
55
+ </div>
56
+ );
57
+
58
+ const variableOption = () => {
59
+ const options = variableOptions.map((variable) => {
60
+ const hasPreviewItem =
61
+ variable.previewItem.src !== null && variable.previewItem.src !== undefined;
62
+
63
+ const className = `variable-name ${
64
+ activeOverride === variable.name ? 'active' : ''
65
+ }`;
66
+
67
+ const showRemoveButton = activeOverride === variable.name ? removeButton : null;
68
+ const showWarning = !hasPreviewItem && warning;
69
+
70
+ const onClickHandler = () => {
71
+ if (activeOverride === variable.name) return;
72
+ setOverride(variable);
73
+ };
74
+
75
+ return (
76
+ <div
77
+ className='color-options-menu'
78
+ key={variable.id.toString()}>
79
+ <div
80
+ className='color-option-list'
81
+ onClick={onClickHandler}>
82
+ <div className={className}>
83
+ <p>{variable.name}</p>
84
+ {showRemoveButton}
85
+ {showWarning}
86
+ </div>
87
+ </div>
88
+ </div>
89
+ );
90
+ });
91
+
92
+ return options;
93
+ };
94
+ return <>{variableOption()}</>;
95
+ }
96
+ };
97
+
98
+ export default VariableDropDown;
@@ -287,3 +287,7 @@ export const confirm: any = {
287
287
  no: 'No',
288
288
  cancel: 'Cancel'
289
289
  };
290
+
291
+ export const fontField = {
292
+ fontNotFound: 'Font not found'
293
+ };