presenter 0.5.1 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/354.js +2 -0
  2. package/dist/354.js.LICENSE.txt +20 -0
  3. package/dist/661.js +1 -0
  4. package/dist/838.js +2 -0
  5. package/dist/838.js.LICENSE.txt +1 -0
  6. package/dist/jest.config.d.ts +13 -0
  7. package/dist/presenter-code.js +1 -0
  8. package/dist/presenter-export.js +2 -0
  9. package/dist/presenter-export.js.LICENSE.txt +313 -0
  10. package/dist/presenter-morph.js +1 -0
  11. package/dist/presenter.js +1 -0
  12. package/dist/src/code/codeBlock.d.ts +83 -0
  13. package/dist/src/code/index.d.ts +1 -0
  14. package/dist/src/export/index.d.ts +24 -0
  15. package/dist/src/export/util.d.ts +4 -0
  16. package/dist/src/index.d.ts +24 -0
  17. package/dist/src/library/bullets.d.ts +15 -0
  18. package/dist/src/library/mainTitle.d.ts +4 -0
  19. package/dist/src/library/slideTitle.d.ts +4 -0
  20. package/dist/src/morph/index.d.ts +34 -0
  21. package/dist/src/objects/arrow.d.ts +62 -0
  22. package/dist/src/objects/circle.d.ts +12 -0
  23. package/dist/src/objects/grid.d.ts +17 -0
  24. package/dist/src/objects/group.d.ts +22 -0
  25. package/dist/src/objects/iframe.d.ts +16 -0
  26. package/dist/src/objects/image.d.ts +20 -0
  27. package/dist/src/objects/line.d.ts +19 -0
  28. package/dist/src/objects/paragraph.d.ts +21 -0
  29. package/dist/src/objects/path.d.ts +27 -0
  30. package/dist/src/objects/polygon.d.ts +13 -0
  31. package/dist/src/objects/rectangle.d.ts +14 -0
  32. package/dist/src/objects/screenCapture.d.ts +17 -0
  33. package/dist/src/objects/text.d.ts +63 -0
  34. package/dist/src/objects/text.test.d.ts +1 -0
  35. package/dist/src/objects/vectorGraphic.d.ts +48 -0
  36. package/dist/src/presentation/object.d.ts +131 -0
  37. package/dist/src/presentation/presentation.d.ts +153 -0
  38. package/dist/src/presentation/presentation.test.d.ts +1 -0
  39. package/dist/src/presentation/slide.d.ts +43 -0
  40. package/dist/src/presentation/storage.d.ts +9 -0
  41. package/dist/src/util/animation.d.ts +60 -0
  42. package/dist/src/util/easing.d.ts +12 -0
  43. package/dist/src/util/easing.test.d.ts +1 -0
  44. package/dist/src/util/position.d.ts +11 -0
  45. package/dist/src/util/richText.d.ts +18 -0
  46. package/dist/webpack.config.d.ts +70 -0
  47. package/package.json +1 -1
@@ -0,0 +1,13 @@
1
+ import { ObjectProps, SlideObject } from "../presentation/object";
2
+ import { Position } from "../util/position";
3
+ export interface PolygonProps extends ObjectProps {
4
+ points: Position[];
5
+ fill: string;
6
+ borderWidth: number;
7
+ borderColor: string;
8
+ }
9
+ export declare class Polygon extends SlideObject<PolygonProps> {
10
+ constructor(points: Position[], props?: Partial<PolygonProps>);
11
+ tagName(): string;
12
+ attributes(): Partial<Record<string, string>>;
13
+ }
@@ -0,0 +1,14 @@
1
+ import { ObjectProps, SlideObject } from "../presentation/object";
2
+ export interface RectangleProps extends ObjectProps {
3
+ fill: string;
4
+ width: number;
5
+ height: number;
6
+ rounding: number;
7
+ borderWidth: number;
8
+ borderColor: string;
9
+ }
10
+ export declare class Rectangle extends SlideObject<RectangleProps> {
11
+ constructor(props?: Partial<RectangleProps>);
12
+ tagName(): string;
13
+ attributes(): Partial<Record<string, string>>;
14
+ }
@@ -0,0 +1,17 @@
1
+ import { ObjectProps, SlideObject } from "../presentation/object";
2
+ export interface ScreenCaptureProps extends ObjectProps {
3
+ width: string | number | null;
4
+ height: string | number | null;
5
+ scale: number;
6
+ align: "left" | "center" | "right";
7
+ }
8
+ export declare class ScreenCapture extends SlideObject<ScreenCaptureProps> {
9
+ videoElement: HTMLVideoElement | null;
10
+ constructor(props?: Partial<ScreenCaptureProps>);
11
+ tagName(): string;
12
+ attributes(): Partial<Record<string, string>>;
13
+ styles(): {
14
+ "text-align": "left" | "center" | "right";
15
+ };
16
+ children(): HTMLVideoElement[];
17
+ }
@@ -0,0 +1,63 @@
1
+ import { ObjectProps, SlideObject } from "../presentation/object";
2
+ import { BuildFunction } from "../util/animation";
3
+ import { RichTextSpan } from "../util/richText";
4
+ export type TextContent = string | (string | RichTextSpan[])[];
5
+ export interface TextProps extends ObjectProps {
6
+ content: TextContent;
7
+ fontStyle: string;
8
+ fontWeight: string | number;
9
+ fontSize: number;
10
+ fontFamily: string;
11
+ color: string;
12
+ dominantBaseline: string;
13
+ textDecoration: string;
14
+ baselineHeight: number;
15
+ length: number | null;
16
+ align: "left" | "center" | "right";
17
+ lineSpacing: string;
18
+ ligatures: string | null;
19
+ }
20
+ export declare class Text extends SlideObject<TextProps> {
21
+ constructor(content: TextContent, props?: Partial<TextProps>);
22
+ isRichText(): boolean;
23
+ tagName(): string;
24
+ attributes(): Partial<Record<string, string>>;
25
+ /**
26
+ * Text elements return position as additional attributes since computing text
27
+ * size and position requires other properties to be set first.
28
+ */
29
+ additionalAttributes(): Partial<Record<string, string>>;
30
+ styles(): Partial<Record<string, string>>;
31
+ children(): Node[];
32
+ requiresChildrenUpdate(props: Partial<TextProps>): boolean;
33
+ /**
34
+ * Returns the number of characters in the total text content.
35
+ */
36
+ contentLength(): number;
37
+ /**
38
+ * Returns the children of a text node, up to a particular content length.
39
+ */
40
+ childrenWithContentLength(length: number | null): Node[];
41
+ regenerateChildren(): void;
42
+ animate(props: Partial<TextProps>, animationParams?: anime.AnimeParams, delay?: number | null, animate?: boolean): BuildFunction;
43
+ /**
44
+ * Returns a write-on animation for changing the characters.
45
+ *
46
+ * Writing on text requires a different approach than other text animations
47
+ * since the children of the element need to be replaced.
48
+ */
49
+ writeOn(length?: number | null, duration?: number, animate?: boolean): BuildFunction;
50
+ /**
51
+ * Sets position attributes of text and re-generates any children.
52
+ *
53
+ * This is because re-generating children alone won't change the position
54
+ * attributes, which menas the text might be mis-aligned.
55
+ */
56
+ generateChildrenAndReposition(): void;
57
+ /**
58
+ * Animates the content of a text element via an
59
+ * interpolation function that returns the text content
60
+ * for a given progress amount.
61
+ */
62
+ animateContent(computeContent: (proportion: number) => TextContent, duration?: number): BuildFunction;
63
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,48 @@
1
+ import { ObjectProps, SlideObject } from "../presentation/object";
2
+ import { AnimationProps, BuildFunction } from "../util/animation";
3
+ export interface VectorGraphicProps extends ObjectProps {
4
+ svg: string;
5
+ width: number;
6
+ height: number;
7
+ }
8
+ interface DrawOnProps {
9
+ color: string;
10
+ strokeWidth: number;
11
+ fill: boolean;
12
+ fillColor: string | null;
13
+ drawDuration: number;
14
+ fillDuration: number;
15
+ easing: string;
16
+ pathLength: number | null;
17
+ /**
18
+ * Controls whether there should still be a stroke present at end of animation.
19
+ * If `endWithoutStroke` is true, the stroke width fades out to 0 at the end.
20
+ */
21
+ endWithoutStroke: boolean;
22
+ }
23
+ export declare class VectorGraphic extends SlideObject<VectorGraphicProps> {
24
+ parsedChildren: Node[];
25
+ /**
26
+ * Returns an SVG node given string content.
27
+ */
28
+ static svgNode(content: string): SVGElement;
29
+ constructor(svg: string, props?: Partial<VectorGraphicProps>);
30
+ tagName(): string;
31
+ createElement(): SVGElement;
32
+ attributes(): Partial<Record<string, string>>;
33
+ children(): Node[];
34
+ /**
35
+ * Perform animation on a particular path of the graphic.
36
+ * Requires specifying `attributes` or `styles` for path animation props.
37
+ */
38
+ animatePath(selector: string, props: Partial<AnimationProps>, duration?: number, animate?: boolean): BuildFunction;
39
+ /**
40
+ * Sets path animation properties without animating.
41
+ */
42
+ setPath(selector: string, props: Partial<AnimationProps>): BuildFunction;
43
+ /**
44
+ * Animates the drawing on of a particular path.
45
+ */
46
+ drawOn(selector: string, props?: Partial<DrawOnProps>): BuildFunction;
47
+ }
48
+ export {};
@@ -0,0 +1,131 @@
1
+ import { BoundingBox, Position } from "../util/position";
2
+ import { Presentation } from "./presentation";
3
+ import { BuildFunction } from "../util/animation";
4
+ export type Anchor = "topleft" | "top" | "topright" | "left" | "center" | "right" | "bottomleft" | "bottom" | "bottomright";
5
+ export interface ObjectProps {
6
+ position: Position | null;
7
+ opacity?: number;
8
+ anchor: Anchor;
9
+ }
10
+ export declare class SlideObject<Props extends ObjectProps> {
11
+ /**
12
+ * Starting values for each property.
13
+ */
14
+ initialProps: Props;
15
+ /**
16
+ * Current values for each property.
17
+ */
18
+ props: Props;
19
+ _presentation: Presentation | null;
20
+ _element: SVGElement | null;
21
+ _children: Node[];
22
+ /**
23
+ * Initializes a new object to include on a slide.
24
+ * @param props Object properties.
25
+ */
26
+ constructor(props: Partial<Props>);
27
+ /**
28
+ * Returns the tag name of the element.
29
+ * @returns Tag name.
30
+ */
31
+ tagName(): string;
32
+ /**
33
+ * Returns the DOM attributes that should be set for the element.
34
+ * @returns Object with attribute names and values.
35
+ */
36
+ attributes(): Partial<Record<string, string>>;
37
+ /**
38
+ * Returns additional DOM attributes to be set for the element.
39
+ * Some attributes can't be computed until after an element's other properties are set:
40
+ * e.g. text position depends on content and font size.
41
+ * Additional attributes are computed after all other attributes, styles, and children.
42
+ * @returns Object with attribute names and values.
43
+ */
44
+ additionalAttributes(): Partial<Record<string, string>>;
45
+ /**
46
+ * Returns the styles that should be set for the element.
47
+ * @returns Object with style names and values.
48
+ */
49
+ styles(): Partial<Record<string, string>>;
50
+ /**
51
+ * Returns the children that should be rendered for the object.
52
+ * @returns Array of SVG elements.
53
+ */
54
+ children(): Node[];
55
+ /**
56
+ * Given a set of prop updates, checks if the children of the object need to be updated.
57
+ * @param props Properties to update.
58
+ * @returns Boolean indicating whether children need to be updated.
59
+ */
60
+ requiresChildrenUpdate(props: Partial<Props>): boolean;
61
+ /**
62
+ * Given a particular initial bounding box, returns the DOM position attributes that should be set for the element.
63
+ * @param bbox Bounding box.
64
+ * @returns Object with attribute names and values.
65
+ */
66
+ positionAttributes(bbox: BoundingBox): any;
67
+ /**
68
+ * Re-generates the SVG element for the object.
69
+ * @param presentation Presentation object.
70
+ * @returns SVG element.
71
+ */
72
+ generate(presentation: Presentation): SVGElement;
73
+ /**
74
+ * Creates a new HTML element for the object.
75
+ */
76
+ createElement(): SVGElement;
77
+ /**
78
+ * Returns the element for the object.
79
+ * @returns SVG element.
80
+ */
81
+ element(): SVGElement;
82
+ /**
83
+ * Returns an animation to perform.
84
+ * @param props Properties of object to change.
85
+ * @param animationParams Animation behavior parameters.
86
+ * @returns Animation build function.
87
+ */
88
+ animate(props: Partial<Props>, animationParams?: anime.AnimeParams, delay?: number | null, animate?: boolean): BuildFunction;
89
+ /**
90
+ * Returns an update animation that skips the animation and just performs the change.
91
+ * @param props Properties of object to change.
92
+ */
93
+ set(props: Partial<Props>, delay?: number | null): BuildFunction;
94
+ /**
95
+ * Animates a movement of the object.
96
+ */
97
+ move(position: Position, animationParams?: anime.AnimeParams): BuildFunction;
98
+ /**
99
+ * Animates fading an object into view.
100
+ */
101
+ fadeIn(animationParams?: anime.AnimeParams): BuildFunction;
102
+ /**
103
+ * Animates fading an object out of view.
104
+ */
105
+ fadeOut(animationParams?: anime.AnimeParams): BuildFunction;
106
+ /**
107
+ * Sets an objects opacity to 1.
108
+ */
109
+ show(): BuildFunction;
110
+ /**
111
+ * Sets an objects opacity to 0.
112
+ */
113
+ hide(): BuildFunction;
114
+ /**
115
+ * Allow for x and y values to be interpreted as percentages of total width/height.
116
+ */
117
+ positionInPresentation(position: Position): Position;
118
+ /**
119
+ * Adjusts a bounding box to be anchored given the object's vertical and horizontal anchor settings.
120
+ * @param bbox Bounding box to anchor.
121
+ * @returns Anchored bounding box.
122
+ */
123
+ anchorBoundingBox(bbox: BoundingBox): BoundingBox;
124
+ /**
125
+ * Computes a bounding box for a given element given its rendered size and defined position.
126
+ * @param element Element for which to compute size.
127
+ * @param children Custom children to use when computing bounding box.
128
+ * @returns
129
+ */
130
+ computeRenderedBoundingBox(element: SVGGraphicsElement, children?: Node[] | null): BoundingBox;
131
+ }
@@ -0,0 +1,153 @@
1
+ import { BoundingBox } from "../util/position";
2
+ import { Slide } from "./slide";
3
+ export interface PresentationFont {
4
+ url: string;
5
+ fontFamily: string;
6
+ fontStyle?: string;
7
+ fontWeight?: string | number;
8
+ }
9
+ export interface PresentationOptions {
10
+ /**
11
+ * Width of the presentation.
12
+ */
13
+ width: number;
14
+ /**
15
+ * Height of the presentation.
16
+ */
17
+ height: number;
18
+ /**
19
+ * Slide color for the presentation.
20
+ */
21
+ backgroundColor: string;
22
+ /**
23
+ * Fonts to embed in PDF export.
24
+ */
25
+ fonts: PresentationFont[];
26
+ /**
27
+ * How long cached presentation state should be valid for, in minutes.
28
+ * `null` menas don't use cached data at all.
29
+ * `0` means use cached data indefinitely.
30
+ *
31
+ * When presentation state is cached, reloading the presentation returns
32
+ * the user to the slide and build they were on previously.
33
+ */
34
+ stateCacheTTL: number | null;
35
+ }
36
+ interface PresentationState {
37
+ currentSlide: number;
38
+ }
39
+ export declare class Presentation {
40
+ /**
41
+ * Title of the presentation.
42
+ */
43
+ title: string;
44
+ /**
45
+ * Element where presentation should be mounted.
46
+ */
47
+ element: HTMLElement;
48
+ /**
49
+ * SVG container element.
50
+ */
51
+ container: HTMLElement;
52
+ /**
53
+ * Parent SVG element of presentation.
54
+ */
55
+ svg: SVGSVGElement | null;
56
+ /**
57
+ * Shadow SVG element, not displayed and used for calculating sizes.
58
+ */
59
+ shadow: SVGSVGElement | null;
60
+ /**
61
+ * Background SVG element, used for rendering background color.
62
+ */
63
+ background: SVGSVGElement | null;
64
+ /**
65
+ * Additional element container for elements that aren't part of the SVG.
66
+ */
67
+ additionalElementContainer: HTMLElement | null;
68
+ /**
69
+ * Element that allows navigation between different slides.
70
+ */
71
+ navigatorContainer: HTMLElement | null;
72
+ /**
73
+ * Presentation settings.
74
+ */
75
+ options: PresentationOptions;
76
+ /**
77
+ * Bounds of presentation.
78
+ */
79
+ boundingBox: BoundingBox;
80
+ /**
81
+ * Presentation slides.
82
+ */
83
+ slides: Slide[];
84
+ /**
85
+ * Presentation state.
86
+ */
87
+ presentationState: PresentationState;
88
+ /**
89
+ * Keyboard shortcut access to jump to particular slides.
90
+ * A null slide index indicates not changing the slide
91
+ * (i.e. keeping the same slide active.)
92
+ */
93
+ shortcuts: Record<string, {
94
+ slideIndex: number | null;
95
+ animationIndex: number;
96
+ }>;
97
+ /**
98
+ * Current text command that the presenter has entered into presentation.
99
+ */
100
+ textCommand: {
101
+ active: boolean;
102
+ command: string;
103
+ };
104
+ slideCleanupHandlers: (() => void)[];
105
+ /**
106
+ *
107
+ * @param title Title of the presentation.
108
+ */
109
+ constructor(title: string, slides: Slide[], element: HTMLElement, options?: Partial<PresentationOptions>);
110
+ present(): void;
111
+ /**
112
+ * Renders a slide.
113
+ */
114
+ renderSlide(slideIndex: number, animationIndex?: number | "last"): void;
115
+ /**
116
+ * Sets up keyboard commands for the presentation.
117
+ */
118
+ setupKeyboardCommands(): void;
119
+ handleKeyboardEvent(event: KeyboardEvent): void;
120
+ resetTextCommand(): void;
121
+ /**
122
+ * Updates the size of the parent SVG element.
123
+ *
124
+ * The size of the parent SVG element needs to be updated.
125
+ */
126
+ updateSVGContainerSize(): void;
127
+ /**
128
+ * Advances to next animation in slide, or next slide if there is no next animation.
129
+ * Returns true if we were able to successfully advance.
130
+ * @param includeIntermediateBuilds Determines whether to progress through builds.
131
+ */
132
+ next(includeIntermediateBuilds: boolean): Promise<boolean>;
133
+ /**
134
+ * Goes back to the previous slide.
135
+ * @param includeIntermediateBuilds Determines whether to progress through builds.
136
+ */
137
+ previous(includeIntermediateBuilds: boolean): void;
138
+ /**
139
+ * Checks if the presentation takes the entire document body.
140
+ * @returns True if the presentation takes the entire document body.
141
+ */
142
+ isFullBodyPresentation(): boolean;
143
+ /**
144
+ * Computes the current size of an element in the DOM.
145
+ * Optionally accepts a custom list of children to see what the size of an
146
+ * element would be with different children.
147
+ * @param element Element to compute size of.
148
+ * @param children Custom children to use for element.
149
+ * @returns BoundingBox
150
+ */
151
+ computeRenderedBoundingBox(element: SVGGraphicsElement, children?: Node[] | null): BoundingBox;
152
+ }
153
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,43 @@
1
+ import { BuildFunctionSequence } from "../util/animation";
2
+ import { SlideObject } from "./object";
3
+ import { Presentation } from "./presentation";
4
+ export interface SlideProps {
5
+ /**
6
+ * An optional title for the slide, shown in navigation bar.
7
+ */
8
+ title: string | null;
9
+ /**
10
+ * Additional HTML element to show behind SVG content.
11
+ */
12
+ additionalElement: HTMLElement | (() => HTMLElement) | null;
13
+ /**
14
+ * A shortcut allows a keyboard shortcut to link directly to a slide.
15
+ * Represented as either just a string (the shortcut),
16
+ * or a string and number (shortcut and animation index).
17
+ */
18
+ shortcuts: (string | [string, number])[];
19
+ }
20
+ export declare class Slide {
21
+ objects: SlideObject<any>[];
22
+ animations: BuildFunctionSequence;
23
+ /**
24
+ * Which animation we're set to render next.
25
+ * Slides start with animationIndex = 0.
26
+ */
27
+ animationIndex: number;
28
+ /**
29
+ * Property used by the presenter-export package to note which
30
+ * animations of the slide are meant to be exported.
31
+ * "first", "last", "all", and "none" are special-cased values,
32
+ * otherwise it can be an animationIndex in [0, animations.length].
33
+ */
34
+ keyBuilds: "first" | "last" | "all" | "none" | number[] | null;
35
+ props: SlideProps;
36
+ constructor(objects: SlideObject<any>[], animations?: BuildFunctionSequence, props?: Partial<SlideProps>);
37
+ render(presentation: Presentation, animationIndex?: number): void;
38
+ nextAnimation(): Promise<boolean>;
39
+ /**
40
+ * Returns the build indices that are meant to be exported.
41
+ */
42
+ getKeyBuilds(): number[];
43
+ }
@@ -0,0 +1,9 @@
1
+ import { Presentation } from "./presentation";
2
+ export declare function storePresentationState(presentation: Presentation): void;
3
+ /**
4
+ * Restores the presentation state from the cache, if it exists and isn't older
5
+ * than the cache TTL in minutes.
6
+ *
7
+ * Returns `true` if the presentation state was updated.
8
+ */
9
+ export declare function restorePresentationState(presentation: Presentation, ttl: number | null): boolean;
@@ -0,0 +1,60 @@
1
+ import anime from "animejs/lib/anime.es.js";
2
+ export { anime };
3
+ /**
4
+ * Data needed to process an animation.
5
+ */
6
+ export interface AnimationProps {
7
+ /**
8
+ * Whether to animate the change.
9
+ */
10
+ animate?: boolean;
11
+ element?: HTMLElement | SVGElement;
12
+ attributes?: Record<string, string>;
13
+ styles?: Record<string, string>;
14
+ animationParams?: anime.AnimeParams;
15
+ children?: Node[];
16
+ /**
17
+ * Delay, in milliseconds.
18
+ */
19
+ delay?: number;
20
+ /**
21
+ * An animation can also specify custom functions that can be called to
22
+ * perform an animation or update to the end state of the animation.
23
+ */
24
+ animateCallback?: () => void;
25
+ updateCallback?: () => void;
26
+ }
27
+ /**
28
+ * Function that performs an animation on an element.
29
+ */
30
+ export type Animator = (props: AnimationProps | AnimationProps[]) => Promise<void>;
31
+ /**
32
+ * Function that possibly applies a sequence of animations.
33
+ */
34
+ export type BuildFunction = (animate: Animator) => void;
35
+ /**
36
+ * A build function sequence is a sequence, where each element is a build
37
+ * function or a list of build functions to be performed on the same build.
38
+ *
39
+ * In a list of build functions, a number in place of a build function represents a delay.
40
+ */
41
+ export type BuildFunctionSequence = (BuildFunction | (BuildFunction | number)[])[];
42
+ /**
43
+ * Perform an animation on an element.
44
+ * @param props Animation properties.
45
+ */
46
+ export declare const performAnimation: Animator;
47
+ /**
48
+ * Performs animations by skipping the animation duration and jumping to end of animation.
49
+ * @param props Animation properties.
50
+ */
51
+ export declare const skipAnimation: Animator;
52
+ /**
53
+ * When performing animations on non-DOM elements, e.g. variables in the state
54
+ * of a Three.js scene, we need a unchanging reference to state that may get
55
+ * replaced. That state can hold any type.
56
+ */
57
+ export interface StateContainer<T> {
58
+ state: T;
59
+ }
60
+ export declare function animateStateChange<T>(state: StateContainer<T>, finalState: Partial<T>, duration?: number): BuildFunction;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Clamps a value to a given range.
3
+ */
4
+ export declare function clamp(value: number, min: number, max: number): number;
5
+ /**
6
+ * Maps a [0, 1] value linearly onto [0, 1].
7
+ */
8
+ export declare function easeLinear(value: number): number;
9
+ /**
10
+ * Maps a [0, 1] value onto [0, 1] via a smoothstep cubic easing function.
11
+ */
12
+ export declare function easeCubic(value: number): number;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,11 @@
1
+ export interface Position {
2
+ x: number;
3
+ y: number;
4
+ }
5
+ export declare class BoundingBox {
6
+ origin: Position;
7
+ width: number;
8
+ height: number;
9
+ constructor(origin: Position, width: number, height: number);
10
+ static fromElement(element: SVGGraphicsElement): BoundingBox;
11
+ }
@@ -0,0 +1,18 @@
1
+ import { TextContent } from "../objects/text";
2
+ export interface RichTextProps {
3
+ fontStyle?: string;
4
+ fontWeight?: string | number;
5
+ fontSize?: string | number;
6
+ fontFamily?: string;
7
+ textDecoration?: string;
8
+ color?: string;
9
+ dy?: number;
10
+ superscript?: boolean;
11
+ subscript?: boolean;
12
+ }
13
+ export type RichTextSpan = string | [string, RichTextProps];
14
+ export declare function preserveLeadingSpaces(content: TextContent): TextContent;
15
+ /**
16
+ * Given rich text configuration, returns the corresponding tspan nodes.
17
+ */
18
+ export declare function generateTextNodes(lines: (string | RichTextSpan[])[], lineSpacing?: string, anchor?: "start" | "middle" | "end"): Node[];
@@ -0,0 +1,70 @@
1
+ export let mode: string;
2
+ export namespace entry {
3
+ export namespace presenter {
4
+ let _import: string;
5
+ export { _import as import };
6
+ export let filename: string;
7
+ export namespace library {
8
+ let name: string;
9
+ let type: string;
10
+ }
11
+ }
12
+ export namespace _export {
13
+ let _import_1: string;
14
+ export { _import_1 as import };
15
+ let filename_1: string;
16
+ export { filename_1 as filename };
17
+ export namespace library_1 {
18
+ let name_1: string;
19
+ export { name_1 as name };
20
+ let type_1: string;
21
+ export { type_1 as type };
22
+ }
23
+ export { library_1 as library };
24
+ }
25
+ export { _export as export };
26
+ export namespace morph {
27
+ let _import_2: string;
28
+ export { _import_2 as import };
29
+ let filename_2: string;
30
+ export { filename_2 as filename };
31
+ export namespace library_2 {
32
+ let name_2: string;
33
+ export { name_2 as name };
34
+ let type_2: string;
35
+ export { type_2 as type };
36
+ }
37
+ export { library_2 as library };
38
+ }
39
+ export namespace code {
40
+ let _import_3: string;
41
+ export { _import_3 as import };
42
+ let filename_3: string;
43
+ export { filename_3 as filename };
44
+ export namespace library_3 {
45
+ let name_3: string;
46
+ export { name_3 as name };
47
+ let type_3: string;
48
+ export { type_3 as type };
49
+ }
50
+ export { library_3 as library };
51
+ }
52
+ }
53
+ export namespace output {
54
+ let path: string;
55
+ let libraryTarget: string;
56
+ let globalObject: string;
57
+ }
58
+ export namespace watchOptions {
59
+ let ignored: string[];
60
+ }
61
+ export namespace resolve {
62
+ let extensions: string[];
63
+ }
64
+ export namespace module {
65
+ let rules: {
66
+ test: RegExp;
67
+ use: string;
68
+ exclude: RegExp[];
69
+ }[];
70
+ }