ruscus 0.0.0-stage → 0.0.2

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.
@@ -0,0 +1,1351 @@
1
+ //#region src/types/css/values.d.ts
2
+ /**
3
+ * A string that allows literal suggestions to be shown to an author
4
+ */
5
+ type AuthorString = string & {};
6
+ /**
7
+ * A CSS value directly provided by an author
8
+ */
9
+ type AuthorValue = number | AuthorString;
10
+ /**
11
+ * A CSS value
12
+ */
13
+ type Value$1 = number | string;
14
+ //#endregion
15
+ //#region src/types/css/properties.d.ts
16
+ type Value = AuthorValue | 'inherit' | 'initial' | 'revert' | 'revert-layer' | 'unset';
17
+ type AlignContent = 'baseline' | 'center' | 'end' | 'first' | 'flex-end' | 'flex-start' | 'last' | 'normal' | 'safe' | 'start' | 'stretch' | 'unsafe' | Value;
18
+ type AlignContent2 = 'space-around' | 'space-between' | 'space-evenly' | Value;
19
+ type AlignSelf = 'baseline' | 'center' | 'end' | 'first' | 'flex-end' | 'flex-start' | 'last' | 'normal' | 'safe' | 'self-end' | 'self-start' | 'start' | 'stretch' | 'unsafe' | Value;
20
+ type AnchorScope = 'all' | 'none' | Value;
21
+ type Animation = 'alternate' | 'alternate-reverse' | 'auto' | 'backwards' | 'both' | 'ease' | 'ease-in' | 'ease-in-out' | 'ease-out' | 'forwards' | 'infinite' | 'linear' | 'none' | 'normal' | 'paused' | 'reverse' | 'running' | 'step-end' | 'step-start' | Value;
22
+ type AnimationDirection = 'alternate' | 'alternate-reverse' | 'normal' | 'reverse' | Value;
23
+ type AnimationFillMode = 'backwards' | 'both' | 'forwards' | 'none' | Value;
24
+ type AnimationIterationCount = 'infinite' | Value;
25
+ type AnimationPlayState = 'paused' | 'running' | Value;
26
+ type AnimationTimingFunction = 'ease' | 'ease-in' | 'ease-in-out' | 'ease-out' | 'linear' | 'step-end' | 'step-start' | Value;
27
+ type Appearance = 'auto' | 'base' | 'base-select' | 'button' | 'checkbox' | 'listbox' | 'menulist' | 'menulist-button' | 'meter' | 'none' | 'progress-bar' | 'radio' | 'searchfield' | 'textarea' | 'textfield' | Value;
28
+ type BackfaceVisibility = 'hidden' | 'visible' | Value;
29
+ type Background = 'auto' | 'block-end' | 'block-start' | 'border-area' | 'border-box' | 'bottom' | 'center' | 'contain' | 'content-box' | 'cover' | 'end' | 'fixed' | 'inline-end' | 'inline-start' | 'left' | 'local' | 'no-repeat' | 'none' | 'padding-box' | 'repeat' | 'repeat-block' | 'repeat-inline' | 'repeat-x' | 'repeat-y' | 'right' | 'round' | 'scroll' | 'space' | 'start' | 'text' | 'top' | 'x-end' | 'x-start' | 'y-end' | 'y-start' | Value;
30
+ type BackgroundOrigin = 'border-box' | 'content-box' | 'padding-box' | Value;
31
+ type BackgroundRepeatX = 'repeat' | 'round' | 'space' | Value;
32
+ type BackgroundRepeatX2 = 'no-repeat' | Value;
33
+ type BlockStepAlign = 'center' | 'end' | 'start' | Value;
34
+ type Border = 'dashed' | 'dotted' | 'double' | 'groove' | 'hairline' | 'hidden' | 'inset' | 'medium' | 'none' | 'outset' | 'ridge' | 'solid' | 'thick' | 'thin' | Value;
35
+ type BorderTopStyle = 'hidden' | Value;
36
+ type BoxSizing = 'border-box' | 'content-box' | Value;
37
+ type BreakAfter = 'all' | 'always' | 'auto' | 'avoid' | 'avoid-column' | 'avoid-page' | 'avoid-region' | 'column' | 'left' | 'page' | 'recto' | 'region' | 'right' | 'verso' | Value;
38
+ type Clear = 'block-end' | 'block-start' | 'bottom' | 'inline-end' | 'inline-start' | 'left' | 'none' | 'right' | 'top' | Value;
39
+ type ClipPath = 'border-box' | 'content-box' | 'fill-box' | 'none' | 'padding-box' | 'stroke-box' | 'view-box' | Value;
40
+ type ClipPath2 = 'half-border-box' | 'margin-box' | Value;
41
+ type ClipRule = 'evenodd' | 'nonzero' | Value;
42
+ type Color = 'AccentColor' | 'AccentColorText' | 'ActiveBorder' | 'ActiveCaption' | 'ActiveText' | 'AppWorkspace' | 'Background' | 'ButtonBorder' | 'ButtonFace' | 'ButtonHighlight' | 'ButtonShadow' | 'ButtonText' | 'Canvas' | 'CanvasText' | 'CaptionText' | 'Field' | 'FieldText' | 'GrayText' | 'Highlight' | 'HighlightText' | 'InactiveBorder' | 'InactiveCaption' | 'InactiveCaptionText' | 'InfoBackground' | 'InfoText' | 'LinkText' | 'Mark' | 'MarkText' | 'Menu' | 'MenuText' | 'Scrollbar' | 'SelectedItem' | 'SelectedItemText' | 'ThreeDDarkShadow' | 'ThreeDFace' | 'ThreeDHighlight' | 'ThreeDLightShadow' | 'ThreeDShadow' | 'VisitedText' | 'Window' | 'WindowFrame' | 'WindowText' | 'aliceblue' | 'antiquewhite' | 'aqua' | 'aquamarine' | 'azure' | 'beige' | 'bisque' | 'black' | 'blanchedalmond' | 'blue' | 'blueviolet' | 'brown' | 'burlywood' | 'cadetblue' | 'chartreuse' | 'chocolate' | 'coral' | 'cornflowerblue' | 'cornsilk' | 'crimson' | 'currentColor' | 'cyan' | 'darkblue' | 'darkcyan' | 'darkgoldenrod' | 'darkgray' | 'darkgreen' | 'darkgrey' | 'darkkhaki' | 'darkmagenta' | 'darkolivegreen' | 'darkorange' | 'darkorchid' | 'darkred' | 'darksalmon' | 'darkseagreen' | 'darkslateblue' | 'darkslategray' | 'darkslategrey' | 'darkturquoise' | 'darkviolet' | 'deeppink' | 'deepskyblue' | 'dimgray' | 'dimgrey' | 'dodgerblue' | 'firebrick' | 'floralwhite' | 'forestgreen' | 'fuchsia' | 'gainsboro' | 'ghostwhite' | 'gold' | 'goldenrod' | 'gray' | 'green' | 'greenyellow' | 'grey' | 'honeydew' | 'hotpink' | 'indianred' | 'indigo' | 'ivory' | 'khaki' | 'lavender' | 'lavenderblush' | 'lawngreen' | 'lemonchiffon' | 'lightblue' | 'lightcoral' | 'lightcyan' | 'lightgoldenrodyellow' | 'lightgray' | 'lightgreen' | 'lightgrey' | 'lightpink' | 'lightsalmon' | 'lightseagreen' | 'lightskyblue' | 'lightslategray' | 'lightslategrey' | 'lightsteelblue' | 'lightyellow' | 'lime' | 'limegreen' | 'linen' | 'magenta' | 'maroon' | 'mediumaquamarine' | 'mediumblue' | 'mediumorchid' | 'mediumpurple' | 'mediumseagreen' | 'mediumslateblue' | 'mediumspringgreen' | 'mediumturquoise' | 'mediumvioletred' | 'midnightblue' | 'mintcream' | 'mistyrose' | 'moccasin' | 'navajowhite' | 'navy' | 'oldlace' | 'olive' | 'olivedrab' | 'orange' | 'orangered' | 'orchid' | 'palegoldenrod' | 'palegreen' | 'paleturquoise' | 'palevioletred' | 'papayawhip' | 'peachpuff' | 'peru' | 'pink' | 'plum' | 'powderblue' | 'purple' | 'rebeccapurple' | 'red' | 'rosybrown' | 'royalblue' | 'saddlebrown' | 'salmon' | 'sandybrown' | 'seagreen' | 'seashell' | 'sienna' | 'silver' | 'skyblue' | 'slateblue' | 'slategray' | 'slategrey' | 'snow' | 'springgreen' | 'steelblue' | 'tan' | 'teal' | 'thistle' | 'tomato' | 'transparent' | 'turquoise' | 'violet' | 'wheat' | 'white' | 'whitesmoke' | 'yellow' | 'yellowgreen' | Value;
43
+ type ColorInterpolation = 'auto' | 'linearRGB' | 'sRGB' | Value;
44
+ type ColorScheme = 'dark' | 'light' | 'normal' | Value;
45
+ type ColumnSpan = 'all' | 'auto' | 'none' | Value;
46
+ type CopyInto = 'content' | 'element' | 'none' | Value;
47
+ type CornerEndEndShape = 'bevel' | 'notch' | 'round' | 'scoop' | 'square' | 'squircle' | Value;
48
+ type D = 'none' | Value;
49
+ type DominantBaseline = 'alphabetic' | 'central' | 'hanging' | 'ideographic' | 'mathematical' | 'middle' | 'text-bottom' | 'text-top' | Value;
50
+ type Fill = 'child' | 'none' | Value;
51
+ type FillBreak = 'bounding-box' | 'clone' | 'slice' | Value;
52
+ type FillOrigin = 'border-box' | 'content-box' | 'fill-box' | 'padding-box' | 'stroke-box' | Value;
53
+ type FillOrigin2 = 'match-parent' | Value;
54
+ type FillPosition = 'block-end' | 'block-start' | 'bottom' | 'center' | 'end' | 'inline-end' | 'inline-start' | 'left' | 'right' | 'start' | 'top' | 'x-end' | 'x-start' | 'y-end' | 'y-start' | Value;
55
+ type FillRepeat = 'no-repeat' | 'repeat' | 'repeat-block' | 'repeat-inline' | 'repeat-x' | 'repeat-y' | 'round' | 'space' | Value;
56
+ type FillSize = 'auto' | 'contain' | 'cover' | Value;
57
+ type FlexBasis = 'content' | Value;
58
+ type FlexDirection = 'column' | 'column-reverse' | 'row' | 'row-reverse' | Value;
59
+ type FlexWrap = 'balance' | 'nowrap' | 'wrap' | 'wrap-reverse' | Value;
60
+ type FontKerning = 'auto' | 'none' | 'normal' | Value;
61
+ type FontWidth = 'condensed' | 'expanded' | 'extra-condensed' | 'extra-expanded' | 'normal' | 'semi-condensed' | 'semi-expanded' | 'ultra-condensed' | 'ultra-expanded' | Value;
62
+ type GridAutoRows = 'auto' | 'max-content' | 'min-content' | Value;
63
+ type GridRow = 'auto' | 'span' | Value;
64
+ type GridTemplateRows = 'auto' | 'auto-fill' | 'auto-fit' | 'max-content' | 'min-content' | 'none' | 'subgrid' | Value;
65
+ type JustifyContent = 'center' | 'end' | 'flex-end' | 'flex-start' | 'normal' | 'safe' | 'space-around' | 'space-between' | 'space-evenly' | 'start' | 'stretch' | 'unsafe' | Value;
66
+ type JustifyContent2 = 'left' | 'right' | Value;
67
+ type LineFitEdge = 'alphabetic' | 'cap' | 'ex' | 'ideographic' | 'ideographic-ink' | 'text' | Value;
68
+ type Mask = 'add' | 'alpha' | 'auto' | 'block-end' | 'block-start' | 'border-box' | 'bottom' | 'center' | 'contain' | 'content-box' | 'cover' | 'end' | 'exclude' | 'fill-box' | 'half-border-box' | 'inline-end' | 'inline-start' | 'intersect' | 'left' | 'luminance' | 'margin-box' | 'match-source' | 'no-clip' | 'no-repeat' | 'none' | 'padding-box' | 'repeat' | 'repeat-block' | 'repeat-inline' | 'repeat-x' | 'repeat-y' | 'right' | 'round' | 'space' | 'start' | 'stroke-box' | 'subtract' | 'top' | 'view-box' | 'x-end' | 'x-start' | 'y-end' | 'y-start' | Value;
69
+ type MaskClip = 'border-box' | 'content-box' | 'fill-box' | 'padding-box' | 'stroke-box' | 'view-box' | Value;
70
+ type MaskClip2 = 'no-clip' | Value;
71
+ type MaskComposite = 'add' | 'exclude' | 'intersect' | 'subtract' | Value;
72
+ type MaskType = 'alpha' | 'luminance' | Value;
73
+ type MathShift = 'compact' | 'normal' | Value;
74
+ type MaxWidth = 'none' | Value;
75
+ type NavUp = 'auto' | 'current' | 'root' | Value;
76
+ type OutlineStyle = 'dashed' | 'dotted' | 'double' | 'groove' | 'inset' | 'none' | 'outset' | 'ridge' | 'solid' | Value;
77
+ type OverflowX = 'auto' | 'clip' | 'hidden' | 'scroll' | 'visible' | Value;
78
+ type Overlay = 'auto' | 'none' | Value;
79
+ type OverscrollBehavior = 'auto' | 'chain' | 'contain' | 'none' | Value;
80
+ type PageBreakAfter = 'always' | 'auto' | 'avoid' | 'left' | 'right' | Value;
81
+ type PositionArea = 'block-end' | 'block-start' | 'bottom' | 'center' | 'end' | 'inline-end' | 'inline-start' | 'left' | 'none' | 'right' | 'self-block-end' | 'self-block-start' | 'self-end' | 'self-inline-end' | 'self-inline-start' | 'self-start' | 'self-x-end' | 'self-x-start' | 'self-y-end' | 'self-y-start' | 'span-all' | 'span-block-end' | 'span-block-start' | 'span-bottom' | 'span-end' | 'span-inline-end' | 'span-inline-start' | 'span-left' | 'span-right' | 'span-self-block-end' | 'span-self-block-start' | 'span-self-end' | 'span-self-inline-end' | 'span-self-inline-start' | 'span-self-start' | 'span-self-x-end' | 'span-self-x-start' | 'span-self-y-end' | 'span-self-y-start' | 'span-start' | 'span-top' | 'span-x-end' | 'span-x-start' | 'span-y-end' | 'span-y-start' | 'start' | 'top' | 'x-end' | 'x-start' | 'y-end' | 'y-start' | Value;
82
+ type RestAfter = 'medium' | 'none' | 'strong' | 'weak' | 'x-strong' | 'x-weak' | Value;
83
+ type RowGap = 'hairline' | 'medium' | 'thick' | 'thin' | Value;
84
+ type RowGap2 = 'normal' | Value;
85
+ type RowRule = 'auto' | Value;
86
+ type RowRuleBreak = 'intersection' | 'none' | 'normal' | Value;
87
+ type RowRuleInsetCap = 'overlap-join' | Value;
88
+ type RowRuleStyle = 'auto' | 'hidden' | Value;
89
+ type RowRuleVisibilityItems = 'all' | 'around' | 'between' | 'normal' | Value;
90
+ type RowRuleWidth = 'auto' | 'hairline' | 'medium' | 'thick' | 'thin' | Value;
91
+ type Rx = 'auto' | Value;
92
+ type StrokeDashadjust = 'compress' | 'dashes' | 'gaps' | 'none' | 'stretch' | Value;
93
+ type TextAlign = 'center' | 'end' | 'justify' | 'left' | 'match-parent' | 'right' | 'start' | Value;
94
+ type TextBox = 'normal' | Value;
95
+ type TextRendering = 'auto' | 'geometricPrecision' | 'optimizeSpeed' | Value;
96
+ type TimelineTriggerActiveRangeEnd = 'auto' | 'normal' | Value;
97
+ type TransformOrigin = 'bottom' | 'center' | 'left' | 'right' | 'top' | Value;
98
+ type TransformStyle = 'flat' | 'preserve-3d' | Value;
99
+ type Transition = 'all' | 'allow-discrete' | 'ease' | 'ease-in' | 'ease-in-out' | 'ease-out' | 'linear' | 'none' | 'normal' | 'step-end' | 'step-start' | Value;
100
+ type UserSelect = 'all' | 'auto' | 'contain' | 'none' | 'text' | Value;
101
+ type ViewTimelineAxis = 'block' | 'inline' | 'x' | 'y' | Value;
102
+ type VoicePitch = 'absolute' | 'high' | 'low' | 'medium' | 'x-high' | 'x-low' | Value;
103
+ type Width = 'contain' | 'fit-content' | 'max-content' | 'min-content' | 'stretch' | Value;
104
+ type Width2 = 'auto' | Value;
105
+ type WordWrap = 'anywhere' | 'break-word' | 'normal' | Value;
106
+ type WrapAfter = 'auto' | 'avoid' | 'avoid-flex' | 'avoid-line' | 'flex' | 'line' | Value;
107
+ type WrapInside = 'auto' | 'avoid' | Value;
108
+ type KnownProperties = {
109
+ WebkitAlignContent?: AlignContent | AlignContent2;
110
+ WebkitAlignItems?: AlignSelf;
111
+ WebkitAlignSelf?: AlignSelf | Width2;
112
+ WebkitAnimation?: Animation;
113
+ WebkitAnimationDelay?: Value;
114
+ WebkitAnimationDirection?: AnimationDirection;
115
+ WebkitAnimationDuration?: Value;
116
+ WebkitAnimationFillMode?: AnimationFillMode;
117
+ WebkitAnimationIterationCount?: AnimationIterationCount;
118
+ WebkitAnimationName?: D;
119
+ WebkitAnimationPlayState?: AnimationPlayState;
120
+ WebkitAnimationTimingFunction?: AnimationTimingFunction;
121
+ WebkitAppearance?: Appearance;
122
+ WebkitBackfaceVisibility?: BackfaceVisibility;
123
+ WebkitBackgroundClip?: BackgroundOrigin;
124
+ WebkitBackgroundOrigin?: BackgroundOrigin;
125
+ WebkitBackgroundSize?: FillSize;
126
+ WebkitBorderBottomLeftRadius?: Value;
127
+ WebkitBorderBottomRightRadius?: Value;
128
+ WebkitBorderRadius?: Value;
129
+ WebkitBorderTopLeftRadius?: Value;
130
+ WebkitBorderTopRightRadius?: Value;
131
+ WebkitBoxAlign?: Value;
132
+ WebkitBoxFlex?: Value;
133
+ WebkitBoxOrdinalGroup?: Value;
134
+ WebkitBoxOrient?: Value;
135
+ WebkitBoxPack?: Value;
136
+ WebkitBoxShadow?: D;
137
+ WebkitBoxSizing?: BoxSizing;
138
+ WebkitFilter?: D;
139
+ WebkitFlex?: D;
140
+ WebkitFlexBasis?: FlexBasis;
141
+ WebkitFlexDirection?: FlexDirection;
142
+ WebkitFlexFlow?: Value;
143
+ WebkitFlexGrow?: Value;
144
+ WebkitFlexShrink?: Value;
145
+ WebkitFlexWrap?: FlexWrap;
146
+ WebkitJustifyContent?: JustifyContent | JustifyContent2;
147
+ WebkitLineClamp?: D;
148
+ WebkitMask?: Mask;
149
+ WebkitMaskBoxImage?: Value;
150
+ WebkitMaskBoxImageOutset?: Value;
151
+ WebkitMaskBoxImageRepeat?: Value;
152
+ WebkitMaskBoxImageSlice?: Value;
153
+ WebkitMaskBoxImageSource?: Value;
154
+ WebkitMaskBoxImageWidth?: Value;
155
+ WebkitMaskClip?: MaskClip | MaskClip2;
156
+ WebkitMaskComposite?: MaskComposite;
157
+ WebkitMaskImage?: D;
158
+ WebkitMaskOrigin?: MaskClip;
159
+ WebkitMaskPosition?: FillPosition;
160
+ WebkitMaskRepeat?: FillRepeat;
161
+ WebkitMaskSize?: FillSize;
162
+ WebkitOrder?: Value;
163
+ WebkitPerspective?: D;
164
+ WebkitPerspectiveOrigin?: FillPosition;
165
+ WebkitTextFillColor?: Color;
166
+ WebkitTextSizeAdjust?: Overlay;
167
+ WebkitTextStroke?: Color | 'hairline' | 'medium' | 'thick' | 'thin';
168
+ WebkitTextStrokeColor?: Color;
169
+ WebkitTextStrokeWidth?: RowGap;
170
+ WebkitTransform?: D;
171
+ WebkitTransformOrigin?: TransformOrigin;
172
+ WebkitTransformStyle?: TransformStyle;
173
+ WebkitTransition?: Transition;
174
+ WebkitTransitionDelay?: Value;
175
+ WebkitTransitionDuration?: Value;
176
+ WebkitTransitionProperty?: AnchorScope;
177
+ WebkitTransitionTimingFunction?: AnimationTimingFunction;
178
+ WebkitUserSelect?: UserSelect;
179
+ accentColor?: Color | Width2;
180
+ alignContent?: AlignContent | AlignContent2;
181
+ alignItems?: AlignSelf;
182
+ alignSelf?: AlignSelf | 'anchor-center' | 'auto';
183
+ alignmentBaseline?: DominantBaseline | 'baseline';
184
+ all?: 'revert-rule' | Value;
185
+ anchorName?: D;
186
+ anchorScope?: AnchorScope;
187
+ animation?: Animation;
188
+ animationComposition?: 'accumulate' | 'add' | 'replace' | Value;
189
+ animationDelay?: Value;
190
+ animationDelayEnd?: Value;
191
+ animationDelayStart?: Value;
192
+ animationDirection?: AnimationDirection;
193
+ animationDuration?: Rx;
194
+ animationFillMode?: AnimationFillMode;
195
+ animationIterationCount?: AnimationIterationCount;
196
+ animationName?: D;
197
+ animationPlayState?: AnimationPlayState;
198
+ animationRange?: Value;
199
+ animationRangeCenter?: TextBox;
200
+ animationRangeEnd?: TextBox;
201
+ animationRangeStart?: TextBox;
202
+ animationTimeline?: Overlay;
203
+ animationTimingFunction?: AnimationTimingFunction;
204
+ animationTrigger?: D;
205
+ appearance?: Appearance;
206
+ aspectRatio?: Rx;
207
+ backdropFilter?: D;
208
+ backfaceVisibility?: BackfaceVisibility;
209
+ background?: Background;
210
+ backgroundAttachment?: 'fixed' | 'local' | 'scroll' | Value;
211
+ backgroundBlendMode?: Value;
212
+ backgroundClip?: 'border-area' | 'border-box' | 'content-box' | 'padding-box' | 'text' | Value;
213
+ backgroundColor?: Color;
214
+ backgroundImage?: D;
215
+ backgroundOrigin?: BackgroundOrigin;
216
+ backgroundPosition?: FillPosition;
217
+ backgroundPositionBlock?: BlockStepAlign;
218
+ backgroundPositionInline?: BlockStepAlign;
219
+ backgroundPositionX?: 'center' | 'left' | 'right' | 'x-end' | 'x-start' | Value;
220
+ backgroundPositionY?: 'bottom' | 'center' | 'top' | 'y-end' | 'y-start' | Value;
221
+ backgroundRepeat?: FillRepeat;
222
+ backgroundRepeatBlock?: BackgroundRepeatX | BackgroundRepeatX2;
223
+ backgroundRepeatInline?: BackgroundRepeatX | BackgroundRepeatX2;
224
+ backgroundRepeatX?: BackgroundRepeatX | BackgroundRepeatX2;
225
+ backgroundRepeatY?: BackgroundRepeatX | BackgroundRepeatX2;
226
+ backgroundSize?: FillSize;
227
+ backgroundTbd?: Background;
228
+ baselineShift?: 'bottom' | 'center' | 'sub' | 'super' | 'top' | Value;
229
+ baselineSource?: 'auto' | 'first' | 'last' | Value;
230
+ blockEllipsis?: 'ellipsis' | 'no-ellipsis' | Value;
231
+ blockSize?: Width | Width2;
232
+ blockStep?: Value;
233
+ blockStepAlign?: BlockStepAlign | Width2;
234
+ blockStepInsert?: 'content-box' | 'margin-box' | 'padding-box' | Value;
235
+ blockStepRound?: 'down' | 'nearest' | 'up' | Value;
236
+ blockStepSize?: D;
237
+ bookmarkLabel?: 'close-quote' | 'contents' | 'no-close-quote' | 'no-open-quote' | 'open-quote' | Value;
238
+ bookmarkLevel?: D;
239
+ bookmarkState?: 'closed' | 'open' | Value;
240
+ border?: Color | Border;
241
+ borderBlock?: Value;
242
+ borderBlockClip?: Value;
243
+ borderBlockColor?: Value;
244
+ borderBlockEnd?: Color | Border;
245
+ borderBlockEndClip?: D;
246
+ borderBlockEndColor?: Color;
247
+ borderBlockEndRadius?: Value;
248
+ borderBlockEndStyle?: OutlineStyle | BorderTopStyle;
249
+ borderBlockEndWidth?: RowGap;
250
+ borderBlockStart?: Color | Border;
251
+ borderBlockStartClip?: D;
252
+ borderBlockStartColor?: Color;
253
+ borderBlockStartRadius?: Value;
254
+ borderBlockStartStyle?: OutlineStyle | BorderTopStyle;
255
+ borderBlockStartWidth?: RowGap;
256
+ borderBlockStyle?: Value;
257
+ borderBlockWidth?: Value;
258
+ borderBottom?: Color | Border;
259
+ borderBottomClip?: D;
260
+ borderBottomColor?: Color;
261
+ borderBottomLeftRadius?: Value;
262
+ borderBottomRadius?: Value;
263
+ borderBottomRightRadius?: Value;
264
+ borderBottomStyle?: OutlineStyle | BorderTopStyle;
265
+ borderBottomWidth?: RowGap;
266
+ borderBoundary?: 'display' | 'none' | 'parent' | Value;
267
+ borderClip?: Value;
268
+ borderCollapse?: 'collapse' | 'separate' | Value;
269
+ borderColor?: Color;
270
+ borderEndEndRadius?: Value;
271
+ borderEndStartRadius?: Value;
272
+ borderImage?: Value;
273
+ borderImageOutset?: Value;
274
+ borderImageRepeat?: BackgroundRepeatX | 'stretch';
275
+ borderImageSlice?: 'fill' | Value;
276
+ borderImageSource?: D;
277
+ borderImageWidth?: Rx;
278
+ borderInline?: Value;
279
+ borderInlineClip?: Value;
280
+ borderInlineColor?: Value;
281
+ borderInlineEnd?: Color | Border;
282
+ borderInlineEndClip?: D;
283
+ borderInlineEndColor?: Color;
284
+ borderInlineEndRadius?: Value;
285
+ borderInlineEndStyle?: OutlineStyle | BorderTopStyle;
286
+ borderInlineEndWidth?: RowGap;
287
+ borderInlineStart?: Color | Border;
288
+ borderInlineStartClip?: D;
289
+ borderInlineStartColor?: Color;
290
+ borderInlineStartRadius?: Value;
291
+ borderInlineStartStyle?: OutlineStyle | BorderTopStyle;
292
+ borderInlineStartWidth?: RowGap;
293
+ borderInlineStyle?: Value;
294
+ borderInlineWidth?: Value;
295
+ borderLeft?: Color | Border;
296
+ borderLeftClip?: D;
297
+ borderLeftColor?: Color;
298
+ borderLeftRadius?: Value;
299
+ borderLeftStyle?: OutlineStyle | BorderTopStyle;
300
+ borderLeftWidth?: RowGap;
301
+ borderLimit?: 'all' | 'bottom' | 'corners' | 'left' | 'right' | 'sides' | 'top' | Value;
302
+ borderRadius?: Value;
303
+ borderRight?: Color | Border;
304
+ borderRightClip?: D;
305
+ borderRightColor?: Color;
306
+ borderRightRadius?: Value;
307
+ borderRightStyle?: OutlineStyle | BorderTopStyle;
308
+ borderRightWidth?: RowGap;
309
+ borderShape?: ClipPath | ClipPath2;
310
+ borderSpacing?: Value;
311
+ borderStartEndRadius?: Value;
312
+ borderStartStartRadius?: Value;
313
+ borderStyle?: Value;
314
+ borderTop?: Color | Border;
315
+ borderTopClip?: D;
316
+ borderTopColor?: Color;
317
+ borderTopLeftRadius?: Value;
318
+ borderTopRadius?: Value;
319
+ borderTopRightRadius?: Value;
320
+ borderTopStyle?: OutlineStyle | BorderTopStyle;
321
+ borderTopWidth?: RowGap;
322
+ borderWidth?: Value;
323
+ bottom?: Rx;
324
+ boxDecorationBreak?: 'clone' | 'slice' | Value;
325
+ boxShadow?: D;
326
+ boxShadowBlur?: Value;
327
+ boxShadowColor?: Color;
328
+ boxShadowOffset?: D;
329
+ boxShadowPosition?: 'inset' | 'outset' | Value;
330
+ boxShadowSpread?: Value;
331
+ boxSizing?: BoxSizing;
332
+ boxSnap?: 'baseline' | 'block-end' | 'block-start' | 'center' | 'last-baseline' | 'none' | Value;
333
+ breakAfter?: BreakAfter;
334
+ breakBefore?: BreakAfter;
335
+ breakInside?: 'auto' | 'avoid' | 'avoid-column' | 'avoid-page' | 'avoid-region' | Value;
336
+ captionSide?: 'bottom' | 'top' | Value;
337
+ caret?: Value;
338
+ caretAnimation?: 'auto' | 'manual' | Value;
339
+ caretColor?: Color | Width2;
340
+ caretShape?: 'auto' | 'bar' | 'block' | 'underscore' | Value;
341
+ clear?: Clear | 'both' | 'both-block' | 'both-inline';
342
+ clip?: Rx;
343
+ clipPath?: ClipPath | ClipPath2;
344
+ clipRule?: ClipRule;
345
+ color?: Color;
346
+ colorAdjust?: Value;
347
+ colorInterpolation?: ColorInterpolation;
348
+ colorInterpolationFilters?: ColorInterpolation;
349
+ colorScheme?: ColorScheme | 'only';
350
+ columnCount?: Rx;
351
+ columnFill?: 'auto' | 'balance' | 'balance-all' | Value;
352
+ columnGap?: RowGap | RowGap2;
353
+ columnHeight?: Rx;
354
+ columnRule?: Color | Border | RowRule;
355
+ columnRuleBreak?: RowRuleBreak;
356
+ columnRuleColor?: Color | Width2;
357
+ columnRuleInset?: Value;
358
+ columnRuleInsetCap?: RowRuleInsetCap;
359
+ columnRuleInsetCapEnd?: RowRuleInsetCap;
360
+ columnRuleInsetCapStart?: RowRuleInsetCap;
361
+ columnRuleInsetEnd?: RowRuleInsetCap;
362
+ columnRuleInsetJunction?: RowRuleInsetCap;
363
+ columnRuleInsetJunctionEnd?: RowRuleInsetCap;
364
+ columnRuleInsetJunctionStart?: RowRuleInsetCap;
365
+ columnRuleInsetStart?: RowRuleInsetCap;
366
+ columnRuleStyle?: OutlineStyle | RowRuleStyle;
367
+ columnRuleVisibilityItems?: RowRuleVisibilityItems;
368
+ columnRuleWidth?: RowRuleWidth;
369
+ columnSpan?: ColumnSpan;
370
+ columnWidth?: Width | Width2;
371
+ columnWrap?: 'auto' | 'nowrap' | 'wrap' | Value;
372
+ columns?: Value;
373
+ contain?: 'content' | 'inline-size' | 'layout' | 'none' | 'paint' | 'size' | 'strict' | 'style' | Value;
374
+ containIntrinsicBlockSize?: Overlay;
375
+ containIntrinsicHeight?: Overlay;
376
+ containIntrinsicInlineSize?: Overlay;
377
+ containIntrinsicSize?: Overlay;
378
+ containIntrinsicWidth?: Overlay;
379
+ container?: Value;
380
+ containerName?: D;
381
+ containerType?: 'inline-size' | 'normal' | 'scroll-state' | 'size' | Value;
382
+ content?: 'close-quote' | 'contents' | 'no-close-quote' | 'no-open-quote' | 'none' | 'normal' | 'open-quote' | Value;
383
+ contentVisibility?: 'auto' | 'hidden' | 'visible' | Value;
384
+ continue?: '-webkit-legacy' | 'collapse' | 'discard' | 'fragments' | 'normal' | 'overflow' | 'paginate' | Value;
385
+ copyInto?: CopyInto | 'text';
386
+ corner?: Value;
387
+ cornerBlockEnd?: Value;
388
+ cornerBlockEndShape?: Value;
389
+ cornerBlockStart?: Value;
390
+ cornerBlockStartShape?: Value;
391
+ cornerBottom?: Value;
392
+ cornerBottomLeft?: Value;
393
+ cornerBottomLeftShape?: CornerEndEndShape;
394
+ cornerBottomRight?: Value;
395
+ cornerBottomRightShape?: CornerEndEndShape;
396
+ cornerBottomShape?: Value;
397
+ cornerEndEnd?: Value;
398
+ cornerEndEndShape?: CornerEndEndShape;
399
+ cornerEndStart?: Value;
400
+ cornerEndStartShape?: CornerEndEndShape;
401
+ cornerInlineEnd?: Value;
402
+ cornerInlineEndShape?: Value;
403
+ cornerInlineStart?: Value;
404
+ cornerInlineStartShape?: Value;
405
+ cornerLeft?: Value;
406
+ cornerLeftShape?: Value;
407
+ cornerRight?: Value;
408
+ cornerRightShape?: Value;
409
+ cornerShape?: Value;
410
+ cornerStartEnd?: Value;
411
+ cornerStartEndShape?: CornerEndEndShape;
412
+ cornerStartStart?: Value;
413
+ cornerStartStartShape?: CornerEndEndShape;
414
+ cornerTop?: Value;
415
+ cornerTopLeft?: Value;
416
+ cornerTopLeftShape?: CornerEndEndShape;
417
+ cornerTopRight?: Value;
418
+ cornerTopRightShape?: CornerEndEndShape;
419
+ cornerTopShape?: Value;
420
+ counterIncrement?: D;
421
+ counterReset?: D;
422
+ counterSet?: D;
423
+ cue?: Value;
424
+ cueAfter?: D;
425
+ cueBefore?: D;
426
+ cursor?: 'alias' | 'all-scroll' | 'auto' | 'cell' | 'col-resize' | 'context-menu' | 'copy' | 'crosshair' | 'default' | 'e-resize' | 'ew-resize' | 'grab' | 'grabbing' | 'help' | 'move' | 'n-resize' | 'ne-resize' | 'nesw-resize' | 'no-drop' | 'none' | 'not-allowed' | 'ns-resize' | 'nw-resize' | 'nwse-resize' | 'pointer' | 'progress' | 'row-resize' | 's-resize' | 'se-resize' | 'sw-resize' | 'text' | 'vertical-text' | 'w-resize' | 'wait' | 'zoom-in' | 'zoom-out' | Value;
427
+ cx?: Value;
428
+ cy?: Value;
429
+ d?: D;
430
+ direction?: 'ltr' | 'rtl' | Value;
431
+ display?: 'block' | 'contents' | 'flex' | 'flow' | 'flow-root' | 'grid' | 'grid-lanes' | 'inline' | 'inline-block' | 'inline-flex' | 'inline-grid' | 'inline-grid-lanes' | 'inline-table' | 'list-item' | 'math' | 'none' | 'ruby' | 'ruby-base' | 'ruby-base-container' | 'ruby-text' | 'ruby-text-container' | 'run-in' | 'table' | 'table-caption' | 'table-cell' | 'table-column' | 'table-column-group' | 'table-footer-group' | 'table-header-group' | 'table-row' | 'table-row-group' | Value;
432
+ dominantBaseline?: DominantBaseline | Width2;
433
+ dynamicRangeLimit?: 'constrained' | 'no-limit' | 'standard' | Value;
434
+ emptyCells?: 'hide' | 'show' | Value;
435
+ eventTrigger?: D;
436
+ eventTriggerName?: D;
437
+ eventTriggerSource?: D;
438
+ fieldSizing?: 'content' | 'fixed' | Value;
439
+ fill?: Fill;
440
+ fillBreak?: FillBreak;
441
+ fillColor?: Color;
442
+ fillImage?: Fill;
443
+ fillOpacity?: Value;
444
+ fillOrigin?: FillOrigin | FillOrigin2;
445
+ fillPosition?: FillPosition;
446
+ fillRepeat?: FillRepeat;
447
+ fillRule?: ClipRule;
448
+ fillSize?: FillSize;
449
+ filter?: D;
450
+ fitTolerance?: 'infinite' | 'normal' | Value;
451
+ flex?: D;
452
+ flexBasis?: FlexBasis;
453
+ flexDirection?: FlexDirection;
454
+ flexFlow?: Value;
455
+ flexGrow?: Value;
456
+ flexLineCount?: Value;
457
+ flexShrink?: Value;
458
+ flexWrap?: FlexWrap;
459
+ float?: Clear | 'footnote' | 'snap-block' | 'snap-inline';
460
+ floatDefer?: 'last' | 'none' | Value;
461
+ floatOffset?: Value;
462
+ floatReference?: 'column' | 'inline' | 'page' | 'region' | Value;
463
+ floodColor?: Color;
464
+ floodOpacity?: Value;
465
+ flowFrom?: D;
466
+ flowInto?: CopyInto;
467
+ font?: 'caption' | 'condensed' | 'expanded' | 'extra-condensed' | 'extra-expanded' | 'icon' | 'menu' | 'message-box' | 'normal' | 'semi-condensed' | 'semi-expanded' | 'small-caps' | 'small-caption' | 'status-bar' | 'ultra-condensed' | 'ultra-expanded' | Value;
468
+ fontFamily?: 'cursive' | 'fangsong' | 'fantasy' | 'kai' | 'khmer-mul' | 'math' | 'monospace' | 'nastaliq' | 'sans-serif' | 'serif' | 'system-ui' | 'ui-monospace' | 'ui-rounded' | 'ui-sans-serif' | 'ui-serif' | Value;
469
+ fontFeatureSettings?: 'normal' | 'off' | 'on' | Value;
470
+ fontKerning?: FontKerning;
471
+ fontLanguageOverride?: TextBox;
472
+ fontOpticalSizing?: Overlay;
473
+ fontPalette?: ColorScheme;
474
+ fontSize?: 'large' | 'larger' | 'math' | 'medium' | 'small' | 'smaller' | 'x-large' | 'x-small' | 'xx-large' | 'xx-small' | 'xxx-large' | Value;
475
+ fontSizeAdjust?: 'cap-height' | 'ch-width' | 'ex-height' | 'from-font' | 'ic-height' | 'ic-width' | 'none' | Value;
476
+ fontStretch?: FontWidth;
477
+ fontStyle?: 'italic' | 'left' | 'normal' | 'oblique' | 'right' | Value;
478
+ fontSynthesis?: 'none' | 'position' | 'small-caps' | 'style' | 'weight' | Value;
479
+ fontSynthesisPosition?: Overlay;
480
+ fontSynthesisSmallCaps?: Overlay;
481
+ fontSynthesisStyle?: 'auto' | 'none' | 'oblique-only' | Value;
482
+ fontSynthesisWeight?: Overlay;
483
+ fontVariant?: 'all-petite-caps' | 'all-small-caps' | 'common-ligatures' | 'contextual' | 'diagonal-fractions' | 'discretionary-ligatures' | 'emoji' | 'full-width' | 'historical-forms' | 'historical-ligatures' | 'jis04' | 'jis78' | 'jis83' | 'jis90' | 'lining-nums' | 'no-common-ligatures' | 'no-contextual' | 'no-discretionary-ligatures' | 'no-historical-ligatures' | 'none' | 'normal' | 'oldstyle-nums' | 'ordinal' | 'petite-caps' | 'proportional-nums' | 'proportional-width' | 'ruby' | 'simplified' | 'slashed-zero' | 'small-caps' | 'stacked-fractions' | 'sub' | 'super' | 'tabular-nums' | 'text' | 'titling-caps' | 'traditional' | 'unicase' | 'unicode' | Value;
484
+ fontVariantAlternates?: 'historical-forms' | 'normal' | Value;
485
+ fontVariantCaps?: 'all-petite-caps' | 'all-small-caps' | 'normal' | 'petite-caps' | 'small-caps' | 'titling-caps' | 'unicase' | Value;
486
+ fontVariantEastAsian?: 'full-width' | 'jis04' | 'jis78' | 'jis83' | 'jis90' | 'normal' | 'proportional-width' | 'ruby' | 'simplified' | 'traditional' | Value;
487
+ fontVariantEmoji?: 'emoji' | 'normal' | 'text' | 'unicode' | Value;
488
+ fontVariantLigatures?: 'common-ligatures' | 'contextual' | 'discretionary-ligatures' | 'historical-ligatures' | 'no-common-ligatures' | 'no-contextual' | 'no-discretionary-ligatures' | 'no-historical-ligatures' | 'none' | 'normal' | Value;
489
+ fontVariantNumeric?: 'diagonal-fractions' | 'lining-nums' | 'normal' | 'oldstyle-nums' | 'ordinal' | 'proportional-nums' | 'slashed-zero' | 'stacked-fractions' | 'tabular-nums' | Value;
490
+ fontVariantPosition?: 'normal' | 'sub' | 'super' | Value;
491
+ fontVariationSettings?: TextBox;
492
+ fontWeight?: 'bold' | 'bolder' | 'lighter' | 'normal' | Value;
493
+ fontWidth?: FontWidth;
494
+ footnoteDisplay?: 'block' | 'compact' | 'inline' | Value;
495
+ footnotePolicy?: 'auto' | 'block' | 'line' | Value;
496
+ forcedColorAdjust?: 'auto' | 'none' | 'preserve-parent-color' | Value;
497
+ frameSizing?: 'auto' | 'content-block-size' | 'content-height' | 'content-inline-size' | 'content-width' | Value;
498
+ gap?: Value;
499
+ glyphOrientationVertical?: '0' | '0deg' | '90' | '90deg' | 'auto' | Value;
500
+ grid?: 'auto-flow' | 'dense' | Value;
501
+ gridArea?: GridRow;
502
+ gridAutoColumns?: GridAutoRows;
503
+ gridAutoFlow?: 'column' | 'dense' | 'row' | Value;
504
+ gridAutoRows?: GridAutoRows;
505
+ gridColumn?: GridRow;
506
+ gridColumnEnd?: GridRow;
507
+ gridColumnGap?: RowGap | RowGap2;
508
+ gridColumnStart?: GridRow;
509
+ gridGap?: Value;
510
+ gridRow?: GridRow;
511
+ gridRowEnd?: GridRow;
512
+ gridRowGap?: RowGap | RowGap2;
513
+ gridRowStart?: GridRow;
514
+ gridTemplate?: GridAutoRows | MaxWidth;
515
+ gridTemplateAreas?: D;
516
+ gridTemplateColumns?: GridTemplateRows;
517
+ gridTemplateRows?: GridTemplateRows;
518
+ hangingPunctuation?: 'allow-end' | 'first' | 'force-end' | 'last' | 'none' | Value;
519
+ height?: Width | Width2;
520
+ hyphenateCharacter?: Rx;
521
+ hyphenateLimitChars?: Rx;
522
+ hyphenateLimitLast?: 'always' | 'column' | 'none' | 'page' | 'spread' | Value;
523
+ hyphenateLimitLines?: 'no-limit' | Value;
524
+ hyphenateLimitZone?: Value;
525
+ hyphens?: 'auto' | 'manual' | 'none' | Value;
526
+ imageAnimation?: 'normal' | 'paused' | 'running' | 'stopped' | Value;
527
+ imageOrientation?: 'flip' | 'from-image' | 'none' | Value;
528
+ imageRendering?: 'auto' | 'crisp-edges' | 'high-quality' | 'pixelated' | 'smooth' | Value;
529
+ imageResolution?: 'from-image' | 'snap' | Value;
530
+ initialLetter?: 'drop' | 'normal' | 'raise' | Value;
531
+ initialLetterAlign?: 'alphabetic' | 'border-box' | 'hanging' | 'ideographic' | 'leading' | Value;
532
+ initialLetterWrap?: 'all' | 'first' | 'grid' | 'none' | Value;
533
+ inlineSize?: Width | Width2;
534
+ inlineSizing?: 'normal' | 'stretch' | Value;
535
+ inputSecurity?: Overlay;
536
+ inset?: Value;
537
+ insetBlock?: Value;
538
+ insetBlockEnd?: Rx;
539
+ insetBlockStart?: Rx;
540
+ insetInline?: Value;
541
+ insetInlineEnd?: Rx;
542
+ insetInlineStart?: Rx;
543
+ interactivity?: 'auto' | 'inert' | Value;
544
+ interestDelay?: Value;
545
+ interestDelayEnd?: TextBox;
546
+ interestDelayStart?: TextBox;
547
+ interpolateSize?: 'allow-keywords' | 'numeric-only' | Value;
548
+ isolation?: 'auto' | 'isolate' | Value;
549
+ justifyContent?: JustifyContent | JustifyContent2;
550
+ justifyItems?: AlignSelf | 'left' | 'legacy' | 'right';
551
+ justifySelf?: AlignSelf | 'anchor-center' | 'auto' | 'left' | 'right';
552
+ left?: Rx;
553
+ letterSpacing?: TextBox;
554
+ lightingColor?: Color;
555
+ lineBreak?: 'anywhere' | 'auto' | 'loose' | 'normal' | 'strict' | Value;
556
+ lineClamp?: '-webkit-legacy' | 'none' | Value;
557
+ lineFitEdge?: LineFitEdge | 'leading';
558
+ lineGrid?: 'create' | 'match-parent' | Value;
559
+ lineHeight?: TextBox;
560
+ lineHeightStep?: Value;
561
+ linePadding?: Value;
562
+ lineSnap?: 'baseline' | 'contain' | 'none' | Value;
563
+ linkParameters?: D;
564
+ listStyle?: Value;
565
+ listStyleImage?: D;
566
+ listStylePosition?: 'inside' | 'outside' | Value;
567
+ listStyleType?: D;
568
+ margin?: Value;
569
+ marginBlock?: Value;
570
+ marginBlockEnd?: Value;
571
+ marginBlockStart?: Value;
572
+ marginBottom?: Rx;
573
+ marginBreak?: 'auto' | 'discard' | 'keep' | Value;
574
+ marginInline?: Value;
575
+ marginInlineEnd?: Value;
576
+ marginInlineStart?: Value;
577
+ marginLeft?: Rx;
578
+ marginRight?: Rx;
579
+ marginTop?: Rx;
580
+ marginTrim?: 'block' | 'block-end' | 'block-start' | 'none' | Value;
581
+ marker?: D;
582
+ markerEnd?: D;
583
+ markerMid?: D;
584
+ markerSide?: 'match-parent' | 'match-self' | Value;
585
+ markerStart?: D;
586
+ mask?: Mask;
587
+ maskBorder?: Value;
588
+ maskBorderMode?: MaskType;
589
+ maskBorderOutset?: Value;
590
+ maskBorderRepeat?: Value;
591
+ maskBorderSlice?: Value;
592
+ maskBorderSource?: Value;
593
+ maskBorderWidth?: Value;
594
+ maskClip?: MaskClip | MaskClip2;
595
+ maskComposite?: MaskComposite;
596
+ maskImage?: D;
597
+ maskMode?: 'alpha' | 'luminance' | 'match-source' | Value;
598
+ maskOrigin?: MaskClip;
599
+ maskPosition?: FillPosition;
600
+ maskRepeat?: FillRepeat;
601
+ maskSize?: FillSize;
602
+ maskType?: MaskType;
603
+ mathDepth?: 'auto-add' | Value;
604
+ mathShift?: MathShift;
605
+ mathStyle?: MathShift;
606
+ maxBlockSize?: Width | MaxWidth;
607
+ maxHeight?: Width | MaxWidth;
608
+ maxInlineSize?: Width | MaxWidth;
609
+ maxLines?: Rx;
610
+ maxSize?: Value;
611
+ maxWidth?: Width | MaxWidth;
612
+ minBlockSize?: Width | Width2;
613
+ minHeight?: Width | Width2;
614
+ minInlineSize?: Width | Width2;
615
+ minIntrinsicSizing?: 'legacy' | 'zero-if-extrinsic' | 'zero-if-scroll' | Value;
616
+ minSize?: Value;
617
+ minWidth?: Width | Width2;
618
+ mixBlendMode?: 'color' | 'color-burn' | 'color-dodge' | 'darken' | 'difference' | 'exclusion' | 'hard-light' | 'hue' | 'lighten' | 'luminosity' | 'multiply' | 'normal' | 'overlay' | 'plus-lighter' | 'saturation' | 'screen' | 'soft-light' | Value;
619
+ navDown?: NavUp;
620
+ navLeft?: NavUp;
621
+ navRight?: NavUp;
622
+ navUp?: NavUp;
623
+ objectFit?: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down' | Value;
624
+ objectPosition?: FillPosition;
625
+ objectViewBox?: D;
626
+ offset?: Value;
627
+ offsetAnchor?: FillPosition | Width2;
628
+ offsetDistance?: Value;
629
+ offsetPath?: ClipPath;
630
+ offsetPosition?: FillPosition | 'auto' | 'normal';
631
+ offsetRotate?: 'auto' | 'reverse' | Value;
632
+ opacity?: Value;
633
+ order?: Value;
634
+ orphans?: Value;
635
+ outline?: Value;
636
+ outlineColor?: Rx;
637
+ outlineOffset?: Value;
638
+ outlineStyle?: OutlineStyle | Width2;
639
+ outlineWidth?: RowGap;
640
+ overflow?: Value;
641
+ overflowAnchor?: Overlay;
642
+ overflowBlock?: OverflowX;
643
+ overflowClipMargin?: BackgroundOrigin;
644
+ overflowClipMarginBlock?: BackgroundOrigin;
645
+ overflowClipMarginBlockEnd?: BackgroundOrigin;
646
+ overflowClipMarginBlockStart?: BackgroundOrigin;
647
+ overflowClipMarginBottom?: BackgroundOrigin;
648
+ overflowClipMarginInline?: BackgroundOrigin;
649
+ overflowClipMarginInlineEnd?: BackgroundOrigin;
650
+ overflowClipMarginInlineStart?: BackgroundOrigin;
651
+ overflowClipMarginLeft?: BackgroundOrigin;
652
+ overflowClipMarginRight?: BackgroundOrigin;
653
+ overflowClipMarginTop?: BackgroundOrigin;
654
+ overflowInline?: OverflowX;
655
+ overflowWrap?: WordWrap;
656
+ overflowX?: OverflowX;
657
+ overflowY?: OverflowX;
658
+ overlay?: Overlay;
659
+ overscrollBehavior?: OverscrollBehavior;
660
+ overscrollBehaviorBlock?: OverscrollBehavior;
661
+ overscrollBehaviorInline?: OverscrollBehavior;
662
+ overscrollBehaviorX?: OverscrollBehavior;
663
+ overscrollBehaviorY?: OverscrollBehavior;
664
+ padding?: Value;
665
+ paddingBlock?: Value;
666
+ paddingBlockEnd?: Value;
667
+ paddingBlockStart?: Value;
668
+ paddingBottom?: Value;
669
+ paddingInline?: Value;
670
+ paddingInlineEnd?: Value;
671
+ paddingInlineStart?: Value;
672
+ paddingLeft?: Value;
673
+ paddingRight?: Value;
674
+ paddingTop?: Value;
675
+ page?: Rx;
676
+ pageBreakAfter?: PageBreakAfter;
677
+ pageBreakBefore?: PageBreakAfter;
678
+ pageBreakInside?: WrapInside;
679
+ paintOrder?: 'fill' | 'markers' | 'normal' | 'stroke' | Value;
680
+ pathLength?: '0' | 'none' | Value;
681
+ pause?: Value;
682
+ pauseAfter?: RestAfter;
683
+ pauseBefore?: RestAfter;
684
+ perspective?: D;
685
+ perspectiveOrigin?: FillPosition;
686
+ placeContent?: Value;
687
+ placeItems?: Value;
688
+ placeSelf?: Value;
689
+ pointerEvents?: 'all' | 'auto' | 'bounding-box' | 'fill' | 'none' | 'painted' | 'stroke' | 'visible' | 'visibleFill' | 'visiblePainted' | 'visibleStroke' | Value;
690
+ pointerTimeline?: Value;
691
+ pointerTimelineAxis?: ViewTimelineAxis;
692
+ pointerTimelineName?: D;
693
+ position?: 'absolute' | 'fixed' | 'relative' | 'static' | 'sticky' | Value;
694
+ positionAnchor?: FontKerning | FillOrigin2;
695
+ positionArea?: PositionArea;
696
+ positionTry?: Value;
697
+ positionTryFallbacks?: PositionArea | 'flip-block' | 'flip-inline' | 'flip-start' | 'flip-x' | 'flip-y';
698
+ positionTryOrder?: 'most-block-size' | 'most-height' | 'most-inline-size' | 'most-width' | 'normal' | Value;
699
+ positionVisibility?: 'always' | 'anchor-valid' | 'anchor-visible' | 'no-overflow' | Value;
700
+ printColorAdjust?: 'economy' | 'exact' | Value;
701
+ quotes?: 'auto' | 'bikeshed-this' | 'none' | Value;
702
+ r?: Value;
703
+ readingFlow?: 'flex-flow' | 'flex-visual' | 'grid-columns' | 'grid-order' | 'grid-rows' | 'normal' | 'source-order' | Value;
704
+ readingOrder?: Value;
705
+ regionFragment?: 'auto' | 'break' | Value;
706
+ resize?: 'block' | 'both' | 'horizontal' | 'inline' | 'none' | 'vertical' | Value;
707
+ rest?: Value;
708
+ restAfter?: RestAfter;
709
+ restBefore?: RestAfter;
710
+ right?: Rx;
711
+ rotate?: 'none' | 'x' | 'y' | 'z' | Value;
712
+ rowGap?: RowGap | RowGap2;
713
+ rowRule?: Color | Border | RowRule;
714
+ rowRuleBreak?: RowRuleBreak;
715
+ rowRuleColor?: Color | Width2;
716
+ rowRuleInset?: Value;
717
+ rowRuleInsetCap?: RowRuleInsetCap;
718
+ rowRuleInsetCapEnd?: RowRuleInsetCap;
719
+ rowRuleInsetCapStart?: RowRuleInsetCap;
720
+ rowRuleInsetEnd?: RowRuleInsetCap;
721
+ rowRuleInsetJunction?: RowRuleInsetCap;
722
+ rowRuleInsetJunctionEnd?: RowRuleInsetCap;
723
+ rowRuleInsetJunctionStart?: RowRuleInsetCap;
724
+ rowRuleInsetStart?: RowRuleInsetCap;
725
+ rowRuleStyle?: OutlineStyle | RowRuleStyle;
726
+ rowRuleVisibilityItems?: RowRuleVisibilityItems;
727
+ rowRuleWidth?: RowRuleWidth;
728
+ rubyAlign?: 'center' | 'space-around' | 'space-between' | 'start' | Value;
729
+ rubyMerge?: 'auto' | 'merge' | 'separate' | Value;
730
+ rubyOverhang?: 'auto' | 'spaces' | Value;
731
+ rubyPosition?: 'alternate' | 'inter-character' | 'over' | 'under' | Value;
732
+ rule?: Value;
733
+ ruleBreak?: Value;
734
+ ruleColor?: Value;
735
+ ruleInset?: Value;
736
+ ruleInsetCap?: Value;
737
+ ruleInsetEnd?: Value;
738
+ ruleInsetJunction?: Value;
739
+ ruleInsetStart?: Value;
740
+ ruleOverlap?: 'column-over-row' | 'row-over-column' | Value;
741
+ ruleStyle?: Value;
742
+ ruleVisibilityItems?: Value;
743
+ ruleWidth?: Value;
744
+ rx?: Rx;
745
+ ry?: Rx;
746
+ scale?: D;
747
+ scrollAxisLock?: Overlay;
748
+ scrollBehavior?: 'auto' | 'smooth' | Value;
749
+ scrollInitialTarget?: 'nearest' | 'none' | Value;
750
+ scrollMargin?: Value;
751
+ scrollMarginBlock?: Value;
752
+ scrollMarginBlockEnd?: Value;
753
+ scrollMarginBlockStart?: Value;
754
+ scrollMarginBottom?: Value;
755
+ scrollMarginInline?: Value;
756
+ scrollMarginInlineEnd?: Value;
757
+ scrollMarginInlineStart?: Value;
758
+ scrollMarginLeft?: Value;
759
+ scrollMarginRight?: Value;
760
+ scrollMarginTop?: Value;
761
+ scrollMarkerGroup?: 'after' | 'before' | 'links' | 'none' | 'tabs' | Value;
762
+ scrollPadding?: Rx;
763
+ scrollPaddingBlock?: Rx;
764
+ scrollPaddingBlockEnd?: Rx;
765
+ scrollPaddingBlockStart?: Rx;
766
+ scrollPaddingBottom?: Rx;
767
+ scrollPaddingInline?: Rx;
768
+ scrollPaddingInlineEnd?: Rx;
769
+ scrollPaddingInlineStart?: Rx;
770
+ scrollPaddingLeft?: Rx;
771
+ scrollPaddingRight?: Rx;
772
+ scrollPaddingTop?: Rx;
773
+ scrollSnapAlign?: BlockStepAlign | MaxWidth;
774
+ scrollSnapStop?: 'always' | 'normal' | Value;
775
+ scrollSnapType?: 'block' | 'both' | 'inline' | 'mandatory' | 'none' | 'pair' | 'proximity' | 'x' | 'y' | Value;
776
+ scrollTargetGroup?: Overlay;
777
+ scrollTimeline?: Value;
778
+ scrollTimelineAxis?: ViewTimelineAxis;
779
+ scrollTimelineName?: D;
780
+ scrollbarColor?: Color | Width2;
781
+ scrollbarGutter?: 'auto' | 'both-edges' | 'stable' | Value;
782
+ scrollbarWidth?: 'auto' | 'none' | 'thin' | Value;
783
+ shapeImageThreshold?: Value;
784
+ shapeInside?: 'auto' | 'display' | 'outside-shape' | 'shape-box' | Value;
785
+ shapeMargin?: Value;
786
+ shapeOutside?: 'border-box' | 'content-box' | 'half-border-box' | 'margin-box' | 'none' | 'padding-box' | Value;
787
+ shapePadding?: Value;
788
+ shapeRendering?: TextRendering | 'crispEdges';
789
+ size?: Value;
790
+ sliderOrientation?: 'auto' | 'bottom-to-top' | 'left-to-right' | 'right-to-left' | 'top-to-bottom' | Value;
791
+ spatialNavigationAction?: 'auto' | 'focus' | 'scroll' | Value;
792
+ spatialNavigationContain?: 'auto' | 'contain' | Value;
793
+ spatialNavigationFunction?: 'grid' | 'normal' | Value;
794
+ speak?: 'always' | 'auto' | 'never' | Value;
795
+ speakAs?: 'digits' | 'literal-punctuation' | 'no-punctuation' | 'normal' | 'spell-out' | Value;
796
+ stopColor?: Value;
797
+ stopOpacity?: Value;
798
+ stringSet?: D;
799
+ stroke?: Fill;
800
+ strokeAlign?: 'center' | 'inset' | 'outset' | Value;
801
+ strokeAlignment?: 'center' | 'inner' | 'outer' | Value;
802
+ strokeBreak?: FillBreak;
803
+ strokeColor?: Color;
804
+ strokeDashCorner?: D;
805
+ strokeDashJustify?: StrokeDashadjust;
806
+ strokeDashadjust?: StrokeDashadjust;
807
+ strokeDasharray?: D;
808
+ strokeDashcorner?: D;
809
+ strokeDashoffset?: Value;
810
+ strokeImage?: Fill;
811
+ strokeLinecap?: 'butt' | 'round' | 'square' | Value;
812
+ strokeLinejoin?: 'arcs' | 'bevel' | 'crop' | 'fallback' | 'miter' | 'round' | Value;
813
+ strokeMiterlimit?: Value;
814
+ strokeOpacity?: Value;
815
+ strokeOrigin?: FillOrigin | FillOrigin2;
816
+ strokePosition?: FillPosition;
817
+ strokeRepeat?: FillRepeat;
818
+ strokeSize?: FillSize;
819
+ strokeWidth?: RowGap;
820
+ tabSize?: Value;
821
+ tableLayout?: 'auto' | 'fixed' | Value;
822
+ textAlign?: TextAlign | 'justify-all';
823
+ textAlignAll?: TextAlign;
824
+ textAlignLast?: TextAlign | Width2;
825
+ textAnchor?: 'end' | 'middle' | 'start' | Value;
826
+ textAutospace?: 'auto' | 'ideograph-alpha' | 'ideograph-numeric' | 'insert' | 'no-autospace' | 'normal' | 'punctuation' | 'replace' | Value;
827
+ textBox?: TextBox;
828
+ textBoxEdge?: LineFitEdge | Width2;
829
+ textBoxTrim?: 'none' | 'trim-both' | 'trim-end' | 'trim-start' | Value;
830
+ textCombineUpright?: 'all' | 'digits' | 'none' | Value;
831
+ textDecoration?: Value;
832
+ textDecorationColor?: Color;
833
+ textDecorationInset?: Rx;
834
+ textDecorationLine?: 'blink' | 'grammar-error' | 'line-through' | 'none' | 'overline' | 'spelling-error' | 'underline' | Value;
835
+ textDecorationSkip?: Overlay;
836
+ textDecorationSkipBox?: AnchorScope;
837
+ textDecorationSkipInk?: ColumnSpan;
838
+ textDecorationSkipSelf?: 'auto' | 'no-skip' | 'skip-all' | 'skip-line-through' | 'skip-overline' | 'skip-underline' | Value;
839
+ textDecorationSkipSpaces?: 'all' | 'end' | 'none' | 'start' | Value;
840
+ textDecorationStyle?: 'dashed' | 'dotted' | 'double' | 'solid' | 'wavy' | Value;
841
+ textDecorationThickness?: RowRuleWidth | 'from-font';
842
+ textEmphasis?: Value;
843
+ textEmphasisColor?: Color;
844
+ textEmphasisPosition?: 'left' | 'over' | 'right' | 'under' | Value;
845
+ textEmphasisSkip?: 'narrow' | 'punctuation' | 'spaces' | 'symbols' | Value;
846
+ textEmphasisStyle?: 'circle' | 'dot' | 'double-circle' | 'filled' | 'none' | 'open' | 'sesame' | 'triangle' | Value;
847
+ textFit?: 'consistent' | 'grow' | 'none' | 'per-line' | 'per-line-all' | 'shrink' | Value;
848
+ textGroupAlign?: 'center' | 'end' | 'left' | 'none' | 'right' | 'start' | Value;
849
+ textIndent?: 'each-line' | 'hanging' | Value;
850
+ textJustify?: 'auto' | 'inter-character' | 'inter-word' | 'no-compress' | 'none' | 'ruby' | Value;
851
+ textOrientation?: 'mixed' | 'sideways' | 'upright' | Value;
852
+ textOverflow?: 'clip' | 'ellipsis' | 'fade' | Value;
853
+ textRendering?: TextRendering | 'optimizeLegibility';
854
+ textShadow?: Color | 'inset' | 'none';
855
+ textSizeAdjust?: Overlay;
856
+ textSpacing?: 'auto' | 'ideograph-alpha' | 'ideograph-numeric' | 'insert' | 'no-autospace' | 'none' | 'normal' | 'punctuation' | 'replace' | 'space-all' | 'space-first' | 'trim-all' | 'trim-both' | 'trim-start' | Value;
857
+ textSpacingTrim?: 'auto' | 'normal' | 'space-all' | 'space-first' | 'trim-all' | 'trim-both' | 'trim-start' | Value;
858
+ textTransform?: 'capitalize' | 'full-size-kana' | 'full-width' | 'lowercase' | 'math-auto' | 'none' | 'uppercase' | Value;
859
+ textUnderlineOffset?: Rx;
860
+ textUnderlinePosition?: 'auto' | 'from-font' | 'left' | 'right' | 'under' | Value;
861
+ textWrap?: Value;
862
+ textWrapMode?: 'nowrap' | 'wrap' | Value;
863
+ textWrapStyle?: 'auto' | 'avoid-short-last-line' | 'balance' | 'pretty' | 'stable' | Value;
864
+ timelineScope?: AnchorScope;
865
+ timelineTrigger?: D;
866
+ timelineTriggerActivationRange?: Value;
867
+ timelineTriggerActivationRangeEnd?: TextBox;
868
+ timelineTriggerActivationRangeStart?: TextBox;
869
+ timelineTriggerActiveRange?: Value;
870
+ timelineTriggerActiveRangeEnd?: TimelineTriggerActiveRangeEnd;
871
+ timelineTriggerActiveRangeStart?: TimelineTriggerActiveRangeEnd;
872
+ timelineTriggerName?: D;
873
+ timelineTriggerRange?: Value;
874
+ timelineTriggerSource?: Overlay;
875
+ top?: Rx;
876
+ touchAction?: 'auto' | 'manipulation' | 'none' | 'pan-down' | 'pan-left' | 'pan-right' | 'pan-up' | 'pan-x' | 'pan-y' | 'pinch-zoom' | Value;
877
+ transform?: D;
878
+ transformBox?: 'border-box' | 'content-box' | 'fill-box' | 'stroke-box' | 'view-box' | Value;
879
+ transformOrigin?: TransformOrigin;
880
+ transformStyle?: TransformStyle;
881
+ transition?: Transition;
882
+ transitionBehavior?: 'allow-discrete' | 'normal' | Value;
883
+ transitionDelay?: Value;
884
+ transitionDuration?: Value;
885
+ transitionProperty?: AnchorScope;
886
+ transitionTimingFunction?: AnimationTimingFunction;
887
+ translate?: D;
888
+ triggerScope?: AnchorScope;
889
+ unicodeBidi?: 'bidi-override' | 'embed' | 'isolate' | 'isolate-override' | 'normal' | 'plaintext' | Value;
890
+ userSelect?: UserSelect;
891
+ vectorEffect?: 'fixed-position' | 'non-rotation' | 'non-scaling-size' | 'non-scaling-stroke' | 'none' | Value;
892
+ verticalAlign?: 'first' | 'last' | Value;
893
+ viewTimeline?: Value;
894
+ viewTimelineAxis?: ViewTimelineAxis;
895
+ viewTimelineInset?: Rx;
896
+ viewTimelineName?: D;
897
+ viewTransitionClass?: D;
898
+ viewTransitionGroup?: 'contain' | 'nearest' | 'normal' | Value;
899
+ viewTransitionName?: D;
900
+ viewTransitionScope?: AnchorScope;
901
+ visibility?: 'collapse' | 'force-hidden' | 'hidden' | 'visible' | Value;
902
+ voiceBalance?: 'center' | 'left' | 'leftwards' | 'right' | 'rightwards' | Value;
903
+ voiceDuration?: Rx;
904
+ voiceFamily?: 'preserve' | Value;
905
+ voicePitch?: VoicePitch;
906
+ voiceRange?: VoicePitch;
907
+ voiceRate?: 'fast' | 'medium' | 'normal' | 'slow' | 'x-fast' | 'x-slow' | Value;
908
+ voiceStress?: 'moderate' | 'none' | 'normal' | 'reduced' | 'strong' | Value;
909
+ voiceVolume?: 'loud' | 'medium' | 'silent' | 'soft' | 'x-loud' | 'x-soft' | Value;
910
+ whiteSpace?: 'normal' | 'pre' | 'pre-line' | 'pre-wrap' | Value;
911
+ whiteSpaceCollapse?: 'break-spaces' | 'collapse' | 'discard' | 'preserve' | 'preserve-breaks' | 'preserve-spaces' | Value;
912
+ whiteSpaceTrim?: 'discard-after' | 'discard-before' | 'discard-inner' | 'none' | Value;
913
+ widows?: Value;
914
+ width?: Width | Width2;
915
+ willChange?: 'auto' | 'contents' | 'scroll-position' | Value;
916
+ windowDrag?: 'move' | 'none' | Value;
917
+ wordBreak?: 'auto-phrase' | 'break-all' | 'break-word' | 'keep-all' | 'manual' | 'normal' | Value;
918
+ wordSpaceTransform?: 'auto-phrase' | 'ideographic-space' | 'none' | 'space' | Value;
919
+ wordSpacing?: TextBox;
920
+ wordWrap?: WordWrap;
921
+ wrapAfter?: WrapAfter;
922
+ wrapBefore?: WrapAfter;
923
+ wrapFlow?: 'auto' | 'both' | 'clear' | 'end' | 'maximum' | 'minimum' | 'start' | Value;
924
+ wrapInside?: WrapInside;
925
+ wrapThrough?: 'none' | 'wrap' | Value;
926
+ writingMode?: 'horizontal-tb' | 'sideways-lr' | 'sideways-rl' | 'vertical-lr' | 'vertical-rl' | Value;
927
+ x?: Value;
928
+ y?: Value;
929
+ zIndex?: Rx;
930
+ zoom?: Value;
931
+ };
932
+ //#endregion
933
+ //#region src/types/css.d.ts
934
+ /**
935
+ * A mapping of CSS properties to values
936
+ */
937
+ type Styles = KnownProperties & Record<string, Value$1 | undefined>;
938
+ //#endregion
939
+ //#region src/types/fragments.d.ts
940
+ /**
941
+ * A provider of styles derived from a context
942
+ */
943
+ type DerivedStyles<S extends FragmentScope = 'relative', C extends object = object> = (defineFragment: IsFragmentFactory<S>, context: C) => ScopedFragments<S>;
944
+ /**
945
+ * A styled fragment
946
+ */
947
+ type Fragment<S extends FragmentScope = FragmentScope> = {
948
+ nested: (definitions: ScopedFragments) => Fragment<S>;
949
+ scope: S;
950
+ styles: FragmentStyles;
951
+ };
952
+ /**
953
+ * The scope of a fragment
954
+ */
955
+ type FragmentScope = 'absolute' | 'relative';
956
+ /**
957
+ * Styles bound to a fragment
958
+ */
959
+ type FragmentStyles = {
960
+ nested: ScopedFragments<'relative'>;
961
+ root: Styles;
962
+ };
963
+ /**
964
+ * Define a scoped fragment factory
965
+ */
966
+ type IsFragmentFactory<S extends FragmentScope> = ((styles?: Styles) => Fragment<S>) & {
967
+ rules: (definitions: ScopedFragments) => Fragment<S>;
968
+ };
969
+ /**
970
+ * A factory for absolute fragments
971
+ */
972
+ type RelativeFragmentFactory = IsFragmentFactory<'relative'>;
973
+ /**
974
+ * Fragment definitions scoped by selector
975
+ */
976
+ type ScopedFragments<S extends FragmentScope = FragmentScope> = Record<string, Fragment<S>>;
977
+ //#endregion
978
+ //#region src/types/ids.d.ts
979
+ declare const ELEMENT_ROOT = "root";
980
+ //#endregion
981
+ //#region src/types/utils.d.ts
982
+ /**
983
+ * An object without keys
984
+ */
985
+ type EmptyObject = { [K in never]: never; };
986
+ /**
987
+ * A type that has variants
988
+ */
989
+ type HasVariants<T extends string> = {
990
+ variants: T;
991
+ };
992
+ /**
993
+ * An eager value or a function that produces one
994
+ */
995
+ type Thunkable<T> = T | (() => T);
996
+ //#endregion
997
+ //#region src/types/elements.d.ts
998
+ /**
999
+ * The context available when defining derived element styles
1000
+ */
1001
+ type DerivedElementContext<S extends ElementSpec = ElementSpec> = {
1002
+ els: ProjectTree<S, S['children']>;
1003
+ variants: VariantProjector<S['variants']>;
1004
+ };
1005
+ /**
1006
+ * A provider of styles derived from an element context
1007
+ */
1008
+ type DerivedElementStyles<C extends object = DerivedElementContext> = DerivedStyles<'relative', C>;
1009
+ /**
1010
+ * The data that fully defines an element
1011
+ */
1012
+ type ElementDefinition = {
1013
+ children: ElementDefinitions;
1014
+ nested: DerivedElementStyles[];
1015
+ styles: Styles;
1016
+ variants?: DerivedElementStyles;
1017
+ };
1018
+ /**
1019
+ * A mapping of element names to definitions
1020
+ */
1021
+ type ElementDefinitions = Record<string, ElementDefinition>;
1022
+ /**
1023
+ * A specification for an element
1024
+ */
1025
+ type ElementSpec<C extends ElementSpecs = ElementSpecs, V extends string = string> = HasVariants<V> & {
1026
+ children: C;
1027
+ };
1028
+ /**
1029
+ * A nested collection of named element specs
1030
+ */
1031
+ type ElementSpecs = { [K in string]: ElementSpec; };
1032
+ /**
1033
+ * An empty element spec
1034
+ */
1035
+ type EmptyElementSpec = ElementSpec<EmptyElementSpecs, never>;
1036
+ /**
1037
+ * An empty set of element specs
1038
+ */
1039
+ type EmptyElementSpecs = EmptyObject;
1040
+ /**
1041
+ * A constraint on element specs that preserves each element's type
1042
+ */
1043
+ type NamedElements<E extends object> = { [K in keyof E]: ElementSpec; };
1044
+ /**
1045
+ * Project a root or branch element
1046
+ */
1047
+ type ProjectElement<S extends ElementSpec> = [keyof S['children']] extends [never] ? ProjectRoot<S> : S['children'] extends NamedElements<S['children']> ? ProjectTree<S, S['children']> : never;
1048
+ /**
1049
+ * Project a tree of elements as class names
1050
+ */
1051
+ type ProjectElements<E extends NamedElements<E>> = { [K in keyof E]: ProjectElement<E[K]>; };
1052
+ /**
1053
+ * Project an element root as a static or dynamic value based on its variants
1054
+ */
1055
+ type ProjectRoot<S extends HasVariants<string>> = [S['variants']] extends [never] ? string : VariantProjector<S['variants']>;
1056
+ /**
1057
+ * Project an element tree and its possible children as class names
1058
+ */
1059
+ type ProjectTree<Root extends HasVariants<string>, Children extends NamedElements<Children>> = {
1060
+ [ELEMENT_ROOT]: ProjectRoot<Root>;
1061
+ } & ProjectElements<Children>;
1062
+ /**
1063
+ * A value that may be passed to a variant projector
1064
+ */
1065
+ type VariantRequest<V extends string> = '' | 0 | false | null | undefined | V;
1066
+ /**
1067
+ * A projector for a selector that uses one or more variants
1068
+ */
1069
+ type VariantProjector<V extends string> = (...names: VariantRequest<V>[]) => string;
1070
+ /**
1071
+ * Extract variant names from a provider
1072
+ */
1073
+ type VariantsFromProvider<P> = P extends DerivedStyles ? keyof ReturnType<P> : never;
1074
+ //#endregion
1075
+ //#region src/types/components.d.ts
1076
+ /**
1077
+ * The context available when defining derived component styles
1078
+ */
1079
+ type DerivedComponentContext<S extends ComponentSpec = ComponentSpec> = {
1080
+ els: ProjectTree<S, S['els']>;
1081
+ ids: IdentifierValues<S['ids']>;
1082
+ variants: VariantProjector<S['variants']>;
1083
+ };
1084
+ /**
1085
+ * A provider of styles derived from a component context
1086
+ */
1087
+ type DerivedComponentStyles<S extends FragmentScope = FragmentScope, C extends object = DerivedComponentContext> = DerivedStyles<S, C>;
1088
+ /**
1089
+ * The data that fully defines a component
1090
+ */
1091
+ type ComponentDefinition = {
1092
+ elements: ElementDefinitions;
1093
+ global: DerivedComponentStyles<'absolute'>[];
1094
+ id: string;
1095
+ identifiers: NamedIdentifiers;
1096
+ nested: DerivedComponentStyles<'relative'>[];
1097
+ styles: Styles;
1098
+ variants?: DerivedComponentStyles;
1099
+ };
1100
+ /**
1101
+ * A specification for a component
1102
+ */
1103
+ type ComponentSpec<E extends ElementSpecs = ElementSpecs, V extends string = string, I extends string = string> = HasVariants<V> & {
1104
+ els: E;
1105
+ ids: I;
1106
+ };
1107
+ /**
1108
+ * A component projected as class names
1109
+ */
1110
+ type ProjectedComponent<S extends ComponentSpec> = ProjectTree<S, S['els']>;
1111
+ /**
1112
+ * An empty component spec
1113
+ */
1114
+ type EmptyComponentSpec = ComponentSpec<EmptyElementSpecs, never, never>;
1115
+ /**
1116
+ * A type of a component-specific identifier
1117
+ */
1118
+ type IdentifierType = 'string' | 'variable';
1119
+ /**
1120
+ * Values for component identifirs
1121
+ */
1122
+ type IdentifierValues<T extends string = string> = Record<T, string>;
1123
+ /**
1124
+ * Get the identifier values for a component spec
1125
+ */
1126
+ type IdentifierValuesFor<S extends ComponentSpec> = IdentifierValues<S['ids']>;
1127
+ /**
1128
+ * A mapping of identifier names to their types
1129
+ */
1130
+ type NamedIdentifiers = Record<string, IdentifierType>;
1131
+ //#endregion
1132
+ //#region src/naming.d.ts
1133
+ /**
1134
+ * An available naming scheme for classes
1135
+ */
1136
+ type NamingScheme = 'compact' | 'verbose';
1137
+ //#endregion
1138
+ //#region src/styles.d.ts
1139
+ declare class PropertyProjector {
1140
+ private names;
1141
+ /**
1142
+ * Create a mapper of camel-cased values to CSS properties
1143
+ */
1144
+ constructor();
1145
+ /**
1146
+ * Project a camel-cased value as a CSS property
1147
+ */
1148
+ project(camel: string): string;
1149
+ }
1150
+ //#endregion
1151
+ //#region src/compilation.d.ts
1152
+ /**
1153
+ * Options for compiling a component's CSS
1154
+ */
1155
+ type CompileConfig = {
1156
+ indentation?: number;
1157
+ naming?: NamingScheme;
1158
+ properties?: PropertyProjector;
1159
+ };
1160
+ /**
1161
+ * Generate CSS for a component's styles
1162
+ */
1163
+ declare function styleComponent(component: ComponentDefinition, config?: CompileConfig): string;
1164
+ //#endregion
1165
+ //#region src/builder.d.ts
1166
+ /**
1167
+ * A builder's internal state
1168
+ */
1169
+ type State = Record<string, unknown>;
1170
+ /**
1171
+ * The exposed state of a builder
1172
+ */
1173
+ type BuilderState<T extends State> = {
1174
+ current: T;
1175
+ };
1176
+ declare abstract class Builder<T extends State> {
1177
+ current: T;
1178
+ /**
1179
+ * Create a builder that progressively updates its state
1180
+ */
1181
+ constructor(defaultState: T);
1182
+ /**
1183
+ * Set a state field
1184
+ *
1185
+ * @throws if the field already has a value
1186
+ */
1187
+ protected setStateField<K extends Extract<keyof T, string>>(key: K, value: T[K]): void;
1188
+ }
1189
+ //#endregion
1190
+ //#region src/traits.d.ts
1191
+ /**
1192
+ * A trait that can be applied to a component or element
1193
+ */
1194
+ type Trait = Fragment<'relative'>;
1195
+ /**
1196
+ * Define a trait
1197
+ */
1198
+ declare function defineTrait(build: (s: RelativeFragmentFactory) => Trait): Trait;
1199
+ //#endregion
1200
+ //#region src/elements.d.ts
1201
+ /**
1202
+ * A wide, data-only form of an element class
1203
+ */
1204
+ type AnyElement = BuilderState<ElementDefinition>;
1205
+ /**
1206
+ * An eager or lazy element definition
1207
+ */
1208
+ type ElementProvider = Thunkable<AnyElement>;
1209
+ /**
1210
+ * A mapping of element names to providers
1211
+ */
1212
+ type ElementProviders = Record<string, ElementProvider>;
1213
+ /**
1214
+ * Infer an element spec from a provider
1215
+ */
1216
+ type SpecFromProvider<P extends ElementProvider> = P extends (() => Element<infer S>) ? S : P extends Element<infer S> ? S : never;
1217
+ /**
1218
+ * Convert element providers to a tree of specs
1219
+ */
1220
+ type ProvidersToSpecs<T extends ElementProviders> = { [P in keyof T]: SpecFromProvider<T[P]>; };
1221
+ /**
1222
+ * Define an element
1223
+ */
1224
+ declare function defineElement(styles?: Styles): Element<EmptyElementSpec>;
1225
+ declare class Element<S extends ElementSpec = ElementSpec> extends Builder<ElementDefinition> {
1226
+ /**
1227
+ * Create an element
1228
+ */
1229
+ constructor();
1230
+ /**
1231
+ * Define child elements
1232
+ */
1233
+ children<T extends ElementProviders>(definitions: Thunkable<T>): Element<ElementSpec<ProvidersToSpecs<T>, S['variants']>>;
1234
+ /**
1235
+ * Apply styles to the element
1236
+ */
1237
+ css(styles: Styles): Element<S>;
1238
+ /**
1239
+ * Apply traits to the element
1240
+ */
1241
+ is(...traits: Trait[]): Element<S>;
1242
+ /**
1243
+ * Define nested styles for the element
1244
+ */
1245
+ nested(provider: DerivedElementStyles<DerivedElementContext<S>>): Element<S>;
1246
+ /**
1247
+ * Define variants for the element
1248
+ */
1249
+ variants<P extends DerivedElementStyles<Pick<DerivedElementContext<S>, 'els'>>>(provider: P): Element<ElementSpec<S['children'], VariantsFromProvider<P>>>;
1250
+ }
1251
+ //#endregion
1252
+ //#region src/internal.d.ts
1253
+ declare const build: unique symbol;
1254
+ declare const identifiers: unique symbol;
1255
+ /**
1256
+ * Internal annotations for a component
1257
+ */
1258
+ type Annotations<S extends ComponentSpec> = {
1259
+ [build]: BuildPlan;
1260
+ [identifiers]: IdentifierValuesFor<S>;
1261
+ };
1262
+ /**
1263
+ * A component that can be applied as classes or styles
1264
+ */
1265
+ type ApplicableComponent<S extends ComponentSpec> = ProjectedComponent<S> & Annotations<S>;
1266
+ /**
1267
+ * A build plan for a component
1268
+ */
1269
+ type BuildPlan = {
1270
+ compile: (config?: CompileConfig) => string;
1271
+ component: ComponentDefinition;
1272
+ };
1273
+ /**
1274
+ * Extract identifiers from a component
1275
+ */
1276
+ declare function extractIdentifiers<S extends ComponentSpec>(component: ApplicableComponent<S>): IdentifierValuesFor<S>;
1277
+ //#endregion
1278
+ //#region src/components.d.ts
1279
+ declare class Component<S extends ComponentSpec = ComponentSpec> extends Builder<ComponentDefinition> {
1280
+ id: string;
1281
+ /**
1282
+ * Create a component
1283
+ */
1284
+ constructor(name: string, { namespace }?: {
1285
+ namespace?: string[];
1286
+ });
1287
+ /**
1288
+ * Project the component into class names and identifiers
1289
+ */
1290
+ apply(): ApplicableComponent<S>;
1291
+ /**
1292
+ * Apply styles to the component root
1293
+ */
1294
+ css(styles: Styles): Component<S>;
1295
+ /**
1296
+ * Define component-specific identifiers
1297
+ */
1298
+ identifiers<I extends NamedIdentifiers>(types: I): Component<ComponentSpec<S['els'], S['variants'], keyof I & string>>;
1299
+ /**
1300
+ * Define the component's elements
1301
+ */
1302
+ elements<T extends ElementProviders>(provider: (e: typeof defineElement, ctx: Pick<DerivedComponentContext<S>, 'ids'>) => T): Component<ComponentSpec<ProvidersToSpecs<T>, S['variants'], S['ids']>>;
1303
+ /**
1304
+ * Apply reusable trait styles and nested rules
1305
+ */
1306
+ is(...traits: Trait[]): Component<S>;
1307
+ /**
1308
+ * Define global styles for the component
1309
+ */
1310
+ global(definitions: DerivedComponentStyles<'absolute', DerivedComponentContext<S>>): Component<S>;
1311
+ /**
1312
+ * Define nested styles for the component
1313
+ */
1314
+ nested(definitions: DerivedComponentStyles<'relative', DerivedComponentContext<S>>): Component<S>;
1315
+ /**
1316
+ * Define variants for the component root
1317
+ */
1318
+ variants<P extends DerivedComponentStyles<'relative', Omit<DerivedComponentContext<S>, 'variants'>>>(provider: P): Component<ComponentSpec<S['els'], VariantsFromProvider<P>, S['ids']>>;
1319
+ }
1320
+ /**
1321
+ * Define a component
1322
+ */
1323
+ declare function defineComponent(name: string): Component<EmptyComponentSpec>;
1324
+ //#endregion
1325
+ //#region src/queries.d.ts
1326
+ /**
1327
+ * Rules keyed by query labels
1328
+ */
1329
+ type AppliedQueries<Q extends NamedQueries> = { [K in keyof Q]: QueryRules; };
1330
+ /**
1331
+ * A mapping of labels to queries
1332
+ */
1333
+ type NamedQueries = Record<string, string>;
1334
+ /**
1335
+ * A function that applies rules to queries
1336
+ */
1337
+ type QueryApplicator<Q extends NamedQueries> = (blocks: Partial<AppliedQueries<Q>>) => QueryRules;
1338
+ /**
1339
+ * A provider that supports partial rules and exposes named queries
1340
+ */
1341
+ type QueryProvider<Q extends NamedQueries> = { [K in keyof Q]: Q[K]; } & QueryApplicator<Q>;
1342
+ /**
1343
+ * Rules scoped to a query
1344
+ */
1345
+ type QueryRules = ScopedFragments<'absolute'>;
1346
+ /**
1347
+ * Define a provider of named queries
1348
+ */
1349
+ declare function defineQueries<Q extends NamedQueries>(queries: Q): QueryProvider<Q>;
1350
+ //#endregion
1351
+ export { defineComponent as component, extractIdentifiers as identifiers, defineQueries as queries, styleComponent as style, defineTrait as trait };