dothtml-interfaces 0.2.8 → 0.3.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dothtml-interfaces",
3
- "version": "0.2.8",
3
+ "version": "0.3.1",
4
4
  "description": "Dependency injection interfaces for DOTHtml.",
5
5
  "main": "src/index.d.ts",
6
6
  "types": "src/index.d.ts",
@@ -1,6 +1,6 @@
1
1
 
2
2
  import { IDotDocument } from "./i-dot";
3
- import IDotCss from "./i-dot-css";
3
+ import IDotCss from "./styles/i-dot-css";
4
4
 
5
5
  // export type EventNames<T> = T extends { allowedEvents: infer E } ? E : never;
6
6
 
package/src/i-dot.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
 
2
2
  import IComponent, { FrameworkItems } from "./i-component";
3
- import IDotCss, { IDotcssProp } from "./i-dot-css";
3
+ import IDotCss from "./styles/i-dot-css";
4
4
  import IEventBus from "./i-event-bus";
5
5
  import {IReactive} from "./i-reactive";
6
+ import IDotcssProp from "./styles/i-css-prop";
6
7
 
7
8
  type DotContentPrimitive = string | number | boolean;
8
9
  type DotContentBasic = DotContentPrimitive | Node | Element | NodeList | IComponent | IDotDocument//typeof DotDocument;
package/src/index.d.ts CHANGED
@@ -2,8 +2,8 @@ import { IDotCore } from "./i-dot";
2
2
 
3
3
  export * from "./i-dot";
4
4
 
5
- export { default as IDotCss } from "./i-dot-css";
6
- export * from "./i-dot-css";
5
+ export { default as IDotCss } from "./styles/i-dot-css";
6
+ export * from "./styles/i-dot-css";
7
7
 
8
8
 
9
9
  export { default as IComponent, FrameworkItems } from "./i-component";
@@ -0,0 +1,5 @@
1
+
2
+ export default interface IAtColorProfileBuilder{
3
+ src?: string;
4
+ renderingIntent?: "relative-colorimetric"|"absolute-colorimetric"|"perceptual"|"saturation";
5
+ }
@@ -0,0 +1,15 @@
1
+ type SystemValue = "cyclic"|"numeric"|"alphabetic"|"symbolic"|"additive"|`fixed ${number}`|`extends ${string}`;
2
+ export default interface IAtCounterStyleBuilder{
3
+
4
+ // TODO: need a testcase on this.
5
+ system?: SystemValue|["fixed", number]|["extends", string];
6
+
7
+ symbols?: string;
8
+ additiveSymbols?: string;
9
+ negative?: string;
10
+ prefix?: string;
11
+ suffix?: string;
12
+ range?: string;
13
+ pad?: string;
14
+ speakAs?: string;
15
+ }
@@ -0,0 +1,19 @@
1
+
2
+ type NormalOrPercentage = "normal" | number | `${string}%`;
3
+ type StretchValues = `${number}%`|number|"ultra-condensed"|"extra-condensed"|"condensed"|"semi-condensed"|"normal"|"semi-expanded"|"expanded"|"extra-expanded"|"ultra-expanded";
4
+
5
+ export default interface IAtFontFamilyBuilder{
6
+ ascentOverride?: string;
7
+ descentOverride?: NormalOrPercentage | [NormalOrPercentage] | [NormalOrPercentage, NormalOrPercentage];
8
+ fontDisplay?: "auto"|"block"|"swap"|"fallback"|"optional";
9
+ fontFamily: string;
10
+ fontStretch?: StretchValues | [StretchValues] | [StretchValues, StretchValues];
11
+ fontStyle?: "normal"|"italic"|"auto"|"oblique"|`oblique ${string}`;
12
+ fontWeight?: "normal"|"bold"|number|`${number}`;
13
+ fontFeatureSettings?: string;
14
+ fontVariationSettings?: string|string[];
15
+ lineGapOverride?: NormalOrPercentage | [NormalOrPercentage] | [NormalOrPercentage, NormalOrPercentage];
16
+ sizeAdjust?: `${number}%`|number;
17
+ src?: string;
18
+ unicodeRange?: string;
19
+ }
@@ -0,0 +1,6 @@
1
+
2
+ export default interface IAtFontPaletteValues{
3
+ fontFamily?: string;
4
+ basePalette?: string;
5
+ overrideColors?: string[];
6
+ }
@@ -0,0 +1,8 @@
1
+ import IDotcssProp from "../i-css-prop";
2
+
3
+ export default interface IAtKeyframesBuilder{
4
+ to: IDotcssProp;
5
+ from: IDotcssProp;
6
+
7
+ [key: `${number}%`]: IDotcssProp;
8
+ }
@@ -0,0 +1,20 @@
1
+ import IDotcssProp from "../i-css-prop";
2
+
3
+ export default interface IAtPageBuilder extends IDotcssProp{
4
+ topLeftCorner: IDotcssProp;
5
+ topLeft: IDotcssProp;
6
+ topCenter: IDotcssProp;
7
+ topRight: IDotcssProp;
8
+ topRightCorner: IDotcssProp;
9
+ bottomLeftCorner: IDotcssProp;
10
+ bottomLeft: IDotcssProp;
11
+ bottomCenter: IDotcssProp;
12
+ bottomRight: IDotcssProp;
13
+ bottomRightCorner: IDotcssProp;
14
+ leftTop: IDotcssProp;
15
+ leftMiddle: IDotcssProp;
16
+ leftBottom: IDotcssProp;
17
+ rightTop: IDotcssProp;
18
+ rightMiddle: IDotcssProp;
19
+ rightBottom: IDotcssProp;
20
+ }
@@ -0,0 +1,141 @@
1
+ import { IReactive } from "../i-reactive";
2
+
3
+ // Global keyword values.
4
+ export type GKV = IReactive<string>|"inherit"|"initial"|"unset"|"revert"|"revert-layer";
5
+
6
+ export type ComplexType = string;
7
+
8
+ export type ValueOrReactive<T> = T|IReactive<T>;
9
+
10
+ // BASIC TYPES
11
+ export type Str = `"${string|""}"`|`'${string|""}'`; // TODO: wherever str is required, we could just inject quotes...
12
+ export type Int = number;
13
+ export type Percentage = `${number}%`;
14
+ export type AlphaValue = number | Percentage; // Number should be interpreted as a decimal (x/1);
15
+ export type Ratio = number|`${number}/${number}`;
16
+
17
+ // export type DigitStr = "0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9";
18
+ // export type HexStr = DigitStr|"A"|"B"|"C"|"D"|"E"|"F"|"a"|"b"|"c"|"d"|"e"|"f";
19
+ // export type Hex2 = `${HexStr}${HexStr}`;
20
+ // export type Hex3 = `${Hex2}${HexStr}`;
21
+ // export type Hex4 = `${Hex3}${HexStr}`;
22
+ // export type Hex5 = `${Hex4}${HexStr}`;
23
+ // export type Hex6 = `${Hex5}${HexStr}`;
24
+ // export type HexColor = `#${Hex3|Hex6}`;
25
+ export type HexColor = `#${ComplexType}`;
26
+
27
+ // LENGTH
28
+ // export type AbsoluteUnits = "cm"|"mm"|"in"|"px"|"pt"|"pc"|"Q";
29
+ // export type RelativeUnits = "cap"|"ch"|"em"|"ex"|"ic"|"lh"|"rem"|"rlh"
30
+ // |"vh"|"vw"|"vmin"|"vmax"|"vb"|"vi"
31
+ // |"cqw"|"cqh"|"cqi"|"cqb"|"cqmin"|"cqmax"
32
+ // |"%";
33
+ // export type AllLengthUnits = AbsoluteUnits|RelativeUnits;
34
+ // export type NumericLength = number|`${number}${AllLengthUnits}`;
35
+ // export type LengthPercentage = NumericLength|Percentage;
36
+
37
+ // TIME & FREQUENCY
38
+ export type Time = `${number}${"s"|"ms"}`;
39
+ export type TimePercentage = Time|Percentage;
40
+ export type Frequency = `${number}${"Hz"|"kHz"}`;
41
+ export type FrequencyPercentage = Frequency|Percentage;
42
+
43
+ // RESOLUTION
44
+ export type Resolution = `${number}${"dpi"|"dpcm"|"dppx"|"x"}`;
45
+
46
+ // MISC ENUM TYPES
47
+ export type AbsoluteSize = "xx-small"|"x-small"|"small"|"medium"|"large"|"x-large"|"xx-large"|"xxx-large";
48
+ export type BlendMode = "normal"|"multiply"|"screen"|"overlay"|"darken"|"lighten"|"color-dodge"|"color-burn"|"hard-light"|"soft-light"|"difference"|"exclusion"|"hue"|"saturation"|"color"|"luminosity";
49
+ export type LineStyle = "none"|"hidden"|"dotted"|"dashed"|"solid"|"double"|"groove"|"ridge"|"inset"|"outset";
50
+ export type DisplayBox = "contents"|"none"
51
+ export type DisplayInside = "flow"|"flow-root"|"table"|"flex"|"grid"|"ruby";
52
+ export type DisplayInternal = "table-row-group"|"table-header-group"|"table-footer-group"|"table-row"|"table-cell"|"table-column-group"|"table-column"|"table-caption"|"ruby-base"|"ruby-text"|"ruby-base-container"|"ruby-text-container";
53
+ export type DisplayLegacy = "inline-block"|"inline-table"|"inline-flex"|"inline-grid";
54
+ export type DisplayOutside = "block"|"inline"|"run-in";
55
+ export type DisplayFlow = "flow"|"flow-root";
56
+ export type Overflow = "visible"|"hidden"|"clip"|"scroll";
57
+ export type RelativeSize = "smaller"|"larger";
58
+
59
+ // BASIC SHAPE
60
+ // TODO need a builder.
61
+ // Most of these are too complex to represent as a typescript type.
62
+ // Realistically they should just be constructed usign a builder rather than setting the strings.
63
+ // https://developer.mozilla.org/en-US/docs/Web/CSS/basic-shape
64
+ export type InsetFunction = `inset(${ComplexType})`;
65
+ export type RectFunction = `rect(${ComplexType})`;
66
+ export type XywhFunction = `xywh(${ComplexType})`;
67
+ export type CircleFunction = `circle(${ComplexType})`;
68
+ export type EllipseFunction = `ellipse(${ComplexType})`;
69
+ export type PolygonFunction = `polygon(${ComplexType})`;
70
+ export type PathFunction = `path(${ComplexType})`;
71
+ export type BasicShape = InsetFunction|RectFunction|XywhFunction|CircleFunction|EllipseFunction|PolygonFunction|PathFunction;
72
+
73
+ // ANGLES
74
+ export type AngleUnits = "deg"|"turn"|"rad"|"grad";
75
+ export type Angle = number | `${number}${AngleUnits}`; // Pure number should be interpreted as degrees.
76
+ export type AnglePercentage = number | Angle | Percentage; // Number should be interpreted as a decimal (x/1);
77
+
78
+ // ADVANCED TYPES
79
+ // Box.
80
+ export type VisualBox = "content-box" | "padding-box" | "border-box"; // the three <box> values
81
+ export type RayoutBox = VisualBox | "margin-box" // the <shape-box> values
82
+ export type PaintBox = VisualBox | "fill-box" | "stroke-box"
83
+ export type CoordBox = VisualBox | "fill-box" | "stroke-box" | "view-box"
84
+ export type GeometryBox = RayoutBox | "fill-box" | "stroke-box" | "view-box"
85
+ export type BoxEdge = VisualBox | RayoutBox | PaintBox | CoordBox | GeometryBox;
86
+
87
+ // DIMENSION
88
+ // export type Dimension = Angle|Time|Frequency|NumericLength;
89
+
90
+ // Calc.
91
+ export type Calc = ComplexType;
92
+
93
+ // It's difficult to compose calc types because they're too complex. See below.
94
+ // May consider adding a builder for this, but not sure what it will look like.
95
+
96
+ /*
97
+ // Can't get this working because the types get too complex for TS.
98
+ // export type Decrement = [
99
+ // never, 0, 1, 2, 3, 4, 5, 6, 7
100
+ // ];
101
+ // export type CalcConstant = "e"|"-e"|"E"|"pi"|"-pi"|"infinity"|"-infinity"|"NaN"; // Defined on a different page. Not sure what it's for.
102
+ // export type CalcKeyword = 'e' | 'pi' | 'infinity' | '-infinity' | 'NaN';
103
+ // export type CalcValue = number | Percentage | Dimension | CalcKeyword;// | CalcSum;
104
+ // export type CalcProductSuffix<T extends CalcValue, Depth extends number> = Depth extends 0 ? string : `${"*"|"/"}${T}${CalcProductSuffix<T, Decrement[Depth]>}`;
105
+ // export type CalcSumSuffix<T extends CalcValue, Depth extends number> = Depth extends 0 ? string : `${"+"|"-"}${T}${CalcProductSuffix<T, 8>}`;
106
+ // // TODO: optional space can go here.
107
+ // export type CalcProduct<T extends CalcValue> = T|`${T}${CalcProductSuffix<T, 8>}`;
108
+ // export type CalcSum<T extends CalcValue> = CalcProduct<T>|`${CalcProduct<T>}${"+"|"-"}${CalcProduct<T>}`
109
+ // CalcValue export type definition
110
+ // Helper types for CalcProduct and CalcSum
111
+ // export type CalcOperation = '+' | '-' | '*' | '/';
112
+ // export type CalcProductPart = CalcValue | [CalcOperation, CalcValue];
113
+ */
114
+
115
+ // Color Interpolation.
116
+ export type RectangularColorSpace = "srgb"|"srgb-linear"|"display-p3"|"a98-rgb"|"prophoto-rgb"|"rec2020"|"lab"|"oklab"|"xyz"|"xyz-d50"|"xyz-d65";
117
+ export type PolarColorSpace = "hsl"|"hwb"|"lch"|"oklch";
118
+ export type HueInterpolationMethod = `${"shorter"|"longer"|"increasing"|"decreasing"} hue`
119
+ export type ColorInterpolationMethod = RectangularColorSpace|PolarColorSpace|`${PolarColorSpace} ${HueInterpolationMethod}`;
120
+
121
+ export type Color = string;
122
+
123
+ // Display List Item
124
+
125
+ export type DisplayListItem =
126
+ | 'list-item'
127
+ | `${DisplayOutside} list-item`
128
+ | `list-item ${DisplayOutside}`
129
+ | `${DisplayFlow} list-item`
130
+ | `list-item ${DisplayFlow}`
131
+ | `${DisplayOutside} ${DisplayFlow} list-item`
132
+ | `${DisplayOutside} list-item ${DisplayFlow}`
133
+ | `${DisplayFlow} ${DisplayOutside} list-item`
134
+ | `${DisplayFlow} list-item ${DisplayOutside}`
135
+ | `list-item ${DisplayOutside} ${DisplayFlow}`
136
+ | `list-item ${DisplayFlow} ${DisplayOutside}`;
137
+
138
+ // ID
139
+ export type Ident = string;
140
+ export type CustomIdent = string;
141
+ export type DashedIdent = `--${string}`;
@@ -0,0 +1,295 @@
1
+
2
+ import { IReactive } from "../i-reactive";
3
+ import { GKV, ValueOrReactive } from "./css-types";
4
+ import IFilterProp from "./i-filter-prop";
5
+ import IShadowProp from "./i-shadow-prop";
6
+ import { ITransformationProp } from "./i-transformation-prop";
7
+ import ColorProp from "./mapped-types/color-props";
8
+ import LengthProp from "./mapped-types/length-prop";
9
+
10
+ type BackgroundPositionShorthand2D = string;
11
+ type BackgroundRepeatValues2d = "no-repeat"|"repeat"|"space"|"round";
12
+ type BorderShorthand = string;
13
+ type BorderStyles = "dotted"|"dashed"|"solid"|"double"|"groove"|"ridge"|"inset"|"outset"|"none"|"hidden";
14
+ type FlexShorthand = string;
15
+ type FlexFlowShorthand = string;
16
+
17
+ // This needs to be built in pieces. There's only so much I can do at once.
18
+ // Some of this was generated using AI. Each item needs to be manually checked.
19
+ // Once it's checked, we can add a ✔️ to the end of the line.
20
+ export default interface IDotcssProp extends
21
+ LengthProp<"blockSize"> ,
22
+ LengthProp<"borderBottomLeftRadius">,
23
+ LengthProp<"borderBottomRightRadius">,
24
+ LengthProp<"borderBottomWidth">,
25
+ LengthProp<"borderLeftWidth">,
26
+ LengthProp<"borderRightWidth">,
27
+ LengthProp<"borderTopLeftRadius">,
28
+ LengthProp<"borderTopRightRadius">,
29
+ LengthProp<"borderTopWidth">,
30
+ LengthProp<"bottom">,
31
+ LengthProp<"height">,
32
+ LengthProp<"left">,
33
+ LengthProp<"marginBottom">,
34
+ LengthProp<"marginLeft">,
35
+ LengthProp<"marginRight">,
36
+ LengthProp<"marginTop">,
37
+ LengthProp<"maxHeight">,
38
+ LengthProp<"maxWidth">,
39
+ LengthProp<"minHeight">,
40
+ LengthProp<"minWidth">,
41
+ LengthProp<"outlineOffset">,
42
+ LengthProp<"outlineWidth", 1, "medium"|"thin"|"thick">,
43
+ LengthProp<"paddingBottom">,
44
+ LengthProp<"paddingLeft">,
45
+ LengthProp<"paddingRight">,
46
+ LengthProp<"paddingTop">,
47
+ LengthProp<"right">,
48
+ LengthProp<"textIndent">,
49
+ LengthProp<"top">,
50
+ LengthProp<"width">,
51
+ LengthProp<"lineHeight">,
52
+ LengthProp<"fontSize">,
53
+ LengthProp<"flexBasis">,
54
+ LengthProp<"wordSpacing", 1, "normal">,
55
+ LengthProp<"borderImageWidth", 1|2|3|4>,
56
+ LengthProp<"borderRadius", 1|2|3|4>,
57
+ LengthProp<"borderWidth", 1|2|3|4>,
58
+ LengthProp<"margin", 1|2|3|4>,
59
+ LengthProp<"padding", 1|2|3|4>,
60
+ LengthProp<"backgroundSize", 1|2, "contain"|"cover"|"auto">,
61
+ LengthProp<"gap", 1|2>,
62
+
63
+ ColorProp<"color">,
64
+ ColorProp<"backgroundColor">,
65
+ ColorProp<"borderBottomColor">,
66
+ ColorProp<"borderColor">,
67
+ ColorProp<"borderLeftColor">,
68
+ ColorProp<"borderRightColor">,
69
+ ColorProp<"borderTopColor">,
70
+ ColorProp<"textDecorationColor">,
71
+ ColorProp<"outlineColor">,
72
+ ColorProp<"columnRuleColor">
73
+ {
74
+
75
+ //url:
76
+ backgroundImage?: ValueOrReactive<string>;
77
+ borderImage?: ValueOrReactive<string>;
78
+ listStyleImage?: ValueOrReactive<string>;
79
+ content?: ValueOrReactive<string>;
80
+
81
+ //complex:
82
+ transform?: ValueOrReactive<string>|ITransformationProp;
83
+ filter?: ValueOrReactive<string>|IFilterProp;
84
+ backdropFilter?: ValueOrReactive<string>|IFilterProp;
85
+
86
+ //misc numeric:
87
+ opacity?: ValueOrReactive<number|string>;
88
+
89
+ //misc:
90
+ all?: GKV;
91
+ appearance?: GKV|"none"|"menulist-button"|"textfield"|"button"|"searchfield"|"textarea"|"push-button"|"slider-horizontal"|"checkbox"|"radio"|"square-button"|"menulist"|"listbox"|"meter"|"progress-bar"|"scrollbarbutton-up"|"button-bevel"|"media-mute-button"|"caret"; // ✔️
92
+ aspectRatio?: ValueOrReactive<string>|{auto?:ValueOrReactive<boolean>, ratio: [ValueOrReactive<number>, ValueOrReactive<number>]|ValueOrReactive<number>}; // TODO: test case.
93
+
94
+ background?: GKV|string; // TODO: shorthand. Requires advanced typing.
95
+ backgroundAttachment?: GKV|"scroll"|"fixed"|"local"; // ✔️
96
+ backgroundBlendMode?: GKV|Array<IReactive<string>|"darken"|"luminocity"|"normal">; // ✔️
97
+ backgroundPosition?: GKV|BackgroundPositionShorthand2D;
98
+ backgroundRepeat?: GKV|BackgroundRepeatValues2d;
99
+ backgroundClip?: GKV|string;
100
+ backgroundOrigin?: GKV|"padding-box"|"border-box"|"content-box";
101
+
102
+ borderImageOutset?: GKV|string;
103
+ borderImageRepeat?: GKV|BackgroundRepeatValues2d;
104
+ borderImageSlice?: GKV|string;
105
+ borderImageSource?: GKV|string;
106
+
107
+ // TODO: probably should break this down better.
108
+ border?: GKV|BorderShorthand;
109
+ borderBottom?: GKV|BorderShorthand;
110
+ borderLeft?: GKV|BorderShorthand;
111
+ borderRight?: GKV|BorderShorthand;
112
+ borderTop?: GKV|BorderShorthand;
113
+
114
+ borderBottomStyle?: GKV|BorderStyles;
115
+ borderLeftStyle?: GKV|BorderStyles;
116
+ borderRightStyle?: GKV|BorderStyles;
117
+ borderStyle?: GKV|BorderStyles;
118
+ borderTopStyle?: GKV|BorderStyles;
119
+
120
+ boxDecorationBreak?: GKV|string;
121
+ boxShadow?: GKV|Array<IShadowProp>; // TODO tests.
122
+ clear?: GKV|string;
123
+ clip?: GKV|string;
124
+ display?: GKV|"inline"|"block"|"contents"|"flex"|"grid"|"inline-block"|"inline-flex"|"inline-grid"|"inline-table"|"list-item"|"run-in"|"table"|"table-caption"|"table-column-group"|"table-header-group"|"table-footer-group"|"table-row-group"|"table-cell"|"table-column"|"table-row"|"none"; // ✔️
125
+ float?: GKV|"left"|"right"|"none"|"inline-start"|"inline-end"; // ✔️
126
+ box?: GKV|string; // Can't find docs on this on MSDN.
127
+ overflow?: GKV|"visible"|"hidden"|"clip"|"scroll"|"auto"; // ✔️
128
+ overflowX?: GKV|"visible"|"hidden"|"clip"|"scroll"|"auto"; // ✔️
129
+ overflowY?: GKV|"visible"|"hidden"|"clip"|"scroll"|"auto"; // ✔️
130
+ position?: GKV|"static"|"relative"|"fixed"|"absolute"|"sticky"; // ✔️
131
+ visibility?: GKV|string;
132
+ verticalAlign?: GKV|string;
133
+ zIndex?: ValueOrReactive<number>;
134
+ alignContent?: GKV|string;
135
+ alignItems?: GKV|string;
136
+ alignSelf?: GKV|string;
137
+ flex?: GKV|FlexShorthand;
138
+ //flexBasis?: BasicCommonValues|FlexBasisNames;
139
+ flexDirection?: GKV|"row"|"row-reverse"|"column"|"column-reverse"; // ✔️
140
+ flexFlow?: GKV|FlexFlowShorthand;
141
+ flexGrow?: GKV|ValueOrReactive<number>; // ✔️
142
+ flexShrink?: GKV|ValueOrReactive<number>; // ✔️
143
+ flexWrap?: GKV|"nowrap"|"wrap"|"wrap-reverse"; // ✔️
144
+ grid?: GKV|string;
145
+ gridArea?: GKV|string;
146
+ gridAutoColumns?: GKV|string;
147
+ gridautoRows?: GKV|string;
148
+ gridColumn?: GKV|string;
149
+ gridColumnEnd?: GKV|string;
150
+ gridColumnGap?: GKV|string;
151
+ gridColumnStart?: GKV|string;
152
+ gridGap?: GKV|string;
153
+ gridRow?: GKV|string;
154
+ gridRowEnd?: GKV|string;
155
+ gridRowGap?: GKV|string;
156
+ gridRowStart?: GKV|string;
157
+ gridTemplate?: GKV|string;
158
+ gridTemplateAreas?: GKV|string;
159
+ gridTemplateColumns?: GKV|string;
160
+ gridTemplateRows?: GKV|string;
161
+ imageOrientation?: GKV|"from-image"|"none"|"flip"|string; // Note: flip may optionally be accompanied with an angle. This is a complex type.
162
+ justifyContent?: GKV|"flex-start"|"flex-end"|"center"|"space-between"|"space-around"|"space-evenly"|"start"|"end"|"left"|"right"|"safe flex-start"|"safe flex-end"|"safe center"|"safe space-between"|"safe space-around"|"safe space-evenly"|"unsafe flex-start"|"unsafe flex-end"|"unsafe center"|"unsafe space-between"|"unsafe space-around"|"unsafe space-evenly";
163
+ order?: GKV|number; // ✔️
164
+ hangingPunctuation?: GKV|"none"|"first"|"last"|"allow-end"|"force-end";
165
+ hyphens?: GKV|"none"|"manual"|"auto";
166
+ letterSpacing?: GKV|"normal"|"initial";
167
+ lineBreak?: GKV|"auto"|"loose"|"normal"|"strict"|"anywhere";
168
+ overflowWrap?: GKV|"normal"|"break-word"|"anywhere";
169
+ tabSize?: GKV|"auto";
170
+ textAlign?: GKV|"left"|"right"|"center"|"justify"|"start"|"end"|"match-parent";
171
+ textAlignLast?: GKV|"auto"|"left"|"right"|"center"|"justify"|"start"|"end"|"match-parent";
172
+ textCombineUpright?: GKV|"none"|"all"|"digits"|"upright";
173
+ textJustify?: GKV|"auto"|"inter-word"|"inter-character"|"none";
174
+ textTransform?: GKV|"none"|"capitalize"|"uppercase"|"lowercase"|"full-width"|"full-size-kana";
175
+ whiteSpace?: GKV|"normal"|"nowrap"|"pre"|"pre-wrap"|"pre-line"|"break-spaces";
176
+ wordBreak?: GKV|"normal"|"break-all"|"keep-all"|"break-word";
177
+ wordWrap?: GKV|"normal"|"break-word"|"anywhere";
178
+ textDecoration?: GKV|"none"|"underline"|"overline"|"line-through"|"blink";
179
+ textDecorationLine?: GKV|"none"|"underline"|"overline"|"line-through"|"blink";
180
+ textDecorationStyle?: GKV|"solid"|"double"|"dotted"|"dashed"|"wavy";
181
+ textShadow?: GKV|string; // Complex.
182
+ textUnderlinePosition?: GKV|"auto"|"under"|"left"|"right";
183
+ font?: GKV|string;
184
+ fontFamily?: GKV|string;
185
+ fontFeatureSettings?: GKV|"normal";
186
+ fontKerning?: GKV|"auto"|"normal"|"none";
187
+ fontLanguageOverride?: GKV|"normal";
188
+ fontSizeAdjust?: GKV|"none"|"auto";
189
+ fontStretch?: GKV|ValueOrReactive<number>|`${string}%`|"normal"|"ultra-condensed"|"extra-condensed"|"condensed"|"semi-condensed"|"semi-expanded"|"expanded"|"extra-expanded"|"ultra-expanded";
190
+ fontStyle?: GKV|"normal"|"italic"|"oblique";
191
+ fontSynthesis?: GKV|string;
192
+ fontVariant?: GKV|"normal"|"small-caps";
193
+ fontVariantAlternates?: GKV|string;
194
+ fontVariantCaps?: GKV|"all-small-caps"|"petite-caps"|"all-petite-caps"|"unicase"|"titling-caps";
195
+ fontVariantEastAsian?: GKV|string;
196
+ fontVariantLigatures?: GKV|string;
197
+ fontVariantNumeric?: GKV|string;
198
+ fontVariantPosition?: GKV|string;
199
+ fontWeight?: GKV|ValueOrReactive<number>|"normal"|"bold"|"bolder"|"lighter";
200
+ direction?: GKV|"ltr"|"rtl";
201
+ textOrientation?: GKV|string;
202
+ unicodeBidi?: GKV|string;
203
+ userSelect?: GKV|string;
204
+ writingMode?: GKV|string;
205
+ borderCollapse?: GKV|string;
206
+ borderSpacing?: GKV|string;
207
+ captionSide?: GKV|string;
208
+ emptyCells?: GKV|string;
209
+ tableLayout?: GKV|string;
210
+ counterIncrement?: GKV|string;
211
+ counterReset?: GKV|string;
212
+ listStyle?: GKV|string;
213
+ listStylePosition?: GKV|string;
214
+ listStyleType?: GKV|string;
215
+ animation?: GKV|string;
216
+ animationDelay?: GKV|string;
217
+ animationDirection?: GKV|string;
218
+ animationDuration?: GKV|string;
219
+ animationFillMode?: GKV|string;
220
+ animationIterationCount?: GKV|string;
221
+ animationName?: GKV|string;
222
+ animationPlayState?: GKV|string;
223
+ animationTimingFunction?: GKV|string;
224
+ backfaceVisibility?: GKV|"visible"|"hidden";
225
+ perspective2d?: GKV|string;
226
+ perspectiveOrigin?: GKV|string;
227
+ transformOrigin?: GKV|string;
228
+ transformStyle?: GKV|string;
229
+ transition?: GKV|string;
230
+ transitionProperty?: GKV|string;
231
+ transitionDuration?: GKV|string;
232
+ transitionTimingFunction?: GKV|string;
233
+ transitionDelay?: GKV|string;
234
+ boxSizing?: GKV|string;
235
+ cursor?: GKV|string;
236
+ imeMode?: GKV|string;
237
+ navDown?: GKV|string;
238
+ navIndex?: GKV|string;
239
+ navLeft?: GKV|string;
240
+ navRight?: GKV|string;
241
+ navUp?: GKV|string;
242
+ outline?: GKV|BorderShorthand;
243
+ //outlineOffset?: BasicCommonValues|string; // Now animated.
244
+ outlineStyle?: GKV|BorderStyles;
245
+ resize?: GKV|string;
246
+ textOverflow?: GKV|"clip"|"ellipsis";
247
+ breakAfter?: GKV|"auto"|"avoid"|"always"|"all"|"avoid-page"|"page"|"left"|"right"|"recto"|"verso";
248
+ breakBefore?: GKV|"auto"|"avoid"|"always"|"all"|"avoid-page"|"page"|"left"|"right"|"recto"|"verso";
249
+ breakInside?: GKV|"auto"|"avoid"|"avoid-page"|"avoid-column"|"avoid-region";
250
+ columnCount?: GKV|"auto"|"initial"|"inherit"|"unset"|"balance"|"auto-fill"|"auto-fit";
251
+ columnFill?: GKV|"auto"|"balance"|"balance-all"|"balance-none";
252
+ columnGap?: GKV|string;
253
+ columnRule?: GKV|string;
254
+ columnRuleStyle?: GKV|string;
255
+ columnRuleWidth?: GKV|string;
256
+ columnSpan?: GKV|string;
257
+ columnWidth?: GKV|string;
258
+ columns?: GKV|string;
259
+ widows?: GKV|string;
260
+ orphans?: GKV|string;
261
+ pageBreakAfter?: GKV|string;
262
+ pageBreakBefore?: GKV|string;
263
+ pageBreakInside?: GKV|string;
264
+ marks?: GKV|string;
265
+ quotes?: GKV|string;
266
+ imageRendering?: GKV|string;
267
+ imageResolution?: GKV|string;
268
+ objectFit?: GKV|string;
269
+ objectPosition?: GKV|string;
270
+ mask?: GKV|string;
271
+ maskType?: GKV|string;
272
+ mark?: GKV|string;
273
+ markAfter?: GKV|string;
274
+ markBefore?: GKV|string;
275
+ phonemes?: GKV|string;
276
+ rest?: GKV|string;
277
+ restAfter?: GKV|string;
278
+ restBefore?: GKV|string;
279
+ voiceBalance?: GKV|string;
280
+ voiceDuration?: GKV|string;
281
+ voicePitch?: GKV|string;
282
+ voicePitchRange?: GKV|string;
283
+ voiceRate?: GKV|string;
284
+ voiceStress?: GKV|string;
285
+ voiceVolume?: GKV|string;
286
+ pointerEvents?: GKV|"auto"|"none";
287
+
288
+ // Deprecated.
289
+ // marqueeDirection?: "up"|"down"|"left"|"right"|BasicCommonValues;
290
+ // marqueePlayCount?: ValueOrReactive<number>|BasicCommonValues;
291
+ // marqueeSpeed?: "slow"|"normal"|"fast"|BasicCommonValues;
292
+ // marqueeStyle?: BasicCommonValues|string;
293
+ }
294
+
295
+ // export default IDotcssProp;