@stylexjs/shared 0.2.0-beta.9 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/common-types.d.ts +50 -0
- package/lib/common-types.js.flow +65 -0
- package/lib/convert-to-className.d.ts +16 -0
- package/lib/convert-to-className.js +17 -26
- package/lib/convert-to-className.js.flow +23 -0
- package/lib/generate-css-rule.d.ts +17 -0
- package/lib/generate-css-rule.js +6 -17
- package/lib/generate-css-rule.js.flow +17 -0
- package/lib/hash.d.ts +11 -0
- package/lib/hash.js +3 -27
- package/lib/hash.js.flow +10 -0
- package/lib/index.d.ts +42 -85
- package/lib/index.js +19 -27
- package/lib/index.js.flow +57 -3
- package/lib/messages.d.ts +36 -0
- package/lib/messages.js +28 -53
- package/lib/messages.js.flow +39 -0
- package/lib/physical-rtl/generate-ltr.d.ts +11 -0
- package/lib/physical-rtl/generate-ltr.js +18 -46
- package/lib/physical-rtl/generate-ltr.js.flow +12 -0
- package/lib/physical-rtl/generate-rtl.d.ts +13 -0
- package/lib/physical-rtl/generate-rtl.js +18 -50
- package/lib/physical-rtl/generate-rtl.js.flow +12 -0
- package/lib/preprocess-rules/PreRule.d.ts +52 -0
- package/lib/preprocess-rules/PreRule.js +87 -0
- package/lib/preprocess-rules/PreRule.js.flow +64 -0
- package/lib/preprocess-rules/application-order.d.ts +290 -0
- package/lib/preprocess-rules/application-order.js +59 -125
- package/lib/preprocess-rules/application-order.js.flow +241 -0
- package/lib/preprocess-rules/basic-validation.d.ts +13 -0
- package/lib/preprocess-rules/basic-validation.js +83 -0
- package/lib/preprocess-rules/basic-validation.js.flow +13 -0
- package/lib/preprocess-rules/flatten-raw-style-obj.d.ts +25 -0
- package/lib/preprocess-rules/flatten-raw-style-obj.js +120 -0
- package/lib/preprocess-rules/flatten-raw-style-obj.js.flow +27 -0
- package/lib/preprocess-rules/index.d.ts +18 -0
- package/lib/preprocess-rules/index.js +0 -9
- package/lib/preprocess-rules/index.js.flow +19 -0
- package/lib/preprocess-rules/legacy-expand-shorthands.d.ts +200 -0
- package/lib/preprocess-rules/legacy-expand-shorthands.js +90 -123
- package/lib/preprocess-rules/legacy-expand-shorthands.js.flow +179 -0
- package/lib/preprocess-rules/property-specificity.d.ts +89 -0
- package/lib/preprocess-rules/property-specificity.js +46 -74
- package/lib/preprocess-rules/property-specificity.js.flow +98 -0
- package/lib/properties/CSS Animations.json +445 -0
- package/lib/properties/CSS Backgrounds and Borders.json +1085 -0
- package/lib/properties/CSS Basic User Interface.json +365 -0
- package/lib/properties/CSS Box Alignment.json +245 -0
- package/lib/properties/CSS Box Model.json +501 -0
- package/lib/properties/CSS Color.json +100 -0
- package/lib/properties/CSS Columns.json +185 -0
- package/lib/properties/CSS Containment.json +203 -0
- package/lib/properties/CSS Counter Styles.json +56 -0
- package/lib/properties/CSS Display.json +20 -0
- package/lib/properties/CSS Flexible Box Layout.json +167 -0
- package/lib/properties/CSS Fonts.json +684 -0
- package/lib/properties/CSS Fragmentation.json +110 -0
- package/lib/properties/CSS Generated Content.json +38 -0
- package/lib/properties/CSS Grid Layout.json +500 -0
- package/lib/properties/CSS Images.json +91 -0
- package/lib/properties/CSS Inline.json +38 -0
- package/lib/properties/CSS Lists and Counters.json +86 -0
- package/lib/properties/CSS Logical Properties.json +1086 -0
- package/lib/properties/CSS Masking.json +399 -0
- package/lib/properties/CSS Miscellaneous.json +38 -0
- package/lib/properties/CSS Motion Path.json +132 -0
- package/lib/properties/CSS Overflow.json +216 -0
- package/lib/properties/CSS Pages.json +83 -0
- package/lib/properties/CSS Positioning.json +166 -0
- package/lib/properties/CSS Ruby.json +55 -0
- package/lib/properties/CSS Scroll Anchoring.json +19 -0
- package/lib/properties/CSS Scroll Snap.json +604 -0
- package/lib/properties/CSS Scrollbars.json +38 -0
- package/lib/properties/CSS Shapes.json +56 -0
- package/lib/properties/CSS Speech.json +20 -0
- package/lib/properties/CSS Table.json +115 -0
- package/lib/properties/CSS Text Decoration.json +312 -0
- package/lib/properties/CSS Text.json +415 -0
- package/lib/properties/CSS Transforms.json +188 -0
- package/lib/properties/CSS Transitions.json +122 -0
- package/lib/properties/CSS Variables.json +20 -0
- package/lib/properties/CSS View Transitions.json +20 -0
- package/lib/properties/CSS Will Change.json +20 -0
- package/lib/properties/CSS Writing Modes.json +92 -0
- package/lib/properties/Compositing and Blending.json +62 -0
- package/lib/properties/Filter Effects.json +38 -0
- package/lib/properties/MathML.json +56 -0
- package/lib/properties/Microsoft Extensions.json +885 -0
- package/lib/properties/Mozilla Extensions.json +607 -0
- package/lib/properties/Pointer Events.json +20 -0
- package/lib/properties/WebKit Extensions.json +707 -0
- package/lib/properties.json +10122 -0
- package/lib/stylex-create-theme.d.ts +26 -0
- package/lib/stylex-create-theme.js +62 -0
- package/lib/stylex-create-theme.js.flow +19 -0
- package/lib/stylex-create.d.ts +23 -0
- package/lib/stylex-create.js +30 -146
- package/lib/stylex-create.js.flow +30 -0
- package/lib/stylex-define-vars.d.ts +36 -0
- package/lib/stylex-define-vars.js +72 -0
- package/lib/stylex-define-vars.js.flow +28 -0
- package/lib/stylex-first-that-works.d.ts +13 -0
- package/lib/stylex-first-that-works.js +0 -10
- package/lib/stylex-first-that-works.js.flow +12 -0
- package/lib/stylex-include.d.ts +18 -0
- package/lib/stylex-include.js +0 -10
- package/lib/stylex-include.js.flow +20 -0
- package/lib/stylex-keyframes.d.ts +17 -0
- package/lib/stylex-keyframes.js +6 -26
- package/lib/stylex-keyframes.js.flow +20 -0
- package/lib/transform-value.d.ts +22 -0
- package/lib/transform-value.js +9 -23
- package/lib/transform-value.js.flow +25 -0
- package/lib/types/index.d.ts +205 -0
- package/lib/types/index.js +191 -0
- package/lib/types/index.js.flow +241 -0
- package/lib/utils/Rule.d.ts +58 -0
- package/lib/utils/Rule.js +0 -21
- package/lib/utils/Rule.js.flow +64 -0
- package/lib/utils/dashify.d.ts +11 -0
- package/lib/utils/dashify.js +0 -8
- package/lib/utils/dashify.js.flow +10 -0
- package/lib/utils/default-options.d.ts +11 -0
- package/lib/utils/default-options.js +14 -0
- package/lib/utils/default-options.js.flow +25 -0
- package/lib/utils/file-based-identifier.d.ts +15 -0
- package/lib/utils/file-based-identifier.js +14 -0
- package/lib/utils/file-based-identifier.js.flow +14 -0
- package/lib/utils/genCSSRule.d.ts +15 -0
- package/lib/utils/genCSSRule.js +9 -18
- package/lib/utils/genCSSRule.js.flow +15 -0
- package/lib/utils/normalize-value.d.ts +16 -0
- package/lib/utils/normalize-value.js +8 -15
- package/lib/utils/normalize-value.js.flow +16 -0
- package/lib/utils/normalizers/convert-camel-case-transition-props.d.ts +14 -0
- package/lib/utils/normalizers/convert-camel-case-transition-props.js +23 -0
- package/lib/utils/normalizers/convert-camel-case-transition-props.js.flow +13 -0
- package/lib/utils/normalizers/convert-camel-case-values.d.ts +14 -0
- package/lib/utils/normalizers/convert-camel-case-values.js +23 -0
- package/lib/utils/normalizers/convert-camel-case-values.js.flow +13 -0
- package/lib/utils/normalizers/detect-unclosed-fns.d.ts +17 -0
- package/lib/utils/normalizers/detect-unclosed-fns.js +0 -12
- package/lib/utils/normalizers/detect-unclosed-fns.js.flow +16 -0
- package/lib/utils/normalizers/font-size-px-to-rem.d.ts +19 -0
- package/lib/utils/normalizers/font-size-px-to-rem.js +9 -19
- package/lib/utils/normalizers/font-size-px-to-rem.js.flow +18 -0
- package/lib/utils/normalizers/leading-zero.d.ts +17 -0
- package/lib/utils/normalizers/leading-zero.js +0 -12
- package/lib/utils/normalizers/leading-zero.js.flow +16 -0
- package/lib/utils/normalizers/quotes.d.ts +18 -0
- package/lib/utils/normalizers/quotes.js +0 -13
- package/lib/utils/normalizers/quotes.js.flow +17 -0
- package/lib/utils/normalizers/timings.d.ts +18 -0
- package/lib/utils/normalizers/timings.js +0 -14
- package/lib/utils/normalizers/timings.js.flow +17 -0
- package/lib/utils/normalizers/whitespace.d.ts +19 -0
- package/lib/utils/normalizers/whitespace.js +0 -15
- package/lib/utils/normalizers/whitespace.js.flow +18 -0
- package/lib/utils/normalizers/zero-dimensions.d.ts +19 -0
- package/lib/utils/normalizers/zero-dimensions.js +0 -15
- package/lib/utils/normalizers/zero-dimensions.js.flow +18 -0
- package/lib/utils/object-utils.d.ts +66 -0
- package/lib/utils/object-utils.js +21 -13
- package/lib/utils/object-utils.js.flow +77 -0
- package/lib/utils/property-priorities.d.ts +11 -0
- package/lib/utils/property-priorities.js +516 -101
- package/lib/utils/property-priorities.js.flow +10 -0
- package/lib/utils/split-css-value.d.ts +14 -0
- package/lib/utils/split-css-value.js +0 -14
- package/lib/utils/split-css-value.js.flow +15 -0
- package/lib/validate.d.ts +12 -0
- package/lib/validate.js +1 -10
- package/lib/validate.js.flow +12 -0
- package/package.json +4 -5
- package/lib/expand-shorthands.d.ts +0 -5
- package/lib/expand-shorthands.js +0 -330
- package/lib/namespace-transforms/__tests__/preflatten.test.js +0 -120
- package/lib/namespace-transforms/preflatten.js +0 -89
- package/lib/preprocess-rules/expand-shorthands.js +0 -156
- package/lib/preprocess-rules/null-out-longhand.js +0 -310
- package/lib/preprocess-rules/react-native-web.js +0 -142
- package/lib/stylex-defaultValue.js +0 -397
@@ -0,0 +1,241 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
3
|
+
*
|
4
|
+
* This source code is licensed under the MIT license found in the
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
6
|
+
*
|
7
|
+
* @flow strict
|
8
|
+
*/
|
9
|
+
|
10
|
+
import type { TStyleValue } from '../common-types';
|
11
|
+
|
12
|
+
/**
|
13
|
+
* Shorthand properties:
|
14
|
+
* - [x] all - Should be banned
|
15
|
+
* - [x] animation
|
16
|
+
* - [x] background
|
17
|
+
* - [x] border
|
18
|
+
* - [x] border-block-end
|
19
|
+
* - [x] border-block-start
|
20
|
+
* - [x] border-bottom
|
21
|
+
* - [x] border-color
|
22
|
+
* - [x] border-image
|
23
|
+
* - [x] border-inline-end
|
24
|
+
* - [x] border-inline-start
|
25
|
+
* - [x] border-left
|
26
|
+
* - [x] border-radius
|
27
|
+
* - [x] border-right
|
28
|
+
* - [x] border-style
|
29
|
+
* - [x] border-top
|
30
|
+
* - [x] border-width
|
31
|
+
* - [x] column-rule
|
32
|
+
* - [x] columns
|
33
|
+
* - [x] container
|
34
|
+
* - [x] flex
|
35
|
+
* - [x] flex-flow
|
36
|
+
* - [x] font
|
37
|
+
* - [x] gap
|
38
|
+
* - [x] grid
|
39
|
+
* - [x] grid-area
|
40
|
+
* - [x] grid-column
|
41
|
+
* - [x] grid-row
|
42
|
+
* - [x] grid-template
|
43
|
+
* - [x] inset
|
44
|
+
* - [x] inset-block
|
45
|
+
* - [x] inset-inline
|
46
|
+
* - [x] list-style
|
47
|
+
* - [x] margin
|
48
|
+
* - [x] mask
|
49
|
+
* - [x] offset
|
50
|
+
* - [x] outline
|
51
|
+
* - [x] overflow
|
52
|
+
* - [x] padding
|
53
|
+
* - [x] place-content
|
54
|
+
* - [x] place-items
|
55
|
+
* - [x] place-self
|
56
|
+
* - [x] scroll-margin
|
57
|
+
* - [x] scroll-padding
|
58
|
+
* - [x] text-decoration
|
59
|
+
* - [x] text-emphasis
|
60
|
+
* - [x] transition
|
61
|
+
*/
|
62
|
+
|
63
|
+
type TReturn = $ReadOnlyArray<[string, TStyleValue]>;
|
64
|
+
|
65
|
+
declare const shorthands: {
|
66
|
+
all: (_: TStyleValue) => TReturn,
|
67
|
+
animation: (value: TStyleValue) => Array<[string, TStyleValue]>,
|
68
|
+
animationRange: (value: TStyleValue) => TReturn,
|
69
|
+
background: (value: TStyleValue) => TReturn,
|
70
|
+
backgroundPosition: (value: TStyleValue) => TReturn,
|
71
|
+
border: (rawValue: TStyleValue) => TReturn,
|
72
|
+
borderInline: (rawValue: TStyleValue) => TReturn,
|
73
|
+
borderBlock: (rawValue: TStyleValue) => TReturn,
|
74
|
+
borderTop: (rawValue: TStyleValue) => TReturn,
|
75
|
+
borderInlineEnd: (rawValue: TStyleValue) => TReturn,
|
76
|
+
borderRight: (rawValue: TStyleValue) => TReturn,
|
77
|
+
borderBottom: (rawValue: TStyleValue) => TReturn,
|
78
|
+
borderInlineStart: (_rawValue: TStyleValue) => TReturn,
|
79
|
+
borderLeft: (_rawValue: TStyleValue) => TReturn,
|
80
|
+
borderInlineWidth: (rawValue: TStyleValue) => TReturn,
|
81
|
+
borderInlineStyle: (rawValue: TStyleValue) => TReturn,
|
82
|
+
borderInlineColor: (rawValue: TStyleValue) => TReturn,
|
83
|
+
borderBlockWidth: (rawValue: TStyleValue) => TReturn,
|
84
|
+
borderBlockStyle: (rawValue: TStyleValue) => TReturn,
|
85
|
+
borderBlockColor: (rawValue: TStyleValue) => TReturn,
|
86
|
+
borderColor: (value: TStyleValue) => TReturn,
|
87
|
+
borderStyle: (value: TStyleValue) => TReturn,
|
88
|
+
borderWidth: (value: TStyleValue) => TReturn,
|
89
|
+
borderInlineStartColor: (value: TStyleValue) => TReturn,
|
90
|
+
borderInlineEndColor: (value: TStyleValue) => TReturn,
|
91
|
+
borderInlineStartStyle: (value: TStyleValue) => TReturn,
|
92
|
+
borderInlineEndStyle: (value: TStyleValue) => TReturn,
|
93
|
+
borderInlineStartWidth: (value: TStyleValue) => TReturn,
|
94
|
+
borderInlineEndWidth: (value: TStyleValue) => TReturn,
|
95
|
+
borderLeftColor: (value: TStyleValue) => TReturn,
|
96
|
+
borderRightColor: (value: TStyleValue) => TReturn,
|
97
|
+
borderLeftStyle: (value: TStyleValue) => TReturn,
|
98
|
+
borderRightStyle: (value: TStyleValue) => TReturn,
|
99
|
+
borderLeftWidth: (value: TStyleValue) => TReturn,
|
100
|
+
borderRightWidth: (value: TStyleValue) => TReturn,
|
101
|
+
borderRadius: (value: TStyleValue) => TReturn,
|
102
|
+
borderStartStartRadius: (value: TStyleValue) => TReturn,
|
103
|
+
borderStartEndRadius: (value: TStyleValue) => TReturn,
|
104
|
+
borderEndStartRadius: (value: TStyleValue) => TReturn,
|
105
|
+
borderEndEndRadius: (value: TStyleValue) => TReturn,
|
106
|
+
borderTopLeftRadius: (value: TStyleValue) => TReturn,
|
107
|
+
borderTopRightRadius: (value: TStyleValue) => TReturn,
|
108
|
+
borderBottomLeftRadius: (value: TStyleValue) => TReturn,
|
109
|
+
borderBottomRightRadius: (value: TStyleValue) => TReturn,
|
110
|
+
borderImage: (value: TStyleValue) => TReturn,
|
111
|
+
columnRule: (value: TStyleValue) => TReturn,
|
112
|
+
columns: (value: TStyleValue) => TReturn,
|
113
|
+
container: (value: TStyleValue) => TReturn,
|
114
|
+
containIntrinsicSize: (value: TStyleValue) => TReturn,
|
115
|
+
flex: (value: TStyleValue) => TReturn,
|
116
|
+
flexFlow: (value: TStyleValue) => TReturn,
|
117
|
+
font: (value: TStyleValue) => TReturn,
|
118
|
+
fontVariant: (value: TStyleValue) => TReturn,
|
119
|
+
gap: (value: TStyleValue) => TReturn,
|
120
|
+
grid: (value: TStyleValue) => TReturn,
|
121
|
+
gridArea: (value: TStyleValue) => TReturn,
|
122
|
+
gridRow: (value: TStyleValue) => TReturn,
|
123
|
+
gridColumn: (value: TStyleValue) => TReturn,
|
124
|
+
gridTemplate: (value: TStyleValue) => TReturn,
|
125
|
+
inset: (value: TStyleValue) => TReturn,
|
126
|
+
insetInline: (value: TStyleValue) => TReturn,
|
127
|
+
insetBlock: (value: TStyleValue) => TReturn,
|
128
|
+
insetInlineStart: (value: TStyleValue) => TReturn,
|
129
|
+
insetInlineEnd: (value: TStyleValue) => TReturn,
|
130
|
+
left: (value: TStyleValue) => TReturn,
|
131
|
+
right: (value: TStyleValue) => TReturn,
|
132
|
+
listStyle: (value: TStyleValue) => TReturn,
|
133
|
+
margin: (value: TStyleValue) => TReturn,
|
134
|
+
marginInline: (value: TStyleValue) => TReturn,
|
135
|
+
marginBlock: (value: TStyleValue) => TReturn,
|
136
|
+
marginInlineStart: (value: TStyleValue) => TReturn,
|
137
|
+
marginInlineEnd: (value: TStyleValue) => TReturn,
|
138
|
+
marginLeft: (value: TStyleValue) => TReturn,
|
139
|
+
marginRight: (value: TStyleValue) => TReturn,
|
140
|
+
mask: (value: TStyleValue) => TReturn,
|
141
|
+
maskBorder: (value: TStyleValue) => TReturn,
|
142
|
+
offset: (value: TStyleValue) => TReturn,
|
143
|
+
outline: (value: TStyleValue) => TReturn,
|
144
|
+
overflow: (value: TStyleValue) => TReturn,
|
145
|
+
padding: (rawValue: TStyleValue) => TReturn,
|
146
|
+
paddingInline: (rawValue: TStyleValue) => TReturn,
|
147
|
+
paddingBlock: (rawValue: TStyleValue) => TReturn,
|
148
|
+
paddingInlineStart: (value: TStyleValue) => TReturn,
|
149
|
+
paddingInlineEnd: (value: TStyleValue) => TReturn,
|
150
|
+
paddingLeft: (value: TStyleValue) => TReturn,
|
151
|
+
paddingRight: (value: TStyleValue) => TReturn,
|
152
|
+
placeContent: (value: TStyleValue) => TReturn,
|
153
|
+
placeItems: (value: TStyleValue) => TReturn,
|
154
|
+
placeSelf: (value: TStyleValue) => TReturn,
|
155
|
+
scrollMargin: (value: TStyleValue) => TReturn,
|
156
|
+
scrollMarginBlock: (value: TStyleValue) => TReturn,
|
157
|
+
scrollMarginInline: (value: TStyleValue) => TReturn,
|
158
|
+
scrollMarginInlineStart: (value: TStyleValue) => TReturn,
|
159
|
+
scrollMarginInlineEnd: (value: TStyleValue) => TReturn,
|
160
|
+
scrollMarginLeft: (value: TStyleValue) => TReturn,
|
161
|
+
scrollMarginRight: (value: TStyleValue) => TReturn,
|
162
|
+
scrollPadding: (value: TStyleValue) => TReturn,
|
163
|
+
scrollPaddingBlock: (value: TStyleValue) => TReturn,
|
164
|
+
scrollPaddingInline: (value: TStyleValue) => TReturn,
|
165
|
+
scrollPaddingInlineStart: (value: TStyleValue) => TReturn,
|
166
|
+
scrollPaddingInlineEnd: (value: TStyleValue) => TReturn,
|
167
|
+
scrollPaddingLeft: (value: TStyleValue) => TReturn,
|
168
|
+
scrollPaddingRight: (value: TStyleValue) => TReturn,
|
169
|
+
scrollSnapType: (value: TStyleValue) => TReturn,
|
170
|
+
scrollTimeline: (value: TStyleValue) => TReturn,
|
171
|
+
textDecoration: (value: TStyleValue) => TReturn,
|
172
|
+
textEmphasis: (value: TStyleValue) => TReturn,
|
173
|
+
transition: (value: TStyleValue) => TReturn,
|
174
|
+
};
|
175
|
+
|
176
|
+
declare const aliases: {
|
177
|
+
borderHorizontal: $FlowFixMe,
|
178
|
+
borderVertical: $FlowFixMe,
|
179
|
+
borderBlockStart: $FlowFixMe,
|
180
|
+
borderEnd: $FlowFixMe,
|
181
|
+
borderBlockEnd: $FlowFixMe,
|
182
|
+
borderStart: $FlowFixMe,
|
183
|
+
blockSize: (val: TStyleValue) => TReturn,
|
184
|
+
inlineSize: (val: TStyleValue) => TReturn,
|
185
|
+
minBlockSize: (val: TStyleValue) => TReturn,
|
186
|
+
minInlineSize: (val: TStyleValue) => TReturn,
|
187
|
+
maxBlockSize: (val: TStyleValue) => TReturn,
|
188
|
+
maxInlineSize: (val: TStyleValue) => TReturn,
|
189
|
+
borderHorizontalWidth: $FlowFixMe,
|
190
|
+
borderHorizontalStyle: $FlowFixMe,
|
191
|
+
borderHorizontalColor: $FlowFixMe,
|
192
|
+
borderVerticalWidth: $FlowFixMe,
|
193
|
+
borderVerticalStyle: $FlowFixMe,
|
194
|
+
borderVerticalColor: $FlowFixMe,
|
195
|
+
borderBlockStartColor: (value: TStyleValue) => TReturn,
|
196
|
+
borderBlockEndColor: (value: TStyleValue) => TReturn,
|
197
|
+
borderBlockStartStyle: (value: TStyleValue) => TReturn,
|
198
|
+
borderBlockEndStyle: (value: TStyleValue) => TReturn,
|
199
|
+
borderBlockStartWidth: (value: TStyleValue) => TReturn,
|
200
|
+
borderBlockEndWidth: (value: TStyleValue) => TReturn,
|
201
|
+
borderStartColor: $FlowFixMe,
|
202
|
+
borderEndColor: $FlowFixMe,
|
203
|
+
borderStartStyle: $FlowFixMe,
|
204
|
+
borderEndStyle: $FlowFixMe,
|
205
|
+
borderStartWidth: $FlowFixMe,
|
206
|
+
borderEndWidth: $FlowFixMe,
|
207
|
+
borderTopStartRadius: (value: TStyleValue) => TReturn,
|
208
|
+
borderTopEndRadius: (value: TStyleValue) => TReturn,
|
209
|
+
borderBottomStartRadius: (value: TStyleValue) => TReturn,
|
210
|
+
borderBottomEndRadius: (value: TStyleValue) => TReturn,
|
211
|
+
containIntrinsicBlockSize: (value: TStyleValue) => TReturn,
|
212
|
+
containIntrinsicInlineSize: (value: TStyleValue) => TReturn,
|
213
|
+
gridGap: $FlowFixMe,
|
214
|
+
gridRowGap: (value: TStyleValue) => TReturn,
|
215
|
+
gridColumnGap: (value: TStyleValue) => TReturn,
|
216
|
+
marginBlockStart: (value: TStyleValue) => TReturn,
|
217
|
+
marginBlockEnd: (value: TStyleValue) => TReturn,
|
218
|
+
marginStart: $FlowFixMe,
|
219
|
+
marginEnd: $FlowFixMe,
|
220
|
+
marginHorizontal: $FlowFixMe,
|
221
|
+
marginVertical: $FlowFixMe,
|
222
|
+
overflowBlock: (value: TStyleValue) => TReturn,
|
223
|
+
overflowInline: (value: TStyleValue) => TReturn,
|
224
|
+
paddingBlockStart: (rawValue: TStyleValue) => TReturn,
|
225
|
+
paddingBlockEnd: (rawValue: TStyleValue) => TReturn,
|
226
|
+
paddingStart: $FlowFixMe,
|
227
|
+
paddingEnd: $FlowFixMe,
|
228
|
+
paddingHorizontal: $FlowFixMe,
|
229
|
+
paddingVertical: $FlowFixMe,
|
230
|
+
scrollMarginBlockStart: (value: TStyleValue) => TReturn,
|
231
|
+
scrollMarginBlockEnd: (value: TStyleValue) => TReturn,
|
232
|
+
insetBlockStart: (value: TStyleValue) => TReturn,
|
233
|
+
insetBlockEnd: (value: TStyleValue) => TReturn,
|
234
|
+
start: $FlowFixMe,
|
235
|
+
end: $FlowFixMe,
|
236
|
+
};
|
237
|
+
|
238
|
+
declare export default $ReadOnly<{
|
239
|
+
...typeof shorthands,
|
240
|
+
...typeof aliases,
|
241
|
+
}>;
|
@@ -0,0 +1,13 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
3
|
+
*
|
4
|
+
* This source code is licensed under the MIT license found in the
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
6
|
+
*
|
7
|
+
*
|
8
|
+
*/
|
9
|
+
|
10
|
+
export declare function validateNamespace(
|
11
|
+
namespace: unknown,
|
12
|
+
conditions: ReadonlyArray<string>,
|
13
|
+
): void;
|
@@ -0,0 +1,83 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.validateNamespace = validateNamespace;
|
7
|
+
var _stylexInclude = require("../stylex-include");
|
8
|
+
var messages = _interopRequireWildcard(require("../messages"));
|
9
|
+
var _objectUtils = require("../utils/object-utils");
|
10
|
+
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); }
|
11
|
+
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; }
|
12
|
+
function validateNamespace(namespace) {
|
13
|
+
let conditions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
14
|
+
if (!(0, _objectUtils.isPlainObject)(namespace)) {
|
15
|
+
throw new Error(messages.ILLEGAL_NAMESPACE_VALUE);
|
16
|
+
}
|
17
|
+
const ns = namespace;
|
18
|
+
for (const key in ns) {
|
19
|
+
const val = ns[key];
|
20
|
+
if (val === null || typeof val === 'string' || typeof val === 'number') {
|
21
|
+
continue;
|
22
|
+
}
|
23
|
+
if (Array.isArray(val)) {
|
24
|
+
for (const v of val) {
|
25
|
+
if (v === null || typeof v === 'string' || typeof v === 'number') {
|
26
|
+
continue;
|
27
|
+
}
|
28
|
+
throw new Error(messages.ILLEGAL_PROP_ARRAY_VALUE);
|
29
|
+
}
|
30
|
+
continue;
|
31
|
+
}
|
32
|
+
if (val instanceof _stylexInclude.IncludedStyles) {
|
33
|
+
if (conditions.length === 0) {
|
34
|
+
continue;
|
35
|
+
}
|
36
|
+
throw new Error(messages.ONLY_TOP_LEVEL_INLCUDES);
|
37
|
+
}
|
38
|
+
if ((0, _objectUtils.isPlainObject)(val)) {
|
39
|
+
if (key.startsWith('@') || key.startsWith(':')) {
|
40
|
+
if (conditions.includes(key)) {
|
41
|
+
throw new Error(messages.DUPLICATE_CONDITIONAL);
|
42
|
+
}
|
43
|
+
validateNamespace(val, [...conditions, key]);
|
44
|
+
} else {
|
45
|
+
validateConditionalStyles(val);
|
46
|
+
}
|
47
|
+
continue;
|
48
|
+
}
|
49
|
+
throw new Error(messages.ILLEGAL_PROP_VALUE);
|
50
|
+
}
|
51
|
+
}
|
52
|
+
function validateConditionalStyles(val) {
|
53
|
+
let conditions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
54
|
+
for (const key in val) {
|
55
|
+
const v = val[key];
|
56
|
+
if (!(key.startsWith('@') || key.startsWith(':') || key === 'default')) {
|
57
|
+
throw new Error(messages.INVALID_PSEUDO_OR_AT_RULE);
|
58
|
+
}
|
59
|
+
if (conditions.includes(key)) {
|
60
|
+
throw new Error(messages.DUPLICATE_CONDITIONAL);
|
61
|
+
}
|
62
|
+
if (v === null || typeof v === 'string' || typeof v === 'number') {
|
63
|
+
continue;
|
64
|
+
}
|
65
|
+
if (Array.isArray(v)) {
|
66
|
+
for (const vv of v) {
|
67
|
+
if (vv === null || typeof vv === 'string' || typeof vv === 'number') {
|
68
|
+
continue;
|
69
|
+
}
|
70
|
+
throw new Error(messages.ILLEGAL_PROP_VALUE);
|
71
|
+
}
|
72
|
+
continue;
|
73
|
+
}
|
74
|
+
if (v instanceof _stylexInclude.IncludedStyles) {
|
75
|
+
throw new Error(messages.ONLY_TOP_LEVEL_INLCUDES);
|
76
|
+
}
|
77
|
+
if ((0, _objectUtils.isPlainObject)(v)) {
|
78
|
+
validateConditionalStyles(v, [...conditions, key]);
|
79
|
+
continue;
|
80
|
+
}
|
81
|
+
throw new Error(messages.ILLEGAL_PROP_VALUE);
|
82
|
+
}
|
83
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
3
|
+
*
|
4
|
+
* This source code is licensed under the MIT license found in the
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
6
|
+
*
|
7
|
+
* @flow strict
|
8
|
+
*/
|
9
|
+
|
10
|
+
declare export function validateNamespace(
|
11
|
+
namespace: mixed,
|
12
|
+
conditions: $ReadOnlyArray<string>,
|
13
|
+
): void;
|
@@ -0,0 +1,25 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
3
|
+
*
|
4
|
+
* This source code is licensed under the MIT license found in the
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
6
|
+
*
|
7
|
+
*
|
8
|
+
*/
|
9
|
+
|
10
|
+
import type { RawStyles, StyleXOptions } from '../common-types';
|
11
|
+
import {
|
12
|
+
type AnyPreRule,
|
13
|
+
type IPreRule,
|
14
|
+
PreIncludedStylesRule,
|
15
|
+
} from './PreRule';
|
16
|
+
export declare function flattenRawStyleObject(
|
17
|
+
style: RawStyles,
|
18
|
+
options: StyleXOptions,
|
19
|
+
): ReadonlyArray<Readonly<[string, IPreRule]>>;
|
20
|
+
export declare function _flattenRawStyleObject(
|
21
|
+
style: RawStyles,
|
22
|
+
pseudos: ReadonlyArray<string>,
|
23
|
+
atRules: ReadonlyArray<string>,
|
24
|
+
options: StyleXOptions,
|
25
|
+
): Array<Readonly<[string, AnyPreRule | PreIncludedStylesRule]>>;
|
@@ -0,0 +1,120 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports._flattenRawStyleObject = _flattenRawStyleObject;
|
7
|
+
exports.flattenRawStyleObject = flattenRawStyleObject;
|
8
|
+
var _index = _interopRequireDefault(require("./index"));
|
9
|
+
var _PreRule = require("./PreRule");
|
10
|
+
var _stylexInclude = require("../stylex-include");
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
12
|
+
function flattenRawStyleObject(style, options) {
|
13
|
+
return _flattenRawStyleObject(style, [], [], options);
|
14
|
+
}
|
15
|
+
function _flattenRawStyleObject(style, pseudos, atRules, options) {
|
16
|
+
const flattened = [];
|
17
|
+
for (const _key in style) {
|
18
|
+
const value = style[_key];
|
19
|
+
const key = _key.match(/var\(--[a-z0-9]+\)/) ? _key.slice(4, -1) : _key;
|
20
|
+
if (typeof value === 'object' && value instanceof _stylexInclude.IncludedStyles) {
|
21
|
+
flattened.push([key, new _PreRule.PreIncludedStylesRule(value)]);
|
22
|
+
continue;
|
23
|
+
}
|
24
|
+
if (value === null || typeof value === 'string' || typeof value === 'number') {
|
25
|
+
const pairs = (0, _index.default)([key, value], options);
|
26
|
+
for (const [property, value] of pairs) {
|
27
|
+
if (value === null) {
|
28
|
+
flattened.push([property, new _PreRule.NullPreRule()]);
|
29
|
+
} else {
|
30
|
+
flattened.push([property, new _PreRule.PreRule(property, value, pseudos, atRules)]);
|
31
|
+
}
|
32
|
+
}
|
33
|
+
continue;
|
34
|
+
}
|
35
|
+
if (Array.isArray(value)) {
|
36
|
+
const equivalentPairs = {};
|
37
|
+
for (const eachVal of value) {
|
38
|
+
const pairs = (0, _index.default)([key, eachVal], options);
|
39
|
+
for (const [property, val] of pairs) {
|
40
|
+
if (Array.isArray(val)) {
|
41
|
+
if (equivalentPairs[property] == null) {
|
42
|
+
equivalentPairs[property] = [...val];
|
43
|
+
} else {
|
44
|
+
equivalentPairs[property].push(...val);
|
45
|
+
}
|
46
|
+
} else if (equivalentPairs[property] == null) {
|
47
|
+
equivalentPairs[property] = [val];
|
48
|
+
} else {
|
49
|
+
equivalentPairs[property].push(val);
|
50
|
+
}
|
51
|
+
}
|
52
|
+
}
|
53
|
+
Object.entries(equivalentPairs).map(_ref => {
|
54
|
+
let [property, values] = _ref;
|
55
|
+
return [property, [...new Set(values.filter(Boolean))]];
|
56
|
+
}).map(_ref2 => {
|
57
|
+
let [property, values] = _ref2;
|
58
|
+
return [property, values.length === 0 ? null : values.length === 1 ? values[0] : values];
|
59
|
+
}).forEach(_ref3 => {
|
60
|
+
let [property, value] = _ref3;
|
61
|
+
if (value === null) {
|
62
|
+
flattened.push([property, new _PreRule.NullPreRule()]);
|
63
|
+
} else {
|
64
|
+
flattened.push([property, new _PreRule.PreRule(property, value, pseudos, atRules)]);
|
65
|
+
}
|
66
|
+
});
|
67
|
+
continue;
|
68
|
+
}
|
69
|
+
if (typeof value === 'object' && !key.startsWith(':') && !key.startsWith('@')) {
|
70
|
+
const equivalentPairs = {};
|
71
|
+
for (const condition in value) {
|
72
|
+
const innerValue = value[condition];
|
73
|
+
const pseudosToPassDown = [...pseudos];
|
74
|
+
const atRulesToPassDown = [...atRules];
|
75
|
+
if (condition.startsWith(':')) {
|
76
|
+
pseudosToPassDown.push(condition);
|
77
|
+
} else if (condition.startsWith('@')) {
|
78
|
+
atRulesToPassDown.push(condition);
|
79
|
+
}
|
80
|
+
const pairs = _flattenRawStyleObject({
|
81
|
+
[key]: innerValue
|
82
|
+
}, pseudosToPassDown, atRulesToPassDown, options);
|
83
|
+
for (const [property, preRule] of pairs) {
|
84
|
+
if (preRule instanceof _PreRule.PreIncludedStylesRule) {
|
85
|
+
throw new Error('stylex.include can only be used at the top-level');
|
86
|
+
}
|
87
|
+
if (equivalentPairs[property] == null) {
|
88
|
+
equivalentPairs[property] = {
|
89
|
+
[condition]: preRule
|
90
|
+
};
|
91
|
+
} else {
|
92
|
+
equivalentPairs[property][condition] = preRule;
|
93
|
+
}
|
94
|
+
}
|
95
|
+
}
|
96
|
+
for (const [property, obj] of Object.entries(equivalentPairs)) {
|
97
|
+
const sortedKeys = Object.keys(obj);
|
98
|
+
const rules = [];
|
99
|
+
for (const condition of sortedKeys) {
|
100
|
+
rules.push(obj[condition]);
|
101
|
+
}
|
102
|
+
flattened.push([property, _PreRule.PreRuleSet.create(rules)]);
|
103
|
+
}
|
104
|
+
}
|
105
|
+
if (typeof value === 'object' && (key.startsWith(':') || key.startsWith('@'))) {
|
106
|
+
const pseudosToPassDown = [...pseudos];
|
107
|
+
const atRulesToPassDown = [...atRules];
|
108
|
+
if (key.startsWith(':')) {
|
109
|
+
pseudosToPassDown.push(key);
|
110
|
+
} else if (key.startsWith('@')) {
|
111
|
+
atRulesToPassDown.push(key);
|
112
|
+
}
|
113
|
+
const pairs = _flattenRawStyleObject(value, pseudosToPassDown, atRulesToPassDown, options);
|
114
|
+
for (const [property, preRule] of pairs) {
|
115
|
+
flattened.push([key + '_' + property, preRule]);
|
116
|
+
}
|
117
|
+
}
|
118
|
+
}
|
119
|
+
return flattened;
|
120
|
+
}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
3
|
+
*
|
4
|
+
* This source code is licensed under the MIT license found in the
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
6
|
+
*
|
7
|
+
* @flow strict
|
8
|
+
*/
|
9
|
+
|
10
|
+
import type { RawStyles, StyleXOptions } from '../common-types';
|
11
|
+
|
12
|
+
import {
|
13
|
+
type AnyPreRule,
|
14
|
+
type IPreRule,
|
15
|
+
PreIncludedStylesRule,
|
16
|
+
} from './PreRule';
|
17
|
+
declare export function flattenRawStyleObject(
|
18
|
+
style: RawStyles,
|
19
|
+
options: StyleXOptions,
|
20
|
+
): $ReadOnlyArray<$ReadOnly<[string, IPreRule]>>;
|
21
|
+
|
22
|
+
declare export function _flattenRawStyleObject(
|
23
|
+
style: RawStyles,
|
24
|
+
pseudos: $ReadOnlyArray<string>,
|
25
|
+
atRules: $ReadOnlyArray<string>,
|
26
|
+
options: StyleXOptions,
|
27
|
+
): Array<$ReadOnly<[string, AnyPreRule | PreIncludedStylesRule]>>;
|
@@ -0,0 +1,18 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
3
|
+
*
|
4
|
+
* This source code is licensed under the MIT license found in the
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
6
|
+
*
|
7
|
+
*
|
8
|
+
*/
|
9
|
+
|
10
|
+
import type { StyleXOptions, TStyleValue } from '../common-types';
|
11
|
+
export declare function getExpandedKeys(
|
12
|
+
options: StyleXOptions,
|
13
|
+
): ReadonlyArray<string>;
|
14
|
+
declare function flatMapExpandedShorthands(
|
15
|
+
objEntry: Readonly<[string, TStyleValue]>,
|
16
|
+
options: StyleXOptions,
|
17
|
+
): ReadonlyArray<[string, TStyleValue]>;
|
18
|
+
export default flatMapExpandedShorthands;
|
@@ -9,15 +9,6 @@ var _applicationOrder = _interopRequireDefault(require("./application-order"));
|
|
9
9
|
var _legacyExpandShorthands = _interopRequireDefault(require("./legacy-expand-shorthands"));
|
10
10
|
var _propertySpecificity = _interopRequireDefault(require("./property-specificity"));
|
11
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
12
|
-
/**
|
13
|
-
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
14
|
-
*
|
15
|
-
* This source code is licensed under the MIT license found in the
|
16
|
-
* LICENSE file in the root directory of this source tree.
|
17
|
-
*
|
18
|
-
*
|
19
|
-
*/
|
20
|
-
|
21
12
|
const expansions = {
|
22
13
|
'application-order': _applicationOrder.default,
|
23
14
|
'property-specificity': _propertySpecificity.default,
|
@@ -0,0 +1,19 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
3
|
+
*
|
4
|
+
* This source code is licensed under the MIT license found in the
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
6
|
+
*
|
7
|
+
* @flow strict
|
8
|
+
*/
|
9
|
+
|
10
|
+
import type { StyleXOptions, TStyleValue } from '../common-types';
|
11
|
+
|
12
|
+
declare export function getExpandedKeys(
|
13
|
+
options: StyleXOptions,
|
14
|
+
): $ReadOnlyArray<string>;
|
15
|
+
|
16
|
+
declare export default function flatMapExpandedShorthands(
|
17
|
+
objEntry: $ReadOnly<[string, TStyleValue]>,
|
18
|
+
options: StyleXOptions,
|
19
|
+
): $ReadOnlyArray<[string, TStyleValue]>;
|