@tileflow/core 0.1.0-alpha.34 → 0.1.0-alpha.36

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 (36) hide show
  1. package/README.md +24 -23
  2. package/THIRD_PARTY_NOTICES.md +100 -6
  3. package/dist/browser.d.ts +758 -388
  4. package/dist/browser.js +4598 -1169
  5. package/dist/build.d.ts +9 -5
  6. package/dist/build.js +2892 -1410
  7. package/dist/capture.js +1 -0
  8. package/dist/config-reference.json +3780 -2153
  9. package/dist/{icon-composition-DqoZWQuz.d.ts → icon-composition-sN3JkXdb.d.ts} +380 -96
  10. package/dist/index.d.ts +426 -13
  11. package/dist/index.js +4999 -1841
  12. package/dist/{manifest-types-hmzy2bBX.d.ts → manifest-types-jrBdBrES.d.ts} +71 -9
  13. package/dist/manifest.d.ts +2 -2
  14. package/dist/manifest.js +80 -2
  15. package/dist/native-profile.js +1 -0
  16. package/dist/native.d.ts +13 -3
  17. package/dist/native.js +714 -318
  18. package/dist/runtime.d.ts +1 -1
  19. package/dist/runtime.js +124 -6
  20. package/dist/worker/buildings-3d-worker.global.js +1 -0
  21. package/docs/authoring-model.md +12 -3
  22. package/docs/boundary-areas-and-choropleths.md +217 -0
  23. package/docs/buildings-3d.md +264 -34
  24. package/docs/cartographic-defaults.md +142 -0
  25. package/docs/compiled-style-performance.md +14 -3
  26. package/docs/data-is-separate-from-design.md +191 -7
  27. package/docs/hosted-session-authorization.md +2 -4
  28. package/docs/map-and-terrain-examples.md +10 -3
  29. package/docs/native-artifact-profile.md +5 -0
  30. package/docs/native-resource-urls.md +5 -3
  31. package/docs/street-lights.md +22 -6
  32. package/docs/sun-and-light.md +42 -2
  33. package/docs/theme-transitions-and-blends.md +50 -0
  34. package/docs/themes-and-module-styles.md +66 -0
  35. package/docs/trees-3d.md +85 -13
  36. package/package.json +5 -4
package/README.md CHANGED
@@ -38,9 +38,8 @@ export default defineMap({
38
38
  });
39
39
  ```
40
40
 
41
- Coordinates use `[longitude, latitude]`. The map inherits Streets' themes and asset providers.
42
- A complete root map uses the same `defineMap()` call without `extends`; most applications should
43
- extend an existing map instead of rebuilding its complete visual contract.
41
+ Coordinates use `[longitude, latitude]`. This map inherits Streets' themes and assets.
42
+ A standalone map uses `defineMap()` without `extends`.
44
43
 
45
44
  Validate and preview the file with the project-local CLI:
46
45
 
@@ -60,7 +59,7 @@ Omitted fields inherit, but declaring a field does not imply a recursive merge:
60
59
  - `modules` merges by domain. Declaring `roads(...)` replaces that domain's inherited request and
61
60
  render contributions. Use `refine(...)` to patch it, `disable()` to remove it, and `reset()` for
62
61
  an explicit reset inside a supported patch.
63
- - `themes` replaces the complete collection and clears an inherited `systemThemes` mapping.
62
+ - `themes` replaces the complete collection and clears inherited `systemThemes` and `timeOfDay` mappings.
64
63
  `defaultTheme` can select an inherited concrete theme; `systemThemes` replaces its complete mapping.
65
64
  - `icons` replaces the ordered contributor list. Omission inherits it; `[]` disables it. Local and
66
65
  package directories can be combined with explicit locked `iconSet('@team/set')` descriptors.
@@ -141,7 +140,7 @@ receipts must use a concrete theme such as `light` or `dark`.
141
140
 
142
141
  Because every theme of a map shares one structure, a browser map can cross-fade between themes or
143
142
  show a continuous blend of them on the same MapLibre instance, with no extra requests. See
144
- [theme transitions and blends](https://github.com/tileflow/tileflow-sdk/blob/main/packages/core/docs/theme-transitions-and-blends.md).
143
+ [theme transitions, time-of-day presets and blends](https://github.com/tileflow/tileflow-sdk/blob/main/packages/core/docs/theme-transitions-and-blends.md).
145
144
  The same controller can make chosen modules recede and the map's labels fade so an application's
146
145
  own content reads first; see [map emphasis](https://github.com/tileflow/tileflow-sdk/blob/main/packages/core/docs/map-emphasis.md).
147
146
  It also sets the style-wide states that themes read with `expr.globalState`, easing numbers so the
@@ -158,15 +157,14 @@ A theme can describe its sun and sky light (`lighting.sun`, `lighting.ambient`);
158
157
  returns the sun the map shows with `getSun()`, mixed during a blend, for an application's own 3D
159
158
  layers, and `setSun()` places it by direction or by the real sun of a date and place; see
160
159
  [sun and light](https://github.com/tileflow/tileflow-sdk/blob/main/packages/core/docs/sun-and-light.md).
161
- `createTileflowBuildings3D` raises the map's buildings round the camera and lights them from that
162
- sun, with shadows on the buildings and the flat map, contact shadow and night light from the places
163
- they hold; it shows, hides and grows them without laying out any source; see
160
+ `createTileflowBuildings3D` enables worker-meshed buildings fading in at zoom 15–15.25, with scene
161
+ sun, cast/contact shadows and 0.8 m rounded corners. Each effect is independently overridable. See
164
162
  [3D buildings](https://github.com/tileflow/tileflow-sdk/blob/main/packages/core/docs/buildings-3d.md).
165
- `createTileflowStreetLights` lights the streets as the sun sets, from the lamps and lit streets the
166
- map's data holds; see
163
+ Street lights default to off, including in Streets. Set `roads.streetLights.enabled: true` and mount
164
+ `createTileflowStreetLights` to enable them; see
167
165
  [street lights](https://github.com/tileflow/tileflow-sdk/blob/main/packages/core/docs/street-lights.md).
168
- `createTileflowTrees3D` stands the map's trees in 3D in the same light; see
169
- [3D trees](https://github.com/tileflow/tileflow-sdk/blob/main/packages/core/docs/trees-3d.md).
166
+ `createTileflowVegetation` controls all trees using the map's `3d`, `flat` or `auto` policy; see
167
+ [vegetation controls and 3D trees](https://github.com/tileflow/tileflow-sdk/blob/main/packages/core/docs/trees-3d.md).
170
168
 
171
169
  The semantic domains are `land`, `water`, `nautical`, `roads`, `buildings`, `boundaries`, `labels`,
172
170
  `poi`, `aeroways`, `transit`, `vegetation`, `addresses`, and `landforms`. Style stable geographic
@@ -184,15 +182,14 @@ validates the authoring input and throws on failure. `createStyle(map, options)`
184
182
  throws; `createStyleResult(map, options)` returns structured diagnostics and a compilation report.
185
183
  Only a successful result contains `style`.
186
184
 
187
- Core compilation is not asset preparation. A map that references package or local icon/font
188
- directories needs the CLI, a build plugin, or
185
+ Maps with package/local icon or font directories need the CLI, a build plugin, or
189
186
  [`@tileflow/dev/artifacts`](https://github.com/tileflow/tileflow-sdk/blob/main/packages/dev/README.md)
190
- to produce deployable sprites and font files. Browser components consume the resulting manifest;
191
- they do not import executable configs.
187
+ to prepare assets. Browser components consume the resulting manifest.
192
188
 
193
- Use these commands to discover the installed language and inspect a prepared map:
189
+ Discover the language and inspect a prepared map:
194
190
 
195
191
  ```sh
192
+ npx tileflow describe themes --json
196
193
  npx tileflow language manifest --json
197
194
  npx tileflow language schema --json
198
195
  npx tileflow inspect --json
@@ -238,10 +235,12 @@ package uses this contract for its mounted Map; it is not yet published.
238
235
 
239
236
  ## Data, terrain, and browser resources
240
237
 
241
- Tileflow World is the hosted primary-data path. `vectorTiles()` with `openMapTiles()` supports
242
- compatible externally supplied vector data for local/self-hosted use; it does not make that source
243
- eligible for hosted deployment. `hostedTileset()` and semantic overlay placement add named data
244
- sources. Local PMTiles inputs are for local tooling, not implicit production data publication.
238
+ Tileflow World is the hosted primary source. `vectorTiles()` with `openMapTiles()` supports
239
+ external local/self-hosted data; hosted eligibility is separate. `hostedTileset()`, `boundaryAreas`
240
+ and semantic overlays add named sources. Local PMTiles inputs are tooling-only.
241
+
242
+ `bathymetry({vectorLayers: {...}})` declares compatible contour/name layers; omission retains
243
+ legacy band geometry.
245
244
 
246
245
  World attribution links to Tileflow's source notice, OpenMapTiles, and OpenStreetMap. External
247
246
  vector data retains the attribution supplied by its owner.
@@ -269,8 +268,8 @@ In a 3D scene, `createTileflowDepthMarkers` from `@tileflow/core/browser` draws
269
268
  that nearer buildings hide, facing the viewer or lying on the ground. See
270
269
  [depth markers](https://github.com/tileflow/tileflow-sdk/blob/main/packages/core/docs/depth-markers.md).
271
270
 
272
- A map with text must declare exactly one text provider. Streets, Ferraris, Härad, Soundings,
273
- and Blueprint use URL glyph providers. Baedeker and Siegfried use packaged Cormorant
271
+ A map with text must declare exactly one text provider. Streets, Soundings,
272
+ and Blueprint use URL glyph providers. Baedeker, 1777, and Siegfried use packaged Cormorant
274
273
  fonts, and Cívica uses its packaged lettering. Hosted deployment currently rejects
275
274
  package/local font bundles; use self-hosted output or explicitly replace the provider with compatible
276
275
  public glyphs. Tile URLs and font providers do not establish redistribution rights.
@@ -295,6 +294,7 @@ revision; prefer the installed copy when working with an older release.
295
294
  - [Shared visual primitives](https://github.com/tileflow/tileflow-sdk/blob/main/packages/core/docs/shared-visual-primitives.md)
296
295
  - [Compiled-style performance](https://github.com/tileflow/tileflow-sdk/blob/main/packages/core/docs/compiled-style-performance.md)
297
296
  - [Camera moves and the tile cache](https://github.com/tileflow/tileflow-sdk/blob/main/packages/core/docs/camera-moves-and-tile-cache.md)
297
+ - [Cartographic defaults and overrides](https://github.com/tileflow/tileflow-sdk/blob/main/packages/core/docs/cartographic-defaults.md)
298
298
  - [Themes and module styles](https://github.com/tileflow/tileflow-sdk/blob/main/packages/core/docs/themes-and-module-styles.md)
299
299
  - [Theme transitions and blends](https://github.com/tileflow/tileflow-sdk/blob/main/packages/core/docs/theme-transitions-and-blends.md)
300
300
  - [Map emphasis](https://github.com/tileflow/tileflow-sdk/blob/main/packages/core/docs/map-emphasis.md)
@@ -304,6 +304,7 @@ revision; prefer the installed copy when working with an older release.
304
304
  - [3D buildings](https://github.com/tileflow/tileflow-sdk/blob/main/packages/core/docs/buildings-3d.md)
305
305
  - [Street lights](https://github.com/tileflow/tileflow-sdk/blob/main/packages/core/docs/street-lights.md)
306
306
  - [3D trees](https://github.com/tileflow/tileflow-sdk/blob/main/packages/core/docs/trees-3d.md)
307
+ - [Boundary areas and choropleths](https://github.com/tileflow/tileflow-sdk/blob/main/packages/core/docs/boundary-areas-and-choropleths.md)
307
308
  - [Data is separate from design](https://github.com/tileflow/tileflow-sdk/blob/main/packages/core/docs/data-is-separate-from-design.md)
308
309
  - [Capture scenes](https://github.com/tileflow/tileflow-sdk/blob/main/packages/core/docs/capture-scenes.md)
309
310
  - [Capture shots](https://github.com/tileflow/tileflow-sdk/blob/main/packages/core/docs/capture-shots.md)
@@ -1,7 +1,9 @@
1
1
  # Third-party notices
2
2
 
3
- `@tileflow/core/browser` embeds `maplibre-contour` 0.1.0, `PMTiles` 4.4.0, `fflate` 0.8.3, and
4
- `earcut` 3.2.4 so contour, local archive, and 3D building rendering remain self-contained. The complete upstream licenses follow.
3
+ `@tileflow/core/browser` embeds `maplibre-contour` 0.1.0, `PMTiles` 4.5.0, `fflate` 0.8.3, and
4
+ `earcut` 3.2.4 so contour, local archive, and 3D building rendering remain self-contained.
5
+ `@tileflow/core` and `@tileflow/core/browser` embed the decoder of `meshoptimizer` 1.3.0, loaded
6
+ only to read a compressed 3D model file. The complete upstream licenses follow.
5
7
 
6
8
  ## maplibre-contour 0.1.0
7
9
 
@@ -168,7 +170,7 @@ See <https://github.com/nodejs/node/blob/main/LICENSE> for more information.
168
170
 
169
171
  ---
170
172
 
171
- ## PMTiles 4.4.0
173
+ ## PMTiles 4.5.0
172
174
 
173
175
  The below license (BSD-3) applies to the reference implementations in this repository.
174
176
 
@@ -249,6 +251,32 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWA
249
251
 
250
252
  ---
251
253
 
254
+ ## meshoptimizer 1.3.0
255
+
256
+ MIT License
257
+
258
+ Copyright (c) 2016-2026 Arseny Kapoulkine
259
+
260
+ Permission is hereby granted, free of charge, to any person obtaining a copy
261
+ of this software and associated documentation files (the "Software"), to deal
262
+ in the Software without restriction, including without limitation the rights
263
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
264
+ copies of the Software, and to permit persons to whom the Software is
265
+ furnished to do so, subject to the following conditions:
266
+
267
+ The above copyright notice and this permission notice shall be included in all
268
+ copies or substantial portions of the Software.
269
+
270
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
271
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
272
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
273
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
274
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
275
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
276
+ SOFTWARE.
277
+
278
+ ---
279
+
252
280
  ## TypeScript helper code
253
281
 
254
282
  The bundled browser entry retains TypeScript helper code and its complete upstream notice:
@@ -267,11 +295,11 @@ OF THIS SOFTWARE.
267
295
 
268
296
  ---
269
297
 
270
- ## whatwg-url 15.1.0 and tr46 6.0.0
298
+ ## whatwg-url 17.2.0 and tr46 7.0.0
271
299
 
272
300
  The native entry embeds the low-level `whatwg-url` parser and `tr46` IDNA processing. During the
273
- native build only, the parser's relative encoding module is replaced by Tileflow's private UTF-8
274
- codec. No upstream package is patched on disk and no global codec is installed. Both components
301
+ native build only, the parser's encoding and query-encoding imports use Tileflow's private UTF-8
302
+ codec; the legacy encoding bootstrap is replaced by that side-effect-free module. No upstream package is patched on disk and no global codec is installed. Both components
275
303
  are MIT-licensed:
276
304
 
277
305
  The MIT License (MIT)
@@ -348,3 +376,69 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
348
376
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
349
377
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
350
378
  SOFTWARE.
379
+
380
+ ---
381
+
382
+ ## MapLibre GL JS 6.13.0 extrusion lighting
383
+
384
+ The style-lighting shader in `buildings-3d-shaders.ts` adapts the native fill-extrusion
385
+ lighting equations. The applicable upstream notices follow.
386
+
387
+ Copyright (c) 2023, MapLibre contributors
388
+
389
+ All rights reserved.
390
+
391
+ Redistribution and use in source and binary forms, with or without modification,
392
+ are permitted provided that the following conditions are met:
393
+
394
+ * Redistributions of source code must retain the above copyright notice,
395
+ this list of conditions and the following disclaimer.
396
+ * Redistributions in binary form must reproduce the above copyright notice,
397
+ this list of conditions and the following disclaimer in the documentation
398
+ and/or other materials provided with the distribution.
399
+ * Neither the name of MapLibre GL JS nor the names of its contributors
400
+ may be used to endorse or promote products derived from this software
401
+ without specific prior written permission.
402
+
403
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
404
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
405
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
406
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
407
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
408
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
409
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
410
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
411
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
412
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
413
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
414
+
415
+ ---
416
+
417
+ Contains code from mapbox-gl-js v1.13 and earlier
418
+
419
+ Version v1.13 of mapbox-gl-js and earlier are licensed under a BSD-3-Clause license
420
+
421
+ Copyright (c) 2020, Mapbox
422
+ Redistribution and use in source and binary forms, with or without modification,
423
+ are permitted provided that the following conditions are met:
424
+
425
+ - Redistributions of source code must retain the above copyright notice,
426
+ this list of conditions and the following disclaimer.
427
+ - Redistributions in binary form must reproduce the above copyright notice,
428
+ this list of conditions and the following disclaimer in the documentation
429
+ and/or other materials provided with the distribution.
430
+ - Neither the name of Mapbox GL JS nor the names of its contributors
431
+ may be used to endorse or promote products derived from this software
432
+ without specific prior written permission.
433
+
434
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
435
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
436
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
437
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
438
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
439
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
440
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
441
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
442
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
443
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
444
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.