@stylexjs/shared 0.2.0-beta.8 → 0.3.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/README.md +81 -0
- 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 +8 -47
- 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 +59 -0
- package/lib/messages.d.ts +36 -0
- package/lib/messages.js +28 -55
- 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 +193 -0
- 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 +30 -0
- 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 +136 -0
- 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 +107 -0
- 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 -142
- 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 +22 -30
- 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 +50 -0
- 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 +11 -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 +531 -0
- 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 +33 -0
- 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 -387
- 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;
|
@@ -0,0 +1,30 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = flatMapExpandedShorthands;
|
7
|
+
exports.getExpandedKeys = getExpandedKeys;
|
8
|
+
var _applicationOrder = _interopRequireDefault(require("./application-order"));
|
9
|
+
var _legacyExpandShorthands = _interopRequireDefault(require("./legacy-expand-shorthands"));
|
10
|
+
var _propertySpecificity = _interopRequireDefault(require("./property-specificity"));
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
12
|
+
const expansions = {
|
13
|
+
'application-order': _applicationOrder.default,
|
14
|
+
'property-specificity': _propertySpecificity.default,
|
15
|
+
'legacy-expand-shorthands': _legacyExpandShorthands.default
|
16
|
+
};
|
17
|
+
function getExpandedKeys(options) {
|
18
|
+
return Object.keys(expansions[options.styleResolution ?? 'application-order']);
|
19
|
+
}
|
20
|
+
function flatMapExpandedShorthands(objEntry, options) {
|
21
|
+
const [key, value] = objEntry;
|
22
|
+
const expansion = expansions[options.styleResolution ?? 'application-order'][key];
|
23
|
+
if (expansion) {
|
24
|
+
if (Array.isArray(value)) {
|
25
|
+
throw new Error('Cannot use fallbacks for shorthands. Use the expansion instead.');
|
26
|
+
}
|
27
|
+
return expansion(value);
|
28
|
+
}
|
29
|
+
return [[key, value]];
|
30
|
+
}
|
@@ -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]>;
|