modern-idoc 0.2.8 → 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,29 +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;
111
+ shadowColor?: string;
112
+ shadowOffsetX?: number;
113
+ shadowOffsetY?: number;
114
+ shadowBlur?: number;
108
115
  }
109
116
 
117
+ type StyleUnit = `${number}%` | number;
118
+ type Display = 'flex' | 'contents';
119
+ type Direction = 'inherit' | 'ltr' | 'rtl';
110
120
  type Overflow = 'hidden' | 'visible';
111
121
  type Visibility = 'hidden' | 'visible';
112
122
  type FontWeight = 'normal' | 'bold' | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900;
113
123
  type FontStyle = 'normal' | 'italic' | 'oblique' | `oblique ${string}`;
114
- type FontKerning = Noneable | 'auto' | 'normal';
124
+ type FontKerning = None | 'auto' | 'normal';
115
125
  type TextWrap = 'wrap' | 'nowrap';
116
126
  type TextAlign = 'center' | 'end' | 'left' | 'right' | 'start';
117
- type TextTransform = Noneable | 'uppercase' | 'lowercase';
127
+ type TextTransform = None | 'uppercase' | 'lowercase';
118
128
  type TextOrientation = 'mixed' | 'upright' | 'sideways-right' | 'sideways';
119
- type TextDecoration = Noneable | 'underline' | 'line-through' | 'overline';
129
+ type TextDecoration = None | 'underline' | 'line-through' | 'overline';
120
130
  type VerticalAlign = 'baseline' | 'top' | 'middle' | 'bottom' | 'sub' | 'super' | 'text-top' | 'text-bottom';
121
131
  type WritingMode = 'horizontal-tb' | 'vertical-lr' | 'vertical-rl';
122
132
  type Align = 'auto' | 'flex-start' | 'center' | 'flex-end' | 'stretch' | 'baseline' | 'space-between' | 'space-around' | 'space-evenly';
@@ -124,64 +134,64 @@ type FlexDirection = 'column' | 'column-reverse' | 'row' | 'row-reverse';
124
134
  type FlexWrap = 'nowrap' | 'wrap' | 'Wrap-reverse';
125
135
  type Justify = 'flex-start' | 'center' | 'flex-end' | 'space-between' | 'space-around' | 'space-evenly';
126
136
  type Position = 'static' | 'relative' | 'absolute';
127
- type BorderStyle = Noneable | 'dashed' | 'solid';
137
+ type BorderStyle = None | 'dashed' | 'solid';
128
138
  type BoxSizing = 'border-box' | 'content-box';
129
139
  type PointerEvents = 'auto' | 'none';
130
- type ListStyleType = Noneable | 'disc';
131
- type ListStyleImage = Noneable | string;
132
- type ListStyleColormap = Noneable | Record<string, string>;
133
- 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';
134
144
  type ListStylePosition = 'inside' | 'outside';
135
145
  type HighlightLine = TextDecoration | 'outline';
136
- type HighlightImage = Noneable | string;
137
- type HighlightReferImage = Noneable | string;
138
- type HighlightColormap = Noneable | Record<string, string>;
139
- type HighlightSize = Sizeable | 'cover';
140
- 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;
141
151
 
142
152
  interface LayoutStyleDeclaration {
143
- overflow: Overflow;
144
- alignContent: Align;
145
- alignItems: Align;
146
- alignSelf: Align;
147
- borderTop: string;
148
- borderLeft: string;
149
- borderRight: string;
150
- borderBottom: string;
151
- borderWidth: number;
152
- border: string;
153
- direction: 'inherit' | 'ltr' | 'rtl';
154
- display: 'none' | 'flex' | 'contents';
155
- flex: number;
156
- flexBasis: number | 'auto' | `${number}%`;
157
- flexDirection: FlexDirection;
158
- flexGrow: number;
159
- flexShrink: number;
160
- flexWrap: FlexWrap;
161
- height: number | 'auto' | `${number}%`;
162
- justifyContent: Justify;
163
- gap: number | `${number}%`;
164
- marginTop: number | 'auto' | `${number}%`;
165
- marginLeft: number | 'auto' | `${number}%`;
166
- marginRight: number | 'auto' | `${number}%`;
167
- marginBottom: number | 'auto' | `${number}%`;
168
- margin: number | 'auto' | `${number}%`;
169
- maxHeight: number | `${number}%`;
170
- maxWidth: number | `${number}%`;
171
- minHeight: number | `${number}%`;
172
- minWidth: number | `${number}%`;
173
- paddingTop: number | `${number}%`;
174
- paddingLeft: number | `${number}%`;
175
- paddingRight: number | `${number}%`;
176
- paddingBottom: number | `${number}%`;
177
- padding: number | `${number}%`;
178
- top: number | `${number}%`;
179
- bottom: number | `${number}%`;
180
- left: number | `${number}%`;
181
- right: number | `${number}%`;
182
- position: Position;
183
- boxSizing: BoxSizing;
184
- 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;
185
195
  }
186
196
 
187
197
  interface TransformStyleDeclaration {
@@ -192,19 +202,23 @@ interface TransformStyleDeclaration {
192
202
  skewY: number;
193
203
  translateX: number;
194
204
  translateY: number;
195
- transform: string;
205
+ transform: None | string;
196
206
  transformOrigin: string;
197
207
  }
198
208
 
199
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;
200
219
  visibility: Visibility;
201
220
  filter: string;
202
221
  opacity: number;
203
- backgroundImage: Noneable | string;
204
- backgroundColor: Noneable | string;
205
- borderRadius: number;
206
- borderColor: Noneable | string;
207
- borderStyle: BorderStyle;
208
222
  pointerEvents: PointerEvents;
209
223
  }
210
224
 
@@ -295,11 +309,12 @@ type TextProp = string | TextContent | (TextDeclaration & {
295
309
  content: TextContent;
296
310
  }) | TextDeclaration;
297
311
 
312
+ type VideoSource = string;
298
313
  interface VideoDeclaration {
299
- src: string;
314
+ src: VideoSource;
300
315
  opacity?: number;
301
316
  }
302
- type VideoProp = Noneable | string | VideoDeclaration;
317
+ type VideoProp = None | VideoSource | VideoDeclaration;
303
318
 
304
319
  interface IDOCElement extends IDOCNode {
305
320
  style?: StyleProp;
@@ -365,4 +380,4 @@ declare function normalizeTextContent(content?: TextContent): TextContentDeclara
365
380
 
366
381
  declare function normalizeVideo(video?: VideoProp): VideoDeclaration | undefined;
367
382
 
368
- 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,29 +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;
111
+ shadowColor?: string;
112
+ shadowOffsetX?: number;
113
+ shadowOffsetY?: number;
114
+ shadowBlur?: number;
108
115
  }
109
116
 
117
+ type StyleUnit = `${number}%` | number;
118
+ type Display = 'flex' | 'contents';
119
+ type Direction = 'inherit' | 'ltr' | 'rtl';
110
120
  type Overflow = 'hidden' | 'visible';
111
121
  type Visibility = 'hidden' | 'visible';
112
122
  type FontWeight = 'normal' | 'bold' | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900;
113
123
  type FontStyle = 'normal' | 'italic' | 'oblique' | `oblique ${string}`;
114
- type FontKerning = Noneable | 'auto' | 'normal';
124
+ type FontKerning = None | 'auto' | 'normal';
115
125
  type TextWrap = 'wrap' | 'nowrap';
116
126
  type TextAlign = 'center' | 'end' | 'left' | 'right' | 'start';
117
- type TextTransform = Noneable | 'uppercase' | 'lowercase';
127
+ type TextTransform = None | 'uppercase' | 'lowercase';
118
128
  type TextOrientation = 'mixed' | 'upright' | 'sideways-right' | 'sideways';
119
- type TextDecoration = Noneable | 'underline' | 'line-through' | 'overline';
129
+ type TextDecoration = None | 'underline' | 'line-through' | 'overline';
120
130
  type VerticalAlign = 'baseline' | 'top' | 'middle' | 'bottom' | 'sub' | 'super' | 'text-top' | 'text-bottom';
121
131
  type WritingMode = 'horizontal-tb' | 'vertical-lr' | 'vertical-rl';
122
132
  type Align = 'auto' | 'flex-start' | 'center' | 'flex-end' | 'stretch' | 'baseline' | 'space-between' | 'space-around' | 'space-evenly';
@@ -124,64 +134,64 @@ type FlexDirection = 'column' | 'column-reverse' | 'row' | 'row-reverse';
124
134
  type FlexWrap = 'nowrap' | 'wrap' | 'Wrap-reverse';
125
135
  type Justify = 'flex-start' | 'center' | 'flex-end' | 'space-between' | 'space-around' | 'space-evenly';
126
136
  type Position = 'static' | 'relative' | 'absolute';
127
- type BorderStyle = Noneable | 'dashed' | 'solid';
137
+ type BorderStyle = None | 'dashed' | 'solid';
128
138
  type BoxSizing = 'border-box' | 'content-box';
129
139
  type PointerEvents = 'auto' | 'none';
130
- type ListStyleType = Noneable | 'disc';
131
- type ListStyleImage = Noneable | string;
132
- type ListStyleColormap = Noneable | Record<string, string>;
133
- 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';
134
144
  type ListStylePosition = 'inside' | 'outside';
135
145
  type HighlightLine = TextDecoration | 'outline';
136
- type HighlightImage = Noneable | string;
137
- type HighlightReferImage = Noneable | string;
138
- type HighlightColormap = Noneable | Record<string, string>;
139
- type HighlightSize = Sizeable | 'cover';
140
- 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;
141
151
 
142
152
  interface LayoutStyleDeclaration {
143
- overflow: Overflow;
144
- alignContent: Align;
145
- alignItems: Align;
146
- alignSelf: Align;
147
- borderTop: string;
148
- borderLeft: string;
149
- borderRight: string;
150
- borderBottom: string;
151
- borderWidth: number;
152
- border: string;
153
- direction: 'inherit' | 'ltr' | 'rtl';
154
- display: 'none' | 'flex' | 'contents';
155
- flex: number;
156
- flexBasis: number | 'auto' | `${number}%`;
157
- flexDirection: FlexDirection;
158
- flexGrow: number;
159
- flexShrink: number;
160
- flexWrap: FlexWrap;
161
- height: number | 'auto' | `${number}%`;
162
- justifyContent: Justify;
163
- gap: number | `${number}%`;
164
- marginTop: number | 'auto' | `${number}%`;
165
- marginLeft: number | 'auto' | `${number}%`;
166
- marginRight: number | 'auto' | `${number}%`;
167
- marginBottom: number | 'auto' | `${number}%`;
168
- margin: number | 'auto' | `${number}%`;
169
- maxHeight: number | `${number}%`;
170
- maxWidth: number | `${number}%`;
171
- minHeight: number | `${number}%`;
172
- minWidth: number | `${number}%`;
173
- paddingTop: number | `${number}%`;
174
- paddingLeft: number | `${number}%`;
175
- paddingRight: number | `${number}%`;
176
- paddingBottom: number | `${number}%`;
177
- padding: number | `${number}%`;
178
- top: number | `${number}%`;
179
- bottom: number | `${number}%`;
180
- left: number | `${number}%`;
181
- right: number | `${number}%`;
182
- position: Position;
183
- boxSizing: BoxSizing;
184
- 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;
185
195
  }
186
196
 
187
197
  interface TransformStyleDeclaration {
@@ -192,19 +202,23 @@ interface TransformStyleDeclaration {
192
202
  skewY: number;
193
203
  translateX: number;
194
204
  translateY: number;
195
- transform: string;
205
+ transform: None | string;
196
206
  transformOrigin: string;
197
207
  }
198
208
 
199
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;
200
219
  visibility: Visibility;
201
220
  filter: string;
202
221
  opacity: number;
203
- backgroundImage: Noneable | string;
204
- backgroundColor: Noneable | string;
205
- borderRadius: number;
206
- borderColor: Noneable | string;
207
- borderStyle: BorderStyle;
208
222
  pointerEvents: PointerEvents;
209
223
  }
210
224
 
@@ -295,11 +309,12 @@ type TextProp = string | TextContent | (TextDeclaration & {
295
309
  content: TextContent;
296
310
  }) | TextDeclaration;
297
311
 
312
+ type VideoSource = string;
298
313
  interface VideoDeclaration {
299
- src: string;
314
+ src: VideoSource;
300
315
  opacity?: number;
301
316
  }
302
- type VideoProp = Noneable | string | VideoDeclaration;
317
+ type VideoProp = None | VideoSource | VideoDeclaration;
303
318
 
304
319
  interface IDOCElement extends IDOCNode {
305
320
  style?: StyleProp;
@@ -365,4 +380,4 @@ declare function normalizeTextContent(content?: TextContent): TextContentDeclara
365
380
 
366
381
  declare function normalizeVideo(video?: VideoProp): VideoDeclaration | undefined;
367
382
 
368
- 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,29 +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;
111
+ shadowColor?: string;
112
+ shadowOffsetX?: number;
113
+ shadowOffsetY?: number;
114
+ shadowBlur?: number;
108
115
  }
109
116
 
117
+ type StyleUnit = `${number}%` | number;
118
+ type Display = 'flex' | 'contents';
119
+ type Direction = 'inherit' | 'ltr' | 'rtl';
110
120
  type Overflow = 'hidden' | 'visible';
111
121
  type Visibility = 'hidden' | 'visible';
112
122
  type FontWeight = 'normal' | 'bold' | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900;
113
123
  type FontStyle = 'normal' | 'italic' | 'oblique' | `oblique ${string}`;
114
- type FontKerning = Noneable | 'auto' | 'normal';
124
+ type FontKerning = None | 'auto' | 'normal';
115
125
  type TextWrap = 'wrap' | 'nowrap';
116
126
  type TextAlign = 'center' | 'end' | 'left' | 'right' | 'start';
117
- type TextTransform = Noneable | 'uppercase' | 'lowercase';
127
+ type TextTransform = None | 'uppercase' | 'lowercase';
118
128
  type TextOrientation = 'mixed' | 'upright' | 'sideways-right' | 'sideways';
119
- type TextDecoration = Noneable | 'underline' | 'line-through' | 'overline';
129
+ type TextDecoration = None | 'underline' | 'line-through' | 'overline';
120
130
  type VerticalAlign = 'baseline' | 'top' | 'middle' | 'bottom' | 'sub' | 'super' | 'text-top' | 'text-bottom';
121
131
  type WritingMode = 'horizontal-tb' | 'vertical-lr' | 'vertical-rl';
122
132
  type Align = 'auto' | 'flex-start' | 'center' | 'flex-end' | 'stretch' | 'baseline' | 'space-between' | 'space-around' | 'space-evenly';
@@ -124,64 +134,64 @@ type FlexDirection = 'column' | 'column-reverse' | 'row' | 'row-reverse';
124
134
  type FlexWrap = 'nowrap' | 'wrap' | 'Wrap-reverse';
125
135
  type Justify = 'flex-start' | 'center' | 'flex-end' | 'space-between' | 'space-around' | 'space-evenly';
126
136
  type Position = 'static' | 'relative' | 'absolute';
127
- type BorderStyle = Noneable | 'dashed' | 'solid';
137
+ type BorderStyle = None | 'dashed' | 'solid';
128
138
  type BoxSizing = 'border-box' | 'content-box';
129
139
  type PointerEvents = 'auto' | 'none';
130
- type ListStyleType = Noneable | 'disc';
131
- type ListStyleImage = Noneable | string;
132
- type ListStyleColormap = Noneable | Record<string, string>;
133
- 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';
134
144
  type ListStylePosition = 'inside' | 'outside';
135
145
  type HighlightLine = TextDecoration | 'outline';
136
- type HighlightImage = Noneable | string;
137
- type HighlightReferImage = Noneable | string;
138
- type HighlightColormap = Noneable | Record<string, string>;
139
- type HighlightSize = Sizeable | 'cover';
140
- 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;
141
151
 
142
152
  interface LayoutStyleDeclaration {
143
- overflow: Overflow;
144
- alignContent: Align;
145
- alignItems: Align;
146
- alignSelf: Align;
147
- borderTop: string;
148
- borderLeft: string;
149
- borderRight: string;
150
- borderBottom: string;
151
- borderWidth: number;
152
- border: string;
153
- direction: 'inherit' | 'ltr' | 'rtl';
154
- display: 'none' | 'flex' | 'contents';
155
- flex: number;
156
- flexBasis: number | 'auto' | `${number}%`;
157
- flexDirection: FlexDirection;
158
- flexGrow: number;
159
- flexShrink: number;
160
- flexWrap: FlexWrap;
161
- height: number | 'auto' | `${number}%`;
162
- justifyContent: Justify;
163
- gap: number | `${number}%`;
164
- marginTop: number | 'auto' | `${number}%`;
165
- marginLeft: number | 'auto' | `${number}%`;
166
- marginRight: number | 'auto' | `${number}%`;
167
- marginBottom: number | 'auto' | `${number}%`;
168
- margin: number | 'auto' | `${number}%`;
169
- maxHeight: number | `${number}%`;
170
- maxWidth: number | `${number}%`;
171
- minHeight: number | `${number}%`;
172
- minWidth: number | `${number}%`;
173
- paddingTop: number | `${number}%`;
174
- paddingLeft: number | `${number}%`;
175
- paddingRight: number | `${number}%`;
176
- paddingBottom: number | `${number}%`;
177
- padding: number | `${number}%`;
178
- top: number | `${number}%`;
179
- bottom: number | `${number}%`;
180
- left: number | `${number}%`;
181
- right: number | `${number}%`;
182
- position: Position;
183
- boxSizing: BoxSizing;
184
- 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;
185
195
  }
186
196
 
187
197
  interface TransformStyleDeclaration {
@@ -192,19 +202,23 @@ interface TransformStyleDeclaration {
192
202
  skewY: number;
193
203
  translateX: number;
194
204
  translateY: number;
195
- transform: string;
205
+ transform: None | string;
196
206
  transformOrigin: string;
197
207
  }
198
208
 
199
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;
200
219
  visibility: Visibility;
201
220
  filter: string;
202
221
  opacity: number;
203
- backgroundImage: Noneable | string;
204
- backgroundColor: Noneable | string;
205
- borderRadius: number;
206
- borderColor: Noneable | string;
207
- borderStyle: BorderStyle;
208
222
  pointerEvents: PointerEvents;
209
223
  }
210
224
 
@@ -295,11 +309,12 @@ type TextProp = string | TextContent | (TextDeclaration & {
295
309
  content: TextContent;
296
310
  }) | TextDeclaration;
297
311
 
312
+ type VideoSource = string;
298
313
  interface VideoDeclaration {
299
- src: string;
314
+ src: VideoSource;
300
315
  opacity?: number;
301
316
  }
302
- type VideoProp = Noneable | string | VideoDeclaration;
317
+ type VideoProp = None | VideoSource | VideoDeclaration;
303
318
 
304
319
  interface IDOCElement extends IDOCNode {
305
320
  style?: StyleProp;
@@ -365,4 +380,4 @@ declare function normalizeTextContent(content?: TextContent): TextContentDeclara
365
380
 
366
381
  declare function normalizeVideo(video?: VideoProp): VideoDeclaration | undefined;
367
382
 
368
- 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.8",
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",