pptx-svelte-viewer 4.2.0 → 4.4.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.
- package/CHANGELOG.md +138 -0
- package/dist/{AiChatPanel-fey6hh2R.js → AiChatPanel-DywhOzzW.js} +15 -15
- package/dist/{export-DoyAdIHl.js → export-BUx-Kmlc.js} +11484 -11061
- package/dist/i18n/de.cjs +25 -2
- package/dist/i18n/de.mjs +25 -2
- package/dist/i18n/es.cjs +25 -2
- package/dist/i18n/es.mjs +25 -2
- package/dist/i18n/fr.cjs +25 -2
- package/dist/i18n/fr.mjs +25 -2
- package/dist/i18n/zh-CN.cjs +25 -2
- package/dist/i18n/zh-CN.mjs +25 -2
- package/dist/i18n.js +1 -1
- package/dist/index.d.ts +273 -3
- package/dist/index.js +38 -38
- package/dist/internals.d.ts +226 -3
- package/dist/internals.js +23 -23
- package/dist/pptx-svelte-viewer.css +1 -1
- package/dist/{transition-overlay-BcUomRXK.js → transition-overlay-CfsPqlES.js} +46600 -39746
- package/dist/{translator-D7duxy6A.js → translator-Dn-ANCp2.js} +25 -2
- package/dist/viewer/index.d.ts +391 -5
- package/dist/viewer/index.js +15 -15
- package/package.json +1 -1
- package/dist/canvas_emf-converter-CKs-EBwD.js +0 -5
package/dist/internals.d.ts
CHANGED
|
@@ -1394,6 +1394,32 @@ interface TextStyle {
|
|
|
1394
1394
|
* @see element-paragraph-geometry.ts
|
|
1395
1395
|
*/
|
|
1396
1396
|
resolvedParagraphGeometry?: TextStyle;
|
|
1397
|
+
/**
|
|
1398
|
+
* Snapshot of the ELEMENT-scope `a:bodyPr` properties (vertical anchor,
|
|
1399
|
+
* text direction, columns, overflow, autofit, body insets, text wrap, and
|
|
1400
|
+
* the boolean/rotation attributes) as the load pipeline resolved them.
|
|
1401
|
+
*
|
|
1402
|
+
* A shape's own `a:bodyPr` is parsed first, then whatever it left
|
|
1403
|
+
* `undefined` is back-filled from the placeholder / layout / master
|
|
1404
|
+
* defaults (`applyPlaceholderBodyDefaults`), and a placeholder shape with
|
|
1405
|
+
* no `a:bodyPr` of its own has the INHERITED one parsed as if it were its
|
|
1406
|
+
* own. None of those three sources is distinguishable at
|
|
1407
|
+
* `element.textStyle` once the cascade finishes, so a writer that
|
|
1408
|
+
* re-emits every defined field turns an inherited anchor, inset, autofit
|
|
1409
|
+
* mode or `rtlCol` into a value pinned on the slide forever (and an
|
|
1410
|
+
* inherited `a:normAutofit` with no scale gets written back as
|
|
1411
|
+
* `a:spAutoFit`, flipping AutoSize from "shrink text" to "resize shape").
|
|
1412
|
+
*
|
|
1413
|
+
* Present only on an `element.textStyle` that came from a parsed deck.
|
|
1414
|
+
* The save path diffs the live style against this snapshot: a field that
|
|
1415
|
+
* still matches is an inheritance artefact and the writer leaves the
|
|
1416
|
+
* underlying `a:bodyPr` attribute untouched (whatever it already is,
|
|
1417
|
+
* present or absent); a field that differs was authored or has since
|
|
1418
|
+
* been edited and is written out.
|
|
1419
|
+
*
|
|
1420
|
+
* @see element-body-properties.ts
|
|
1421
|
+
*/
|
|
1422
|
+
resolvedBodyProperties?: TextStyle;
|
|
1397
1423
|
fontFamily?: string;
|
|
1398
1424
|
fontSize?: number;
|
|
1399
1425
|
/** When true, some form of autofit is in effect; see {@link autoFitMode} for which. */
|
|
@@ -1576,6 +1602,16 @@ interface TextStyle {
|
|
|
1576
1602
|
align: 'l' | 'ctr' | 'r' | 'dec';
|
|
1577
1603
|
leader?: 'none' | 'dot' | 'hyphen' | 'underscore';
|
|
1578
1604
|
}>;
|
|
1605
|
+
/**
|
|
1606
|
+
* True when the paragraph's own `a:pPr` authored an EMPTY `<a:tabLst/>`
|
|
1607
|
+
* (explicitly "no tab stops", overriding whatever the cascade would
|
|
1608
|
+
* otherwise supply) rather than omitting the element entirely (inherit).
|
|
1609
|
+
* fast-xml-parser gives a childless element as the empty string, so
|
|
1610
|
+
* `tabLst` and no-`tabLst` are otherwise indistinguishable once `tabStops`
|
|
1611
|
+
* comes back empty either way. Paragraph-scope only; not part of the
|
|
1612
|
+
* element-level geometry cascade.
|
|
1613
|
+
*/
|
|
1614
|
+
tabStopsExplicitEmpty?: boolean;
|
|
1579
1615
|
/** Body text wrapping mode from `a:bodyPr/@wrap`. */
|
|
1580
1616
|
textWrap?: 'square' | 'none';
|
|
1581
1617
|
/** Preset text warp type from `a:bodyPr/a:prstTxWarp`. */
|
|
@@ -1618,6 +1654,20 @@ interface TextStyle {
|
|
|
1618
1654
|
* serialised back on save, so it never disturbs the round-trip typefaces.
|
|
1619
1655
|
*/
|
|
1620
1656
|
scriptFallbackFont?: string;
|
|
1657
|
+
/**
|
|
1658
|
+
* Set alongside {@link scriptFallbackFont} when the resolved {@link fontFamily}
|
|
1659
|
+
* came only from the paragraph/list-style/theme CASCADE (the run's own
|
|
1660
|
+
* `a:rPr` authored no `a:latin`/`a:ea`/`a:cs` of its own). A run always
|
|
1661
|
+
* inherits SOME font this way (typically the theme's `+mn-lt`), so without
|
|
1662
|
+
* this flag `fontFamily` was indistinguishable from a run that genuinely
|
|
1663
|
+
* chose that font itself, and the renderer never applied the theme's
|
|
1664
|
+
* per-script override (see #83): `+mn-lt` names only the LATIN member of
|
|
1665
|
+
* the font scheme and was never meant to cover text in a different
|
|
1666
|
+
* dominant script. An explicit `a:latin`/`a:ea`/`a:cs` authored on the run
|
|
1667
|
+
* itself still always wins; only the cascade default yields to the
|
|
1668
|
+
* script-specific override.
|
|
1669
|
+
*/
|
|
1670
|
+
fontFamilyIsCascadeDefault?: boolean;
|
|
1621
1671
|
/** Text language from `a:rPr/@lang`. */
|
|
1622
1672
|
language?: string;
|
|
1623
1673
|
/** Hyperlink mouse-over target from `a:hlinkMouseOver`. */
|
|
@@ -1640,6 +1690,16 @@ interface TextStyle {
|
|
|
1640
1690
|
hyperlinkHighlightClick?: boolean;
|
|
1641
1691
|
/** Whether hyperlink ends a sound (`a:hlinkClick/@endSnd`). */
|
|
1642
1692
|
hyperlinkEndSound?: boolean;
|
|
1693
|
+
/**
|
|
1694
|
+
* Raw `a:hlinkClick/a:extLst` child, preserved verbatim for round-trip.
|
|
1695
|
+
* Carries vendor extensions this engine does not interpret, most commonly
|
|
1696
|
+
* `ahyp:hlinkClr` (Microsoft's "hyperlink color" extension,
|
|
1697
|
+
* `{A12FA001-AC4F-418D-AE19-62706E023703}`), which records whether a
|
|
1698
|
+
* hyperlink run should paint with the theme's text colour instead of the
|
|
1699
|
+
* hyperlink colour. Dropping the whole `a:extLst` silently reverted such a
|
|
1700
|
+
* run to the default (themed) hyperlink colour on save.
|
|
1701
|
+
*/
|
|
1702
|
+
hyperlinkExtensionXml?: XmlObject;
|
|
1643
1703
|
/** Kumimoji (ideographic text combining) flag for vertical CJK text (`a:rPr/@kumimoji`). */
|
|
1644
1704
|
kumimoji?: boolean;
|
|
1645
1705
|
/** Normalize height flag (`a:rPr/@normalizeH`). */
|
|
@@ -1793,6 +1853,15 @@ interface TextStyle {
|
|
|
1793
1853
|
textGlowRadius?: number;
|
|
1794
1854
|
/** Text glow opacity (0-1). */
|
|
1795
1855
|
textGlowOpacity?: number;
|
|
1856
|
+
/**
|
|
1857
|
+
* Original glow colour-choice XML (`a:glow`'s `a:schemeClr`/`a:srgbClr`/…
|
|
1858
|
+
* child), preserved verbatim so a theme colour reference round-trips
|
|
1859
|
+
* instead of always being re-serialized as a resolved `a:srgbClr` (which
|
|
1860
|
+
* cuts the glow off from theme/Recolor changes).
|
|
1861
|
+
*/
|
|
1862
|
+
textGlowColorXml?: XmlObject;
|
|
1863
|
+
/** Theme colour slot the glow colour resolved from, when it is `a:schemeClr`. */
|
|
1864
|
+
textGlowColorRef?: PptxThemeColorRef;
|
|
1796
1865
|
/** Text reflection enabled flag. */
|
|
1797
1866
|
textReflection?: boolean;
|
|
1798
1867
|
/** Text reflection blur radius in px. */
|
|
@@ -1929,6 +1998,18 @@ interface BulletInfo {
|
|
|
1929
1998
|
paragraphIndex?: number;
|
|
1930
1999
|
/** Bullet font family from `a:buFont`. */
|
|
1931
2000
|
fontFamily?: string;
|
|
2001
|
+
/**
|
|
2002
|
+
* PANOSE font-matching hint from `a:buFont/@panose`. `a:buFont` is a
|
|
2003
|
+
* CT_TextFont, the same complex type as `a:latin`/`a:ea`/`a:cs`/`a:sym`
|
|
2004
|
+
* (which carry the equivalent `TextStyle.latinFontPanose` etc.), so a
|
|
2005
|
+
* bullet's own PANOSE/pitch-family/charset decide the fallback glyph
|
|
2006
|
+
* PowerPoint substitutes when the named typeface is missing.
|
|
2007
|
+
*/
|
|
2008
|
+
fontPanose?: string;
|
|
2009
|
+
/** Font pitch-and-family byte from `a:buFont/@pitchFamily`. */
|
|
2010
|
+
fontPitchFamily?: number;
|
|
2011
|
+
/** Font character-set byte from `a:buFont/@charset`. */
|
|
2012
|
+
fontCharset?: number;
|
|
1932
2013
|
/** Bullet size as percentage of text font size from `a:buSzPct`. */
|
|
1933
2014
|
sizePercent?: number;
|
|
1934
2015
|
/** Bullet size in points from `a:buSzPts`. */
|
|
@@ -1970,6 +2051,18 @@ interface BulletInfo {
|
|
|
1970
2051
|
/** When true, `<a:buSzTx/>` was specified — inherit the bullet size from
|
|
1971
2052
|
* the run text font size. */
|
|
1972
2053
|
sizeInherit?: boolean;
|
|
2054
|
+
/**
|
|
2055
|
+
* True when this bullet resolution came from the paragraph's OWN `a:pPr`
|
|
2056
|
+
* rather than the shape's `a:lstStyle`, an inherited placeholder, or the
|
|
2057
|
+
* master's `a:defPPr` / `p:txStyles`. `resolveParagraphBulletInfo` walks
|
|
2058
|
+
* that cascade and returns the first match, so without this flag a
|
|
2059
|
+
* writer that re-emits every resolved `BulletInfo` in full pins an
|
|
2060
|
+
* inherited bullet (e.g. a master `buFont="Arial"` / `buChar="•"`) onto
|
|
2061
|
+
* every paragraph's own `a:pPr` the moment the slide is rewritten. The
|
|
2062
|
+
* save path only writes the bullet group when this is `true`, mirroring
|
|
2063
|
+
* how `paragraphProperties` gates every other per-paragraph field.
|
|
2064
|
+
*/
|
|
2065
|
+
ownedByParagraph?: boolean;
|
|
1973
2066
|
}
|
|
1974
2067
|
/**
|
|
1975
2068
|
* A single text run within a paragraph.
|
|
@@ -2012,6 +2105,23 @@ interface TextSegment {
|
|
|
2012
2105
|
fieldParagraphPropertiesXml?: XmlObject;
|
|
2013
2106
|
/** Raw OMML XML node for equation segments (from `a14:m` / `m:oMathPara`). */
|
|
2014
2107
|
equationXml?: Record<string, unknown>;
|
|
2108
|
+
/**
|
|
2109
|
+
* The ORIGINAL top-level paragraph child that carried this equation,
|
|
2110
|
+
* captured verbatim at parse time and keyed by its own tag: `{ 'a14:m':
|
|
2111
|
+
* ... }`, `{ 'm:oMathPara': ... }`, `{ 'm:oMath': ... }`, or `{
|
|
2112
|
+
* 'mc:AlternateContent': ... }` for an equation authored behind a
|
|
2113
|
+
* Choice/Fallback switch. `equationXml` above is the resolved math content
|
|
2114
|
+
* used for rendering (unwrapped one level for `a14:m`/`mc:AlternateContent`
|
|
2115
|
+
* sources); this field exists solely so the writer can re-emit an UNTOUCHED
|
|
2116
|
+
* equation byte-for-byte, Choice and Fallback both, instead of collapsing
|
|
2117
|
+
* it to a bare math element PowerPoint's own writer never produces.
|
|
2118
|
+
* `undefined` for a freshly inserted or edited equation, which the writer
|
|
2119
|
+
* instead reconstructs from `equationXml` (always `{ 'm:oMathPara': ... }`
|
|
2120
|
+
* or `{ 'm:oMath': ... }` for those cases). Any code that replaces
|
|
2121
|
+
* `equationXml` on an existing segment must drop this field, or the writer
|
|
2122
|
+
* would keep re-emitting the equation's OLD XML instead of the edit.
|
|
2123
|
+
*/
|
|
2124
|
+
equationSourceXml?: Record<string, unknown>;
|
|
2015
2125
|
/**
|
|
2016
2126
|
* Optional equation number for numbered equations (e.g. "(1)", "(2.3)").
|
|
2017
2127
|
* When present, the equation is rendered centered with the number right-aligned.
|
|
@@ -4998,6 +5108,18 @@ interface PptxSmartArtLayoutDefinition {
|
|
|
4998
5108
|
rootNode: PptxSmartArtLayoutNode;
|
|
4999
5109
|
/** Original definition retained for constraint evaluation and foreign rules. */
|
|
5000
5110
|
rawXml?: XmlObject;
|
|
5111
|
+
/**
|
|
5112
|
+
* The un-parsed layout-definition part text (starting at `<dgm:layoutDef>`,
|
|
5113
|
+
* XML declaration included). `rawXml` above loses the document order of
|
|
5114
|
+
* differently-named siblings (the package-wide `fast-xml-parser`
|
|
5115
|
+
* configuration groups children into one array per tag), which the
|
|
5116
|
+
* per-point DiagramML engine (`core/utils/smartart-engine/`) needs to
|
|
5117
|
+
* execute a `layoutNode` body's `forEach`/`choose`/`constrLst` statements
|
|
5118
|
+
* in their real declared sequence - see that package's `ordered-xml.ts`.
|
|
5119
|
+
* `undefined` when the part could not be read (matches `rawXml`'s own
|
|
5120
|
+
* optionality); the engine falls back to the legacy interpreter then.
|
|
5121
|
+
*/
|
|
5122
|
+
rawXmlText?: string;
|
|
5001
5123
|
}
|
|
5002
5124
|
//#endregion
|
|
5003
5125
|
//#region src/core/types/smart-art-node.d.ts
|
|
@@ -6086,6 +6208,20 @@ interface PptxTableData {
|
|
|
6086
6208
|
* present when there is at least one effect.
|
|
6087
6209
|
*/
|
|
6088
6210
|
tableEffects?: ParsedTableStyleEffect[];
|
|
6211
|
+
/**
|
|
6212
|
+
* Table-cell-context default text size in points, resolved from the
|
|
6213
|
+
* slide's master `p:otherStyle` (ECMA-376 §19.3.1.42 CT_TextListStyle,
|
|
6214
|
+
* §19.3.1.52 for `p:txStyles`). PowerPoint sizes a table cell's text off
|
|
6215
|
+
* this master default (commonly 18pt) whenever neither the run nor the
|
|
6216
|
+
* (size-less) table style provides one; without it, cell text without an
|
|
6217
|
+
* explicit `a:rPr@sz` fell back to the browser's own default font size
|
|
6218
|
+
* (16px / 12pt) instead. A render-only hint: it is not part of any
|
|
6219
|
+
* individual cell's parsed style and is never written back on save, so
|
|
6220
|
+
* resaving an unstyled cell does not bake in an explicit size that was
|
|
6221
|
+
* never authored. `undefined` when no master/otherStyle size resolves
|
|
6222
|
+
* (renderers should leave the browser default in place in that case).
|
|
6223
|
+
*/
|
|
6224
|
+
defaultCellFontSize?: number;
|
|
6089
6225
|
}
|
|
6090
6226
|
/**
|
|
6091
6227
|
* A single fill reference within a table style section.
|
|
@@ -6111,6 +6247,14 @@ interface ParsedTableStyleFill {
|
|
|
6111
6247
|
tint?: number;
|
|
6112
6248
|
/** Shade value (0-100 000). */
|
|
6113
6249
|
shade?: number;
|
|
6250
|
+
/**
|
|
6251
|
+
* Alpha (opacity) value (0-100 000, where 100 000 is fully opaque) from an
|
|
6252
|
+
* `a:alpha` child of `a:schemeClr`/`a:srgbClr`. Several built-in table
|
|
6253
|
+
* styles (e.g. "Light Style 1/3", "Themed Style 1/2") band their rows with
|
|
6254
|
+
* a partially transparent tint of the theme colour rather than a tint/shade
|
|
6255
|
+
* blend.
|
|
6256
|
+
*/
|
|
6257
|
+
alpha?: number;
|
|
6114
6258
|
/** Explicit sRGB hex colour (e.g. `#FF8800`) from `a:srgbClr`. */
|
|
6115
6259
|
color?: string;
|
|
6116
6260
|
/** The fill was `a:noFill`: renders transparent and clears lower layers. */
|
|
@@ -6738,6 +6882,20 @@ interface ContentPartInkStroke {
|
|
|
6738
6882
|
* NAMES differ.
|
|
6739
6883
|
*/
|
|
6740
6884
|
tiltEncoding?: 'vector' | 'azimuthAltitude';
|
|
6885
|
+
/**
|
|
6886
|
+
* Per-point timestamps (milliseconds), decoded from the source InkML
|
|
6887
|
+
* trace's `T` channel when it declared one.
|
|
6888
|
+
*
|
|
6889
|
+
* Absent for the overwhelming majority of real decks: PowerPoint's own
|
|
6890
|
+
* SaveAs output declares only `X`/`Y` and has no per-point time channel at
|
|
6891
|
+
* all (see `contentpart-real-ink-roundtrip.test.ts`'s fixture), so this is
|
|
6892
|
+
* populated only for InkML sources that genuinely author one (a captured
|
|
6893
|
+
* digitizer session, OneNote, a Surface Hub export). When present, ink
|
|
6894
|
+
* replay ("watch the ink get drawn") uses each stroke's own first/last
|
|
6895
|
+
* timestamp to time its reveal instead of the fixed per-stroke cascade; see
|
|
6896
|
+
* `pptx-viewer-shared`'s `render/ink-replay-timeline.ts`.
|
|
6897
|
+
*/
|
|
6898
|
+
pointTimestamps?: number[];
|
|
6741
6899
|
}
|
|
6742
6900
|
/**
|
|
6743
6901
|
* A content-part element wrapped in `mc:AlternateContent`.
|
|
@@ -6782,6 +6940,34 @@ interface ZoomPptxElement extends PptxElementBase, PptxImageProperties {
|
|
|
6782
6940
|
summaryTargets?: SummaryZoomTarget[];
|
|
6783
6941
|
/** Layout mode authored on the Summary Zoom container. */
|
|
6784
6942
|
summaryLayout?: 'grid' | 'fixed';
|
|
6943
|
+
/**
|
|
6944
|
+
* `zmPr/@returnToParent` (MS-PPTX `CT_ZoomObjectProperties`, shared by all
|
|
6945
|
+
* three Zoom kinds): whether continuing forward from the destination slide
|
|
6946
|
+
* during a live show returns to this Zoom's origin slide instead of
|
|
6947
|
+
* advancing linearly through the deck. The schema declares `<xsd:attribute
|
|
6948
|
+
* name="returnToParent" type="xsd:boolean" use="optional" default="true"/>`,
|
|
6949
|
+
* so an ABSENT attribute means `true`, not `false`. This codebase still
|
|
6950
|
+
* leaves the field `undefined` (rather than fabricating `true`) when the
|
|
6951
|
+
* source XML omits it, so a round-trip never invents an attribute the
|
|
6952
|
+
* source never had; a CONSUMER of this field (playback, e.g.
|
|
6953
|
+
* `pptx-viewer-shared`'s `resolveZoomNavigationTarget`) must read
|
|
6954
|
+
* `returnToParent !== false`, not `Boolean(returnToParent)`, to get the
|
|
6955
|
+
* spec-correct effective value. For `zoomType: 'summary'`, this mirrors the
|
|
6956
|
+
* first tile's own value; see {@link SummaryZoomTarget.returnToParent} for
|
|
6957
|
+
* the per-tile value.
|
|
6958
|
+
*/
|
|
6959
|
+
returnToParent?: boolean;
|
|
6960
|
+
/**
|
|
6961
|
+
* `zmPr/@transitionDur` (MS-PPTX `CT_ZoomObjectProperties`): the
|
|
6962
|
+
* zoom-transition length in milliseconds. PowerPoint's own writer emits a
|
|
6963
|
+
* unitless decimal-millisecond value for every OOXML `ST_UniversalTimeOffset`
|
|
6964
|
+
* this codebase has observed (see the media-trim/-fade parsers), so this
|
|
6965
|
+
* follows the same convention rather than the full TIMEOFFSET grammar's
|
|
6966
|
+
* unit suffixes. Undefined uses the destination slide's own transition.
|
|
6967
|
+
* For `zoomType: 'summary'`, this mirrors the first tile's own value; see
|
|
6968
|
+
* {@link SummaryZoomTarget.transitionDurationMs} for the per-tile value.
|
|
6969
|
+
*/
|
|
6970
|
+
transitionDurationMs?: number;
|
|
6785
6971
|
}
|
|
6786
6972
|
/** A single section tile within a PowerPoint Summary Zoom container. */
|
|
6787
6973
|
interface SummaryZoomTarget extends PptxImageProperties {
|
|
@@ -6797,6 +6983,10 @@ interface SummaryZoomTarget extends PptxImageProperties {
|
|
|
6797
6983
|
offsetFactorY?: number;
|
|
6798
6984
|
scaleFactorX?: number;
|
|
6799
6985
|
scaleFactorY?: number;
|
|
6986
|
+
/** This tile's own `zmPr/@returnToParent`; see {@link ZoomPptxElement.returnToParent}. */
|
|
6987
|
+
returnToParent?: boolean;
|
|
6988
|
+
/** This tile's own `zmPr/@transitionDur` in milliseconds; see {@link ZoomPptxElement.transitionDurationMs}. */
|
|
6989
|
+
transitionDurationMs?: number;
|
|
6800
6990
|
rawXml?: XmlObject;
|
|
6801
6991
|
}
|
|
6802
6992
|
/**
|
|
@@ -7517,6 +7707,17 @@ interface PptxAttributeAnimation {
|
|
|
7517
7707
|
* IS consulted regardless of this field's value. Absent means `lin`.
|
|
7518
7708
|
*/
|
|
7519
7709
|
calcMode?: 'discrete' | 'lin' | 'fmla';
|
|
7710
|
+
/**
|
|
7711
|
+
* `p:anim/@_p14:bounceEnd` (Office 2010 `p14` extension attribute,
|
|
7712
|
+
* MS-OI29500), normalized to a 0-1 fraction of this behaviour's own
|
|
7713
|
+
* duration. PowerPoint's Fly In "Bounce End" effect option writes this on
|
|
7714
|
+
* the position-ramp `p:anim` node(s): the fraction of the duration at
|
|
7715
|
+
* which the primary travel completes, with the remainder spent bouncing
|
|
7716
|
+
* and settling at the final value. Mirrored verbatim by PowerPoint onto
|
|
7717
|
+
* the enclosing `p:cTn/@_p14:presetBounceEnd`. Absent for every animation
|
|
7718
|
+
* that doesn't use this effect option (the overwhelming majority).
|
|
7719
|
+
*/
|
|
7720
|
+
bounceEnd?: number;
|
|
7520
7721
|
}
|
|
7521
7722
|
/** Signed HSL channel deltas parsed from `p:animClr/p:by/p:hsl`. */
|
|
7522
7723
|
interface PptxHslColorDelta {
|
|
@@ -7598,7 +7799,19 @@ interface PptxTextAnimationTarget {
|
|
|
7598
7799
|
* These map directly to OOXML condition event attribute values
|
|
7599
7800
|
* (ISO/IEC 29500-1 S19.5.28 CT_TLTimeCondition).
|
|
7600
7801
|
*/
|
|
7601
|
-
type AnimationConditionEvent = 'onBegin' | 'onEnd' | 'begin' | 'end' | 'onClick' | 'onMouseOver' | 'onMouseOut' | 'onNext' | 'onPrev' | 'onStopAudio' | 'onDblClick';
|
|
7802
|
+
type AnimationConditionEvent = 'onBegin' | 'onEnd' | 'begin' | 'end' | 'onClick' | 'onMouseOver' | 'onMouseOut' | 'onNext' | 'onPrev' | 'onStopAudio' | 'onDblClick' | 'onMediaBookmark';
|
|
7803
|
+
/**
|
|
7804
|
+
* `p14:bmkTgt` (Office 2010 `p14` extension, MS-OI29500): names the specific
|
|
7805
|
+
* media element and bookmark an `evt="onMediaBookmark"` condition fires for.
|
|
7806
|
+
* `bookmarkName` matches a `p14:bmk/@_name` on that media element's own
|
|
7807
|
+
* `p14:bmkLst` (see `MediaBookmark.label` in `core/types/elements.ts`).
|
|
7808
|
+
*/
|
|
7809
|
+
interface PptxMediaBookmarkTarget {
|
|
7810
|
+
/** `p14:bmkTgt/@_spid`: the media element's shape id. */
|
|
7811
|
+
shapeId: string;
|
|
7812
|
+
/** `p14:bmkTgt/@_bmkName`: the bookmark's name. */
|
|
7813
|
+
bookmarkName: string;
|
|
7814
|
+
}
|
|
7602
7815
|
/**
|
|
7603
7816
|
* Structured representation of a single OOXML animation condition
|
|
7604
7817
|
* from `p:cond` elements inside `p:stCondLst` or `p:endCondLst`.
|
|
@@ -7618,6 +7831,11 @@ type AnimationConditionEvent = 'onBegin' | 'onEnd' | 'begin' | 'end' | 'onClick'
|
|
|
7618
7831
|
interface AnimationCondition {
|
|
7619
7832
|
/** Event that triggers the condition. */
|
|
7620
7833
|
event?: AnimationConditionEvent;
|
|
7834
|
+
/**
|
|
7835
|
+
* The media element/bookmark this condition fires for, when
|
|
7836
|
+
* {@link event} is `onMediaBookmark`. See {@link PptxMediaBookmarkTarget}.
|
|
7837
|
+
*/
|
|
7838
|
+
bookmarkTarget?: PptxMediaBookmarkTarget;
|
|
7621
7839
|
/** Delay in milliseconds (from `@_delay`). "indefinite" is represented as -1. */
|
|
7622
7840
|
delay?: number;
|
|
7623
7841
|
/** Target time node ID reference (from `@_tn`). */
|
|
@@ -7965,7 +8183,12 @@ interface PptxSlideTransition {
|
|
|
7965
8183
|
spokes?: number;
|
|
7966
8184
|
/** Pattern type for shred transition. */
|
|
7967
8185
|
pattern?: string;
|
|
7968
|
-
/**
|
|
8186
|
+
/**
|
|
8187
|
+
* Through-black flag (OOXML `@_thruBlk`). COM-verified to actually apply to
|
|
8188
|
+
* `cut` and `fade` (see {@link TRANSITION_THRUBLK_TYPES}); parsed generically
|
|
8189
|
+
* off any standard transition child so an unexpected authored value still
|
|
8190
|
+
* round-trips.
|
|
8191
|
+
*/
|
|
7969
8192
|
thruBlk?: boolean;
|
|
7970
8193
|
/** Split orientation (horz/vert) parsed from `@_orient`. */
|
|
7971
8194
|
orient?: PptxSplitOrientation;
|
|
@@ -8408,7 +8631,7 @@ declare const P14_TRANSITION_KEYFRAMES = "\n/* ── Conveyor (translate X with
|
|
|
8408
8631
|
/** Part 2: prism / reveal / ripple / shred / switch / vortex / warp / wheelReverse / window. */
|
|
8409
8632
|
declare const P14_TRANSITION_KEYFRAMES_2 = "\n/* ── Prism: see `slide-transition-prism` (split out to keep this module\n under the per-file LOC budget) ─────────────────────────────────────── */\n\n@keyframes pptx-tr-prism-in-from-right {\n\tfrom { transform: perspective(800px) rotateY(-90deg) translateX(50%); opacity: 0; }\n\tto { transform: perspective(800px) rotateY(0deg) translateX(0); opacity: 1; }\n}\n@keyframes pptx-tr-prism-out-to-left {\n\tfrom { transform: perspective(800px) rotateY(0deg) translateX(0); opacity: 1; }\n\tto { transform: perspective(800px) rotateY(90deg) translateX(-50%); opacity: 0; }\n}\n@keyframes pptx-tr-prism-in-from-left {\n\tfrom { transform: perspective(800px) rotateY(90deg) translateX(-50%); opacity: 0; }\n\tto { transform: perspective(800px) rotateY(0deg) translateX(0); opacity: 1; }\n}\n@keyframes pptx-tr-prism-out-to-right {\n\tfrom { transform: perspective(800px) rotateY(0deg) translateX(0); opacity: 1; }\n\tto { transform: perspective(800px) rotateY(-90deg) translateX(50%); opacity: 0; }\n}\n@keyframes pptx-tr-prism-in-from-bottom {\n\tfrom { transform: perspective(800px) rotateX(90deg) translateY(50%); opacity: 0; }\n\tto { transform: perspective(800px) rotateX(0deg) translateY(0); opacity: 1; }\n}\n@keyframes pptx-tr-prism-out-to-top {\n\tfrom { transform: perspective(800px) rotateX(0deg) translateY(0); opacity: 1; }\n\tto { transform: perspective(800px) rotateX(-90deg) translateY(-50%); opacity: 0; }\n}\n@keyframes pptx-tr-prism-in-from-top {\n\tfrom { transform: perspective(800px) rotateX(-90deg) translateY(-50%); opacity: 0; }\n\tto { transform: perspective(800px) rotateX(0deg) translateY(0); opacity: 1; }\n}\n@keyframes pptx-tr-prism-out-to-bottom {\n\tfrom { transform: perspective(800px) rotateX(0deg) translateY(0); opacity: 1; }\n\tto { transform: perspective(800px) rotateX(90deg) translateY(50%); opacity: 0; }\n}\n\n/* ── Reveal (slide away reveal) ──────────────────────────────────── */\n@keyframes pptx-tr-reveal-out-to-right {\n\tfrom { transform: translateX(0); }\n\tto { transform: translateX(100%); }\n}\n@keyframes pptx-tr-reveal-out-to-left {\n\tfrom { transform: translateX(0); }\n\tto { transform: translateX(-100%); }\n}\n/* MEASURED: the incoming layer stays hidden for roughly the first half of the\n transition (a real black/background gap shows through), then fades in -\n not a flat 0.5->1 fade running the whole duration. */\n@keyframes pptx-tr-reveal-in {\n\t0% { opacity: 0; }\n\t50% { opacity: 0; }\n\t100% { opacity: 1; }\n}\n\n/* ── Ripple (expanding ring clip-path) ───────────────────────────── */\n@keyframes pptx-tr-ripple-in {\n\tfrom { clip-path: circle(0% at 50% 50%); opacity: 0.5; }\n\t30% { clip-path: circle(20% at 50% 50%); opacity: 0.7; }\n\t60% { clip-path: circle(50% at 50% 50%); opacity: 0.9; }\n\tto { clip-path: circle(75% at 50% 50%); opacity: 1; }\n}\n\n/* ── Shred (fragmented clip-path pieces) ─────────────────────────── */\n@keyframes pptx-tr-shred-strips-in {\n\tfrom { clip-path: inset(0 100% 0 0); opacity: 0; }\n\t30% { clip-path: inset(0 60% 0 0); opacity: 0.5; }\n\tto { clip-path: inset(0); opacity: 1; }\n}\n@keyframes pptx-tr-shred-rectangles-in {\n\tfrom { clip-path: inset(50%); opacity: 0; }\n\t40% { clip-path: inset(20%); opacity: 0.6; }\n\tto { clip-path: inset(0); opacity: 1; }\n}\n@keyframes pptx-tr-shred-out {\n\tfrom { opacity: 1; }\n\tto { opacity: 0; filter: blur(2px); }\n}\n\n/* ── Switch (flip/rotate swap) ───────────────────────────────────── */\n@keyframes pptx-tr-switch-in-from-right {\n\tfrom { transform: perspective(800px) rotateY(-180deg); opacity: 0; }\n\tto { transform: perspective(800px) rotateY(0deg); opacity: 1; }\n}\n@keyframes pptx-tr-switch-out-to-left {\n\tfrom { transform: perspective(800px) rotateY(0deg); opacity: 1; }\n\tto { transform: perspective(800px) rotateY(180deg); opacity: 0; }\n}\n@keyframes pptx-tr-switch-in-from-left {\n\tfrom { transform: perspective(800px) rotateY(180deg); opacity: 0; }\n\tto { transform: perspective(800px) rotateY(0deg); opacity: 1; }\n}\n@keyframes pptx-tr-switch-out-to-right {\n\tfrom { transform: perspective(800px) rotateY(0deg); opacity: 1; }\n\tto { transform: perspective(800px) rotateY(-180deg); opacity: 0; }\n}\n\n/* ── Vortex (rotate + scale spiral) ──────────────────────────────── */\n@keyframes pptx-tr-vortex-in {\n\tfrom { transform: rotate(720deg) scale(0); opacity: 0; }\n\tto { transform: rotate(0deg) scale(1); opacity: 1; }\n}\n@keyframes pptx-tr-vortex-out {\n\tfrom { transform: rotate(0deg) scale(1); opacity: 1; }\n\tto { transform: rotate(-720deg) scale(0); opacity: 0; }\n}\n\n/* ── Warp: see `slide-transition-warp` (COM-measured radial zoom blur,\n split out to keep this module under the per-file LOC budget) ────────── */\n\n@keyframes pptx-tr-warp-in {\n\t0% { transform: scale(0.25); opacity: 0; filter: blur(10px) brightness(1.8); }\n\t50% { transform: scale(0.85); opacity: 0.7; filter: blur(3px) brightness(1.3); }\n\t100% { transform: scale(1); opacity: 1; filter: blur(0) brightness(1); }\n}\n@keyframes pptx-tr-warp-out {\n\t0% { transform: scale(1); opacity: 1; filter: blur(0) brightness(1); }\n\t50% { transform: scale(0.85); opacity: 0.7; filter: blur(3px) brightness(1.3); }\n\t100% { transform: scale(0.25); opacity: 0; filter: blur(10px) brightness(1.8); }\n}\n@keyframes pptx-tr-warp-reverse-in {\n\t0% { transform: scale(3.2); opacity: 0; filter: blur(14px) brightness(2.2); }\n\t50% { transform: scale(1.7); opacity: 0.7; filter: blur(6px) brightness(1.5); }\n\t100% { transform: scale(1); opacity: 1; filter: blur(0) brightness(1); }\n}\n@keyframes pptx-tr-warp-reverse-out {\n\t0% { transform: scale(1); opacity: 1; filter: blur(0) brightness(1); }\n\t50% { transform: scale(1.7); opacity: 0.7; filter: blur(6px) brightness(1.5); }\n\t100% { transform: scale(3.2); opacity: 0; filter: blur(14px) brightness(2.2); }\n}\n\n\n/* ── WheelReverse (reverse wheel rotation) ───────────────────────── */\n@keyframes pptx-tr-wheel-reverse-in {\n\tfrom { clip-path: circle(0% at 50% 50%); transform: rotate(180deg); }\n\tto { clip-path: circle(75% at 50% 50%); transform: rotate(0deg); }\n}\n\n/* ── Window (scale from center with border) ──────────────────────────\n Same measured horz/vert meaning as Doors above (horz = horizontal split\n line opening vertically; vert = vertical split line opening horizontally). */\n@keyframes pptx-tr-window-horz {\n\tfrom { clip-path: inset(50% 0); }\n\tto { clip-path: inset(0 0); }\n}\n@keyframes pptx-tr-window-vert {\n\tfrom { clip-path: inset(0 50%); }\n\tto { clip-path: inset(0 0); }\n}\n@keyframes pptx-tr-window-out {\n\tfrom { opacity: 1; transform: scale(1); }\n\tto { opacity: 0; transform: scale(0.9); }\n}\n";
|
|
8410
8633
|
/** Both p14 keyframe blocks concatenated, for single `<style>` injection. */
|
|
8411
|
-
declare const P14_TRANSITION_KEYFRAMES_ALL = "\n/* ── Conveyor (translate X with staggered timing) ──────────────────── */\n@keyframes pptx-tr-conveyor-in-from-right {\n\tfrom { transform: translateX(100%) rotateY(-30deg); }\n\t60% { transform: translateX(20%) rotateY(-10deg); }\n\tto { transform: translateX(0) rotateY(0deg); }\n}\n@keyframes pptx-tr-conveyor-out-to-left {\n\tfrom { transform: translateX(0) rotateY(0deg); }\n\t40% { transform: translateX(-20%) rotateY(10deg); }\n\tto { transform: translateX(-100%) rotateY(30deg); }\n}\n@keyframes pptx-tr-conveyor-in-from-left {\n\tfrom { transform: translateX(-100%) rotateY(30deg); }\n\t60% { transform: translateX(-20%) rotateY(10deg); }\n\tto { transform: translateX(0) rotateY(0deg); }\n}\n@keyframes pptx-tr-conveyor-out-to-right {\n\tfrom { transform: translateX(0) rotateY(0deg); }\n\t40% { transform: translateX(20%) rotateY(-10deg); }\n\tto { transform: translateX(100%) rotateY(-30deg); }\n}\n\n/* ── Doors (clip-path from center split) ──────────────────────────────\n MEASURED via COM CreateVideo: PowerPoint's `dir=\"horz\"` names a\n HORIZONTAL split line (two panels stacked top/bottom, opening upward and\n downward), and `dir=\"vert\"` a VERTICAL split line (panels side by side,\n opening left and right) - the opposite of what \"clips left/right\" vs\n \"clips top/bottom\" would suggest at a glance. Keep the clip-path bodies\n matched to the MEASURED direction, not the intuitive one. */\n@keyframes pptx-tr-doors-horz {\n\tfrom { clip-path: inset(50% 0); }\n\tto { clip-path: inset(0 0); }\n}\n@keyframes pptx-tr-doors-vert {\n\tfrom { clip-path: inset(0 50%); }\n\tto { clip-path: inset(0 0); }\n}\n\n/* ── Ferris (rotate elements around center) ───────────────────────── */\n@keyframes pptx-tr-ferris-in-from-right {\n\tfrom { transform: translateX(80%) rotate(45deg) scale(0.6); opacity: 0; }\n\tto { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; }\n}\n@keyframes pptx-tr-ferris-out-to-left {\n\tfrom { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; }\n\tto { transform: translateX(-80%) rotate(-45deg) scale(0.6); opacity: 0; }\n}\n@keyframes pptx-tr-ferris-in-from-left {\n\tfrom { transform: translateX(-80%) rotate(-45deg) scale(0.6); opacity: 0; }\n\tto { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; }\n}\n@keyframes pptx-tr-ferris-out-to-right {\n\tfrom { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; }\n\tto { transform: translateX(80%) rotate(45deg) scale(0.6); opacity: 0; }\n}\n\n/* ── Flash (bright flash opacity burst) ──────────────────────────── */\n@keyframes pptx-tr-flash-white {\n\t0% { opacity: 1; }\n\t30% { opacity: 0; }\n\t50% { opacity: 0; }\n\t100% { opacity: 1; }\n}\n@keyframes pptx-tr-flash-in {\n\t0% { opacity: 0; }\n\t50% { opacity: 0; }\n\t70% { opacity: 1; }\n\t100% { opacity: 1; }\n}\n\n/* ── Flythrough (scale + translate Z-axis feel) ──────────────────── */\n@keyframes pptx-tr-flythrough-in {\n\tfrom { transform: scale(4) translateZ(200px); opacity: 0; filter: blur(8px); }\n\tto { transform: scale(1) translateZ(0); opacity: 1; filter: blur(0); }\n}\n@keyframes pptx-tr-flythrough-out {\n\tfrom { transform: scale(1) translateZ(0); opacity: 1; filter: blur(0); }\n\tto { transform: scale(0.1) translateZ(-200px); opacity: 0; filter: blur(8px); }\n}\n@keyframes pptx-tr-flythrough-reverse-in {\n\tfrom { transform: scale(0.1) translateZ(-200px); opacity: 0; filter: blur(8px); }\n\tto { transform: scale(1) translateZ(0); opacity: 1; filter: blur(0); }\n}\n@keyframes pptx-tr-flythrough-reverse-out {\n\tfrom { transform: scale(1) translateZ(0); opacity: 1; filter: blur(0); }\n\tto { transform: scale(4) translateZ(200px); opacity: 0; filter: blur(8px); }\n}\n\n/* ── Gallery (translate with perspective) ─────────────────────────── */\n@keyframes pptx-tr-gallery-in-from-right {\n\tfrom { transform: perspective(800px) translateX(100%) rotateY(-45deg); opacity: 0.5; }\n\tto { transform: perspective(800px) translateX(0) rotateY(0deg); opacity: 1; }\n}\n@keyframes pptx-tr-gallery-out-to-left {\n\tfrom { transform: perspective(800px) translateX(0) rotateY(0deg); opacity: 1; }\n\tto { transform: perspective(800px) translateX(-100%) rotateY(45deg); opacity: 0.5; }\n}\n@keyframes pptx-tr-gallery-in-from-left {\n\tfrom { transform: perspective(800px) translateX(-100%) rotateY(45deg); opacity: 0.5; }\n\tto { transform: perspective(800px) translateX(0) rotateY(0deg); opacity: 1; }\n}\n@keyframes pptx-tr-gallery-out-to-right {\n\tfrom { transform: perspective(800px) translateX(0) rotateY(0deg); opacity: 1; }\n\tto { transform: perspective(800px) translateX(100%) rotateY(-45deg); opacity: 0.5; }\n}\n\n/* ── Glitter (particle dissolve effect) ──────────────────────────── */\n@keyframes pptx-tr-glitter-in {\n\tfrom { opacity: 0; filter: brightness(1.5) contrast(1.3) blur(2px); }\n\t60% { opacity: 0.7; filter: brightness(1.2) contrast(1.1) blur(1px); }\n\tto { opacity: 1; filter: brightness(1) contrast(1) blur(0); }\n}\n\n/* ── Honeycomb (hexagonal reveal) ────────────────────────────────── */\n@keyframes pptx-tr-honeycomb-in {\n\tfrom {\n\t\tclip-path: polygon(50% 50%, 50% 50%, 50% 50%, 50% 50%, 50% 50%, 50% 50%);\n\t\topacity: 0;\n\t}\n\tto {\n\t\tclip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);\n\t\topacity: 1;\n\t}\n}\n@keyframes pptx-tr-honeycomb-out {\n\tfrom { opacity: 1; }\n\tto { opacity: 0; filter: blur(2px); }\n}\n\n/* ── Pan (large-scale translate) ─────────────────────────────────── */\n@keyframes pptx-tr-pan-from-right {\n\tfrom { transform: translateX(100%); }\n\tto { transform: translateX(0); }\n}\n@keyframes pptx-tr-pan-to-left {\n\tfrom { transform: translateX(0); }\n\tto { transform: translateX(-100%); }\n}\n@keyframes pptx-tr-pan-from-left {\n\tfrom { transform: translateX(-100%); }\n\tto { transform: translateX(0); }\n}\n@keyframes pptx-tr-pan-to-right {\n\tfrom { transform: translateX(0); }\n\tto { transform: translateX(100%); }\n}\n@keyframes pptx-tr-pan-from-bottom {\n\tfrom { transform: translateY(100%); }\n\tto { transform: translateY(0); }\n}\n@keyframes pptx-tr-pan-to-top {\n\tfrom { transform: translateY(0); }\n\tto { transform: translateY(-100%); }\n}\n@keyframes pptx-tr-pan-from-top {\n\tfrom { transform: translateY(-100%); }\n\tto { transform: translateY(0); }\n}\n@keyframes pptx-tr-pan-to-bottom {\n\tfrom { transform: translateY(0); }\n\tto { transform: translateY(100%); }\n}\n\n\n/* ── Prism: see `slide-transition-prism` (split out to keep this module\n under the per-file LOC budget) ─────────────────────────────────────── */\n\n@keyframes pptx-tr-prism-in-from-right {\n\tfrom { transform: perspective(800px) rotateY(-90deg) translateX(50%); opacity: 0; }\n\tto { transform: perspective(800px) rotateY(0deg) translateX(0); opacity: 1; }\n}\n@keyframes pptx-tr-prism-out-to-left {\n\tfrom { transform: perspective(800px) rotateY(0deg) translateX(0); opacity: 1; }\n\tto { transform: perspective(800px) rotateY(90deg) translateX(-50%); opacity: 0; }\n}\n@keyframes pptx-tr-prism-in-from-left {\n\tfrom { transform: perspective(800px) rotateY(90deg) translateX(-50%); opacity: 0; }\n\tto { transform: perspective(800px) rotateY(0deg) translateX(0); opacity: 1; }\n}\n@keyframes pptx-tr-prism-out-to-right {\n\tfrom { transform: perspective(800px) rotateY(0deg) translateX(0); opacity: 1; }\n\tto { transform: perspective(800px) rotateY(-90deg) translateX(50%); opacity: 0; }\n}\n@keyframes pptx-tr-prism-in-from-bottom {\n\tfrom { transform: perspective(800px) rotateX(90deg) translateY(50%); opacity: 0; }\n\tto { transform: perspective(800px) rotateX(0deg) translateY(0); opacity: 1; }\n}\n@keyframes pptx-tr-prism-out-to-top {\n\tfrom { transform: perspective(800px) rotateX(0deg) translateY(0); opacity: 1; }\n\tto { transform: perspective(800px) rotateX(-90deg) translateY(-50%); opacity: 0; }\n}\n@keyframes pptx-tr-prism-in-from-top {\n\tfrom { transform: perspective(800px) rotateX(-90deg) translateY(-50%); opacity: 0; }\n\tto { transform: perspective(800px) rotateX(0deg) translateY(0); opacity: 1; }\n}\n@keyframes pptx-tr-prism-out-to-bottom {\n\tfrom { transform: perspective(800px) rotateX(0deg) translateY(0); opacity: 1; }\n\tto { transform: perspective(800px) rotateX(90deg) translateY(50%); opacity: 0; }\n}\n\n/* ── Reveal (slide away reveal) ──────────────────────────────────── */\n@keyframes pptx-tr-reveal-out-to-right {\n\tfrom { transform: translateX(0); }\n\tto { transform: translateX(100%); }\n}\n@keyframes pptx-tr-reveal-out-to-left {\n\tfrom { transform: translateX(0); }\n\tto { transform: translateX(-100%); }\n}\n/* MEASURED: the incoming layer stays hidden for roughly the first half of the\n transition (a real black/background gap shows through), then fades in -\n not a flat 0.5->1 fade running the whole duration. */\n@keyframes pptx-tr-reveal-in {\n\t0% { opacity: 0; }\n\t50% { opacity: 0; }\n\t100% { opacity: 1; }\n}\n\n/* ── Ripple (expanding ring clip-path) ───────────────────────────── */\n@keyframes pptx-tr-ripple-in {\n\tfrom { clip-path: circle(0% at 50% 50%); opacity: 0.5; }\n\t30% { clip-path: circle(20% at 50% 50%); opacity: 0.7; }\n\t60% { clip-path: circle(50% at 50% 50%); opacity: 0.9; }\n\tto { clip-path: circle(75% at 50% 50%); opacity: 1; }\n}\n\n/* ── Shred (fragmented clip-path pieces) ─────────────────────────── */\n@keyframes pptx-tr-shred-strips-in {\n\tfrom { clip-path: inset(0 100% 0 0); opacity: 0; }\n\t30% { clip-path: inset(0 60% 0 0); opacity: 0.5; }\n\tto { clip-path: inset(0); opacity: 1; }\n}\n@keyframes pptx-tr-shred-rectangles-in {\n\tfrom { clip-path: inset(50%); opacity: 0; }\n\t40% { clip-path: inset(20%); opacity: 0.6; }\n\tto { clip-path: inset(0); opacity: 1; }\n}\n@keyframes pptx-tr-shred-out {\n\tfrom { opacity: 1; }\n\tto { opacity: 0; filter: blur(2px); }\n}\n\n/* ── Switch (flip/rotate swap) ───────────────────────────────────── */\n@keyframes pptx-tr-switch-in-from-right {\n\tfrom { transform: perspective(800px) rotateY(-180deg); opacity: 0; }\n\tto { transform: perspective(800px) rotateY(0deg); opacity: 1; }\n}\n@keyframes pptx-tr-switch-out-to-left {\n\tfrom { transform: perspective(800px) rotateY(0deg); opacity: 1; }\n\tto { transform: perspective(800px) rotateY(180deg); opacity: 0; }\n}\n@keyframes pptx-tr-switch-in-from-left {\n\tfrom { transform: perspective(800px) rotateY(180deg); opacity: 0; }\n\tto { transform: perspective(800px) rotateY(0deg); opacity: 1; }\n}\n@keyframes pptx-tr-switch-out-to-right {\n\tfrom { transform: perspective(800px) rotateY(0deg); opacity: 1; }\n\tto { transform: perspective(800px) rotateY(-180deg); opacity: 0; }\n}\n\n/* ── Vortex (rotate + scale spiral) ──────────────────────────────── */\n@keyframes pptx-tr-vortex-in {\n\tfrom { transform: rotate(720deg) scale(0); opacity: 0; }\n\tto { transform: rotate(0deg) scale(1); opacity: 1; }\n}\n@keyframes pptx-tr-vortex-out {\n\tfrom { transform: rotate(0deg) scale(1); opacity: 1; }\n\tto { transform: rotate(-720deg) scale(0); opacity: 0; }\n}\n\n/* ── Warp: see `slide-transition-warp` (COM-measured radial zoom blur,\n split out to keep this module under the per-file LOC budget) ────────── */\n\n@keyframes pptx-tr-warp-in {\n\t0% { transform: scale(0.25); opacity: 0; filter: blur(10px) brightness(1.8); }\n\t50% { transform: scale(0.85); opacity: 0.7; filter: blur(3px) brightness(1.3); }\n\t100% { transform: scale(1); opacity: 1; filter: blur(0) brightness(1); }\n}\n@keyframes pptx-tr-warp-out {\n\t0% { transform: scale(1); opacity: 1; filter: blur(0) brightness(1); }\n\t50% { transform: scale(0.85); opacity: 0.7; filter: blur(3px) brightness(1.3); }\n\t100% { transform: scale(0.25); opacity: 0; filter: blur(10px) brightness(1.8); }\n}\n@keyframes pptx-tr-warp-reverse-in {\n\t0% { transform: scale(3.2); opacity: 0; filter: blur(14px) brightness(2.2); }\n\t50% { transform: scale(1.7); opacity: 0.7; filter: blur(6px) brightness(1.5); }\n\t100% { transform: scale(1); opacity: 1; filter: blur(0) brightness(1); }\n}\n@keyframes pptx-tr-warp-reverse-out {\n\t0% { transform: scale(1); opacity: 1; filter: blur(0) brightness(1); }\n\t50% { transform: scale(1.7); opacity: 0.7; filter: blur(6px) brightness(1.5); }\n\t100% { transform: scale(3.2); opacity: 0; filter: blur(14px) brightness(2.2); }\n}\n\n\n/* ── WheelReverse (reverse wheel rotation) ───────────────────────── */\n@keyframes pptx-tr-wheel-reverse-in {\n\tfrom { clip-path: circle(0% at 50% 50%); transform: rotate(180deg); }\n\tto { clip-path: circle(75% at 50% 50%); transform: rotate(0deg); }\n}\n\n/* ── Window (scale from center with border) ──────────────────────────\n Same measured horz/vert meaning as Doors above (horz = horizontal split\n line opening vertically; vert = vertical split line opening horizontally). */\n@keyframes pptx-tr-window-horz {\n\tfrom { clip-path: inset(50% 0); }\n\tto { clip-path: inset(0 0); }\n}\n@keyframes pptx-tr-window-vert {\n\tfrom { clip-path: inset(0 50%); }\n\tto { clip-path: inset(0 0); }\n}\n@keyframes pptx-tr-window-out {\n\tfrom { opacity: 1; transform: scale(1); }\n\tto { opacity: 0; transform: scale(0.9); }\n}\n";
|
|
8634
|
+
declare const P14_TRANSITION_KEYFRAMES_ALL = "\n/* ── Conveyor (translate X with staggered timing) ──────────────────── */\n@keyframes pptx-tr-conveyor-in-from-right {\n\tfrom { transform: translateX(100%) rotateY(-30deg); }\n\t60% { transform: translateX(20%) rotateY(-10deg); }\n\tto { transform: translateX(0) rotateY(0deg); }\n}\n@keyframes pptx-tr-conveyor-out-to-left {\n\tfrom { transform: translateX(0) rotateY(0deg); }\n\t40% { transform: translateX(-20%) rotateY(10deg); }\n\tto { transform: translateX(-100%) rotateY(30deg); }\n}\n@keyframes pptx-tr-conveyor-in-from-left {\n\tfrom { transform: translateX(-100%) rotateY(30deg); }\n\t60% { transform: translateX(-20%) rotateY(10deg); }\n\tto { transform: translateX(0) rotateY(0deg); }\n}\n@keyframes pptx-tr-conveyor-out-to-right {\n\tfrom { transform: translateX(0) rotateY(0deg); }\n\t40% { transform: translateX(20%) rotateY(-10deg); }\n\tto { transform: translateX(100%) rotateY(-30deg); }\n}\n\n/* ── Doors (clip-path from center split) ──────────────────────────────\n MEASURED via COM CreateVideo: PowerPoint's `dir=\"horz\"` names a\n HORIZONTAL split line (two panels stacked top/bottom, opening upward and\n downward), and `dir=\"vert\"` a VERTICAL split line (panels side by side,\n opening left and right) - the opposite of what \"clips left/right\" vs\n \"clips top/bottom\" would suggest at a glance. Keep the clip-path bodies\n matched to the MEASURED direction, not the intuitive one. */\n@keyframes pptx-tr-doors-horz {\n\tfrom { clip-path: inset(50% 0); }\n\tto { clip-path: inset(0 0); }\n}\n@keyframes pptx-tr-doors-vert {\n\tfrom { clip-path: inset(0 50%); }\n\tto { clip-path: inset(0 0); }\n}\n\n/* ── Ferris (rotate elements around center) ───────────────────────── */\n@keyframes pptx-tr-ferris-in-from-right {\n\tfrom { transform: translateX(80%) rotate(45deg) scale(0.6); opacity: 0; }\n\tto { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; }\n}\n@keyframes pptx-tr-ferris-out-to-left {\n\tfrom { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; }\n\tto { transform: translateX(-80%) rotate(-45deg) scale(0.6); opacity: 0; }\n}\n@keyframes pptx-tr-ferris-in-from-left {\n\tfrom { transform: translateX(-80%) rotate(-45deg) scale(0.6); opacity: 0; }\n\tto { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; }\n}\n@keyframes pptx-tr-ferris-out-to-right {\n\tfrom { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; }\n\tto { transform: translateX(80%) rotate(45deg) scale(0.6); opacity: 0; }\n}\n\n/* ── Flash (bright flash opacity burst) ──────────────────────────── */\n@keyframes pptx-tr-flash-white {\n\t0% { opacity: 1; }\n\t30% { opacity: 0; }\n\t50% { opacity: 0; }\n\t100% { opacity: 1; }\n}\n@keyframes pptx-tr-flash-in {\n\t0% { opacity: 0; }\n\t50% { opacity: 0; }\n\t70% { opacity: 1; }\n\t100% { opacity: 1; }\n}\n\n/* ── Flythrough (scale + translate Z-axis feel) ──────────────────── */\n@keyframes pptx-tr-flythrough-in {\n\tfrom { transform: scale(4) translateZ(200px); opacity: 0; filter: blur(8px); }\n\tto { transform: scale(1) translateZ(0); opacity: 1; filter: blur(0); }\n}\n@keyframes pptx-tr-flythrough-out {\n\tfrom { transform: scale(1) translateZ(0); opacity: 1; filter: blur(0); }\n\tto { transform: scale(0.1) translateZ(-200px); opacity: 0; filter: blur(8px); }\n}\n@keyframes pptx-tr-flythrough-reverse-in {\n\tfrom { transform: scale(0.1) translateZ(-200px); opacity: 0; filter: blur(8px); }\n\tto { transform: scale(1) translateZ(0); opacity: 1; filter: blur(0); }\n}\n@keyframes pptx-tr-flythrough-reverse-out {\n\tfrom { transform: scale(1) translateZ(0); opacity: 1; filter: blur(0); }\n\tto { transform: scale(4) translateZ(200px); opacity: 0; filter: blur(8px); }\n}\n\n/* ── Gallery (translate with perspective) ─────────────────────────── */\n@keyframes pptx-tr-gallery-in-from-right {\n\tfrom { transform: perspective(800px) translateX(100%) rotateY(-45deg); opacity: 0.5; }\n\tto { transform: perspective(800px) translateX(0) rotateY(0deg); opacity: 1; }\n}\n@keyframes pptx-tr-gallery-out-to-left {\n\tfrom { transform: perspective(800px) translateX(0) rotateY(0deg); opacity: 1; }\n\tto { transform: perspective(800px) translateX(-100%) rotateY(45deg); opacity: 0.5; }\n}\n@keyframes pptx-tr-gallery-in-from-left {\n\tfrom { transform: perspective(800px) translateX(-100%) rotateY(45deg); opacity: 0.5; }\n\tto { transform: perspective(800px) translateX(0) rotateY(0deg); opacity: 1; }\n}\n@keyframes pptx-tr-gallery-out-to-right {\n\tfrom { transform: perspective(800px) translateX(0) rotateY(0deg); opacity: 1; }\n\tto { transform: perspective(800px) translateX(100%) rotateY(-45deg); opacity: 0.5; }\n}\n\n/* ── Glitter (particle dissolve effect) ──────────────────────────── */\n@keyframes pptx-tr-glitter-in {\n\tfrom { opacity: 0; filter: brightness(1.5) contrast(1.3) blur(2px); }\n\t60% { opacity: 0.7; filter: brightness(1.2) contrast(1.1) blur(1px); }\n\tto { opacity: 1; filter: brightness(1) contrast(1) blur(0); }\n}\n\n/* ── Honeycomb (hexagonal reveal) ────────────────────────────────── */\n@keyframes pptx-tr-honeycomb-in {\n\tfrom {\n\t\tclip-path: polygon(50% 50%, 50% 50%, 50% 50%, 50% 50%, 50% 50%, 50% 50%);\n\t\topacity: 0;\n\t}\n\tto {\n\t\tclip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);\n\t\topacity: 1;\n\t}\n}\n@keyframes pptx-tr-honeycomb-out {\n\tfrom { opacity: 1; }\n\tto { opacity: 0; filter: blur(2px); }\n}\n\n/* ── Pan (large-scale translate) ─────────────────────────────────── */\n@keyframes pptx-tr-pan-from-right {\n\tfrom { transform: translateX(100%); }\n\tto { transform: translateX(0); }\n}\n@keyframes pptx-tr-pan-to-left {\n\tfrom { transform: translateX(0); }\n\tto { transform: translateX(-100%); }\n}\n@keyframes pptx-tr-pan-from-left {\n\tfrom { transform: translateX(-100%); }\n\tto { transform: translateX(0); }\n}\n@keyframes pptx-tr-pan-to-right {\n\tfrom { transform: translateX(0); }\n\tto { transform: translateX(100%); }\n}\n@keyframes pptx-tr-pan-from-bottom {\n\tfrom { transform: translateY(100%); }\n\tto { transform: translateY(0); }\n}\n@keyframes pptx-tr-pan-to-top {\n\tfrom { transform: translateY(0); }\n\tto { transform: translateY(-100%); }\n}\n@keyframes pptx-tr-pan-from-top {\n\tfrom { transform: translateY(-100%); }\n\tto { transform: translateY(0); }\n}\n@keyframes pptx-tr-pan-to-bottom {\n\tfrom { transform: translateY(0); }\n\tto { transform: translateY(100%); }\n}\n\n\n/* ── Prism: see `slide-transition-prism` (split out to keep this module\n under the per-file LOC budget) ─────────────────────────────────────── */\n\n@keyframes pptx-tr-prism-in-from-right {\n\tfrom { transform: perspective(800px) rotateY(-90deg) translateX(50%); opacity: 0; }\n\tto { transform: perspective(800px) rotateY(0deg) translateX(0); opacity: 1; }\n}\n@keyframes pptx-tr-prism-out-to-left {\n\tfrom { transform: perspective(800px) rotateY(0deg) translateX(0); opacity: 1; }\n\tto { transform: perspective(800px) rotateY(90deg) translateX(-50%); opacity: 0; }\n}\n@keyframes pptx-tr-prism-in-from-left {\n\tfrom { transform: perspective(800px) rotateY(90deg) translateX(-50%); opacity: 0; }\n\tto { transform: perspective(800px) rotateY(0deg) translateX(0); opacity: 1; }\n}\n@keyframes pptx-tr-prism-out-to-right {\n\tfrom { transform: perspective(800px) rotateY(0deg) translateX(0); opacity: 1; }\n\tto { transform: perspective(800px) rotateY(-90deg) translateX(50%); opacity: 0; }\n}\n@keyframes pptx-tr-prism-in-from-bottom {\n\tfrom { transform: perspective(800px) rotateX(90deg) translateY(50%); opacity: 0; }\n\tto { transform: perspective(800px) rotateX(0deg) translateY(0); opacity: 1; }\n}\n@keyframes pptx-tr-prism-out-to-top {\n\tfrom { transform: perspective(800px) rotateX(0deg) translateY(0); opacity: 1; }\n\tto { transform: perspective(800px) rotateX(-90deg) translateY(-50%); opacity: 0; }\n}\n@keyframes pptx-tr-prism-in-from-top {\n\tfrom { transform: perspective(800px) rotateX(-90deg) translateY(-50%); opacity: 0; }\n\tto { transform: perspective(800px) rotateX(0deg) translateY(0); opacity: 1; }\n}\n@keyframes pptx-tr-prism-out-to-bottom {\n\tfrom { transform: perspective(800px) rotateX(0deg) translateY(0); opacity: 1; }\n\tto { transform: perspective(800px) rotateX(90deg) translateY(50%); opacity: 0; }\n}\n\n/* ── Reveal (slide away reveal) ──────────────────────────────────── */\n@keyframes pptx-tr-reveal-out-to-right {\n\tfrom { transform: translateX(0); }\n\tto { transform: translateX(100%); }\n}\n@keyframes pptx-tr-reveal-out-to-left {\n\tfrom { transform: translateX(0); }\n\tto { transform: translateX(-100%); }\n}\n/* MEASURED: the incoming layer stays hidden for roughly the first half of the\n transition (a real black/background gap shows through), then fades in -\n not a flat 0.5->1 fade running the whole duration. */\n@keyframes pptx-tr-reveal-in {\n\t0% { opacity: 0; }\n\t50% { opacity: 0; }\n\t100% { opacity: 1; }\n}\n\n/* ── Ripple (expanding ring clip-path) ───────────────────────────── */\n@keyframes pptx-tr-ripple-in {\n\tfrom { clip-path: circle(0% at 50% 50%); opacity: 0.5; }\n\t30% { clip-path: circle(20% at 50% 50%); opacity: 0.7; }\n\t60% { clip-path: circle(50% at 50% 50%); opacity: 0.9; }\n\tto { clip-path: circle(75% at 50% 50%); opacity: 1; }\n}\n\n/* ── Shred (fragmented clip-path pieces) ─────────────────────────── */\n@keyframes pptx-tr-shred-strips-in {\n\tfrom { clip-path: inset(0 100% 0 0); opacity: 0; }\n\t30% { clip-path: inset(0 60% 0 0); opacity: 0.5; }\n\tto { clip-path: inset(0); opacity: 1; }\n}\n@keyframes pptx-tr-shred-rectangles-in {\n\tfrom { clip-path: inset(50%); opacity: 0; }\n\t40% { clip-path: inset(20%); opacity: 0.6; }\n\tto { clip-path: inset(0); opacity: 1; }\n}\n@keyframes pptx-tr-shred-out {\n\tfrom { opacity: 1; }\n\tto { opacity: 0; filter: blur(2px); }\n}\n\n/* ── Switch (flip/rotate swap) ───────────────────────────────────── */\n@keyframes pptx-tr-switch-in-from-right {\n\tfrom { transform: perspective(800px) rotateY(-180deg); opacity: 0; }\n\tto { transform: perspective(800px) rotateY(0deg); opacity: 1; }\n}\n@keyframes pptx-tr-switch-out-to-left {\n\tfrom { transform: perspective(800px) rotateY(0deg); opacity: 1; }\n\tto { transform: perspective(800px) rotateY(180deg); opacity: 0; }\n}\n@keyframes pptx-tr-switch-in-from-left {\n\tfrom { transform: perspective(800px) rotateY(180deg); opacity: 0; }\n\tto { transform: perspective(800px) rotateY(0deg); opacity: 1; }\n}\n@keyframes pptx-tr-switch-out-to-right {\n\tfrom { transform: perspective(800px) rotateY(0deg); opacity: 1; }\n\tto { transform: perspective(800px) rotateY(-180deg); opacity: 0; }\n}\n\n/* ── Vortex (rotate + scale spiral) ──────────────────────────────── */\n@keyframes pptx-tr-vortex-in {\n\tfrom { transform: rotate(720deg) scale(0); opacity: 0; }\n\tto { transform: rotate(0deg) scale(1); opacity: 1; }\n}\n@keyframes pptx-tr-vortex-out {\n\tfrom { transform: rotate(0deg) scale(1); opacity: 1; }\n\tto { transform: rotate(-720deg) scale(0); opacity: 0; }\n}\n\n/* ── Warp: see `slide-transition-warp` (COM-measured radial zoom blur,\n split out to keep this module under the per-file LOC budget) ────────── */\n\n@keyframes pptx-tr-warp-in {\n\t0% { transform: scale(0.25); opacity: 0; filter: blur(10px) brightness(1.8); }\n\t50% { transform: scale(0.85); opacity: 0.7; filter: blur(3px) brightness(1.3); }\n\t100% { transform: scale(1); opacity: 1; filter: blur(0) brightness(1); }\n}\n@keyframes pptx-tr-warp-out {\n\t0% { transform: scale(1); opacity: 1; filter: blur(0) brightness(1); }\n\t50% { transform: scale(0.85); opacity: 0.7; filter: blur(3px) brightness(1.3); }\n\t100% { transform: scale(0.25); opacity: 0; filter: blur(10px) brightness(1.8); }\n}\n@keyframes pptx-tr-warp-reverse-in {\n\t0% { transform: scale(3.2); opacity: 0; filter: blur(14px) brightness(2.2); }\n\t50% { transform: scale(1.7); opacity: 0.7; filter: blur(6px) brightness(1.5); }\n\t100% { transform: scale(1); opacity: 1; filter: blur(0) brightness(1); }\n}\n@keyframes pptx-tr-warp-reverse-out {\n\t0% { transform: scale(1); opacity: 1; filter: blur(0) brightness(1); }\n\t50% { transform: scale(1.7); opacity: 0.7; filter: blur(6px) brightness(1.5); }\n\t100% { transform: scale(3.2); opacity: 0; filter: blur(14px) brightness(2.2); }\n}\n\n\n/* ── WheelReverse (reverse wheel rotation) ───────────────────────── */\n@keyframes pptx-tr-wheel-reverse-in {\n\tfrom { clip-path: circle(0% at 50% 50%); transform: rotate(180deg); }\n\tto { clip-path: circle(75% at 50% 50%); transform: rotate(0deg); }\n}\n\n/* ── Window (scale from center with border) ──────────────────────────\n Same measured horz/vert meaning as Doors above (horz = horizontal split\n line opening vertically; vert = vertical split line opening horizontally). */\n@keyframes pptx-tr-window-horz {\n\tfrom { clip-path: inset(50% 0); }\n\tto { clip-path: inset(0 0); }\n}\n@keyframes pptx-tr-window-vert {\n\tfrom { clip-path: inset(0 50%); }\n\tto { clip-path: inset(0 0); }\n}\n@keyframes pptx-tr-window-out {\n\tfrom { opacity: 1; transform: scale(1); }\n\tto { opacity: 0; transform: scale(0.9); }\n}\n\n\n@keyframes pptx-tr-vortex-in-left { from { transform: translateX(-40%) rotate(720deg) scale(0); opacity: 0; } to { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; } }\n@keyframes pptx-tr-vortex-out-left { from { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; } to { transform: translateX(-40%) rotate(-720deg) scale(0); opacity: 0; } }\n@keyframes pptx-tr-vortex-in-right { from { transform: translateX(40%) rotate(-720deg) scale(0); opacity: 0; } to { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; } }\n@keyframes pptx-tr-vortex-out-right { from { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; } to { transform: translateX(40%) rotate(720deg) scale(0); opacity: 0; } }\n@keyframes pptx-tr-vortex-in-up { from { transform: translateY(-40%) rotate(720deg) scale(0); opacity: 0; } to { transform: translateY(0) rotate(0deg) scale(1); opacity: 1; } }\n@keyframes pptx-tr-vortex-out-up { from { transform: translateY(0) rotate(0deg) scale(1); opacity: 1; } to { transform: translateY(-40%) rotate(-720deg) scale(0); opacity: 0; } }\n@keyframes pptx-tr-vortex-in-down { from { transform: translateY(40%) rotate(-720deg) scale(0); opacity: 0; } to { transform: translateY(0) rotate(0deg) scale(1); opacity: 1; } }\n@keyframes pptx-tr-vortex-out-down { from { transform: translateY(0) rotate(0deg) scale(1); opacity: 1; } to { transform: translateY(40%) rotate(720deg) scale(0); opacity: 0; } }\n\n\n@keyframes pptx-tr-ripple-in-lu { from { clip-path: circle(0% at 0% 0%); opacity: 0.5; } 30% { clip-path: circle(20% at 0% 0%); opacity: 0.7; } 60% { clip-path: circle(55% at 0% 0%); opacity: 0.9; } to { clip-path: circle(150% at 0% 0%); opacity: 1; } }\n@keyframes pptx-tr-ripple-in-ru { from { clip-path: circle(0% at 100% 0%); opacity: 0.5; } 30% { clip-path: circle(20% at 100% 0%); opacity: 0.7; } 60% { clip-path: circle(55% at 100% 0%); opacity: 0.9; } to { clip-path: circle(150% at 100% 0%); opacity: 1; } }\n@keyframes pptx-tr-ripple-in-ld { from { clip-path: circle(0% at 0% 100%); opacity: 0.5; } 30% { clip-path: circle(20% at 0% 100%); opacity: 0.7; } 60% { clip-path: circle(55% at 0% 100%); opacity: 0.9; } to { clip-path: circle(150% at 0% 100%); opacity: 1; } }\n@keyframes pptx-tr-ripple-in-rd { from { clip-path: circle(0% at 100% 100%); opacity: 0.5; } 30% { clip-path: circle(20% at 100% 100%); opacity: 0.7; } 60% { clip-path: circle(55% at 100% 100%); opacity: 0.9; } to { clip-path: circle(150% at 100% 100%); opacity: 1; } }\n\n\n@keyframes pptx-tr-glitter-diamond-in-l { from { opacity: 0; transform: translateX(-6%); filter: brightness(1.5) contrast(1.3) blur(2px); } 60% { opacity: 0.7; transform: translateX(-2%); filter: brightness(1.2) contrast(1.1) blur(1px); } to { opacity: 1; transform: translateX(0); filter: brightness(1) contrast(1) blur(0); } }\n@keyframes pptx-tr-glitter-diamond-in-r { from { opacity: 0; transform: translateX(6%); filter: brightness(1.5) contrast(1.3) blur(2px); } 60% { opacity: 0.7; transform: translateX(2%); filter: brightness(1.2) contrast(1.1) blur(1px); } to { opacity: 1; transform: translateX(0); filter: brightness(1) contrast(1) blur(0); } }\n@keyframes pptx-tr-glitter-diamond-in-u { from { opacity: 0; transform: translateY(-6%); filter: brightness(1.5) contrast(1.3) blur(2px); } 60% { opacity: 0.7; transform: translateY(-2%); filter: brightness(1.2) contrast(1.1) blur(1px); } to { opacity: 1; transform: translateY(0); filter: brightness(1) contrast(1) blur(0); } }\n@keyframes pptx-tr-glitter-diamond-in-d { from { opacity: 0; transform: translateY(6%); filter: brightness(1.5) contrast(1.3) blur(2px); } 60% { opacity: 0.7; transform: translateY(2%); filter: brightness(1.2) contrast(1.1) blur(1px); } to { opacity: 1; transform: translateY(0); filter: brightness(1) contrast(1) blur(0); } }\n@keyframes pptx-tr-glitter-hexagon-in-l { from { opacity: 0; transform: translateX(-6%); filter: brightness(1.5) contrast(1.3) blur(2px) hue-rotate(20deg); } 60% { opacity: 0.7; transform: translateX(-2%); filter: brightness(1.2) contrast(1.1) blur(1px) hue-rotate(8deg); } to { opacity: 1; transform: translateX(0); filter: brightness(1) contrast(1) blur(0) hue-rotate(0deg); } }\n@keyframes pptx-tr-glitter-hexagon-in-r { from { opacity: 0; transform: translateX(6%); filter: brightness(1.5) contrast(1.3) blur(2px) hue-rotate(20deg); } 60% { opacity: 0.7; transform: translateX(2%); filter: brightness(1.2) contrast(1.1) blur(1px) hue-rotate(8deg); } to { opacity: 1; transform: translateX(0); filter: brightness(1) contrast(1) blur(0) hue-rotate(0deg); } }\n@keyframes pptx-tr-glitter-hexagon-in-u { from { opacity: 0; transform: translateY(-6%); filter: brightness(1.5) contrast(1.3) blur(2px) hue-rotate(20deg); } 60% { opacity: 0.7; transform: translateY(-2%); filter: brightness(1.2) contrast(1.1) blur(1px) hue-rotate(8deg); } to { opacity: 1; transform: translateY(0); filter: brightness(1) contrast(1) blur(0) hue-rotate(0deg); } }\n@keyframes pptx-tr-glitter-hexagon-in-d { from { opacity: 0; transform: translateY(6%); filter: brightness(1.5) contrast(1.3) blur(2px) hue-rotate(20deg); } 60% { opacity: 0.7; transform: translateY(2%); filter: brightness(1.2) contrast(1.1) blur(1px) hue-rotate(8deg); } to { opacity: 1; transform: translateY(0); filter: brightness(1) contrast(1) blur(0) hue-rotate(0deg); } }\n";
|
|
8412
8635
|
//#endregion
|
|
8413
8636
|
//#region src/render/p14-transition-css.d.ts
|
|
8414
8637
|
/**
|
package/dist/internals.js
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Ff as a, G as T, Jt as i, Mn as n, Nn as t, Pf as S, Pt as e, Rc as _, Yt as A, Zf as E, er as o, ft as I, gn as N, kc as r, lp as R, lr as O, np as M, ot as l, pp as D, qt as P, rt as F, t as L, vc as v } from "./transition-overlay-CfsPqlES.js";
|
|
2
2
|
export {
|
|
3
3
|
T as CINEMATIC_TRANSITION_KEYFRAMES,
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
4
|
+
F as DEFAULT_MORPH_DURATION_MS,
|
|
5
|
+
l as DEFAULT_TRANSITION_DURATION_MS,
|
|
6
|
+
I as EASE,
|
|
7
|
+
e as INSTANT,
|
|
8
|
+
P as P14_TRANSITION_KEYFRAMES,
|
|
9
|
+
i as P14_TRANSITION_KEYFRAMES_2,
|
|
10
|
+
A as P14_TRANSITION_KEYFRAMES_ALL,
|
|
11
|
+
L as PresentationTransitionOverlay,
|
|
12
|
+
N as RANDOM_ELIGIBLE_TYPES,
|
|
13
|
+
n as SLIDE_TRANSITION_KEYFRAMES,
|
|
14
|
+
t as SLIDE_TRANSITION_KEYFRAMES_CSS,
|
|
15
|
+
o as TRANSITION_SPEED_DURATION_MS,
|
|
16
|
+
O as WHEEL_SPOKE_COUNTS,
|
|
17
|
+
v as getCinematicTransitionAnimations,
|
|
18
|
+
r as getP14TransitionAnimations,
|
|
19
|
+
_ as getSlideTransitionAnimations,
|
|
20
|
+
S as resolveDirection,
|
|
21
|
+
a as resolveDirection8,
|
|
22
|
+
E as resolveOrientation,
|
|
23
|
+
M as resolveSlideTransition,
|
|
24
|
+
R as resolveTransitionDurationMs,
|
|
25
|
+
D as resolveWheelSpokeCount
|
|
26
26
|
};
|