@react-x11/components 0.3.0 → 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 (314) hide show
  1. package/README.md +131 -4
  2. package/dist/charts/components.d.ts +3 -1
  3. package/dist/charts/components.d.ts.map +1 -1
  4. package/dist/charts/components.js +8 -4
  5. package/dist/charts/components.js.map +1 -1
  6. package/dist/charts/node.d.ts +13 -6
  7. package/dist/charts/node.d.ts.map +1 -1
  8. package/dist/charts/node.js +75 -24
  9. package/dist/charts/node.js.map +1 -1
  10. package/dist/charts/render.d.ts +4 -0
  11. package/dist/charts/render.d.ts.map +1 -1
  12. package/dist/charts/render.js +11 -6
  13. package/dist/charts/render.js.map +1 -1
  14. package/dist/code-editor/node.d.ts +47 -16
  15. package/dist/code-editor/node.d.ts.map +1 -1
  16. package/dist/code-editor/node.js +121 -51
  17. package/dist/code-editor/node.js.map +1 -1
  18. package/dist/flow/draw.d.ts +19 -1
  19. package/dist/flow/draw.d.ts.map +1 -1
  20. package/dist/flow/draw.js +64 -35
  21. package/dist/flow/draw.js.map +1 -1
  22. package/dist/flow/index.d.ts.map +1 -1
  23. package/dist/flow/index.js +24 -8
  24. package/dist/flow/index.js.map +1 -1
  25. package/dist/flow/model.d.ts +4 -2
  26. package/dist/flow/model.d.ts.map +1 -1
  27. package/dist/flow/model.js +4 -2
  28. package/dist/flow/model.js.map +1 -1
  29. package/dist/flow/node.d.ts +40 -9
  30. package/dist/flow/node.d.ts.map +1 -1
  31. package/dist/flow/node.js +142 -53
  32. package/dist/flow/node.js.map +1 -1
  33. package/dist/flow/types.d.ts +46 -21
  34. package/dist/flow/types.d.ts.map +1 -1
  35. package/dist/formula/index.d.ts +4 -2
  36. package/dist/formula/index.d.ts.map +1 -1
  37. package/dist/formula/index.js.map +1 -1
  38. package/dist/formula/node.d.ts +5 -1
  39. package/dist/formula/node.d.ts.map +1 -1
  40. package/dist/formula/node.js +19 -3
  41. package/dist/formula/node.js.map +1 -1
  42. package/dist/html/controls.d.ts +4 -1
  43. package/dist/html/controls.d.ts.map +1 -1
  44. package/dist/html/controls.js.map +1 -1
  45. package/dist/html/css/cascade.d.ts +11 -5
  46. package/dist/html/css/cascade.d.ts.map +1 -1
  47. package/dist/html/css/cascade.js +18 -8
  48. package/dist/html/css/cascade.js.map +1 -1
  49. package/dist/html/css/parse.d.ts +15 -10
  50. package/dist/html/css/parse.d.ts.map +1 -1
  51. package/dist/html/css/parse.js +41 -16
  52. package/dist/html/css/parse.js.map +1 -1
  53. package/dist/html/css/style.d.ts +3 -0
  54. package/dist/html/css/style.d.ts.map +1 -1
  55. package/dist/html/css/style.js +3 -1
  56. package/dist/html/css/style.js.map +1 -1
  57. package/dist/html/css/values.d.ts +14 -1
  58. package/dist/html/css/values.d.ts.map +1 -1
  59. package/dist/html/css/values.js +11 -8
  60. package/dist/html/css/values.js.map +1 -1
  61. package/dist/html/index.d.ts.map +1 -1
  62. package/dist/html/index.js +1 -0
  63. package/dist/html/index.js.map +1 -1
  64. package/dist/html/layout/boxes.d.ts +12 -5
  65. package/dist/html/layout/boxes.d.ts.map +1 -1
  66. package/dist/html/layout/boxes.js +7 -4
  67. package/dist/html/layout/boxes.js.map +1 -1
  68. package/dist/html/layout/inline.d.ts.map +1 -1
  69. package/dist/html/layout/inline.js +22 -1
  70. package/dist/html/layout/inline.js.map +1 -1
  71. package/dist/html/node.d.ts +22 -8
  72. package/dist/html/node.d.ts.map +1 -1
  73. package/dist/html/node.js +97 -15
  74. package/dist/html/node.js.map +1 -1
  75. package/dist/html/paint.d.ts +3 -0
  76. package/dist/html/paint.d.ts.map +1 -1
  77. package/dist/html/paint.js +2 -2
  78. package/dist/html/paint.js.map +1 -1
  79. package/dist/index.d.ts +11 -1
  80. package/dist/index.d.ts.map +1 -1
  81. package/dist/index.js +26 -0
  82. package/dist/index.js.map +1 -1
  83. package/dist/maps/clip.d.ts +43 -0
  84. package/dist/maps/clip.d.ts.map +1 -0
  85. package/dist/maps/clip.js +171 -0
  86. package/dist/maps/clip.js.map +1 -0
  87. package/dist/maps/gzip.d.ts +15 -0
  88. package/dist/maps/gzip.d.ts.map +1 -0
  89. package/dist/maps/gzip.js +56 -0
  90. package/dist/maps/gzip.js.map +1 -0
  91. package/dist/maps/index.d.ts +55 -0
  92. package/dist/maps/index.d.ts.map +1 -0
  93. package/dist/maps/index.js +141 -0
  94. package/dist/maps/index.js.map +1 -0
  95. package/dist/maps/labels.d.ts +123 -0
  96. package/dist/maps/labels.d.ts.map +1 -0
  97. package/dist/maps/labels.js +323 -0
  98. package/dist/maps/labels.js.map +1 -0
  99. package/dist/maps/mvt.d.ts +244 -0
  100. package/dist/maps/mvt.d.ts.map +1 -0
  101. package/dist/maps/mvt.js +820 -0
  102. package/dist/maps/mvt.js.map +1 -0
  103. package/dist/maps/node.d.ts +278 -0
  104. package/dist/maps/node.d.ts.map +1 -0
  105. package/dist/maps/node.js +1459 -0
  106. package/dist/maps/node.js.map +1 -0
  107. package/dist/maps/overlay.d.ts +157 -0
  108. package/dist/maps/overlay.d.ts.map +1 -0
  109. package/dist/maps/overlay.js +472 -0
  110. package/dist/maps/overlay.js.map +1 -0
  111. package/dist/maps/paint.d.ts +226 -0
  112. package/dist/maps/paint.d.ts.map +1 -0
  113. package/dist/maps/paint.js +705 -0
  114. package/dist/maps/paint.js.map +1 -0
  115. package/dist/maps/proj.d.ts +281 -0
  116. package/dist/maps/proj.d.ts.map +1 -0
  117. package/dist/maps/proj.js +451 -0
  118. package/dist/maps/proj.js.map +1 -0
  119. package/dist/maps/sources.d.ts +256 -0
  120. package/dist/maps/sources.d.ts.map +1 -0
  121. package/dist/maps/sources.js +210 -0
  122. package/dist/maps/sources.js.map +1 -0
  123. package/dist/maps/style.d.ts +141 -0
  124. package/dist/maps/style.d.ts.map +1 -0
  125. package/dist/maps/style.js +147 -0
  126. package/dist/maps/style.js.map +1 -0
  127. package/dist/maps/styles.d.ts +82 -0
  128. package/dist/maps/styles.d.ts.map +1 -0
  129. package/dist/maps/styles.js +898 -0
  130. package/dist/maps/styles.js.map +1 -0
  131. package/dist/maps/tiles.d.ts +283 -0
  132. package/dist/maps/tiles.d.ts.map +1 -0
  133. package/dist/maps/tiles.js +469 -0
  134. package/dist/maps/tiles.js.map +1 -0
  135. package/dist/maps/types.d.ts +244 -0
  136. package/dist/maps/types.d.ts.map +1 -0
  137. package/dist/maps/types.js +2 -0
  138. package/dist/maps/types.js.map +1 -0
  139. package/dist/qml/containers.d.ts +3 -0
  140. package/dist/qml/containers.d.ts.map +1 -0
  141. package/dist/qml/containers.js +331 -0
  142. package/dist/qml/containers.js.map +1 -0
  143. package/dist/qml/controls.d.ts +12 -0
  144. package/dist/qml/controls.d.ts.map +1 -0
  145. package/dist/qml/controls.js +21 -0
  146. package/dist/qml/controls.js.map +1 -0
  147. package/dist/qml/globals.d.ts +6 -0
  148. package/dist/qml/globals.d.ts.map +1 -0
  149. package/dist/qml/globals.js +25 -0
  150. package/dist/qml/globals.js.map +1 -0
  151. package/dist/qml/index.d.ts +15 -0
  152. package/dist/qml/index.d.ts.map +1 -0
  153. package/dist/qml/index.js +25 -0
  154. package/dist/qml/index.js.map +1 -0
  155. package/dist/qml/interaction.d.ts +12 -0
  156. package/dist/qml/interaction.d.ts.map +1 -0
  157. package/dist/qml/interaction.js +246 -0
  158. package/dist/qml/interaction.js.map +1 -0
  159. package/dist/qml/ir.d.ts +106 -0
  160. package/dist/qml/ir.d.ts.map +1 -0
  161. package/dist/qml/ir.js +7 -0
  162. package/dist/qml/ir.js.map +1 -0
  163. package/dist/qml/layouts.d.ts +3 -0
  164. package/dist/qml/layouts.d.ts.map +1 -0
  165. package/dist/qml/layouts.js +122 -0
  166. package/dist/qml/layouts.js.map +1 -0
  167. package/dist/qml/models.d.ts +14 -0
  168. package/dist/qml/models.d.ts.map +1 -0
  169. package/dist/qml/models.js +80 -0
  170. package/dist/qml/models.js.map +1 -0
  171. package/dist/qml/objects.d.ts +228 -0
  172. package/dist/qml/objects.d.ts.map +1 -0
  173. package/dist/qml/objects.js +1103 -0
  174. package/dist/qml/objects.js.map +1 -0
  175. package/dist/qml/parse.d.ts +10 -0
  176. package/dist/qml/parse.d.ts.map +1 -0
  177. package/dist/qml/parse.js +607 -0
  178. package/dist/qml/parse.js.map +1 -0
  179. package/dist/qml/qtquick.d.ts +7 -0
  180. package/dist/qml/qtquick.d.ts.map +1 -0
  181. package/dist/qml/qtquick.js +347 -0
  182. package/dist/qml/qtquick.js.map +1 -0
  183. package/dist/qml/react.d.ts +83 -0
  184. package/dist/qml/react.d.ts.map +1 -0
  185. package/dist/qml/react.js +323 -0
  186. package/dist/qml/react.js.map +1 -0
  187. package/dist/qml/resolver.d.ts +38 -0
  188. package/dist/qml/resolver.d.ts.map +1 -0
  189. package/dist/qml/resolver.js +64 -0
  190. package/dist/qml/resolver.js.map +1 -0
  191. package/dist/qml/slots.d.ts +65 -0
  192. package/dist/qml/slots.d.ts.map +1 -0
  193. package/dist/qml/slots.js +230 -0
  194. package/dist/qml/slots.js.map +1 -0
  195. package/dist/qml/states.d.ts +5 -0
  196. package/dist/qml/states.d.ts.map +1 -0
  197. package/dist/qml/states.js +276 -0
  198. package/dist/qml/states.js.map +1 -0
  199. package/dist/qml/view-utils.d.ts +42 -0
  200. package/dist/qml/view-utils.d.ts.map +1 -0
  201. package/dist/qml/view-utils.js +121 -0
  202. package/dist/qml/view-utils.js.map +1 -0
  203. package/dist/reorder/hx.d.ts +18 -0
  204. package/dist/reorder/hx.d.ts.map +1 -0
  205. package/dist/reorder/hx.js +10 -0
  206. package/dist/reorder/hx.js.map +1 -0
  207. package/dist/reorder/index.d.ts +314 -0
  208. package/dist/reorder/index.d.ts.map +1 -0
  209. package/dist/reorder/index.js +1539 -0
  210. package/dist/reorder/index.js.map +1 -0
  211. package/dist/reorder/model.d.ts +107 -0
  212. package/dist/reorder/model.d.ts.map +1 -0
  213. package/dist/reorder/model.js +162 -0
  214. package/dist/reorder/model.js.map +1 -0
  215. package/dist/richtext/node.d.ts +15 -5
  216. package/dist/richtext/node.d.ts.map +1 -1
  217. package/dist/richtext/node.js +40 -11
  218. package/dist/richtext/node.js.map +1 -1
  219. package/dist/richtext/runs.d.ts +35 -13
  220. package/dist/richtext/runs.d.ts.map +1 -1
  221. package/dist/richtext/runs.js +83 -27
  222. package/dist/richtext/runs.js.map +1 -1
  223. package/dist/tabs/hx.d.ts +18 -0
  224. package/dist/tabs/hx.d.ts.map +1 -0
  225. package/dist/tabs/hx.js +10 -0
  226. package/dist/tabs/hx.js.map +1 -0
  227. package/dist/tabs/index.d.ts +160 -0
  228. package/dist/tabs/index.d.ts.map +1 -0
  229. package/dist/tabs/index.js +1265 -0
  230. package/dist/tabs/index.js.map +1 -0
  231. package/dist/terminal/vt/fonts.d.ts +45 -15
  232. package/dist/terminal/vt/fonts.d.ts.map +1 -1
  233. package/dist/terminal/vt/fonts.js +89 -19
  234. package/dist/terminal/vt/fonts.js.map +1 -1
  235. package/dist/terminal/vt/index.d.ts +1 -1
  236. package/dist/terminal/vt/index.d.ts.map +1 -1
  237. package/dist/terminal/vt/index.js +3 -3
  238. package/dist/terminal/vt/index.js.map +1 -1
  239. package/dist/terminal/vt/node.d.ts +42 -0
  240. package/dist/terminal/vt/node.d.ts.map +1 -1
  241. package/dist/terminal/vt/node.js +95 -11
  242. package/dist/terminal/vt/node.js.map +1 -1
  243. package/dist/terminal/vt/pty.d.ts +16 -0
  244. package/dist/terminal/vt/pty.d.ts.map +1 -1
  245. package/dist/terminal/vt/pty.js +186 -0
  246. package/dist/terminal/vt/pty.js.map +1 -1
  247. package/dist/terminal/vt/renderer.d.ts.map +1 -1
  248. package/dist/terminal/vt/renderer.js +13 -3
  249. package/dist/terminal/vt/renderer.js.map +1 -1
  250. package/package.json +23 -3
  251. package/src/charts/components.ts +14 -7
  252. package/src/charts/node.ts +81 -26
  253. package/src/charts/render.ts +16 -6
  254. package/src/code-editor/node.ts +147 -53
  255. package/src/flow/draw.ts +104 -35
  256. package/src/flow/index.ts +33 -13
  257. package/src/flow/model.ts +4 -2
  258. package/src/flow/node.ts +158 -59
  259. package/src/flow/types.ts +46 -21
  260. package/src/formula/index.ts +4 -2
  261. package/src/formula/node.ts +24 -5
  262. package/src/html/controls.ts +4 -1
  263. package/src/html/css/cascade.ts +18 -7
  264. package/src/html/css/parse.ts +46 -21
  265. package/src/html/css/style.ts +6 -1
  266. package/src/html/css/values.ts +25 -9
  267. package/src/html/index.ts +1 -0
  268. package/src/html/layout/boxes.ts +19 -9
  269. package/src/html/layout/inline.ts +23 -1
  270. package/src/html/node.ts +110 -17
  271. package/src/html/paint.ts +17 -2
  272. package/src/index.ts +142 -0
  273. package/src/maps/clip.ts +184 -0
  274. package/src/maps/gzip.ts +66 -0
  275. package/src/maps/index.ts +316 -0
  276. package/src/maps/labels.ts +442 -0
  277. package/src/maps/mvt.ts +857 -0
  278. package/src/maps/node.ts +1819 -0
  279. package/src/maps/overlay.ts +639 -0
  280. package/src/maps/paint.ts +978 -0
  281. package/src/maps/proj.ts +641 -0
  282. package/src/maps/sources.ts +425 -0
  283. package/src/maps/style.ts +309 -0
  284. package/src/maps/styles.ts +1040 -0
  285. package/src/maps/tiles.ts +676 -0
  286. package/src/maps/types.ts +260 -0
  287. package/src/qml/containers.tsx +380 -0
  288. package/src/qml/controls.tsx +47 -0
  289. package/src/qml/globals.ts +33 -0
  290. package/src/qml/index.ts +67 -0
  291. package/src/qml/interaction.tsx +317 -0
  292. package/src/qml/ir.ts +80 -0
  293. package/src/qml/layouts.tsx +141 -0
  294. package/src/qml/models.ts +101 -0
  295. package/src/qml/objects.ts +1431 -0
  296. package/src/qml/parse.ts +624 -0
  297. package/src/qml/qtquick.tsx +413 -0
  298. package/src/qml/react.tsx +454 -0
  299. package/src/qml/resolver.ts +99 -0
  300. package/src/qml/slots.ts +249 -0
  301. package/src/qml/states.ts +318 -0
  302. package/src/qml/view-utils.ts +140 -0
  303. package/src/reorder/hx.ts +31 -0
  304. package/src/reorder/index.ts +2223 -0
  305. package/src/reorder/model.ts +232 -0
  306. package/src/richtext/node.ts +49 -14
  307. package/src/richtext/runs.ts +115 -30
  308. package/src/tabs/hx.ts +31 -0
  309. package/src/tabs/index.ts +1686 -0
  310. package/src/terminal/vt/fonts.ts +128 -36
  311. package/src/terminal/vt/index.ts +4 -2
  312. package/src/terminal/vt/node.ts +105 -12
  313. package/src/terminal/vt/pty.ts +243 -0
  314. package/src/terminal/vt/renderer.ts +13 -3
@@ -0,0 +1,147 @@
1
+ import { GeomType } from './mvt.js';
2
+ // --- zoom ramps ------------------------------------------------------------
3
+ function isStops(value) {
4
+ return (typeof value === 'object' &&
5
+ value !== null &&
6
+ Array.isArray(value.stops));
7
+ }
8
+ /** A {@link Zoomed} at one zoom. Numbers interpolate, everything else
9
+ * steps. */
10
+ export function resolveZoomed(value, zoom) {
11
+ if (!isStops(value))
12
+ return value;
13
+ const stops = value.stops;
14
+ if (stops.length === 0)
15
+ throw new Error('a zoom ramp needs a stop');
16
+ if (zoom <= stops[0][0])
17
+ return stops[0][1];
18
+ const last = stops[stops.length - 1];
19
+ if (zoom >= last[0])
20
+ return last[1];
21
+ let i = 1;
22
+ while (i < stops.length && stops[i][0] <= zoom)
23
+ i++;
24
+ const [z0, v0] = stops[i - 1];
25
+ const [z1, v1] = stops[i];
26
+ if (typeof v0 !== 'number' || typeof v1 !== 'number')
27
+ return v0;
28
+ const t = z1 === z0 ? 0 : (zoom - z0) / (z1 - z0);
29
+ return (v0 + (v1 - v0) * t);
30
+ }
31
+ const ALWAYS = () => true;
32
+ /**
33
+ * Compile a filter to a closure, once.
34
+ *
35
+ * The point of compiling rather than interpreting: the operator dispatch,
36
+ * the `in`-set construction and the geometry-type mapping all happen here,
37
+ * per layer, instead of twelve thousand times per tile. A `['in', 'kind',
38
+ * …]` with forty values becomes a `Set` lookup rather than a scan.
39
+ */
40
+ export function compileFilter(filter) {
41
+ if (!filter)
42
+ return ALWAYS;
43
+ const op = filter[0];
44
+ switch (op) {
45
+ case 'all': {
46
+ const parts = filter.slice(1).map(compileFilter);
47
+ if (parts.length === 0)
48
+ return ALWAYS;
49
+ if (parts.length === 1)
50
+ return parts[0];
51
+ return (f) => {
52
+ for (const part of parts)
53
+ if (!part(f))
54
+ return false;
55
+ return true;
56
+ };
57
+ }
58
+ case 'any': {
59
+ const parts = filter.slice(1).map(compileFilter);
60
+ if (parts.length === 0)
61
+ return ALWAYS;
62
+ return (f) => {
63
+ for (const part of parts)
64
+ if (part(f))
65
+ return true;
66
+ return false;
67
+ };
68
+ }
69
+ case 'none': {
70
+ const parts = filter.slice(1).map(compileFilter);
71
+ return (f) => {
72
+ for (const part of parts)
73
+ if (part(f))
74
+ return false;
75
+ return true;
76
+ };
77
+ }
78
+ case 'has': {
79
+ const key = filter[1];
80
+ return (f) => f.get(key) !== undefined;
81
+ }
82
+ case '!has': {
83
+ const key = filter[1];
84
+ return (f) => f.get(key) === undefined;
85
+ }
86
+ case '==': {
87
+ const [, key, want] = filter;
88
+ return (f) => f.get(key) === want;
89
+ }
90
+ case '!=': {
91
+ const [, key, want] = filter;
92
+ return (f) => f.get(key) !== want;
93
+ }
94
+ case '<':
95
+ case '<=':
96
+ case '>':
97
+ case '>=': {
98
+ const [, key, want] = filter;
99
+ return (f) => {
100
+ const value = f.get(key);
101
+ // A missing tag compares false rather than as zero: `['>' , 'pop',
102
+ // 0]` must not select every feature that has no population.
103
+ if (typeof value !== 'number')
104
+ return false;
105
+ return op === '<'
106
+ ? value < want
107
+ : op === '<='
108
+ ? value <= want
109
+ : op === '>'
110
+ ? value > want
111
+ : value >= want;
112
+ };
113
+ }
114
+ case 'in': {
115
+ const key = filter[1];
116
+ const set = new Set(filter.slice(2));
117
+ return (f) => {
118
+ const value = f.get(key);
119
+ return value !== undefined && set.has(value);
120
+ };
121
+ }
122
+ case '!in': {
123
+ const key = filter[1];
124
+ const set = new Set(filter.slice(2));
125
+ return (f) => {
126
+ const value = f.get(key);
127
+ return value === undefined || !set.has(value);
128
+ };
129
+ }
130
+ case 'geometry': {
131
+ const want = filter[1] === 'point'
132
+ ? GeomType.Point
133
+ : filter[1] === 'line'
134
+ ? GeomType.LineString
135
+ : GeomType.Polygon;
136
+ return (f) => f.type === want;
137
+ }
138
+ default: {
139
+ // An unknown operator draws nothing rather than everything: a typo in
140
+ // a filter that quietly selected the whole layer would look like the
141
+ // style working.
142
+ const unknown = op;
143
+ throw new Error(`unknown map filter operator ${String(unknown)}`);
144
+ }
145
+ }
146
+ }
147
+ //# sourceMappingURL=style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.js","sourceRoot":"","sources":["../../src/maps/style.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import type { MapStyle } from './style.js';
2
+ /** One palette. Every colour a {@link shortbreadStyle} layer uses comes
3
+ * from here, so a third palette is a literal rather than a fork. */
4
+ export interface MapPalette {
5
+ land: string;
6
+ ocean: string;
7
+ water: string;
8
+ green: string;
9
+ built: string;
10
+ site: string;
11
+ building: string;
12
+ buildingEdge: string;
13
+ motorway: string;
14
+ motorwayCasing: string;
15
+ trunk: string;
16
+ primary: string;
17
+ secondary: string;
18
+ minor: string;
19
+ minorCasing: string;
20
+ path: string;
21
+ rail: string;
22
+ boundary: string;
23
+ pier: string;
24
+ text: string;
25
+ textMinor: string;
26
+ halo: string;
27
+ }
28
+ /** OSM Carto's hues, near enough that a user's eye reads the map as the one
29
+ * they already know. */
30
+ export declare const LIGHT_PALETTE: MapPalette;
31
+ /** The dark counterpart. Desaturated rather than inverted: an inverted map
32
+ * puts white water under dark land, which reads as a negative. */
33
+ export declare const DARK_PALETTE: MapPalette;
34
+ export interface ShortbreadStyleOptions {
35
+ /** `false` (the default) for the light palette. */
36
+ dark?: boolean;
37
+ /** Swap individual colours without forking the layer list. */
38
+ palette?: Partial<MapPalette>;
39
+ /**
40
+ * Which name tag labels read.
41
+ *
42
+ * Shortbread carries `name` (the local name) plus `name_<lang>` for the
43
+ * languages a feature has one in. `'name'` is the honest default —
44
+ * Tokyo's streets are labelled in Japanese on a Japanese map — and an
45
+ * application that knows its user's locale passes `name_en`, `name_de`
46
+ * and so on. A missing translation falls back to `name`.
47
+ */
48
+ nameField?: string;
49
+ /** Leave the label layers out — for a map an application labels itself,
50
+ * or a background under a heavy data overlay. */
51
+ labels?: boolean;
52
+ /** Leave building footprints out. They are the densest polygon layer at
53
+ * high zoom and the first thing to drop on a slow machine. */
54
+ buildings?: boolean;
55
+ }
56
+ /**
57
+ * The default style for Shortbread tiles.
58
+ *
59
+ * Twenty-six layers, in paint order. The order is the cartography: sea,
60
+ * then landuse, then water, then sites and buildings, then road *casings*
61
+ * as one pass and road *fills* as another — which is what makes a junction
62
+ * look like a junction rather than two roads crossing — then rail,
63
+ * boundaries, and labels last.
64
+ */
65
+ export declare function shortbreadStyle(options?: ShortbreadStyleOptions): MapStyle;
66
+ export interface OpenMapTilesStyleOptions extends ShortbreadStyleOptions {
67
+ }
68
+ /**
69
+ * The same cartography over the **OpenMapTiles** schema.
70
+ *
71
+ * OpenMapTiles is the other open schema, and between them the two cover
72
+ * nearly every provider worth pointing this at: Shortbread is what
73
+ * OpenStreetMap's own server and VersaTiles cut, OpenMapTiles is what
74
+ * MapTiler, Stadia, Geoapify, OpenFreeMap and most self-hosted planets cut.
75
+ *
76
+ * Deliberately the same palette, the same layer ids where they mean the
77
+ * same thing, and the same casing-then-fill ordering, so switching a source
78
+ * between the two schemas changes which style you pass and nothing else
79
+ * about how the map looks.
80
+ */
81
+ export declare function openMapTilesStyle(options?: OpenMapTilesStyleOptions): MapStyle;
82
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/maps/styles.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,QAAQ,EAAyB,MAAM,YAAY,CAAC;AAgElE;qEACqE;AACrE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;yBACyB;AACzB,eAAO,MAAM,aAAa,EAAE,UAuB3B,CAAC;AAEF;mEACmE;AACnE,eAAO,MAAM,YAAY,EAAE,UAuB1B,CAAC;AAOF,MAAM,WAAW,sBAAsB;IACrC,mDAAmD;IACnD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8DAA8D;IAC9D,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9B;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;sDACkD;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;mEAC+D;IAC/D,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,OAAO,GAAE,sBAA2B,GACnC,QAAQ,CAsZV;AAiDD,MAAM,WAAW,wBAAyB,SAAQ,sBAAsB;CAAG;AAE3E;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE,wBAA6B,GACrC,QAAQ,CA0WV"}