@pacem/pacem 1.0.0-bernoulli → 1.0.0-bessel

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 (55) hide show
  1. package/README.md +3 -3
  2. package/dist/browser/pacem-2d.js +1 -1
  3. package/dist/browser/pacem-2d.min.js +1 -2
  4. package/dist/browser/pacem-3d.js +1 -1
  5. package/dist/browser/pacem-3d.min.js +1 -2
  6. package/dist/browser/pacem-charts.js +1 -1
  7. package/dist/browser/pacem-charts.min.js +1 -2
  8. package/dist/browser/pacem-cms.js +1 -1
  9. package/dist/browser/pacem-cms.min.js +1 -2
  10. package/dist/browser/pacem-core.js +50 -24
  11. package/dist/browser/pacem-core.js.map +1 -1
  12. package/dist/browser/pacem-core.min.js +2 -3
  13. package/dist/browser/pacem-foundation.js +1 -1
  14. package/dist/browser/pacem-foundation.min.js +1 -2
  15. package/dist/browser/pacem-fx.js +1 -1
  16. package/dist/browser/pacem-fx.min.js +1 -2
  17. package/dist/browser/pacem-logging.js +1 -1
  18. package/dist/browser/pacem-logging.min.js +1 -2
  19. package/dist/browser/pacem-maps.js +1 -1
  20. package/dist/browser/pacem-maps.min.js +1 -2
  21. package/dist/browser/pacem-media.js +1 -1
  22. package/dist/browser/pacem-media.min.js +1 -2
  23. package/dist/browser/pacem-networking.js +1 -1
  24. package/dist/browser/pacem-networking.min.js +1 -2
  25. package/dist/browser/pacem-numerical.js +1 -1
  26. package/dist/browser/pacem-numerical.min.js +1 -2
  27. package/dist/browser/pacem-plus.js +188 -74
  28. package/dist/browser/pacem-plus.js.map +1 -1
  29. package/dist/browser/pacem-plus.min.js +2 -3
  30. package/dist/browser/pacem-scaffolding.js +1 -1
  31. package/dist/browser/pacem-scaffolding.min.js +1 -2
  32. package/dist/browser/pacem-ui.js +24 -2
  33. package/dist/browser/pacem-ui.js.map +1 -1
  34. package/dist/browser/pacem-ui.min.js +2 -3
  35. package/dist/bundle/pacem.min.mjs +184 -184
  36. package/dist/bundle/pacem.mjs +359 -215
  37. package/dist/bundle/pacem.mjs.map +4 -4
  38. package/dist/typings/index.d.ts +64 -11
  39. package/dist/vscode.html-custom.json +33 -0
  40. package/package.json +1 -1
  41. package/dist/browser/pacem-2d.min.js.map +0 -1
  42. package/dist/browser/pacem-3d.min.js.map +0 -1
  43. package/dist/browser/pacem-charts.min.js.map +0 -1
  44. package/dist/browser/pacem-cms.min.js.map +0 -1
  45. package/dist/browser/pacem-core.min.js.map +0 -1
  46. package/dist/browser/pacem-foundation.min.js.map +0 -1
  47. package/dist/browser/pacem-fx.min.js.map +0 -1
  48. package/dist/browser/pacem-logging.min.js.map +0 -1
  49. package/dist/browser/pacem-maps.min.js.map +0 -1
  50. package/dist/browser/pacem-media.min.js.map +0 -1
  51. package/dist/browser/pacem-networking.min.js.map +0 -1
  52. package/dist/browser/pacem-numerical.min.js.map +0 -1
  53. package/dist/browser/pacem-plus.min.js.map +0 -1
  54. package/dist/browser/pacem-scaffolding.min.js.map +0 -1
  55. package/dist/browser/pacem-ui.min.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @pacem/pacem v1.0.0-bernoulli (https://js.pacem.it)
2
+ * @pacem/pacem v1.0.0-bessel (https://js.pacem.it)
3
3
  * Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -675,11 +675,6 @@ export declare namespace Components {
675
675
  ResizeEventArgs,
676
676
  ResizeEvent,
677
677
  PacemResizeElement,
678
- RouterNavigatingEventName,
679
- RouterNavigateEventName,
680
- RouterNavigateEventArgs,
681
- RouterNavigateEvent,
682
- RouterNavigatingEvent,
683
678
  PacemRouterElement,
684
679
  ScrollEventName,
685
680
  ScrollEventArgs,
@@ -743,6 +738,7 @@ export declare namespace Components {
743
738
  PacemGalleryElement,
744
739
  PacemModalFormElement,
745
740
  PacemRouterHashStateElement,
741
+ PacemRouterViewScrollElement,
746
742
  PacemSearchElement,
747
743
  DataCellMetadataContentFactory,
748
744
  DataCellMetadataCssClassFactory,
@@ -7104,6 +7100,8 @@ declare class PacemRouterElement extends PacemEventTarget {
7104
7100
  template: string;
7105
7101
  state: RouterState;
7106
7102
  path: string;
7103
+ /** Whether to restore the scroll position of a page visited via the back/forward buttons, and scroll newly-visited pages to top. Default `true`; set to `false` to fall back to the browser's own (native) scroll restoration. */
7104
+ scrollRestoration: boolean;
7107
7105
  parseState(state?: {
7108
7106
  [key: string]: string;
7109
7107
  }): RouterState;
@@ -7115,6 +7113,7 @@ declare class PacemRouterElement extends PacemEventTarget {
7115
7113
  connectedCallback(): void;
7116
7114
  viewActivatedCallback(): void;
7117
7115
  disconnectedCallback(): void;
7116
+ private _onScroll;
7118
7117
  private _onPopState;
7119
7118
  /**
7120
7119
  * Merged to provided state into the current one and returns the resulting path (including current querystring and hash).
@@ -7161,6 +7160,50 @@ declare class PacemRouterHashStateElement extends PacemEventTarget_2 {
7161
7160
  set(key: string, value: any): void;
7162
7161
  }
7163
7162
 
7163
+ /**
7164
+ * Bridges a {@link Components.PacemRouterElement}'s persisted scroll position (`state.$scrollY`, populated
7165
+ * when `PacemRouterElement.scrollRestoration` is enabled) with a {@link ComponentsUI.UI.PacemViewElement}'s
7166
+ * content lifecycle: navigating to a new page starts at the top, navigating back restores where the user
7167
+ * left off - without either the router or the view needing to know about the other.
7168
+ *
7169
+ * This listens to the *view*'s `prerender`/`render` events rather than the router's own navigation events,
7170
+ * because `render` only fires once the view's content has stopped resizing (it's debounced against the
7171
+ * view's own resize detection, not just "content was inserted"). That mitigates - though doesn't fully
7172
+ * eliminate - restoring to a scrollTop the page isn't tall enough to reach yet (e.g. images or async
7173
+ * content still loading in): content changes that don't affect the view's own box size won't retrigger it.
7174
+ */
7175
+ declare class PacemRouterViewScrollElement extends PacemEventTarget_2 {
7176
+ /** The {@link Components.PacemRouterElement} instance orchestrating the app's navigation; its `state.$scrollY` is what gets restored. */
7177
+ router: Components_2.PacemRouterElement;
7178
+ /** The {@link ComponentsUI.UI.PacemViewElement} whose `prerender`/`render` events drive when the scroll position gets reset/restored. */
7179
+ view: Components_3.UI.PacemViewElement;
7180
+ /**
7181
+ * Whether to animate the restoring scroll (`'smooth'`) or jump directly to it (`'instant'`). Unset defaults
7182
+ * to smooth (only an explicit `'instant'` disables the animation) - see `_renderHandler`. Only affects the
7183
+ * *restore* on `render`; the reset-to-top on `prerender` is always instant, since there's nothing to animate
7184
+ * from (the old content is already cleared).
7185
+ */
7186
+ scrollBehavior: 'instant' | 'smooth';
7187
+ viewActivatedCallback(): void;
7188
+ propertyChangedCallback(name: string, old: any, val: any, first?: boolean): void;
7189
+ disconnectedCallback(): void;
7190
+ /** Turns on the router's own scroll-position bookkeeping (capturing `state.$scrollY` per history entry); see `PacemRouterElement.scrollRestoration`. */
7191
+ private _setupRouter;
7192
+ /** No-op: `_setupRouter` only flips a flag on the router, there's no subscription to tear down. Kept for symmetry with `_disposeView`, and in case this grows one later. */
7193
+ private _disposeRouter;
7194
+ private _setupView;
7195
+ private _disposeView;
7196
+ /** The old content is already gone and the new content hasn't landed yet - jump to the top now, instantly, so the transition never shows a scrolled-down blank/stale view. */
7197
+ private _prerenderHandler;
7198
+ /**
7199
+ * New content has landed and its size has settled (see class remarks on `render`'s debounce). Restores the
7200
+ * router's persisted scroll position for this entry, if any: `$scrollY` is `undefined` (or `0`) for a
7201
+ * freshly-pushed page - never explicitly set on push, only captured when *leaving* a page - so this
7202
+ * correctly leaves new pages at the top without any special-casing.
7203
+ */
7204
+ private _renderHandler;
7205
+ }
7206
+
7164
7207
  declare class PacemSafeContentElement extends PacemContentElement {
7165
7208
  private _sanitizeLegacy;
7166
7209
  protected sanitize(html: string | Node): string | Node;
@@ -8065,7 +8108,9 @@ declare class PacemViewElement extends PacemEventTarget_2 {
8065
8108
  private _setTmpl;
8066
8109
  private _manageUrl;
8067
8110
  private _manageResult;
8111
+ private _debounceDispatchHandler;
8068
8112
  private _dispatchRender;
8113
+ private _dispatchPrerender;
8069
8114
  }
8070
8115
 
8071
8116
  /** @deprecated */
@@ -8872,23 +8917,23 @@ declare type RouteMetadata = {
8872
8917
  index: number;
8873
8918
  };
8874
8919
 
8875
- declare class RouterNavigateEvent extends CustomTypedEvent<RouterNavigateEventArgs> {
8920
+ export declare class RouterNavigateEvent extends CustomTypedEvent<RouterNavigateEventArgs> {
8876
8921
  constructor(path: string | RouterNavigateEventArgs);
8877
8922
  }
8878
8923
 
8879
- declare type RouterNavigateEventArgs = {
8924
+ export declare type RouterNavigateEventArgs = {
8880
8925
  path: string;
8881
8926
  title?: string;
8882
8927
  referrer?: string;
8883
8928
  };
8884
8929
 
8885
- declare const RouterNavigateEventName = "navigate";
8930
+ export declare const RouterNavigateEventName = "navigate";
8886
8931
 
8887
- declare class RouterNavigatingEvent extends CustomTypedEvent<string> {
8932
+ export declare class RouterNavigatingEvent extends CustomTypedEvent<string> {
8888
8933
  constructor(path: string);
8889
8934
  }
8890
8935
 
8891
- declare const RouterNavigatingEventName = "navigating";
8936
+ export declare const RouterNavigatingEventName = "navigating";
8892
8937
 
8893
8938
  export declare type RouterState = {
8894
8939
  [key: string]: string;
@@ -8900,6 +8945,7 @@ export declare type RouterState = {
8900
8945
  [key: string]: string;
8901
8946
  };
8902
8947
  $hash?: string;
8948
+ $scrollY?: number;
8903
8949
  };
8904
8950
 
8905
8951
  declare interface Rule {
@@ -9881,6 +9927,8 @@ export declare class Utils {
9881
9927
  static deserializeTransform(style: CSSStyleDeclaration): Matrix2D_2;
9882
9928
  static set scrollTop(y: number);
9883
9929
  static set scrollLeft(x: number);
9930
+ static scrollTo(y: number, smooth?: boolean): void;
9931
+ static scrollTo(x: number, y: number, smooth?: boolean): void;
9884
9932
  static get scrollTop(): number;
9885
9933
  static get scrollLeft(): number;
9886
9934
  static get windowSize(): {
@@ -10511,6 +10559,11 @@ declare global {
10511
10559
  Repeater,
10512
10560
  RepeaterItem,
10513
10561
  Rgba,
10562
+ RouterNavigateEvent,
10563
+ RouterNavigateEventArgs,
10564
+ RouterNavigateEventName,
10565
+ RouterNavigatingEvent,
10566
+ RouterNavigatingEventName,
10514
10567
  RouterState,
10515
10568
  Scaffolding,
10516
10569
  Size,
@@ -3564,6 +3564,18 @@
3564
3564
  },
3565
3565
  {
3566
3566
  "name": "path"
3567
+ },
3568
+ {
3569
+ "name": "scroll-restoration",
3570
+ "description": "Whether to restore the scroll position of a page visited via the back/forward buttons, and scroll newly-visited pages to top. Default `true`; set to `false` to fall back to the browser's own (native) scroll restoration.",
3571
+ "values": [
3572
+ {
3573
+ "name": "true"
3574
+ },
3575
+ {
3576
+ "name": "false"
3577
+ }
3578
+ ]
3567
3579
  }
3568
3580
  ]
3569
3581
  },
@@ -3588,6 +3600,27 @@
3588
3600
  }
3589
3601
  ]
3590
3602
  },
3603
+ {
3604
+ "name": "pacem-router-view-scroll",
3605
+ "description": {
3606
+ "kind": "markdown",
3607
+ "value": "**@pacem/pacem-plus**\n\nBridges a {@link Components.PacemRouterElement}'s persisted scroll position (`state.$scrollY`, populated when `PacemRouterElement.scrollRestoration` is enabled) with a {@link ComponentsUI.UI.PacemViewElement}'s content lifecycle: navigating to a new page starts at the top, navigating back restores where the user left off - without either the router or the view needing to know about the other. This listens to the *view*'s `prerender`/`render` events rather than the router's own navigation events, because `render` only fires once the view's content has stopped resizing (it's debounced against the view's own resize detection, not just \"content was inserted\"). That mitigates - though doesn't fully eliminate - restoring to a scrollTop the page isn't tall enough to reach yet (e.g. images or async content still loading in): content changes that don't affect the view's own box size won't retrigger it."
3608
+ },
3609
+ "attributes": [
3610
+ {
3611
+ "name": "router",
3612
+ "description": "The {@link Components.PacemRouterElement} instance orchestrating the app's navigation; its `state.$scrollY` is what gets restored."
3613
+ },
3614
+ {
3615
+ "name": "view",
3616
+ "description": "The {@link Components.PacemRouterElement} instance orchestrating the app's navigation; its `state.$scrollY` is what gets restored. */ @Watch({ converter: PropertyConverters.Element, emit: false }) router: Components.PacemRouterElement; /** The {@link ComponentsUI.UI.PacemViewElement} whose `prerender`/`render` events drive when the scroll position gets reset/restored."
3617
+ },
3618
+ {
3619
+ "name": "scroll-behavior",
3620
+ "description": "The {@link Components.PacemRouterElement} instance orchestrating the app's navigation; its `state.$scrollY` is what gets restored. */ @Watch({ converter: PropertyConverters.Element, emit: false }) router: Components.PacemRouterElement; /** The {@link ComponentsUI.UI.PacemViewElement} whose `prerender`/`render` events drive when the scroll position gets reset/restored. */ @Watch({ converter: PropertyConverters.Element, emit: false }) view: ComponentsUI.UI.PacemViewElement; /** Whether to animate the restoring scroll (`'smooth'`) or jump directly to it (`'instant'`). Unset defaults to smooth (only an explicit `'instant'` disables the animation) - see `_renderHandler`. Only affects the *restore* on `render`; the reset-to-top on `prerender` is always instant, since there's nothing to animate from (the old content is already cleared)."
3621
+ }
3622
+ ]
3623
+ },
3591
3624
  {
3592
3625
  "name": "pacem-schedule",
3593
3626
  "description": {
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.0-bernoulli",
2
+ "version": "1.0.0-bessel",
3
3
  "name": "@pacem/pacem",
4
4
  "workspaces": [
5
5
  "packages/*"