@nika-js/onlymap 0.1.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 (77) hide show
  1. package/.vscode/onlymap.code-snippets +173 -0
  2. package/LICENSE.md +133 -0
  3. package/README.md +188 -0
  4. package/bin/onlymapjs.mjs +182 -0
  5. package/dist/Arrow.dom-7AXne1TU.js +5233 -0
  6. package/dist/actions.d.ts +30 -0
  7. package/dist/attribute-resolution.d.ts +73 -0
  8. package/dist/basemap-D95W0IIA.js +25203 -0
  9. package/dist/basemap.d.ts +72 -0
  10. package/dist/convert-arrow-schema-CvZ3cT5m.js +94 -0
  11. package/dist/csp-sandbox.d.ts +20 -0
  12. package/dist/ctx.d.ts +49 -0
  13. package/dist/d3-bundle.d.ts +218 -0
  14. package/dist/data-emit.d.ts +10 -0
  15. package/dist/data-layer.d.ts +150 -0
  16. package/dist/declarative-filter.d.ts +12 -0
  17. package/dist/dev-error-panel.d.ts +15 -0
  18. package/dist/draw-controller.d.ts +51 -0
  19. package/dist/draw.d.ts +102 -0
  20. package/dist/effects.d.ts +39 -0
  21. package/dist/elements/om-behavior.d.ts +13 -0
  22. package/dist/elements/om-layer.d.ts +11 -0
  23. package/dist/elements/om-map.d.ts +168 -0
  24. package/dist/elements/om-overlay.d.ts +82 -0
  25. package/dist/elements/om-step.d.ts +12 -0
  26. package/dist/elements/om-story.d.ts +67 -0
  27. package/dist/elements/om-widget.d.ts +29 -0
  28. package/dist/env.d.ts +41 -0
  29. package/dist/expr/cache.d.ts +28 -0
  30. package/dist/expr/compile.d.ts +27 -0
  31. package/dist/expr/errors.d.ts +10 -0
  32. package/dist/expr/full-js-block.d.ts +17 -0
  33. package/dist/expr/index.d.ts +12 -0
  34. package/dist/expr/output-type.d.ts +12 -0
  35. package/dist/expr/scale.d.ts +13 -0
  36. package/dist/expr/script-block.d.ts +16 -0
  37. package/dist/expr/whitelist.d.ts +28 -0
  38. package/dist/field-access.d.ts +24 -0
  39. package/dist/html-data.d.ts +25 -0
  40. package/dist/index-2v2NXF_n.js +435 -0
  41. package/dist/index-BFjXVHly.js +605 -0
  42. package/dist/index-C9w78NS9.js +4883 -0
  43. package/dist/index-CU-iOTdr.js +75292 -0
  44. package/dist/index-D74olQ9w.js +3907 -0
  45. package/dist/index-Do7hmHwi.js +1457 -0
  46. package/dist/index.d.ts +76 -0
  47. package/dist/ir-snapshot.d.ts +54 -0
  48. package/dist/ir.d.ts +66 -0
  49. package/dist/layer-registry.d.ts +27 -0
  50. package/dist/layers/popup-layer.d.ts +65 -0
  51. package/dist/onlymapjs.css +1 -0
  52. package/dist/onlymapjs.js +30 -0
  53. package/dist/onlymapjs.umd.cjs +8618 -0
  54. package/dist/parse-manifest.d.ts +19 -0
  55. package/dist/recordbatch-HRu0SMKp.js +4742 -0
  56. package/dist/runtime-core.d.ts +170 -0
  57. package/dist/selection.d.ts +31 -0
  58. package/dist/stats.d.ts +29 -0
  59. package/dist/table-accessors-DBjWgN0C.js +204 -0
  60. package/dist/template-interpolation.d.ts +6 -0
  61. package/dist/testing.d.ts +90 -0
  62. package/dist/timeline.d.ts +37 -0
  63. package/dist/validation.d.ts +22 -0
  64. package/dist/vega-loader.d.ts +22 -0
  65. package/dist/viewport-filter.d.ts +25 -0
  66. package/dist/widget-registry.d.ts +23 -0
  67. package/dist/widget-script.d.ts +1 -0
  68. package/dist/widgets/built-in.d.ts +1 -0
  69. package/dist/widgets/dom-utils.d.ts +4 -0
  70. package/llms.txt +43 -0
  71. package/onlymapjs.html-data.json +1688 -0
  72. package/package.json +111 -0
  73. package/skills/onlymapjs/SKILL.md +61 -0
  74. package/skills/onlymapjs/agents/openai.yaml +4 -0
  75. package/skills/onlymapjs/references/patterns.md +213 -0
  76. package/skills/onlymapjs/references/syntax.md +342 -0
  77. package/skills/onlymapjs/references/testing.md +126 -0
@@ -0,0 +1,1688 @@
1
+ {
2
+ "version": 1.1,
3
+ "tags": [
4
+ {
5
+ "name": "om-map",
6
+ "description": "The map root. Layers, overlays, behaviors, widgets, and stories are children.",
7
+ "attributes": [
8
+ {
9
+ "name": "center",
10
+ "description": "Initial center \"[lng, lat]\"."
11
+ },
12
+ {
13
+ "name": "zoom",
14
+ "description": "Initial zoom."
15
+ },
16
+ {
17
+ "name": "pitch",
18
+ "description": "Initial pitch in degrees."
19
+ },
20
+ {
21
+ "name": "bearing",
22
+ "description": "Initial bearing in degrees."
23
+ },
24
+ {
25
+ "name": "basemap",
26
+ "description": "Basemap renderer.",
27
+ "values": [
28
+ {
29
+ "name": "maplibre"
30
+ }
31
+ ]
32
+ },
33
+ {
34
+ "name": "validate",
35
+ "description": "Run manifest validation and show the on-page error panel."
36
+ },
37
+ {
38
+ "name": "headless",
39
+ "description": "No renderer — parsing/IR only (tests, SSR)."
40
+ },
41
+ {
42
+ "name": "width",
43
+ "description": "Headless viewport width (px)."
44
+ },
45
+ {
46
+ "name": "height",
47
+ "description": "Headless viewport height (px)."
48
+ }
49
+ ],
50
+ "references": [
51
+ {
52
+ "name": "README",
53
+ "url": "https://github.com/NikaGeospatial/onlymapjs/blob/main/docs/../README.md"
54
+ }
55
+ ]
56
+ },
57
+ {
58
+ "name": "om-layer",
59
+ "description": "A deck.gl layer declared as markup — attributes map to props (kebab-case), get-* attributes compile as accessors.",
60
+ "attributes": [
61
+ {
62
+ "name": "id",
63
+ "description": "Layer id — referenced by behaviors, steps, widgets, and overlay anchors."
64
+ },
65
+ {
66
+ "name": "type",
67
+ "description": "deck.gl layer class.",
68
+ "values": [
69
+ {
70
+ "name": "A5Layer"
71
+ },
72
+ {
73
+ "name": "ArcLayer"
74
+ },
75
+ {
76
+ "name": "BitmapLayer"
77
+ },
78
+ {
79
+ "name": "ColumnLayer"
80
+ },
81
+ {
82
+ "name": "ContourLayer"
83
+ },
84
+ {
85
+ "name": "GeoJsonLayer"
86
+ },
87
+ {
88
+ "name": "GeohashLayer"
89
+ },
90
+ {
91
+ "name": "GreatCircleLayer"
92
+ },
93
+ {
94
+ "name": "GridCellLayer"
95
+ },
96
+ {
97
+ "name": "GridLayer"
98
+ },
99
+ {
100
+ "name": "H3ClusterLayer"
101
+ },
102
+ {
103
+ "name": "H3HexagonLayer"
104
+ },
105
+ {
106
+ "name": "HeatmapLayer"
107
+ },
108
+ {
109
+ "name": "HexagonLayer"
110
+ },
111
+ {
112
+ "name": "IconLayer"
113
+ },
114
+ {
115
+ "name": "LineLayer"
116
+ },
117
+ {
118
+ "name": "MVTLayer"
119
+ },
120
+ {
121
+ "name": "PathLayer"
122
+ },
123
+ {
124
+ "name": "PointCloudLayer"
125
+ },
126
+ {
127
+ "name": "PolygonLayer"
128
+ },
129
+ {
130
+ "name": "PopupLayer"
131
+ },
132
+ {
133
+ "name": "QuadkeyLayer"
134
+ },
135
+ {
136
+ "name": "S2Layer"
137
+ },
138
+ {
139
+ "name": "ScatterplotLayer"
140
+ },
141
+ {
142
+ "name": "ScenegraphLayer"
143
+ },
144
+ {
145
+ "name": "ScreenGridLayer"
146
+ },
147
+ {
148
+ "name": "SimpleMeshLayer"
149
+ },
150
+ {
151
+ "name": "SolidPolygonLayer"
152
+ },
153
+ {
154
+ "name": "TerrainLayer"
155
+ },
156
+ {
157
+ "name": "TextLayer"
158
+ },
159
+ {
160
+ "name": "Tile3DLayer"
161
+ },
162
+ {
163
+ "name": "TileLayer"
164
+ },
165
+ {
166
+ "name": "TripsLayer"
167
+ }
168
+ ]
169
+ },
170
+ {
171
+ "name": "data",
172
+ "description": "Data URL (JSON, GeoJSON, CSV/TSV, Arrow/GeoArrow IPC, Shapefile .shp, KML) or wss:// stream; omit for inline <script type=\"application/json\">."
173
+ },
174
+ {
175
+ "name": "label",
176
+ "description": "Human-readable name shown in the legend and layer list."
177
+ },
178
+ {
179
+ "name": "color",
180
+ "description": "Shorthand fill color (hex or CSS color) — also the legend swatch."
181
+ },
182
+ {
183
+ "name": "visible",
184
+ "description": "Layer visibility.",
185
+ "values": [
186
+ {
187
+ "name": "true"
188
+ },
189
+ {
190
+ "name": "false"
191
+ }
192
+ ]
193
+ },
194
+ {
195
+ "name": "opacity",
196
+ "description": "Layer opacity 0–1."
197
+ },
198
+ {
199
+ "name": "pickable",
200
+ "description": "Enables hover/click picking for behaviors and tooltips."
201
+ },
202
+ {
203
+ "name": "transition",
204
+ "description": "GPU prop transitions, e.g. \"get-fill-color 800ms, get-radius 400ms\"."
205
+ },
206
+ {
207
+ "name": "filter-field",
208
+ "description": "GPU filter field (DataFilterExtension) — pair with filter-range."
209
+ },
210
+ {
211
+ "name": "filter-range",
212
+ "description": "Filter range \"[min, max]\" for filter-field."
213
+ },
214
+ {
215
+ "name": "filter-soft-range",
216
+ "description": "Soft edges \"[min, max]\" for the filter."
217
+ },
218
+ {
219
+ "name": "filter-category",
220
+ "description": "Categorical GPU filter field — pair with filter-categories."
221
+ },
222
+ {
223
+ "name": "filter-categories",
224
+ "description": "JSON array of categories to keep."
225
+ },
226
+ {
227
+ "name": "highlighted-id",
228
+ "description": "Feature id to highlight (set by the highlight-feature action)."
229
+ },
230
+ {
231
+ "name": "key",
232
+ "description": "Stream entity identity field — messages upsert by this key (wss data)."
233
+ },
234
+ {
235
+ "name": "flush",
236
+ "description": "Stream burst coalescing interval (default 250ms)."
237
+ },
238
+ {
239
+ "name": "refresh",
240
+ "description": "Polling interval for REST snapshots, e.g. \"5s\" — each poll replaces the data."
241
+ },
242
+ {
243
+ "name": "source",
244
+ "description": "registerSource decoder plugin name for stream messages."
245
+ },
246
+ {
247
+ "name": "get-position",
248
+ "description": "Accessor for deck.gl getPosition — expression language: $field, scale(), arithmetic."
249
+ },
250
+ {
251
+ "name": "get-fill-color",
252
+ "description": "Accessor for deck.gl getFillColor — expression language: $field, scale(), arithmetic."
253
+ },
254
+ {
255
+ "name": "get-line-color",
256
+ "description": "Accessor for deck.gl getLineColor — expression language: $field, scale(), arithmetic."
257
+ },
258
+ {
259
+ "name": "get-radius",
260
+ "description": "Accessor for deck.gl getRadius — expression language: $field, scale(), arithmetic."
261
+ },
262
+ {
263
+ "name": "radius",
264
+ "description": "deck.gl undefined."
265
+ },
266
+ {
267
+ "name": "radius-units",
268
+ "description": "deck.gl radiusUnits."
269
+ },
270
+ {
271
+ "name": "radius-min-pixels",
272
+ "description": "deck.gl radiusMinPixels."
273
+ },
274
+ {
275
+ "name": "line-width-min-pixels",
276
+ "description": "deck.gl lineWidthMinPixels."
277
+ },
278
+ {
279
+ "name": "stroked",
280
+ "description": "deck.gl stroked."
281
+ },
282
+ {
283
+ "name": "filled",
284
+ "description": "deck.gl filled."
285
+ },
286
+ {
287
+ "name": "get-line-width",
288
+ "description": "Accessor for deck.gl getLineWidth — expression language: $field, scale(), arithmetic."
289
+ },
290
+ {
291
+ "name": "get-text",
292
+ "description": "Accessor for deck.gl getText — expression language: $field, scale(), arithmetic."
293
+ },
294
+ {
295
+ "name": "get-subtext",
296
+ "description": "Accessor for deck.gl getSubtext — expression language: $field, scale(), arithmetic."
297
+ },
298
+ {
299
+ "name": "get-color",
300
+ "description": "Accessor for deck.gl getColor — expression language: $field, scale(), arithmetic."
301
+ },
302
+ {
303
+ "name": "get-size",
304
+ "description": "Accessor for deck.gl getSize — expression language: $field, scale(), arithmetic."
305
+ },
306
+ {
307
+ "name": "get-icon",
308
+ "description": "Accessor for deck.gl getIcon — expression language: $field, scale(), arithmetic."
309
+ },
310
+ {
311
+ "name": "layout",
312
+ "description": "deck.gl layout."
313
+ },
314
+ {
315
+ "name": "min-zoom",
316
+ "description": "deck.gl minZoom."
317
+ },
318
+ {
319
+ "name": "max-zoom",
320
+ "description": "deck.gl maxZoom."
321
+ },
322
+ {
323
+ "name": "scenegraph",
324
+ "description": "deck.gl scenegraph."
325
+ },
326
+ {
327
+ "name": "get-orientation",
328
+ "description": "Accessor for deck.gl getOrientation — expression language: $field, scale(), arithmetic."
329
+ },
330
+ {
331
+ "name": "get-scale",
332
+ "description": "Accessor for deck.gl getScale — expression language: $field, scale(), arithmetic."
333
+ },
334
+ {
335
+ "name": "get-translation",
336
+ "description": "Accessor for deck.gl getTranslation — expression language: $field, scale(), arithmetic."
337
+ },
338
+ {
339
+ "name": "size-scale",
340
+ "description": "deck.gl sizeScale."
341
+ },
342
+ {
343
+ "name": "size-min-pixels",
344
+ "description": "deck.gl sizeMinPixels."
345
+ },
346
+ {
347
+ "name": "size-max-pixels",
348
+ "description": "deck.gl sizeMaxPixels."
349
+ },
350
+ {
351
+ "name": "lighting",
352
+ "description": "deck.gl _lighting."
353
+ },
354
+ {
355
+ "name": "tileset",
356
+ "description": "deck.gl data."
357
+ },
358
+ {
359
+ "name": "load-options",
360
+ "description": "deck.gl loadOptions."
361
+ },
362
+ {
363
+ "name": "maximum-screen-space-error",
364
+ "description": "deck.gl loadOptions.tileset.maximumScreenSpaceError."
365
+ },
366
+ {
367
+ "name": "maximum-memory-usage",
368
+ "description": "deck.gl loadOptions.tileset.maximumMemoryUsage."
369
+ },
370
+ {
371
+ "name": "view-distance-scale",
372
+ "description": "deck.gl loadOptions.tileset.viewDistanceScale."
373
+ },
374
+ {
375
+ "name": "point-size",
376
+ "description": "deck.gl pointSize."
377
+ },
378
+ {
379
+ "name": "operation",
380
+ "description": "deck.gl operation."
381
+ },
382
+ {
383
+ "name": "coordinate-system",
384
+ "description": "deck.gl coordinateSystem."
385
+ },
386
+ {
387
+ "name": "coordinate-origin",
388
+ "description": "deck.gl coordinateOrigin."
389
+ },
390
+ {
391
+ "name": "model-matrix",
392
+ "description": "deck.gl modelMatrix."
393
+ },
394
+ {
395
+ "name": "wrap-longitude",
396
+ "description": "deck.gl wrapLongitude."
397
+ },
398
+ {
399
+ "name": "position-format",
400
+ "description": "deck.gl positionFormat."
401
+ },
402
+ {
403
+ "name": "color-format",
404
+ "description": "deck.gl colorFormat."
405
+ },
406
+ {
407
+ "name": "parameters",
408
+ "description": "deck.gl parameters."
409
+ },
410
+ {
411
+ "name": "transitions",
412
+ "description": "deck.gl transitions."
413
+ },
414
+ {
415
+ "name": "extensions",
416
+ "description": "deck.gl extensions."
417
+ },
418
+ {
419
+ "name": "loaders",
420
+ "description": "deck.gl loaders."
421
+ },
422
+ {
423
+ "name": "highlighted-object-index",
424
+ "description": "deck.gl highlightedObjectIndex."
425
+ },
426
+ {
427
+ "name": "auto-highlight",
428
+ "description": "deck.gl autoHighlight."
429
+ },
430
+ {
431
+ "name": "highlight-color",
432
+ "description": "Accessor for deck.gl highlightColor — expression language: $field, scale(), arithmetic."
433
+ },
434
+ {
435
+ "name": "get-source-position",
436
+ "description": "Accessor for deck.gl getSourcePosition — expression language: $field, scale(), arithmetic."
437
+ },
438
+ {
439
+ "name": "get-target-position",
440
+ "description": "Accessor for deck.gl getTargetPosition — expression language: $field, scale(), arithmetic."
441
+ },
442
+ {
443
+ "name": "get-source-color",
444
+ "description": "Accessor for deck.gl getSourceColor — expression language: $field, scale(), arithmetic."
445
+ },
446
+ {
447
+ "name": "get-target-color",
448
+ "description": "Accessor for deck.gl getTargetColor — expression language: $field, scale(), arithmetic."
449
+ },
450
+ {
451
+ "name": "get-width",
452
+ "description": "Accessor for deck.gl getWidth — expression language: $field, scale(), arithmetic."
453
+ },
454
+ {
455
+ "name": "get-height",
456
+ "description": "Accessor for deck.gl getHeight — expression language: $field, scale(), arithmetic."
457
+ },
458
+ {
459
+ "name": "get-tilt",
460
+ "description": "Accessor for deck.gl getTilt — expression language: $field, scale(), arithmetic."
461
+ },
462
+ {
463
+ "name": "great-circle",
464
+ "description": "deck.gl greatCircle."
465
+ },
466
+ {
467
+ "name": "num-segments",
468
+ "description": "deck.gl numSegments."
469
+ },
470
+ {
471
+ "name": "width-units",
472
+ "description": "deck.gl widthUnits."
473
+ },
474
+ {
475
+ "name": "width-scale",
476
+ "description": "deck.gl widthScale."
477
+ },
478
+ {
479
+ "name": "width-min-pixels",
480
+ "description": "deck.gl widthMinPixels."
481
+ },
482
+ {
483
+ "name": "width-max-pixels",
484
+ "description": "deck.gl widthMaxPixels."
485
+ },
486
+ {
487
+ "name": "image",
488
+ "description": "deck.gl image."
489
+ },
490
+ {
491
+ "name": "bounds",
492
+ "description": "deck.gl bounds."
493
+ },
494
+ {
495
+ "name": "_image-coordinate-system",
496
+ "description": "deck.gl _imageCoordinateSystem."
497
+ },
498
+ {
499
+ "name": "desaturate",
500
+ "description": "deck.gl desaturate."
501
+ },
502
+ {
503
+ "name": "transparent-color",
504
+ "description": "deck.gl transparentColor."
505
+ },
506
+ {
507
+ "name": "tint-color",
508
+ "description": "deck.gl tintColor."
509
+ },
510
+ {
511
+ "name": "texture-parameters",
512
+ "description": "deck.gl textureParameters."
513
+ },
514
+ {
515
+ "name": "disk-resolution",
516
+ "description": "deck.gl diskResolution."
517
+ },
518
+ {
519
+ "name": "vertices",
520
+ "description": "deck.gl vertices."
521
+ },
522
+ {
523
+ "name": "angle",
524
+ "description": "deck.gl angle."
525
+ },
526
+ {
527
+ "name": "offset",
528
+ "description": "deck.gl offset."
529
+ },
530
+ {
531
+ "name": "coverage",
532
+ "description": "deck.gl coverage."
533
+ },
534
+ {
535
+ "name": "elevation-scale",
536
+ "description": "deck.gl elevationScale."
537
+ },
538
+ {
539
+ "name": "line-width-units",
540
+ "description": "deck.gl lineWidthUnits."
541
+ },
542
+ {
543
+ "name": "line-width-scale",
544
+ "description": "deck.gl lineWidthScale."
545
+ },
546
+ {
547
+ "name": "line-width-max-pixels",
548
+ "description": "deck.gl lineWidthMaxPixels."
549
+ },
550
+ {
551
+ "name": "extruded",
552
+ "description": "deck.gl extruded."
553
+ },
554
+ {
555
+ "name": "wireframe",
556
+ "description": "deck.gl wireframe."
557
+ },
558
+ {
559
+ "name": "flat-shading",
560
+ "description": "deck.gl flatShading."
561
+ },
562
+ {
563
+ "name": "get-elevation",
564
+ "description": "Accessor for deck.gl getElevation — expression language: $field, scale(), arithmetic."
565
+ },
566
+ {
567
+ "name": "material",
568
+ "description": "deck.gl material."
569
+ },
570
+ {
571
+ "name": "cell-size",
572
+ "description": "deck.gl cellSize."
573
+ },
574
+ {
575
+ "name": "icon-atlas",
576
+ "description": "deck.gl iconAtlas."
577
+ },
578
+ {
579
+ "name": "icon-mapping",
580
+ "description": "deck.gl iconMapping."
581
+ },
582
+ {
583
+ "name": "billboard",
584
+ "description": "deck.gl billboard."
585
+ },
586
+ {
587
+ "name": "size-units",
588
+ "description": "deck.gl sizeUnits."
589
+ },
590
+ {
591
+ "name": "size-basis",
592
+ "description": "deck.gl sizeBasis."
593
+ },
594
+ {
595
+ "name": "alpha-cutoff",
596
+ "description": "deck.gl alphaCutoff."
597
+ },
598
+ {
599
+ "name": "get-angle",
600
+ "description": "Accessor for deck.gl getAngle — expression language: $field, scale(), arithmetic."
601
+ },
602
+ {
603
+ "name": "get-pixel-offset",
604
+ "description": "Accessor for deck.gl getPixelOffset — expression language: $field, scale(), arithmetic."
605
+ },
606
+ {
607
+ "name": "joint-rounded",
608
+ "description": "deck.gl jointRounded."
609
+ },
610
+ {
611
+ "name": "cap-rounded",
612
+ "description": "deck.gl capRounded."
613
+ },
614
+ {
615
+ "name": "miter-limit",
616
+ "description": "deck.gl miterLimit."
617
+ },
618
+ {
619
+ "name": "_path-type",
620
+ "description": "deck.gl _pathType."
621
+ },
622
+ {
623
+ "name": "get-path",
624
+ "description": "Accessor for deck.gl getPath — expression language: $field, scale(), arithmetic."
625
+ },
626
+ {
627
+ "name": "get-normal",
628
+ "description": "Accessor for deck.gl getNormal — expression language: $field, scale(), arithmetic."
629
+ },
630
+ {
631
+ "name": "_normalize",
632
+ "description": "deck.gl _normalize."
633
+ },
634
+ {
635
+ "name": "_winding-order",
636
+ "description": "deck.gl _windingOrder."
637
+ },
638
+ {
639
+ "name": "line-joint-rounded",
640
+ "description": "deck.gl lineJointRounded."
641
+ },
642
+ {
643
+ "name": "line-miter-limit",
644
+ "description": "deck.gl lineMiterLimit."
645
+ },
646
+ {
647
+ "name": "get-polygon",
648
+ "description": "Accessor for deck.gl getPolygon — expression language: $field, scale(), arithmetic."
649
+ },
650
+ {
651
+ "name": "_full3d",
652
+ "description": "deck.gl _full3d."
653
+ },
654
+ {
655
+ "name": "background",
656
+ "description": "deck.gl background."
657
+ },
658
+ {
659
+ "name": "get-background-color",
660
+ "description": "Accessor for deck.gl getBackgroundColor — expression language: $field, scale(), arithmetic."
661
+ },
662
+ {
663
+ "name": "get-border-color",
664
+ "description": "Accessor for deck.gl getBorderColor — expression language: $field, scale(), arithmetic."
665
+ },
666
+ {
667
+ "name": "get-border-width",
668
+ "description": "Accessor for deck.gl getBorderWidth — expression language: $field, scale(), arithmetic."
669
+ },
670
+ {
671
+ "name": "background-border-radius",
672
+ "description": "deck.gl backgroundBorderRadius."
673
+ },
674
+ {
675
+ "name": "background-padding",
676
+ "description": "deck.gl backgroundPadding."
677
+ },
678
+ {
679
+ "name": "character-set",
680
+ "description": "deck.gl characterSet."
681
+ },
682
+ {
683
+ "name": "font-family",
684
+ "description": "deck.gl fontFamily."
685
+ },
686
+ {
687
+ "name": "font-weight",
688
+ "description": "deck.gl fontWeight."
689
+ },
690
+ {
691
+ "name": "line-height",
692
+ "description": "deck.gl lineHeight."
693
+ },
694
+ {
695
+ "name": "outline-width",
696
+ "description": "deck.gl outlineWidth."
697
+ },
698
+ {
699
+ "name": "outline-color",
700
+ "description": "deck.gl outlineColor."
701
+ },
702
+ {
703
+ "name": "font-settings",
704
+ "description": "deck.gl fontSettings."
705
+ },
706
+ {
707
+ "name": "word-break",
708
+ "description": "deck.gl wordBreak."
709
+ },
710
+ {
711
+ "name": "max-width",
712
+ "description": "deck.gl maxWidth."
713
+ },
714
+ {
715
+ "name": "content-cutoff-pixels",
716
+ "description": "deck.gl contentCutoffPixels."
717
+ },
718
+ {
719
+ "name": "content-align-horizontal",
720
+ "description": "deck.gl contentAlignHorizontal."
721
+ },
722
+ {
723
+ "name": "content-align-vertical",
724
+ "description": "deck.gl contentAlignVertical."
725
+ },
726
+ {
727
+ "name": "get-text-anchor",
728
+ "description": "Accessor for deck.gl getTextAnchor — expression language: $field, scale(), arithmetic."
729
+ },
730
+ {
731
+ "name": "get-alignment-baseline",
732
+ "description": "Accessor for deck.gl getAlignmentBaseline — expression language: $field, scale(), arithmetic."
733
+ },
734
+ {
735
+ "name": "get-content-box",
736
+ "description": "Accessor for deck.gl getContentBox — expression language: $field, scale(), arithmetic."
737
+ },
738
+ {
739
+ "name": "get-pentagon",
740
+ "description": "Accessor for deck.gl getPentagon — expression language: $field, scale(), arithmetic."
741
+ },
742
+ {
743
+ "name": "get-geohash",
744
+ "description": "Accessor for deck.gl getGeohash — expression language: $field, scale(), arithmetic."
745
+ },
746
+ {
747
+ "name": "get-hexagons",
748
+ "description": "Accessor for deck.gl getHexagons — expression language: $field, scale(), arithmetic."
749
+ },
750
+ {
751
+ "name": "high-precision",
752
+ "description": "deck.gl highPrecision."
753
+ },
754
+ {
755
+ "name": "center-hexagon",
756
+ "description": "deck.gl centerHexagon."
757
+ },
758
+ {
759
+ "name": "get-hexagon",
760
+ "description": "Accessor for deck.gl getHexagon — expression language: $field, scale(), arithmetic."
761
+ },
762
+ {
763
+ "name": "extent",
764
+ "description": "deck.gl extent."
765
+ },
766
+ {
767
+ "name": "tile-size",
768
+ "description": "deck.gl tileSize."
769
+ },
770
+ {
771
+ "name": "max-cache-size",
772
+ "description": "deck.gl maxCacheSize."
773
+ },
774
+ {
775
+ "name": "max-cache-byte-size",
776
+ "description": "deck.gl maxCacheByteSize."
777
+ },
778
+ {
779
+ "name": "refinement-strategy",
780
+ "description": "deck.gl refinementStrategy."
781
+ },
782
+ {
783
+ "name": "z-range",
784
+ "description": "deck.gl zRange."
785
+ },
786
+ {
787
+ "name": "max-requests",
788
+ "description": "deck.gl maxRequests."
789
+ },
790
+ {
791
+ "name": "debounce-time",
792
+ "description": "deck.gl debounceTime."
793
+ },
794
+ {
795
+ "name": "zoom-offset",
796
+ "description": "deck.gl zoomOffset."
797
+ },
798
+ {
799
+ "name": "visible-min-zoom",
800
+ "description": "deck.gl visibleMinZoom."
801
+ },
802
+ {
803
+ "name": "visible-max-zoom",
804
+ "description": "deck.gl visibleMaxZoom."
805
+ },
806
+ {
807
+ "name": "point-radius-max-pixels",
808
+ "description": "deck.gl pointRadiusMaxPixels."
809
+ },
810
+ {
811
+ "name": "point-radius-min-pixels",
812
+ "description": "deck.gl pointRadiusMinPixels."
813
+ },
814
+ {
815
+ "name": "point-radius-scale",
816
+ "description": "deck.gl pointRadiusScale."
817
+ },
818
+ {
819
+ "name": "point-radius-units",
820
+ "description": "deck.gl pointRadiusUnits."
821
+ },
822
+ {
823
+ "name": "point-antialiasing",
824
+ "description": "deck.gl pointAntialiasing."
825
+ },
826
+ {
827
+ "name": "point-billboard",
828
+ "description": "deck.gl pointBillboard."
829
+ },
830
+ {
831
+ "name": "get-point-radius",
832
+ "description": "Accessor for deck.gl getPointRadius — expression language: $field, scale(), arithmetic."
833
+ },
834
+ {
835
+ "name": "icon-size-max-pixels",
836
+ "description": "deck.gl iconSizeMaxPixels."
837
+ },
838
+ {
839
+ "name": "icon-size-min-pixels",
840
+ "description": "deck.gl iconSizeMinPixels."
841
+ },
842
+ {
843
+ "name": "icon-size-scale",
844
+ "description": "deck.gl iconSizeScale."
845
+ },
846
+ {
847
+ "name": "icon-size-units",
848
+ "description": "deck.gl iconSizeUnits."
849
+ },
850
+ {
851
+ "name": "icon-alpha-cutoff",
852
+ "description": "deck.gl iconAlphaCutoff."
853
+ },
854
+ {
855
+ "name": "icon-billboard",
856
+ "description": "deck.gl iconBillboard."
857
+ },
858
+ {
859
+ "name": "get-icon-angle",
860
+ "description": "Accessor for deck.gl getIconAngle — expression language: $field, scale(), arithmetic."
861
+ },
862
+ {
863
+ "name": "get-icon-color",
864
+ "description": "Accessor for deck.gl getIconColor — expression language: $field, scale(), arithmetic."
865
+ },
866
+ {
867
+ "name": "get-icon-pixel-offset",
868
+ "description": "Accessor for deck.gl getIconPixelOffset — expression language: $field, scale(), arithmetic."
869
+ },
870
+ {
871
+ "name": "get-icon-size",
872
+ "description": "Accessor for deck.gl getIconSize — expression language: $field, scale(), arithmetic."
873
+ },
874
+ {
875
+ "name": "text-size-max-pixels",
876
+ "description": "deck.gl textSizeMaxPixels."
877
+ },
878
+ {
879
+ "name": "text-size-min-pixels",
880
+ "description": "deck.gl textSizeMinPixels."
881
+ },
882
+ {
883
+ "name": "text-size-scale",
884
+ "description": "deck.gl textSizeScale."
885
+ },
886
+ {
887
+ "name": "text-size-units",
888
+ "description": "deck.gl textSizeUnits."
889
+ },
890
+ {
891
+ "name": "text-background",
892
+ "description": "deck.gl textBackground."
893
+ },
894
+ {
895
+ "name": "text-background-padding",
896
+ "description": "deck.gl textBackgroundPadding."
897
+ },
898
+ {
899
+ "name": "text-font-family",
900
+ "description": "deck.gl textFontFamily."
901
+ },
902
+ {
903
+ "name": "text-font-weight",
904
+ "description": "deck.gl textFontWeight."
905
+ },
906
+ {
907
+ "name": "text-line-height",
908
+ "description": "deck.gl textLineHeight."
909
+ },
910
+ {
911
+ "name": "text-max-width",
912
+ "description": "deck.gl textMaxWidth."
913
+ },
914
+ {
915
+ "name": "text-outline-color",
916
+ "description": "deck.gl textOutlineColor."
917
+ },
918
+ {
919
+ "name": "text-outline-width",
920
+ "description": "deck.gl textOutlineWidth."
921
+ },
922
+ {
923
+ "name": "text-word-break",
924
+ "description": "deck.gl textWordBreak."
925
+ },
926
+ {
927
+ "name": "text-character-set",
928
+ "description": "deck.gl textCharacterSet."
929
+ },
930
+ {
931
+ "name": "text-billboard",
932
+ "description": "deck.gl textBillboard."
933
+ },
934
+ {
935
+ "name": "text-font-settings",
936
+ "description": "deck.gl textFontSettings."
937
+ },
938
+ {
939
+ "name": "get-text-angle",
940
+ "description": "Accessor for deck.gl getTextAngle — expression language: $field, scale(), arithmetic."
941
+ },
942
+ {
943
+ "name": "get-text-color",
944
+ "description": "Accessor for deck.gl getTextColor — expression language: $field, scale(), arithmetic."
945
+ },
946
+ {
947
+ "name": "get-text-pixel-offset",
948
+ "description": "Accessor for deck.gl getTextPixelOffset — expression language: $field, scale(), arithmetic."
949
+ },
950
+ {
951
+ "name": "get-text-size",
952
+ "description": "Accessor for deck.gl getTextSize — expression language: $field, scale(), arithmetic."
953
+ },
954
+ {
955
+ "name": "get-text-alignment-baseline",
956
+ "description": "Accessor for deck.gl getTextAlignmentBaseline — expression language: $field, scale(), arithmetic."
957
+ },
958
+ {
959
+ "name": "get-text-background-color",
960
+ "description": "Accessor for deck.gl getTextBackgroundColor — expression language: $field, scale(), arithmetic."
961
+ },
962
+ {
963
+ "name": "get-text-border-color",
964
+ "description": "Accessor for deck.gl getTextBorderColor — expression language: $field, scale(), arithmetic."
965
+ },
966
+ {
967
+ "name": "get-text-border-width",
968
+ "description": "Accessor for deck.gl getTextBorderWidth — expression language: $field, scale(), arithmetic."
969
+ },
970
+ {
971
+ "name": "line-cap-rounded",
972
+ "description": "deck.gl lineCapRounded."
973
+ },
974
+ {
975
+ "name": "line-billboard",
976
+ "description": "deck.gl lineBillboard."
977
+ },
978
+ {
979
+ "name": "point-type",
980
+ "description": "deck.gl pointType."
981
+ },
982
+ {
983
+ "name": "unique-id-property",
984
+ "description": "deck.gl uniqueIdProperty."
985
+ },
986
+ {
987
+ "name": "highlighted-feature-id",
988
+ "description": "deck.gl highlightedFeatureId."
989
+ },
990
+ {
991
+ "name": "binary",
992
+ "description": "deck.gl binary."
993
+ },
994
+ {
995
+ "name": "get-quadkey",
996
+ "description": "Accessor for deck.gl getQuadkey — expression language: $field, scale(), arithmetic."
997
+ },
998
+ {
999
+ "name": "get-s2-token",
1000
+ "description": "Accessor for deck.gl getS2Token — expression language: $field, scale(), arithmetic."
1001
+ },
1002
+ {
1003
+ "name": "elevation-data",
1004
+ "description": "deck.gl elevationData."
1005
+ },
1006
+ {
1007
+ "name": "texture",
1008
+ "description": "deck.gl texture."
1009
+ },
1010
+ {
1011
+ "name": "mesh-max-error",
1012
+ "description": "deck.gl meshMaxError."
1013
+ },
1014
+ {
1015
+ "name": "elevation-decoder",
1016
+ "description": "deck.gl elevationDecoder."
1017
+ },
1018
+ {
1019
+ "name": "worker-url",
1020
+ "description": "deck.gl workerUrl."
1021
+ },
1022
+ {
1023
+ "name": "fade-trail",
1024
+ "description": "deck.gl fadeTrail."
1025
+ },
1026
+ {
1027
+ "name": "trail-length",
1028
+ "description": "deck.gl trailLength."
1029
+ },
1030
+ {
1031
+ "name": "current-time",
1032
+ "description": "deck.gl currentTime."
1033
+ },
1034
+ {
1035
+ "name": "get-timestamps",
1036
+ "description": "Accessor for deck.gl getTimestamps — expression language: $field, scale(), arithmetic."
1037
+ },
1038
+ {
1039
+ "name": "grid-origin",
1040
+ "description": "deck.gl gridOrigin."
1041
+ },
1042
+ {
1043
+ "name": "get-weight",
1044
+ "description": "Accessor for deck.gl getWeight — expression language: $field, scale(), arithmetic."
1045
+ },
1046
+ {
1047
+ "name": "gpu-aggregation",
1048
+ "description": "deck.gl gpuAggregation."
1049
+ },
1050
+ {
1051
+ "name": "aggregation",
1052
+ "description": "deck.gl aggregation."
1053
+ },
1054
+ {
1055
+ "name": "contours",
1056
+ "description": "deck.gl contours."
1057
+ },
1058
+ {
1059
+ "name": "z-offset",
1060
+ "description": "deck.gl zOffset."
1061
+ },
1062
+ {
1063
+ "name": "color-domain",
1064
+ "description": "deck.gl colorDomain."
1065
+ },
1066
+ {
1067
+ "name": "color-range",
1068
+ "description": "deck.gl colorRange."
1069
+ },
1070
+ {
1071
+ "name": "get-color-value",
1072
+ "description": "Accessor for deck.gl getColorValue — expression language: $field, scale(), arithmetic."
1073
+ },
1074
+ {
1075
+ "name": "get-color-weight",
1076
+ "description": "Accessor for deck.gl getColorWeight — expression language: $field, scale(), arithmetic."
1077
+ },
1078
+ {
1079
+ "name": "color-aggregation",
1080
+ "description": "deck.gl colorAggregation."
1081
+ },
1082
+ {
1083
+ "name": "lower-percentile",
1084
+ "description": "deck.gl lowerPercentile."
1085
+ },
1086
+ {
1087
+ "name": "upper-percentile",
1088
+ "description": "deck.gl upperPercentile."
1089
+ },
1090
+ {
1091
+ "name": "color-scale-type",
1092
+ "description": "deck.gl colorScaleType."
1093
+ },
1094
+ {
1095
+ "name": "elevation-domain",
1096
+ "description": "deck.gl elevationDomain."
1097
+ },
1098
+ {
1099
+ "name": "elevation-range",
1100
+ "description": "deck.gl elevationRange."
1101
+ },
1102
+ {
1103
+ "name": "get-elevation-value",
1104
+ "description": "Accessor for deck.gl getElevationValue — expression language: $field, scale(), arithmetic."
1105
+ },
1106
+ {
1107
+ "name": "get-elevation-weight",
1108
+ "description": "Accessor for deck.gl getElevationWeight — expression language: $field, scale(), arithmetic."
1109
+ },
1110
+ {
1111
+ "name": "elevation-aggregation",
1112
+ "description": "deck.gl elevationAggregation."
1113
+ },
1114
+ {
1115
+ "name": "elevation-lower-percentile",
1116
+ "description": "deck.gl elevationLowerPercentile."
1117
+ },
1118
+ {
1119
+ "name": "elevation-upper-percentile",
1120
+ "description": "deck.gl elevationUpperPercentile."
1121
+ },
1122
+ {
1123
+ "name": "elevation-scale-type",
1124
+ "description": "deck.gl elevationScaleType."
1125
+ },
1126
+ {
1127
+ "name": "intensity",
1128
+ "description": "deck.gl intensity."
1129
+ },
1130
+ {
1131
+ "name": "radius-pixels",
1132
+ "description": "deck.gl radiusPixels."
1133
+ },
1134
+ {
1135
+ "name": "threshold",
1136
+ "description": "deck.gl threshold."
1137
+ },
1138
+ {
1139
+ "name": "weights-texture-size",
1140
+ "description": "deck.gl weightsTextureSize."
1141
+ },
1142
+ {
1143
+ "name": "debounce-timeout",
1144
+ "description": "deck.gl debounceTimeout."
1145
+ },
1146
+ {
1147
+ "name": "cell-size-pixels",
1148
+ "description": "deck.gl cellSizePixels."
1149
+ },
1150
+ {
1151
+ "name": "cell-margin-pixels",
1152
+ "description": "deck.gl cellMarginPixels."
1153
+ },
1154
+ {
1155
+ "name": "mesh",
1156
+ "description": "deck.gl mesh."
1157
+ },
1158
+ {
1159
+ "name": "_instanced",
1160
+ "description": "deck.gl _instanced."
1161
+ },
1162
+ {
1163
+ "name": "get-transform-matrix",
1164
+ "description": "Accessor for deck.gl getTransformMatrix — expression language: $field, scale(), arithmetic."
1165
+ }
1166
+ ]
1167
+ },
1168
+ {
1169
+ "name": "om-overlay",
1170
+ "description": "Rich HTML anchored to the map: a static coordinate, the current selection, or a feature's own geometry.",
1171
+ "attributes": [
1172
+ {
1173
+ "name": "id",
1174
+ "description": "Overlay id — referenced by show/hide-overlay."
1175
+ },
1176
+ {
1177
+ "name": "anchor",
1178
+ "description": "Static anchor \"[lng, lat]\"."
1179
+ },
1180
+ {
1181
+ "name": "anchor-from",
1182
+ "description": "Dynamic anchor source.",
1183
+ "values": [
1184
+ {
1185
+ "name": "selection"
1186
+ }
1187
+ ]
1188
+ },
1189
+ {
1190
+ "name": "anchor-layer",
1191
+ "description": "Anchor to a feature of this layer (with anchor-feature-id)."
1192
+ },
1193
+ {
1194
+ "name": "anchor-feature-id",
1195
+ "description": "Feature id to anchor to — bbox center for polygons/lines."
1196
+ },
1197
+ {
1198
+ "name": "anchor-offset",
1199
+ "description": "Attachment point relative to the anchor.",
1200
+ "values": [
1201
+ {
1202
+ "name": "top-left"
1203
+ },
1204
+ {
1205
+ "name": "top-center"
1206
+ },
1207
+ {
1208
+ "name": "top-right"
1209
+ },
1210
+ {
1211
+ "name": "center-left"
1212
+ },
1213
+ {
1214
+ "name": "center"
1215
+ },
1216
+ {
1217
+ "name": "center-right"
1218
+ },
1219
+ {
1220
+ "name": "bottom-left"
1221
+ },
1222
+ {
1223
+ "name": "bottom-center"
1224
+ },
1225
+ {
1226
+ "name": "bottom-right"
1227
+ }
1228
+ ]
1229
+ },
1230
+ {
1231
+ "name": "visible",
1232
+ "description": "Overlay visibility.",
1233
+ "values": [
1234
+ {
1235
+ "name": "true"
1236
+ },
1237
+ {
1238
+ "name": "false"
1239
+ }
1240
+ ]
1241
+ },
1242
+ {
1243
+ "name": "layer",
1244
+ "description": "Scope selection-anchored overlays to one layer's picks."
1245
+ }
1246
+ ],
1247
+ "references": [
1248
+ {
1249
+ "name": "Stories & overlays",
1250
+ "url": "https://github.com/NikaGeospatial/onlymapjs/blob/main/docs/stories.md"
1251
+ }
1252
+ ]
1253
+ },
1254
+ {
1255
+ "name": "om-behavior",
1256
+ "description": "Declarative event → action wiring. Every other attribute becomes a payload key (kebab→camel).",
1257
+ "attributes": [
1258
+ {
1259
+ "name": "on",
1260
+ "description": "Trigger event.",
1261
+ "values": [
1262
+ {
1263
+ "name": "click"
1264
+ },
1265
+ {
1266
+ "name": "hover"
1267
+ },
1268
+ {
1269
+ "name": "drag"
1270
+ },
1271
+ {
1272
+ "name": "load"
1273
+ },
1274
+ {
1275
+ "name": "data-loaded"
1276
+ }
1277
+ ]
1278
+ },
1279
+ {
1280
+ "name": "layer",
1281
+ "description": "Only picks on this layer trigger the behavior."
1282
+ },
1283
+ {
1284
+ "name": "action",
1285
+ "description": "Action to dispatch.",
1286
+ "values": [
1287
+ {
1288
+ "name": "toggle-layer"
1289
+ },
1290
+ {
1291
+ "name": "zoom-in"
1292
+ },
1293
+ {
1294
+ "name": "zoom-out"
1295
+ },
1296
+ {
1297
+ "name": "filter-layer"
1298
+ },
1299
+ {
1300
+ "name": "highlight-feature"
1301
+ },
1302
+ {
1303
+ "name": "fade"
1304
+ },
1305
+ {
1306
+ "name": "pulse"
1307
+ },
1308
+ {
1309
+ "name": "populate"
1310
+ },
1311
+ {
1312
+ "name": "trace"
1313
+ },
1314
+ {
1315
+ "name": "story-play"
1316
+ },
1317
+ {
1318
+ "name": "story-pause"
1319
+ },
1320
+ {
1321
+ "name": "story-seek"
1322
+ },
1323
+ {
1324
+ "name": "fly-to"
1325
+ },
1326
+ {
1327
+ "name": "zoom-to-feature"
1328
+ },
1329
+ {
1330
+ "name": "show-overlay"
1331
+ },
1332
+ {
1333
+ "name": "hide-overlay"
1334
+ },
1335
+ {
1336
+ "name": "show-tooltip"
1337
+ },
1338
+ {
1339
+ "name": "hide-tooltip"
1340
+ },
1341
+ {
1342
+ "name": "draw-mode"
1343
+ },
1344
+ {
1345
+ "name": "draw-commit"
1346
+ },
1347
+ {
1348
+ "name": "draw-cancel"
1349
+ },
1350
+ {
1351
+ "name": "draw-delete"
1352
+ },
1353
+ {
1354
+ "name": "draw-clear"
1355
+ },
1356
+ {
1357
+ "name": "draw-config"
1358
+ },
1359
+ {
1360
+ "name": "draw-save"
1361
+ }
1362
+ ]
1363
+ },
1364
+ {
1365
+ "name": "target",
1366
+ "description": "Target overlay id (show/hide-overlay payload)."
1367
+ },
1368
+ {
1369
+ "name": "template",
1370
+ "description": "Tooltip template selector (show-tooltip payload)."
1371
+ }
1372
+ ]
1373
+ },
1374
+ {
1375
+ "name": "om-widget",
1376
+ "description": "Map UI chrome — built-in types or inline <script type=\"om/widget\"> render logic.",
1377
+ "attributes": [
1378
+ {
1379
+ "name": "type",
1380
+ "description": "Built-in widget type (omit for a custom scripted widget).",
1381
+ "values": [
1382
+ {
1383
+ "name": "legend"
1384
+ },
1385
+ {
1386
+ "name": "layer-switcher"
1387
+ },
1388
+ {
1389
+ "name": "zoom-controls"
1390
+ },
1391
+ {
1392
+ "name": "scale-bar"
1393
+ },
1394
+ {
1395
+ "name": "attribution"
1396
+ },
1397
+ {
1398
+ "name": "filter"
1399
+ },
1400
+ {
1401
+ "name": "vega-lite"
1402
+ },
1403
+ {
1404
+ "name": "player"
1405
+ },
1406
+ {
1407
+ "name": "draw"
1408
+ }
1409
+ ]
1410
+ },
1411
+ {
1412
+ "name": "position",
1413
+ "description": "Corner placement.",
1414
+ "values": [
1415
+ {
1416
+ "name": "top-left"
1417
+ },
1418
+ {
1419
+ "name": "top-right"
1420
+ },
1421
+ {
1422
+ "name": "bottom-left"
1423
+ },
1424
+ {
1425
+ "name": "bottom-right"
1426
+ }
1427
+ ]
1428
+ },
1429
+ {
1430
+ "name": "watch",
1431
+ "description": "Space-separated watch tokens: viewport, selection, layers, data:<layerId>."
1432
+ },
1433
+ {
1434
+ "name": "layer",
1435
+ "description": "Layer id (filter / vega-lite widgets)."
1436
+ },
1437
+ {
1438
+ "name": "field",
1439
+ "description": "Data field (filter / vega-lite widgets)."
1440
+ },
1441
+ {
1442
+ "name": "story",
1443
+ "description": "Story id (player widget)."
1444
+ },
1445
+ {
1446
+ "name": "target",
1447
+ "description": "Draw widget: store the sketch feeds — bind a layer with data=\"draw:<target>\"."
1448
+ },
1449
+ {
1450
+ "name": "modes",
1451
+ "description": "Draw widget: space-separated tools to show.",
1452
+ "values": [
1453
+ {
1454
+ "name": "point line polygon"
1455
+ },
1456
+ {
1457
+ "name": "point"
1458
+ },
1459
+ {
1460
+ "name": "line"
1461
+ },
1462
+ {
1463
+ "name": "polygon"
1464
+ }
1465
+ ]
1466
+ },
1467
+ {
1468
+ "name": "save",
1469
+ "description": "Draw widget: how Save persists the GeoJSON.",
1470
+ "values": [
1471
+ {
1472
+ "name": "both"
1473
+ },
1474
+ {
1475
+ "name": "download"
1476
+ },
1477
+ {
1478
+ "name": "file-system"
1479
+ }
1480
+ ]
1481
+ },
1482
+ {
1483
+ "name": "autosave",
1484
+ "description": "Draw widget: localStorage key — mirrors the sketch and restores it on reload."
1485
+ },
1486
+ {
1487
+ "name": "title",
1488
+ "description": "Widget heading."
1489
+ }
1490
+ ],
1491
+ "references": [
1492
+ {
1493
+ "name": "Testing & widgets",
1494
+ "url": "https://github.com/NikaGeospatial/onlymapjs/blob/main/docs/testing.md"
1495
+ }
1496
+ ]
1497
+ },
1498
+ {
1499
+ "name": "om-story",
1500
+ "description": "A guided tour: time → action. Steps reference layers/overlays by id — never contain them.",
1501
+ "attributes": [
1502
+ {
1503
+ "name": "id",
1504
+ "description": "Story id — referenced by the player widget and story-* actions."
1505
+ },
1506
+ {
1507
+ "name": "autoplay",
1508
+ "description": "Start after om-map-ready."
1509
+ },
1510
+ {
1511
+ "name": "loop",
1512
+ "description": "Restart when the tour ends."
1513
+ },
1514
+ {
1515
+ "name": "interrupt",
1516
+ "description": "What user camera gestures do to playback.",
1517
+ "values": [
1518
+ {
1519
+ "name": "pause"
1520
+ },
1521
+ {
1522
+ "name": "ignore"
1523
+ }
1524
+ ]
1525
+ }
1526
+ ],
1527
+ "references": [
1528
+ {
1529
+ "name": "Map stories",
1530
+ "url": "https://github.com/NikaGeospatial/onlymapjs/blob/main/docs/stories.md"
1531
+ }
1532
+ ]
1533
+ },
1534
+ {
1535
+ "name": "om-step",
1536
+ "description": "One story step: action=\"…\" plus payload attributes, or a bare effect verb (trace / pulse / fade / populate).",
1537
+ "attributes": [
1538
+ {
1539
+ "name": "action",
1540
+ "description": "Action to dispatch at this step's time.",
1541
+ "values": [
1542
+ {
1543
+ "name": "toggle-layer"
1544
+ },
1545
+ {
1546
+ "name": "zoom-in"
1547
+ },
1548
+ {
1549
+ "name": "zoom-out"
1550
+ },
1551
+ {
1552
+ "name": "filter-layer"
1553
+ },
1554
+ {
1555
+ "name": "highlight-feature"
1556
+ },
1557
+ {
1558
+ "name": "fade"
1559
+ },
1560
+ {
1561
+ "name": "pulse"
1562
+ },
1563
+ {
1564
+ "name": "populate"
1565
+ },
1566
+ {
1567
+ "name": "trace"
1568
+ },
1569
+ {
1570
+ "name": "story-play"
1571
+ },
1572
+ {
1573
+ "name": "story-pause"
1574
+ },
1575
+ {
1576
+ "name": "story-seek"
1577
+ },
1578
+ {
1579
+ "name": "fly-to"
1580
+ },
1581
+ {
1582
+ "name": "zoom-to-feature"
1583
+ },
1584
+ {
1585
+ "name": "show-overlay"
1586
+ },
1587
+ {
1588
+ "name": "hide-overlay"
1589
+ },
1590
+ {
1591
+ "name": "show-tooltip"
1592
+ },
1593
+ {
1594
+ "name": "hide-tooltip"
1595
+ },
1596
+ {
1597
+ "name": "draw-mode"
1598
+ },
1599
+ {
1600
+ "name": "draw-commit"
1601
+ },
1602
+ {
1603
+ "name": "draw-cancel"
1604
+ },
1605
+ {
1606
+ "name": "draw-delete"
1607
+ },
1608
+ {
1609
+ "name": "draw-clear"
1610
+ },
1611
+ {
1612
+ "name": "draw-config"
1613
+ },
1614
+ {
1615
+ "name": "draw-save"
1616
+ }
1617
+ ]
1618
+ },
1619
+ {
1620
+ "name": "duration",
1621
+ "description": "How long the step's animation runs (\"3s\", \"800ms\"); also passed to the action."
1622
+ },
1623
+ {
1624
+ "name": "delay",
1625
+ "description": "Stagger before the step starts."
1626
+ },
1627
+ {
1628
+ "name": "parallel",
1629
+ "description": "Start with the previous step instead of after everything before it."
1630
+ },
1631
+ {
1632
+ "name": "trace",
1633
+ "description": "Effect verb: progressive draw (whole TripsLayer, or one feature with feature-id)."
1634
+ },
1635
+ {
1636
+ "name": "pulse",
1637
+ "description": "Effect verb: attention oscillation."
1638
+ },
1639
+ {
1640
+ "name": "fade",
1641
+ "description": "Effect verb: animate opacity to `to` over duration."
1642
+ },
1643
+ {
1644
+ "name": "populate",
1645
+ "description": "Effect verb: rows drop in one by one (GPU filter sweep)."
1646
+ },
1647
+ {
1648
+ "name": "layer",
1649
+ "description": "Target layer id."
1650
+ },
1651
+ {
1652
+ "name": "target",
1653
+ "description": "Target overlay id (show/hide-overlay)."
1654
+ },
1655
+ {
1656
+ "name": "feature-id",
1657
+ "description": "Target feature id (highlight/zoom/trace)."
1658
+ },
1659
+ {
1660
+ "name": "center",
1661
+ "description": "Camera center \"[lng, lat]\" (fly-to)."
1662
+ },
1663
+ {
1664
+ "name": "zoom",
1665
+ "description": "Camera zoom (fly-to)."
1666
+ },
1667
+ {
1668
+ "name": "pitch",
1669
+ "description": "Camera pitch in degrees (fly-to)."
1670
+ },
1671
+ {
1672
+ "name": "bearing",
1673
+ "description": "Camera bearing in degrees (fly-to)."
1674
+ },
1675
+ {
1676
+ "name": "curve",
1677
+ "description": "Arced flight path instead of a linear ease (fly-to)."
1678
+ }
1679
+ ],
1680
+ "references": [
1681
+ {
1682
+ "name": "Map stories",
1683
+ "url": "https://github.com/NikaGeospatial/onlymapjs/blob/main/docs/stories.md"
1684
+ }
1685
+ ]
1686
+ }
1687
+ ]
1688
+ }