-
Notifications
You must be signed in to change notification settings - Fork 67
Expand file tree
/
Copy pathattributes.js
More file actions
122 lines (117 loc) · 2.25 KB
/
attributes.js
File metadata and controls
122 lines (117 loc) · 2.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
import { deprecatedAddAttributes } from './deprecated'
const typographyAttributes = {
lineHeight: {
stkResponsive: true,
type: 'number',
default: '',
stkUnits: 'em',
},
fontFamily: {
type: 'string',
default: '',
},
fontStyle: {
type: 'string',
default: '',
},
fontWeight: {
type: 'string',
default: '',
},
textTransform: {
type: 'string',
default: '',
},
letterSpacing: {
stkResponsive: true,
type: 'number',
default: '',
},
textColorType: {
type: 'string',
default: '',
},
textColorClass: {
type: 'string',
default: '',
},
textColor1: {
type: 'string',
stkHover: true,
default: '',
},
textShadow: {
stkHover: true,
type: 'string',
default: '',
},
textAlign: {
stkResponsive: true,
type: 'string',
default: '',
},
hasP: {
type: 'boolean',
default: false,
},
}
export const addAttributes = ( attrObject, selector = '.stk-content', options = {} ) => {
const {
hasTextTag = true,
hasTextContent = true,
defaultTextTag = 'p',
attrNameTemplate = '%s',
multiline,
defaultText = '',
multilineWrapperTags: __unstableMultilineWrapperTags,
} = options
deprecatedAddAttributes( attrObject, options )
attrObject.add( {
attributes: {
...typographyAttributes,
// TODO:Add 'show' attribute if attributeNameTemplate is not the default
...( hasTextContent ? {
showText: {
type: 'boolean',
default: true,
},
text: {
source: 'html',
selector,
multiline,
default: defaultText,
__unstableMultilineWrapperTags,
/**
* Starting from WP 6.9, the toolbar gets hidden when the text block is set as the default block.
* Setting the role to 'content' will prevent the toolbar from being hidden.
* see https://github.com/WordPress/gutenberg/pull/70897
*/
role: 'content',
__experimentalRole: 'content',
},
} : {} ),
...( hasTextTag ? {
textTag: {
type: 'string',
default: defaultTextTag,
},
} : {} ),
},
versionAdded: '3.0.0',
versionDeprecated: '',
attrNameTemplate,
} )
attrObject.add( {
attributes: {
fontSize: {
stkResponsive: true,
type: 'string',
default: '',
stkUnits: 'px',
},
},
versionAdded: '3.16.0',
versionDeprecated: '',
attrNameTemplate,
} )
}