pptx-react-viewer 3.9.0 → 3.10.0

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 (161) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/{AiChatPanel-II6VOOAL.mjs → AiChatPanel-BQSUE2OO.mjs} +4 -4
  3. package/dist/AiChatPanel-BQSUE2OO.mjs.br +0 -0
  4. package/dist/AiChatPanel-BQSUE2OO.mjs.gz +0 -0
  5. package/dist/{AiChatPanel-3A42W7RW.js → AiChatPanel-NSVSBJC7.js} +25 -25
  6. package/dist/AiChatPanel-NSVSBJC7.js.br +0 -0
  7. package/dist/AiChatPanel-NSVSBJC7.js.gz +0 -0
  8. package/dist/{Area3DChartScene-JM3CQ3WQ.mjs → Area3DChartScene-2FQHPGNE.mjs} +1 -1
  9. package/dist/{Area3DChartScene-JM3CQ3WQ.mjs.br → Area3DChartScene-2FQHPGNE.mjs.br} +0 -0
  10. package/dist/Area3DChartScene-2FQHPGNE.mjs.gz +0 -0
  11. package/dist/{Area3DChartScene-XJK4ZA4R.js → Area3DChartScene-V3W2V7N5.js} +2 -2
  12. package/dist/{Area3DChartScene-XJK4ZA4R.js.br → Area3DChartScene-V3W2V7N5.js.br} +0 -0
  13. package/dist/Area3DChartScene-V3W2V7N5.js.gz +0 -0
  14. package/dist/{Bar3DChartScene-RGRZY5P6.js → Bar3DChartScene-55XMAUC7.js} +2 -2
  15. package/dist/Bar3DChartScene-55XMAUC7.js.br +0 -0
  16. package/dist/Bar3DChartScene-55XMAUC7.js.gz +0 -0
  17. package/dist/{Bar3DChartScene-VNFWI2QG.mjs → Bar3DChartScene-PSJEVANA.mjs} +1 -1
  18. package/dist/{Bar3DChartScene-VNFWI2QG.mjs.br → Bar3DChartScene-PSJEVANA.mjs.br} +0 -0
  19. package/dist/Bar3DChartScene-PSJEVANA.mjs.gz +0 -0
  20. package/dist/{Line3DChartScene-MEY42DBF.js → Line3DChartScene-5KACYRSQ.js} +2 -2
  21. package/dist/{Line3DChartScene-MEY42DBF.js.br → Line3DChartScene-5KACYRSQ.js.br} +0 -0
  22. package/dist/Line3DChartScene-5KACYRSQ.js.gz +0 -0
  23. package/dist/{Line3DChartScene-GXOWGIFJ.mjs → Line3DChartScene-BUVNUFNO.mjs} +1 -1
  24. package/dist/{Line3DChartScene-GXOWGIFJ.mjs.br → Line3DChartScene-BUVNUFNO.mjs.br} +0 -0
  25. package/dist/Line3DChartScene-BUVNUFNO.mjs.gz +0 -0
  26. package/dist/{Model3DScene-MWXTGHDM.js → Model3DScene-6U6TN36M.js} +2 -2
  27. package/dist/Model3DScene-6U6TN36M.js.br +0 -0
  28. package/dist/Model3DScene-6U6TN36M.js.gz +0 -0
  29. package/dist/{Model3DScene-WJ3MMIZH.mjs → Model3DScene-REKMR2L6.mjs} +1 -1
  30. package/dist/Model3DScene-REKMR2L6.mjs.br +0 -0
  31. package/dist/Model3DScene-REKMR2L6.mjs.gz +0 -0
  32. package/dist/{PieChart3DScene-WXJEDYMK.mjs → PieChart3DScene-4L2VVIUJ.mjs} +1 -1
  33. package/dist/{PieChart3DScene-WXJEDYMK.mjs.br → PieChart3DScene-4L2VVIUJ.mjs.br} +0 -0
  34. package/dist/PieChart3DScene-4L2VVIUJ.mjs.gz +0 -0
  35. package/dist/{PieChart3DScene-FJJGOQIS.js → PieChart3DScene-MV3JF7EM.js} +2 -2
  36. package/dist/{PieChart3DScene-FJJGOQIS.js.br → PieChart3DScene-MV3JF7EM.js.br} +0 -0
  37. package/dist/PieChart3DScene-MV3JF7EM.js.gz +0 -0
  38. package/dist/{SurfaceChart3DScene-IKPE2SVE.mjs → SurfaceChart3DScene-ARE7OBFI.mjs} +1 -1
  39. package/dist/SurfaceChart3DScene-ARE7OBFI.mjs.br +0 -0
  40. package/dist/SurfaceChart3DScene-ARE7OBFI.mjs.gz +0 -0
  41. package/dist/{SurfaceChart3DScene-VDK3F224.js → SurfaceChart3DScene-SFIOK3G3.js} +2 -2
  42. package/dist/{SurfaceChart3DScene-VDK3F224.js.br → SurfaceChart3DScene-SFIOK3G3.js.br} +0 -0
  43. package/dist/SurfaceChart3DScene-SFIOK3G3.js.gz +0 -0
  44. package/dist/{chunk-G3JPCRKN.js → chunk-2Q2NFPXA.js} +70189 -52226
  45. package/dist/chunk-2Q2NFPXA.js.br +0 -0
  46. package/dist/chunk-2Q2NFPXA.js.gz +0 -0
  47. package/dist/{chunk-3NIJ5HIZ.js → chunk-DZ3HWACD.js} +1818 -1279
  48. package/dist/chunk-DZ3HWACD.js.br +0 -0
  49. package/dist/chunk-DZ3HWACD.js.gz +0 -0
  50. package/dist/{chunk-5CPGDXD6.js → chunk-FHOUTYMB.js} +457 -445
  51. package/dist/chunk-FHOUTYMB.js.br +0 -0
  52. package/dist/chunk-FHOUTYMB.js.gz +0 -0
  53. package/dist/{chunk-PCCM7NVY.mjs → chunk-HJZA3O3S.mjs} +21 -10
  54. package/dist/chunk-HJZA3O3S.mjs.br +0 -0
  55. package/dist/chunk-HJZA3O3S.mjs.gz +0 -0
  56. package/dist/{chunk-K6Q6KLA6.js → chunk-HYUPPQJW.js} +6168 -1929
  57. package/dist/chunk-HYUPPQJW.js.br +0 -0
  58. package/dist/chunk-HYUPPQJW.js.gz +0 -0
  59. package/dist/{chunk-76Z3X6JX.mjs → chunk-KWHURCVT.mjs} +599 -60
  60. package/dist/chunk-KWHURCVT.mjs.br +0 -0
  61. package/dist/chunk-KWHURCVT.mjs.gz +0 -0
  62. package/dist/{chunk-NTWFXLZX.mjs → chunk-M6GIPAY4.mjs} +2 -2
  63. package/dist/chunk-M6GIPAY4.mjs.br +0 -0
  64. package/dist/chunk-M6GIPAY4.mjs.gz +0 -0
  65. package/dist/{chunk-3Y63XPIN.mjs → chunk-T4ZRSRQZ.mjs} +6164 -1925
  66. package/dist/chunk-T4ZRSRQZ.mjs.br +0 -0
  67. package/dist/chunk-T4ZRSRQZ.mjs.gz +0 -0
  68. package/dist/{chunk-JBSAKP4Z.mjs → chunk-TAGG5YNA.mjs} +61 -1
  69. package/dist/chunk-TAGG5YNA.mjs.br +0 -0
  70. package/dist/chunk-TAGG5YNA.mjs.gz +0 -0
  71. package/dist/{chunk-VQX7G75Z.mjs → chunk-UKPGYJ7G.mjs} +70151 -52196
  72. package/dist/chunk-UKPGYJ7G.mjs.br +0 -0
  73. package/dist/chunk-UKPGYJ7G.mjs.gz +0 -0
  74. package/dist/{chunk-LBJAVP3H.js → chunk-XW46A7DN.js} +176 -176
  75. package/dist/chunk-XW46A7DN.js.br +0 -0
  76. package/dist/chunk-XW46A7DN.js.gz +0 -0
  77. package/dist/{chunk-TEVGDXVW.js → chunk-Y6GG2OOW.js} +61 -1
  78. package/dist/chunk-Y6GG2OOW.js.br +0 -0
  79. package/dist/chunk-Y6GG2OOW.js.gz +0 -0
  80. package/dist/i18n.js +4 -4
  81. package/dist/i18n.js.br +0 -0
  82. package/dist/i18n.js.gz +0 -0
  83. package/dist/i18n.mjs +1 -1
  84. package/dist/i18n.mjs.br +0 -0
  85. package/dist/i18n.mjs.gz +0 -0
  86. package/dist/index-CGKutKk1.d.ts.map +1 -1
  87. package/dist/index.d.ts +228 -19
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js +47 -47
  90. package/dist/index.js.br +0 -0
  91. package/dist/index.js.gz +0 -0
  92. package/dist/index.mjs +6 -6
  93. package/dist/index.mjs.br +0 -0
  94. package/dist/index.mjs.gz +0 -0
  95. package/dist/internals.d.ts +217 -10
  96. package/dist/internals.d.ts.map +1 -1
  97. package/dist/internals.js +79 -79
  98. package/dist/internals.js.br +0 -0
  99. package/dist/internals.js.gz +0 -0
  100. package/dist/internals.mjs +4 -4
  101. package/dist/internals.mjs.br +0 -0
  102. package/dist/internals.mjs.gz +0 -0
  103. package/dist/pptx-viewer.css +1 -1
  104. package/dist/pptx-viewer.css.br +0 -0
  105. package/dist/pptx-viewer.css.gz +0 -0
  106. package/dist/{useViewerBuildingBlocks-C8F_4Pzb.d.ts → useViewerBuildingBlocks-FbK-4ORi.d.ts} +2 -1
  107. package/dist/useViewerBuildingBlocks-FbK-4ORi.d.ts.map +1 -0
  108. package/dist/viewer/index.d.ts +207 -5
  109. package/dist/viewer/index.d.ts.map +1 -1
  110. package/dist/viewer/index.js +27 -27
  111. package/dist/viewer/index.js.br +0 -0
  112. package/dist/viewer/index.js.gz +0 -0
  113. package/dist/viewer/index.mjs +6 -6
  114. package/dist/viewer/index.mjs.br +0 -0
  115. package/dist/viewer/index.mjs.gz +0 -0
  116. package/package.json +9 -9
  117. package/dist/AiChatPanel-3A42W7RW.js.br +0 -0
  118. package/dist/AiChatPanel-3A42W7RW.js.gz +0 -0
  119. package/dist/AiChatPanel-II6VOOAL.mjs.br +0 -0
  120. package/dist/AiChatPanel-II6VOOAL.mjs.gz +0 -0
  121. package/dist/Area3DChartScene-JM3CQ3WQ.mjs.gz +0 -0
  122. package/dist/Area3DChartScene-XJK4ZA4R.js.gz +0 -0
  123. package/dist/Bar3DChartScene-RGRZY5P6.js.br +0 -0
  124. package/dist/Bar3DChartScene-RGRZY5P6.js.gz +0 -0
  125. package/dist/Bar3DChartScene-VNFWI2QG.mjs.gz +0 -0
  126. package/dist/Line3DChartScene-GXOWGIFJ.mjs.gz +0 -0
  127. package/dist/Line3DChartScene-MEY42DBF.js.gz +0 -0
  128. package/dist/Model3DScene-MWXTGHDM.js.br +0 -0
  129. package/dist/Model3DScene-MWXTGHDM.js.gz +0 -0
  130. package/dist/Model3DScene-WJ3MMIZH.mjs.br +0 -0
  131. package/dist/Model3DScene-WJ3MMIZH.mjs.gz +0 -0
  132. package/dist/PieChart3DScene-FJJGOQIS.js.gz +0 -0
  133. package/dist/PieChart3DScene-WXJEDYMK.mjs.gz +0 -0
  134. package/dist/SurfaceChart3DScene-IKPE2SVE.mjs.br +0 -0
  135. package/dist/SurfaceChart3DScene-IKPE2SVE.mjs.gz +0 -0
  136. package/dist/SurfaceChart3DScene-VDK3F224.js.gz +0 -0
  137. package/dist/chunk-3NIJ5HIZ.js.br +0 -0
  138. package/dist/chunk-3NIJ5HIZ.js.gz +0 -0
  139. package/dist/chunk-3Y63XPIN.mjs.br +0 -0
  140. package/dist/chunk-3Y63XPIN.mjs.gz +0 -0
  141. package/dist/chunk-5CPGDXD6.js.br +0 -0
  142. package/dist/chunk-5CPGDXD6.js.gz +0 -0
  143. package/dist/chunk-76Z3X6JX.mjs.br +0 -0
  144. package/dist/chunk-76Z3X6JX.mjs.gz +0 -0
  145. package/dist/chunk-G3JPCRKN.js.br +0 -0
  146. package/dist/chunk-G3JPCRKN.js.gz +0 -0
  147. package/dist/chunk-JBSAKP4Z.mjs.br +0 -0
  148. package/dist/chunk-JBSAKP4Z.mjs.gz +0 -0
  149. package/dist/chunk-K6Q6KLA6.js.br +0 -0
  150. package/dist/chunk-K6Q6KLA6.js.gz +0 -0
  151. package/dist/chunk-LBJAVP3H.js.br +0 -0
  152. package/dist/chunk-LBJAVP3H.js.gz +0 -0
  153. package/dist/chunk-NTWFXLZX.mjs.br +0 -0
  154. package/dist/chunk-NTWFXLZX.mjs.gz +0 -0
  155. package/dist/chunk-PCCM7NVY.mjs.br +0 -0
  156. package/dist/chunk-PCCM7NVY.mjs.gz +0 -0
  157. package/dist/chunk-TEVGDXVW.js.br +0 -0
  158. package/dist/chunk-TEVGDXVW.js.gz +0 -0
  159. package/dist/chunk-VQX7G75Z.mjs.br +0 -0
  160. package/dist/chunk-VQX7G75Z.mjs.gz +0 -0
  161. package/dist/useViewerBuildingBlocks-C8F_4Pzb.d.ts.map +0 -1
@@ -3078,6 +3078,18 @@ interface PptxChartDataPoint {
3078
3078
  }
3079
3079
  /** Schema values accepted by `c:dLblPos`. */
3080
3080
  type PptxChartDataLabelPosition = 'bestFit' | 'b' | 'ctr' | 'inBase' | 'inEnd' | 'l' | 'outEnd' | 'r' | 't';
3081
+ /**
3082
+ * `c15:dlblRangeCache`/`c15:datalabelsRange` (CT_SeriesDataLabelsRange):
3083
+ * PowerPoint 2013+'s "Value From Cells" custom label source, one cell range
3084
+ * supplying every label in a group (chart-type or series `c:dLbls`), with a
3085
+ * cache aligned to point order. See `utils/chart-data-labels-range.ts`.
3086
+ */
3087
+ interface PptxChartDataLabelsRange {
3088
+ /** `c15:f`: the cell range formula (e.g. `Sheet1!$D$2:$D$5`). */
3089
+ formula: string;
3090
+ /** `c15:dlblRangeCache`: cached label text, index-aligned with data points. */
3091
+ cache: string[];
3092
+ }
3081
3093
  /** Individual data label override (c:dLbl). */
3082
3094
  interface PptxChartDataLabel {
3083
3095
  idx: number;
@@ -3119,6 +3131,14 @@ interface PptxChartDataLabel {
3119
3131
  * over any chart/series-level default when set.
3120
3132
  */
3121
3133
  spPr?: PptxChartShapeProps;
3134
+ /**
3135
+ * `c15:xForSave`: this override exists only so its properties survive a
3136
+ * save/reload round trip; PowerPoint merges it back onto the series'
3137
+ * default label on load. Round-tripped as-is (an edited chart keeps an
3138
+ * existing point's whole `extLst`, this flag included); introspection
3139
+ * only otherwise. See `utils/chart-data-labels-range.ts`.
3140
+ */
3141
+ savedForCompatibilityOnly?: boolean;
3122
3142
  }
3123
3143
  /** Axis number format. */
3124
3144
  interface PptxChartAxisNumFmt {
@@ -3507,6 +3527,22 @@ interface PptxChartDataLabelOptions {
3507
3527
  * (point > series > chart-type).
3508
3528
  */
3509
3529
  txPr?: PptxChartLegendTextStyle;
3530
+ /**
3531
+ * PowerPoint 2013+ "Value From Cells", series-wide form
3532
+ * (`c15:datalabelsRange`, chart15 uri `{CE6537A1-...}`): one cell range
3533
+ * supplies every label in this group, aligned by point index. A
3534
+ * SERIES-WIDE alternative to the per-point `c15:dlblFieldTable` mechanism
3535
+ * (already resolved into {@link PptxChartDataLabel.text} at parse time).
3536
+ * See `utils/chart-data-labels-range.ts`.
3537
+ */
3538
+ dataLabelsRange?: PptxChartDataLabelsRange;
3539
+ /**
3540
+ * `c15:showDataLabelsRange` at the SAME level as {@link dataLabelsRange}:
3541
+ * whether every label in this group resolves through the range's cache.
3542
+ * Distinct from the per-point {@link PptxChartDataLabel} flag of the same
3543
+ * XML name. Only meaningful when {@link dataLabelsRange} is set.
3544
+ */
3545
+ showDataLabelsRange?: boolean;
3510
3546
  }
3511
3547
  /** Typed text defaults for a single chart legend entry. */
3512
3548
  interface PptxChartLegendTextStyle {
@@ -3781,6 +3817,19 @@ interface PptxChartData {
3781
3817
  * when the chart has no such extension. See {@link PptxChartFilteredSeries}.
3782
3818
  */
3783
3819
  filteredSeries?: PptxChartFilteredSeries[];
3820
+ /**
3821
+ * `c15:filteredSeriesTitle`: the auto-generated series title text (e.g.
3822
+ * "Series 3") PowerPoint preserved when the chart filter hid the series
3823
+ * whose data would otherwise have supplied it. See
3824
+ * `utils/chart-ext-titles.ts`. Read-mostly like {@link filteredSeries}.
3825
+ */
3826
+ filteredSeriesTitle?: string;
3827
+ /**
3828
+ * `c15:filteredCategoryTitle`: the auto-numbered category labels ("1",
3829
+ * "2", "3", ...) PowerPoint preserved when the chart filter hid the
3830
+ * category axis source entirely. See `utils/chart-ext-titles.ts`.
3831
+ */
3832
+ filteredCategoryTitle?: string[];
3784
3833
  /** Chart style/formatting metadata. */
3785
3834
  style?: PptxChartStyle;
3786
3835
  /** Grouping mode for bar/area/line charts: 'clustered' | 'stacked' | 'percentStacked' */
@@ -4703,7 +4752,95 @@ interface PptxSmartArtLayoutNode {
4703
4752
  rules?: PptxSmartArtNumericRule[];
4704
4753
  /** `dgm:shape`: this node's own preset geometry override, when present. */
4705
4754
  shape?: PptxSmartArtLayoutNodeShape;
4755
+ /**
4756
+ * `dgm:presOf` (CT_PresentationOf, same iterator shape as `dgm:forEach`):
4757
+ * which data-model point(s) this node's OWN text/geometry binds to -
4758
+ * `axis: ['self']` the point currently being iterated, `['des']` all of
4759
+ * its descendants, `['ch']` its direct children, and so on. Absent or
4760
+ * empty `axis` (including a bare `<dgm:presOf/>`) means the node carries
4761
+ * no text of its own (a pure positioning/decoration wrapper - `composite`,
4762
+ * `sp` spacer, connector cap). See `smartart-layout-interpreter-item-
4763
+ * roles.ts`, the one consumer: it is what lets the interpreter tell a
4764
+ * text-bearing per-item role (a list layout's `childText`, a card
4765
+ * layout's `roleText`/`bodyText`) apart from a same-generation sibling
4766
+ * that positions or decorates instead.
4767
+ */
4768
+ presentationOf?: PptxSmartArtIteratorAttributes;
4769
+ /**
4770
+ * EVERY `dgm:constr` reachable from this node, including ones declared
4771
+ * inside a `dgm:choose`/`dgm:if`/`dgm:else` that wraps THIS layoutNode's
4772
+ * `constrLst` (a genuinely conditional constraint set, e.g. one branch
4773
+ * per data-point count - `gear`'s composite positions its `gear1`/
4774
+ * `gear2`/`gear3` slots this way, so its plain, direct-child-only
4775
+ * `constraints` above is empty for it). Stops at a nested `dgm:layoutNode`
4776
+ * boundary: that child's own conditional constrLst becomes ITS
4777
+ * `allConstraints`, not folded into the parent's. Read-only /
4778
+ * interpretation-only - `constraints` above (this node's own DIRECT
4779
+ * constrLst) remains the one `applySmartArtLayoutDefinition` round-trips,
4780
+ * so editing an unrelated property can never collapse a genuinely
4781
+ * conditional constrLst into a single branch. `undefined` when this node
4782
+ * declares no constrLst at all, in or out of a choose (the common case);
4783
+ * otherwise a superset of `constraints` (every branch, blindly unioned -
4784
+ * this interpreter does not evaluate `dgm:choose` conditions when
4785
+ * indexing constraints, matching the same "flatten both branches"
4786
+ * convention `nestedLayoutNodes` already uses for `children`). See
4787
+ * `smartart-constraint-solver.ts`'s `buildConstraintIndex`, the only
4788
+ * consumer.
4789
+ */
4790
+ allConstraints?: PptxSmartArtConstraint[];
4706
4791
  children?: PptxSmartArtLayoutNode[];
4792
+ /**
4793
+ * The iterator attributes of the ENCLOSING `dgm:forEach` this node was
4794
+ * found through, when `nestedLayoutNodes` (`smartart-layout-definition
4795
+ * .ts`) reached it by walking one - as opposed to being a direct child of
4796
+ * its parent layoutNode, or reached only through a `dgm:choose` wrapper
4797
+ * (a condition, not an iteration, leaves this `undefined`).
4798
+ *
4799
+ * `forEach` above records a node's OWN direct `dgm:forEach` children
4800
+ * (which wrap ITS descendants); this is the opposite direction - the
4801
+ * forEach that wraps the node ITSELF, one level up. A layoutNode can sit
4802
+ * inside more than one enclosing forEach only via nesting, so this is
4803
+ * always the SINGLE nearest one, not a list.
4804
+ *
4805
+ * This is what tells a genuinely repeated per-child template
4806
+ * (`axis="ch"`, `ptType` absent or `"node"`) apart from a once-only or
4807
+ * transition-only sibling that merely happens to sit inside SOME
4808
+ * `dgm:forEach` (a `ptType="parTrans"`/`"sibTrans"` connector, or
4809
+ * `axis="followSib" cnt="1"`) - both can be direct siblings under the
4810
+ * SAME parent layoutNode (`lProcess1`'s `vertFlow` has one forEach for
4811
+ * its `parTrans` connector and a SEPARATE one, `axis="ch"`, for its
4812
+ * repeated `child` items; `vertFlow.forEach` bundles both, but only
4813
+ * `child.forEachOrigin` says which ONE produced it). See
4814
+ * `smartart-layout-interpreter-item-roles-recursive.ts`, the one
4815
+ * consumer. Read-only / interpretation-only, like `allConstraints`:
4816
+ * never round-tripped by `applySmartArtLayoutDefinition`.
4817
+ */
4818
+ forEachOrigin?: PptxSmartArtIteratorAttributes;
4819
+ /**
4820
+ * The condition of the NEAREST enclosing `dgm:if` this node was found
4821
+ * through, when `nestedLayoutNodes` (`smartart-layout-definition.ts`)
4822
+ * reached it via a `dgm:choose`'s `if` branch (as opposed to a direct
4823
+ * child, a `dgm:else` branch - always `undefined` here, see below - or a
4824
+ * `dgm:forEach`, which sets {@link forEachOrigin} instead). Lets a
4825
+ * caller that already has the data-model node list decide whether this
4826
+ * node's OWN branch is genuinely live for a specific point, instead of
4827
+ * treating every choose-flattened branch as unconditionally present
4828
+ * (`nestedLayoutNodes`' pre-existing "flatten every branch" convention,
4829
+ * still the default when this is absent or a caller does not evaluate
4830
+ * it) - e.g. `cycle-matrix--fallback-n2.pptx`'s `child1group`..
4831
+ * `child4group`, each gated on a DIFFERENT top-level point existing and
4832
+ * having its own child (`axis="ch ch" st="N 1" cnt="1 0" func="cnt"
4833
+ * op="gte" val="1"`).
4834
+ *
4835
+ * Deliberately `undefined` for a `dgm:else` branch: ECMA-376 defines it
4836
+ * as "none of the sibling ifs matched", which would need the FULL
4837
+ * sibling list's conditions negated and ANDed together, not a single
4838
+ * condition - no gallery fixture measured needs an else branch's own
4839
+ * guard yet, so it is left unconditional (rendered by default, matching
4840
+ * the pre-existing flatten-everything behaviour) rather than guessed at.
4841
+ * Evaluate with `smartart-layout-interpreter-when.ts`'s `evaluateWhen`.
4842
+ */
4843
+ chooseGuard?: PptxSmartArtWhen;
4707
4844
  }
4708
4845
  /** Metadata and root node from DiagramML CT_DiagramDefinition. */
4709
4846
  interface PptxSmartArtLayoutDefinition {
@@ -5336,6 +5473,14 @@ interface PptxSmartArtData {
5336
5473
  * Consulted by the fallback layout engine for direction/org-chart hints.
5337
5474
  */
5338
5475
  presLayoutVars?: PptxSmartArtPresLayoutVars;
5476
+ /**
5477
+ * The deck's own theme minor-Latin font (`a:fontScheme/a:minorFont/a:latin/
5478
+ * @typeface`): what SmartArt text actually renders in when no per-run
5479
+ * `a:latin` override is present (the common case - see
5480
+ * `smartart-layout-item-font-size.ts`'s font-fit, the one consumer).
5481
+ * Undefined when the theme carries no font scheme at all.
5482
+ */
5483
+ themeMinorFont?: string;
5339
5484
  /** Relationship ID for the diagram data part (for round-trip save). */
5340
5485
  dataRelId?: string;
5341
5486
  /** Relationship ID for the diagram layout part. */
@@ -6295,7 +6440,7 @@ interface SmartArtPptxElement extends PptxElementBase {
6295
6440
  *
6296
6441
  * Used to show type-specific icons and previews in the editor.
6297
6442
  */
6298
- type OleObjectType = 'excel' | 'word' | 'pdf' | 'visio' | 'mathtype' | 'package' | 'unknown';
6443
+ type OleObjectType = 'excel' | 'word' | 'powerpoint' | 'pdf' | 'visio' | 'mathtype' | 'package' | 'unknown';
6299
6444
  /**
6300
6445
  * An OLE (Object Linking and Embedding) object.
6301
6446
  *
@@ -6373,6 +6518,15 @@ interface OlePptxElement extends PptxElementBase {
6373
6518
  * `false`; `undefined` means the source authored no explicit value.
6374
6519
  */
6375
6520
  oleUpdateAutomatic?: boolean;
6521
+ /**
6522
+ * Set by the in-viewer OLE content editors (`ole-edit-api.ts`) whenever
6523
+ * `oleEmbeddedData` and/or `previewImageData` have been changed in memory
6524
+ * and still need to be written back into the saved package. Never
6525
+ * authored from a parsed file; purely an in-memory save signal, mirroring
6526
+ * `PptxSlide.isDirty`. The save writer clears it once the pending write
6527
+ * has been queued.
6528
+ */
6529
+ oleContentDirty?: boolean;
6376
6530
  /** Accessibility description from `p:nvGraphicFramePr/p:cNvPr/@descr`. */
6377
6531
  altText?: string;
6378
6532
  /** Accessibility title from `p:nvGraphicFramePr/p:cNvPr/@title`. */
@@ -7292,10 +7446,27 @@ interface PptxNativeAnimation {
7292
7446
  buildLevel?: number;
7293
7447
  /** Group ID linking a `p:bldP` entry to its timing animation node. */
7294
7448
  groupId?: string;
7295
- /** Sound relationship ID to play when animation triggers (`p:stSnd`). */
7449
+ /**
7450
+ * Sound relationship ID to play when animation triggers. Modern PowerPoint
7451
+ * (COM-verified against 2016) writes this as a `p:audio/p:cMediaNode`
7452
+ * sibling of the effect's own `p:childTnLst`, targeting `p:sndTgt` rather
7453
+ * than a shape; the legacy `p:stSnd` form (directly on `p:cTn`) is still
7454
+ * accepted on load for round-trip of older-authored decks, but PowerPoint
7455
+ * itself no longer writes it and does not recognise it back
7456
+ * (`Effect.EffectInformation.SoundEffect` reads empty against it).
7457
+ */
7296
7458
  soundRId?: string;
7297
7459
  /** Resolved sound file path from relationship. */
7298
7460
  soundPath?: string;
7461
+ /**
7462
+ * The embedded sound's `@_name` (from `p:snd`/`p:sndTgt`). For one of
7463
+ * PowerPoint's 19 built-in stock sounds this is the exact upper-case file
7464
+ * name PowerPoint itself writes (e.g. `"CHIMES.WAV"`); see
7465
+ * `pptx-viewer-shared`'s `effect-sound-catalogue.ts`, which matches this
7466
+ * value back to a gallery entry. Absent for a custom sound with no name,
7467
+ * or when unresolved.
7468
+ */
7469
+ soundName?: string;
7299
7470
  /** Whether to stop any currently playing sound (`p:endSnd`). */
7300
7471
  stopSound?: boolean;
7301
7472
  /**
@@ -7855,10 +8026,24 @@ interface PptxElementAnimation {
7855
8026
  motionPathRotationCenterX?: number;
7856
8027
  /** Motion-path rotation centre Y in slide percentage units (`p:rCtr/@y`). */
7857
8028
  motionPathRotationCenterY?: number;
7858
- /** Sound relationship ID to play when animation triggers (`p:stSnd`). */
8029
+ /**
8030
+ * Sound relationship ID to play when animation triggers. Written on save
8031
+ * as a `p:audio/p:cMediaNode` sibling of the effect's own `p:childTnLst`
8032
+ * (see `PptxNativeAnimation.soundRId` for the COM-verified detail).
8033
+ */
7859
8034
  soundRId?: string;
7860
8035
  /** Resolved sound file path from relationship. */
7861
8036
  soundPath?: string;
8037
+ /**
8038
+ * The `@_name` to write on the embedded sound (`p:sndTgt`). For a stock
8039
+ * gallery pick this is the exact PowerPoint file name (e.g.
8040
+ * `"CHIMES.WAV"`), which is what makes PowerPoint itself recognise the
8041
+ * sound as that built-in entry when it reopens the saved deck (there is no
8042
+ * separate "built-in" flag anywhere in the schema). Set by
8043
+ * `pptx-viewer-shared`'s `setEffectSound` when the pick carries a
8044
+ * `soundName`; absent for a custom file with no meaningful name.
8045
+ */
8046
+ soundName?: string;
7862
8047
  /** Whether to stop any currently playing sound (`p:endSnd`). */
7863
8048
  stopSound?: boolean;
7864
8049
  /**
@@ -7873,7 +8058,9 @@ interface PptxElementAnimation {
7873
8058
  /**
7874
8059
  * Display name for the chosen sound (e.g. the uploaded file's name),
7875
8060
  * shown by the authoring UI's sound picker. Purely cosmetic; has no
7876
- * OOXML equivalent and is not required for playback.
8061
+ * OOXML equivalent and is not required for playback. For a stock gallery
8062
+ * pick, the UI derives its label from {@link soundName} via the catalogue
8063
+ * instead of this field.
7877
8064
  */
7878
8065
  soundFileName?: string;
7879
8066
  /**
@@ -10221,7 +10408,7 @@ interface PptxHandlerLoadOptions {
10221
10408
  allowExternalImages?: boolean;
10222
10409
  }
10223
10410
  /** Output format for the save pipeline. */
10224
- type PptxSaveFormat = 'pptx' | 'ppsx' | 'pptm';
10411
+ type PptxSaveFormat = 'pptx' | 'ppsx' | 'pptm' | 'ppt';
10225
10412
  interface PptxHandlerSaveOptions {
10226
10413
  headerFooter?: PptxHeaderFooter;
10227
10414
  presentationProperties?: PptxPresentationProperties;
@@ -10317,8 +10504,23 @@ interface PptxHandlerSaveOptions {
10317
10504
  * - `'pptx'` (default): Standard presentation.
10318
10505
  * - `'ppsx'`: Slide-show file (opens in presentation mode).
10319
10506
  * - `'pptm'`: Macro-enabled presentation (requires VBA data).
10507
+ * - `'ppt'`: Legacy binary PowerPoint 97-2003 presentation. Bypasses the
10508
+ * OOXML ZIP pipeline entirely; see `PptxHandlerRuntimeSaveLegacyPpt`.
10509
+ * Elements with no binary equivalent (charts, SmartArt, media, OLE, ink,
10510
+ * 3D models) are degraded to a rasterised preview picture or a labelled
10511
+ * placeholder, each reported via a `scope: 'save'`-adjacent
10512
+ * `PptxCompatibilityWarning`.
10320
10513
  */
10321
10514
  outputFormat?: PptxSaveFormat;
10515
+ /**
10516
+ * Password for RC4 CryptoAPI encryption of a `'ppt'`-format save. Ignored
10517
+ * for every other {@link outputFormat}; encrypting a `.pptx`/`.ppsx`/`.pptm`
10518
+ * save uses {@link IPptxHandlerRuntime.saveEncrypted}'s separate AES/Agile
10519
+ * OLE2 wrapping instead, since the legacy binary format's own encryption
10520
+ * scheme is embedded directly in the `.ppt` stream rather than wrapping an
10521
+ * already-produced package.
10522
+ */
10523
+ pptPassword?: string;
10322
10524
  /**
10323
10525
  * Embedded fonts to write back (or add) to the saved PPTX.
10324
10526
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/viewer/components/collaboration/CollaborationProvider.tsx","../../src/viewer/components/collaboration/RemoteUserCursors.tsx","../../src/viewer/components/collaboration/UserAvatarBar.tsx","../../src/viewer/components/collaboration/CollaborationStatusIndicator.tsx"],"mappings":";;;;;;;UA2CiB;;EAEhB,SAAS;EACT;EACA;EACA,UAAU,MAAM;;iBAGD,wBACf,QACA,aACA,cACA,YACE,6BAA6B,MAAM;;;UCtCrB;;EAEhB,aAAa;;EAEb;;EAEA;;EAEA;;iBAOe,oBACf,aACA,kBACA,aACA,gBACE,yBAAyB,MAAM;;;UCRjB;;EAEhB,aAAa;;EAEb;;EAEA;;EAEA;;EAEA,QAAQ;;EAER;;iBAqDe,gBACf,aACA,eACA,gBACA,iBACA,QACA,cACE,qBAAqB,MAAM;;;UCrFb;;EAEhB,QAAQ;;EAER;;EAEA;;iBAkCe,+BACf,QACA,gBACA,WACE,oCAAoC,MAAM"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/viewer/components/collaboration/CollaborationProvider.tsx","../../src/viewer/components/collaboration/RemoteUserCursors.tsx","../../src/viewer/components/collaboration/UserAvatarBar.tsx","../../src/viewer/components/collaboration/CollaborationStatusIndicator.tsx"],"mappings":";;;;;;;UA2CiB;;EAEhB,SAAS;EACT;EACA;EACA,UAAU,MAAM;;wBAGD,wBACf,QACA,aACA,cACA,YACE,6BAA6B,MAAM;;;UCtCrB;;EAEhB,aAAa;;EAEb;;EAEA;;EAEA;;wBAOe,oBACf,aACA,kBACA,aACA,gBACE,yBAAyB,MAAM;;;UCRjB;;EAEhB,aAAa;;EAEb;;EAEA;;EAEA;;EAEA,QAAQ;;EAER;;wBAqDe,gBACf,aACA,eACA,gBACA,iBACA,QACA,cACE,qBAAqB,MAAM;;;UCrFb;;EAEhB,QAAQ;;EAER;;EAEA;;wBAkCe,+BACf,QACA,gBACA,WACE,oCAAoC,MAAM"}
@@ -1,96 +1,96 @@
1
1
  'use strict';
2
2
 
3
- var chunk3NIJ5HIZ_js = require('../chunk-3NIJ5HIZ.js');
4
- require('../chunk-K6Q6KLA6.js');
5
- var chunk5CPGDXD6_js = require('../chunk-5CPGDXD6.js');
6
- var chunkLBJAVP3H_js = require('../chunk-LBJAVP3H.js');
7
- var chunkG3JPCRKN_js = require('../chunk-G3JPCRKN.js');
8
- require('../chunk-TEVGDXVW.js');
3
+ var chunkDZ3HWACD_js = require('../chunk-DZ3HWACD.js');
4
+ require('../chunk-HYUPPQJW.js');
5
+ var chunkFHOUTYMB_js = require('../chunk-FHOUTYMB.js');
6
+ var chunkXW46A7DN_js = require('../chunk-XW46A7DN.js');
7
+ var chunk2Q2NFPXA_js = require('../chunk-2Q2NFPXA.js');
8
+ require('../chunk-Y6GG2OOW.js');
9
9
  require('../chunk-4VNS5WPM.js');
10
10
 
11
11
 
12
12
 
13
13
  Object.defineProperty(exports, "CollaborationProvider", {
14
14
  enumerable: true,
15
- get: function () { return chunk3NIJ5HIZ_js.CollaborationProvider; }
15
+ get: function () { return chunkDZ3HWACD_js.CollaborationProvider; }
16
16
  });
17
17
  Object.defineProperty(exports, "CollaborationStatusIndicator", {
18
18
  enumerable: true,
19
- get: function () { return chunk3NIJ5HIZ_js.CollaborationStatusIndicator; }
19
+ get: function () { return chunkDZ3HWACD_js.CollaborationStatusIndicator; }
20
20
  });
21
21
  Object.defineProperty(exports, "PowerPointViewer", {
22
22
  enumerable: true,
23
- get: function () { return chunk3NIJ5HIZ_js.PowerPointViewer; }
23
+ get: function () { return chunkDZ3HWACD_js.PowerPointViewer; }
24
24
  });
25
25
  Object.defineProperty(exports, "RemoteUserCursors", {
26
26
  enumerable: true,
27
- get: function () { return chunk3NIJ5HIZ_js.RemoteUserCursors; }
27
+ get: function () { return chunkDZ3HWACD_js.RemoteUserCursors; }
28
28
  });
29
29
  Object.defineProperty(exports, "UserAvatarBar", {
30
30
  enumerable: true,
31
- get: function () { return chunk3NIJ5HIZ_js.UserAvatarBar; }
31
+ get: function () { return chunkDZ3HWACD_js.UserAvatarBar; }
32
32
  });
33
33
  Object.defineProperty(exports, "isAudienceTab", {
34
34
  enumerable: true,
35
- get: function () { return chunk5CPGDXD6_js.isAudienceTab; }
35
+ get: function () { return chunkFHOUTYMB_js.isAudienceTab; }
36
36
  });
37
37
  Object.defineProperty(exports, "parseAudienceNonce", {
38
38
  enumerable: true,
39
- get: function () { return chunk5CPGDXD6_js.parseAudienceNonce; }
39
+ get: function () { return chunkFHOUTYMB_js.parseAudienceNonce; }
40
40
  });
41
41
  Object.defineProperty(exports, "useCollaborativeHistory", {
42
42
  enumerable: true,
43
- get: function () { return chunk5CPGDXD6_js.useCollaborativeHistory; }
43
+ get: function () { return chunkFHOUTYMB_js.useCollaborativeHistory; }
44
44
  });
45
45
  Object.defineProperty(exports, "useCollaborativeState", {
46
46
  enumerable: true,
47
- get: function () { return chunk5CPGDXD6_js.useCollaborativeState; }
47
+ get: function () { return chunkFHOUTYMB_js.useCollaborativeState; }
48
48
  });
49
49
  Object.defineProperty(exports, "usePresenceTracking", {
50
50
  enumerable: true,
51
- get: function () { return chunk5CPGDXD6_js.usePresenceTracking; }
51
+ get: function () { return chunkFHOUTYMB_js.usePresenceTracking; }
52
52
  });
53
53
  Object.defineProperty(exports, "useThemeSwitching", {
54
54
  enumerable: true,
55
- get: function () { return chunk5CPGDXD6_js.useThemeSwitching; }
55
+ get: function () { return chunkFHOUTYMB_js.useThemeSwitching; }
56
56
  });
57
57
  Object.defineProperty(exports, "useYjsProvider", {
58
58
  enumerable: true,
59
- get: function () { return chunk5CPGDXD6_js.useYjsProvider; }
59
+ get: function () { return chunkFHOUTYMB_js.useYjsProvider; }
60
60
  });
61
61
  Object.defineProperty(exports, "getAnimationInitialStyle", {
62
62
  enumerable: true,
63
- get: function () { return chunkLBJAVP3H_js.getAnimationInitialStyle; }
63
+ get: function () { return chunkXW46A7DN_js.getAnimationInitialStyle; }
64
64
  });
65
65
  Object.defineProperty(exports, "clearAudienceContent", {
66
66
  enumerable: true,
67
- get: function () { return chunkG3JPCRKN_js.clearAudienceContent; }
67
+ get: function () { return chunk2Q2NFPXA_js.clearAudienceContent; }
68
68
  });
69
69
  Object.defineProperty(exports, "forgetSessionDeck", {
70
70
  enumerable: true,
71
- get: function () { return chunkG3JPCRKN_js.forgetSessionDeck; }
71
+ get: function () { return chunk2Q2NFPXA_js.forgetSessionDeck; }
72
72
  });
73
73
  Object.defineProperty(exports, "getSessionTabId", {
74
74
  enumerable: true,
75
- get: function () { return chunkG3JPCRKN_js.getSessionTabId; }
75
+ get: function () { return chunk2Q2NFPXA_js.getSessionTabId; }
76
76
  });
77
77
  Object.defineProperty(exports, "loadAudienceContent", {
78
78
  enumerable: true,
79
- get: function () { return chunkG3JPCRKN_js.loadAudienceContent; }
79
+ get: function () { return chunk2Q2NFPXA_js.loadAudienceContent; }
80
80
  });
81
81
  Object.defineProperty(exports, "loadSessionDeck", {
82
82
  enumerable: true,
83
- get: function () { return chunkG3JPCRKN_js.loadSessionDeck; }
83
+ get: function () { return chunk2Q2NFPXA_js.loadSessionDeck; }
84
84
  });
85
85
  Object.defineProperty(exports, "rememberSessionDeck", {
86
86
  enumerable: true,
87
- get: function () { return chunkG3JPCRKN_js.rememberSessionDeck; }
87
+ get: function () { return chunk2Q2NFPXA_js.rememberSessionDeck; }
88
88
  });
89
89
  Object.defineProperty(exports, "restoreSessionDeck", {
90
90
  enumerable: true,
91
- get: function () { return chunkG3JPCRKN_js.restoreSessionDeck; }
91
+ get: function () { return chunk2Q2NFPXA_js.restoreSessionDeck; }
92
92
  });
93
93
  Object.defineProperty(exports, "storeAudienceContent", {
94
94
  enumerable: true,
95
- get: function () { return chunkG3JPCRKN_js.storeAudienceContent; }
95
+ get: function () { return chunk2Q2NFPXA_js.storeAudienceContent; }
96
96
  });
Binary file
Binary file
@@ -1,7 +1,7 @@
1
- export { CollaborationProvider, CollaborationStatusIndicator, PowerPointViewer, RemoteUserCursors, UserAvatarBar } from '../chunk-76Z3X6JX.mjs';
2
- import '../chunk-3Y63XPIN.mjs';
3
- export { isAudienceTab, parseAudienceNonce, useCollaborativeHistory, useCollaborativeState, usePresenceTracking, useThemeSwitching, useYjsProvider } from '../chunk-PCCM7NVY.mjs';
4
- export { getAnimationInitialStyle } from '../chunk-NTWFXLZX.mjs';
5
- export { clearAudienceContent, forgetSessionDeck, getSessionTabId, loadAudienceContent, loadSessionDeck, rememberSessionDeck, restoreSessionDeck, storeAudienceContent } from '../chunk-VQX7G75Z.mjs';
6
- import '../chunk-JBSAKP4Z.mjs';
1
+ export { CollaborationProvider, CollaborationStatusIndicator, PowerPointViewer, RemoteUserCursors, UserAvatarBar } from '../chunk-KWHURCVT.mjs';
2
+ import '../chunk-T4ZRSRQZ.mjs';
3
+ export { isAudienceTab, parseAudienceNonce, useCollaborativeHistory, useCollaborativeState, usePresenceTracking, useThemeSwitching, useYjsProvider } from '../chunk-HJZA3O3S.mjs';
4
+ export { getAnimationInitialStyle } from '../chunk-M6GIPAY4.mjs';
5
+ export { clearAudienceContent, forgetSessionDeck, getSessionTabId, loadAudienceContent, loadSessionDeck, rememberSessionDeck, restoreSessionDeck, storeAudienceContent } from '../chunk-UKPGYJ7G.mjs';
6
+ import '../chunk-TAGG5YNA.mjs';
7
7
  import '../chunk-XGB3TDIC.mjs';
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pptx-react-viewer",
3
- "version": "3.9.0",
3
+ "version": "3.10.0",
4
4
  "description": "React PowerPoint viewer and editor component: render, edit, and export PPTX slides in the browser.",
5
5
  "keywords": [
6
6
  "editor",
@@ -76,22 +76,22 @@
76
76
  },
77
77
  "dependencies": {
78
78
  "clsx": "^2.1.1",
79
- "dompurify": "^3.4.14",
80
- "html2canvas-pro": "^2.3.2",
81
- "pptx-viewer-mcp": "^2.4.0",
79
+ "dompurify": "^3.4.15",
80
+ "html2canvas-pro": "^2.4.2",
81
+ "pptx-viewer-mcp": "^2.4.1",
82
82
  "tailwind-merge": "^3.6.0"
83
83
  },
84
84
  "devDependencies": {
85
- "@ai-sdk/react": "^4.0.76",
85
+ "@ai-sdk/react": "^4.0.100",
86
86
  "@tailwindcss/cli": "^4.3.3",
87
87
  "@types/dompurify": "^3.2.0",
88
- "@types/react": "^19.2.17",
89
- "@types/react-dom": "^19.2.3",
88
+ "@types/react": "^19.3.0",
89
+ "@types/react-dom": "^19.3.0",
90
90
  "tailwindcss": "^4.3.3",
91
- "tsdown": "^0.22.14",
91
+ "tsdown": "^0.23.0",
92
92
  "tsup": "^8.5.1",
93
93
  "typescript": "^7.0.2",
94
- "vitest": "^4.1.10",
94
+ "vitest": "^4.1.11",
95
95
  "y-webrtc": "^10.3.0",
96
96
  "y-websocket": "^3.1.0",
97
97
  "yjs": "^13.6.32"
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1 +0,0 @@
1
- {"version":3,"file":"useViewerBuildingBlocks-C8F_4Pzb.d.ts","names":[],"sources":["../src/viewer/components/toolbar/toolbar-types.ts","../src/viewer/utils/table-band-style.tsx","../src/viewer/components/canvas/canvas-types.ts","../src/viewer/hooks/useAutosave.ts","../src/viewer/hooks/useViewerBuildingBlocks.ts"],"mappings":";;;;;UA4BiB;EAChB;EACA,MAAM;EACN;;;;;;;EAOA;;EAEA;EACA;EACA;EACA;EACA;EACA,gBAAgB;EAChB;EACA;EACA;EACA;EACA;EACA;EACA,iBAAiB;EACjB,mBAAmB;EACnB;EACA,cAAc;EACd,YAAY;EACZ;EACA;EACA,kBAAkB;EAClB,YAAY,MAAM;;;;;;;EAOlB;EACA;EACA;;EAEA;;;;;;EAMA,kBAAkB,gBAAgB,OAAO;;EAEzC;EACA;EACA,sBAAsB,SAAS;EAC/B;EACA;EACA;EACA;EACA;EACA;EACA,oBAAoB,MAAM;EAC1B;EACA;EACA;EACA,cAAc,WAAW;EACzB;EACA;EACA,oBAAoB;EACpB,iBAAiB,mBAAmB;EACpC;EACA;EACA;EACA,kBAAkB,MAAM;EACxB,oBAAoB;EACpB,oBAAoB;EACpB,wBAAwB;EACxB;EACA;EACA;;EAEA;EACA;EACA;EACA,yBAAyB;EACzB,gBAAgB;EAChB,kBAAkB;EAClB,kBAAkB;EAClB,kBAAkB;EAClB,mBAAmB;EACnB,aAAa;EACb,kBAAkB;EAClB,uBAAuB;EACvB;EACA;EACA;EACA;EACA,SAAS;EACT,cAAc;EACd,oBAAoB;;EAEpB;;EAEA;;EAEA,uBAAuB,SAAS,QAAQ;;EAExC;;EAEA;;EAEA;EACA;EACA;;EAEA;EACA,oBAAoB;EACpB,uBAAuB;EACvB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;;EAEA;EACA,oBAAoB,SAAS,QAAQ;;EAErC,sBAAsB,MAAM;EAC5B;EACA,wBAAwB;EACxB,eAAe;;EAEf;;EAEA,2BAA2B,QAAQ;;EAEnC;IAAe;IAAkB;;;EAEjC;;EAEA;EACA,0BAA0B,cAAc;;EAExC,iBAAiB;;EAEjB,6BAA6B,YAAY;;EAEzC,iBAAiB;EACjB,aAAa;EACb;EACA,0BAA0B;EAC1B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;;EAEA;EACA;EACA;EACA;EACA,cAAc;EACd,qBAAqB,SAAS,QAAQ;EACtC;;;;;;EAMA;;EAEA;;EAEA;;;;;EAKA,yBAAyB;EACzB,kCAAkC,SAAS,QAAQ;;EAEnD,yBAAyB;;EAEzB;;EAEA;;EAEA;;EAEA;;;;;;;EAOA,kBAAkB;;;;;;;;;;;;;;;;;UCxPF;EAChB,gBAAgB;EAChB,QAAQ;;;;UCUQ;EAChB,mBAAmB,QAAM,UAAU;EACnC,gBAAgB,QAAM,UAAU;EAChC,gBAAgB,QAAM,UAAU;EAChC;;UAuBgB;EAChB,aAAa;EACb,kBAAkB;EAClB,YAAY;EACZ,MAAM;EACN,MAAM;EACN;EACA;EACA,sBAAsB;EACtB,iBAAiB;EACjB;EACA;EACA;EACA,eAAe;EACf,kBAAkB;EAClB,uBAAuB;EACvB,WAAW;IAAQ;IAAc;;EACjC;;EAEA;EACA;;EAEA,YAAY;EACZ,QAAQ;IAAQ;IAAY;IAAiB;;EAC7C,4BAA4B,YAAY;EACxC;EAEA,UAAU,mBAAmB,GAAG,QAAM;EACtC,gBAAgB,mBAAmB,GAAG,QAAM;EAC5C,cAAc,mBAAmB,GAAG,QAAM;EAC1C,gBAAgB,mBAAmB,GAAG,QAAM;;EAE5C,qBAAqB,GAAG,QAAM;EAC9B,sBAAsB,mBAAmB,GAAG,QAAM,YAAY;EAC9D,0BACC,mBACA,GAAG,QAAM,YACT,YAAY;;EAGb,YAAY,mBAAmB;EAC/B,qBAAqB;EACrB;EACA;EACA,oBACC,MAAM,KAAK,2CACX;;EAGD,oBAAoB,mBAAmB,kBAAkB,kBAAkB;;;;;;EAM3E,2BAA2B,mBAAmB,SAAS,QAAQ;;;;;;EAM/D,gBAAgB,SAAS,QAAQ;;EAEjC,wBAAwB,mBAAmB;;EAE3C,oBAAoB,mBAAmB,kBAAkB;;EAEzD,cAAc;IACb;IACA;IACA;IACA;IACA;;;EAGD;;EAEA;;EAIA,aAAa;;EAEb;;EAEA;;EAEA,eAAe,QAAM;;EAErB,mBAAmB,KAAK;;EAExB,sBAAsB,OAAO;;EAE7B,qBAAqB;;EAIrB,iBAAiB,mBAAmB,QAAQ;;EAE5C,oBAAoB;;EAIpB,WAAW;;EAEX;;EAEA,wBAAwB;EACxB,eAAe,iBAAiB;EAChC,iBAAiB;EACjB,0BAA0B,iBAAiB;;;;;;EAQ3C,2BAA2B,YAAY;;EAIvC;;EAEA,qBAAqB,WAAW;;EAIhC,qBAAqB;;EAErB,eAAe,0BAA0B;;EAEzC;;EAIA,eAAe;;EAIf,oBAAoB;;EAIpB,uBAAuB,QAAM;;;;;EAO7B;;;;KCnMW;EACP;;EACA;EAAmB;;EACnB;;EACA;EAAgB;;EAChB;EAAgB;;UAEJ;;EAEhB;;EAEA;;EAEA,uBAAuB,QAAQ;;;;;;;;;EAS/B;;;;;;EAMA;;;;;EAKA;;;;;;;;;;;EAWA;;UAGgB;;EAEhB,gBAAgB;;EAEhB,uBAAuB;;iBAOR,YAAY,OAAO,mBAAmB;;;UCvBrC;;EAEhB,SAAS,cAAc;;EAEvB;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA,yBAAyB;;EAEzB,SAAS,MAAM,aAAa;EAC5B,mBAAmB,SAAS;EAC5B,iBAAiB;EACjB,uBAAuB;EACvB,gBAAgB,MAAM;EACtB,gBAAgB;EAChB,qBAAqB;EACrB,sBAAsB;;EAEtB;;EAEA;;EAEA;;UAOgB;;EAEhB,cAAc;;EAEd,aAAa;;EAEb,MAAM;;EAEN;;EAEA;;EAEA,gBAAgB;;iBAOD,wBACf,OAAO,+BACL"}