@nika-js/onlymap 0.4.4 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +10 -7
  2. package/THIRD-PARTY-LICENSES.md +2 -2
  3. package/bin/onlymapjs.mjs +14 -1
  4. package/dist/{LercDecode.es-CgN9Gb9e.js → LercDecode.es-B-OFS9hR.js} +1 -1
  5. package/dist/{basemap-Bfn5Z__c.js → basemap-CXVNH22A.js} +3 -3
  6. package/dist/cityjson-urQeujQv.js +407 -0
  7. package/dist/cityjson.d.ts +138 -0
  8. package/dist/data-layer.d.ts +10 -0
  9. package/dist/elements/om-map.d.ts +70 -0
  10. package/dist/{index-lXrP3rPo.js → index-BonJP_St.js} +1 -1
  11. package/dist/index-CW1n5LdO.js +4006 -0
  12. package/dist/{index-CnitG1VX.js → index-CjZMcGou.js} +2 -2
  13. package/dist/{index-M8KfTTol.js → index-DE7T4lfa.js} +1 -1
  14. package/dist/{index-KgO0MBqA.js → index-DiYFebYs.js} +11514 -11259
  15. package/dist/{index-C4cWRigY.js → index-DuY3Zn6r.js} +1 -1
  16. package/dist/index.d.ts +1 -1
  17. package/dist/layer-registry.d.ts +22 -0
  18. package/dist/{lerc-l-QFh62d.js → lerc-BhtFlCQ3.js} +2 -2
  19. package/dist/license.d.ts +34 -8
  20. package/dist/onlymap.standalone.js +23608 -22941
  21. package/dist/onlymapjs.js +69 -65
  22. package/dist/programmatic.d.ts +4 -0
  23. package/dist/quota-notice.d.ts +43 -0
  24. package/dist/raster-BpVAEzbU.js +4842 -0
  25. package/dist/react.js +162 -161
  26. package/dist/runtime-core.d.ts +9 -0
  27. package/dist/testing.d.ts +6 -0
  28. package/dist/version.d.ts +1 -1
  29. package/dist/widget-layout.d.ts +20 -0
  30. package/docs/3d-assets.md +99 -1
  31. package/docs/testing.md +4 -2
  32. package/llms.txt +2 -2
  33. package/onlymapjs.html-data.json +12 -8
  34. package/package.json +3 -2
  35. package/skills/onlymapjs/SKILL.md +4 -2
  36. package/skills/onlymapjs/references/patterns.md +4 -0
  37. package/skills/onlymapjs/references/syntax.md +70 -17
  38. package/skills/onlymapjs/references/testing.md +2 -1
  39. package/dist/raster-BBA_oI-d.js +0 -8843
package/dist/onlymapjs.js CHANGED
@@ -1,78 +1,82 @@
1
- import { ay as e, az as r, aA as o, aB as t, aC as i, aD as l, aq as b, aE as n, aF as S, aG as L, aH as T, aI as E, aJ as g, aK as y, aL as p, aM as c, aN as m, aO as A, aP as d, aQ as I, aR as u, ap as D, aS as _, ax as M, aT as f, W as C, aU as O, aV as N, aW as x, aX as B, aY as G, aZ as R, a_ as h, a$ as w, b0 as F, b1 as P, b2 as W, b3 as v, b4 as U, b5 as Y, b6 as z, b7 as H, b8 as k, b9 as J, ba as V, bb as X, bc as q, bd as K, be as j, bf as Q, bg as Z, bh as $, bi as aa, bj as sa, bk as ea, bl as ra, bm as oa, bn as ta, bo as ia, bp as la, bq as ba, br as na, bs as Sa, bt as La, bu as Ta, bv as Ea, bw as ga, bx as ya, by as pa, bz as ca, bA as ma, bB as Aa, bC as da, bD as Ia, bE as ua } from "./index-KgO0MBqA.js";
1
+ import { ay as e, az as r, aA as o, aB as t, aC as l, aD as b, an as i, aE as n, aF as S, aG as L, aH as T, aI as E, aJ as g, aK as y, aL as A, aM as d, aN as m, aO as p, aP as c, aQ as I, aR as _, aS as D, aT as u, am as O, aU as M, au as f, aV as F, W as C, aW as N, aX as P, aY as B, aZ as R, a_ as h, a$ as x, b0 as G, b1 as W, b2 as v, b3 as w, b4 as H, b5 as U, b6 as Y, b7 as X, b8 as k, b9 as z, ba as J, bb as K, bc as V, bd as j, be as q, bf as Q, bg as Z, bh as $, bi as aa, bj as sa, bk as ea, bl as ra, bm as oa, bn as ta, bo as la, bp as ba, bq as ia, br as na, bs as Sa, bt as La, bu as Ta, bv as Ea, bw as ga, bx as ya, by as Aa, bz as da, bA as ma, bB as pa, bC as ca, bD as Ia, bE as _a, bF as Da, bG as ua, bH as Oa, bI as Ma } from "./index-DiYFebYs.js";
2
2
  export {
3
3
  e as ALL_POSITION_VALUES,
4
4
  r as AUDIT_EXEMPTIONS,
5
5
  o as AccessorCache,
6
6
  t as BitmapLayer,
7
- i as COORDINATE_SYSTEM,
8
- l as CompileError,
9
- b as CompositeLayer,
7
+ l as COORDINATE_SYSTEM,
8
+ b as CompileError,
9
+ i as CompositeLayer,
10
10
  n as DEFAULT_AUDIT_WIDTHS,
11
- S as EDGE_TOLERANCE_PX,
12
- L as FOLD_SIDES,
13
- T as GeoJsonLayer,
14
- E as IconLayer,
15
- g as LEGACY_POSITION_ALIASES,
16
- y as LIGHTING_PRESET_NAMES,
17
- p as Layer,
18
- c as LayerExtension,
19
- m as MANAGED_SLOTS,
20
- A as MapController,
21
- d as OmMap,
22
- I as ScatterplotLayer,
11
+ S as DEFAULT_FOLD_BREAKPOINT_PX,
12
+ L as EDGE_TOLERANCE_PX,
13
+ T as FOLD_HYSTERESIS_PX,
14
+ E as FOLD_SIDES,
15
+ g as GeoJsonLayer,
16
+ y as IconLayer,
17
+ A as LEGACY_POSITION_ALIASES,
18
+ d as LIGHTING_PRESET_NAMES,
19
+ m as Layer,
20
+ p as LayerExtension,
21
+ c as MANAGED_SLOTS,
22
+ I as MapController,
23
+ _ as OmMap,
24
+ D as ScatterplotLayer,
23
25
  u as ScenegraphLayer,
24
- D as SimpleMeshLayer,
25
- _ as Tile3DLayer,
26
- M as TileLayer,
27
- f as WIDGET_STYLE_KEY_NAMES,
26
+ O as SimpleMeshLayer,
27
+ M as Tile3DLayer,
28
+ f as TileLayer,
29
+ F as WIDGET_STYLE_KEY_NAMES,
28
30
  C as WebMercatorViewport,
29
- O as arrowTableToColumnar,
30
- N as asRows,
31
- x as auditLayout,
32
- B as compileExpression,
33
- G as compileFullJsAccessorBlockInSandbox,
34
- R as computeTimeline,
35
- h as configureBasemap,
36
- w as configureData,
37
- F as configureLicense,
38
- P as configureTelemetry,
39
- W as descriptorToIR,
40
- v as destroySandbox,
41
- U as evaluateInSandbox,
42
- Y as foldDrawerStyle,
43
- z as foldPanelStyle,
44
- H as foldSideForSlot,
45
- k as foldToggleSlot,
46
- J as foldToggleStyle,
31
+ N as arrowTableToColumnar,
32
+ P as asRows,
33
+ B as auditLayout,
34
+ R as compileExpression,
35
+ h as compileFullJsAccessorBlockInSandbox,
36
+ x as computeTimeline,
37
+ G as configureBasemap,
38
+ W as configureData,
39
+ v as configureLicense,
40
+ w as configureTelemetry,
41
+ H as descriptorToIR,
42
+ U as destroySandbox,
43
+ Y as evaluateInSandbox,
44
+ X as foldDrawerStyle,
45
+ k as foldPanelStyle,
46
+ z as foldSideForSlot,
47
+ J as foldToggleSlot,
48
+ K as foldToggleStyle,
47
49
  V as getBasemap,
48
- X as getEntitlements,
50
+ j as getEntitlements,
49
51
  q as getLayerSchema,
50
- K as getTerrain,
51
- j as isBrowser,
52
- Q as isColumnar,
53
- Z as isStoreToken,
54
- $ as loadRasterModule,
55
- aa as mountForTest,
56
- sa as normalizeData,
57
- ea as parseDurationMs,
58
- ra as parseTerrainAttrs,
59
- oa as parseWidgetStyle,
60
- ta as registerAction,
52
+ Q as getTerrain,
53
+ Z as isBrowser,
54
+ $ as isColumnar,
55
+ aa as isStoreToken,
56
+ sa as loadRasterModule,
57
+ ea as mountForTest,
58
+ ra as normalizeData,
59
+ oa as parseDurationMs,
60
+ ta as parseTerrainAttrs,
61
+ la as parseWidgetStyle,
62
+ ba as registerAction,
61
63
  ia as registerBasemap,
62
- la as registerFormat,
63
- ba as registerLayer,
64
- na as registerSource,
65
- Sa as registerTerrain,
66
- La as registerWidget,
67
- Ta as resolveLighting,
68
- Ea as resolveSlot,
69
- ga as rowAt,
70
- ya as sandboxHtml,
64
+ na as registerFormat,
65
+ Sa as registerLayer,
66
+ La as registerSource,
67
+ Ta as registerTerrain,
68
+ Ea as registerWidget,
69
+ ga as resolveFoldBreakpointPx,
70
+ ya as resolveLighting,
71
+ Aa as resolveSlot,
72
+ da as rowAt,
73
+ ma as sandboxHtml,
71
74
  pa as settleLayout,
72
- ca as slotContainerStyle,
73
- ma as slotLayout,
74
- Aa as snapshotIR,
75
- da as solarAzElDegrees,
76
- Ia as validateManifest,
77
- ua as validateManifestString
75
+ ca as shouldFoldAtWidth,
76
+ Ia as slotContainerStyle,
77
+ _a as slotLayout,
78
+ Da as snapshotIR,
79
+ ua as solarAzElDegrees,
80
+ Oa as validateManifest,
81
+ Ma as validateManifestString
78
82
  };
@@ -106,6 +106,10 @@ export interface MapControllerOptions {
106
106
  onViewChange?: (view: CameraState, origin: ViewOrigin) => void;
107
107
  /** Scene lighting (spec: "Scene Lighting") — the lighting* attributes' programmatic twin; omit for deck's default lights. */
108
108
  lighting?: LightingOptions;
109
+ /** Every click/hover's map coordinate, including empty-map events — the `om-map-point` DOM event's twin (custom sketch/capture tools). */
110
+ onMapPoint?: (coordinate: [number, number] | null, kind: "click" | "hover") => void;
111
+ /** A Tile3DLayer finished loading its root tileset — the `om-tileset-load` DOM event's twin; `tileset` is the live deck `Tileset3D`. */
112
+ onTilesetLoad?: (layerId: string, tileset: unknown) => void;
109
113
  /** @internal Stable React-owned hosts that place required chrome in managed slots. */
110
114
  chromeHosts?: MandatedChromeHosts;
111
115
  }
@@ -0,0 +1,43 @@
1
+ /**
2
+ * The row-cap notice (spec: "Monetization Gates / row cap"). When the free
3
+ * plan's per-layer row cap truncates a layer, the map still renders — so
4
+ * WITHOUT this the failure is invisible to the person looking at the map, and
5
+ * a partial dataset silently reads as a complete one. That invisibility was
6
+ * the whole reason the gate used to render nothing instead (license.ts's
7
+ * revised violation-mode note); this node is what makes truncation safe to
8
+ * prefer over a blank layer.
9
+ *
10
+ * Deliberately NOT the badge's twin:
11
+ *
12
+ * - Dismissible, and no tamper resistance. The badge is a CONDITION of the
13
+ * free license, so it fights removal; this is a diagnostic. Hiding it costs
14
+ * the viewer nothing but their own warning, and the dev/agent channel
15
+ * (`report`, severity "error") is unaffected either way.
16
+ * - Dismissal is keyed to the SIGNATURE of what was truncated, not to the
17
+ * session. Dismiss it and it stays gone for that situation — but a
18
+ * genuinely different truncation later (another layer, a changed count) is
19
+ * news, and says so again.
20
+ * - Top-center, because widgets own the corners.
21
+ *
22
+ * `update()` is called on every reconcile and must stay free when nothing
23
+ * changed — it compares signatures before touching the DOM at all.
24
+ *
25
+ * ANNOUNCEMENT is a separate, permanently-mounted, visually-hidden live
26
+ * region rather than `role="status"` on the visible box. A live region has to
27
+ * already be in the accessibility tree when its content changes for assistive
28
+ * tech to announce it — inserting a node that ALREADY carries
29
+ * `role="status"`/`aria-live` usually announces nothing, and moving the
30
+ * region's content into a `display:none` box doesn't announce either. So the
31
+ * region mounts empty at map construction (long before any data loads) and
32
+ * only ever has its text swapped. The visible box deliberately carries NO
33
+ * live-region role, or the same message would be announced twice; it stays in
34
+ * the a11y tree so its dismiss button is still reachable by keyboard and
35
+ * screen reader.
36
+ */
37
+ import type { TruncatedLayer } from "./license";
38
+ export interface QuotaNoticeHandle {
39
+ /** Called every reconcile with the pass's truncations — no-ops unless they changed. */
40
+ update(truncated: readonly TruncatedLayer[]): void;
41
+ destroy(): void;
42
+ }
43
+ export declare function mountQuotaNotice(container: HTMLElement): QuotaNoticeHandle;