@pacem/pacem 1.0.5 → 1.0.6-mersenne

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 (39) hide show
  1. package/dist/browser/pacem-2d.js +1 -1
  2. package/dist/browser/pacem-2d.min.js +1 -1
  3. package/dist/browser/pacem-3d.js +1 -1
  4. package/dist/browser/pacem-3d.min.js +1 -1
  5. package/dist/browser/pacem-charts.js +1 -1
  6. package/dist/browser/pacem-charts.min.js +1 -1
  7. package/dist/browser/pacem-cms.js +1 -1
  8. package/dist/browser/pacem-cms.min.js +1 -1
  9. package/dist/browser/pacem-core.js +11 -5
  10. package/dist/browser/pacem-core.js.map +1 -1
  11. package/dist/browser/pacem-core.min.js +2 -2
  12. package/dist/browser/pacem-foundation.js +1 -1
  13. package/dist/browser/pacem-foundation.min.js +1 -1
  14. package/dist/browser/pacem-fx.js +1 -1
  15. package/dist/browser/pacem-fx.min.js +1 -1
  16. package/dist/browser/pacem-logging.js +1 -1
  17. package/dist/browser/pacem-logging.min.js +1 -1
  18. package/dist/browser/pacem-maps.js +1 -1
  19. package/dist/browser/pacem-maps.min.js +1 -1
  20. package/dist/browser/pacem-media.js +1 -1
  21. package/dist/browser/pacem-media.min.js +1 -1
  22. package/dist/browser/pacem-networking.js +1 -1
  23. package/dist/browser/pacem-networking.min.js +1 -1
  24. package/dist/browser/pacem-numerical.js +1 -1
  25. package/dist/browser/pacem-numerical.min.js +1 -1
  26. package/dist/browser/pacem-plus.js +1 -1
  27. package/dist/browser/pacem-plus.min.js +1 -1
  28. package/dist/browser/pacem-scaffolding.js +5 -3
  29. package/dist/browser/pacem-scaffolding.js.map +1 -1
  30. package/dist/browser/pacem-scaffolding.min.js +2 -2
  31. package/dist/browser/pacem-ui.js +13 -2
  32. package/dist/browser/pacem-ui.js.map +1 -1
  33. package/dist/browser/pacem-ui.min.js +2 -2
  34. package/dist/bundle/pacem.min.mjs +4 -4
  35. package/dist/bundle/pacem.mjs +22 -7
  36. package/dist/bundle/pacem.mjs.map +2 -2
  37. package/dist/typings/index.d.ts +56 -1
  38. package/dist/vscode.html-custom.json +1 -1
  39. package/package.json +2 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @pacem/pacem v1.0.5 (https://js.pacem.it)
2
+ * @pacem/pacem v1.0.6-mersenne (https://js.pacem.it)
3
3
  * Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -9935,6 +9935,7 @@ declare class PacemRepeaterElement extends PacemEventTarget implements Repeater
9935
9935
  private _fragment;
9936
9936
  /** Removes the rendered item at the given index. */
9937
9937
  removeItem(index: number): void;
9938
+ /** Builds (or rebuilds) the item at `index` into `frag`; the relevant `RepeaterItemCreateEvent` gets dispatched by the caller, once the fragment is in the DOM. */
9938
9939
  private _setItem;
9939
9940
  private _removeItems;
9940
9941
  private _setupItem;
@@ -14869,6 +14870,60 @@ declare type WGSLModifierDelegates = {
14869
14870
  /** Which pipeline stage a {@link Pacem3DWgslScriptElement}/{@link WGSLModifierDelegates} snippet customizes. */
14870
14871
  declare type WGSLModifierScriptType = 'vertex-input' | 'vertex-output' | 'fragment';
14871
14872
 
14873
+ declare global {
14874
+ interface Array<T> {
14875
+ /**
14876
+ * Moves an item within the array, shifting the other items accordingly.
14877
+ * @param from Index of the item to move.
14878
+ * @param to Destination index.
14879
+ */
14880
+ moveWithin(from: number, to: number): void;
14881
+ /** Checks content equality between arrays. */
14882
+ equalsContent(other: T[]): boolean;
14883
+ /**
14884
+ * Mutates this array in-place so its content matches `other`, only touching indexes whose value actually changed (and trimming/growing length as needed).
14885
+ * @param other Array whose content is to be cloned into this one.
14886
+ */
14887
+ cloneFrom(other: T[]): void;
14888
+ /**
14889
+ * Returns the union (set union, duplicates removed) of this array and `other`.
14890
+ * @param other Array to union with.
14891
+ * @returns A new array with the distinct items of both arrays.
14892
+ */
14893
+ union(other: T[]): T[];
14894
+ /** Returns a new array with duplicate items removed, preserving the first occurrence's order. */
14895
+ distinct(): T[];
14896
+ }
14897
+ }
14898
+
14899
+ declare global {
14900
+ interface Number {
14901
+ /**
14902
+ * Checks whether this number is close enough to `other`, within a given decimal precision.
14903
+ * @param other Number to compare against.
14904
+ * @param precision Number of decimal digits of tolerance (defaults to 14).
14905
+ * @returns Whether the two numbers are close to each other.
14906
+ */
14907
+ isCloseTo(other: number, precision?: number): boolean;
14908
+ /**
14909
+ * Rounds this number to a given number of decimal digits.
14910
+ * @param precision Number of decimal digits to keep (defaults to 14).
14911
+ * @returns The rounded value.
14912
+ */
14913
+ roundoff(precision?: number): number;
14914
+ /**
14915
+ * Clamps this number between a minimum and a maximum value.
14916
+ * @param min Lower bound (ignored if `null`/`NaN`).
14917
+ * @param max Upper bound (ignored if `null`/`NaN`).
14918
+ * @returns The clamped value.
14919
+ */
14920
+ clamp(min: number, max: number): any;
14921
+ /** Converts this number into its base-62 string representation (digits + uppercase + lowercase letters). */
14922
+ toBase62(): string;
14923
+ /** Converts this number into its base-36 string representation. */
14924
+ toBase36(): string;
14925
+ }
14926
+ }
14872
14927
 
14873
14928
 
14874
14929
  declare global {
@@ -939,7 +939,7 @@
939
939
  "name": "pacem-binder",
940
940
  "description": {
941
941
  "kind": "markdown",
942
- "value": "**@pacem/pacem-ui**\n\nEdge (or center) of an element a {@link PacemBinderElement} curve attaches to. */ export enum BinderAnchor { Auto = 'auto', Left = 'left', Top = 'top', Right = 'right', Bottom = 'bottom', Center = 'center' } /** Decoration drawn at either end of a {@link PacemBinderElement} curve. */ export enum BinderEnd { Default = 'default', Arrow = 'arrow', FatArrow = 'fatarrow', None = 'none', } /** How a {@link PacemBinderElement} computes its Bezier control points: from the elements' mass (size) or from the path direction. */ export enum BinderTension { Mass = 'mass', Path = 'path' } /** Event name fired by a {@link PacemBinderElement} when its connecting path is interacted with (click, hover, etc.). */ export const BinderInteractionEventName = 'interact'; /** Event dispatched by a {@link PacemBinderElement} wrapping the original user-interaction event on its path. */ export class BinderInteractionEvent extends CustomUIEvent<null> { constructor(orig: MouseEvent | KeyboardEvent | TouchEvent) { super(BinderInteractionEventName, null, orig); } } const UI_BINDERS: string = 'pacem:components:ui:binders'; /** Tracks the {@link PacemBinderElement} instances bound to a single endpoint element, refreshing them all on that element's resize/reposition. */ class BindersCollector { constructor(element: Element) { const watcher = this.resize = new Components.PacemResizeElement(); watcher.target = element; watcher.watchPosition = true; document.body.appendChild(watcher); } resize: Components.PacemResizeElement; binders: PacemBinderElement[] = []; dispose() { this.resize.remove(); } fire = (evt: Components.ResizeEvent) => { for (var binder of this.binders) { binder.refresh(this.resize.target, evt.detail); } } } /** Static registry pairing endpoint elements with their {@link BindersCollector}, plus a page-wide resize listener keeping every registered {@link PacemBinderElement} in sync. */ class BinderUtils { private static _pageBinders: PacemBinderElement[] = []; private static _bodyResizeListener: Components.PacemResizeElement; private static _updateResizeListener() { const binders = this._pageBinders; if (Utils.isNull(this._bodyResizeListener)) { const resize = this._bodyResizeListener = new Components.PacemResizeElement(); resize.target = document.body; document.body.appendChild(resize); document.addEventListener(Components.ResizeEventName, () => { for (let binder of binders) { binder.invalidateSize(); } }, false); } this._bodyResizeListener.disabled = binders.length === 0; } static register(element: Element, binder: PacemBinderElement) { var collector: BindersCollector = CustomElementUtils.getAttachedPropertyValue(element, UI_BINDERS), binders = this._pageBinders; if (Utils.isNull(collector)) { collector = new BindersCollector(element); CustomElementUtils.setAttachedPropertyValue(element, UI_BINDERS, collector); } if (collector.binders.indexOf(binder) == -1) { if (collector.binders.length === 0) { collector.resize.addEventListener(Components.ResizeEventName, collector.fire, false); } //else { binder.refresh(element, collector.resize.currentSize); //} collector.binders.push(binder); } if (binders.indexOf(binder) === -1) { binders.push(binder); this._updateResizeListener(); } } static unregister(element: Element, binder: PacemBinderElement) { var collector: BindersCollector = CustomElementUtils.getAttachedPropertyValue(element, UI_BINDERS), ndx: number, binders = this._pageBinders, ndx2: number; if (!Utils.isNull(collector) && (ndx = collector.binders.indexOf(binder)) > -1) { collector.binders.splice(ndx, 1); if (collector.binders.length === 0) { collector.resize.removeEventListener(Components.ResizeEventName, collector.fire, false); collector.dispose(); CustomElementUtils.deleteAttachedPropertyValue(element, UI_BINDERS); } } if ((ndx2 = binders.indexOf(binder)) >= 0) { binders.splice(ndx2, 1); this._updateResizeListener(); } } } type PacemBinderTarget = ElementOrPoint; const STD_EVENTS = ['click', 'dblclick', 'mouseover', 'mouseout', 'mouseenter', 'mouseleave', 'mousedown', 'mouseup', 'mousemove', 'contextmenu']; /** Draws an SVG Bezier curve connecting two elements (or points), following them as they move/resize; e.g. wires or diagram connectors."
942
+ "value": "**@pacem/pacem-ui**\n\nEdge (or center) of an element a {@link PacemBinderElement} curve attaches to. */ export enum BinderAnchor { Auto = 'auto', Left = 'left', Top = 'top', Right = 'right', Bottom = 'bottom', Center = 'center' } /** Decoration drawn at either end of a {@link PacemBinderElement} curve. */ export enum BinderEnd { Default = 'default', Arrow = 'arrow', FatArrow = 'fatarrow', None = 'none', } /** How a {@link PacemBinderElement} computes its Bezier control points: from the elements' mass (size) or from the path direction. */ export enum BinderTension { Mass = 'mass', Path = 'path' } /** Event name fired by a {@link PacemBinderElement} when its connecting path is interacted with (click, hover, etc.). */ export const BinderInteractionEventName = 'interact'; /** Event dispatched by a {@link PacemBinderElement} wrapping the original user-interaction event on its path. */ export class BinderInteractionEvent extends CustomUIEvent<null> { constructor(orig: MouseEvent | KeyboardEvent | TouchEvent) { super(BinderInteractionEventName, null, orig); } } const UI_BINDERS: string = 'pacem:components:ui:binders'; /** Tracks the {@link PacemBinderElement} instances bound to a single endpoint element, refreshing them all on that element's resize/reposition (or as soon as it stops animating). */ class BindersCollector { constructor(element: Element) { const watcher = this.resize = new Components.PacemResizeElement(); watcher.target = element; watcher.watchPosition = true; document.body.appendChild(watcher); // an element might turn visible leaving its size and position untouched - e.g. while fading in - // and binders skip invisible endpoints (see `_draw`): they need a nudge once the animation is over. if (element instanceof HTMLElement || element instanceof SVGElement) { Utils.addAnimationEndCallback(element, this.refresh); } } resize: Components.PacemResizeElement; binders: PacemBinderElement[] = []; dispose() { this.resize.remove(); } /** Refreshes the bound binders against the target's latest known size. */ refresh = () => { for (var binder of this.binders) { binder.refresh(this.resize.target, this.resize.currentSize); } } fire = (evt: Components.ResizeEvent) => { for (var binder of this.binders) { binder.refresh(this.resize.target, evt.detail); } } } /** Static registry pairing endpoint elements with their {@link BindersCollector}, plus a page-wide resize listener keeping every registered {@link PacemBinderElement} in sync. */ class BinderUtils { private static _pageBinders: PacemBinderElement[] = []; private static _bodyResizeListener: Components.PacemResizeElement; private static _updateResizeListener() { const binders = this._pageBinders; if (Utils.isNull(this._bodyResizeListener)) { const resize = this._bodyResizeListener = new Components.PacemResizeElement(); resize.target = document.body; document.body.appendChild(resize); document.addEventListener(Components.ResizeEventName, () => { for (let binder of binders) { binder.invalidateSize(); } }, false); } this._bodyResizeListener.disabled = binders.length === 0; } static register(element: Element, binder: PacemBinderElement) { var collector: BindersCollector = CustomElementUtils.getAttachedPropertyValue(element, UI_BINDERS), binders = this._pageBinders; if (Utils.isNull(collector)) { collector = new BindersCollector(element); CustomElementUtils.setAttachedPropertyValue(element, UI_BINDERS, collector); } if (collector.binders.indexOf(binder) == -1) { if (collector.binders.length === 0) { collector.resize.addEventListener(Components.ResizeEventName, collector.fire, false); } //else { binder.refresh(element, collector.resize.currentSize); //} collector.binders.push(binder); } if (binders.indexOf(binder) === -1) { binders.push(binder); this._updateResizeListener(); } } static unregister(element: Element, binder: PacemBinderElement) { var collector: BindersCollector = CustomElementUtils.getAttachedPropertyValue(element, UI_BINDERS), ndx: number, binders = this._pageBinders, ndx2: number; if (!Utils.isNull(collector) && (ndx = collector.binders.indexOf(binder)) > -1) { collector.binders.splice(ndx, 1); if (collector.binders.length === 0) { collector.resize.removeEventListener(Components.ResizeEventName, collector.fire, false); collector.dispose(); CustomElementUtils.deleteAttachedPropertyValue(element, UI_BINDERS); } } if ((ndx2 = binders.indexOf(binder)) >= 0) { binders.splice(ndx2, 1); this._updateResizeListener(); } } } type PacemBinderTarget = ElementOrPoint; const STD_EVENTS = ['click', 'dblclick', 'mouseover', 'mouseout', 'mouseenter', 'mouseleave', 'mousedown', 'mouseup', 'mousemove', 'contextmenu']; /** Draws an SVG Bezier curve connecting two elements (or points), following them as they move/resize; e.g. wires or diagram connectors."
943
943
  },
944
944
  "attributes": [
945
945
  {
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.5",
2
+ "version": "1.0.6-mersenne",
3
3
  "name": "@pacem/pacem",
4
4
  "workspaces": [
5
5
  "packages/*"
@@ -118,6 +118,7 @@
118
118
  "copyfiles": "2.4.1",
119
119
  "esbuild": "0.28.1",
120
120
  "jasmine": "6.1.0",
121
+ "jsdom": "29.1.1",
121
122
  "less": "4.6.4",
122
123
  "less-plugin-clean-css": "1.6.0",
123
124
  "node-fetch": "^2.6.1",