modern-idoc 0.6.3 → 0.6.5

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
@@ -725,7 +725,13 @@ function normalizeGradientFill(fill) {
725
725
  }
726
726
 
727
727
  function normalizeImageFill(fill) {
728
- return fill;
728
+ let obj;
729
+ if (typeof fill === "string") {
730
+ obj = { image: fill };
731
+ } else {
732
+ obj = fill;
733
+ }
734
+ return obj;
729
735
  }
730
736
 
731
737
  function normalizePresetFill(fill) {
@@ -742,27 +748,39 @@ function normalizePresetFill(fill) {
742
748
  };
743
749
  }
744
750
 
751
+ function isColorFillObject(fill) {
752
+ return !isNone(fill.color);
753
+ }
754
+ function isColorFill(fill) {
755
+ return typeof fill === "string" ? isColor(fill) : isColorFillObject(fill);
756
+ }
757
+ function isGradientFillObject(fill) {
758
+ return !isNone(fill.image) && isGradient(fill.image);
759
+ }
760
+ function isGradientFill(fill) {
761
+ return typeof fill === "string" ? isGradient(fill) : isGradientFillObject(fill);
762
+ }
763
+ function isImageFillObject(fill) {
764
+ return !isNone(fill.image) && !isGradient(fill.image);
765
+ }
766
+ function isImageFill(fill) {
767
+ return typeof fill === "string" ? !isGradient(fill) : isImageFillObject(fill);
768
+ }
769
+ function isPresetFillObject(fill) {
770
+ return !isNone(fill.preset);
771
+ }
772
+ function isPresetFill(fill) {
773
+ return typeof fill === "string" ? false : isPresetFillObject(fill);
774
+ }
745
775
  function normalizeFill(fill) {
746
- if (typeof fill === "string") {
747
- if (isColor(fill)) {
748
- return normalizeColorFill({ color: fill });
749
- } else if (isGradient(fill)) {
750
- return normalizeGradientFill({ image: fill });
751
- } else {
752
- return normalizeImageFill({ image: fill });
753
- }
754
- } else {
755
- if (!isNone(fill.color)) {
756
- return normalizeColorFill(fill);
757
- } else if (!isNone(fill.image)) {
758
- if (isGradient(fill.image)) {
759
- return normalizeGradientFill(fill);
760
- } else {
761
- return normalizeImageFill(fill);
762
- }
763
- } else if (isNone(fill.preset)) {
764
- return normalizePresetFill(fill);
765
- }
776
+ if (isColorFill(fill)) {
777
+ return normalizeColorFill(fill);
778
+ } else if (isGradientFill(fill)) {
779
+ return normalizeGradientFill(fill);
780
+ } else if (isImageFill(fill)) {
781
+ return normalizeImageFill(fill);
782
+ } else if (isPresetFill(fill)) {
783
+ return normalizePresetFill(fill);
766
784
  }
767
785
  throw new Error("Unknown fill property object");
768
786
  }
@@ -1177,8 +1195,16 @@ exports.getDefaultTextLineStyle = getDefaultTextLineStyle;
1177
1195
  exports.getDefaultTextStyle = getDefaultTextStyle;
1178
1196
  exports.getDefaultTransformStyle = getDefaultTransformStyle;
1179
1197
  exports.isColor = isColor;
1198
+ exports.isColorFill = isColorFill;
1199
+ exports.isColorFillObject = isColorFillObject;
1180
1200
  exports.isGradient = isGradient;
1201
+ exports.isGradientFill = isGradientFill;
1202
+ exports.isGradientFillObject = isGradientFillObject;
1203
+ exports.isImageFill = isImageFill;
1204
+ exports.isImageFillObject = isImageFillObject;
1181
1205
  exports.isNone = isNone;
1206
+ exports.isPresetFill = isPresetFill;
1207
+ exports.isPresetFillObject = isPresetFillObject;
1182
1208
  exports.normalizeAudio = normalizeAudio;
1183
1209
  exports.normalizeBackground = normalizeBackground;
1184
1210
  exports.normalizeColor = normalizeColor;
package/dist/index.d.cts CHANGED
@@ -273,12 +273,14 @@ interface ImageFillObject {
273
273
  opacity?: number;
274
274
  rotateWithShape?: boolean;
275
275
  }
276
+ type ImageFill = string | ImageFillObject;
276
277
  interface NormalizedImageFill extends ImageFillObject {
277
278
  }
278
- declare function normalizeImageFill(fill: ImageFillObject): NormalizedImageFill;
279
+ declare function normalizeImageFill(fill: ImageFill): NormalizedImageFill;
279
280
 
280
281
  type None = undefined | null | 'none';
281
282
  type WithNone<T> = T | None;
283
+ type WithStyleNone<T> = T | 'none';
282
284
 
283
285
  interface PresetFillObject {
284
286
  preset: string;
@@ -295,6 +297,14 @@ declare function normalizePresetFill(fill: PresetFill): NormalizedPresetFill;
295
297
  type FillObject = Partial<ColorFillObject> & Partial<GradientFillObject> & Partial<ImageFillObject> & Partial<PresetFillObject>;
296
298
  type Fill = string | FillObject;
297
299
  type NormalizedFill = Partial<NormalizedColorFill> & Partial<NormalizedGradientFill> & Partial<NormalizedImageFill> & Partial<NormalizedPresetFill>;
300
+ declare function isColorFillObject(fill: FillObject): fill is ColorFillObject;
301
+ declare function isColorFill(fill: Fill): fill is ColorFill;
302
+ declare function isGradientFillObject(fill: FillObject): fill is GradientFillObject;
303
+ declare function isGradientFill(fill: Fill): fill is GradientFill;
304
+ declare function isImageFillObject(fill: FillObject): fill is ImageFillObject;
305
+ declare function isImageFill(fill: Fill): fill is ImageFill;
306
+ declare function isPresetFillObject(fill: FillObject): fill is PresetFillObject;
307
+ declare function isPresetFill(fill: Fill): fill is PresetFill;
298
308
  declare function normalizeFill(fill: Fill): NormalizedFill;
299
309
 
300
310
  interface NormalizedBaseBackground {
@@ -312,7 +322,7 @@ interface NormalizedInnerShadow {
312
322
  blurRadius: number;
313
323
  }
314
324
  type InnerShadowObject = Partial<NormalizedInnerShadow> & {
315
- color: WithNone<Color>;
325
+ color?: WithNone<Color>;
316
326
  };
317
327
  type InnerShadow = InnerShadowObject;
318
328
  declare function getDefaultInnerShadow(): NormalizedInnerShadow;
@@ -390,7 +400,7 @@ interface NormalizedOutline extends NormalizedOutlineFill {
390
400
  tailEnd?: TailEnd;
391
401
  }
392
402
  type OutlineObject = Partial<NormalizedOutline> & {
393
- color: WithNone<Color>;
403
+ color?: WithNone<Color>;
394
404
  };
395
405
  type Outline = string | OutlineObject;
396
406
  declare function normalizeOutline(outline: Outline): NormalizedOutline;
@@ -403,7 +413,7 @@ interface NormalizedShadow {
403
413
  blur?: number;
404
414
  }
405
415
  type ShadowObject = Partial<NormalizedShadow> & {
406
- color: WithNone<Color>;
416
+ color?: WithNone<Color>;
407
417
  };
408
418
  type Shadow = BoxShadow | ShadowObject;
409
419
  declare function normalizeShadow(shadow: Shadow): NormalizedShadow;
@@ -458,12 +468,12 @@ type Overflow = 'hidden' | 'visible';
458
468
  type Visibility = 'hidden' | 'visible';
459
469
  type FontWeight = 'normal' | 'bold' | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900;
460
470
  type FontStyle = 'normal' | 'italic' | 'oblique' | `oblique ${string}`;
461
- type FontKerning = WithNone<'auto' | 'normal'>;
471
+ type FontKerning = WithStyleNone<'auto' | 'normal'>;
462
472
  type TextWrap = 'wrap' | 'nowrap';
463
- type TextAlign = WithNone<'center' | 'end' | 'left' | 'right' | 'start' | 'justify'>;
464
- type TextTransform = WithNone<'uppercase' | 'lowercase'>;
473
+ type TextAlign = WithStyleNone<'center' | 'end' | 'left' | 'right' | 'start' | 'justify'>;
474
+ type TextTransform = WithStyleNone<'uppercase' | 'lowercase'>;
465
475
  type TextOrientation = 'mixed' | 'upright' | 'sideways-right' | 'sideways';
466
- type TextDecoration = WithNone<'underline' | 'line-through' | 'overline'>;
476
+ type TextDecoration = WithStyleNone<'underline' | 'line-through' | 'overline'>;
467
477
  type VerticalAlign = 'baseline' | 'top' | 'middle' | 'bottom' | 'sub' | 'super' | 'text-top' | 'text-bottom';
468
478
  type WritingMode = 'horizontal-tb' | 'vertical-lr' | 'vertical-rl';
469
479
  type Align = 'auto' | 'flex-start' | 'center' | 'flex-end' | 'stretch' | 'baseline' | 'space-between' | 'space-around' | 'space-evenly';
@@ -471,18 +481,18 @@ type FlexDirection = 'column' | 'column-reverse' | 'row' | 'row-reverse';
471
481
  type FlexWrap = 'nowrap' | 'wrap' | 'Wrap-reverse';
472
482
  type Justify = 'flex-start' | 'center' | 'flex-end' | 'space-between' | 'space-around' | 'space-evenly';
473
483
  type Position = 'static' | 'relative' | 'absolute';
474
- type BorderStyle = WithNone<'dashed' | 'solid'>;
484
+ type BorderStyle = WithStyleNone<'dashed' | 'solid'>;
475
485
  type BoxSizing = 'border-box' | 'content-box';
476
486
  type PointerEvents = 'auto' | 'none';
477
- type ListStyleType = WithNone<'disc'>;
478
- type ListStyleImage = WithNone<string>;
479
- type ListStyleColormap = WithNone<Record<string, string>>;
487
+ type ListStyleType = WithStyleNone<'disc'>;
488
+ type ListStyleImage = WithStyleNone<string>;
489
+ type ListStyleColormap = WithStyleNone<Record<string, string>>;
480
490
  type ListStyleSize = StyleUnit | `${number}rem` | 'cover';
481
491
  type ListStylePosition = 'inside' | 'outside';
482
492
  type HighlightLine = TextDecoration | 'outline';
483
- type HighlightImage = WithNone<string>;
484
- type HighlightReferImage = WithNone<string>;
485
- type HighlightColormap = WithNone<Record<string, string>>;
493
+ type HighlightImage = WithStyleNone<string>;
494
+ type HighlightReferImage = WithStyleNone<string>;
495
+ type HighlightColormap = WithStyleNone<Record<string, string>>;
486
496
  type HighlightSize = StyleUnit | `${number}rem` | 'cover';
487
497
  type HighlightThickness = StyleUnit;
488
498
 
@@ -519,11 +529,11 @@ interface NormalizedLayoutStyle {
519
529
  alignSelf: Align;
520
530
  justifyContent: Justify;
521
531
  gap: StyleUnit;
522
- marginTop: WithNone<StyleUnit | 'auto'>;
523
- marginLeft: WithNone<StyleUnit | 'auto'>;
524
- marginRight: WithNone<StyleUnit | 'auto'>;
525
- marginBottom: WithNone<StyleUnit | 'auto'>;
526
- margin: WithNone<StyleUnit | 'auto'>;
532
+ marginTop: WithStyleNone<StyleUnit | 'auto'>;
533
+ marginLeft: WithStyleNone<StyleUnit | 'auto'>;
534
+ marginRight: WithStyleNone<StyleUnit | 'auto'>;
535
+ marginBottom: WithStyleNone<StyleUnit | 'auto'>;
536
+ margin: WithStyleNone<StyleUnit | 'auto'>;
527
537
  paddingTop: StyleUnit;
528
538
  paddingLeft: StyleUnit;
529
539
  paddingRight: StyleUnit;
@@ -540,29 +550,29 @@ interface NormalizedTransformStyle {
540
550
  skewY: number;
541
551
  translateX: number;
542
552
  translateY: number;
543
- transform: WithNone<string>;
553
+ transform: WithStyleNone<string>;
544
554
  transformOrigin: string;
545
555
  }
546
556
  declare function getDefaultTransformStyle(): NormalizedTransformStyle;
547
557
 
548
558
  type BackgroundSize = 'contain' | 'cover' | string | 'stretch' | 'rigid';
549
559
  type NormalizedElementStyle = Partial<NormalizedLayoutStyle> & NormalizedTransformStyle & NormalizedShadowStyle & {
550
- backgroundImage: WithNone<string>;
560
+ backgroundImage: WithStyleNone<string>;
551
561
  backgroundSize: BackgroundSize;
552
- backgroundColor: WithNone<NormalizedColor>;
553
- backgroundColormap: WithNone<Record<string, string>>;
562
+ backgroundColor: WithStyleNone<NormalizedColor>;
563
+ backgroundColormap: WithStyleNone<Record<string, string>>;
554
564
  borderRadius: number;
555
- borderColor: WithNone<NormalizedColor>;
565
+ borderColor: WithStyleNone<NormalizedColor>;
556
566
  borderStyle: BorderStyle;
557
567
  outlineWidth: number;
558
568
  outlineOffset: number;
559
- outlineColor: WithNone<NormalizedColor>;
569
+ outlineColor: WithStyleNone<NormalizedColor>;
560
570
  outlineStyle: string;
561
571
  visibility: Visibility;
562
572
  filter: string;
563
573
  opacity: number;
564
574
  pointerEvents: PointerEvents;
565
- maskImage: WithNone<string>;
575
+ maskImage: WithStyleNone<string>;
566
576
  };
567
577
  declare function getDefaultElementStyle(): NormalizedElementStyle;
568
578
 
@@ -634,14 +644,18 @@ interface NormalizedTextDrawStyle {
634
644
  type NormalizedTextStyle = NormalizedTextLineStyle & NormalizedTextInlineStyle & NormalizedTextDrawStyle;
635
645
  declare function getDefaultTextStyle(): Required<NormalizedTextStyle>;
636
646
 
637
- interface NormalizedStyle extends NormalizedTextStyle, NormalizedElementStyle {
638
- }
647
+ type NormalizedStyle = NormalizedTextStyle & NormalizedElementStyle & {
648
+ fill?: NormalizedFill;
649
+ outline?: NormalizedOutline;
650
+ };
639
651
  type StyleObject = Partial<NormalizedStyle> & {
640
- color?: WithNone<Color>;
641
- backgroundColor?: WithNone<Color>;
642
- borderColor?: WithNone<Color>;
643
- outlineColor?: WithNone<Color>;
644
- shadowColor?: WithNone<Color>;
652
+ color?: WithStyleNone<Color>;
653
+ backgroundColor?: WithStyleNone<Color>;
654
+ borderColor?: WithStyleNone<Color>;
655
+ outlineColor?: WithStyleNone<Color>;
656
+ shadowColor?: WithStyleNone<Color>;
657
+ fill?: Fill;
658
+ outline?: Outline;
645
659
  };
646
660
  type Style = StyleObject;
647
661
  declare function normalizeStyle(style: Style): Partial<NormalizedStyle>;
@@ -716,5 +730,5 @@ declare function isNone<T>(value: T): value is Extract<T, null | undefined | 'no
716
730
  declare function round(number: number, digits?: number, base?: number): number;
717
731
  declare function clearUndef<T>(obj: T, deep?: boolean): T;
718
732
 
719
- export { clearUndef, defaultColor, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultInnerShadow, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOuterShadow, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, isColor, isGradient, isNone, normalizeAudio, normalizeBackground, normalizeColor, normalizeColorFill, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeInnerShadow, normalizeOuterShadow, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeSoftEdge, normalizeStyle, normalizeText, normalizeTextContent, normalizeVideo, parseColor, parseGradient, round, stringifyGradient };
720
- export type { Align, AngularNode, Audio, Background, BackgroundObject, BackgroundSize, BorderStyle, BoxShadow, BoxSizing, CmykColor, CmykaColor, Color, ColorFill, ColorFillObject, ColorStop, ColorStopNode, DefaultRadialNode, Direction, DirectionalNode, Display, Document, Effect, EffectObject, Element, EmNode, ExtentKeywordNode, Fill, FillObject, FillRule, FlexDirection, FlexWrap, FontKerning, FontStyle, FontWeight, Foreground, ForegroundObject, FragmentContent, GradientFill, GradientFillObject, GradientNode, HeadEnd, Hex8Color, HexNode, HighlightColormap, HighlightImage, HighlightLine, HighlightReferImage, HighlightSize, HighlightThickness, HslColor, HslaColor, HsvColor, HsvaColor, HwbColor, HwbaColor, ImageFillCropRect, ImageFillObject, ImageFillStretchRect, ImageFillTile, InnerShadow, InnerShadowObject, Justify, LabColor, LabaColor, LchColor, LchaColor, LineEndSize, LineEndType, LinearGradient, LinearGradientNode, LinearGradientWithType, ListStyleColormap, ListStyleImage, ListStylePosition, ListStyleSize, ListStyleType, LiteralNode, Meta, Node, None, NormalizedAudio, NormalizedBackground, NormalizedBaseBackground, NormalizedBaseForeground, NormalizedBaseOuterShadow, NormalizedColor, NormalizedColorFill, NormalizedDocument, NormalizedEffect, NormalizedElement, NormalizedElementStyle, NormalizedFill, NormalizedForeground, NormalizedGradientFill, NormalizedHighlight, NormalizedHighlightStyle, NormalizedImageFill, NormalizedInnerShadow, NormalizedLayoutStyle, NormalizedListStyle, NormalizedListStyleStyle, NormalizedOuterShadow, NormalizedOutline, NormalizedOutlineFill, NormalizedPresetFill, NormalizedShadow, NormalizedShadowStyle, NormalizedShape, NormalizedSoftEdge, NormalizedStyle, NormalizedText, NormalizedTextContent, NormalizedTextDrawStyle, NormalizedTextInlineStyle, NormalizedTextLineStyle, NormalizedTextStyle, NormalizedTransformStyle, NormalizedVideo, ObjectColor, OuterShadow, OuterShadowObject, Outline, OutlineObject, OutlineStyle, Overflow, ParagraphContent, PercentNode, PointerEvents, Position, PositionKeywordNode, PositionNode, PresetFill, PresetFillObject, PxNode, RadialGradient, RadialGradientNode, RadialGradientWithType, RepeatingLinearGradientNode, RepeatingRadialGradientNode, RgbColor, RgbNode, RgbaColor, RgbaNode, SVGPathData, Shadow, ShadowObject, Shape, ShapeNode, ShapePath, ShapePathStyle, SoftEdge, StrokeLinecap, StrokeLinejoin, Style, StyleObject, StyleUnit, TailEnd, Text, TextAlign, TextContent, TextContentFlat, TextDecoration, TextOrientation, TextTransform, TextWrap, Uint32Color, VerticalAlign, Video, Visibility, WithNone, WritingMode, XyzColor, XyzaColor };
733
+ export { clearUndef, defaultColor, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultInnerShadow, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOuterShadow, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, isColor, isColorFill, isColorFillObject, isGradient, isGradientFill, isGradientFillObject, isImageFill, isImageFillObject, isNone, isPresetFill, isPresetFillObject, normalizeAudio, normalizeBackground, normalizeColor, normalizeColorFill, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeInnerShadow, normalizeOuterShadow, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeSoftEdge, normalizeStyle, normalizeText, normalizeTextContent, normalizeVideo, parseColor, parseGradient, round, stringifyGradient };
734
+ export type { Align, AngularNode, Audio, Background, BackgroundObject, BackgroundSize, BorderStyle, BoxShadow, BoxSizing, CmykColor, CmykaColor, Color, ColorFill, ColorFillObject, ColorStop, ColorStopNode, DefaultRadialNode, Direction, DirectionalNode, Display, Document, Effect, EffectObject, Element, EmNode, ExtentKeywordNode, Fill, FillObject, FillRule, FlexDirection, FlexWrap, FontKerning, FontStyle, FontWeight, Foreground, ForegroundObject, FragmentContent, GradientFill, GradientFillObject, GradientNode, HeadEnd, Hex8Color, HexNode, HighlightColormap, HighlightImage, HighlightLine, HighlightReferImage, HighlightSize, HighlightThickness, HslColor, HslaColor, HsvColor, HsvaColor, HwbColor, HwbaColor, ImageFill, ImageFillCropRect, ImageFillObject, ImageFillStretchRect, ImageFillTile, InnerShadow, InnerShadowObject, Justify, LabColor, LabaColor, LchColor, LchaColor, LineEndSize, LineEndType, LinearGradient, LinearGradientNode, LinearGradientWithType, ListStyleColormap, ListStyleImage, ListStylePosition, ListStyleSize, ListStyleType, LiteralNode, Meta, Node, None, NormalizedAudio, NormalizedBackground, NormalizedBaseBackground, NormalizedBaseForeground, NormalizedBaseOuterShadow, NormalizedColor, NormalizedColorFill, NormalizedDocument, NormalizedEffect, NormalizedElement, NormalizedElementStyle, NormalizedFill, NormalizedForeground, NormalizedGradientFill, NormalizedHighlight, NormalizedHighlightStyle, NormalizedImageFill, NormalizedInnerShadow, NormalizedLayoutStyle, NormalizedListStyle, NormalizedListStyleStyle, NormalizedOuterShadow, NormalizedOutline, NormalizedOutlineFill, NormalizedPresetFill, NormalizedShadow, NormalizedShadowStyle, NormalizedShape, NormalizedSoftEdge, NormalizedStyle, NormalizedText, NormalizedTextContent, NormalizedTextDrawStyle, NormalizedTextInlineStyle, NormalizedTextLineStyle, NormalizedTextStyle, NormalizedTransformStyle, NormalizedVideo, ObjectColor, OuterShadow, OuterShadowObject, Outline, OutlineObject, OutlineStyle, Overflow, ParagraphContent, PercentNode, PointerEvents, Position, PositionKeywordNode, PositionNode, PresetFill, PresetFillObject, PxNode, RadialGradient, RadialGradientNode, RadialGradientWithType, RepeatingLinearGradientNode, RepeatingRadialGradientNode, RgbColor, RgbNode, RgbaColor, RgbaNode, SVGPathData, Shadow, ShadowObject, Shape, ShapeNode, ShapePath, ShapePathStyle, SoftEdge, StrokeLinecap, StrokeLinejoin, Style, StyleObject, StyleUnit, TailEnd, Text, TextAlign, TextContent, TextContentFlat, TextDecoration, TextOrientation, TextTransform, TextWrap, Uint32Color, VerticalAlign, Video, Visibility, WithNone, WithStyleNone, WritingMode, XyzColor, XyzaColor };
package/dist/index.d.mts CHANGED
@@ -273,12 +273,14 @@ interface ImageFillObject {
273
273
  opacity?: number;
274
274
  rotateWithShape?: boolean;
275
275
  }
276
+ type ImageFill = string | ImageFillObject;
276
277
  interface NormalizedImageFill extends ImageFillObject {
277
278
  }
278
- declare function normalizeImageFill(fill: ImageFillObject): NormalizedImageFill;
279
+ declare function normalizeImageFill(fill: ImageFill): NormalizedImageFill;
279
280
 
280
281
  type None = undefined | null | 'none';
281
282
  type WithNone<T> = T | None;
283
+ type WithStyleNone<T> = T | 'none';
282
284
 
283
285
  interface PresetFillObject {
284
286
  preset: string;
@@ -295,6 +297,14 @@ declare function normalizePresetFill(fill: PresetFill): NormalizedPresetFill;
295
297
  type FillObject = Partial<ColorFillObject> & Partial<GradientFillObject> & Partial<ImageFillObject> & Partial<PresetFillObject>;
296
298
  type Fill = string | FillObject;
297
299
  type NormalizedFill = Partial<NormalizedColorFill> & Partial<NormalizedGradientFill> & Partial<NormalizedImageFill> & Partial<NormalizedPresetFill>;
300
+ declare function isColorFillObject(fill: FillObject): fill is ColorFillObject;
301
+ declare function isColorFill(fill: Fill): fill is ColorFill;
302
+ declare function isGradientFillObject(fill: FillObject): fill is GradientFillObject;
303
+ declare function isGradientFill(fill: Fill): fill is GradientFill;
304
+ declare function isImageFillObject(fill: FillObject): fill is ImageFillObject;
305
+ declare function isImageFill(fill: Fill): fill is ImageFill;
306
+ declare function isPresetFillObject(fill: FillObject): fill is PresetFillObject;
307
+ declare function isPresetFill(fill: Fill): fill is PresetFill;
298
308
  declare function normalizeFill(fill: Fill): NormalizedFill;
299
309
 
300
310
  interface NormalizedBaseBackground {
@@ -312,7 +322,7 @@ interface NormalizedInnerShadow {
312
322
  blurRadius: number;
313
323
  }
314
324
  type InnerShadowObject = Partial<NormalizedInnerShadow> & {
315
- color: WithNone<Color>;
325
+ color?: WithNone<Color>;
316
326
  };
317
327
  type InnerShadow = InnerShadowObject;
318
328
  declare function getDefaultInnerShadow(): NormalizedInnerShadow;
@@ -390,7 +400,7 @@ interface NormalizedOutline extends NormalizedOutlineFill {
390
400
  tailEnd?: TailEnd;
391
401
  }
392
402
  type OutlineObject = Partial<NormalizedOutline> & {
393
- color: WithNone<Color>;
403
+ color?: WithNone<Color>;
394
404
  };
395
405
  type Outline = string | OutlineObject;
396
406
  declare function normalizeOutline(outline: Outline): NormalizedOutline;
@@ -403,7 +413,7 @@ interface NormalizedShadow {
403
413
  blur?: number;
404
414
  }
405
415
  type ShadowObject = Partial<NormalizedShadow> & {
406
- color: WithNone<Color>;
416
+ color?: WithNone<Color>;
407
417
  };
408
418
  type Shadow = BoxShadow | ShadowObject;
409
419
  declare function normalizeShadow(shadow: Shadow): NormalizedShadow;
@@ -458,12 +468,12 @@ type Overflow = 'hidden' | 'visible';
458
468
  type Visibility = 'hidden' | 'visible';
459
469
  type FontWeight = 'normal' | 'bold' | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900;
460
470
  type FontStyle = 'normal' | 'italic' | 'oblique' | `oblique ${string}`;
461
- type FontKerning = WithNone<'auto' | 'normal'>;
471
+ type FontKerning = WithStyleNone<'auto' | 'normal'>;
462
472
  type TextWrap = 'wrap' | 'nowrap';
463
- type TextAlign = WithNone<'center' | 'end' | 'left' | 'right' | 'start' | 'justify'>;
464
- type TextTransform = WithNone<'uppercase' | 'lowercase'>;
473
+ type TextAlign = WithStyleNone<'center' | 'end' | 'left' | 'right' | 'start' | 'justify'>;
474
+ type TextTransform = WithStyleNone<'uppercase' | 'lowercase'>;
465
475
  type TextOrientation = 'mixed' | 'upright' | 'sideways-right' | 'sideways';
466
- type TextDecoration = WithNone<'underline' | 'line-through' | 'overline'>;
476
+ type TextDecoration = WithStyleNone<'underline' | 'line-through' | 'overline'>;
467
477
  type VerticalAlign = 'baseline' | 'top' | 'middle' | 'bottom' | 'sub' | 'super' | 'text-top' | 'text-bottom';
468
478
  type WritingMode = 'horizontal-tb' | 'vertical-lr' | 'vertical-rl';
469
479
  type Align = 'auto' | 'flex-start' | 'center' | 'flex-end' | 'stretch' | 'baseline' | 'space-between' | 'space-around' | 'space-evenly';
@@ -471,18 +481,18 @@ type FlexDirection = 'column' | 'column-reverse' | 'row' | 'row-reverse';
471
481
  type FlexWrap = 'nowrap' | 'wrap' | 'Wrap-reverse';
472
482
  type Justify = 'flex-start' | 'center' | 'flex-end' | 'space-between' | 'space-around' | 'space-evenly';
473
483
  type Position = 'static' | 'relative' | 'absolute';
474
- type BorderStyle = WithNone<'dashed' | 'solid'>;
484
+ type BorderStyle = WithStyleNone<'dashed' | 'solid'>;
475
485
  type BoxSizing = 'border-box' | 'content-box';
476
486
  type PointerEvents = 'auto' | 'none';
477
- type ListStyleType = WithNone<'disc'>;
478
- type ListStyleImage = WithNone<string>;
479
- type ListStyleColormap = WithNone<Record<string, string>>;
487
+ type ListStyleType = WithStyleNone<'disc'>;
488
+ type ListStyleImage = WithStyleNone<string>;
489
+ type ListStyleColormap = WithStyleNone<Record<string, string>>;
480
490
  type ListStyleSize = StyleUnit | `${number}rem` | 'cover';
481
491
  type ListStylePosition = 'inside' | 'outside';
482
492
  type HighlightLine = TextDecoration | 'outline';
483
- type HighlightImage = WithNone<string>;
484
- type HighlightReferImage = WithNone<string>;
485
- type HighlightColormap = WithNone<Record<string, string>>;
493
+ type HighlightImage = WithStyleNone<string>;
494
+ type HighlightReferImage = WithStyleNone<string>;
495
+ type HighlightColormap = WithStyleNone<Record<string, string>>;
486
496
  type HighlightSize = StyleUnit | `${number}rem` | 'cover';
487
497
  type HighlightThickness = StyleUnit;
488
498
 
@@ -519,11 +529,11 @@ interface NormalizedLayoutStyle {
519
529
  alignSelf: Align;
520
530
  justifyContent: Justify;
521
531
  gap: StyleUnit;
522
- marginTop: WithNone<StyleUnit | 'auto'>;
523
- marginLeft: WithNone<StyleUnit | 'auto'>;
524
- marginRight: WithNone<StyleUnit | 'auto'>;
525
- marginBottom: WithNone<StyleUnit | 'auto'>;
526
- margin: WithNone<StyleUnit | 'auto'>;
532
+ marginTop: WithStyleNone<StyleUnit | 'auto'>;
533
+ marginLeft: WithStyleNone<StyleUnit | 'auto'>;
534
+ marginRight: WithStyleNone<StyleUnit | 'auto'>;
535
+ marginBottom: WithStyleNone<StyleUnit | 'auto'>;
536
+ margin: WithStyleNone<StyleUnit | 'auto'>;
527
537
  paddingTop: StyleUnit;
528
538
  paddingLeft: StyleUnit;
529
539
  paddingRight: StyleUnit;
@@ -540,29 +550,29 @@ interface NormalizedTransformStyle {
540
550
  skewY: number;
541
551
  translateX: number;
542
552
  translateY: number;
543
- transform: WithNone<string>;
553
+ transform: WithStyleNone<string>;
544
554
  transformOrigin: string;
545
555
  }
546
556
  declare function getDefaultTransformStyle(): NormalizedTransformStyle;
547
557
 
548
558
  type BackgroundSize = 'contain' | 'cover' | string | 'stretch' | 'rigid';
549
559
  type NormalizedElementStyle = Partial<NormalizedLayoutStyle> & NormalizedTransformStyle & NormalizedShadowStyle & {
550
- backgroundImage: WithNone<string>;
560
+ backgroundImage: WithStyleNone<string>;
551
561
  backgroundSize: BackgroundSize;
552
- backgroundColor: WithNone<NormalizedColor>;
553
- backgroundColormap: WithNone<Record<string, string>>;
562
+ backgroundColor: WithStyleNone<NormalizedColor>;
563
+ backgroundColormap: WithStyleNone<Record<string, string>>;
554
564
  borderRadius: number;
555
- borderColor: WithNone<NormalizedColor>;
565
+ borderColor: WithStyleNone<NormalizedColor>;
556
566
  borderStyle: BorderStyle;
557
567
  outlineWidth: number;
558
568
  outlineOffset: number;
559
- outlineColor: WithNone<NormalizedColor>;
569
+ outlineColor: WithStyleNone<NormalizedColor>;
560
570
  outlineStyle: string;
561
571
  visibility: Visibility;
562
572
  filter: string;
563
573
  opacity: number;
564
574
  pointerEvents: PointerEvents;
565
- maskImage: WithNone<string>;
575
+ maskImage: WithStyleNone<string>;
566
576
  };
567
577
  declare function getDefaultElementStyle(): NormalizedElementStyle;
568
578
 
@@ -634,14 +644,18 @@ interface NormalizedTextDrawStyle {
634
644
  type NormalizedTextStyle = NormalizedTextLineStyle & NormalizedTextInlineStyle & NormalizedTextDrawStyle;
635
645
  declare function getDefaultTextStyle(): Required<NormalizedTextStyle>;
636
646
 
637
- interface NormalizedStyle extends NormalizedTextStyle, NormalizedElementStyle {
638
- }
647
+ type NormalizedStyle = NormalizedTextStyle & NormalizedElementStyle & {
648
+ fill?: NormalizedFill;
649
+ outline?: NormalizedOutline;
650
+ };
639
651
  type StyleObject = Partial<NormalizedStyle> & {
640
- color?: WithNone<Color>;
641
- backgroundColor?: WithNone<Color>;
642
- borderColor?: WithNone<Color>;
643
- outlineColor?: WithNone<Color>;
644
- shadowColor?: WithNone<Color>;
652
+ color?: WithStyleNone<Color>;
653
+ backgroundColor?: WithStyleNone<Color>;
654
+ borderColor?: WithStyleNone<Color>;
655
+ outlineColor?: WithStyleNone<Color>;
656
+ shadowColor?: WithStyleNone<Color>;
657
+ fill?: Fill;
658
+ outline?: Outline;
645
659
  };
646
660
  type Style = StyleObject;
647
661
  declare function normalizeStyle(style: Style): Partial<NormalizedStyle>;
@@ -716,5 +730,5 @@ declare function isNone<T>(value: T): value is Extract<T, null | undefined | 'no
716
730
  declare function round(number: number, digits?: number, base?: number): number;
717
731
  declare function clearUndef<T>(obj: T, deep?: boolean): T;
718
732
 
719
- export { clearUndef, defaultColor, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultInnerShadow, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOuterShadow, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, isColor, isGradient, isNone, normalizeAudio, normalizeBackground, normalizeColor, normalizeColorFill, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeInnerShadow, normalizeOuterShadow, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeSoftEdge, normalizeStyle, normalizeText, normalizeTextContent, normalizeVideo, parseColor, parseGradient, round, stringifyGradient };
720
- export type { Align, AngularNode, Audio, Background, BackgroundObject, BackgroundSize, BorderStyle, BoxShadow, BoxSizing, CmykColor, CmykaColor, Color, ColorFill, ColorFillObject, ColorStop, ColorStopNode, DefaultRadialNode, Direction, DirectionalNode, Display, Document, Effect, EffectObject, Element, EmNode, ExtentKeywordNode, Fill, FillObject, FillRule, FlexDirection, FlexWrap, FontKerning, FontStyle, FontWeight, Foreground, ForegroundObject, FragmentContent, GradientFill, GradientFillObject, GradientNode, HeadEnd, Hex8Color, HexNode, HighlightColormap, HighlightImage, HighlightLine, HighlightReferImage, HighlightSize, HighlightThickness, HslColor, HslaColor, HsvColor, HsvaColor, HwbColor, HwbaColor, ImageFillCropRect, ImageFillObject, ImageFillStretchRect, ImageFillTile, InnerShadow, InnerShadowObject, Justify, LabColor, LabaColor, LchColor, LchaColor, LineEndSize, LineEndType, LinearGradient, LinearGradientNode, LinearGradientWithType, ListStyleColormap, ListStyleImage, ListStylePosition, ListStyleSize, ListStyleType, LiteralNode, Meta, Node, None, NormalizedAudio, NormalizedBackground, NormalizedBaseBackground, NormalizedBaseForeground, NormalizedBaseOuterShadow, NormalizedColor, NormalizedColorFill, NormalizedDocument, NormalizedEffect, NormalizedElement, NormalizedElementStyle, NormalizedFill, NormalizedForeground, NormalizedGradientFill, NormalizedHighlight, NormalizedHighlightStyle, NormalizedImageFill, NormalizedInnerShadow, NormalizedLayoutStyle, NormalizedListStyle, NormalizedListStyleStyle, NormalizedOuterShadow, NormalizedOutline, NormalizedOutlineFill, NormalizedPresetFill, NormalizedShadow, NormalizedShadowStyle, NormalizedShape, NormalizedSoftEdge, NormalizedStyle, NormalizedText, NormalizedTextContent, NormalizedTextDrawStyle, NormalizedTextInlineStyle, NormalizedTextLineStyle, NormalizedTextStyle, NormalizedTransformStyle, NormalizedVideo, ObjectColor, OuterShadow, OuterShadowObject, Outline, OutlineObject, OutlineStyle, Overflow, ParagraphContent, PercentNode, PointerEvents, Position, PositionKeywordNode, PositionNode, PresetFill, PresetFillObject, PxNode, RadialGradient, RadialGradientNode, RadialGradientWithType, RepeatingLinearGradientNode, RepeatingRadialGradientNode, RgbColor, RgbNode, RgbaColor, RgbaNode, SVGPathData, Shadow, ShadowObject, Shape, ShapeNode, ShapePath, ShapePathStyle, SoftEdge, StrokeLinecap, StrokeLinejoin, Style, StyleObject, StyleUnit, TailEnd, Text, TextAlign, TextContent, TextContentFlat, TextDecoration, TextOrientation, TextTransform, TextWrap, Uint32Color, VerticalAlign, Video, Visibility, WithNone, WritingMode, XyzColor, XyzaColor };
733
+ export { clearUndef, defaultColor, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultInnerShadow, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOuterShadow, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, isColor, isColorFill, isColorFillObject, isGradient, isGradientFill, isGradientFillObject, isImageFill, isImageFillObject, isNone, isPresetFill, isPresetFillObject, normalizeAudio, normalizeBackground, normalizeColor, normalizeColorFill, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeInnerShadow, normalizeOuterShadow, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeSoftEdge, normalizeStyle, normalizeText, normalizeTextContent, normalizeVideo, parseColor, parseGradient, round, stringifyGradient };
734
+ export type { Align, AngularNode, Audio, Background, BackgroundObject, BackgroundSize, BorderStyle, BoxShadow, BoxSizing, CmykColor, CmykaColor, Color, ColorFill, ColorFillObject, ColorStop, ColorStopNode, DefaultRadialNode, Direction, DirectionalNode, Display, Document, Effect, EffectObject, Element, EmNode, ExtentKeywordNode, Fill, FillObject, FillRule, FlexDirection, FlexWrap, FontKerning, FontStyle, FontWeight, Foreground, ForegroundObject, FragmentContent, GradientFill, GradientFillObject, GradientNode, HeadEnd, Hex8Color, HexNode, HighlightColormap, HighlightImage, HighlightLine, HighlightReferImage, HighlightSize, HighlightThickness, HslColor, HslaColor, HsvColor, HsvaColor, HwbColor, HwbaColor, ImageFill, ImageFillCropRect, ImageFillObject, ImageFillStretchRect, ImageFillTile, InnerShadow, InnerShadowObject, Justify, LabColor, LabaColor, LchColor, LchaColor, LineEndSize, LineEndType, LinearGradient, LinearGradientNode, LinearGradientWithType, ListStyleColormap, ListStyleImage, ListStylePosition, ListStyleSize, ListStyleType, LiteralNode, Meta, Node, None, NormalizedAudio, NormalizedBackground, NormalizedBaseBackground, NormalizedBaseForeground, NormalizedBaseOuterShadow, NormalizedColor, NormalizedColorFill, NormalizedDocument, NormalizedEffect, NormalizedElement, NormalizedElementStyle, NormalizedFill, NormalizedForeground, NormalizedGradientFill, NormalizedHighlight, NormalizedHighlightStyle, NormalizedImageFill, NormalizedInnerShadow, NormalizedLayoutStyle, NormalizedListStyle, NormalizedListStyleStyle, NormalizedOuterShadow, NormalizedOutline, NormalizedOutlineFill, NormalizedPresetFill, NormalizedShadow, NormalizedShadowStyle, NormalizedShape, NormalizedSoftEdge, NormalizedStyle, NormalizedText, NormalizedTextContent, NormalizedTextDrawStyle, NormalizedTextInlineStyle, NormalizedTextLineStyle, NormalizedTextStyle, NormalizedTransformStyle, NormalizedVideo, ObjectColor, OuterShadow, OuterShadowObject, Outline, OutlineObject, OutlineStyle, Overflow, ParagraphContent, PercentNode, PointerEvents, Position, PositionKeywordNode, PositionNode, PresetFill, PresetFillObject, PxNode, RadialGradient, RadialGradientNode, RadialGradientWithType, RepeatingLinearGradientNode, RepeatingRadialGradientNode, RgbColor, RgbNode, RgbaColor, RgbaNode, SVGPathData, Shadow, ShadowObject, Shape, ShapeNode, ShapePath, ShapePathStyle, SoftEdge, StrokeLinecap, StrokeLinejoin, Style, StyleObject, StyleUnit, TailEnd, Text, TextAlign, TextContent, TextContentFlat, TextDecoration, TextOrientation, TextTransform, TextWrap, Uint32Color, VerticalAlign, Video, Visibility, WithNone, WithStyleNone, WritingMode, XyzColor, XyzaColor };
package/dist/index.d.ts CHANGED
@@ -273,12 +273,14 @@ interface ImageFillObject {
273
273
  opacity?: number;
274
274
  rotateWithShape?: boolean;
275
275
  }
276
+ type ImageFill = string | ImageFillObject;
276
277
  interface NormalizedImageFill extends ImageFillObject {
277
278
  }
278
- declare function normalizeImageFill(fill: ImageFillObject): NormalizedImageFill;
279
+ declare function normalizeImageFill(fill: ImageFill): NormalizedImageFill;
279
280
 
280
281
  type None = undefined | null | 'none';
281
282
  type WithNone<T> = T | None;
283
+ type WithStyleNone<T> = T | 'none';
282
284
 
283
285
  interface PresetFillObject {
284
286
  preset: string;
@@ -295,6 +297,14 @@ declare function normalizePresetFill(fill: PresetFill): NormalizedPresetFill;
295
297
  type FillObject = Partial<ColorFillObject> & Partial<GradientFillObject> & Partial<ImageFillObject> & Partial<PresetFillObject>;
296
298
  type Fill = string | FillObject;
297
299
  type NormalizedFill = Partial<NormalizedColorFill> & Partial<NormalizedGradientFill> & Partial<NormalizedImageFill> & Partial<NormalizedPresetFill>;
300
+ declare function isColorFillObject(fill: FillObject): fill is ColorFillObject;
301
+ declare function isColorFill(fill: Fill): fill is ColorFill;
302
+ declare function isGradientFillObject(fill: FillObject): fill is GradientFillObject;
303
+ declare function isGradientFill(fill: Fill): fill is GradientFill;
304
+ declare function isImageFillObject(fill: FillObject): fill is ImageFillObject;
305
+ declare function isImageFill(fill: Fill): fill is ImageFill;
306
+ declare function isPresetFillObject(fill: FillObject): fill is PresetFillObject;
307
+ declare function isPresetFill(fill: Fill): fill is PresetFill;
298
308
  declare function normalizeFill(fill: Fill): NormalizedFill;
299
309
 
300
310
  interface NormalizedBaseBackground {
@@ -312,7 +322,7 @@ interface NormalizedInnerShadow {
312
322
  blurRadius: number;
313
323
  }
314
324
  type InnerShadowObject = Partial<NormalizedInnerShadow> & {
315
- color: WithNone<Color>;
325
+ color?: WithNone<Color>;
316
326
  };
317
327
  type InnerShadow = InnerShadowObject;
318
328
  declare function getDefaultInnerShadow(): NormalizedInnerShadow;
@@ -390,7 +400,7 @@ interface NormalizedOutline extends NormalizedOutlineFill {
390
400
  tailEnd?: TailEnd;
391
401
  }
392
402
  type OutlineObject = Partial<NormalizedOutline> & {
393
- color: WithNone<Color>;
403
+ color?: WithNone<Color>;
394
404
  };
395
405
  type Outline = string | OutlineObject;
396
406
  declare function normalizeOutline(outline: Outline): NormalizedOutline;
@@ -403,7 +413,7 @@ interface NormalizedShadow {
403
413
  blur?: number;
404
414
  }
405
415
  type ShadowObject = Partial<NormalizedShadow> & {
406
- color: WithNone<Color>;
416
+ color?: WithNone<Color>;
407
417
  };
408
418
  type Shadow = BoxShadow | ShadowObject;
409
419
  declare function normalizeShadow(shadow: Shadow): NormalizedShadow;
@@ -458,12 +468,12 @@ type Overflow = 'hidden' | 'visible';
458
468
  type Visibility = 'hidden' | 'visible';
459
469
  type FontWeight = 'normal' | 'bold' | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900;
460
470
  type FontStyle = 'normal' | 'italic' | 'oblique' | `oblique ${string}`;
461
- type FontKerning = WithNone<'auto' | 'normal'>;
471
+ type FontKerning = WithStyleNone<'auto' | 'normal'>;
462
472
  type TextWrap = 'wrap' | 'nowrap';
463
- type TextAlign = WithNone<'center' | 'end' | 'left' | 'right' | 'start' | 'justify'>;
464
- type TextTransform = WithNone<'uppercase' | 'lowercase'>;
473
+ type TextAlign = WithStyleNone<'center' | 'end' | 'left' | 'right' | 'start' | 'justify'>;
474
+ type TextTransform = WithStyleNone<'uppercase' | 'lowercase'>;
465
475
  type TextOrientation = 'mixed' | 'upright' | 'sideways-right' | 'sideways';
466
- type TextDecoration = WithNone<'underline' | 'line-through' | 'overline'>;
476
+ type TextDecoration = WithStyleNone<'underline' | 'line-through' | 'overline'>;
467
477
  type VerticalAlign = 'baseline' | 'top' | 'middle' | 'bottom' | 'sub' | 'super' | 'text-top' | 'text-bottom';
468
478
  type WritingMode = 'horizontal-tb' | 'vertical-lr' | 'vertical-rl';
469
479
  type Align = 'auto' | 'flex-start' | 'center' | 'flex-end' | 'stretch' | 'baseline' | 'space-between' | 'space-around' | 'space-evenly';
@@ -471,18 +481,18 @@ type FlexDirection = 'column' | 'column-reverse' | 'row' | 'row-reverse';
471
481
  type FlexWrap = 'nowrap' | 'wrap' | 'Wrap-reverse';
472
482
  type Justify = 'flex-start' | 'center' | 'flex-end' | 'space-between' | 'space-around' | 'space-evenly';
473
483
  type Position = 'static' | 'relative' | 'absolute';
474
- type BorderStyle = WithNone<'dashed' | 'solid'>;
484
+ type BorderStyle = WithStyleNone<'dashed' | 'solid'>;
475
485
  type BoxSizing = 'border-box' | 'content-box';
476
486
  type PointerEvents = 'auto' | 'none';
477
- type ListStyleType = WithNone<'disc'>;
478
- type ListStyleImage = WithNone<string>;
479
- type ListStyleColormap = WithNone<Record<string, string>>;
487
+ type ListStyleType = WithStyleNone<'disc'>;
488
+ type ListStyleImage = WithStyleNone<string>;
489
+ type ListStyleColormap = WithStyleNone<Record<string, string>>;
480
490
  type ListStyleSize = StyleUnit | `${number}rem` | 'cover';
481
491
  type ListStylePosition = 'inside' | 'outside';
482
492
  type HighlightLine = TextDecoration | 'outline';
483
- type HighlightImage = WithNone<string>;
484
- type HighlightReferImage = WithNone<string>;
485
- type HighlightColormap = WithNone<Record<string, string>>;
493
+ type HighlightImage = WithStyleNone<string>;
494
+ type HighlightReferImage = WithStyleNone<string>;
495
+ type HighlightColormap = WithStyleNone<Record<string, string>>;
486
496
  type HighlightSize = StyleUnit | `${number}rem` | 'cover';
487
497
  type HighlightThickness = StyleUnit;
488
498
 
@@ -519,11 +529,11 @@ interface NormalizedLayoutStyle {
519
529
  alignSelf: Align;
520
530
  justifyContent: Justify;
521
531
  gap: StyleUnit;
522
- marginTop: WithNone<StyleUnit | 'auto'>;
523
- marginLeft: WithNone<StyleUnit | 'auto'>;
524
- marginRight: WithNone<StyleUnit | 'auto'>;
525
- marginBottom: WithNone<StyleUnit | 'auto'>;
526
- margin: WithNone<StyleUnit | 'auto'>;
532
+ marginTop: WithStyleNone<StyleUnit | 'auto'>;
533
+ marginLeft: WithStyleNone<StyleUnit | 'auto'>;
534
+ marginRight: WithStyleNone<StyleUnit | 'auto'>;
535
+ marginBottom: WithStyleNone<StyleUnit | 'auto'>;
536
+ margin: WithStyleNone<StyleUnit | 'auto'>;
527
537
  paddingTop: StyleUnit;
528
538
  paddingLeft: StyleUnit;
529
539
  paddingRight: StyleUnit;
@@ -540,29 +550,29 @@ interface NormalizedTransformStyle {
540
550
  skewY: number;
541
551
  translateX: number;
542
552
  translateY: number;
543
- transform: WithNone<string>;
553
+ transform: WithStyleNone<string>;
544
554
  transformOrigin: string;
545
555
  }
546
556
  declare function getDefaultTransformStyle(): NormalizedTransformStyle;
547
557
 
548
558
  type BackgroundSize = 'contain' | 'cover' | string | 'stretch' | 'rigid';
549
559
  type NormalizedElementStyle = Partial<NormalizedLayoutStyle> & NormalizedTransformStyle & NormalizedShadowStyle & {
550
- backgroundImage: WithNone<string>;
560
+ backgroundImage: WithStyleNone<string>;
551
561
  backgroundSize: BackgroundSize;
552
- backgroundColor: WithNone<NormalizedColor>;
553
- backgroundColormap: WithNone<Record<string, string>>;
562
+ backgroundColor: WithStyleNone<NormalizedColor>;
563
+ backgroundColormap: WithStyleNone<Record<string, string>>;
554
564
  borderRadius: number;
555
- borderColor: WithNone<NormalizedColor>;
565
+ borderColor: WithStyleNone<NormalizedColor>;
556
566
  borderStyle: BorderStyle;
557
567
  outlineWidth: number;
558
568
  outlineOffset: number;
559
- outlineColor: WithNone<NormalizedColor>;
569
+ outlineColor: WithStyleNone<NormalizedColor>;
560
570
  outlineStyle: string;
561
571
  visibility: Visibility;
562
572
  filter: string;
563
573
  opacity: number;
564
574
  pointerEvents: PointerEvents;
565
- maskImage: WithNone<string>;
575
+ maskImage: WithStyleNone<string>;
566
576
  };
567
577
  declare function getDefaultElementStyle(): NormalizedElementStyle;
568
578
 
@@ -634,14 +644,18 @@ interface NormalizedTextDrawStyle {
634
644
  type NormalizedTextStyle = NormalizedTextLineStyle & NormalizedTextInlineStyle & NormalizedTextDrawStyle;
635
645
  declare function getDefaultTextStyle(): Required<NormalizedTextStyle>;
636
646
 
637
- interface NormalizedStyle extends NormalizedTextStyle, NormalizedElementStyle {
638
- }
647
+ type NormalizedStyle = NormalizedTextStyle & NormalizedElementStyle & {
648
+ fill?: NormalizedFill;
649
+ outline?: NormalizedOutline;
650
+ };
639
651
  type StyleObject = Partial<NormalizedStyle> & {
640
- color?: WithNone<Color>;
641
- backgroundColor?: WithNone<Color>;
642
- borderColor?: WithNone<Color>;
643
- outlineColor?: WithNone<Color>;
644
- shadowColor?: WithNone<Color>;
652
+ color?: WithStyleNone<Color>;
653
+ backgroundColor?: WithStyleNone<Color>;
654
+ borderColor?: WithStyleNone<Color>;
655
+ outlineColor?: WithStyleNone<Color>;
656
+ shadowColor?: WithStyleNone<Color>;
657
+ fill?: Fill;
658
+ outline?: Outline;
645
659
  };
646
660
  type Style = StyleObject;
647
661
  declare function normalizeStyle(style: Style): Partial<NormalizedStyle>;
@@ -716,5 +730,5 @@ declare function isNone<T>(value: T): value is Extract<T, null | undefined | 'no
716
730
  declare function round(number: number, digits?: number, base?: number): number;
717
731
  declare function clearUndef<T>(obj: T, deep?: boolean): T;
718
732
 
719
- export { clearUndef, defaultColor, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultInnerShadow, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOuterShadow, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, isColor, isGradient, isNone, normalizeAudio, normalizeBackground, normalizeColor, normalizeColorFill, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeInnerShadow, normalizeOuterShadow, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeSoftEdge, normalizeStyle, normalizeText, normalizeTextContent, normalizeVideo, parseColor, parseGradient, round, stringifyGradient };
720
- export type { Align, AngularNode, Audio, Background, BackgroundObject, BackgroundSize, BorderStyle, BoxShadow, BoxSizing, CmykColor, CmykaColor, Color, ColorFill, ColorFillObject, ColorStop, ColorStopNode, DefaultRadialNode, Direction, DirectionalNode, Display, Document, Effect, EffectObject, Element, EmNode, ExtentKeywordNode, Fill, FillObject, FillRule, FlexDirection, FlexWrap, FontKerning, FontStyle, FontWeight, Foreground, ForegroundObject, FragmentContent, GradientFill, GradientFillObject, GradientNode, HeadEnd, Hex8Color, HexNode, HighlightColormap, HighlightImage, HighlightLine, HighlightReferImage, HighlightSize, HighlightThickness, HslColor, HslaColor, HsvColor, HsvaColor, HwbColor, HwbaColor, ImageFillCropRect, ImageFillObject, ImageFillStretchRect, ImageFillTile, InnerShadow, InnerShadowObject, Justify, LabColor, LabaColor, LchColor, LchaColor, LineEndSize, LineEndType, LinearGradient, LinearGradientNode, LinearGradientWithType, ListStyleColormap, ListStyleImage, ListStylePosition, ListStyleSize, ListStyleType, LiteralNode, Meta, Node, None, NormalizedAudio, NormalizedBackground, NormalizedBaseBackground, NormalizedBaseForeground, NormalizedBaseOuterShadow, NormalizedColor, NormalizedColorFill, NormalizedDocument, NormalizedEffect, NormalizedElement, NormalizedElementStyle, NormalizedFill, NormalizedForeground, NormalizedGradientFill, NormalizedHighlight, NormalizedHighlightStyle, NormalizedImageFill, NormalizedInnerShadow, NormalizedLayoutStyle, NormalizedListStyle, NormalizedListStyleStyle, NormalizedOuterShadow, NormalizedOutline, NormalizedOutlineFill, NormalizedPresetFill, NormalizedShadow, NormalizedShadowStyle, NormalizedShape, NormalizedSoftEdge, NormalizedStyle, NormalizedText, NormalizedTextContent, NormalizedTextDrawStyle, NormalizedTextInlineStyle, NormalizedTextLineStyle, NormalizedTextStyle, NormalizedTransformStyle, NormalizedVideo, ObjectColor, OuterShadow, OuterShadowObject, Outline, OutlineObject, OutlineStyle, Overflow, ParagraphContent, PercentNode, PointerEvents, Position, PositionKeywordNode, PositionNode, PresetFill, PresetFillObject, PxNode, RadialGradient, RadialGradientNode, RadialGradientWithType, RepeatingLinearGradientNode, RepeatingRadialGradientNode, RgbColor, RgbNode, RgbaColor, RgbaNode, SVGPathData, Shadow, ShadowObject, Shape, ShapeNode, ShapePath, ShapePathStyle, SoftEdge, StrokeLinecap, StrokeLinejoin, Style, StyleObject, StyleUnit, TailEnd, Text, TextAlign, TextContent, TextContentFlat, TextDecoration, TextOrientation, TextTransform, TextWrap, Uint32Color, VerticalAlign, Video, Visibility, WithNone, WritingMode, XyzColor, XyzaColor };
733
+ export { clearUndef, defaultColor, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultInnerShadow, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOuterShadow, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, isColor, isColorFill, isColorFillObject, isGradient, isGradientFill, isGradientFillObject, isImageFill, isImageFillObject, isNone, isPresetFill, isPresetFillObject, normalizeAudio, normalizeBackground, normalizeColor, normalizeColorFill, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeInnerShadow, normalizeOuterShadow, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeSoftEdge, normalizeStyle, normalizeText, normalizeTextContent, normalizeVideo, parseColor, parseGradient, round, stringifyGradient };
734
+ export type { Align, AngularNode, Audio, Background, BackgroundObject, BackgroundSize, BorderStyle, BoxShadow, BoxSizing, CmykColor, CmykaColor, Color, ColorFill, ColorFillObject, ColorStop, ColorStopNode, DefaultRadialNode, Direction, DirectionalNode, Display, Document, Effect, EffectObject, Element, EmNode, ExtentKeywordNode, Fill, FillObject, FillRule, FlexDirection, FlexWrap, FontKerning, FontStyle, FontWeight, Foreground, ForegroundObject, FragmentContent, GradientFill, GradientFillObject, GradientNode, HeadEnd, Hex8Color, HexNode, HighlightColormap, HighlightImage, HighlightLine, HighlightReferImage, HighlightSize, HighlightThickness, HslColor, HslaColor, HsvColor, HsvaColor, HwbColor, HwbaColor, ImageFill, ImageFillCropRect, ImageFillObject, ImageFillStretchRect, ImageFillTile, InnerShadow, InnerShadowObject, Justify, LabColor, LabaColor, LchColor, LchaColor, LineEndSize, LineEndType, LinearGradient, LinearGradientNode, LinearGradientWithType, ListStyleColormap, ListStyleImage, ListStylePosition, ListStyleSize, ListStyleType, LiteralNode, Meta, Node, None, NormalizedAudio, NormalizedBackground, NormalizedBaseBackground, NormalizedBaseForeground, NormalizedBaseOuterShadow, NormalizedColor, NormalizedColorFill, NormalizedDocument, NormalizedEffect, NormalizedElement, NormalizedElementStyle, NormalizedFill, NormalizedForeground, NormalizedGradientFill, NormalizedHighlight, NormalizedHighlightStyle, NormalizedImageFill, NormalizedInnerShadow, NormalizedLayoutStyle, NormalizedListStyle, NormalizedListStyleStyle, NormalizedOuterShadow, NormalizedOutline, NormalizedOutlineFill, NormalizedPresetFill, NormalizedShadow, NormalizedShadowStyle, NormalizedShape, NormalizedSoftEdge, NormalizedStyle, NormalizedText, NormalizedTextContent, NormalizedTextDrawStyle, NormalizedTextInlineStyle, NormalizedTextLineStyle, NormalizedTextStyle, NormalizedTransformStyle, NormalizedVideo, ObjectColor, OuterShadow, OuterShadowObject, Outline, OutlineObject, OutlineStyle, Overflow, ParagraphContent, PercentNode, PointerEvents, Position, PositionKeywordNode, PositionNode, PresetFill, PresetFillObject, PxNode, RadialGradient, RadialGradientNode, RadialGradientWithType, RepeatingLinearGradientNode, RepeatingRadialGradientNode, RgbColor, RgbNode, RgbaColor, RgbaNode, SVGPathData, Shadow, ShadowObject, Shape, ShapeNode, ShapePath, ShapePathStyle, SoftEdge, StrokeLinecap, StrokeLinejoin, Style, StyleObject, StyleUnit, TailEnd, Text, TextAlign, TextContent, TextContentFlat, TextDecoration, TextOrientation, TextTransform, TextWrap, Uint32Color, VerticalAlign, Video, Visibility, WithNone, WithStyleNone, WritingMode, XyzColor, XyzaColor };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- (function(a,k){typeof exports=="object"&&typeof module<"u"?k(exports):typeof define=="function"&&define.amd?define(["exports"],k):(a=typeof globalThis<"u"?globalThis:a||self,k(a.modernIdoc={}))})(this,function(a){"use strict";function k(t){return typeof t=="string"?{src:t}:t}var Wt={grad:.9,turn:360,rad:360/(2*Math.PI)},S=function(t){return typeof t=="string"?t.length>0:typeof t=="number"},h=function(t,e,r){return e===void 0&&(e=0),r===void 0&&(r=Math.pow(10,e)),Math.round(r*t)/r+0},b=function(t,e,r){return e===void 0&&(e=0),r===void 0&&(r=1),t>r?r:t>e?t:e},Z=function(t){return(t=isFinite(t)?t%360:0)>0?t:t+360},tt=function(t){return{r:b(t.r,0,255),g:b(t.g,0,255),b:b(t.b,0,255),a:b(t.a)}},H=function(t){return{r:h(t.r),g:h(t.g),b:h(t.b),a:h(t.a,3)}},Mt=/^#([0-9a-f]{3,8})$/i,E=function(t){var e=t.toString(16);return e.length<2?"0"+e:e},et=function(t){var e=t.r,r=t.g,n=t.b,o=t.a,l=Math.max(e,r,n),c=l-Math.min(e,r,n),d=c?l===e?(r-n)/c:l===r?2+(n-e)/c:4+(e-r)/c:0;return{h:60*(d<0?d+6:d),s:l?c/l*100:0,v:l/255*100,a:o}},rt=function(t){var e=t.h,r=t.s,n=t.v,o=t.a;e=e/360*6,r/=100,n/=100;var l=Math.floor(e),c=n*(1-r),d=n*(1-(e-l)*r),D=n*(1-(1-e+l)*r),x=l%6;return{r:255*[n,d,c,c,D,n][x],g:255*[D,n,n,d,c,c][x],b:255*[c,c,D,n,n,d][x],a:o}},nt=function(t){return{h:Z(t.h),s:b(t.s,0,100),l:b(t.l,0,100),a:b(t.a)}},it=function(t){return{h:h(t.h),s:h(t.s),l:h(t.l),a:h(t.a,3)}},ot=function(t){return rt((r=(e=t).s,{h:e.h,s:(r*=((n=e.l)<50?n:100-n)/100)>0?2*r/(n+r)*100:0,v:n+r,a:e.a}));var e,r,n},G=function(t){return{h:(e=et(t)).h,s:(o=(200-(r=e.s))*(n=e.v)/100)>0&&o<200?r*n/100/(o<=100?o:200-o)*100:0,l:o/2,a:e.a};var e,r,n,o},Rt=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,$t=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Pt=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Bt=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,at={string:[[function(t){var e=Mt.exec(t);return e?(t=e[1]).length<=4?{r:parseInt(t[0]+t[0],16),g:parseInt(t[1]+t[1],16),b:parseInt(t[2]+t[2],16),a:t.length===4?h(parseInt(t[3]+t[3],16)/255,2):1}:t.length===6||t.length===8?{r:parseInt(t.substr(0,2),16),g:parseInt(t.substr(2,2),16),b:parseInt(t.substr(4,2),16),a:t.length===8?h(parseInt(t.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(t){var e=Pt.exec(t)||Bt.exec(t);return e?e[2]!==e[4]||e[4]!==e[6]?null:tt({r:Number(e[1])/(e[2]?100/255:1),g:Number(e[3])/(e[4]?100/255:1),b:Number(e[5])/(e[6]?100/255:1),a:e[7]===void 0?1:Number(e[7])/(e[8]?100:1)}):null},"rgb"],[function(t){var e=Rt.exec(t)||$t.exec(t);if(!e)return null;var r,n,o=nt({h:(r=e[1],n=e[2],n===void 0&&(n="deg"),Number(r)*(Wt[n]||1)),s:Number(e[3]),l:Number(e[4]),a:e[5]===void 0?1:Number(e[5])/(e[6]?100:1)});return ot(o)},"hsl"]],object:[[function(t){var e=t.r,r=t.g,n=t.b,o=t.a,l=o===void 0?1:o;return S(e)&&S(r)&&S(n)?tt({r:Number(e),g:Number(r),b:Number(n),a:Number(l)}):null},"rgb"],[function(t){var e=t.h,r=t.s,n=t.l,o=t.a,l=o===void 0?1:o;if(!S(e)||!S(r)||!S(n))return null;var c=nt({h:Number(e),s:Number(r),l:Number(n),a:Number(l)});return ot(c)},"hsl"],[function(t){var e=t.h,r=t.s,n=t.v,o=t.a,l=o===void 0?1:o;if(!S(e)||!S(r)||!S(n))return null;var c=function(d){return{h:Z(d.h),s:b(d.s,0,100),v:b(d.v,0,100),a:b(d.a)}}({h:Number(e),s:Number(r),v:Number(n),a:Number(l)});return rt(c)},"hsv"]]},ut=function(t,e){for(var r=0;r<e.length;r++){var n=e[r][0](t);if(n)return[n,e[r][1]]}return[null,void 0]},jt=function(t){return typeof t=="string"?ut(t.trim(),at.string):typeof t=="object"&&t!==null?ut(t,at.object):[null,void 0]},W=function(t,e){var r=G(t);return{h:r.h,s:b(r.s+100*e,0,100),l:r.l,a:r.a}},M=function(t){return(299*t.r+587*t.g+114*t.b)/1e3/255},lt=function(t,e){var r=G(t);return{h:r.h,s:r.s,l:b(r.l+100*e,0,100),a:r.a}},st=function(){function t(e){this.parsed=jt(e)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return t.prototype.isValid=function(){return this.parsed!==null},t.prototype.brightness=function(){return h(M(this.rgba),2)},t.prototype.isDark=function(){return M(this.rgba)<.5},t.prototype.isLight=function(){return M(this.rgba)>=.5},t.prototype.toHex=function(){return e=H(this.rgba),r=e.r,n=e.g,o=e.b,c=(l=e.a)<1?E(h(255*l)):"","#"+E(r)+E(n)+E(o)+c;var e,r,n,o,l,c},t.prototype.toRgb=function(){return H(this.rgba)},t.prototype.toRgbString=function(){return e=H(this.rgba),r=e.r,n=e.g,o=e.b,(l=e.a)<1?"rgba("+r+", "+n+", "+o+", "+l+")":"rgb("+r+", "+n+", "+o+")";var e,r,n,o,l},t.prototype.toHsl=function(){return it(G(this.rgba))},t.prototype.toHslString=function(){return e=it(G(this.rgba)),r=e.h,n=e.s,o=e.l,(l=e.a)<1?"hsla("+r+", "+n+"%, "+o+"%, "+l+")":"hsl("+r+", "+n+"%, "+o+"%)";var e,r,n,o,l},t.prototype.toHsv=function(){return e=et(this.rgba),{h:h(e.h),s:h(e.s),v:h(e.v),a:h(e.a,3)};var e},t.prototype.invert=function(){return y({r:255-(e=this.rgba).r,g:255-e.g,b:255-e.b,a:e.a});var e},t.prototype.saturate=function(e){return e===void 0&&(e=.1),y(W(this.rgba,e))},t.prototype.desaturate=function(e){return e===void 0&&(e=.1),y(W(this.rgba,-e))},t.prototype.grayscale=function(){return y(W(this.rgba,-1))},t.prototype.lighten=function(e){return e===void 0&&(e=.1),y(lt(this.rgba,e))},t.prototype.darken=function(e){return e===void 0&&(e=.1),y(lt(this.rgba,-e))},t.prototype.rotate=function(e){return e===void 0&&(e=15),this.hue(this.hue()+e)},t.prototype.alpha=function(e){return typeof e=="number"?y({r:(r=this.rgba).r,g:r.g,b:r.b,a:e}):h(this.rgba.a,3);var r},t.prototype.hue=function(e){var r=G(this.rgba);return typeof e=="number"?y({h:e,s:r.s,l:r.l,a:r.a}):h(r.h)},t.prototype.isEqual=function(e){return this.toHex()===y(e).toHex()},t}(),y=function(t){return t instanceof st?t:new st(t)};function f(t){return t==null||t==="none"}function C(t,e=0,r=10**e){return Math.round(r*t)/r+0}function w(t,e=!1){if(typeof t!="object"||!t)return t;if(Array.isArray(t))return e?t.map(n=>w(n,e)):t;const r={};for(const n in t){const o=t[n];o!=null&&(e?r[n]=w(o,e):r[n]=o)}return r}function R(t){let e;return typeof t=="number"?e={r:t>>24&255,g:t>>16&255,b:t>>8&255,a:(t&255)/255}:e=t,y(e)}function Kt(t){return{r:C(t.r),g:C(t.g),b:C(t.b),a:C(t.a,3)}}function V(t){const e=t.toString(16);return e.length<2?`0${e}`:e}const I="#000000FF";function ct(t){return R(t).isValid()}function v(t,e=!1){const r=R(t);if(!r.isValid()){if(typeof t=="string")return t;const d=`Failed to normalizeColor ${t}`;if(e)throw new Error(d);return console.warn(d),I}const{r:n,g:o,b:l,a:c}=Kt(r.rgba);return`#${V(n)}${V(o)}${V(l)}${V(C(c*255))}`}var O=O||{};O.parse=function(){const t={linearGradient:/^(-(webkit|o|ms|moz)-)?(linear-gradient)/i,repeatingLinearGradient:/^(-(webkit|o|ms|moz)-)?(repeating-linear-gradient)/i,radialGradient:/^(-(webkit|o|ms|moz)-)?(radial-gradient)/i,repeatingRadialGradient:/^(-(webkit|o|ms|moz)-)?(repeating-radial-gradient)/i,sideOrCorner:/^to (left (top|bottom)|right (top|bottom)|top (left|right)|bottom (left|right)|left|right|top|bottom)/i,extentKeywords:/^(closest-side|closest-corner|farthest-side|farthest-corner|contain|cover)/,positionKeywords:/^(left|center|right|top|bottom)/i,pixelValue:/^(-?((\d*\.\d+)|(\d+\.?)))px/,percentageValue:/^(-?((\d*\.\d+)|(\d+\.?)))%/,emValue:/^(-?((\d*\.\d+)|(\d+\.?)))em/,angleValue:/^(-?((\d*\.\d+)|(\d+\.?)))deg/,radianValue:/^(-?((\d*\.\d+)|(\d+\.?)))rad/,startCall:/^\(/,endCall:/^\)/,comma:/^,/,hexColor:/^#([0-9a-f]+)/i,literalColor:/^([a-z]+)/i,rgbColor:/^rgb/i,rgbaColor:/^rgba/i,varColor:/^var/i,calcValue:/^calc/i,variableName:/^(--[a-z0-9-,\s#]+)/i,number:/^((\d*\.\d+)|(\d+\.?))/,hslColor:/^hsl/i,hslaColor:/^hsla/i};let e="";function r(i){const u=new Error(`${e}: ${i}`);throw u.source=e,u}function n(){const i=o();return e.length>0&&r("Invalid input not EOF"),i}function o(){return A(l)}function l(){return c("linear-gradient",t.linearGradient,D)||c("repeating-linear-gradient",t.repeatingLinearGradient,D)||c("radial-gradient",t.radialGradient,At)||c("repeating-radial-gradient",t.repeatingRadialGradient,At)}function c(i,u,s){return d(u,m=>{const z=s();return z&&(g(t.comma)||r("Missing comma before color stops")),{type:i,orientation:z,colorStops:A(re)}})}function d(i,u){const s=g(i);if(s){g(t.startCall)||r("Missing (");const m=u(s);return g(t.endCall)||r("Missing )"),m}}function D(){const i=x();if(i)return i;const u=p("position-keyword",t.positionKeywords,1);return u?{type:"directional",value:u.value}:Qt()}function x(){return p("directional",t.sideOrCorner,1)}function Qt(){return p("angular",t.angleValue,1)||p("angular",t.radianValue,1)}function At(){let i,u=Ft(),s;return u&&(i=[],i.push(u),s=e,g(t.comma)&&(u=Ft(),u?i.push(u):e=s)),i}function Ft(){let i=Zt()||te();if(i)i.at=q();else{const u=U();if(u){i=u;const s=q();s&&(i.at=s)}else{const s=q();if(s)i={type:"default-radial",at:s};else{const m=J();m&&(i={type:"default-radial",at:m})}}}return i}function Zt(){const i=p("shape",/^(circle)/i,0);return i&&(i.style=Ht()||U()),i}function te(){const i=p("shape",/^(ellipse)/i,0);return i&&(i.style=J()||F()||U()),i}function U(){return p("extent-keyword",t.extentKeywords,1)}function q(){if(p("position",/^at/,0)){const i=J();return i||r("Missing positioning value"),i}}function J(){const i=ee();if(i.x||i.y)return{type:"position",value:i}}function ee(){return{x:F(),y:F()}}function A(i){let u=i();const s=[];if(u)for(s.push(u);g(t.comma);)u=i(),u?s.push(u):r("One extra comma");return s}function re(){const i=ne();return i||r("Expected color definition"),i.length=F(),i}function ne(){return oe()||ce()||se()||ue()||ae()||le()||ie()}function ie(){return p("literal",t.literalColor,0)}function oe(){return p("hex",t.hexColor,1)}function ae(){return d(t.rgbColor,()=>({type:"rgb",value:A(L)}))}function ue(){return d(t.rgbaColor,()=>({type:"rgba",value:A(L)}))}function le(){return d(t.varColor,()=>({type:"var",value:fe()}))}function se(){return d(t.hslColor,()=>{g(t.percentageValue)&&r("HSL hue value must be a number in degrees (0-360) or normalized (-360 to 360), not a percentage");const u=L();g(t.comma);let s=g(t.percentageValue);const m=s?s[1]:null;g(t.comma),s=g(t.percentageValue);const z=s?s[1]:null;return(!m||!z)&&r("Expected percentage value for saturation and lightness in HSL"),{type:"hsl",value:[u,m,z]}})}function ce(){return d(t.hslaColor,()=>{const i=L();g(t.comma);let u=g(t.percentageValue);const s=u?u[1]:null;g(t.comma),u=g(t.percentageValue);const m=u?u[1]:null;g(t.comma);const z=L();return(!s||!m)&&r("Expected percentage value for saturation and lightness in HSLA"),{type:"hsla",value:[i,s,m,z]}})}function fe(){return g(t.variableName)[1]}function L(){return g(t.number)[1]}function F(){return p("%",t.percentageValue,1)||de()||ge()||Ht()}function de(){return p("position-keyword",t.positionKeywords,1)}function ge(){return d(t.calcValue,()=>{let i=1,u=0;for(;i>0&&u<e.length;){const m=e.charAt(u);m==="("?i++:m===")"&&i--,u++}i>0&&r("Missing closing parenthesis in calc() expression");const s=e.substring(0,u-1);return Q(u-1),{type:"calc",value:s}})}function Ht(){return p("px",t.pixelValue,1)||p("em",t.emValue,1)}function p(i,u,s){const m=g(u);if(m)return{type:i,value:m[s]}}function g(i){let u,s;return s=/^\s+/.exec(e),s&&Q(s[0].length),u=i.exec(e),u&&Q(u[0].length),u}function Q(i){e=e.substr(i)}return function(i){return e=i.toString().trim(),e.endsWith(";")&&(e=e.slice(0,-1)),n()}}();const ft=O.parse.bind(O);var T=T||{};T.stringify=function(){var t={"visit_linear-gradient":function(e){return t.visit_gradient(e)},"visit_repeating-linear-gradient":function(e){return t.visit_gradient(e)},"visit_radial-gradient":function(e){return t.visit_gradient(e)},"visit_repeating-radial-gradient":function(e){return t.visit_gradient(e)},visit_gradient:function(e){var r=t.visit(e.orientation);return r&&(r+=", "),e.type+"("+r+t.visit(e.colorStops)+")"},visit_shape:function(e){var r=e.value,n=t.visit(e.at),o=t.visit(e.style);return o&&(r+=" "+o),n&&(r+=" at "+n),r},"visit_default-radial":function(e){var r="",n=t.visit(e.at);return n&&(r+=n),r},"visit_extent-keyword":function(e){var r=e.value,n=t.visit(e.at);return n&&(r+=" at "+n),r},"visit_position-keyword":function(e){return e.value},visit_position:function(e){return t.visit(e.value.x)+" "+t.visit(e.value.y)},"visit_%":function(e){return e.value+"%"},visit_em:function(e){return e.value+"em"},visit_px:function(e){return e.value+"px"},visit_calc:function(e){return"calc("+e.value+")"},visit_literal:function(e){return t.visit_color(e.value,e)},visit_hex:function(e){return t.visit_color("#"+e.value,e)},visit_rgb:function(e){return t.visit_color("rgb("+e.value.join(", ")+")",e)},visit_rgba:function(e){return t.visit_color("rgba("+e.value.join(", ")+")",e)},visit_hsl:function(e){return t.visit_color("hsl("+e.value[0]+", "+e.value[1]+"%, "+e.value[2]+"%)",e)},visit_hsla:function(e){return t.visit_color("hsla("+e.value[0]+", "+e.value[1]+"%, "+e.value[2]+"%, "+e.value[3]+")",e)},visit_var:function(e){return t.visit_color("var("+e.value+")",e)},visit_color:function(e,r){var n=e,o=t.visit(r.length);return o&&(n+=" "+o),n},visit_angular:function(e){return e.value+"deg"},visit_directional:function(e){return"to "+e.value},visit_array:function(e){var r="",n=e.length;return e.forEach(function(o,l){r+=t.visit(o),l<n-1&&(r+=", ")}),r},visit_object:function(e){return e.width&&e.height?t.visit(e.width)+" "+t.visit(e.height):""},visit:function(e){if(!e)return"";if(e instanceof Array)return t.visit_array(e);if(typeof e=="object"&&!e.type)return t.visit_object(e);if(e.type){var r=t["visit_"+e.type];if(r)return r(e);throw Error("Missing visitor visit_"+e.type)}else throw Error("Invalid node.")}};return function(e){return t.visit(e)}}();const Xt=T.stringify.bind(T);function dt(t){const e=t.length-1;return t.map((r,n)=>{var d;const o=r.value;let l=C(n/e,3),c="#00000000";switch(r.type){case"rgb":c=v({r:Number(o[0]??0),g:Number(o[1]??0),b:Number(o[2]??0)});break;case"rgba":c=v({r:Number(o[0]??0),g:Number(o[1]??0),b:Number(o[2]??0),a:Number(o[3]??0)});break;case"literal":c=v(r.value);break;case"hex":c=v(`#${r.value}`);break}switch((d=r.length)==null?void 0:d.type){case"%":l=Number(r.length.value)/100;break}return{offset:l,color:c}})}function gt(t){var r;let e=0;switch((r=t.orientation)==null?void 0:r.type){case"angular":e=Number(t.orientation.value);break}return{type:"linear-gradient",angle:e,stops:dt(t.colorStops)}}function ht(t){var e;return(e=t.orientation)==null||e.map(r=>{switch(r==null?void 0:r.type){case"shape":case"default-radial":case"extent-keyword":default:return null}}),{type:"radial-gradient",stops:dt(t.colorStops)}}function $(t){return t.startsWith("linear-gradient")||t.startsWith("radial-gradient")}function vt(t){return ft(t).map(e=>{switch(e==null?void 0:e.type){case"linear-gradient":return gt(e);case"repeating-linear-gradient":return{...gt(e),repeat:!0};case"radial-gradient":return ht(e);case"repeating-radial-gradient":return{...ht(e),repeat:!0};default:return}}).filter(Boolean)}function P(t){let e;return typeof t=="string"?e={color:t}:e=t,{color:v(e.color)}}function B(t){let e;typeof t=="string"?e={image:t}:e=t;const{type:r,...n}=vt(e.image)[0]??{};switch(r){case"radial-gradient":return{radialGradient:n};case"linear-gradient":return{linearGradient:n}}return{}}function Yt(t){return t}function mt(t){let e;return typeof t=="string"?e={preset:t}:e=t,{preset:e.preset,foregroundColor:f(e.foregroundColor)?void 0:v(e.foregroundColor),backgroundColor:f(e.backgroundColor)?void 0:v(e.backgroundColor)}}function _(t){if(typeof t=="string")return ct(t)?P({color:t}):$(t)?B({image:t}):{image:t};if(f(t.color))if(f(t.image)){if(f(t.preset))return mt(t)}else return $(t.image)?B(t):t;else return P(t);throw new Error("Unknown fill property object")}function pt(t){return typeof t=="string"?{..._(t),fillWithShape:!1}:{..._(t),fillWithShape:!!t.fillWithShape}}function j(){return{color:I,offsetX:0,offsetY:0,blurRadius:1}}function K(t){return{...j(),...w({...t,color:f(t.color)?I:v(t.color)})}}function bt(){return{...j(),scaleX:1,scaleY:1}}function yt(t){return{...bt(),...K(t)}}function Ut(t){return t}function St(t){return w({...t,softEdge:f(t.softEdge)?void 0:t.softEdge,outerShadow:f(t.outerShadow)?void 0:yt(t.outerShadow),innerShadow:f(t.innerShadow)?void 0:K(t.innerShadow)})}function Ct(t){return typeof t=="string"?{..._(t),fillWithShape:!1}:{..._(t),fillWithShape:!!t.fillWithShape}}function wt(t){return typeof t=="string"?{color:v(t)}:{...t,color:f(t.color)?void 0:v(t.color)}}function zt(t){return typeof t=="string"?{color:v(t)}:{...t,color:f(t.color)?I:v(t.color)}}function kt(){return{boxShadow:"none"}}function _t(t){return typeof t=="string"?{paths:[{data:t}]}:Array.isArray(t)?{paths:t.map(e=>typeof e=="string"?{data:e}:e)}:t}function Nt(){return{overflow:"visible",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 Dt(){return{rotate:0,scaleX:1,scaleY:1,skewX:0,skewY:0,translateX:0,translateY:0,transform:"none",transformOrigin:"center"}}function Gt(){return{...Nt(),...Dt(),...kt(),backgroundImage:"none",backgroundSize:"auto, auto",backgroundColor:"none",backgroundColormap:"none",borderRadius:0,borderColor:"none",borderStyle:"solid",outlineWidth:0,outlineOffset:0,outlineColor:"rgb(0, 0, 0)",outlineStyle:"none",visibility:"visible",filter:"none",opacity:1,pointerEvents:"auto",maskImage:"none"}}function It(){return{highlight:{},highlightImage:"none",highlightReferImage:"none",highlightColormap:"none",highlightLine:"none",highlightSize:"cover",highlightThickness:"100%"}}function xt(){return{listStyle:{},listStyleType:"none",listStyleImage:"none",listStyleColormap:"none",listStyleSize:"cover",listStylePosition:"outside"}}function Lt(){return{...It(),color:"rgb(0, 0, 0)",verticalAlign:"baseline",letterSpacing:0,wordSpacing:0,fontSize:14,fontWeight:"normal",fontFamily:"",fontStyle:"normal",fontKerning:"normal",textTransform:"none",textOrientation:"mixed",textDecoration:"none"}}function Et(){return{...xt(),writingMode:"horizontal-tb",textWrap:"wrap",textAlign:"start",textIndent:0,lineHeight:1.2}}function Vt(){return{...Et(),...Lt(),textStrokeWidth:0,textStrokeColor:"rgb(0, 0, 0)"}}function N(t){return w({...t,color:f(t.color)?void 0:v(t.color),backgroundColor:f(t.backgroundColor)?void 0:v(t.backgroundColor),borderColor:f(t.borderColor)?void 0:v(t.borderColor),outlineColor:f(t.outlineColor)?void 0:v(t.outlineColor),shadowColor:f(t.shadowColor)?void 0:v(t.shadowColor)})}function qt(){return{...Gt(),...Vt()}}function X(t=""){return(Array.isArray(t)?t:[t]).map(r=>typeof r=="string"?{fragments:[{content:r}]}:"content"in r?{fragments:[N(r)]}:"fragments"in r?{...N(r),fragments:r.fragments.map(n=>N(n))}:Array.isArray(r)?{fragments:r.map(n=>typeof n=="string"?{content:n}:N(n))}:{fragments:[]})}function Ot(t){return typeof t=="string"?{content:[{fragments:[{content:t}]}]}:"content"in t?{...t,content:X(t.content)}:{content:X(t)}}function Tt(t){return typeof t=="string"?{src:t}:t}function Y(t){var e;return w({...t,style:f(t.style)?void 0:N(t.style),text:f(t.text)?void 0:Ot(t.text),background:f(t.background)?void 0:pt(t.background),shape:f(t.shape)?void 0:_t(t.shape),fill:f(t.fill)?void 0:_(t.fill),outline:f(t.outline)?void 0:wt(t.outline),foreground:f(t.foreground)?void 0:Ct(t.foreground),shadow:f(t.shadow)?void 0:zt(t.shadow),video:f(t.video)?void 0:Tt(t.video),audio:f(t.audio)?void 0:k(t.audio),effect:f(t.effect)?void 0:St(t.effect),children:(e=t.children)==null?void 0:e.map(r=>Y(r))})}function Jt(t){return Y(t)}a.clearUndef=w,a.defaultColor=I,a.getDefaultElementStyle=Gt,a.getDefaultHighlightStyle=It,a.getDefaultInnerShadow=j,a.getDefaultLayoutStyle=Nt,a.getDefaultListStyleStyle=xt,a.getDefaultOuterShadow=bt,a.getDefaultShadowStyle=kt,a.getDefaultStyle=qt,a.getDefaultTextInlineStyle=Lt,a.getDefaultTextLineStyle=Et,a.getDefaultTextStyle=Vt,a.getDefaultTransformStyle=Dt,a.isColor=ct,a.isGradient=$,a.isNone=f,a.normalizeAudio=k,a.normalizeBackground=pt,a.normalizeColor=v,a.normalizeColorFill=P,a.normalizeDocument=Jt,a.normalizeEffect=St,a.normalizeElement=Y,a.normalizeFill=_,a.normalizeForeground=Ct,a.normalizeGradient=vt,a.normalizeGradientFill=B,a.normalizeImageFill=Yt,a.normalizeInnerShadow=K,a.normalizeOuterShadow=yt,a.normalizeOutline=wt,a.normalizePresetFill=mt,a.normalizeShadow=zt,a.normalizeShape=_t,a.normalizeSoftEdge=Ut,a.normalizeStyle=N,a.normalizeText=Ot,a.normalizeTextContent=X,a.normalizeVideo=Tt,a.parseColor=R,a.parseGradient=ft,a.round=C,a.stringifyGradient=Xt,Object.defineProperty(a,Symbol.toStringTag,{value:"Module"})});
1
+ (function(o,k){typeof exports=="object"&&typeof module<"u"?k(exports):typeof define=="function"&&define.amd?define(["exports"],k):(o=typeof globalThis<"u"?globalThis:o||self,k(o.modernIdoc={}))})(this,function(o){"use strict";function k(t){return typeof t=="string"?{src:t}:t}var Yt={grad:.9,turn:360,rad:360/(2*Math.PI)},S=function(t){return typeof t=="string"?t.length>0:typeof t=="number"},h=function(t,e,r){return e===void 0&&(e=0),r===void 0&&(r=Math.pow(10,e)),Math.round(r*t)/r+0},b=function(t,e,r){return e===void 0&&(e=0),r===void 0&&(r=1),t>r?r:t>e?t:e},J=function(t){return(t=isFinite(t)?t%360:0)>0?t:t+360},Q=function(t){return{r:b(t.r,0,255),g:b(t.g,0,255),b:b(t.b,0,255),a:b(t.a)}},j=function(t){return{r:h(t.r),g:h(t.g),b:h(t.b),a:h(t.a,3)}},Ut=/^#([0-9a-f]{3,8})$/i,E=function(t){var e=t.toString(16);return e.length<2?"0"+e:e},Z=function(t){var e=t.r,r=t.g,n=t.b,a=t.a,l=Math.max(e,r,n),c=l-Math.min(e,r,n),d=c?l===e?(r-n)/c:l===r?2+(n-e)/c:4+(e-r)/c:0;return{h:60*(d<0?d+6:d),s:l?c/l*100:0,v:l/255*100,a}},tt=function(t){var e=t.h,r=t.s,n=t.v,a=t.a;e=e/360*6,r/=100,n/=100;var l=Math.floor(e),c=n*(1-r),d=n*(1-(e-l)*r),F=n*(1-(1-e+l)*r),O=l%6;return{r:255*[n,d,c,c,F,n][O],g:255*[F,n,n,d,c,c][O],b:255*[c,c,F,n,n,d][O],a}},et=function(t){return{h:J(t.h),s:b(t.s,0,100),l:b(t.l,0,100),a:b(t.a)}},rt=function(t){return{h:h(t.h),s:h(t.s),l:h(t.l),a:h(t.a,3)}},nt=function(t){return tt((r=(e=t).s,{h:e.h,s:(r*=((n=e.l)<50?n:100-n)/100)>0?2*r/(n+r)*100:0,v:n+r,a:e.a}));var e,r,n},D=function(t){return{h:(e=Z(t)).h,s:(a=(200-(r=e.s))*(n=e.v)/100)>0&&a<200?r*n/100/(a<=100?a:200-a)*100:0,l:a/2,a:e.a};var e,r,n,a},qt=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Jt=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Qt=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Zt=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,it={string:[[function(t){var e=Ut.exec(t);return e?(t=e[1]).length<=4?{r:parseInt(t[0]+t[0],16),g:parseInt(t[1]+t[1],16),b:parseInt(t[2]+t[2],16),a:t.length===4?h(parseInt(t[3]+t[3],16)/255,2):1}:t.length===6||t.length===8?{r:parseInt(t.substr(0,2),16),g:parseInt(t.substr(2,2),16),b:parseInt(t.substr(4,2),16),a:t.length===8?h(parseInt(t.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(t){var e=Qt.exec(t)||Zt.exec(t);return e?e[2]!==e[4]||e[4]!==e[6]?null:Q({r:Number(e[1])/(e[2]?100/255:1),g:Number(e[3])/(e[4]?100/255:1),b:Number(e[5])/(e[6]?100/255:1),a:e[7]===void 0?1:Number(e[7])/(e[8]?100:1)}):null},"rgb"],[function(t){var e=qt.exec(t)||Jt.exec(t);if(!e)return null;var r,n,a=et({h:(r=e[1],n=e[2],n===void 0&&(n="deg"),Number(r)*(Yt[n]||1)),s:Number(e[3]),l:Number(e[4]),a:e[5]===void 0?1:Number(e[5])/(e[6]?100:1)});return nt(a)},"hsl"]],object:[[function(t){var e=t.r,r=t.g,n=t.b,a=t.a,l=a===void 0?1:a;return S(e)&&S(r)&&S(n)?Q({r:Number(e),g:Number(r),b:Number(n),a:Number(l)}):null},"rgb"],[function(t){var e=t.h,r=t.s,n=t.l,a=t.a,l=a===void 0?1:a;if(!S(e)||!S(r)||!S(n))return null;var c=et({h:Number(e),s:Number(r),l:Number(n),a:Number(l)});return nt(c)},"hsl"],[function(t){var e=t.h,r=t.s,n=t.v,a=t.a,l=a===void 0?1:a;if(!S(e)||!S(r)||!S(n))return null;var c=function(d){return{h:J(d.h),s:b(d.s,0,100),v:b(d.v,0,100),a:b(d.a)}}({h:Number(e),s:Number(r),v:Number(n),a:Number(l)});return tt(c)},"hsv"]]},ot=function(t,e){for(var r=0;r<e.length;r++){var n=e[r][0](t);if(n)return[n,e[r][1]]}return[null,void 0]},te=function(t){return typeof t=="string"?ot(t.trim(),it.string):typeof t=="object"&&t!==null?ot(t,it.object):[null,void 0]},P=function(t,e){var r=D(t);return{h:r.h,s:b(r.s+100*e,0,100),l:r.l,a:r.a}},W=function(t){return(299*t.r+587*t.g+114*t.b)/1e3/255},at=function(t,e){var r=D(t);return{h:r.h,s:r.s,l:b(r.l+100*e,0,100),a:r.a}},ut=function(){function t(e){this.parsed=te(e)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return t.prototype.isValid=function(){return this.parsed!==null},t.prototype.brightness=function(){return h(W(this.rgba),2)},t.prototype.isDark=function(){return W(this.rgba)<.5},t.prototype.isLight=function(){return W(this.rgba)>=.5},t.prototype.toHex=function(){return e=j(this.rgba),r=e.r,n=e.g,a=e.b,c=(l=e.a)<1?E(h(255*l)):"","#"+E(r)+E(n)+E(a)+c;var e,r,n,a,l,c},t.prototype.toRgb=function(){return j(this.rgba)},t.prototype.toRgbString=function(){return e=j(this.rgba),r=e.r,n=e.g,a=e.b,(l=e.a)<1?"rgba("+r+", "+n+", "+a+", "+l+")":"rgb("+r+", "+n+", "+a+")";var e,r,n,a,l},t.prototype.toHsl=function(){return rt(D(this.rgba))},t.prototype.toHslString=function(){return e=rt(D(this.rgba)),r=e.h,n=e.s,a=e.l,(l=e.a)<1?"hsla("+r+", "+n+"%, "+a+"%, "+l+")":"hsl("+r+", "+n+"%, "+a+"%)";var e,r,n,a,l},t.prototype.toHsv=function(){return e=Z(this.rgba),{h:h(e.h),s:h(e.s),v:h(e.v),a:h(e.a,3)};var e},t.prototype.invert=function(){return y({r:255-(e=this.rgba).r,g:255-e.g,b:255-e.b,a:e.a});var e},t.prototype.saturate=function(e){return e===void 0&&(e=.1),y(P(this.rgba,e))},t.prototype.desaturate=function(e){return e===void 0&&(e=.1),y(P(this.rgba,-e))},t.prototype.grayscale=function(){return y(P(this.rgba,-1))},t.prototype.lighten=function(e){return e===void 0&&(e=.1),y(at(this.rgba,e))},t.prototype.darken=function(e){return e===void 0&&(e=.1),y(at(this.rgba,-e))},t.prototype.rotate=function(e){return e===void 0&&(e=15),this.hue(this.hue()+e)},t.prototype.alpha=function(e){return typeof e=="number"?y({r:(r=this.rgba).r,g:r.g,b:r.b,a:e}):h(this.rgba.a,3);var r},t.prototype.hue=function(e){var r=D(this.rgba);return typeof e=="number"?y({h:e,s:r.s,l:r.l,a:r.a}):h(r.h)},t.prototype.isEqual=function(e){return this.toHex()===y(e).toHex()},t}(),y=function(t){return t instanceof ut?t:new ut(t)};function f(t){return t==null||t==="none"}function C(t,e=0,r=10**e){return Math.round(r*t)/r+0}function w(t,e=!1){if(typeof t!="object"||!t)return t;if(Array.isArray(t))return e?t.map(n=>w(n,e)):t;const r={};for(const n in t){const a=t[n];a!=null&&(e?r[n]=w(a,e):r[n]=a)}return r}function M(t){let e;return typeof t=="number"?e={r:t>>24&255,g:t>>16&255,b:t>>8&255,a:(t&255)/255}:e=t,y(e)}function ee(t){return{r:C(t.r),g:C(t.g),b:C(t.b),a:C(t.a,3)}}function V(t){const e=t.toString(16);return e.length<2?`0${e}`:e}const G="#000000FF";function lt(t){return M(t).isValid()}function v(t,e=!1){const r=M(t);if(!r.isValid()){if(typeof t=="string")return t;const d=`Failed to normalizeColor ${t}`;if(e)throw new Error(d);return console.warn(d),G}const{r:n,g:a,b:l,a:c}=ee(r.rgba);return`#${V(n)}${V(a)}${V(l)}${V(C(c*255))}`}var T=T||{};T.parse=function(){const t={linearGradient:/^(-(webkit|o|ms|moz)-)?(linear-gradient)/i,repeatingLinearGradient:/^(-(webkit|o|ms|moz)-)?(repeating-linear-gradient)/i,radialGradient:/^(-(webkit|o|ms|moz)-)?(radial-gradient)/i,repeatingRadialGradient:/^(-(webkit|o|ms|moz)-)?(repeating-radial-gradient)/i,sideOrCorner:/^to (left (top|bottom)|right (top|bottom)|top (left|right)|bottom (left|right)|left|right|top|bottom)/i,extentKeywords:/^(closest-side|closest-corner|farthest-side|farthest-corner|contain|cover)/,positionKeywords:/^(left|center|right|top|bottom)/i,pixelValue:/^(-?((\d*\.\d+)|(\d+\.?)))px/,percentageValue:/^(-?((\d*\.\d+)|(\d+\.?)))%/,emValue:/^(-?((\d*\.\d+)|(\d+\.?)))em/,angleValue:/^(-?((\d*\.\d+)|(\d+\.?)))deg/,radianValue:/^(-?((\d*\.\d+)|(\d+\.?)))rad/,startCall:/^\(/,endCall:/^\)/,comma:/^,/,hexColor:/^#([0-9a-f]+)/i,literalColor:/^([a-z]+)/i,rgbColor:/^rgb/i,rgbaColor:/^rgba/i,varColor:/^var/i,calcValue:/^calc/i,variableName:/^(--[a-z0-9-,\s#]+)/i,number:/^((\d*\.\d+)|(\d+\.?))/,hslColor:/^hsl/i,hslaColor:/^hsla/i};let e="";function r(i){const u=new Error(`${e}: ${i}`);throw u.source=e,u}function n(){const i=a();return e.length>0&&r("Invalid input not EOF"),i}function a(){return x(l)}function l(){return c("linear-gradient",t.linearGradient,F)||c("repeating-linear-gradient",t.repeatingLinearGradient,F)||c("radial-gradient",t.radialGradient,Bt)||c("repeating-radial-gradient",t.repeatingRadialGradient,Bt)}function c(i,u,s){return d(u,m=>{const z=s();return z&&(g(t.comma)||r("Missing comma before color stops")),{type:i,orientation:z,colorStops:x(ce)}})}function d(i,u){const s=g(i);if(s){g(t.startCall)||r("Missing (");const m=u(s);return g(t.endCall)||r("Missing )"),m}}function F(){const i=O();if(i)return i;const u=p("position-keyword",t.positionKeywords,1);return u?{type:"directional",value:u.value}:ae()}function O(){return p("directional",t.sideOrCorner,1)}function ae(){return p("angular",t.angleValue,1)||p("angular",t.radianValue,1)}function Bt(){let i,u=Kt(),s;return u&&(i=[],i.push(u),s=e,g(t.comma)&&(u=Kt(),u?i.push(u):e=s)),i}function Kt(){let i=ue()||le();if(i)i.at=Y();else{const u=X();if(u){i=u;const s=Y();s&&(i.at=s)}else{const s=Y();if(s)i={type:"default-radial",at:s};else{const m=U();m&&(i={type:"default-radial",at:m})}}}return i}function ue(){const i=p("shape",/^(circle)/i,0);return i&&(i.style=Xt()||X()),i}function le(){const i=p("shape",/^(ellipse)/i,0);return i&&(i.style=U()||H()||X()),i}function X(){return p("extent-keyword",t.extentKeywords,1)}function Y(){if(p("position",/^at/,0)){const i=U();return i||r("Missing positioning value"),i}}function U(){const i=se();if(i.x||i.y)return{type:"position",value:i}}function se(){return{x:H(),y:H()}}function x(i){let u=i();const s=[];if(u)for(s.push(u);g(t.comma);)u=i(),u?s.push(u):r("One extra comma");return s}function ce(){const i=fe();return i||r("Expected color definition"),i.length=H(),i}function fe(){return ge()||be()||pe()||ve()||he()||me()||de()}function de(){return p("literal",t.literalColor,0)}function ge(){return p("hex",t.hexColor,1)}function he(){return d(t.rgbColor,()=>({type:"rgb",value:x(L)}))}function ve(){return d(t.rgbaColor,()=>({type:"rgba",value:x(L)}))}function me(){return d(t.varColor,()=>({type:"var",value:ye()}))}function pe(){return d(t.hslColor,()=>{g(t.percentageValue)&&r("HSL hue value must be a number in degrees (0-360) or normalized (-360 to 360), not a percentage");const u=L();g(t.comma);let s=g(t.percentageValue);const m=s?s[1]:null;g(t.comma),s=g(t.percentageValue);const z=s?s[1]:null;return(!m||!z)&&r("Expected percentage value for saturation and lightness in HSL"),{type:"hsl",value:[u,m,z]}})}function be(){return d(t.hslaColor,()=>{const i=L();g(t.comma);let u=g(t.percentageValue);const s=u?u[1]:null;g(t.comma),u=g(t.percentageValue);const m=u?u[1]:null;g(t.comma);const z=L();return(!s||!m)&&r("Expected percentage value for saturation and lightness in HSLA"),{type:"hsla",value:[i,s,m,z]}})}function ye(){return g(t.variableName)[1]}function L(){return g(t.number)[1]}function H(){return p("%",t.percentageValue,1)||Se()||Ce()||Xt()}function Se(){return p("position-keyword",t.positionKeywords,1)}function Ce(){return d(t.calcValue,()=>{let i=1,u=0;for(;i>0&&u<e.length;){const m=e.charAt(u);m==="("?i++:m===")"&&i--,u++}i>0&&r("Missing closing parenthesis in calc() expression");const s=e.substring(0,u-1);return q(u-1),{type:"calc",value:s}})}function Xt(){return p("px",t.pixelValue,1)||p("em",t.emValue,1)}function p(i,u,s){const m=g(u);if(m)return{type:i,value:m[s]}}function g(i){let u,s;return s=/^\s+/.exec(e),s&&q(s[0].length),u=i.exec(e),u&&q(u[0].length),u}function q(i){e=e.substr(i)}return function(i){return e=i.toString().trim(),e.endsWith(";")&&(e=e.slice(0,-1)),n()}}();const st=T.parse.bind(T);var A=A||{};A.stringify=function(){var t={"visit_linear-gradient":function(e){return t.visit_gradient(e)},"visit_repeating-linear-gradient":function(e){return t.visit_gradient(e)},"visit_radial-gradient":function(e){return t.visit_gradient(e)},"visit_repeating-radial-gradient":function(e){return t.visit_gradient(e)},visit_gradient:function(e){var r=t.visit(e.orientation);return r&&(r+=", "),e.type+"("+r+t.visit(e.colorStops)+")"},visit_shape:function(e){var r=e.value,n=t.visit(e.at),a=t.visit(e.style);return a&&(r+=" "+a),n&&(r+=" at "+n),r},"visit_default-radial":function(e){var r="",n=t.visit(e.at);return n&&(r+=n),r},"visit_extent-keyword":function(e){var r=e.value,n=t.visit(e.at);return n&&(r+=" at "+n),r},"visit_position-keyword":function(e){return e.value},visit_position:function(e){return t.visit(e.value.x)+" "+t.visit(e.value.y)},"visit_%":function(e){return e.value+"%"},visit_em:function(e){return e.value+"em"},visit_px:function(e){return e.value+"px"},visit_calc:function(e){return"calc("+e.value+")"},visit_literal:function(e){return t.visit_color(e.value,e)},visit_hex:function(e){return t.visit_color("#"+e.value,e)},visit_rgb:function(e){return t.visit_color("rgb("+e.value.join(", ")+")",e)},visit_rgba:function(e){return t.visit_color("rgba("+e.value.join(", ")+")",e)},visit_hsl:function(e){return t.visit_color("hsl("+e.value[0]+", "+e.value[1]+"%, "+e.value[2]+"%)",e)},visit_hsla:function(e){return t.visit_color("hsla("+e.value[0]+", "+e.value[1]+"%, "+e.value[2]+"%, "+e.value[3]+")",e)},visit_var:function(e){return t.visit_color("var("+e.value+")",e)},visit_color:function(e,r){var n=e,a=t.visit(r.length);return a&&(n+=" "+a),n},visit_angular:function(e){return e.value+"deg"},visit_directional:function(e){return"to "+e.value},visit_array:function(e){var r="",n=e.length;return e.forEach(function(a,l){r+=t.visit(a),l<n-1&&(r+=", ")}),r},visit_object:function(e){return e.width&&e.height?t.visit(e.width)+" "+t.visit(e.height):""},visit:function(e){if(!e)return"";if(e instanceof Array)return t.visit_array(e);if(typeof e=="object"&&!e.type)return t.visit_object(e);if(e.type){var r=t["visit_"+e.type];if(r)return r(e);throw Error("Missing visitor visit_"+e.type)}else throw Error("Invalid node.")}};return function(e){return t.visit(e)}}();const re=A.stringify.bind(A);function ct(t){const e=t.length-1;return t.map((r,n)=>{var d;const a=r.value;let l=C(n/e,3),c="#00000000";switch(r.type){case"rgb":c=v({r:Number(a[0]??0),g:Number(a[1]??0),b:Number(a[2]??0)});break;case"rgba":c=v({r:Number(a[0]??0),g:Number(a[1]??0),b:Number(a[2]??0),a:Number(a[3]??0)});break;case"literal":c=v(r.value);break;case"hex":c=v(`#${r.value}`);break}switch((d=r.length)==null?void 0:d.type){case"%":l=Number(r.length.value)/100;break}return{offset:l,color:c}})}function ft(t){var r;let e=0;switch((r=t.orientation)==null?void 0:r.type){case"angular":e=Number(t.orientation.value);break}return{type:"linear-gradient",angle:e,stops:ct(t.colorStops)}}function dt(t){var e;return(e=t.orientation)==null||e.map(r=>{switch(r==null?void 0:r.type){case"shape":case"default-radial":case"extent-keyword":default:return null}}),{type:"radial-gradient",stops:ct(t.colorStops)}}function I(t){return t.startsWith("linear-gradient")||t.startsWith("radial-gradient")}function gt(t){return st(t).map(e=>{switch(e==null?void 0:e.type){case"linear-gradient":return ft(e);case"repeating-linear-gradient":return{...ft(e),repeat:!0};case"radial-gradient":return dt(e);case"repeating-radial-gradient":return{...dt(e),repeat:!0};default:return}}).filter(Boolean)}function ht(t){let e;return typeof t=="string"?e={color:t}:e=t,{color:v(e.color)}}function vt(t){let e;typeof t=="string"?e={image:t}:e=t;const{type:r,...n}=gt(e.image)[0]??{};switch(r){case"radial-gradient":return{radialGradient:n};case"linear-gradient":return{linearGradient:n}}return{}}function mt(t){let e;return typeof t=="string"?e={image:t}:e=t,e}function pt(t){let e;return typeof t=="string"?e={preset:t}:e=t,{preset:e.preset,foregroundColor:f(e.foregroundColor)?void 0:v(e.foregroundColor),backgroundColor:f(e.backgroundColor)?void 0:v(e.backgroundColor)}}function bt(t){return!f(t.color)}function yt(t){return typeof t=="string"?lt(t):bt(t)}function St(t){return!f(t.image)&&I(t.image)}function Ct(t){return typeof t=="string"?I(t):St(t)}function wt(t){return!f(t.image)&&!I(t.image)}function zt(t){return typeof t=="string"?!I(t):wt(t)}function kt(t){return!f(t.preset)}function _t(t){return typeof t=="string"?!1:kt(t)}function _(t){if(yt(t))return ht(t);if(Ct(t))return vt(t);if(zt(t))return mt(t);if(_t(t))return pt(t);throw new Error("Unknown fill property object")}function Nt(t){return typeof t=="string"?{..._(t),fillWithShape:!1}:{..._(t),fillWithShape:!!t.fillWithShape}}function R(){return{color:G,offsetX:0,offsetY:0,blurRadius:1}}function $(t){return{...R(),...w({...t,color:f(t.color)?G:v(t.color)})}}function Ft(){return{...R(),scaleX:1,scaleY:1}}function Dt(t){return{...Ft(),...$(t)}}function ne(t){return t}function Gt(t){return w({...t,softEdge:f(t.softEdge)?void 0:t.softEdge,outerShadow:f(t.outerShadow)?void 0:Dt(t.outerShadow),innerShadow:f(t.innerShadow)?void 0:$(t.innerShadow)})}function It(t){return typeof t=="string"?{..._(t),fillWithShape:!1}:{..._(t),fillWithShape:!!t.fillWithShape}}function Ot(t){return typeof t=="string"?{color:v(t)}:{...t,color:f(t.color)?void 0:v(t.color)}}function Lt(t){return typeof t=="string"?{color:v(t)}:{...t,color:f(t.color)?G:v(t.color)}}function Et(){return{boxShadow:"none"}}function Vt(t){return typeof t=="string"?{paths:[{data:t}]}:Array.isArray(t)?{paths:t.map(e=>typeof e=="string"?{data:e}:e)}:t}function Tt(){return{overflow:"visible",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 At(){return{rotate:0,scaleX:1,scaleY:1,skewX:0,skewY:0,translateX:0,translateY:0,transform:"none",transformOrigin:"center"}}function xt(){return{...Tt(),...At(),...Et(),backgroundImage:"none",backgroundSize:"auto, auto",backgroundColor:"none",backgroundColormap:"none",borderRadius:0,borderColor:"none",borderStyle:"solid",outlineWidth:0,outlineOffset:0,outlineColor:"rgb(0, 0, 0)",outlineStyle:"none",visibility:"visible",filter:"none",opacity:1,pointerEvents:"auto",maskImage:"none"}}function Ht(){return{highlight:{},highlightImage:"none",highlightReferImage:"none",highlightColormap:"none",highlightLine:"none",highlightSize:"cover",highlightThickness:"100%"}}function jt(){return{listStyle:{},listStyleType:"none",listStyleImage:"none",listStyleColormap:"none",listStyleSize:"cover",listStylePosition:"outside"}}function Pt(){return{...Ht(),color:"rgb(0, 0, 0)",verticalAlign:"baseline",letterSpacing:0,wordSpacing:0,fontSize:14,fontWeight:"normal",fontFamily:"",fontStyle:"normal",fontKerning:"normal",textTransform:"none",textOrientation:"mixed",textDecoration:"none"}}function Wt(){return{...jt(),writingMode:"horizontal-tb",textWrap:"wrap",textAlign:"start",textIndent:0,lineHeight:1.2}}function Mt(){return{...Wt(),...Pt(),textStrokeWidth:0,textStrokeColor:"rgb(0, 0, 0)"}}function N(t){return w({...t,color:f(t.color)?void 0:v(t.color),backgroundColor:f(t.backgroundColor)?void 0:v(t.backgroundColor),borderColor:f(t.borderColor)?void 0:v(t.borderColor),outlineColor:f(t.outlineColor)?void 0:v(t.outlineColor),shadowColor:f(t.shadowColor)?void 0:v(t.shadowColor)})}function ie(){return{...xt(),...Mt()}}function B(t=""){return(Array.isArray(t)?t:[t]).map(r=>typeof r=="string"?{fragments:[{content:r}]}:"content"in r?{fragments:[N(r)]}:"fragments"in r?{...N(r),fragments:r.fragments.map(n=>N(n))}:Array.isArray(r)?{fragments:r.map(n=>typeof n=="string"?{content:n}:N(n))}:{fragments:[]})}function Rt(t){return typeof t=="string"?{content:[{fragments:[{content:t}]}]}:"content"in t?{...t,content:B(t.content)}:{content:B(t)}}function $t(t){return typeof t=="string"?{src:t}:t}function K(t){var e;return w({...t,style:f(t.style)?void 0:N(t.style),text:f(t.text)?void 0:Rt(t.text),background:f(t.background)?void 0:Nt(t.background),shape:f(t.shape)?void 0:Vt(t.shape),fill:f(t.fill)?void 0:_(t.fill),outline:f(t.outline)?void 0:Ot(t.outline),foreground:f(t.foreground)?void 0:It(t.foreground),shadow:f(t.shadow)?void 0:Lt(t.shadow),video:f(t.video)?void 0:$t(t.video),audio:f(t.audio)?void 0:k(t.audio),effect:f(t.effect)?void 0:Gt(t.effect),children:(e=t.children)==null?void 0:e.map(r=>K(r))})}function oe(t){return K(t)}o.clearUndef=w,o.defaultColor=G,o.getDefaultElementStyle=xt,o.getDefaultHighlightStyle=Ht,o.getDefaultInnerShadow=R,o.getDefaultLayoutStyle=Tt,o.getDefaultListStyleStyle=jt,o.getDefaultOuterShadow=Ft,o.getDefaultShadowStyle=Et,o.getDefaultStyle=ie,o.getDefaultTextInlineStyle=Pt,o.getDefaultTextLineStyle=Wt,o.getDefaultTextStyle=Mt,o.getDefaultTransformStyle=At,o.isColor=lt,o.isColorFill=yt,o.isColorFillObject=bt,o.isGradient=I,o.isGradientFill=Ct,o.isGradientFillObject=St,o.isImageFill=zt,o.isImageFillObject=wt,o.isNone=f,o.isPresetFill=_t,o.isPresetFillObject=kt,o.normalizeAudio=k,o.normalizeBackground=Nt,o.normalizeColor=v,o.normalizeColorFill=ht,o.normalizeDocument=oe,o.normalizeEffect=Gt,o.normalizeElement=K,o.normalizeFill=_,o.normalizeForeground=It,o.normalizeGradient=gt,o.normalizeGradientFill=vt,o.normalizeImageFill=mt,o.normalizeInnerShadow=$,o.normalizeOuterShadow=Dt,o.normalizeOutline=Ot,o.normalizePresetFill=pt,o.normalizeShadow=Lt,o.normalizeShape=Vt,o.normalizeSoftEdge=ne,o.normalizeStyle=N,o.normalizeText=Rt,o.normalizeTextContent=B,o.normalizeVideo=$t,o.parseColor=M,o.parseGradient=st,o.round=C,o.stringifyGradient=re,Object.defineProperty(o,Symbol.toStringTag,{value:"Module"})});
package/dist/index.mjs CHANGED
@@ -723,7 +723,13 @@ function normalizeGradientFill(fill) {
723
723
  }
724
724
 
725
725
  function normalizeImageFill(fill) {
726
- return fill;
726
+ let obj;
727
+ if (typeof fill === "string") {
728
+ obj = { image: fill };
729
+ } else {
730
+ obj = fill;
731
+ }
732
+ return obj;
727
733
  }
728
734
 
729
735
  function normalizePresetFill(fill) {
@@ -740,27 +746,39 @@ function normalizePresetFill(fill) {
740
746
  };
741
747
  }
742
748
 
749
+ function isColorFillObject(fill) {
750
+ return !isNone(fill.color);
751
+ }
752
+ function isColorFill(fill) {
753
+ return typeof fill === "string" ? isColor(fill) : isColorFillObject(fill);
754
+ }
755
+ function isGradientFillObject(fill) {
756
+ return !isNone(fill.image) && isGradient(fill.image);
757
+ }
758
+ function isGradientFill(fill) {
759
+ return typeof fill === "string" ? isGradient(fill) : isGradientFillObject(fill);
760
+ }
761
+ function isImageFillObject(fill) {
762
+ return !isNone(fill.image) && !isGradient(fill.image);
763
+ }
764
+ function isImageFill(fill) {
765
+ return typeof fill === "string" ? !isGradient(fill) : isImageFillObject(fill);
766
+ }
767
+ function isPresetFillObject(fill) {
768
+ return !isNone(fill.preset);
769
+ }
770
+ function isPresetFill(fill) {
771
+ return typeof fill === "string" ? false : isPresetFillObject(fill);
772
+ }
743
773
  function normalizeFill(fill) {
744
- if (typeof fill === "string") {
745
- if (isColor(fill)) {
746
- return normalizeColorFill({ color: fill });
747
- } else if (isGradient(fill)) {
748
- return normalizeGradientFill({ image: fill });
749
- } else {
750
- return normalizeImageFill({ image: fill });
751
- }
752
- } else {
753
- if (!isNone(fill.color)) {
754
- return normalizeColorFill(fill);
755
- } else if (!isNone(fill.image)) {
756
- if (isGradient(fill.image)) {
757
- return normalizeGradientFill(fill);
758
- } else {
759
- return normalizeImageFill(fill);
760
- }
761
- } else if (isNone(fill.preset)) {
762
- return normalizePresetFill(fill);
763
- }
774
+ if (isColorFill(fill)) {
775
+ return normalizeColorFill(fill);
776
+ } else if (isGradientFill(fill)) {
777
+ return normalizeGradientFill(fill);
778
+ } else if (isImageFill(fill)) {
779
+ return normalizeImageFill(fill);
780
+ } else if (isPresetFill(fill)) {
781
+ return normalizePresetFill(fill);
764
782
  }
765
783
  throw new Error("Unknown fill property object");
766
784
  }
@@ -1160,4 +1178,4 @@ function normalizeDocument(doc) {
1160
1178
  return normalizeElement(doc);
1161
1179
  }
1162
1180
 
1163
- export { clearUndef, defaultColor, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultInnerShadow, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOuterShadow, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, isColor, isGradient, isNone, normalizeAudio, normalizeBackground, normalizeColor, normalizeColorFill, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeInnerShadow, normalizeOuterShadow, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeSoftEdge, normalizeStyle, normalizeText, normalizeTextContent, normalizeVideo, parseColor, parseGradient, round, stringifyGradient };
1181
+ export { clearUndef, defaultColor, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultInnerShadow, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOuterShadow, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, isColor, isColorFill, isColorFillObject, isGradient, isGradientFill, isGradientFillObject, isImageFill, isImageFillObject, isNone, isPresetFill, isPresetFillObject, normalizeAudio, normalizeBackground, normalizeColor, normalizeColorFill, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeInnerShadow, normalizeOuterShadow, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeSoftEdge, normalizeStyle, normalizeText, normalizeTextContent, normalizeVideo, parseColor, parseGradient, round, stringifyGradient };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "modern-idoc",
3
3
  "type": "module",
4
- "version": "0.6.3",
4
+ "version": "0.6.5",
5
5
  "packageManager": "pnpm@9.15.1",
6
6
  "description": "Intermediate document for modern codec libs",
7
7
  "author": "wxm",