presenter 0.8.8 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/dist/export/powerpoint-renderer/objects/renderSpotlight.d.ts +3 -0
  2. package/dist/export/powerpoint-renderer/types/PowerPointObjectRenderer.d.ts +2 -0
  3. package/dist/export.js +47 -47
  4. package/dist/export.js.map +1 -1
  5. package/dist/export.mjs +1186 -1028
  6. package/dist/export.mjs.map +1 -1
  7. package/dist/index.d.ts +2 -0
  8. package/dist/objects/Spotlight.d.ts +19 -0
  9. package/dist/presenter.js +2 -2
  10. package/dist/presenter.js.map +1 -1
  11. package/dist/presenter.mjs +1573 -1271
  12. package/dist/presenter.mjs.map +1 -1
  13. package/dist/renderer/browser-canvas/BrowserCanvasRenderer.d.ts +1 -0
  14. package/dist/renderer/browser-canvas/objects/renderSpotlight.d.ts +3 -0
  15. package/dist/renderer/browser-canvas/types/BrowserCanvasObjectRenderer.d.ts +3 -0
  16. package/dist/renderer/browser-canvas/utils/getSizeFromTextMetrics.d.ts +5 -1
  17. package/dist/renderer/browser-canvas/utils/text/getTextLayout.d.ts +18 -0
  18. package/dist/renderer/browser-canvas/utils/text/getTextUnitMeasurements.d.ts +1 -0
  19. package/dist/renderer/browser-canvas/utils/variables/createVariableControlsElement.d.ts +6 -0
  20. package/dist/renderer/browser-canvas/utils/variables/mountVariableControls.d.ts +6 -0
  21. package/dist/types/ObjectType.d.ts +1 -0
  22. package/dist/types/Variable.d.ts +19 -0
  23. package/dist/utils/objects/spotlight/getSpotlightCutout.d.ts +8 -0
  24. package/dist/utils/objects/spotlight/getSpotlightPath.d.ts +10 -0
  25. package/dist/utils/storage/variableStorage.d.ts +2 -0
  26. package/package.json +1 -1
  27. package/dist/utils/size/getCombinedSizes2D.d.ts +0 -7
  28. /package/dist/{utils/size/getCombinedSizes2D.test.d.ts → renderer/browser-canvas/utils/text/getTextLayout.test.d.ts} +0 -0
@@ -8,6 +8,7 @@ export declare class BrowserCanvasRenderer {
8
8
  constructor(props: Partial<BrowserCanvasRendererProps>);
9
9
  /** Starts the presentation. */
10
10
  present(): Promise<void>;
11
+ private reloadAfterVariableChange;
11
12
  renderSlide(slideIndex: number, buildIndex?: number, buildTime?: number | null): void;
12
13
  renderCanvas(canvas: HTMLCanvasElement, slideIndex: number, buildIndex?: number, buildTime?: number | null, scale?: number): void;
13
14
  updateNavigator(): void;
@@ -0,0 +1,3 @@
1
+ import { Spotlight } from '../../../objects/Spotlight';
2
+ import { BrowserCanvasObjectRenderer } from '../types/BrowserCanvasObjectRenderer';
3
+ export declare const renderSpotlight: BrowserCanvasObjectRenderer<Spotlight>;
@@ -1,3 +1,4 @@
1
+ import { Size } from '../../../types/Size';
1
2
  import { SlideObject } from '../../../types/SlideObject';
2
3
  import { UnifiedCanvasContext } from './UnifiedCanvasContext';
3
4
  import { UnifiedImage } from './UnifiedImage';
@@ -6,6 +7,8 @@ export interface BrowserCanvasObjectRendererArgs<T extends SlideObject> {
6
7
  readonly ctx: UnifiedCanvasContext;
7
8
  readonly object: T;
8
9
  readonly opacity: number;
10
+ readonly renderScale: number;
11
+ readonly slideSize: Size;
9
12
  readonly imageById: Record<string, UnifiedImage>;
10
13
  readonly createPath2D: (path?: string) => UnifiedPath2D;
11
14
  readonly renderObject: (object: SlideObject, overallOpacity: number) => void;
@@ -1,2 +1,6 @@
1
1
  import { Size } from '../../../types/Size';
2
- export declare function getSizeFromTextMetrics(textMetrics: TextMetrics): Size;
2
+ export interface TextMetricsSize extends Size {
3
+ readonly bottom: number;
4
+ readonly top: number;
5
+ }
6
+ export declare function getSizeFromTextMetrics(textMetrics: TextMetrics): TextMetricsSize;
@@ -0,0 +1,18 @@
1
+ import { Size } from '../../../../types/Size';
2
+ import { TextUnitMeasurement } from './getTextUnitMeasurements';
3
+ export interface TextLineLayout extends Size {
4
+ readonly baselineY: number;
5
+ readonly bottom: number;
6
+ readonly lineAdvance: number;
7
+ readonly top: number;
8
+ }
9
+ export interface TextLayout {
10
+ readonly lines: readonly TextLineLayout[];
11
+ readonly size: Size;
12
+ }
13
+ /**
14
+ * Computes text block bounds and per-line baseline positions.
15
+ *
16
+ * Accepts as input per-line measurements for each text unit, plus a desired line spacing.
17
+ */
18
+ export declare function getTextLayout(lineMeasurements: readonly (readonly TextUnitMeasurement[])[], lineSpacing?: number): TextLayout;
@@ -5,6 +5,7 @@ import { UnifiedCanvasContext } from '../../types/UnifiedCanvasContext';
5
5
  export interface TextUnitMeasurement extends Size {
6
6
  readonly baselineShift: number;
7
7
  readonly bottom: number;
8
+ readonly lineAdvance: number;
8
9
  readonly top: number;
9
10
  }
10
11
  export declare function getTextUnitMeasurements(textUnits: TextUnit[][], style: TextStyle, ctx: UnifiedCanvasContext): TextUnitMeasurement[][];
@@ -0,0 +1,6 @@
1
+ interface Args {
2
+ readonly onCommit: () => void;
3
+ readonly onPreview: (id: string, value: number) => number;
4
+ }
5
+ export declare function createVariableControlsElement({ onCommit, onPreview, }: Args): HTMLDivElement | null;
6
+ export {};
@@ -0,0 +1,6 @@
1
+ interface Args {
2
+ readonly container: HTMLElement;
3
+ readonly onCommit: () => void;
4
+ }
5
+ export declare function mountVariableControls({ container, onCommit }: Args): void;
6
+ export {};
@@ -9,6 +9,7 @@ export declare const ObjectType: {
9
9
  readonly POLYGON: "Polygon";
10
10
  readonly RECTANGLE: "Rectangle";
11
11
  readonly SLIDE_OBJECT: "SlideObject";
12
+ readonly SPOTLIGHT: "Spotlight";
12
13
  readonly SVG: "SVG";
13
14
  readonly TEXT: "Text";
14
15
  };
@@ -0,0 +1,19 @@
1
+ export interface VariableProps {
2
+ readonly name?: string;
3
+ readonly min?: number;
4
+ readonly max?: number;
5
+ readonly default?: number;
6
+ readonly increment?: number;
7
+ }
8
+ export interface VariableDefinition {
9
+ readonly id: string;
10
+ readonly name: string;
11
+ readonly min: number;
12
+ readonly max: number;
13
+ readonly default: number;
14
+ readonly increment: number;
15
+ }
16
+ export declare function Variable(props?: VariableProps | null): number;
17
+ export declare function getRegisteredVariables(): VariableDefinition[];
18
+ export declare function getVariableValue(id: string): number;
19
+ export declare function setVariableValue(id: string, value: number): number;
@@ -0,0 +1,8 @@
1
+ import { Spotlight } from '../../../objects/Spotlight';
2
+ import { Position } from '../../../types/Position';
3
+ import { Size } from '../../../types/Size';
4
+ export declare function getSpotlightCutout(spotlight: Spotlight): {
5
+ origin: Position;
6
+ size: Size;
7
+ cornerRadius: number;
8
+ };
@@ -0,0 +1,10 @@
1
+ import { Spotlight } from '../../../objects/Spotlight';
2
+ import { UnifiedPath2D } from '../../../renderer/browser-canvas/types/UnifiedPath2D';
3
+ import { Position } from '../../../types/Position';
4
+ import { Size } from '../../../types/Size';
5
+ interface SpotlightPathBounds {
6
+ readonly origin: Position;
7
+ readonly size: Size;
8
+ }
9
+ export declare function getSpotlightPath(spotlight: Spotlight, slideSize: Size, createPath: () => UnifiedPath2D, bounds?: SpotlightPathBounds): UnifiedPath2D;
10
+ export {};
@@ -0,0 +1,2 @@
1
+ export declare function loadPendingVariableValues(): Record<string, number>;
2
+ export declare function storePendingVariableValues(values: Record<string, number>): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "presenter",
3
- "version": "0.8.8",
3
+ "version": "0.9.1",
4
4
  "description": "A JavaScript presentation library",
5
5
  "main": "dist/presenter.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,7 +0,0 @@
1
- import { Size } from '../../types/Size';
2
- /**
3
- * Computes the combined size of a 2D array of sizes.
4
- *
5
- * If a line spacing is provided, it's added
6
- */
7
- export declare function getCombinedSizes2D(sizes: Size[][], lineSpacing?: number): Size;