gtfs-garage-web 0.0.3 → 0.2.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.
package/README.md CHANGED
@@ -9,19 +9,12 @@ be mounted in another application.
9
9
 
10
10
  ```sh
11
11
  npm install gtfs-garage-web
12
- ```
13
-
14
- The map is a separate entry point, and MapLibre an **optional** peer. Install
15
- it only if you want one:
16
-
17
- ```sh
18
12
  npm install maplibre-gl # only with the map
19
13
  ```
20
14
 
21
- Nothing in the main entry mentions MapLibre, so a viewer without a map neither
22
- downloads it nor needs it installed to build. That is why the map arrives as an
23
- import rather than a flag: a bundler resolves `import()` specifiers whether or
24
- not the branch runs, so a flag would still have made MapLibre mandatory.
15
+ ESM only — a bundler or native ES modules, no `<script>` drop-in. MapLibre is an
16
+ **optional** peer behind its own entry point, so a viewer without a map neither
17
+ downloads it nor needs it installed to build.
25
18
 
26
19
  ## React
27
20
 
@@ -35,14 +28,10 @@ import "maplibre-gl/dist/maplibre-gl.css";
35
28
 
36
29
  export default function Feed() {
37
30
  return <GtfsGarage map={mapPart} baseUrl="https://example.org" style={{ height: "80vh" }} />;
38
- }```
39
-
40
- Drop the two `map` imports and the MapLibre stylesheet for a table-only viewer:
41
-
42
- ```tsx
43
- <GtfsGarage baseUrl="https://example.org" style={{ height: "80vh" }} />
31
+ }
44
32
  ```
45
33
 
34
+ Drop the two `map` imports and the MapLibre stylesheet for a table-only viewer.
46
35
  `"use client"` is required: the viewer builds DOM and cannot render on a server.
47
36
 
48
37
  **Give the container a height.** The viewer fills whatever box it is given, and
@@ -62,12 +51,25 @@ const viewer = await mount(document.querySelector("#feed")!, {
62
51
  viewer.destroy(); // releases the map, the history subscription and the markup
63
52
  ```
64
53
 
54
+ ## A dataset that is still being prepared
55
+
56
+ `GtfsGarageDataset` waits for one, and draws the being-prepared, not-prepared
57
+ and failed states itself — so no host writes a progress bar:
58
+
59
+ ```tsx
60
+ import { GtfsGarageDataset } from "gtfs-garage-web/react";
61
+
62
+ <GtfsGarageDataset dataset={provider} description="mdb-1210" style={{ height: "80vh" }} />
63
+ ```
64
+
65
65
  ## Where the data comes from
66
66
 
67
67
  By default the viewer talks to a GTFS Garage server at `baseUrl`. To drive it
68
- from your own backend instead, pass a `source` implementing `ViewerSource` —
69
- `GtfsSource` for the table, plus `geojsonStream` for the map, which draws a
70
- large feed's shapes as they arrive rather than all at the end.
68
+ from your own backend, either serve the same API — specified in
69
+ [`docs/GtfsGarageAPI.yaml`](https://github.com/MobilityData/gtfs-garage/blob/main/docs/GtfsGarageAPI.yaml)
70
+ — or pass a `source` implementing `ViewerSource`, which is the escape hatch for
71
+ a backend of any other shape, for authentication, or for reading Parquet in the
72
+ browser with no server at all.
71
73
 
72
74
  ## Styling
73
75
 
@@ -81,6 +83,14 @@ page. The design tokens are declared on that class and are the theming API:
81
83
  }
82
84
  ```
83
85
 
86
+ ## Documentation
87
+
88
+ **[Embedding the viewer](https://github.com/MobilityData/gtfs-garage/blob/main/docs/INTEGRATION.md)**
89
+ — every option, the three ways to supply data, what your server has to provide
90
+ (including CORS and authentication, which the API document deliberately leaves
91
+ to you), the dataset-preparation lifecycle, and a worked adapter for driving the
92
+ viewer from an API of your own.
93
+
84
94
  ## Licence
85
95
 
86
96
  Apache-2.0
package/dist/dataset.js CHANGED
@@ -1,4 +1,4 @@
1
- import { m as h, p as L } from "./mount-CHJb5mxA.js";
1
+ import { m as h, p as L } from "./mount-HIxPWN03.js";
2
2
  function P(e, s) {
3
3
  const { description: a, canPrepare: n, asked: c, phrase: f } = s;
4
4
  switch (e.state) {
@@ -1 +1 @@
1
- .gtfs-viewer{--bg: #f7f7f8;--panel: #ffffff;--border: #dcdde0;--text: #1c1e21;--muted: #6b7280;--accent: #2563eb;--accent-bg: #eef2ff;--chip-bg: #eef1f5;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-family:var(--font);color:var(--text);background:var(--bg);display:flex;flex-direction:column;height:100%;min-height:0;position:relative}.gtfs-viewer,.gtfs-viewer *{box-sizing:border-box}.gtfs-viewer header{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--border);flex-shrink:0}.gtfs-viewer header h1{font-size:16px;margin:0}.gtfs-viewer [data-el=source-label]{color:var(--muted);font-size:13px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gtfs-viewer button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--panel);border-radius:6px;padding:6px 10px}.gtfs-viewer button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.gtfs-viewer button:disabled{opacity:.45;cursor:default}.gtfs-viewer button:hover{filter:brightness(.97)}.gtfs-viewer [data-el=layout]{flex:1;display:flex;min-height:0}.gtfs-viewer [data-el=sidebar]{width:210px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);overflow-y:auto;padding:8px}.gtfs-viewer .table-tab{display:flex;justify-content:space-between;padding:7px 10px;border-radius:6px;cursor:pointer;font-size:13px}.gtfs-viewer .table-tab:hover{background:var(--bg)}.gtfs-viewer .table-tab.active{background:var(--accent-bg);color:var(--accent);font-weight:600}.gtfs-viewer .table-tab .count{color:var(--muted);font-weight:400}.gtfs-viewer .table-tab.active .count{color:var(--accent)}.gtfs-viewer .table-tab.missing{color:var(--muted);cursor:default;font-style:italic}.gtfs-viewer .table-tab.missing:hover{background:none}.gtfs-viewer .table-tab.forbidden .count{font-style:italic}.gtfs-viewer [data-el=content]{flex:1;display:flex;min-width:0;min-height:0}.gtfs-viewer [data-el=table-pane]{flex:1.3;display:flex;flex-direction:column;min-width:0;border-right:1px solid var(--border)}.gtfs-viewer [data-el=map-pane]{flex:1;min-width:0;position:relative}.gtfs-viewer [data-el=map]{position:absolute;top:0;right:0;bottom:0;left:0}.gtfs-viewer [data-el=filter-bar]{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px 10px;border-bottom:1px solid var(--border);background:var(--panel)}.gtfs-viewer .raw-toggle{display:flex;align-items:center;gap:5px;margin-left:auto;padding:0 4px;font-size:12px;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none}.gtfs-viewer .raw-toggle input{cursor:pointer}.gtfs-viewer .chip{display:flex;align-items:center;gap:6px;background:var(--chip-bg);border-radius:999px;padding:4px 10px;font-size:12px}.gtfs-viewer .chip button{border:none;background:none;padding:0;color:var(--muted);font-size:13px;line-height:1}.gtfs-viewer [data-el=add-filter-form]{display:none;gap:6px;align-items:center;padding:8px 10px;border-bottom:1px solid var(--border);background:var(--bg);font-size:13px}.gtfs-viewer [data-el=add-filter-form].open{display:flex}.gtfs-viewer [data-el=add-filter-form] select,.gtfs-viewer [data-el=add-filter-form] input{font:inherit;padding:4px 6px;border:1px solid var(--border);border-radius:4px}.gtfs-viewer [data-el=dataset-status]{flex:1;display:flex;align-items:center;justify-content:center;padding:24px}.gtfs-viewer [data-el=dataset-status] .is-error{color:#b42318}.gtfs-viewer [data-el=table-scroll]{flex:1;overflow:auto}.gtfs-viewer table{border-collapse:collapse;width:100%;font-size:12.5px}.gtfs-viewer th,.gtfs-viewer td{border-bottom:1px solid var(--border);padding:5px 10px;text-align:left;white-space:nowrap}.gtfs-viewer th{position:sticky;top:0;background:var(--panel);z-index:1}.gtfs-viewer tr:hover td{background:#fafafa}.gtfs-viewer a.fk-link{color:var(--accent);text-decoration:none}.gtfs-viewer a.fk-link:hover{text-decoration:underline}.gtfs-viewer .related-row{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}.gtfs-viewer .related-btn{font-size:10.5px;padding:1px 6px;border-radius:999px;background:var(--chip-bg);border:none;color:var(--muted)}.gtfs-viewer .related-btn:hover{background:var(--accent-bg);color:var(--accent)}.gtfs-viewer [data-el=pager]{display:flex;align-items:center;gap:8px;padding:6px 10px;border-top:1px solid var(--border);background:var(--panel);font-size:12.5px}.gtfs-viewer [data-el=pager] .spacer{flex:1}.gtfs-viewer [data-el=load-overlay]{position:fixed;top:0;right:0;bottom:0;left:0;background:#14141973;display:flex;align-items:center;justify-content:center;z-index:50}.gtfs-viewer [data-el=load-overlay].hidden{display:none}.gtfs-viewer [data-el=load-panel]{background:var(--panel);border-radius:10px;padding:24px;width:420px;max-width:90vw}.gtfs-viewer [data-el=load-panel] h2{margin-top:0;font-size:16px}.gtfs-viewer [data-el=dropzone]{border:2px dashed var(--border);border-radius:8px;padding:24px;text-align:center;color:var(--muted);font-size:13px;margin-bottom:12px}.gtfs-viewer [data-el=dropzone].drag{border-color:var(--accent);color:var(--accent)}.gtfs-viewer [data-el=load-panel] .or{text-align:center;color:var(--muted);font-size:12px;margin:8px 0}.gtfs-viewer [data-el=load-panel] input[type=text]{width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:6px;font:inherit;margin-bottom:10px}.gtfs-viewer [data-el=load-panel] input[type=text]:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.gtfs-viewer .field-label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}.gtfs-viewer [data-el=pick-row]{display:flex;gap:8px;margin-bottom:4px}.gtfs-viewer [data-el=pick-row] button{flex:1}.gtfs-viewer [data-el=load-actions]{display:flex;gap:8px;align-items:center}.gtfs-viewer [data-el=load-status]{color:var(--muted);font-size:12.5px;margin-top:8px}.gtfs-viewer [data-el=load-error]{color:[data-el="b91c1c"];font-size:12.5px;margin-top:8px}.gtfs-viewer [data-el=empty-state]{padding:40px;color:var(--muted);text-align:center}.gtfs-viewer [data-el=metrics-btn]{color:var(--muted);font-size:12.5px;padding:4px 8px;flex-shrink:0;white-space:nowrap}.gtfs-viewer [data-el=metrics-panel]{position:absolute;top:46px;right:16px;z-index:5;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px 14px;font-size:12.5px;max-width:90vw;max-height:70vh;overflow:auto;box-shadow:0 6px 20px #0000001f}.gtfs-viewer [data-el=metrics-panel].hidden{display:none}.gtfs-viewer [data-el=metrics-header]{display:flex;align-items:center;gap:12px;margin-bottom:8px}.gtfs-viewer [data-el=metrics-header] strong{flex:1}.gtfs-viewer [data-el=metrics-header] button{padding:0 6px;line-height:1.4}.gtfs-viewer [data-el=metrics-phases]{display:grid;grid-template-columns:auto auto;gap:2px 14px;margin:0 0 12px}.gtfs-viewer [data-el=metrics-phases] dt{color:var(--muted)}.gtfs-viewer [data-el=metrics-phases] dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.gtfs-viewer [data-el=metrics-body] table{border-collapse:collapse;white-space:nowrap}.gtfs-viewer [data-el=metrics-body] th{text-align:left;color:var(--muted);font-weight:500;border-bottom:1px solid var(--border)}.gtfs-viewer [data-el=metrics-body] th,.gtfs-viewer [data-el=metrics-body] td{padding:3px 10px 3px 0}.gtfs-viewer [data-el=metrics-body] td:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}.gtfs-viewer [data-el=map-progress]{position:absolute;left:12px;bottom:12px;z-index:2;background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:5px 10px;color:var(--muted);font-size:12.5px;font-variant-numeric:tabular-nums;box-shadow:0 2px 8px #0000001a;pointer-events:none}.gtfs-viewer [data-el=table-scroll] td.value-numeric{text-align:right;font-variant-numeric:tabular-nums}.gtfs-viewer [data-el=table-scroll] td.value-implied{color:var(--muted);font-style:italic;cursor:help}.gtfs-viewer [data-el=table-scroll] td.value-malformed{cursor:help}.gtfs-viewer .value-swatch{display:inline-block;width:.75em;height:.75em;margin-right:6px;border:1px solid var(--border);border-radius:2px;vertical-align:baseline}.gtfs-viewer .value-link{color:var(--accent)}
1
+ .gtfs-viewer{--bg: #f7f7f8;--panel: #ffffff;--border: #dcdde0;--text: #1c1e21;--muted: #6b7280;--accent: #2563eb;--accent-bg: #eef2ff;--chip-bg: #eef1f5;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-family:var(--font);color:var(--text);background:var(--bg);display:flex;flex-direction:column;height:100%;min-height:0;position:relative}.gtfs-viewer,.gtfs-viewer *{box-sizing:border-box}.gtfs-viewer header{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--border);flex-shrink:0}.gtfs-viewer header h1{font-size:16px;margin:0}.gtfs-viewer [data-el=source-label]{color:var(--muted);font-size:13px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gtfs-viewer button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--panel);border-radius:6px;padding:6px 10px}.gtfs-viewer button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.gtfs-viewer button:disabled{opacity:.45;cursor:default}.gtfs-viewer button:hover{filter:brightness(.97)}.gtfs-viewer [data-el=layout]{flex:1;display:flex;min-height:0}.gtfs-viewer [data-el=sidebar]{width:210px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);overflow-y:auto;padding:8px}.gtfs-viewer .table-tab{display:flex;justify-content:space-between;padding:7px 10px;border-radius:6px;cursor:pointer;font-size:13px}.gtfs-viewer .table-tab:hover{background:var(--bg)}.gtfs-viewer .table-tab.active{background:var(--accent-bg);color:var(--accent);font-weight:600}.gtfs-viewer .table-tab .count{color:var(--muted);font-weight:400}.gtfs-viewer .table-tab.active .count{color:var(--accent)}.gtfs-viewer .table-tab.missing{color:var(--muted);cursor:default;font-style:italic}.gtfs-viewer .table-tab.missing:hover{background:none}.gtfs-viewer .table-tab.forbidden .count{font-style:italic}.gtfs-viewer [data-el=content]{flex:1;display:flex;min-width:0;min-height:0}.gtfs-viewer [data-el=table-pane]{flex:1.3;display:flex;flex-direction:column;min-width:0;border-right:1px solid var(--border)}.gtfs-viewer [data-el=map-pane]{flex:1;min-width:0;position:relative}.gtfs-viewer [data-el=map]{position:absolute;top:0;right:0;bottom:0;left:0}.gtfs-viewer [data-el=filter-bar]{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px 10px;border-bottom:1px solid var(--border);background:var(--panel)}.gtfs-viewer .raw-toggle{display:flex;align-items:center;gap:5px;margin-left:auto;padding:0 4px;font-size:12px;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none}.gtfs-viewer .raw-toggle input{cursor:pointer}.gtfs-viewer .chip{display:flex;align-items:center;gap:6px;background:var(--chip-bg);border-radius:999px;padding:4px 10px;font-size:12px}.gtfs-viewer .chip button{border:none;background:none;padding:0;color:var(--muted);font-size:13px;line-height:1}.gtfs-viewer [data-el=add-filter-form]{display:none;gap:6px;align-items:center;padding:8px 10px;border-bottom:1px solid var(--border);background:var(--bg);font-size:13px}.gtfs-viewer [data-el=add-filter-form].open{display:flex}.gtfs-viewer [data-el=add-filter-form] select,.gtfs-viewer [data-el=add-filter-form] input{font:inherit;padding:4px 6px;border:1px solid var(--border);border-radius:4px}.gtfs-viewer [data-el=dataset-status]{flex:1;display:flex;align-items:center;justify-content:center;padding:24px}.gtfs-viewer [data-el=dataset-status] .is-error{color:#b42318}.gtfs-viewer [data-el=table-scroll]{flex:1;overflow:auto}.gtfs-viewer table{border-collapse:collapse;width:100%;font-size:12.5px}.gtfs-viewer th,.gtfs-viewer td{border-bottom:1px solid var(--border);padding:5px 10px;text-align:left;white-space:nowrap}.gtfs-viewer th{position:sticky;top:0;background:var(--panel);z-index:1}.gtfs-viewer tr:hover td{background:#fafafa}.gtfs-viewer a.fk-link{color:var(--accent);text-decoration:none}.gtfs-viewer a.fk-link:hover{text-decoration:underline}.gtfs-viewer .related-row{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}.gtfs-viewer .related-btn{font-size:10.5px;padding:1px 6px;border-radius:999px;background:var(--chip-bg);border:none;color:var(--muted)}.gtfs-viewer .related-btn:hover{background:var(--accent-bg);color:var(--accent)}.gtfs-viewer [data-el=pager]{display:flex;align-items:center;gap:8px;padding:6px 10px;border-top:1px solid var(--border);background:var(--panel);font-size:12.5px}.gtfs-viewer [data-el=pager] .spacer{flex:1}.gtfs-viewer [data-el=load-overlay]{position:fixed;top:0;right:0;bottom:0;left:0;background:#14141973;display:flex;align-items:center;justify-content:center;z-index:50}.gtfs-viewer [data-el=load-overlay].hidden{display:none}.gtfs-viewer [data-el=load-panel]{background:var(--panel);border-radius:10px;padding:24px;width:420px;max-width:90vw}.gtfs-viewer [data-el=load-panel] h2{margin-top:0;font-size:16px}.gtfs-viewer [data-el=dropzone]{border:2px dashed var(--border);border-radius:8px;padding:24px;text-align:center;color:var(--muted);font-size:13px;margin-bottom:12px}.gtfs-viewer [data-el=dropzone].drag{border-color:var(--accent);color:var(--accent)}.gtfs-viewer [data-el=load-panel] .or{text-align:center;color:var(--muted);font-size:12px;margin:8px 0}.gtfs-viewer [data-el=load-panel] input[type=text]{width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:6px;font:inherit;margin-bottom:10px}.gtfs-viewer [data-el=load-panel] input[type=text]:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.gtfs-viewer .field-label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}.gtfs-viewer [data-el=pick-row]{display:flex;gap:8px;margin-bottom:4px}.gtfs-viewer [data-el=pick-row] button{flex:1}.gtfs-viewer [data-el=load-actions]{display:flex;gap:8px;align-items:center}.gtfs-viewer [data-el=load-status]{color:var(--muted);font-size:12.5px;margin-top:8px}.gtfs-viewer [data-el=load-error]{color:[data-el="b91c1c"];font-size:12.5px;margin-top:8px}.gtfs-viewer [data-el=empty-state]{padding:40px;color:var(--muted);text-align:center}.gtfs-viewer [data-el=options-btn]{flex-shrink:0;white-space:nowrap}.gtfs-viewer [data-el=options-panel]{position:absolute;top:46px;right:16px;z-index:5;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px 14px;font-size:12.5px;width:460px;max-width:90vw;max-height:70vh;overflow:auto;box-shadow:0 6px 20px #0000001f}.gtfs-viewer [data-el=options-panel].hidden{display:none}.gtfs-viewer [data-el=options-header]{display:flex;align-items:center;gap:12px;margin-bottom:8px}.gtfs-viewer [data-el=options-header] strong{flex:1}.gtfs-viewer [data-el=options-header] button{padding:0 6px;line-height:1.4}.gtfs-viewer [data-el=options-panel] section+section{margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.gtfs-viewer [data-el=options-section-title]{font-weight:600;margin-bottom:6px}.gtfs-viewer [data-el=workdir-path]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;color:var(--muted);cursor:pointer;overflow-wrap:anywhere}.gtfs-viewer [data-el=workdir-summary],.gtfs-viewer [data-el=metrics-summary]{color:var(--muted);margin:2px 0 8px}.gtfs-viewer [data-el=workdir-feeds]{display:flex;flex-direction:column;gap:4px}.gtfs-viewer .workdir-feed{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;background:var(--bg)}.gtfs-viewer .workdir-feed.current{background:var(--accent-bg);color:var(--accent)}.gtfs-viewer .workdir-feed-text{flex:1;min-width:0}.gtfs-viewer .workdir-feed-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gtfs-viewer .workdir-feed-detail{color:var(--muted);font-size:11.5px}.gtfs-viewer .workdir-feed.current .workdir-feed-detail{color:var(--accent)}.gtfs-viewer .workdir-feed-actions{display:flex;gap:4px;flex-shrink:0}.gtfs-viewer .workdir-feed-actions button{font-size:11.5px;padding:3px 7px}.gtfs-viewer .workdir-remove{line-height:1.2}.gtfs-viewer .workdir-startup.on{background:var(--accent);border-color:var(--accent);color:var(--bg)}.gtfs-viewer .workdir-empty{color:var(--muted);padding:6px 8px}.gtfs-viewer [data-el=workdir-actions]{margin-top:8px}.gtfs-viewer [data-el=recent-feeds]{display:flex;flex-direction:column;gap:4px;margin-bottom:4px}.gtfs-viewer .recent-feed{display:flex;align-items:baseline;gap:8px;width:100%;text-align:left;padding:7px 10px}.gtfs-viewer .recent-feed-detail{color:var(--muted);font-size:11.5px;margin-left:auto;flex-shrink:0}.gtfs-viewer [data-el=workdir-status]{color:var(--muted);min-height:1.2em;margin-top:4px}.gtfs-viewer [data-el=workdir-section].busy{opacity:.6}.gtfs-viewer [data-el=metrics-body]{overflow-x:auto}.gtfs-viewer [data-el=metrics-phases]{display:grid;grid-template-columns:auto auto;gap:2px 14px;margin:0 0 12px}.gtfs-viewer [data-el=metrics-phases] dt{color:var(--muted)}.gtfs-viewer [data-el=metrics-phases] dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.gtfs-viewer [data-el=metrics-body] table{border-collapse:collapse;white-space:nowrap}.gtfs-viewer [data-el=metrics-body] th{text-align:left;color:var(--muted);font-weight:500;border-bottom:1px solid var(--border)}.gtfs-viewer [data-el=metrics-body] th,.gtfs-viewer [data-el=metrics-body] td{padding:3px 10px 3px 0}.gtfs-viewer [data-el=metrics-body] td:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}.gtfs-viewer [data-el=map-progress]{position:absolute;left:12px;bottom:12px;z-index:2;background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:5px 10px;color:var(--muted);font-size:12.5px;font-variant-numeric:tabular-nums;box-shadow:0 2px 8px #0000001a;pointer-events:none}.gtfs-viewer [data-el=table-scroll] td.value-numeric{text-align:right;font-variant-numeric:tabular-nums}.gtfs-viewer [data-el=table-scroll] td.value-implied{color:var(--muted);font-style:italic;cursor:help}.gtfs-viewer [data-el=table-scroll] td.value-malformed{cursor:help}.gtfs-viewer .value-swatch{display:inline-block;width:.75em;height:.75em;margin-right:6px;border:1px solid var(--border);border-radius:2px;vertical-align:baseline}.gtfs-viewer .value-link{color:var(--accent)}
package/dist/markup.d.ts CHANGED
@@ -9,14 +9,18 @@
9
9
  * so nothing outside this file cares which it is.
10
10
  *
11
11
  * `browse` is the part worth embedding - the file list, the grid, the filters.
12
- * `load` and `report` belong to the local application: a host that already
13
- * knows which dataset it is showing has nothing to open and no load to explain.
12
+ * `load` and `options` belong to the local application: a host that already
13
+ * knows which dataset it is showing has nothing to open, no load to explain and
14
+ * no workdir of its own.
14
15
  */
15
16
  export interface ViewerParts {
16
17
  /** Opening a feed by drop, path or URL. Local application only. */
17
18
  load?: boolean;
18
- /** The load report in the header. Local application only. */
19
- report?: boolean;
19
+ /**
20
+ * The options menu: the load report, and the workdir when the source has one.
21
+ * Local application only.
22
+ */
23
+ options?: boolean;
20
24
  /** The map pane. */
21
25
  map?: boolean;
22
26
  }