@ssgoi/core 6.7.0-beta.1 → 7.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/README.md +80 -230
  2. package/dist/animation/animation.d.ts +2 -2
  3. package/dist/animation/frame-scheduler.d.ts +36 -0
  4. package/dist/animation/frame-scheduler.d.ts.map +1 -0
  5. package/dist/animation/multi-animation.d.ts +3 -2
  6. package/dist/animation/multi-animation.d.ts.map +1 -1
  7. package/dist/animation/web-animation.d.ts +16 -4
  8. package/dist/animation/web-animation.d.ts.map +1 -1
  9. package/dist/index.cjs +15 -15
  10. package/dist/index.d.ts +1 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +1282 -1125
  13. package/dist/internal.cjs +1 -1
  14. package/dist/internal.d.ts +1 -1
  15. package/dist/internal.d.ts.map +1 -1
  16. package/dist/internal.js +692 -521
  17. package/dist/multi-animation-6124HEke.cjs +1 -0
  18. package/dist/multi-animation-ZFZBDBGr.js +439 -0
  19. package/dist/ssgoi-transition/create-ssgoi-transition-context.d.ts.map +1 -1
  20. package/dist/ssgoi-transition/navigation-detector-strategy.d.ts +24 -9
  21. package/dist/ssgoi-transition/navigation-detector-strategy.d.ts.map +1 -1
  22. package/dist/ssgoi-transition/navigation-direction.d.ts +13 -0
  23. package/dist/ssgoi-transition/navigation-direction.d.ts.map +1 -0
  24. package/dist/ssgoi-transition/observe-ssgoi-transitions.d.ts +1 -0
  25. package/dist/ssgoi-transition/observe-ssgoi-transitions.d.ts.map +1 -1
  26. package/dist/ssgoi-transition/path-pattern.d.ts +15 -0
  27. package/dist/ssgoi-transition/path-pattern.d.ts.map +1 -0
  28. package/dist/ssgoi-transition/resolve-transition-rule.d.ts +16 -0
  29. package/dist/ssgoi-transition/resolve-transition-rule.d.ts.map +1 -0
  30. package/dist/ssgoi-transition/unmount-observer.d.ts +11 -2
  31. package/dist/ssgoi-transition/unmount-observer.d.ts.map +1 -1
  32. package/dist/transitions/axis/index.d.ts +5 -7
  33. package/dist/transitions/axis/index.d.ts.map +1 -1
  34. package/dist/transitions/axis/types.d.ts +0 -1
  35. package/dist/transitions/axis/types.d.ts.map +1 -1
  36. package/dist/transitions/blind/index.d.ts +2 -3
  37. package/dist/transitions/blind/index.d.ts.map +1 -1
  38. package/dist/transitions/drill/index.d.ts +6 -7
  39. package/dist/transitions/drill/index.d.ts.map +1 -1
  40. package/dist/transitions/drill/provider/crossfade.d.ts.map +1 -1
  41. package/dist/transitions/drill/provider/parallax.d.ts.map +1 -1
  42. package/dist/transitions/drill/transition.d.ts.map +1 -1
  43. package/dist/transitions/drill/types.d.ts +0 -1
  44. package/dist/transitions/drill/types.d.ts.map +1 -1
  45. package/dist/transitions/fade/index.d.ts +3 -5
  46. package/dist/transitions/fade/index.d.ts.map +1 -1
  47. package/dist/transitions/film/index.d.ts +3 -5
  48. package/dist/transitions/film/index.d.ts.map +1 -1
  49. package/dist/transitions/hero/fit.d.ts +5 -0
  50. package/dist/transitions/hero/fit.d.ts.map +1 -0
  51. package/dist/transitions/hero/index.d.ts +3 -5
  52. package/dist/transitions/hero/index.d.ts.map +1 -1
  53. package/dist/transitions/hero/transition.d.ts +12 -1
  54. package/dist/transitions/hero/transition.d.ts.map +1 -1
  55. package/dist/transitions/hero/types.d.ts +2 -1
  56. package/dist/transitions/hero/types.d.ts.map +1 -1
  57. package/dist/transitions/jaemin/index.d.ts +3 -5
  58. package/dist/transitions/jaemin/index.d.ts.map +1 -1
  59. package/dist/transitions/media-geometry.d.ts +55 -0
  60. package/dist/transitions/media-geometry.d.ts.map +1 -0
  61. package/dist/transitions/rotate/index.d.ts +3 -5
  62. package/dist/transitions/rotate/index.d.ts.map +1 -1
  63. package/dist/transitions/scroll/index.d.ts +4 -5
  64. package/dist/transitions/scroll/index.d.ts.map +1 -1
  65. package/dist/transitions/scroll/transition.d.ts +1 -1
  66. package/dist/transitions/scroll/transition.d.ts.map +1 -1
  67. package/dist/transitions/sheet/index.d.ts +6 -7
  68. package/dist/transitions/sheet/index.d.ts.map +1 -1
  69. package/dist/transitions/sheet/provider/static.d.ts.map +1 -1
  70. package/dist/transitions/sheet/transition.d.ts.map +1 -1
  71. package/dist/transitions/sheet/types.d.ts +0 -1
  72. package/dist/transitions/sheet/types.d.ts.map +1 -1
  73. package/dist/transitions/slide/index.d.ts +3 -5
  74. package/dist/transitions/slide/index.d.ts.map +1 -1
  75. package/dist/transitions/slide/transition.d.ts +0 -1
  76. package/dist/transitions/slide/transition.d.ts.map +1 -1
  77. package/dist/transitions/strip/index.d.ts +3 -5
  78. package/dist/transitions/strip/index.d.ts.map +1 -1
  79. package/dist/transitions/utils.d.ts +3 -21
  80. package/dist/transitions/utils.d.ts.map +1 -1
  81. package/dist/transitions/zoom/index.d.ts +3 -4
  82. package/dist/transitions/zoom/index.d.ts.map +1 -1
  83. package/dist/transitions/zoom/provider/blur.d.ts.map +1 -1
  84. package/dist/transitions/zoom/transition.d.ts +6 -1
  85. package/dist/transitions/zoom/transition.d.ts.map +1 -1
  86. package/dist/transitions/zoom/types.d.ts +5 -0
  87. package/dist/transitions/zoom/types.d.ts.map +1 -1
  88. package/dist/transitions/zoom/zoom-element.d.ts +2 -2
  89. package/dist/transitions/zoom/zoom-element.d.ts.map +1 -1
  90. package/dist/types/index.d.ts +66 -10
  91. package/dist/types/index.d.ts.map +1 -1
  92. package/dist/utils/wait-paint.d.ts +8 -7
  93. package/dist/utils/wait-paint.d.ts.map +1 -1
  94. package/package.json +13 -14
  95. package/dist/multi-animation-1FueEz2Q.js +0 -367
  96. package/dist/multi-animation-qtH1IKNG.cjs +0 -1
  97. package/dist/ssgoi-transition/find-matching-transition.d.ts +0 -30
  98. package/dist/ssgoi-transition/find-matching-transition.d.ts.map +0 -1
  99. package/dist/ssgoi-transition/process-symmetric-transitions.d.ts +0 -7
  100. package/dist/ssgoi-transition/process-symmetric-transitions.d.ts.map +0 -1
@@ -1,28 +1,10 @@
1
- import { AnyTransitionConfig, SsgoiPathTransition } from '../types/index.ts';
2
- export type DirectionalTransitionPaths = {
3
- enter: string;
4
- exit: string;
5
- };
6
1
  /**
7
- * Unified preset configuration schema used by all v6 transition presets.
8
- *
9
- * - `TPaths` carries the paths shape (symmetric / directional / ordered).
10
- * - `TType` is the union of supported `type` discriminators. Use `never`
11
- * when the preset has no `type` slot.
12
- * - `TVariant` is the union of supported `variant` values. Defaults to
13
- * `"default"` so single-variant presets expose a stable slot.
14
- * - `TOptions` is the bag of fine-tuning options. Defaults to `{}` so
15
- * presets can stay forward-compatible without exposing knobs yet.
2
+ * Unified effect-only preset configuration. Route matching and navigation
3
+ * direction live in Ssgoi transition rules, not inside a preset.
16
4
  */
17
- export type PresetConfig<TPaths, TType extends string = never, TVariant extends string = "default", TOptions extends object = Record<string, never>> = TPaths & {
5
+ export type PresetConfig<TType extends string = never, TVariant extends string = "default", TOptions extends object = Record<string, never>> = {
18
6
  type?: TType;
19
7
  variant?: TVariant;
20
8
  options?: TOptions;
21
9
  };
22
- export declare function createSymmetricPathTransitions(paths: readonly string[], createTransition: () => AnyTransitionConfig): SsgoiPathTransition[];
23
- export declare function createDirectionalPathTransitions(paths: DirectionalTransitionPaths, createTransition: (direction: "enter" | "exit") => AnyTransitionConfig): SsgoiPathTransition[];
24
- export declare function createOrderedPathTransitions<TDirection extends string>(paths: readonly string[], directions: {
25
- forward: TDirection;
26
- backward: TDirection;
27
- }, createTransition: (direction: TDirection) => AnyTransitionConfig): SsgoiPathTransition[];
28
10
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/transitions/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAEvE,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,CACtB,MAAM,EACN,KAAK,SAAS,MAAM,GAAG,KAAK,EAC5B,QAAQ,SAAS,MAAM,GAAG,SAAS,EACnC,QAAQ,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAC7C,MAAM,GAAG;IACX,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,OAAO,CAAC,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,gBAAgB,EAAE,MAAM,mBAAmB,GAC1C,mBAAmB,EAAE,CAkBvB;AAED,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,0BAA0B,EACjC,gBAAgB,EAAE,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,KAAK,mBAAmB,GACrE,mBAAmB,EAAE,CAavB;AAED,wBAAgB,4BAA4B,CAAC,UAAU,SAAS,MAAM,EACpE,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,UAAU,EAAE;IACV,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,UAAU,CAAC;CACtB,EACD,gBAAgB,EAAE,CAAC,SAAS,EAAE,UAAU,KAAK,mBAAmB,GAC/D,mBAAmB,EAAE,CAwBvB"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/transitions/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,YAAY,CACtB,KAAK,SAAS,MAAM,GAAG,KAAK,EAC5B,QAAQ,SAAS,MAAM,GAAG,SAAS,EACnC,QAAQ,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAC7C;IACF,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,OAAO,CAAC,EAAE,QAAQ,CAAC;CACpB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { SsgoiPathTransition } from '../../types/index.ts';
1
+ import { AnyTransitionConfig } from '../../types/index.ts';
2
2
  import { ZoomType, ZoomVariant } from './types';
3
3
  /**
4
4
  * Public config for the `zoom` preset (v6 unified `{type?, variant?, options?}`
@@ -6,17 +6,16 @@ import { ZoomType, ZoomVariant } from './types';
6
6
  * the type so editors can drive completion without showing TODO branches.
7
7
  */
8
8
  export type ZoomConfig = {
9
- paths: readonly string[];
10
9
  type?: ZoomType;
11
10
  variant?: ZoomVariant;
12
11
  options?: Record<string, never>;
13
12
  /**
14
13
  * @deprecated Do not use in new code. v6 only supports `{ type, variant, options }`.
15
14
  * Migrate `fade: true` to `variant: "fade"`.
16
- * Example: `zoom({ paths, type: "static", variant: "fade" })`.
15
+ * Example: `zoom({ type: "static", variant: "fade" })`.
17
16
  * Kept here only for backward compatibility — will be removed in a future major.
18
17
  */
19
18
  fade?: boolean;
20
19
  };
21
- export declare function zoom(config: ZoomConfig): SsgoiPathTransition[];
20
+ export declare function zoom(config?: ZoomConfig): AnyTransitionConfig;
22
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/transitions/zoom/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAGlD,OAAO,KAAK,EAEV,QAAQ,EACR,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;IAGtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAmBF,wBAAgB,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,mBAAmB,EAAE,CAK9D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/transitions/zoom/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,KAAK,EAAyB,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE5E;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;IAGtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAmBF,wBAAgB,IAAI,CAAC,MAAM,GAAE,UAAe,GAAG,mBAAmB,CAGjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"blur.d.ts","sourceRoot":"","sources":["../../../../src/lib/transitions/zoom/provider/blur.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,EAEV,iBAAiB,EACjB,UAAU,EAEV,cAAc,EACd,YAAY,EACZ,YAAY,EACb,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,SAAS,EAGV,MAAM,oBAAoB,CAAC;AAK5B,eAAO,MAAM,YAAY,EAAE,cAM1B,CAAC;AAqEF,qBAAa,sBAAuB,YAAW,YAAY;IACzD,QAAQ,CAAC,OAAO,iBAAgB;IAEhC,UAAU,CAAC,GAAG,EAAE,iBAAiB,GAAG,SAAS,EAAE;CAkBhD;AAQD,qBAAa,eAAgB,YAAW,YAAY;IAClD,OAAO,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IAQjD,UAAU,CAAC,GAAG,EAAE,iBAAiB,GAAG,SAAS,EAAE;CA2BhD;AAMD,wBAAgB,kBAAkB,IAAI,YAAY,CASjD"}
1
+ {"version":3,"file":"blur.d.ts","sourceRoot":"","sources":["../../../../src/lib/transitions/zoom/provider/blur.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,EAEV,iBAAiB,EACjB,UAAU,EAEV,cAAc,EACd,YAAY,EACZ,YAAY,EACb,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,SAAS,EAGV,MAAM,oBAAoB,CAAC;AAK5B,eAAO,MAAM,YAAY,EAAE,cAS1B,CAAC;AAqEF,qBAAa,sBAAuB,YAAW,YAAY;IACzD,QAAQ,CAAC,OAAO,iBAAgB;IAEhC,UAAU,CAAC,GAAG,EAAE,iBAAiB,GAAG,SAAS,EAAE;CAkBhD;AAQD,qBAAa,eAAgB,YAAW,YAAY;IAClD,OAAO,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IAQjD,UAAU,CAAC,GAAG,EAAE,iBAAiB,GAAG,SAAS,EAAE;CA2BhD;AAMD,wBAAgB,kBAAkB,IAAI,YAAY,CASjD"}
@@ -1,5 +1,10 @@
1
1
  import { TransitionConfig } from '../../types/index.ts';
2
- import { NormalizedZoomOptions, ZoomExtras } from './types';
2
+ import { NormalizedZoomOptions, ZoomAnimationInput, ZoomExtras, ZoomResolved } from './types';
3
3
  export type { ZoomType, ZoomVariant, NormalizedZoomOptions } from './types';
4
+ export declare function resolveZoom(fromNode: HTMLElement, toNode: HTMLElement, direction: "forward" | "backward"): ZoomResolved | null;
5
+ export declare function buildInput(resolved: ZoomResolved, fromNode: HTMLElement, toNode: HTMLElement, scrollOffset: {
6
+ x: number;
7
+ y: number;
8
+ }): ZoomAnimationInput;
4
9
  export declare const zoom: (options: NormalizedZoomOptions) => TransitionConfig<ZoomExtras>;
5
10
  //# sourceMappingURL=transition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transition.d.ts","sourceRoot":"","sources":["../../../src/lib/transitions/zoom/transition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAW/D,OAAO,KAAK,EACV,qBAAqB,EAGrB,UAAU,EAKX,MAAM,SAAS,CAAC;AAEjB,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAsT5E,eAAO,MAAM,IAAI,GACf,SAAS,qBAAqB,KAC7B,gBAAgB,CAAC,UAAU,CAsG7B,CAAC"}
1
+ {"version":3,"file":"transition.d.ts","sourceRoot":"","sources":["../../../src/lib/transitions/zoom/transition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAe/D,OAAO,KAAK,EACV,qBAAqB,EACrB,kBAAkB,EAElB,UAAU,EAEV,YAAY,EAGb,MAAM,SAAS,CAAC;AAEjB,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AA6D5E,wBAAgB,WAAW,CACzB,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,SAAS,GAAG,UAAU,GAChC,YAAY,GAAG,IAAI,CAkBrB;AAED,wBAAgB,UAAU,CACxB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,WAAW,EACnB,YAAY,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GACrC,kBAAkB,CAuDpB;AA+MD,eAAO,MAAM,IAAI,GACf,SAAS,qBAAqB,KAC7B,gBAAgB,CAAC,UAAU,CAsG7B,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { PhysicsOptions, SsgoiTransitionContext } from '../../types/index.ts';
2
2
  import { Animation } from '../../animation';
3
+ import { MediaGeometry } from '../media-geometry';
3
4
  export type ZoomType = "expand" | "static" | "blur";
4
5
  export type ZoomVariant = "default" | "fade";
5
6
  export interface NormalizedZoomOptions {
@@ -15,6 +16,10 @@ export interface ZoomAnimationConfig {
15
16
  export interface ZoomAnimationInput {
16
17
  enterRect: DOMRect;
17
18
  exitRect: DOMRect;
19
+ /** Optional content-aware geometry used only by the foreground tile. */
20
+ enterMedia?: MediaGeometry;
21
+ /** Optional content-aware geometry used only by the foreground tile. */
22
+ exitMedia?: MediaGeometry;
18
23
  pageRect: DOMRect;
19
24
  scrollOffset: {
20
25
  x: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/transitions/zoom/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/transitions/zoom/types.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { ZoomAnimationConfig, ZoomAnimationInput } from './types';
2
- export declare function createZoomIn({ enterRect, exitRect, pageRect, scrollOffset, enterRadius, exitRadius, }: ZoomAnimationInput): ZoomAnimationConfig;
3
- export declare function createZoomOut({ enterRect, exitRect, pageRect, scrollOffset, enterRadius, exitRadius, }: ZoomAnimationInput): ZoomAnimationConfig;
2
+ export declare function createZoomIn(input: ZoomAnimationInput): ZoomAnimationConfig;
3
+ export declare function createZoomOut(input: ZoomAnimationInput): ZoomAnimationConfig;
4
4
  //# sourceMappingURL=zoom-element.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"zoom-element.d.ts","sourceRoot":"","sources":["../../../src/lib/transitions/zoom/zoom-element.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAEvE,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,UAAU,GACX,EAAE,kBAAkB,GAAG,mBAAmB,CAyC1C;AAED,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,UAAU,GACX,EAAE,kBAAkB,GAAG,mBAAmB,CAuC1C"}
1
+ {"version":3,"file":"zoom-element.d.ts","sourceRoot":"","sources":["../../../src/lib/transitions/zoom/zoom-element.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAiGvE,wBAAgB,YAAY,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CAgC3E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CAgC5E"}
@@ -54,6 +54,7 @@ export type ScrollPosition = {
54
54
  x: number;
55
55
  y: number;
56
56
  };
57
+ export type NavigationDirection = "forward" | "backward";
57
58
  /**
58
59
  * Context provided by the dispatcher to a transition.
59
60
  *
@@ -61,6 +62,11 @@ export type ScrollPosition = {
61
62
  * — `from.scroll` is the outgoing page's scroll, `to.scroll` the incoming page.
62
63
  */
63
64
  export type SsgoiTransitionContext = {
65
+ /**
66
+ * Semantic navigation direction resolved from the route rule. Transitions
67
+ * map this to their own visual vocabulary (enter/exit, left/right, up/down).
68
+ */
69
+ readonly direction: NavigationDirection;
64
70
  scrollOffset: ScrollOffset;
65
71
  from: {
66
72
  scroll: ScrollPosition;
@@ -126,13 +132,53 @@ export type TransitionConfig<TExtras extends object = object> = {
126
132
  * extras as opaque here.
127
133
  */
128
134
  export type AnyTransitionConfig = TransitionConfig<any>;
129
- export type SsgoiPathTransition = {
130
- from: string;
131
- to: string;
135
+ export type PathPatterns = string | readonly string[];
136
+ type SsgoiTransitionRuleBase = {
132
137
  transition: AnyTransitionConfig;
133
- symmetric?: boolean;
138
+ /**
139
+ * Higher values win before path specificity. Defaults to 0.
140
+ * Useful for an exceptional effect declared below a broad fallback.
141
+ */
142
+ priority?: number;
143
+ };
144
+ /**
145
+ * A route-family rule. Entering the family is forward, leaving it is
146
+ * backward, and navigation within it uses semantic history/pop detection.
147
+ */
148
+ export type SsgoiOnTransitionRule = SsgoiTransitionRuleBase & {
149
+ on: PathPatterns;
150
+ except?: PathPatterns;
151
+ from?: never;
152
+ to?: never;
153
+ ordered?: never;
154
+ bidirectional?: never;
155
+ };
156
+ /**
157
+ * A precise relationship between two route families. The normal from → to
158
+ * orientation is forward; the reverse is backward when bidirectional
159
+ * (the default).
160
+ */
161
+ export type SsgoiPairTransitionRule = SsgoiTransitionRuleBase & {
162
+ from: PathPatterns;
163
+ to: PathPatterns;
164
+ bidirectional?: boolean;
165
+ on?: never;
166
+ except?: never;
167
+ ordered?: never;
134
168
  };
135
- export type SsgoiPathTransitionInput = SsgoiPathTransition | readonly SsgoiPathTransitionInput[];
169
+ /**
170
+ * An ordered set of routes. Both endpoints must match the set; increasing
171
+ * index is forward and decreasing index is backward.
172
+ */
173
+ export type SsgoiOrderedTransitionRule = SsgoiTransitionRuleBase & {
174
+ ordered: readonly string[];
175
+ on?: never;
176
+ except?: never;
177
+ from?: never;
178
+ to?: never;
179
+ bidirectional?: never;
180
+ };
181
+ export type SsgoiTransitionRule = SsgoiOnTransitionRule | SsgoiPairTransitionRule | SsgoiOrderedTransitionRule;
136
182
  export type PreserveScrollValue = boolean | {
137
183
  exclude: string[];
138
184
  key?: string;
@@ -155,12 +201,12 @@ export type TransitionsResolverArgs = {
155
201
  * path-transition list. Lets a config branch on viewport (e.g. drawer on
156
202
  * mobile, fade on desktop) without an outer wrapper.
157
203
  */
158
- export type SsgoiTransitionsFn = (args: TransitionsResolverArgs) => readonly SsgoiPathTransitionInput[];
204
+ export type SsgoiTransitionsFn = (args: TransitionsResolverArgs) => readonly SsgoiTransitionRule[];
159
205
  /**
160
- * `transitions` accepts either the plain list (existing form) or a function of
161
- * device context. Both normalize to the functional form internally.
206
+ * `transitions` accepts either a flat rule list or a function of device
207
+ * context. Both normalize to the functional form internally.
162
208
  */
163
- export type SsgoiTransitionsOption = readonly SsgoiPathTransitionInput[] | SsgoiTransitionsFn;
209
+ export type SsgoiTransitionsOption = readonly SsgoiTransitionRule[] | SsgoiTransitionsFn;
164
210
  export type SsgoiConfig = {
165
211
  transitions?: SsgoiTransitionsOption;
166
212
  middleware?: (from: string, to: string) => {
@@ -182,7 +228,16 @@ export type SsgoiContext = {
182
228
  * transition, and watching for removal via a shared MutationObserver.
183
229
  * Idempotent per element — repeat calls with the same node are no-ops.
184
230
  */
185
- register: (path: string, element: HTMLElement) => void;
231
+ register: (path: string, element: HTMLElement, options?: {
232
+ /**
233
+ * Whether this registration represents an entering transition boundary.
234
+ *
235
+ * Nested boundaries discovered inside a newly-mounted parent boundary
236
+ * are registered with `enter: false`: they must be watched for future
237
+ * child-route changes, but the parent owns the current IN event.
238
+ */
239
+ enter?: boolean;
240
+ }) => void;
186
241
  /**
187
242
  * Returns a path-bound ref callback. Stable across calls for the same
188
243
  * `path` so framework adapters can drop it straight into `ref={…}` without
@@ -190,4 +245,5 @@ export type SsgoiContext = {
190
245
  */
191
246
  refFor: (path: string) => (element: HTMLElement | null) => void;
192
247
  };
248
+ export {};
193
249
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/types/index.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,16 @@
1
1
  /**
2
- * Waits for the browser to complete a paint cycle.
2
+ * Waits across two animation frame callbacks.
3
3
  *
4
- * This ensures that any style changes have been applied and the element
5
- * has been painted to the screen before starting animations.
4
+ * This gives style changes made before the first callback a rendering
5
+ * opportunity before code resumes in the second callback. Since rAF callbacks
6
+ * run before paint and the web platform has no post-presentation callback, this
7
+ * is a scheduling barrier rather than proof that pixels reached the screen.
6
8
  *
7
- * Currently uses double requestAnimationFrame as a reliable cross-browser
8
- * approach. In the future, this could be replaced with a native API when
9
- * available (e.g., a proposed `element.waitForPaint()` or similar).
9
+ * In the future, this could be replaced with a native presentation API if one
10
+ * becomes available.
10
11
  *
11
12
  * @param _element - The element to wait for (reserved for future API usage)
12
- * @returns A promise that resolves after the paint cycle completes
13
+ * @returns A promise that resolves from the second animation frame callback
13
14
  */
14
15
  export declare function waitPaint(_element?: Element): Promise<void>;
15
16
  //# sourceMappingURL=wait-paint.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wait-paint.d.ts","sourceRoot":"","sources":["../../src/lib/utils/wait-paint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,wBAAgB,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAW3D"}
1
+ {"version":3,"file":"wait-paint.d.ts","sourceRoot":"","sources":["../../src/lib/utils/wait-paint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,wBAAgB,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAS3D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ssgoi/core",
3
- "version": "6.7.0-beta.1",
3
+ "version": "7.0.0-beta.1",
4
4
  "description": "Core animation engine for SSGOI - Native app-like page transitions with spring physics",
5
5
  "private": false,
6
6
  "type": "module",
@@ -32,18 +32,6 @@
32
32
  "!dist/**/*.test.*",
33
33
  "!dist/**/*.spec.*"
34
34
  ],
35
- "scripts": {
36
- "dev": "vite",
37
- "watch": "vite build --watch",
38
- "build": "tsc && vite build",
39
- "preview": "vite preview",
40
- "prepare": "pnpm run build",
41
- "lint": "eslint .",
42
- "test": "vitest",
43
- "test:ui": "vitest --ui",
44
- "test:run": "vitest run",
45
- "test:coverage": "vitest run --coverage"
46
- },
47
35
  "keywords": [
48
36
  "page-transition",
49
37
  "page-transitions",
@@ -88,5 +76,16 @@
88
76
  "vite": "^6.0.7",
89
77
  "vite-plugin-dts": "^4.5.0",
90
78
  "vitest": "^3.2.4"
79
+ },
80
+ "scripts": {
81
+ "dev": "vite",
82
+ "watch": "vite build --watch",
83
+ "build": "tsc && vite build",
84
+ "preview": "vite preview",
85
+ "lint": "eslint .",
86
+ "test": "vitest",
87
+ "test:ui": "vitest --ui",
88
+ "test:run": "vitest run",
89
+ "test:coverage": "vitest run --coverage"
91
90
  }
92
- }
91
+ }