modern-idoc 0.2.10 → 0.2.11

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/dist/index.cjs CHANGED
@@ -2,48 +2,54 @@
2
2
 
3
3
  function getDefaultLayoutStyle() {
4
4
  return {
5
- overflow: "visible",
6
- alignContent: "stretch",
7
- alignItems: "stretch",
8
- alignSelf: "auto",
9
- borderTop: "none",
10
- borderLeft: "none",
11
- borderRight: "none",
12
- borderBottom: "none",
13
- borderWidth: 0,
14
- border: "none",
15
- direction: "inherit",
16
- display: "flex",
17
- flex: 0,
18
- flexBasis: "auto",
19
- flexDirection: "row",
20
- flexGrow: 0,
21
- flexShrink: 1,
22
- flexWrap: "nowrap",
23
- height: "auto",
24
- justifyContent: "flex-start",
25
- gap: 0,
26
- marginTop: 0,
27
- marginLeft: 0,
28
- marginRight: 0,
29
- marginBottom: 0,
30
- margin: 0,
31
- maxHeight: 0,
32
- maxWidth: 0,
33
- minHeight: 0,
34
- minWidth: 0,
35
- paddingTop: 0,
36
- paddingLeft: 0,
37
- paddingRight: 0,
38
- paddingBottom: 0,
39
- padding: 0,
40
- top: 0,
41
- bottom: 0,
5
+ // box
6
+ overflow: void 0,
7
+ direction: void 0,
8
+ display: void 0,
9
+ boxSizing: void 0,
10
+ width: void 0,
11
+ height: void 0,
12
+ maxHeight: void 0,
13
+ maxWidth: void 0,
14
+ minHeight: void 0,
15
+ minWidth: void 0,
16
+ // position
17
+ position: void 0,
42
18
  left: 0,
43
- right: 0,
44
- position: "static",
45
- boxSizing: "content-box",
46
- width: "auto"
19
+ top: 0,
20
+ right: void 0,
21
+ bottom: void 0,
22
+ // border
23
+ borderTop: void 0,
24
+ borderLeft: void 0,
25
+ borderRight: void 0,
26
+ borderBottom: void 0,
27
+ borderWidth: 0,
28
+ border: void 0,
29
+ // flex
30
+ flex: void 0,
31
+ flexBasis: void 0,
32
+ flexDirection: void 0,
33
+ flexGrow: void 0,
34
+ flexShrink: void 0,
35
+ flexWrap: void 0,
36
+ justifyContent: void 0,
37
+ gap: void 0,
38
+ alignContent: void 0,
39
+ alignItems: void 0,
40
+ alignSelf: void 0,
41
+ // margin
42
+ marginTop: void 0,
43
+ marginLeft: void 0,
44
+ marginRight: void 0,
45
+ marginBottom: void 0,
46
+ margin: void 0,
47
+ // padding
48
+ paddingTop: void 0,
49
+ paddingLeft: void 0,
50
+ paddingRight: void 0,
51
+ paddingBottom: void 0,
52
+ padding: void 0
47
53
  };
48
54
  }
49
55
 
@@ -69,12 +75,9 @@ function getDefaultTransformStyle() {
69
75
 
70
76
  function getDefaultElementStyle() {
71
77
  return {
72
- ...getDefaultTransformStyle(),
73
78
  ...getDefaultLayoutStyle(),
79
+ ...getDefaultTransformStyle(),
74
80
  ...getDefaultShadowStyle(),
75
- visibility: "visible",
76
- filter: "none",
77
- opacity: 1,
78
81
  // background
79
82
  backgroundImage: "none",
80
83
  backgroundColor: "none",
@@ -82,6 +85,15 @@ function getDefaultElementStyle() {
82
85
  borderRadius: 0,
83
86
  borderColor: "none",
84
87
  borderStyle: "solid",
88
+ // outline
89
+ outlineWidth: 0,
90
+ outlineOffset: 0,
91
+ outlineColor: "#000000",
92
+ outlineStyle: "none",
93
+ // other
94
+ visibility: "visible",
95
+ filter: "none",
96
+ opacity: 1,
85
97
  pointerEvents: "auto"
86
98
  };
87
99
  }
package/dist/index.d.cts CHANGED
@@ -1,10 +1,10 @@
1
- type Noneable = 'none';
2
- type Sizeable = `${number}%` | `${number}rem` | number;
1
+ type None = 'none';
3
2
 
3
+ type AudioSource = string;
4
4
  interface AudioDeclaration {
5
- src: string;
5
+ src: AudioSource;
6
6
  }
7
- type AudioProp = Noneable | string | AudioDeclaration;
7
+ type AudioProp = None | AudioSource | AudioDeclaration;
8
8
 
9
9
  interface ImageFillTile {
10
10
  alignment?: string;
@@ -17,9 +17,10 @@ interface ImageFillTile {
17
17
  interface CommonFillDeclaration {
18
18
  opacity?: number;
19
19
  }
20
+ type ImageFillSource = string;
20
21
  interface ImageFillDeclaration extends CommonFillDeclaration {
21
22
  type: 'image';
22
- image: string;
23
+ image: ImageFillSource;
23
24
  dpi?: number;
24
25
  rotateWithShape?: boolean;
25
26
  tile?: ImageFillTile;
@@ -29,7 +30,7 @@ interface ColorFillDeclaration extends CommonFillDeclaration {
29
30
  color: string;
30
31
  }
31
32
  type FillDeclaration = ImageFillDeclaration | ColorFillDeclaration;
32
- type FillProp = Noneable | string | FillDeclaration;
33
+ type FillProp = None | string | FillDeclaration;
33
34
 
34
35
  type SVGPathData = string;
35
36
  type FillRule = 'nonzero' | 'evenodd';
@@ -62,7 +63,7 @@ interface GeometryDeclaration {
62
63
  name?: string;
63
64
  data: Path2DDeclaration[];
64
65
  }
65
- type GeometryProp = Noneable | SVGPathData | SVGPathData[] | Path2DDeclaration[] | GeometryDeclaration;
66
+ type GeometryProp = None | SVGPathData | SVGPathData[] | Path2DDeclaration[] | GeometryDeclaration;
66
67
 
67
68
  interface MetaProp {
68
69
  [key: string]: any;
@@ -74,18 +75,19 @@ interface IDOCNode {
74
75
  meta?: MetaProp;
75
76
  }
76
77
 
77
- interface ImageRect {
78
+ type ImageSource = string;
79
+ interface ImageSourceRect {
78
80
  left?: number;
79
81
  top?: number;
80
82
  bottom?: number;
81
83
  right?: number;
82
84
  }
83
85
  interface ImageDeclaration {
84
- src: string;
85
- srcRect?: ImageRect;
86
+ src: ImageSource;
87
+ srcRect?: ImageSourceRect;
86
88
  opacity?: number;
87
89
  }
88
- type ImageProp = Noneable | string | ImageDeclaration;
90
+ type ImageProp = None | ImageSource | ImageDeclaration;
89
91
 
90
92
  interface OutlineDeclaration {
91
93
  width?: number;
@@ -94,33 +96,37 @@ interface OutlineDeclaration {
94
96
  color?: string;
95
97
  opacity?: number;
96
98
  }
97
- type OutlineProp = Noneable | string | Partial<OutlineDeclaration>;
99
+ type OutlineProp = None | string | Partial<OutlineDeclaration>;
98
100
 
101
+ type BoxShadow = None | string;
99
102
  interface ShadowDeclaration {
100
103
  color: string;
101
104
  offsetX?: number;
102
105
  offsetY?: number;
103
106
  blur?: number;
104
107
  }
105
- type ShadowProp = Noneable | string | ShadowDeclaration;
108
+ type ShadowProp = None | BoxShadow | ShadowDeclaration;
106
109
  interface ShadowStyleDeclaration {
107
- boxShadow: Noneable | string;
110
+ boxShadow: BoxShadow;
108
111
  shadowColor?: string;
109
112
  shadowOffsetX?: number;
110
113
  shadowOffsetY?: number;
111
114
  shadowBlur?: number;
112
115
  }
113
116
 
117
+ type StyleUnit = `${number}%` | number;
118
+ type Display = 'flex' | 'contents';
119
+ type Direction = 'inherit' | 'ltr' | 'rtl';
114
120
  type Overflow = 'hidden' | 'visible';
115
121
  type Visibility = 'hidden' | 'visible';
116
122
  type FontWeight = 'normal' | 'bold' | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900;
117
123
  type FontStyle = 'normal' | 'italic' | 'oblique' | `oblique ${string}`;
118
- type FontKerning = Noneable | 'auto' | 'normal';
124
+ type FontKerning = None | 'auto' | 'normal';
119
125
  type TextWrap = 'wrap' | 'nowrap';
120
126
  type TextAlign = 'center' | 'end' | 'left' | 'right' | 'start';
121
- type TextTransform = Noneable | 'uppercase' | 'lowercase';
127
+ type TextTransform = None | 'uppercase' | 'lowercase';
122
128
  type TextOrientation = 'mixed' | 'upright' | 'sideways-right' | 'sideways';
123
- type TextDecoration = Noneable | 'underline' | 'line-through' | 'overline';
129
+ type TextDecoration = None | 'underline' | 'line-through' | 'overline';
124
130
  type VerticalAlign = 'baseline' | 'top' | 'middle' | 'bottom' | 'sub' | 'super' | 'text-top' | 'text-bottom';
125
131
  type WritingMode = 'horizontal-tb' | 'vertical-lr' | 'vertical-rl';
126
132
  type Align = 'auto' | 'flex-start' | 'center' | 'flex-end' | 'stretch' | 'baseline' | 'space-between' | 'space-around' | 'space-evenly';
@@ -128,64 +134,64 @@ type FlexDirection = 'column' | 'column-reverse' | 'row' | 'row-reverse';
128
134
  type FlexWrap = 'nowrap' | 'wrap' | 'Wrap-reverse';
129
135
  type Justify = 'flex-start' | 'center' | 'flex-end' | 'space-between' | 'space-around' | 'space-evenly';
130
136
  type Position = 'static' | 'relative' | 'absolute';
131
- type BorderStyle = Noneable | 'dashed' | 'solid';
137
+ type BorderStyle = None | 'dashed' | 'solid';
132
138
  type BoxSizing = 'border-box' | 'content-box';
133
139
  type PointerEvents = 'auto' | 'none';
134
- type ListStyleType = Noneable | 'disc';
135
- type ListStyleImage = Noneable | string;
136
- type ListStyleColormap = Noneable | Record<string, string>;
137
- type ListStyleSize = Sizeable | 'cover';
140
+ type ListStyleType = None | 'disc';
141
+ type ListStyleImage = None | string;
142
+ type ListStyleColormap = None | Record<string, string>;
143
+ type ListStyleSize = StyleUnit | `${number}rem` | 'cover';
138
144
  type ListStylePosition = 'inside' | 'outside';
139
145
  type HighlightLine = TextDecoration | 'outline';
140
- type HighlightImage = Noneable | string;
141
- type HighlightReferImage = Noneable | string;
142
- type HighlightColormap = Noneable | Record<string, string>;
143
- type HighlightSize = Sizeable | 'cover';
144
- type HighlightThickness = Sizeable;
146
+ type HighlightImage = None | string;
147
+ type HighlightReferImage = None | string;
148
+ type HighlightColormap = None | Record<string, string>;
149
+ type HighlightSize = StyleUnit | `${number}rem` | 'cover';
150
+ type HighlightThickness = StyleUnit;
145
151
 
146
152
  interface LayoutStyleDeclaration {
147
- overflow: Overflow;
148
- alignContent: Align;
149
- alignItems: Align;
150
- alignSelf: Align;
151
- borderTop: string;
152
- borderLeft: string;
153
- borderRight: string;
154
- borderBottom: string;
155
- borderWidth: number;
156
- border: string;
157
- direction: 'inherit' | 'ltr' | 'rtl';
158
- display: 'none' | 'flex' | 'contents';
159
- flex: number;
160
- flexBasis: number | 'auto' | `${number}%`;
161
- flexDirection: FlexDirection;
162
- flexGrow: number;
163
- flexShrink: number;
164
- flexWrap: FlexWrap;
165
- height: number | 'auto' | `${number}%`;
166
- justifyContent: Justify;
167
- gap: number | `${number}%`;
168
- marginTop: number | 'auto' | `${number}%`;
169
- marginLeft: number | 'auto' | `${number}%`;
170
- marginRight: number | 'auto' | `${number}%`;
171
- marginBottom: number | 'auto' | `${number}%`;
172
- margin: number | 'auto' | `${number}%`;
173
- maxHeight: number | `${number}%`;
174
- maxWidth: number | `${number}%`;
175
- minHeight: number | `${number}%`;
176
- minWidth: number | `${number}%`;
177
- paddingTop: number | `${number}%`;
178
- paddingLeft: number | `${number}%`;
179
- paddingRight: number | `${number}%`;
180
- paddingBottom: number | `${number}%`;
181
- padding: number | `${number}%`;
182
- top: number | `${number}%`;
183
- bottom: number | `${number}%`;
184
- left: number | `${number}%`;
185
- right: number | `${number}%`;
186
- position: Position;
187
- boxSizing: BoxSizing;
188
- width: number | 'auto' | `${number}%`;
153
+ overflow?: Overflow;
154
+ direction?: Direction;
155
+ display?: Display;
156
+ boxSizing?: BoxSizing;
157
+ width?: StyleUnit | 'auto';
158
+ height?: StyleUnit | 'auto';
159
+ maxHeight?: StyleUnit;
160
+ maxWidth?: StyleUnit;
161
+ minHeight?: StyleUnit;
162
+ minWidth?: StyleUnit;
163
+ position?: Position;
164
+ left: StyleUnit;
165
+ top: StyleUnit;
166
+ right?: StyleUnit;
167
+ bottom?: StyleUnit;
168
+ borderTop?: string;
169
+ borderLeft?: string;
170
+ borderRight?: string;
171
+ borderBottom?: string;
172
+ borderWidth?: number;
173
+ border?: string;
174
+ flex?: number;
175
+ flexBasis?: StyleUnit | 'auto';
176
+ flexDirection?: FlexDirection;
177
+ flexGrow?: number;
178
+ flexShrink?: number;
179
+ flexWrap?: FlexWrap;
180
+ alignContent?: Align;
181
+ alignItems?: Align;
182
+ alignSelf?: Align;
183
+ justifyContent?: Justify;
184
+ gap?: StyleUnit;
185
+ marginTop?: None | StyleUnit | 'auto';
186
+ marginLeft?: None | StyleUnit | 'auto';
187
+ marginRight?: None | StyleUnit | 'auto';
188
+ marginBottom?: None | StyleUnit | 'auto';
189
+ margin?: None | StyleUnit | 'auto';
190
+ paddingTop?: StyleUnit;
191
+ paddingLeft?: StyleUnit;
192
+ paddingRight?: StyleUnit;
193
+ paddingBottom?: StyleUnit;
194
+ padding?: StyleUnit;
189
195
  }
190
196
 
191
197
  interface TransformStyleDeclaration {
@@ -196,19 +202,23 @@ interface TransformStyleDeclaration {
196
202
  skewY: number;
197
203
  translateX: number;
198
204
  translateY: number;
199
- transform: string;
205
+ transform: None | string;
200
206
  transformOrigin: string;
201
207
  }
202
208
 
203
209
  interface ElementStyleDeclaration extends LayoutStyleDeclaration, TransformStyleDeclaration, ShadowStyleDeclaration {
210
+ backgroundImage?: None | string;
211
+ backgroundColor?: None | string;
212
+ borderRadius: number;
213
+ borderColor?: None | string;
214
+ borderStyle: BorderStyle;
215
+ outlineWidth: number;
216
+ outlineOffset: number;
217
+ outlineColor: None | string;
218
+ outlineStyle: string;
204
219
  visibility: Visibility;
205
220
  filter: string;
206
221
  opacity: number;
207
- backgroundImage: Noneable | string;
208
- backgroundColor: Noneable | string;
209
- borderRadius: number;
210
- borderColor: Noneable | string;
211
- borderStyle: BorderStyle;
212
222
  pointerEvents: PointerEvents;
213
223
  }
214
224
 
@@ -299,11 +309,12 @@ type TextProp = string | TextContent | (TextDeclaration & {
299
309
  content: TextContent;
300
310
  }) | TextDeclaration;
301
311
 
312
+ type VideoSource = string;
302
313
  interface VideoDeclaration {
303
- src: string;
314
+ src: VideoSource;
304
315
  opacity?: number;
305
316
  }
306
- type VideoProp = Noneable | string | VideoDeclaration;
317
+ type VideoProp = None | VideoSource | VideoDeclaration;
307
318
 
308
319
  interface IDOCElement extends IDOCNode {
309
320
  style?: StyleProp;
@@ -369,4 +380,4 @@ declare function normalizeTextContent(content?: TextContent): TextContentDeclara
369
380
 
370
381
  declare function normalizeVideo(video?: VideoProp): VideoDeclaration | undefined;
371
382
 
372
- export { type Align, type AudioDeclaration, type AudioProp, type BorderStyle, type BoxSizing, type ColorFillDeclaration, type CommonFillDeclaration, type ElementStyleDeclaration, type FillDeclaration, type FillProp, type FillRule, type FlexDirection, type FlexWrap, type FontKerning, type FontStyle, type FontWeight, type FragmentContent, type GeometryDeclaration, type GeometryProp, type HighlightColormap, type HighlightDeclaration, type HighlightImage, type HighlightLine, type HighlightReferImage, type HighlightSize, type HighlightStyleDeclaration, type HighlightThickness, type IDOCDocument, type IDOCDocumentDeclaration, type IDOCElement, type IDOCElementDeclaration, type IDOCNode, type ImageDeclaration, type ImageFillDeclaration, type ImageFillTile, type ImageProp, type ImageRect, type Justify, type LayoutStyleDeclaration, type ListStyleColormap, type ListStyleDeclaration, type ListStyleImage, type ListStylePosition, type ListStyleSize, type ListStyleStyleDeclaration, type ListStyleType, type MetaProp, type OutlineDeclaration, type OutlineProp, type Overflow, type ParagraphContent, type Path2DDeclaration, type Path2DStyle, type PointerEvents, type Position, type SVGPathData, type ShadowDeclaration, type ShadowProp, type ShadowStyleDeclaration, type StrokeLinecap, type StrokeLinejoin, type StyleDeclaration, type StyleProp, type TextAlign, type TextContent, type TextContentDeclaration, type TextContentFlat, type TextDeclaration, type TextDecoration, type TextDrawStyleDeclaration, type TextInlineStyleDeclaration, type TextLineStyleDeclaration, type TextOrientation, type TextProp, type TextStyleDeclaration, type TextTransform, type TextWrap, type TransformStyleDeclaration, type VerticalAlign, type VideoDeclaration, type VideoProp, type Visibility, type WritingMode, clearUndef, deepClearUndef, getDefaultElementStyle, getDefaultShadowStyle, getDefaultStyle, getDefaultTextStyle, getDefaultTransformStyle, normalizeAudio, normalizeElement, normalizeFill, normalizeGeometry, normalizeImage, normalizeOutline, normalizeShadow, normalizeText, normalizeTextContent, normalizeVideo };
383
+ export { type Align, type AudioDeclaration, type AudioProp, type AudioSource, type BorderStyle, type BoxShadow, type BoxSizing, type ColorFillDeclaration, type CommonFillDeclaration, type Direction, type Display, type ElementStyleDeclaration, type FillDeclaration, type FillProp, type FillRule, type FlexDirection, type FlexWrap, type FontKerning, type FontStyle, type FontWeight, type FragmentContent, type GeometryDeclaration, type GeometryProp, type HighlightColormap, type HighlightDeclaration, type HighlightImage, type HighlightLine, type HighlightReferImage, type HighlightSize, type HighlightStyleDeclaration, type HighlightThickness, type IDOCDocument, type IDOCDocumentDeclaration, type IDOCElement, type IDOCElementDeclaration, type IDOCNode, type ImageDeclaration, type ImageFillDeclaration, type ImageFillSource, type ImageFillTile, type ImageProp, type ImageSource, type ImageSourceRect, type Justify, type LayoutStyleDeclaration, type ListStyleColormap, type ListStyleDeclaration, type ListStyleImage, type ListStylePosition, type ListStyleSize, type ListStyleStyleDeclaration, type ListStyleType, type MetaProp, type OutlineDeclaration, type OutlineProp, type Overflow, type ParagraphContent, type Path2DDeclaration, type Path2DStyle, type PointerEvents, type Position, type SVGPathData, type ShadowDeclaration, type ShadowProp, type ShadowStyleDeclaration, type StrokeLinecap, type StrokeLinejoin, type StyleDeclaration, type StyleProp, type StyleUnit, type TextAlign, type TextContent, type TextContentDeclaration, type TextContentFlat, type TextDeclaration, type TextDecoration, type TextDrawStyleDeclaration, type TextInlineStyleDeclaration, type TextLineStyleDeclaration, type TextOrientation, type TextProp, type TextStyleDeclaration, type TextTransform, type TextWrap, type TransformStyleDeclaration, type VerticalAlign, type VideoDeclaration, type VideoProp, type VideoSource, type Visibility, type WritingMode, clearUndef, deepClearUndef, getDefaultElementStyle, getDefaultShadowStyle, getDefaultStyle, getDefaultTextStyle, getDefaultTransformStyle, normalizeAudio, normalizeElement, normalizeFill, normalizeGeometry, normalizeImage, normalizeOutline, normalizeShadow, normalizeText, normalizeTextContent, normalizeVideo };
package/dist/index.d.mts CHANGED
@@ -1,10 +1,10 @@
1
- type Noneable = 'none';
2
- type Sizeable = `${number}%` | `${number}rem` | number;
1
+ type None = 'none';
3
2
 
3
+ type AudioSource = string;
4
4
  interface AudioDeclaration {
5
- src: string;
5
+ src: AudioSource;
6
6
  }
7
- type AudioProp = Noneable | string | AudioDeclaration;
7
+ type AudioProp = None | AudioSource | AudioDeclaration;
8
8
 
9
9
  interface ImageFillTile {
10
10
  alignment?: string;
@@ -17,9 +17,10 @@ interface ImageFillTile {
17
17
  interface CommonFillDeclaration {
18
18
  opacity?: number;
19
19
  }
20
+ type ImageFillSource = string;
20
21
  interface ImageFillDeclaration extends CommonFillDeclaration {
21
22
  type: 'image';
22
- image: string;
23
+ image: ImageFillSource;
23
24
  dpi?: number;
24
25
  rotateWithShape?: boolean;
25
26
  tile?: ImageFillTile;
@@ -29,7 +30,7 @@ interface ColorFillDeclaration extends CommonFillDeclaration {
29
30
  color: string;
30
31
  }
31
32
  type FillDeclaration = ImageFillDeclaration | ColorFillDeclaration;
32
- type FillProp = Noneable | string | FillDeclaration;
33
+ type FillProp = None | string | FillDeclaration;
33
34
 
34
35
  type SVGPathData = string;
35
36
  type FillRule = 'nonzero' | 'evenodd';
@@ -62,7 +63,7 @@ interface GeometryDeclaration {
62
63
  name?: string;
63
64
  data: Path2DDeclaration[];
64
65
  }
65
- type GeometryProp = Noneable | SVGPathData | SVGPathData[] | Path2DDeclaration[] | GeometryDeclaration;
66
+ type GeometryProp = None | SVGPathData | SVGPathData[] | Path2DDeclaration[] | GeometryDeclaration;
66
67
 
67
68
  interface MetaProp {
68
69
  [key: string]: any;
@@ -74,18 +75,19 @@ interface IDOCNode {
74
75
  meta?: MetaProp;
75
76
  }
76
77
 
77
- interface ImageRect {
78
+ type ImageSource = string;
79
+ interface ImageSourceRect {
78
80
  left?: number;
79
81
  top?: number;
80
82
  bottom?: number;
81
83
  right?: number;
82
84
  }
83
85
  interface ImageDeclaration {
84
- src: string;
85
- srcRect?: ImageRect;
86
+ src: ImageSource;
87
+ srcRect?: ImageSourceRect;
86
88
  opacity?: number;
87
89
  }
88
- type ImageProp = Noneable | string | ImageDeclaration;
90
+ type ImageProp = None | ImageSource | ImageDeclaration;
89
91
 
90
92
  interface OutlineDeclaration {
91
93
  width?: number;
@@ -94,33 +96,37 @@ interface OutlineDeclaration {
94
96
  color?: string;
95
97
  opacity?: number;
96
98
  }
97
- type OutlineProp = Noneable | string | Partial<OutlineDeclaration>;
99
+ type OutlineProp = None | string | Partial<OutlineDeclaration>;
98
100
 
101
+ type BoxShadow = None | string;
99
102
  interface ShadowDeclaration {
100
103
  color: string;
101
104
  offsetX?: number;
102
105
  offsetY?: number;
103
106
  blur?: number;
104
107
  }
105
- type ShadowProp = Noneable | string | ShadowDeclaration;
108
+ type ShadowProp = None | BoxShadow | ShadowDeclaration;
106
109
  interface ShadowStyleDeclaration {
107
- boxShadow: Noneable | string;
110
+ boxShadow: BoxShadow;
108
111
  shadowColor?: string;
109
112
  shadowOffsetX?: number;
110
113
  shadowOffsetY?: number;
111
114
  shadowBlur?: number;
112
115
  }
113
116
 
117
+ type StyleUnit = `${number}%` | number;
118
+ type Display = 'flex' | 'contents';
119
+ type Direction = 'inherit' | 'ltr' | 'rtl';
114
120
  type Overflow = 'hidden' | 'visible';
115
121
  type Visibility = 'hidden' | 'visible';
116
122
  type FontWeight = 'normal' | 'bold' | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900;
117
123
  type FontStyle = 'normal' | 'italic' | 'oblique' | `oblique ${string}`;
118
- type FontKerning = Noneable | 'auto' | 'normal';
124
+ type FontKerning = None | 'auto' | 'normal';
119
125
  type TextWrap = 'wrap' | 'nowrap';
120
126
  type TextAlign = 'center' | 'end' | 'left' | 'right' | 'start';
121
- type TextTransform = Noneable | 'uppercase' | 'lowercase';
127
+ type TextTransform = None | 'uppercase' | 'lowercase';
122
128
  type TextOrientation = 'mixed' | 'upright' | 'sideways-right' | 'sideways';
123
- type TextDecoration = Noneable | 'underline' | 'line-through' | 'overline';
129
+ type TextDecoration = None | 'underline' | 'line-through' | 'overline';
124
130
  type VerticalAlign = 'baseline' | 'top' | 'middle' | 'bottom' | 'sub' | 'super' | 'text-top' | 'text-bottom';
125
131
  type WritingMode = 'horizontal-tb' | 'vertical-lr' | 'vertical-rl';
126
132
  type Align = 'auto' | 'flex-start' | 'center' | 'flex-end' | 'stretch' | 'baseline' | 'space-between' | 'space-around' | 'space-evenly';
@@ -128,64 +134,64 @@ type FlexDirection = 'column' | 'column-reverse' | 'row' | 'row-reverse';
128
134
  type FlexWrap = 'nowrap' | 'wrap' | 'Wrap-reverse';
129
135
  type Justify = 'flex-start' | 'center' | 'flex-end' | 'space-between' | 'space-around' | 'space-evenly';
130
136
  type Position = 'static' | 'relative' | 'absolute';
131
- type BorderStyle = Noneable | 'dashed' | 'solid';
137
+ type BorderStyle = None | 'dashed' | 'solid';
132
138
  type BoxSizing = 'border-box' | 'content-box';
133
139
  type PointerEvents = 'auto' | 'none';
134
- type ListStyleType = Noneable | 'disc';
135
- type ListStyleImage = Noneable | string;
136
- type ListStyleColormap = Noneable | Record<string, string>;
137
- type ListStyleSize = Sizeable | 'cover';
140
+ type ListStyleType = None | 'disc';
141
+ type ListStyleImage = None | string;
142
+ type ListStyleColormap = None | Record<string, string>;
143
+ type ListStyleSize = StyleUnit | `${number}rem` | 'cover';
138
144
  type ListStylePosition = 'inside' | 'outside';
139
145
  type HighlightLine = TextDecoration | 'outline';
140
- type HighlightImage = Noneable | string;
141
- type HighlightReferImage = Noneable | string;
142
- type HighlightColormap = Noneable | Record<string, string>;
143
- type HighlightSize = Sizeable | 'cover';
144
- type HighlightThickness = Sizeable;
146
+ type HighlightImage = None | string;
147
+ type HighlightReferImage = None | string;
148
+ type HighlightColormap = None | Record<string, string>;
149
+ type HighlightSize = StyleUnit | `${number}rem` | 'cover';
150
+ type HighlightThickness = StyleUnit;
145
151
 
146
152
  interface LayoutStyleDeclaration {
147
- overflow: Overflow;
148
- alignContent: Align;
149
- alignItems: Align;
150
- alignSelf: Align;
151
- borderTop: string;
152
- borderLeft: string;
153
- borderRight: string;
154
- borderBottom: string;
155
- borderWidth: number;
156
- border: string;
157
- direction: 'inherit' | 'ltr' | 'rtl';
158
- display: 'none' | 'flex' | 'contents';
159
- flex: number;
160
- flexBasis: number | 'auto' | `${number}%`;
161
- flexDirection: FlexDirection;
162
- flexGrow: number;
163
- flexShrink: number;
164
- flexWrap: FlexWrap;
165
- height: number | 'auto' | `${number}%`;
166
- justifyContent: Justify;
167
- gap: number | `${number}%`;
168
- marginTop: number | 'auto' | `${number}%`;
169
- marginLeft: number | 'auto' | `${number}%`;
170
- marginRight: number | 'auto' | `${number}%`;
171
- marginBottom: number | 'auto' | `${number}%`;
172
- margin: number | 'auto' | `${number}%`;
173
- maxHeight: number | `${number}%`;
174
- maxWidth: number | `${number}%`;
175
- minHeight: number | `${number}%`;
176
- minWidth: number | `${number}%`;
177
- paddingTop: number | `${number}%`;
178
- paddingLeft: number | `${number}%`;
179
- paddingRight: number | `${number}%`;
180
- paddingBottom: number | `${number}%`;
181
- padding: number | `${number}%`;
182
- top: number | `${number}%`;
183
- bottom: number | `${number}%`;
184
- left: number | `${number}%`;
185
- right: number | `${number}%`;
186
- position: Position;
187
- boxSizing: BoxSizing;
188
- width: number | 'auto' | `${number}%`;
153
+ overflow?: Overflow;
154
+ direction?: Direction;
155
+ display?: Display;
156
+ boxSizing?: BoxSizing;
157
+ width?: StyleUnit | 'auto';
158
+ height?: StyleUnit | 'auto';
159
+ maxHeight?: StyleUnit;
160
+ maxWidth?: StyleUnit;
161
+ minHeight?: StyleUnit;
162
+ minWidth?: StyleUnit;
163
+ position?: Position;
164
+ left: StyleUnit;
165
+ top: StyleUnit;
166
+ right?: StyleUnit;
167
+ bottom?: StyleUnit;
168
+ borderTop?: string;
169
+ borderLeft?: string;
170
+ borderRight?: string;
171
+ borderBottom?: string;
172
+ borderWidth?: number;
173
+ border?: string;
174
+ flex?: number;
175
+ flexBasis?: StyleUnit | 'auto';
176
+ flexDirection?: FlexDirection;
177
+ flexGrow?: number;
178
+ flexShrink?: number;
179
+ flexWrap?: FlexWrap;
180
+ alignContent?: Align;
181
+ alignItems?: Align;
182
+ alignSelf?: Align;
183
+ justifyContent?: Justify;
184
+ gap?: StyleUnit;
185
+ marginTop?: None | StyleUnit | 'auto';
186
+ marginLeft?: None | StyleUnit | 'auto';
187
+ marginRight?: None | StyleUnit | 'auto';
188
+ marginBottom?: None | StyleUnit | 'auto';
189
+ margin?: None | StyleUnit | 'auto';
190
+ paddingTop?: StyleUnit;
191
+ paddingLeft?: StyleUnit;
192
+ paddingRight?: StyleUnit;
193
+ paddingBottom?: StyleUnit;
194
+ padding?: StyleUnit;
189
195
  }
190
196
 
191
197
  interface TransformStyleDeclaration {
@@ -196,19 +202,23 @@ interface TransformStyleDeclaration {
196
202
  skewY: number;
197
203
  translateX: number;
198
204
  translateY: number;
199
- transform: string;
205
+ transform: None | string;
200
206
  transformOrigin: string;
201
207
  }
202
208
 
203
209
  interface ElementStyleDeclaration extends LayoutStyleDeclaration, TransformStyleDeclaration, ShadowStyleDeclaration {
210
+ backgroundImage?: None | string;
211
+ backgroundColor?: None | string;
212
+ borderRadius: number;
213
+ borderColor?: None | string;
214
+ borderStyle: BorderStyle;
215
+ outlineWidth: number;
216
+ outlineOffset: number;
217
+ outlineColor: None | string;
218
+ outlineStyle: string;
204
219
  visibility: Visibility;
205
220
  filter: string;
206
221
  opacity: number;
207
- backgroundImage: Noneable | string;
208
- backgroundColor: Noneable | string;
209
- borderRadius: number;
210
- borderColor: Noneable | string;
211
- borderStyle: BorderStyle;
212
222
  pointerEvents: PointerEvents;
213
223
  }
214
224
 
@@ -299,11 +309,12 @@ type TextProp = string | TextContent | (TextDeclaration & {
299
309
  content: TextContent;
300
310
  }) | TextDeclaration;
301
311
 
312
+ type VideoSource = string;
302
313
  interface VideoDeclaration {
303
- src: string;
314
+ src: VideoSource;
304
315
  opacity?: number;
305
316
  }
306
- type VideoProp = Noneable | string | VideoDeclaration;
317
+ type VideoProp = None | VideoSource | VideoDeclaration;
307
318
 
308
319
  interface IDOCElement extends IDOCNode {
309
320
  style?: StyleProp;
@@ -369,4 +380,4 @@ declare function normalizeTextContent(content?: TextContent): TextContentDeclara
369
380
 
370
381
  declare function normalizeVideo(video?: VideoProp): VideoDeclaration | undefined;
371
382
 
372
- export { type Align, type AudioDeclaration, type AudioProp, type BorderStyle, type BoxSizing, type ColorFillDeclaration, type CommonFillDeclaration, type ElementStyleDeclaration, type FillDeclaration, type FillProp, type FillRule, type FlexDirection, type FlexWrap, type FontKerning, type FontStyle, type FontWeight, type FragmentContent, type GeometryDeclaration, type GeometryProp, type HighlightColormap, type HighlightDeclaration, type HighlightImage, type HighlightLine, type HighlightReferImage, type HighlightSize, type HighlightStyleDeclaration, type HighlightThickness, type IDOCDocument, type IDOCDocumentDeclaration, type IDOCElement, type IDOCElementDeclaration, type IDOCNode, type ImageDeclaration, type ImageFillDeclaration, type ImageFillTile, type ImageProp, type ImageRect, type Justify, type LayoutStyleDeclaration, type ListStyleColormap, type ListStyleDeclaration, type ListStyleImage, type ListStylePosition, type ListStyleSize, type ListStyleStyleDeclaration, type ListStyleType, type MetaProp, type OutlineDeclaration, type OutlineProp, type Overflow, type ParagraphContent, type Path2DDeclaration, type Path2DStyle, type PointerEvents, type Position, type SVGPathData, type ShadowDeclaration, type ShadowProp, type ShadowStyleDeclaration, type StrokeLinecap, type StrokeLinejoin, type StyleDeclaration, type StyleProp, type TextAlign, type TextContent, type TextContentDeclaration, type TextContentFlat, type TextDeclaration, type TextDecoration, type TextDrawStyleDeclaration, type TextInlineStyleDeclaration, type TextLineStyleDeclaration, type TextOrientation, type TextProp, type TextStyleDeclaration, type TextTransform, type TextWrap, type TransformStyleDeclaration, type VerticalAlign, type VideoDeclaration, type VideoProp, type Visibility, type WritingMode, clearUndef, deepClearUndef, getDefaultElementStyle, getDefaultShadowStyle, getDefaultStyle, getDefaultTextStyle, getDefaultTransformStyle, normalizeAudio, normalizeElement, normalizeFill, normalizeGeometry, normalizeImage, normalizeOutline, normalizeShadow, normalizeText, normalizeTextContent, normalizeVideo };
383
+ export { type Align, type AudioDeclaration, type AudioProp, type AudioSource, type BorderStyle, type BoxShadow, type BoxSizing, type ColorFillDeclaration, type CommonFillDeclaration, type Direction, type Display, type ElementStyleDeclaration, type FillDeclaration, type FillProp, type FillRule, type FlexDirection, type FlexWrap, type FontKerning, type FontStyle, type FontWeight, type FragmentContent, type GeometryDeclaration, type GeometryProp, type HighlightColormap, type HighlightDeclaration, type HighlightImage, type HighlightLine, type HighlightReferImage, type HighlightSize, type HighlightStyleDeclaration, type HighlightThickness, type IDOCDocument, type IDOCDocumentDeclaration, type IDOCElement, type IDOCElementDeclaration, type IDOCNode, type ImageDeclaration, type ImageFillDeclaration, type ImageFillSource, type ImageFillTile, type ImageProp, type ImageSource, type ImageSourceRect, type Justify, type LayoutStyleDeclaration, type ListStyleColormap, type ListStyleDeclaration, type ListStyleImage, type ListStylePosition, type ListStyleSize, type ListStyleStyleDeclaration, type ListStyleType, type MetaProp, type OutlineDeclaration, type OutlineProp, type Overflow, type ParagraphContent, type Path2DDeclaration, type Path2DStyle, type PointerEvents, type Position, type SVGPathData, type ShadowDeclaration, type ShadowProp, type ShadowStyleDeclaration, type StrokeLinecap, type StrokeLinejoin, type StyleDeclaration, type StyleProp, type StyleUnit, type TextAlign, type TextContent, type TextContentDeclaration, type TextContentFlat, type TextDeclaration, type TextDecoration, type TextDrawStyleDeclaration, type TextInlineStyleDeclaration, type TextLineStyleDeclaration, type TextOrientation, type TextProp, type TextStyleDeclaration, type TextTransform, type TextWrap, type TransformStyleDeclaration, type VerticalAlign, type VideoDeclaration, type VideoProp, type VideoSource, type Visibility, type WritingMode, clearUndef, deepClearUndef, getDefaultElementStyle, getDefaultShadowStyle, getDefaultStyle, getDefaultTextStyle, getDefaultTransformStyle, normalizeAudio, normalizeElement, normalizeFill, normalizeGeometry, normalizeImage, normalizeOutline, normalizeShadow, normalizeText, normalizeTextContent, normalizeVideo };
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- type Noneable = 'none';
2
- type Sizeable = `${number}%` | `${number}rem` | number;
1
+ type None = 'none';
3
2
 
3
+ type AudioSource = string;
4
4
  interface AudioDeclaration {
5
- src: string;
5
+ src: AudioSource;
6
6
  }
7
- type AudioProp = Noneable | string | AudioDeclaration;
7
+ type AudioProp = None | AudioSource | AudioDeclaration;
8
8
 
9
9
  interface ImageFillTile {
10
10
  alignment?: string;
@@ -17,9 +17,10 @@ interface ImageFillTile {
17
17
  interface CommonFillDeclaration {
18
18
  opacity?: number;
19
19
  }
20
+ type ImageFillSource = string;
20
21
  interface ImageFillDeclaration extends CommonFillDeclaration {
21
22
  type: 'image';
22
- image: string;
23
+ image: ImageFillSource;
23
24
  dpi?: number;
24
25
  rotateWithShape?: boolean;
25
26
  tile?: ImageFillTile;
@@ -29,7 +30,7 @@ interface ColorFillDeclaration extends CommonFillDeclaration {
29
30
  color: string;
30
31
  }
31
32
  type FillDeclaration = ImageFillDeclaration | ColorFillDeclaration;
32
- type FillProp = Noneable | string | FillDeclaration;
33
+ type FillProp = None | string | FillDeclaration;
33
34
 
34
35
  type SVGPathData = string;
35
36
  type FillRule = 'nonzero' | 'evenodd';
@@ -62,7 +63,7 @@ interface GeometryDeclaration {
62
63
  name?: string;
63
64
  data: Path2DDeclaration[];
64
65
  }
65
- type GeometryProp = Noneable | SVGPathData | SVGPathData[] | Path2DDeclaration[] | GeometryDeclaration;
66
+ type GeometryProp = None | SVGPathData | SVGPathData[] | Path2DDeclaration[] | GeometryDeclaration;
66
67
 
67
68
  interface MetaProp {
68
69
  [key: string]: any;
@@ -74,18 +75,19 @@ interface IDOCNode {
74
75
  meta?: MetaProp;
75
76
  }
76
77
 
77
- interface ImageRect {
78
+ type ImageSource = string;
79
+ interface ImageSourceRect {
78
80
  left?: number;
79
81
  top?: number;
80
82
  bottom?: number;
81
83
  right?: number;
82
84
  }
83
85
  interface ImageDeclaration {
84
- src: string;
85
- srcRect?: ImageRect;
86
+ src: ImageSource;
87
+ srcRect?: ImageSourceRect;
86
88
  opacity?: number;
87
89
  }
88
- type ImageProp = Noneable | string | ImageDeclaration;
90
+ type ImageProp = None | ImageSource | ImageDeclaration;
89
91
 
90
92
  interface OutlineDeclaration {
91
93
  width?: number;
@@ -94,33 +96,37 @@ interface OutlineDeclaration {
94
96
  color?: string;
95
97
  opacity?: number;
96
98
  }
97
- type OutlineProp = Noneable | string | Partial<OutlineDeclaration>;
99
+ type OutlineProp = None | string | Partial<OutlineDeclaration>;
98
100
 
101
+ type BoxShadow = None | string;
99
102
  interface ShadowDeclaration {
100
103
  color: string;
101
104
  offsetX?: number;
102
105
  offsetY?: number;
103
106
  blur?: number;
104
107
  }
105
- type ShadowProp = Noneable | string | ShadowDeclaration;
108
+ type ShadowProp = None | BoxShadow | ShadowDeclaration;
106
109
  interface ShadowStyleDeclaration {
107
- boxShadow: Noneable | string;
110
+ boxShadow: BoxShadow;
108
111
  shadowColor?: string;
109
112
  shadowOffsetX?: number;
110
113
  shadowOffsetY?: number;
111
114
  shadowBlur?: number;
112
115
  }
113
116
 
117
+ type StyleUnit = `${number}%` | number;
118
+ type Display = 'flex' | 'contents';
119
+ type Direction = 'inherit' | 'ltr' | 'rtl';
114
120
  type Overflow = 'hidden' | 'visible';
115
121
  type Visibility = 'hidden' | 'visible';
116
122
  type FontWeight = 'normal' | 'bold' | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900;
117
123
  type FontStyle = 'normal' | 'italic' | 'oblique' | `oblique ${string}`;
118
- type FontKerning = Noneable | 'auto' | 'normal';
124
+ type FontKerning = None | 'auto' | 'normal';
119
125
  type TextWrap = 'wrap' | 'nowrap';
120
126
  type TextAlign = 'center' | 'end' | 'left' | 'right' | 'start';
121
- type TextTransform = Noneable | 'uppercase' | 'lowercase';
127
+ type TextTransform = None | 'uppercase' | 'lowercase';
122
128
  type TextOrientation = 'mixed' | 'upright' | 'sideways-right' | 'sideways';
123
- type TextDecoration = Noneable | 'underline' | 'line-through' | 'overline';
129
+ type TextDecoration = None | 'underline' | 'line-through' | 'overline';
124
130
  type VerticalAlign = 'baseline' | 'top' | 'middle' | 'bottom' | 'sub' | 'super' | 'text-top' | 'text-bottom';
125
131
  type WritingMode = 'horizontal-tb' | 'vertical-lr' | 'vertical-rl';
126
132
  type Align = 'auto' | 'flex-start' | 'center' | 'flex-end' | 'stretch' | 'baseline' | 'space-between' | 'space-around' | 'space-evenly';
@@ -128,64 +134,64 @@ type FlexDirection = 'column' | 'column-reverse' | 'row' | 'row-reverse';
128
134
  type FlexWrap = 'nowrap' | 'wrap' | 'Wrap-reverse';
129
135
  type Justify = 'flex-start' | 'center' | 'flex-end' | 'space-between' | 'space-around' | 'space-evenly';
130
136
  type Position = 'static' | 'relative' | 'absolute';
131
- type BorderStyle = Noneable | 'dashed' | 'solid';
137
+ type BorderStyle = None | 'dashed' | 'solid';
132
138
  type BoxSizing = 'border-box' | 'content-box';
133
139
  type PointerEvents = 'auto' | 'none';
134
- type ListStyleType = Noneable | 'disc';
135
- type ListStyleImage = Noneable | string;
136
- type ListStyleColormap = Noneable | Record<string, string>;
137
- type ListStyleSize = Sizeable | 'cover';
140
+ type ListStyleType = None | 'disc';
141
+ type ListStyleImage = None | string;
142
+ type ListStyleColormap = None | Record<string, string>;
143
+ type ListStyleSize = StyleUnit | `${number}rem` | 'cover';
138
144
  type ListStylePosition = 'inside' | 'outside';
139
145
  type HighlightLine = TextDecoration | 'outline';
140
- type HighlightImage = Noneable | string;
141
- type HighlightReferImage = Noneable | string;
142
- type HighlightColormap = Noneable | Record<string, string>;
143
- type HighlightSize = Sizeable | 'cover';
144
- type HighlightThickness = Sizeable;
146
+ type HighlightImage = None | string;
147
+ type HighlightReferImage = None | string;
148
+ type HighlightColormap = None | Record<string, string>;
149
+ type HighlightSize = StyleUnit | `${number}rem` | 'cover';
150
+ type HighlightThickness = StyleUnit;
145
151
 
146
152
  interface LayoutStyleDeclaration {
147
- overflow: Overflow;
148
- alignContent: Align;
149
- alignItems: Align;
150
- alignSelf: Align;
151
- borderTop: string;
152
- borderLeft: string;
153
- borderRight: string;
154
- borderBottom: string;
155
- borderWidth: number;
156
- border: string;
157
- direction: 'inherit' | 'ltr' | 'rtl';
158
- display: 'none' | 'flex' | 'contents';
159
- flex: number;
160
- flexBasis: number | 'auto' | `${number}%`;
161
- flexDirection: FlexDirection;
162
- flexGrow: number;
163
- flexShrink: number;
164
- flexWrap: FlexWrap;
165
- height: number | 'auto' | `${number}%`;
166
- justifyContent: Justify;
167
- gap: number | `${number}%`;
168
- marginTop: number | 'auto' | `${number}%`;
169
- marginLeft: number | 'auto' | `${number}%`;
170
- marginRight: number | 'auto' | `${number}%`;
171
- marginBottom: number | 'auto' | `${number}%`;
172
- margin: number | 'auto' | `${number}%`;
173
- maxHeight: number | `${number}%`;
174
- maxWidth: number | `${number}%`;
175
- minHeight: number | `${number}%`;
176
- minWidth: number | `${number}%`;
177
- paddingTop: number | `${number}%`;
178
- paddingLeft: number | `${number}%`;
179
- paddingRight: number | `${number}%`;
180
- paddingBottom: number | `${number}%`;
181
- padding: number | `${number}%`;
182
- top: number | `${number}%`;
183
- bottom: number | `${number}%`;
184
- left: number | `${number}%`;
185
- right: number | `${number}%`;
186
- position: Position;
187
- boxSizing: BoxSizing;
188
- width: number | 'auto' | `${number}%`;
153
+ overflow?: Overflow;
154
+ direction?: Direction;
155
+ display?: Display;
156
+ boxSizing?: BoxSizing;
157
+ width?: StyleUnit | 'auto';
158
+ height?: StyleUnit | 'auto';
159
+ maxHeight?: StyleUnit;
160
+ maxWidth?: StyleUnit;
161
+ minHeight?: StyleUnit;
162
+ minWidth?: StyleUnit;
163
+ position?: Position;
164
+ left: StyleUnit;
165
+ top: StyleUnit;
166
+ right?: StyleUnit;
167
+ bottom?: StyleUnit;
168
+ borderTop?: string;
169
+ borderLeft?: string;
170
+ borderRight?: string;
171
+ borderBottom?: string;
172
+ borderWidth?: number;
173
+ border?: string;
174
+ flex?: number;
175
+ flexBasis?: StyleUnit | 'auto';
176
+ flexDirection?: FlexDirection;
177
+ flexGrow?: number;
178
+ flexShrink?: number;
179
+ flexWrap?: FlexWrap;
180
+ alignContent?: Align;
181
+ alignItems?: Align;
182
+ alignSelf?: Align;
183
+ justifyContent?: Justify;
184
+ gap?: StyleUnit;
185
+ marginTop?: None | StyleUnit | 'auto';
186
+ marginLeft?: None | StyleUnit | 'auto';
187
+ marginRight?: None | StyleUnit | 'auto';
188
+ marginBottom?: None | StyleUnit | 'auto';
189
+ margin?: None | StyleUnit | 'auto';
190
+ paddingTop?: StyleUnit;
191
+ paddingLeft?: StyleUnit;
192
+ paddingRight?: StyleUnit;
193
+ paddingBottom?: StyleUnit;
194
+ padding?: StyleUnit;
189
195
  }
190
196
 
191
197
  interface TransformStyleDeclaration {
@@ -196,19 +202,23 @@ interface TransformStyleDeclaration {
196
202
  skewY: number;
197
203
  translateX: number;
198
204
  translateY: number;
199
- transform: string;
205
+ transform: None | string;
200
206
  transformOrigin: string;
201
207
  }
202
208
 
203
209
  interface ElementStyleDeclaration extends LayoutStyleDeclaration, TransformStyleDeclaration, ShadowStyleDeclaration {
210
+ backgroundImage?: None | string;
211
+ backgroundColor?: None | string;
212
+ borderRadius: number;
213
+ borderColor?: None | string;
214
+ borderStyle: BorderStyle;
215
+ outlineWidth: number;
216
+ outlineOffset: number;
217
+ outlineColor: None | string;
218
+ outlineStyle: string;
204
219
  visibility: Visibility;
205
220
  filter: string;
206
221
  opacity: number;
207
- backgroundImage: Noneable | string;
208
- backgroundColor: Noneable | string;
209
- borderRadius: number;
210
- borderColor: Noneable | string;
211
- borderStyle: BorderStyle;
212
222
  pointerEvents: PointerEvents;
213
223
  }
214
224
 
@@ -299,11 +309,12 @@ type TextProp = string | TextContent | (TextDeclaration & {
299
309
  content: TextContent;
300
310
  }) | TextDeclaration;
301
311
 
312
+ type VideoSource = string;
302
313
  interface VideoDeclaration {
303
- src: string;
314
+ src: VideoSource;
304
315
  opacity?: number;
305
316
  }
306
- type VideoProp = Noneable | string | VideoDeclaration;
317
+ type VideoProp = None | VideoSource | VideoDeclaration;
307
318
 
308
319
  interface IDOCElement extends IDOCNode {
309
320
  style?: StyleProp;
@@ -369,4 +380,4 @@ declare function normalizeTextContent(content?: TextContent): TextContentDeclara
369
380
 
370
381
  declare function normalizeVideo(video?: VideoProp): VideoDeclaration | undefined;
371
382
 
372
- export { type Align, type AudioDeclaration, type AudioProp, type BorderStyle, type BoxSizing, type ColorFillDeclaration, type CommonFillDeclaration, type ElementStyleDeclaration, type FillDeclaration, type FillProp, type FillRule, type FlexDirection, type FlexWrap, type FontKerning, type FontStyle, type FontWeight, type FragmentContent, type GeometryDeclaration, type GeometryProp, type HighlightColormap, type HighlightDeclaration, type HighlightImage, type HighlightLine, type HighlightReferImage, type HighlightSize, type HighlightStyleDeclaration, type HighlightThickness, type IDOCDocument, type IDOCDocumentDeclaration, type IDOCElement, type IDOCElementDeclaration, type IDOCNode, type ImageDeclaration, type ImageFillDeclaration, type ImageFillTile, type ImageProp, type ImageRect, type Justify, type LayoutStyleDeclaration, type ListStyleColormap, type ListStyleDeclaration, type ListStyleImage, type ListStylePosition, type ListStyleSize, type ListStyleStyleDeclaration, type ListStyleType, type MetaProp, type OutlineDeclaration, type OutlineProp, type Overflow, type ParagraphContent, type Path2DDeclaration, type Path2DStyle, type PointerEvents, type Position, type SVGPathData, type ShadowDeclaration, type ShadowProp, type ShadowStyleDeclaration, type StrokeLinecap, type StrokeLinejoin, type StyleDeclaration, type StyleProp, type TextAlign, type TextContent, type TextContentDeclaration, type TextContentFlat, type TextDeclaration, type TextDecoration, type TextDrawStyleDeclaration, type TextInlineStyleDeclaration, type TextLineStyleDeclaration, type TextOrientation, type TextProp, type TextStyleDeclaration, type TextTransform, type TextWrap, type TransformStyleDeclaration, type VerticalAlign, type VideoDeclaration, type VideoProp, type Visibility, type WritingMode, clearUndef, deepClearUndef, getDefaultElementStyle, getDefaultShadowStyle, getDefaultStyle, getDefaultTextStyle, getDefaultTransformStyle, normalizeAudio, normalizeElement, normalizeFill, normalizeGeometry, normalizeImage, normalizeOutline, normalizeShadow, normalizeText, normalizeTextContent, normalizeVideo };
383
+ export { type Align, type AudioDeclaration, type AudioProp, type AudioSource, type BorderStyle, type BoxShadow, type BoxSizing, type ColorFillDeclaration, type CommonFillDeclaration, type Direction, type Display, type ElementStyleDeclaration, type FillDeclaration, type FillProp, type FillRule, type FlexDirection, type FlexWrap, type FontKerning, type FontStyle, type FontWeight, type FragmentContent, type GeometryDeclaration, type GeometryProp, type HighlightColormap, type HighlightDeclaration, type HighlightImage, type HighlightLine, type HighlightReferImage, type HighlightSize, type HighlightStyleDeclaration, type HighlightThickness, type IDOCDocument, type IDOCDocumentDeclaration, type IDOCElement, type IDOCElementDeclaration, type IDOCNode, type ImageDeclaration, type ImageFillDeclaration, type ImageFillSource, type ImageFillTile, type ImageProp, type ImageSource, type ImageSourceRect, type Justify, type LayoutStyleDeclaration, type ListStyleColormap, type ListStyleDeclaration, type ListStyleImage, type ListStylePosition, type ListStyleSize, type ListStyleStyleDeclaration, type ListStyleType, type MetaProp, type OutlineDeclaration, type OutlineProp, type Overflow, type ParagraphContent, type Path2DDeclaration, type Path2DStyle, type PointerEvents, type Position, type SVGPathData, type ShadowDeclaration, type ShadowProp, type ShadowStyleDeclaration, type StrokeLinecap, type StrokeLinejoin, type StyleDeclaration, type StyleProp, type StyleUnit, type TextAlign, type TextContent, type TextContentDeclaration, type TextContentFlat, type TextDeclaration, type TextDecoration, type TextDrawStyleDeclaration, type TextInlineStyleDeclaration, type TextLineStyleDeclaration, type TextOrientation, type TextProp, type TextStyleDeclaration, type TextTransform, type TextWrap, type TransformStyleDeclaration, type VerticalAlign, type VideoDeclaration, type VideoProp, type VideoSource, type Visibility, type WritingMode, clearUndef, deepClearUndef, getDefaultElementStyle, getDefaultShadowStyle, getDefaultStyle, getDefaultTextStyle, getDefaultTransformStyle, normalizeAudio, normalizeElement, normalizeFill, normalizeGeometry, normalizeImage, normalizeOutline, normalizeShadow, normalizeText, normalizeTextContent, normalizeVideo };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- (function(n,o){typeof exports=="object"&&typeof module<"u"?o(exports):typeof define=="function"&&define.amd?define(["exports"],o):(n=typeof globalThis<"u"?globalThis:n||self,o(n.modernIdoc={}))})(this,function(n){"use strict";function o(){return{overflow:"visible",alignContent:"stretch",alignItems:"stretch",alignSelf:"auto",borderTop:"none",borderLeft:"none",borderRight:"none",borderBottom:"none",borderWidth:0,border:"none",direction:"inherit",display:"flex",flex:0,flexBasis:"auto",flexDirection:"row",flexGrow:0,flexShrink:1,flexWrap:"nowrap",height:"auto",justifyContent:"flex-start",gap:0,marginTop:0,marginLeft:0,marginRight:0,marginBottom:0,margin:0,maxHeight:0,maxWidth:0,minHeight:0,minWidth:0,paddingTop:0,paddingLeft:0,paddingRight:0,paddingBottom:0,padding:0,top:0,bottom:0,left:0,right:0,position:"static",boxSizing:"content-box",width:"auto"}}function u(){return{boxShadow:"none"}}function s(){return{rotate:0,scaleX:1,scaleY:1,skewX:0,skewY:0,translateX:0,translateY:0,transform:"none",transformOrigin:"center"}}function g(){return{...s(),...o(),...u(),visibility:"visible",filter:"none",opacity:1,backgroundImage:"none",backgroundColor:"none",borderRadius:0,borderColor:"none",borderStyle:"solid",pointerEvents:"auto"}}function c(){return{writingMode:"horizontal-tb",verticalAlign:"baseline",lineHeight:1.2,letterSpacing:0,wordSpacing:0,fontSize:14,fontWeight:"normal",fontFamily:"",fontStyle:"normal",fontKerning:"normal",textWrap:"wrap",textAlign:"start",textIndent:0,textTransform:"none",textOrientation:"mixed",textDecoration:"none",textStrokeWidth:0,textStrokeColor:"black",color:"black",listStyleType:"none",listStyleImage:"none",listStyleColormap:"none",listStyleSize:"cover",listStylePosition:"outside",highlightImage:"none",highlightReferImage:"none",highlightColormap:"none",highlightLine:"none",highlightSize:"cover",highlightThickness:"100%"}}function T(){return{...g(),...c()}}function l(e,r=!1){if(typeof e!="object"||!e)return e;if(Array.isArray(e))return r?e.map(i=>l(i,r)):e;const t={};for(const i in e){const a=e[i];a!=null&&(r?t[i]=l(a,r):t[i]=a)}return t}function w(e){return l(e,!0)}function d(e){if(!(!e||e==="none"))return typeof e=="string"?{src:e}:{...e}}function m(e){if(!(!e||e==="none"))return typeof e=="string"?{type:"color",color:e}:e}function y(e){if(!(!e||e==="none"))return typeof e=="string"?{data:[{data:e}]}:Array.isArray(e)?{data:e.map(r=>typeof r=="string"?{data:r}:r)}:e}function h(e){if(!(!e||e==="none"))return typeof e=="string"?{src:e}:e}function S(e){if(!(!e||e==="none"))return typeof e=="string"?{color:e}:e}function z(e){if(!(!e||e==="none"))return typeof e=="string"?{color:e}:e}function f(e=""){return(Array.isArray(e)?e:[e]).map(t=>typeof t=="string"?{fragments:[{content:t}]}:"content"in t?{fragments:[{...t}]}:"fragments"in t?{...t,fragments:t.fragments.map(i=>({...i}))}:Array.isArray(t)?{fragments:t.map(i=>typeof i=="string"?{content:i}:{...i})}:{fragments:[]})}function p(e){if(!(!e||e==="none"))return typeof e=="string"?{content:[{fragments:[{content:e}]}]}:"content"in e?{...e,content:f(e.content)}:{content:f(e)}}function b(e){if(!(!e||e==="none"))return typeof e=="string"?{src:e}:{...e}}function v(e){var r;return l({...e,image:h(e.image),video:b(e.video),audio:d(e.audio),text:p(e.text),geometry:y(e.geometry),fill:m(e.fill),outline:S(e.outline),shadow:z(e.shadow),children:(r=e.children)==null?void 0:r.map(t=>v(t))})}n.clearUndef=l,n.deepClearUndef=w,n.getDefaultElementStyle=g,n.getDefaultShadowStyle=u,n.getDefaultStyle=T,n.getDefaultTextStyle=c,n.getDefaultTransformStyle=s,n.normalizeAudio=d,n.normalizeElement=v,n.normalizeFill=m,n.normalizeGeometry=y,n.normalizeImage=h,n.normalizeOutline=S,n.normalizeShadow=z,n.normalizeText=p,n.normalizeTextContent=f,n.normalizeVideo=b,Object.defineProperty(n,Symbol.toStringTag,{value:"Module"})});
1
+ (function(n,o){typeof exports=="object"&&typeof module<"u"?o(exports):typeof define=="function"&&define.amd?define(["exports"],o):(n=typeof globalThis<"u"?globalThis:n||self,o(n.modernIdoc={}))})(this,function(n){"use strict";function o(){return{overflow:void 0,direction:void 0,display:void 0,boxSizing:void 0,width:void 0,height:void 0,maxHeight:void 0,maxWidth:void 0,minHeight:void 0,minWidth:void 0,position:void 0,left:0,top:0,right:void 0,bottom:void 0,borderTop:void 0,borderLeft:void 0,borderRight:void 0,borderBottom:void 0,borderWidth:0,border:void 0,flex:void 0,flexBasis:void 0,flexDirection:void 0,flexGrow:void 0,flexShrink:void 0,flexWrap:void 0,justifyContent:void 0,gap:void 0,alignContent:void 0,alignItems:void 0,alignSelf:void 0,marginTop:void 0,marginLeft:void 0,marginRight:void 0,marginBottom:void 0,margin:void 0,paddingTop:void 0,paddingLeft:void 0,paddingRight:void 0,paddingBottom:void 0,padding:void 0}}function d(){return{boxShadow:"none"}}function u(){return{rotate:0,scaleX:1,scaleY:1,skewX:0,skewY:0,translateX:0,translateY:0,transform:"none",transformOrigin:"center"}}function s(){return{...o(),...u(),...d(),backgroundImage:"none",backgroundColor:"none",borderRadius:0,borderColor:"none",borderStyle:"solid",outlineWidth:0,outlineOffset:0,outlineColor:"#000000",outlineStyle:"none",visibility:"visible",filter:"none",opacity:1,pointerEvents:"auto"}}function g(){return{writingMode:"horizontal-tb",verticalAlign:"baseline",lineHeight:1.2,letterSpacing:0,wordSpacing:0,fontSize:14,fontWeight:"normal",fontFamily:"",fontStyle:"normal",fontKerning:"normal",textWrap:"wrap",textAlign:"start",textIndent:0,textTransform:"none",textOrientation:"mixed",textDecoration:"none",textStrokeWidth:0,textStrokeColor:"black",color:"black",listStyleType:"none",listStyleImage:"none",listStyleColormap:"none",listStyleSize:"cover",listStylePosition:"outside",highlightImage:"none",highlightReferImage:"none",highlightColormap:"none",highlightLine:"none",highlightSize:"cover",highlightThickness:"100%"}}function T(){return{...s(),...g()}}function l(e,i=!1){if(typeof e!="object"||!e)return e;if(Array.isArray(e))return i?e.map(r=>l(r,i)):e;const t={};for(const r in e){const a=e[r];a!=null&&(i?t[r]=l(a,i):t[r]=a)}return t}function D(e){return l(e,!0)}function c(e){if(!(!e||e==="none"))return typeof e=="string"?{src:e}:{...e}}function m(e){if(!(!e||e==="none"))return typeof e=="string"?{type:"color",color:e}:e}function v(e){if(!(!e||e==="none"))return typeof e=="string"?{data:[{data:e}]}:Array.isArray(e)?{data:e.map(i=>typeof i=="string"?{data:i}:i)}:e}function y(e){if(!(!e||e==="none"))return typeof e=="string"?{src:e}:e}function h(e){if(!(!e||e==="none"))return typeof e=="string"?{color:e}:e}function S(e){if(!(!e||e==="none"))return typeof e=="string"?{color:e}:e}function f(e=""){return(Array.isArray(e)?e:[e]).map(t=>typeof t=="string"?{fragments:[{content:t}]}:"content"in t?{fragments:[{...t}]}:"fragments"in t?{...t,fragments:t.fragments.map(r=>({...r}))}:Array.isArray(t)?{fragments:t.map(r=>typeof r=="string"?{content:r}:{...r})}:{fragments:[]})}function z(e){if(!(!e||e==="none"))return typeof e=="string"?{content:[{fragments:[{content:e}]}]}:"content"in e?{...e,content:f(e.content)}:{content:f(e)}}function p(e){if(!(!e||e==="none"))return typeof e=="string"?{src:e}:{...e}}function b(e){var i;return l({...e,image:y(e.image),video:p(e.video),audio:c(e.audio),text:z(e.text),geometry:v(e.geometry),fill:m(e.fill),outline:h(e.outline),shadow:S(e.shadow),children:(i=e.children)==null?void 0:i.map(t=>b(t))})}n.clearUndef=l,n.deepClearUndef=D,n.getDefaultElementStyle=s,n.getDefaultShadowStyle=d,n.getDefaultStyle=T,n.getDefaultTextStyle=g,n.getDefaultTransformStyle=u,n.normalizeAudio=c,n.normalizeElement=b,n.normalizeFill=m,n.normalizeGeometry=v,n.normalizeImage=y,n.normalizeOutline=h,n.normalizeShadow=S,n.normalizeText=z,n.normalizeTextContent=f,n.normalizeVideo=p,Object.defineProperty(n,Symbol.toStringTag,{value:"Module"})});
package/dist/index.mjs CHANGED
@@ -1,47 +1,53 @@
1
1
  function getDefaultLayoutStyle() {
2
2
  return {
3
- overflow: "visible",
4
- alignContent: "stretch",
5
- alignItems: "stretch",
6
- alignSelf: "auto",
7
- borderTop: "none",
8
- borderLeft: "none",
9
- borderRight: "none",
10
- borderBottom: "none",
11
- borderWidth: 0,
12
- border: "none",
13
- direction: "inherit",
14
- display: "flex",
15
- flex: 0,
16
- flexBasis: "auto",
17
- flexDirection: "row",
18
- flexGrow: 0,
19
- flexShrink: 1,
20
- flexWrap: "nowrap",
21
- height: "auto",
22
- justifyContent: "flex-start",
23
- gap: 0,
24
- marginTop: 0,
25
- marginLeft: 0,
26
- marginRight: 0,
27
- marginBottom: 0,
28
- margin: 0,
29
- maxHeight: 0,
30
- maxWidth: 0,
31
- minHeight: 0,
32
- minWidth: 0,
33
- paddingTop: 0,
34
- paddingLeft: 0,
35
- paddingRight: 0,
36
- paddingBottom: 0,
37
- padding: 0,
38
- top: 0,
39
- bottom: 0,
3
+ // box
4
+ overflow: void 0,
5
+ direction: void 0,
6
+ display: void 0,
7
+ boxSizing: void 0,
8
+ width: void 0,
9
+ height: void 0,
10
+ maxHeight: void 0,
11
+ maxWidth: void 0,
12
+ minHeight: void 0,
13
+ minWidth: void 0,
14
+ // position
15
+ position: void 0,
40
16
  left: 0,
41
- right: 0,
42
- position: "static",
43
- boxSizing: "content-box",
44
- width: "auto"
17
+ top: 0,
18
+ right: void 0,
19
+ bottom: void 0,
20
+ // border
21
+ borderTop: void 0,
22
+ borderLeft: void 0,
23
+ borderRight: void 0,
24
+ borderBottom: void 0,
25
+ borderWidth: 0,
26
+ border: void 0,
27
+ // flex
28
+ flex: void 0,
29
+ flexBasis: void 0,
30
+ flexDirection: void 0,
31
+ flexGrow: void 0,
32
+ flexShrink: void 0,
33
+ flexWrap: void 0,
34
+ justifyContent: void 0,
35
+ gap: void 0,
36
+ alignContent: void 0,
37
+ alignItems: void 0,
38
+ alignSelf: void 0,
39
+ // margin
40
+ marginTop: void 0,
41
+ marginLeft: void 0,
42
+ marginRight: void 0,
43
+ marginBottom: void 0,
44
+ margin: void 0,
45
+ // padding
46
+ paddingTop: void 0,
47
+ paddingLeft: void 0,
48
+ paddingRight: void 0,
49
+ paddingBottom: void 0,
50
+ padding: void 0
45
51
  };
46
52
  }
47
53
 
@@ -67,12 +73,9 @@ function getDefaultTransformStyle() {
67
73
 
68
74
  function getDefaultElementStyle() {
69
75
  return {
70
- ...getDefaultTransformStyle(),
71
76
  ...getDefaultLayoutStyle(),
77
+ ...getDefaultTransformStyle(),
72
78
  ...getDefaultShadowStyle(),
73
- visibility: "visible",
74
- filter: "none",
75
- opacity: 1,
76
79
  // background
77
80
  backgroundImage: "none",
78
81
  backgroundColor: "none",
@@ -80,6 +83,15 @@ function getDefaultElementStyle() {
80
83
  borderRadius: 0,
81
84
  borderColor: "none",
82
85
  borderStyle: "solid",
86
+ // outline
87
+ outlineWidth: 0,
88
+ outlineOffset: 0,
89
+ outlineColor: "#000000",
90
+ outlineStyle: "none",
91
+ // other
92
+ visibility: "visible",
93
+ filter: "none",
94
+ opacity: 1,
83
95
  pointerEvents: "auto"
84
96
  };
85
97
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "modern-idoc",
3
3
  "type": "module",
4
- "version": "0.2.10",
4
+ "version": "0.2.11",
5
5
  "packageManager": "pnpm@9.15.1",
6
6
  "description": "Intermediate document for modern codec libs",
7
7
  "author": "wxm",