fika-editor 3.0.1 → 3.0.3

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 (126) hide show
  1. package/README.md +8 -0
  2. package/dist/embed/183.js +144 -0
  3. package/dist/embed/_e2e-statika.json +10909 -0
  4. package/dist/embed/agentic-manifest.json +188 -13
  5. package/dist/embed/chunks/1131.css +1 -1
  6. package/dist/embed/chunks/1131.js +1 -1
  7. package/dist/embed/chunks/1668.js +1 -1
  8. package/dist/embed/chunks/1904.js +1 -1
  9. package/dist/embed/chunks/2020.js +43 -37
  10. package/dist/embed/chunks/2289.js +1 -1
  11. package/dist/embed/chunks/2595.js +1 -0
  12. package/dist/embed/chunks/2796.js +1 -1
  13. package/dist/embed/chunks/2807.js +1 -1
  14. package/dist/embed/chunks/3030.js +1 -1
  15. package/dist/embed/chunks/3729.js +3 -3
  16. package/dist/embed/chunks/4467.js +1 -1
  17. package/dist/embed/chunks/4552.js +1 -1
  18. package/dist/embed/chunks/4625.js +1 -1
  19. package/dist/embed/chunks/4891.js +2 -2
  20. package/dist/embed/chunks/4950.js +1 -1
  21. package/dist/embed/chunks/4975.js +5 -5
  22. package/dist/embed/chunks/5792.js +1 -1
  23. package/dist/embed/chunks/627.js +1 -1
  24. package/dist/embed/chunks/6567.js +1 -1
  25. package/dist/embed/chunks/717.js +2 -2
  26. package/dist/embed/chunks/7175.js +1 -1
  27. package/dist/embed/chunks/7311.js +1 -1
  28. package/dist/embed/chunks/7594.js +1 -1
  29. package/dist/embed/chunks/7854.js +1 -1
  30. package/dist/embed/chunks/788.js +1 -1
  31. package/dist/embed/chunks/7916.js +1 -1
  32. package/dist/embed/chunks/8212.js +1 -1
  33. package/dist/embed/chunks/8239.js +1 -1
  34. package/dist/embed/chunks/8645.js +1 -1
  35. package/dist/embed/chunks/8716.js +3 -3
  36. package/dist/embed/chunks/9121.js +1 -1
  37. package/dist/embed/chunks/9465.js +2 -2
  38. package/dist/embed/fika-embed.css +1 -1
  39. package/dist/embed/fika-embed.js +9 -2
  40. package/dist/types/components/Button.d.ts +2 -1
  41. package/dist/types/components/ColorSwatches.d.ts +2 -1
  42. package/dist/types/components/Draggable.d.ts +9 -4
  43. package/dist/types/components/Slider.d.ts +1 -0
  44. package/dist/types/configs/animation.d.ts +2 -0
  45. package/dist/types/configs/font.d.ts +0 -2
  46. package/dist/types/configs/templates.d.ts +1 -5
  47. package/dist/types/configs/transitions.d.ts +28 -0
  48. package/dist/types/embed/agentic/templates.d.ts +2 -1
  49. package/dist/types/embed/agentic/types.d.ts +64 -1
  50. package/dist/types/embed/types.d.ts +8 -0
  51. package/dist/types/hooks/useScreening.d.ts +5 -3
  52. package/dist/types/i18n/i18n-types.d.ts +206 -38
  53. package/dist/types/paint/rasterResources.d.ts +7 -0
  54. package/dist/types/paint/scheduler.d.ts +17 -0
  55. package/dist/types/paint/slidePainter.d.ts +17 -0
  56. package/dist/types/paint/textPainter.d.ts +31 -0
  57. package/dist/types/store/importConfirm.d.ts +6 -1
  58. package/dist/types/store/index.d.ts +2 -2
  59. package/dist/types/store/slides.d.ts +30 -8
  60. package/dist/types/types/injectKey.d.ts +6 -0
  61. package/dist/types/types/slides.d.ts +3 -2
  62. package/dist/types/utils/canvasHitTest.d.ts +14 -2
  63. package/dist/types/utils/commitQueue.d.ts +13 -0
  64. package/dist/types/utils/cssLength.d.ts +8 -0
  65. package/dist/types/utils/database.d.ts +6 -1
  66. package/dist/types/utils/element.d.ts +18 -0
  67. package/dist/types/utils/elementOutline.d.ts +33 -3
  68. package/dist/types/utils/exportFonts.d.ts +7 -3
  69. package/dist/types/utils/imageBitmapCache.d.ts +14 -2
  70. package/dist/types/utils/imageSize.d.ts +9 -0
  71. package/dist/types/utils/importApply.d.ts +10 -0
  72. package/dist/types/utils/importTransition.d.ts +19 -0
  73. package/dist/types/utils/layerStack.d.ts +24 -0
  74. package/dist/types/utils/liveElementOffset.d.ts +6 -5
  75. package/dist/types/utils/liveElementSize.d.ts +20 -1
  76. package/dist/types/utils/mediaIntern.d.ts +21 -0
  77. package/dist/types/utils/placeholderLayout.d.ts +25 -6
  78. package/dist/types/utils/prosemirror/commitEditor.d.ts +3 -0
  79. package/dist/types/utils/prosemirror/index.d.ts +1 -0
  80. package/dist/types/utils/screening.d.ts +10 -0
  81. package/dist/types/utils/shapePaint.d.ts +23 -0
  82. package/dist/types/utils/simpleShape.d.ts +5 -0
  83. package/dist/types/utils/slideOrder.d.ts +10 -0
  84. package/dist/types/utils/snap.d.ts +9 -0
  85. package/dist/types/utils/tableCellStyle.d.ts +12 -0
  86. package/dist/types/utils/tableStyleTarget.d.ts +3 -0
  87. package/dist/types/utils/textContrast.d.ts +25 -1
  88. package/dist/types/utils/textFit.d.ts +39 -13
  89. package/dist/types/views/Editor/Canvas/LayerStackPanel.d.ts +14 -0
  90. package/dist/types/views/Editor/Canvas/Operate/ResizeHandler.d.ts +2 -1
  91. package/dist/types/views/Editor/Thumbnails/paneSize.d.ts +7 -3
  92. package/dist/types/views/Editor/Thumbnails/useThumbnailVirtualizer.d.ts +1 -0
  93. package/dist/types/views/Editor/Toolbar/common/ElementOutline.d.ts +2 -0
  94. package/dist/types/views/components/ThumbnailSlide/CanvasSlideThumb.d.ts +11 -0
  95. package/dist/types/views/components/ThumbnailSlide/index.d.ts +3 -0
  96. package/dist/types/views/components/ThumbnailSlide/paintedSlide.d.ts +1 -1
  97. package/dist/types/views/components/element/TableElement/CustomTextarea.d.ts +2 -1
  98. package/dist/types/views/components/element/hooks/useAutoShapeTextHeight.d.ts +3 -1
  99. package/docs/RELEASE.md +2 -0
  100. package/package.json +22 -21
  101. package/dist/embed/350.js +0 -164
  102. package/dist/embed/chunks/1932.js +0 -1
  103. package/dist/embed/chunks/5901.js +0 -1
  104. package/dist/types/previewRaster/index.d.ts +0 -9
  105. package/dist/types/previewRaster/painters/background.d.ts +0 -2
  106. package/dist/types/previewRaster/painters/booth.d.ts +0 -13
  107. package/dist/types/previewRaster/painters/chart.d.ts +0 -2
  108. package/dist/types/previewRaster/painters/code.d.ts +0 -2
  109. package/dist/types/previewRaster/painters/image.d.ts +0 -2
  110. package/dist/types/previewRaster/painters/index.d.ts +0 -3
  111. package/dist/types/previewRaster/painters/line.d.ts +0 -2
  112. package/dist/types/previewRaster/painters/media.d.ts +0 -2
  113. package/dist/types/previewRaster/painters/shape.d.ts +0 -2
  114. package/dist/types/previewRaster/painters/table.d.ts +0 -2
  115. package/dist/types/previewRaster/painters/text.d.ts +0 -2
  116. package/dist/types/previewRaster/planSlideRaster.d.ts +0 -19
  117. package/dist/types/previewRaster/rasterCache.d.ts +0 -19
  118. package/dist/types/previewRaster/scheduler.d.ts +0 -4
  119. package/dist/types/previewRaster/stagePool.d.ts +0 -36
  120. package/dist/types/previewRaster/stats.d.ts +0 -10
  121. package/dist/types/previewRaster/subscribeSlides.d.ts +0 -10
  122. package/dist/types/previewRaster/types.d.ts +0 -12
  123. package/dist/types/utils/elementPaint.d.ts +0 -129
  124. package/dist/types/views/components/element/ChartElement/chartBooth.d.ts +0 -2
  125. /package/dist/embed/{350.css → 183.css} +0 -0
  126. /package/dist/types/{previewRaster → utils}/diffPaintedSlide.d.ts +0 -0
@@ -722,6 +722,16 @@ export type NamespaceCanvasTranslation = {
722
722
  * S​t​y​l​e​ ​p​a​n​e​l​ ​s​t​a​y​s​ ​c​l​o​s​e​d​ ​w​h​e​n​ ​s​e​l​e​c​t​i​n​g​ ​t​e​x​t
723
723
  */
724
724
  openPanelOnTextSelectionDisabled: string;
725
+ layerStack: {
726
+ /**
727
+ * L​a​y​e​r​s
728
+ */
729
+ title: string;
730
+ /**
731
+ * A​l​t​ ​+​ ​C​l​i​c​k​ ​·​ ​n​e​x​t​ ​l​a​y​e​r
732
+ */
733
+ hint: string;
734
+ };
725
735
  shapeCreate: {
726
736
  /**
727
737
  * D​r​a​w​ ​f​r​e​e​l​y​ ​·​ ​E​n​t​e​r​ ​t​o​ ​a​p​p​l​y​ ​·​ ​E​s​c​ ​t​o​ ​d​i​s​c​a​r​d
@@ -1449,49 +1459,99 @@ export type NamespaceConfigsTranslation = {
1449
1459
  */
1450
1460
  no: string;
1451
1461
  /**
1452
- * R​a​n​d​o​m
1462
+ * F​a​d​e
1453
1463
  */
1454
- random: string;
1464
+ fade: string;
1465
+ /**
1466
+ * T​h​r​o​u​g​h​ ​i​n​k
1467
+ */
1468
+ throughInk: string;
1469
+ /**
1470
+ * D​i​s​s​o​l​v​e
1471
+ */
1472
+ dissolve: string;
1455
1473
  /**
1456
- * H​o​r​i​z​o​n​t​a​l​ ​s​l​i​d​e
1474
+ * P​u​s​h
1457
1475
  */
1458
1476
  slideX: string;
1459
1477
  /**
1460
- * V​e​r​t​i​c​a​l​ ​s​l​i​d​e
1478
+ * R​i​s​e
1461
1479
  */
1462
1480
  slideY: string;
1463
1481
  /**
1464
- * H​o​r​i​z​o​n​t​a​l​ ​s​l​i​d​e​ ​(​3​D​)
1482
+ * W​i​p​e
1465
1483
  */
1466
- slideX3D: string;
1484
+ wipe: string;
1467
1485
  /**
1468
- * V​e​r​t​i​c​a​l​ ​s​l​i​d​e​ ​(​3​D​)
1486
+ * R​e​v​e​a​l
1469
1487
  */
1470
- slideY3D: string;
1488
+ reveal: string;
1471
1489
  /**
1472
- * F​a​d​e
1490
+ * Z​o​o​m
1473
1491
  */
1474
- fade: string;
1492
+ scale: string;
1493
+ /**
1494
+ * Z​o​o​m​ ​o​u​t
1495
+ */
1496
+ scaleReverse: string;
1497
+ /**
1498
+ * M​o​r​p​h
1499
+ */
1500
+ morph: string;
1501
+ /**
1502
+ * R​i​p​p​l​e
1503
+ */
1504
+ ripple: string;
1505
+ /**
1506
+ * D​o​o​r​s
1507
+ */
1508
+ doors: string;
1509
+ /**
1510
+ * D​i​v​e
1511
+ */
1512
+ flythrough: string;
1475
1513
  /**
1476
- * R​o​t​a​t​e
1514
+ * F​l​i​p
1515
+ */
1516
+ slideX3D: string;
1517
+ /**
1518
+ * F​l​i​p​ ​v​e​r​t​i​c​a​l
1519
+ */
1520
+ slideY3D: string;
1521
+ /**
1522
+ * P​i​v​o​t
1477
1523
  */
1478
1524
  rotate: string;
1479
1525
  /**
1480
- * V​e​r​t​i​c​a​l​ ​s​t​r​e​t​c​h
1526
+ * S​t​r​e​t​c​h​ ​v​e​r​t​i​c​a​l
1481
1527
  */
1482
1528
  scaleY: string;
1483
1529
  /**
1484
- * H​o​r​i​z​o​n​t​a​l​ ​s​t​r​e​t​c​h
1530
+ * S​t​r​e​t​c​h
1485
1531
  */
1486
1532
  scaleX: string;
1487
1533
  /**
1488
- * Z​o​o​m​ ​i​n
1534
+ * R​a​n​d​o​m
1489
1535
  */
1490
- scale: string;
1536
+ random: string;
1537
+ };
1538
+ slideGroups: {
1491
1539
  /**
1492
- * Z​o​o​m​ ​o​u​t
1540
+ * A​t​m​o​s​p​h​e​r​e
1493
1541
  */
1494
- scaleReverse: string;
1542
+ atmosphere: string;
1543
+ /**
1544
+ * M​o​t​i​o​n
1545
+ */
1546
+ motion: string;
1547
+ /**
1548
+ * D​e​p​t​h
1549
+ */
1550
+ depth: string;
1551
+ /**
1552
+ * C​l​a​s​s​i​c
1553
+ */
1554
+ classic: string;
1495
1555
  };
1496
1556
  };
1497
1557
  chart: {
@@ -1844,6 +1904,10 @@ export type NamespaceConfigsTranslation = {
1844
1904
  * C​y​c​l​e​ ​f​o​c​u​s​ ​b​e​t​w​e​e​n​ ​e​l​e​m​e​n​t​s
1845
1905
  */
1846
1906
  cycleFocusElement: string;
1907
+ /**
1908
+ * C​y​c​l​e​ ​l​a​y​e​r​s​ ​u​n​d​e​r​ ​t​h​e​ ​c​u​r​s​o​r
1909
+ */
1910
+ cycleLayersAtPoint: string;
1847
1911
  /**
1848
1912
  * C​o​n​f​i​r​m​ ​i​m​a​g​e​ ​c​r​o​p
1849
1913
  */
@@ -1970,6 +2034,10 @@ export type NamespaceConfigsTranslation = {
1970
2034
  * R​i​g​h​t​-​c​l​i​c​k
1971
2035
  */
1972
2036
  rightClick: string;
2037
+ /**
2038
+ * A​l​t​ ​+​ ​c​l​i​c​k
2039
+ */
2040
+ altClick: string;
1973
2041
  /**
1974
2042
  * L​ ​/​ ​r​i​g​h​t​-​c​l​i​c​k​ ​d​r​a​g
1975
2043
  */
@@ -3036,11 +3104,11 @@ export type NamespaceEditorTranslation = {
3036
3104
  };
3037
3105
  slideAnimation: {
3038
3106
  /**
3039
- * A​p​p​l​y​ ​t​o​ ​a​l​l​ ​s​l​i​d​e​s
3107
+ * U​s​e​ ​o​n​ ​e​v​e​r​y​ ​s​l​i​d​e
3040
3108
  */
3041
3109
  applyToAll: string;
3042
3110
  /**
3043
- * A​p​p​l​i​e​d​ ​t​o​ ​a​l​l​ ​s​l​i​d​e​s
3111
+ * O​n​ ​e​v​e​r​y​ ​s​l​i​d​e
3044
3112
  */
3045
3113
  appliedToAll: string;
3046
3114
  };
@@ -3471,6 +3539,22 @@ export type NamespaceEditorTranslation = {
3471
3539
  * K​e​e​p​ ​c​u​r​r​e​n​t​ ​s​l​i​d​e​s​ ​a​n​d​ ​a​p​p​e​n​d​ ​t​h​e​ ​i​m​p​o​r​t​e​d​ ​o​n​e​s​.
3472
3540
  */
3473
3541
  appendHint: string;
3542
+ /**
3543
+ * T​r​a​n​s​i​t​i​o​n​s
3544
+ */
3545
+ transitionLabel: string;
3546
+ /**
3547
+ * F​r​o​m​ ​f​i​l​e
3548
+ */
3549
+ transitionKeep: string;
3550
+ /**
3551
+ * K​e​e​p​ ​e​a​c​h​ ​s​l​i​d​e​’​s​ ​t​r​a​n​s​i​t​i​o​n​.​ ​S​l​i​d​e​s​ ​w​i​t​h​o​u​t​ ​o​n​e​ ​g​e​t​ ​R​i​s​e​.
3552
+ */
3553
+ transitionKeepHint: string;
3554
+ /**
3555
+ * S​a​m​e​ ​o​n​ ​e​v​e​r​y​ ​s​l​i​d​e
3556
+ */
3557
+ transitionAll: string;
3474
3558
  };
3475
3559
  /**
3476
3560
  * L​a​n​g​u​a​g​e
@@ -5858,6 +5942,16 @@ export type TranslationFunctions = {
5858
5942
  * Style panel stays closed when selecting text
5859
5943
  */
5860
5944
  openPanelOnTextSelectionDisabled: () => LocalizedString;
5945
+ layerStack: {
5946
+ /**
5947
+ * Layers
5948
+ */
5949
+ title: () => LocalizedString;
5950
+ /**
5951
+ * Alt + Click · next layer
5952
+ */
5953
+ hint: () => LocalizedString;
5954
+ };
5861
5955
  shapeCreate: {
5862
5956
  /**
5863
5957
  * Draw freely · Enter to apply · Esc to discard
@@ -6588,49 +6682,99 @@ export type TranslationFunctions = {
6588
6682
  */
6589
6683
  no: () => LocalizedString;
6590
6684
  /**
6591
- * Random
6685
+ * Fade
6592
6686
  */
6593
- random: () => LocalizedString;
6687
+ fade: () => LocalizedString;
6688
+ /**
6689
+ * Through ink
6690
+ */
6691
+ throughInk: () => LocalizedString;
6692
+ /**
6693
+ * Dissolve
6694
+ */
6695
+ dissolve: () => LocalizedString;
6594
6696
  /**
6595
- * Horizontal slide
6697
+ * Push
6596
6698
  */
6597
6699
  slideX: () => LocalizedString;
6598
6700
  /**
6599
- * Vertical slide
6701
+ * Rise
6600
6702
  */
6601
6703
  slideY: () => LocalizedString;
6602
6704
  /**
6603
- * Horizontal slide (3D)
6705
+ * Wipe
6604
6706
  */
6605
- slideX3D: () => LocalizedString;
6707
+ wipe: () => LocalizedString;
6606
6708
  /**
6607
- * Vertical slide (3D)
6709
+ * Reveal
6608
6710
  */
6609
- slideY3D: () => LocalizedString;
6711
+ reveal: () => LocalizedString;
6610
6712
  /**
6611
- * Fade
6713
+ * Zoom
6612
6714
  */
6613
- fade: () => LocalizedString;
6715
+ scale: () => LocalizedString;
6716
+ /**
6717
+ * Zoom out
6718
+ */
6719
+ scaleReverse: () => LocalizedString;
6720
+ /**
6721
+ * Morph
6722
+ */
6723
+ morph: () => LocalizedString;
6724
+ /**
6725
+ * Ripple
6726
+ */
6727
+ ripple: () => LocalizedString;
6728
+ /**
6729
+ * Doors
6730
+ */
6731
+ doors: () => LocalizedString;
6732
+ /**
6733
+ * Dive
6734
+ */
6735
+ flythrough: () => LocalizedString;
6614
6736
  /**
6615
- * Rotate
6737
+ * Flip
6738
+ */
6739
+ slideX3D: () => LocalizedString;
6740
+ /**
6741
+ * Flip vertical
6742
+ */
6743
+ slideY3D: () => LocalizedString;
6744
+ /**
6745
+ * Pivot
6616
6746
  */
6617
6747
  rotate: () => LocalizedString;
6618
6748
  /**
6619
- * Vertical stretch
6749
+ * Stretch vertical
6620
6750
  */
6621
6751
  scaleY: () => LocalizedString;
6622
6752
  /**
6623
- * Horizontal stretch
6753
+ * Stretch
6624
6754
  */
6625
6755
  scaleX: () => LocalizedString;
6626
6756
  /**
6627
- * Zoom in
6757
+ * Random
6628
6758
  */
6629
- scale: () => LocalizedString;
6759
+ random: () => LocalizedString;
6760
+ };
6761
+ slideGroups: {
6630
6762
  /**
6631
- * Zoom out
6763
+ * Atmosphere
6632
6764
  */
6633
- scaleReverse: () => LocalizedString;
6765
+ atmosphere: () => LocalizedString;
6766
+ /**
6767
+ * Motion
6768
+ */
6769
+ motion: () => LocalizedString;
6770
+ /**
6771
+ * Depth
6772
+ */
6773
+ depth: () => LocalizedString;
6774
+ /**
6775
+ * Classic
6776
+ */
6777
+ classic: () => LocalizedString;
6634
6778
  };
6635
6779
  };
6636
6780
  chart: {
@@ -6983,6 +7127,10 @@ export type TranslationFunctions = {
6983
7127
  * Cycle focus between elements
6984
7128
  */
6985
7129
  cycleFocusElement: () => LocalizedString;
7130
+ /**
7131
+ * Cycle layers under the cursor
7132
+ */
7133
+ cycleLayersAtPoint: () => LocalizedString;
6986
7134
  /**
6987
7135
  * Confirm image crop
6988
7136
  */
@@ -7109,6 +7257,10 @@ export type TranslationFunctions = {
7109
7257
  * Right-click
7110
7258
  */
7111
7259
  rightClick: () => LocalizedString;
7260
+ /**
7261
+ * Alt + click
7262
+ */
7263
+ altClick: () => LocalizedString;
7112
7264
  /**
7113
7265
  * L / right-click drag
7114
7266
  */
@@ -8185,11 +8337,11 @@ export type TranslationFunctions = {
8185
8337
  };
8186
8338
  slideAnimation: {
8187
8339
  /**
8188
- * Apply to all slides
8340
+ * Use on every slide
8189
8341
  */
8190
8342
  applyToAll: () => LocalizedString;
8191
8343
  /**
8192
- * Applied to all slides
8344
+ * On every slide
8193
8345
  */
8194
8346
  appliedToAll: () => LocalizedString;
8195
8347
  };
@@ -8626,6 +8778,22 @@ export type TranslationFunctions = {
8626
8778
  * Keep current slides and append the imported ones.
8627
8779
  */
8628
8780
  appendHint: () => LocalizedString;
8781
+ /**
8782
+ * Transitions
8783
+ */
8784
+ transitionLabel: () => LocalizedString;
8785
+ /**
8786
+ * From file
8787
+ */
8788
+ transitionKeep: () => LocalizedString;
8789
+ /**
8790
+ * Keep each slide’s transition. Slides without one get Rise.
8791
+ */
8792
+ transitionKeepHint: () => LocalizedString;
8793
+ /**
8794
+ * Same on every slide
8795
+ */
8796
+ transitionAll: () => LocalizedString;
8629
8797
  };
8630
8798
  /**
8631
8799
  * Language
@@ -0,0 +1,7 @@
1
+ import type { PPTChartElement, PPTCodeElement, PPTMermaidElement } from '../types/slides';
2
+ type Raster = ImageBitmap | HTMLCanvasElement;
3
+ export declare const getChartRaster: (element: PPTChartElement, colors: string[], textColor: string, lineColor: string, invalidate: () => void) => Raster | undefined;
4
+ export declare const getMermaidRaster: (element: PPTMermaidElement, invalidate: () => void) => Raster | undefined;
5
+ export declare const getCodeRaster: (element: PPTCodeElement, invalidate: () => void) => Raster | undefined;
6
+ export declare const clearSlideRasterResources: () => void;
7
+ export {};
@@ -0,0 +1,17 @@
1
+ export type PaintPriority = 'visible' | 'nearby' | 'background';
2
+ export declare const canvasPaintStats: {
3
+ paints: number;
4
+ cancelled: number;
5
+ maxQueue: number;
6
+ paintMs: number[];
7
+ };
8
+ export declare const scheduleSlidePaint: (key: string, paint: () => void, priority?: PaintPriority) => () => void;
9
+ export declare const readCanvasPaintReport: () => {
10
+ paints: number;
11
+ cancelled: number;
12
+ maxQueue: number;
13
+ paintMs: number[];
14
+ paintMsAvg: number;
15
+ paintMsMax: number;
16
+ queued: number;
17
+ };
@@ -0,0 +1,17 @@
1
+ import type { Slide, SlideTheme } from '../types/slides';
2
+ export type PaintSlideOptions = {
3
+ slide: Slide;
4
+ theme: SlideTheme;
5
+ viewportSize: number;
6
+ viewportRatio: number;
7
+ cssWidth: number;
8
+ cssHeight?: number;
9
+ dpr?: number;
10
+ invalidate: () => void;
11
+ };
12
+ /**
13
+ * Direct Slide JSON -> final-DPR canvas paint. No DOM tree, foreignObject
14
+ * capture, intermediate PNG, or CSS-scale resampling is involved.
15
+ */
16
+ export declare const paintSlideToCanvas: (canvas: HTMLCanvasElement, options: PaintSlideOptions) => void;
17
+ export declare const clearSlidePathCache: () => void;
@@ -0,0 +1,31 @@
1
+ import type { TextAlign, TextAlignVertical } from '../types/slides';
2
+ export type CanvasTextPaintOptions = {
3
+ html: string;
4
+ x: number;
5
+ y: number;
6
+ width: number;
7
+ height: number;
8
+ defaultFontFamily: string;
9
+ defaultColor: string;
10
+ defaultSize?: number;
11
+ lineHeight?: number;
12
+ letterSpacing?: number;
13
+ paragraphSpace?: number;
14
+ inset?: [number, number, number, number];
15
+ vAlign?: TextAlignVertical;
16
+ align?: TextAlign;
17
+ fit?: boolean;
18
+ opacity?: number;
19
+ vertical?: boolean;
20
+ shadow?: {
21
+ h: number;
22
+ v: number;
23
+ blur: number;
24
+ color: string;
25
+ };
26
+ };
27
+ /**
28
+ * Paint ProseMirror HTML without mounting DOM. Pretext owns Unicode-aware
29
+ * wrapping; Canvas owns glyph shaping and rasterization at the final DPR.
30
+ */
31
+ export declare const paintRichText: (ctx: CanvasRenderingContext2D, options: CanvasTextPaintOptions) => number;
@@ -1,5 +1,10 @@
1
1
  import type { ImportApplyMode } from '../utils/importApply';
2
- export type ImportConfirmChoice = ImportApplyMode | null;
2
+ import type { TurningMode } from '../types/slides';
3
+ export type ImportTransitionChoice = 'keep' | TurningMode;
4
+ export type ImportConfirmChoice = {
5
+ apply: ImportApplyMode;
6
+ turningMode: ImportTransitionChoice;
7
+ } | null;
3
8
  export interface ImportConfirmState {
4
9
  visible: boolean;
5
10
  slideCount: number;
@@ -1,5 +1,5 @@
1
1
  import { useMainStore, selectHandleElement, selectActiveElementList } from './main';
2
- import { useSlidesStore, selectCurrentSlide, selectCurrentSlideAnimations, selectFormatedAnimations, selectSlideId, selectElementById, selectIsEmptySlide } from './slides';
2
+ import { useSlidesStore, selectCurrentSlide, selectSlideById, selectCurrentSlideAnimations, selectFormatedAnimations, selectSlideId, selectElementById, selectIsEmptySlide } from './slides';
3
3
  import { useSnapshotStore, selectCanUndo, selectCanRedo } from './snapshot';
4
4
  import { useKeyboardStore, selectCtrlOrShiftKeyActive, syncPointerModifiers } from './keyboard';
5
5
  import { useScreenStore } from './screen';
@@ -7,4 +7,4 @@ import { useImportConfirmStore } from './importConfirm';
7
7
  export declare const useActiveElementList: () => import("../embed").PPTElement[];
8
8
  export declare const useCurrentSlideAnimations: () => import("../embed").PPTAnimation[];
9
9
  export declare const useFormatedAnimations: () => import("./slides").FormatedAnimation[];
10
- export { useMainStore, selectHandleElement, selectActiveElementList, useSlidesStore, selectCurrentSlide, selectIsEmptySlide, selectCurrentSlideAnimations, selectFormatedAnimations, selectSlideId, selectElementById, useSnapshotStore, selectCanUndo, selectCanRedo, useKeyboardStore, selectCtrlOrShiftKeyActive, syncPointerModifiers, useScreenStore, useImportConfirmStore, };
10
+ export { useMainStore, selectHandleElement, selectActiveElementList, useSlidesStore, selectCurrentSlide, selectSlideById, selectIsEmptySlide, selectCurrentSlideAnimations, selectFormatedAnimations, selectSlideId, selectElementById, useSnapshotStore, selectCanUndo, selectCanRedo, useKeyboardStore, selectCtrlOrShiftKeyActive, syncPointerModifiers, useScreenStore, useImportConfirmStore, };
@@ -1,4 +1,9 @@
1
- import type { Slide, SlideTheme, PPTElement, PPTAnimation, SlideTemplate, ImportedSlideTemplate } from '../types/slides';
1
+ import type { Slide, SlideTheme, PPTElement, PPTAnimation, SlideTemplate, ImportedSlideTemplate, TurningMode } from '../types/slides';
2
+ export type AddSlideOptions = {
3
+ index?: number;
4
+ select?: boolean;
5
+ keepSectionTag?: boolean;
6
+ };
2
7
  export declare function buildDefaultTemplates(): SlideTemplate[];
3
8
  interface RemovePropData {
4
9
  id: string;
@@ -22,6 +27,8 @@ export interface SlidesState {
22
27
  viewportRatio: number;
23
28
  templates: SlideTemplate[];
24
29
  importedTemplates: ImportedSlideTemplate[];
30
+ /** Used for newly added slides after "Use on every slide". Defaults to Rise. */
31
+ defaultTurningMode: TurningMode;
25
32
  }
26
33
  export interface SlidesActions {
27
34
  setTitle: (title: string) => void;
@@ -34,12 +41,14 @@ export interface SlidesActions {
34
41
  setTemplates: (templates: SlideTemplate[]) => void;
35
42
  addImportedTemplate: (template: ImportedSlideTemplate) => void;
36
43
  replaceSlide: (slide: Slide, slideId?: string) => void;
37
- addSlide: (slide: Slide | Slide[]) => void;
44
+ addSlide: (slide: Slide | Slide[], options?: AddSlideOptions) => void;
38
45
  updateSlide: (props: Partial<Slide>, slideId?: string) => void;
39
46
  removeSlideProps: (data: RemovePropData) => void;
40
47
  deleteSlide: (slideId: string | string[]) => void;
48
+ moveSlide: (fromIndex: number, toIndex: number) => void;
41
49
  reorderSlides: (oldIndex: number, newIndex: number) => void;
42
50
  updateSlideIndex: (index: number) => void;
51
+ setDefaultTurningMode: (mode: TurningMode) => void;
43
52
  addElement: (element: PPTElement | PPTElement[]) => void;
44
53
  deleteElement: (elementId: string | string[]) => void;
45
54
  updateElement: (data: UpdateElementData) => void;
@@ -47,6 +56,13 @@ export interface SlidesActions {
47
56
  }
48
57
  export type SlidesStore = SlidesState & SlidesActions;
49
58
  export declare const selectCurrentSlide: (state: SlidesState) => Slide;
59
+ /**
60
+ * Slide by id — the owning slide for a rendered slide tree. Contrast and
61
+ * placeholder painting must resolve against THIS slide, not the editor's
62
+ * current one, or off-screen renders (thumbnail captures, presenter preview)
63
+ * inherit the wrong background/elements.
64
+ */
65
+ export declare const selectSlideById: (state: SlidesState, slideId: string | undefined) => Slide;
50
66
  export declare const selectIsEmptySlide: (state: SlidesState) => boolean;
51
67
  export declare const selectSlideId: (state: SlidesState) => string;
52
68
  export declare const selectElementById: (id: string) => (state: SlidesState) => PPTElement | undefined;
@@ -836,7 +852,7 @@ export declare const useSlidesStore: import("zustand").UseBoundStore<Omit<import
836
852
  duration: number;
837
853
  trigger: import("../types/slides").AnimationTrigger;
838
854
  }[];
839
- turningMode?: import("../types/slides").TurningMode;
855
+ turningMode?: TurningMode;
840
856
  sectionTag?: {
841
857
  id: string;
842
858
  title?: string;
@@ -1618,7 +1634,7 @@ export declare const useSlidesStore: import("zustand").UseBoundStore<Omit<import
1618
1634
  duration: number;
1619
1635
  trigger: import("../types/slides").AnimationTrigger;
1620
1636
  }[];
1621
- turningMode?: import("../types/slides").TurningMode;
1637
+ turningMode?: TurningMode;
1622
1638
  sectionTag?: {
1623
1639
  id: string;
1624
1640
  title?: string;
@@ -1648,6 +1664,7 @@ export declare const useSlidesStore: import("zustand").UseBoundStore<Omit<import
1648
1664
  width: number;
1649
1665
  height: number;
1650
1666
  }[];
1667
+ defaultTurningMode: TurningMode;
1651
1668
  setTitle: (title: string) => void;
1652
1669
  setTheme: (themeProps: Partial<SlideTheme>) => void;
1653
1670
  setViewportSize: (size: number) => void;
@@ -1658,12 +1675,14 @@ export declare const useSlidesStore: import("zustand").UseBoundStore<Omit<import
1658
1675
  setTemplates: (templates: SlideTemplate[]) => void;
1659
1676
  addImportedTemplate: (template: ImportedSlideTemplate) => void;
1660
1677
  replaceSlide: (slide: Slide, slideId?: string) => void;
1661
- addSlide: (slide: Slide | Slide[]) => void;
1678
+ addSlide: (slide: Slide | Slide[], options?: AddSlideOptions) => void;
1662
1679
  updateSlide: (props: Partial<Slide>, slideId?: string) => void;
1663
1680
  removeSlideProps: (data: RemovePropData) => void;
1664
1681
  deleteSlide: (slideId: string | string[]) => void;
1682
+ moveSlide: (fromIndex: number, toIndex: number) => void;
1665
1683
  reorderSlides: (oldIndex: number, newIndex: number) => void;
1666
1684
  updateSlideIndex: (index: number) => void;
1685
+ setDefaultTurningMode: (mode: TurningMode) => void;
1667
1686
  addElement: (element: PPTElement | PPTElement[]) => void;
1668
1687
  deleteElement: (elementId: string | string[]) => void;
1669
1688
  updateElement: (data: UpdateElementData) => void;
@@ -2452,7 +2471,7 @@ export declare const useSlidesStore: import("zustand").UseBoundStore<Omit<import
2452
2471
  duration: number;
2453
2472
  trigger: import("../types/slides").AnimationTrigger;
2454
2473
  }[];
2455
- turningMode?: import("../types/slides").TurningMode;
2474
+ turningMode?: TurningMode;
2456
2475
  sectionTag?: {
2457
2476
  id: string;
2458
2477
  title?: string;
@@ -3234,7 +3253,7 @@ export declare const useSlidesStore: import("zustand").UseBoundStore<Omit<import
3234
3253
  duration: number;
3235
3254
  trigger: import("../types/slides").AnimationTrigger;
3236
3255
  }[];
3237
- turningMode?: import("../types/slides").TurningMode;
3256
+ turningMode?: TurningMode;
3238
3257
  sectionTag?: {
3239
3258
  id: string;
3240
3259
  title?: string;
@@ -3264,6 +3283,7 @@ export declare const useSlidesStore: import("zustand").UseBoundStore<Omit<import
3264
3283
  width: number;
3265
3284
  height: number;
3266
3285
  }[];
3286
+ defaultTurningMode: TurningMode;
3267
3287
  setTitle: (title: string) => void;
3268
3288
  setTheme: (themeProps: Partial<SlideTheme>) => void;
3269
3289
  setViewportSize: (size: number) => void;
@@ -3274,12 +3294,14 @@ export declare const useSlidesStore: import("zustand").UseBoundStore<Omit<import
3274
3294
  setTemplates: (templates: SlideTemplate[]) => void;
3275
3295
  addImportedTemplate: (template: ImportedSlideTemplate) => void;
3276
3296
  replaceSlide: (slide: Slide, slideId?: string) => void;
3277
- addSlide: (slide: Slide | Slide[]) => void;
3297
+ addSlide: (slide: Slide | Slide[], options?: AddSlideOptions) => void;
3278
3298
  updateSlide: (props: Partial<Slide>, slideId?: string) => void;
3279
3299
  removeSlideProps: (data: RemovePropData) => void;
3280
3300
  deleteSlide: (slideId: string | string[]) => void;
3301
+ moveSlide: (fromIndex: number, toIndex: number) => void;
3281
3302
  reorderSlides: (oldIndex: number, newIndex: number) => void;
3282
3303
  updateSlideIndex: (index: number) => void;
3304
+ setDefaultTurningMode: (mode: TurningMode) => void;
3283
3305
  addElement: (element: PPTElement | PPTElement[]) => void;
3284
3306
  deleteElement: (elementId: string | string[]) => void;
3285
3307
  updateElement: (data: UpdateElementData) => void;
@@ -6,6 +6,12 @@ export type RadioGroupValue = {
6
6
  };
7
7
  export declare const SlideScaleContext: import("react").Context<number>;
8
8
  export declare const SlideIdContext: import("react").Context<string>;
9
+ /**
10
+ * True while the slide tree is rendered only to be rasterized (thumbnail
11
+ * stage). Elements that gate on "is the current slide" (media players) still
12
+ * render — paused — so captures match the editor canvas.
13
+ */
14
+ export declare const SlideCaptureContext: import("react").Context<boolean>;
9
15
  export declare const RadioGroupValueContext: import("react").Context<RadioGroupValue>;
10
16
  export declare const injectKeySlideScale: import("react").Context<number>;
11
17
  export declare const injectKeySlideId: import("react").Context<string>;
@@ -113,7 +113,7 @@ export interface StructuredTextBody {
113
113
  * style?: solid or dashed
114
114
  * width?: stroke width
115
115
  * color?: stroke color
116
- * radius?: corner radius in px
116
+ * radius?: 0–1 of max rounding (ECMA-376 / pptxgenjs `rectRadius`). Values > 1 are legacy px.
117
117
  */
118
118
  export interface PPTElementOutline {
119
119
  style?: LineStyleType;
@@ -515,7 +515,8 @@ export interface SlideBackground {
515
515
  image?: SlideBackgroundImage;
516
516
  gradient?: Gradient;
517
517
  }
518
- export type TurningMode = 'no' | 'fade' | 'slideX' | 'slideY' | 'random' | 'slideX3D' | 'slideY3D' | 'rotate' | 'scaleY' | 'scaleX' | 'scale' | 'scaleReverse';
518
+ export type TurningMode = 'no' | 'fade' | 'throughInk' | 'dissolve' | 'slideX' | 'slideY' | 'wipe' | 'reveal' | 'scale' | 'scaleReverse' | 'morph' | 'ripple' | 'doors' | 'flythrough' | 'slideX3D' | 'slideY3D' | 'rotate' | 'scaleY' | 'scaleX' | 'random';
519
+ export type TurningGroup = 'atmosphere' | 'motion' | 'depth' | 'classic';
519
520
  export interface NoteReply {
520
521
  id: string;
521
522
  content: string;