@malloy-publisher/server 0.0.248 → 0.0.249
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/dist/app/api-doc.yaml +396 -21
- package/dist/app/assets/{EnvironmentPage-DrTRtRHz.js → EnvironmentPage-CB0NkVVs.js} +1 -1
- package/dist/app/assets/HomePage-BEfG37L3.js +1 -0
- package/dist/app/assets/{LightMode-4Y7DEWAD.js → LightMode--nzFqff1.js} +1 -1
- package/dist/app/assets/{MainPage-DKNR-8Vr.js → MainPage-owd1ua9R.js} +2 -2
- package/dist/app/assets/{MaterializationsPage-h3ONDcgJ.js → MaterializationsPage-BqaGRrxZ.js} +1 -1
- package/dist/app/assets/ModelPage-BydBAuRk.js +1 -0
- package/dist/app/assets/{PackagePage-D8mM4T37.js → PackagePage-BDl_rs-E.js} +1 -1
- package/dist/app/assets/{RouteError-DzJ0TPOj.js → RouteError-CyReblMg.js} +1 -1
- package/dist/app/assets/{ThemeEditorPage-BYvxc5op.js → ThemeEditorPage-zW7ndXQ8.js} +1 -1
- package/dist/app/assets/{WorkbookPage-CYOpAw7I.js → WorkbookPage-CzjOTRw8.js} +1 -1
- package/dist/app/assets/{core-BuvlzSIX.es-cZHBIpH6.js → core-DFBwNhvb.es-BwyvPM0R.js} +10 -10
- package/dist/app/assets/index-Byu4Enw7.js +2 -0
- package/dist/app/assets/{index-BgAa2J25.js → index-Cmp8wg1s.js} +1 -1
- package/dist/app/assets/{index-BgMR5Uuv.js → index-D6bZJBhc.js} +113 -113
- package/dist/app/assets/index-t7IEDVsK.js +615 -0
- package/dist/app/index.html +1 -1
- package/dist/package_load_worker.mjs +342 -2
- package/dist/server.mjs +1726 -134
- package/dist/sshcrypto-vd2k5hq9.node +0 -0
- package/package.json +2 -1
- package/dist/app/assets/HomePage-X_Wozguy.js +0 -1
- package/dist/app/assets/ModelPage-B8Qsrbxn.js +0 -1
- package/dist/app/assets/index-BwoU1Ko8.js +0 -529
- package/dist/app/assets/index-CuaX7xuf.js +0 -18
package/dist/app/api-doc.yaml
CHANGED
|
@@ -64,6 +64,10 @@ tags:
|
|
|
64
64
|
description: Malloy model access and compilation operations
|
|
65
65
|
- name: notebooks
|
|
66
66
|
description: Malloy notebook access and execution operations
|
|
67
|
+
- name: dashboards
|
|
68
|
+
description:
|
|
69
|
+
Discovery and manifests for `# artifact` dashboards - layout, tiles, and
|
|
70
|
+
the given specs behind their controls
|
|
67
71
|
- name: data-apps
|
|
68
72
|
description:
|
|
69
73
|
In-package HTML data apps (static pages served from a package's public/
|
|
@@ -1715,6 +1719,150 @@ paths:
|
|
|
1715
1719
|
"503":
|
|
1716
1720
|
$ref: "#/components/responses/ServiceUnavailable"
|
|
1717
1721
|
|
|
1722
|
+
/environments/{environmentName}/packages/{packageName}/dashboards:
|
|
1723
|
+
get:
|
|
1724
|
+
tags:
|
|
1725
|
+
- dashboards
|
|
1726
|
+
operationId: list-dashboards
|
|
1727
|
+
summary: List package dashboards
|
|
1728
|
+
description: |
|
|
1729
|
+
Lists the dashboards in the specified package — every `.malloy` file in
|
|
1730
|
+
the package's `dashboards/` directory that carries an `# artifact` (or
|
|
1731
|
+
model-level `## artifact`) annotation. A file in that directory with no
|
|
1732
|
+
artifact tag is a shared include and is not listed, whether or not it
|
|
1733
|
+
compiles.
|
|
1734
|
+
|
|
1735
|
+
A tagged dashboard that failed to compile is listed carrying its
|
|
1736
|
+
`error` where that state can arise at all, so a broken dashboard is
|
|
1737
|
+
visibly broken rather than silently absent. In practice it rarely does:
|
|
1738
|
+
a package whose model fails to compile is not loaded, and a reload that
|
|
1739
|
+
would break one is refused and leaves the previously loaded package
|
|
1740
|
+
serving, so `error` is only reachable on the paths that keep per-model
|
|
1741
|
+
placeholders. Treat it as present-but-uncommon rather than the normal
|
|
1742
|
+
way a broken dashboard surfaces. When the package curates its query surface
|
|
1743
|
+
(`queryableSources: "declared"`), a dashboard whose entry file is not in
|
|
1744
|
+
`explores` is omitted, because its query and given names would not be
|
|
1745
|
+
runnable; the omission is reported in the package's `warnings` as of the
|
|
1746
|
+
last load. A metadata `PATCH` that TIGHTENS curation takes effect on
|
|
1747
|
+
this listing immediately; one that relaxes it takes effect on the next
|
|
1748
|
+
package reload, because the withheld dashboards were never built into
|
|
1749
|
+
the cached set. Either way the matching warning is computed at load, so
|
|
1750
|
+
after a `PATCH` it appears only once the package reloads.
|
|
1751
|
+
|
|
1752
|
+
Where the boundary is active at all, which needs `explores` declared
|
|
1753
|
+
AND `queryableSources` left at `"declared"`, being listed does not by
|
|
1754
|
+
itself guarantee the dashboard runs: the queryable sources are the
|
|
1755
|
+
union of every listed file's `export {}` closure, so a dashboard whose
|
|
1756
|
+
tiles read a source that only an UNLISTED file exports is still served
|
|
1757
|
+
while those queries are refused. The fix is to list that file too, or
|
|
1758
|
+
to re-export the source from one already listed. It is served rather
|
|
1759
|
+
than withheld because withholding on a guess would hide dashboards that
|
|
1760
|
+
do work. Under `"all"` nothing is refused, so the situation does not
|
|
1761
|
+
arise.
|
|
1762
|
+
parameters:
|
|
1763
|
+
- name: environmentName
|
|
1764
|
+
in: path
|
|
1765
|
+
description: Name of the environment
|
|
1766
|
+
required: true
|
|
1767
|
+
schema:
|
|
1768
|
+
$ref: "#/components/schemas/IdentifierPattern"
|
|
1769
|
+
- name: packageName
|
|
1770
|
+
in: path
|
|
1771
|
+
description: Name of the package
|
|
1772
|
+
required: true
|
|
1773
|
+
schema:
|
|
1774
|
+
$ref: "#/components/schemas/IdentifierPattern"
|
|
1775
|
+
- name: versionId
|
|
1776
|
+
in: query
|
|
1777
|
+
description: Version identifier for the package
|
|
1778
|
+
required: false
|
|
1779
|
+
schema:
|
|
1780
|
+
$ref: "#/components/schemas/VersionIdPattern"
|
|
1781
|
+
responses:
|
|
1782
|
+
"200":
|
|
1783
|
+
description: A list of dashboards in the package
|
|
1784
|
+
content:
|
|
1785
|
+
application/json:
|
|
1786
|
+
schema:
|
|
1787
|
+
type: array
|
|
1788
|
+
items:
|
|
1789
|
+
$ref: "#/components/schemas/Dashboard"
|
|
1790
|
+
"401":
|
|
1791
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1792
|
+
"404":
|
|
1793
|
+
$ref: "#/components/responses/NotFound"
|
|
1794
|
+
"500":
|
|
1795
|
+
$ref: "#/components/responses/InternalServerError"
|
|
1796
|
+
"501":
|
|
1797
|
+
$ref: "#/components/responses/NotImplemented"
|
|
1798
|
+
"503":
|
|
1799
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
1800
|
+
|
|
1801
|
+
/environments/{environmentName}/packages/{packageName}/dashboards/{dashboardName}:
|
|
1802
|
+
get:
|
|
1803
|
+
tags:
|
|
1804
|
+
- dashboards
|
|
1805
|
+
operationId: get-dashboard
|
|
1806
|
+
summary: Get a dashboard manifest
|
|
1807
|
+
description: |
|
|
1808
|
+
Retrieves everything a viewer needs to render one dashboard: the artifact
|
|
1809
|
+
tag's declarations plus the control contract derived from the givens its
|
|
1810
|
+
query references. Running the dashboard needs no further endpoint — its
|
|
1811
|
+
query, each composite tile, and each control's suggest query all run
|
|
1812
|
+
through the model query endpoint with `givens`, using the manifest's
|
|
1813
|
+
`path` as the model.
|
|
1814
|
+
parameters:
|
|
1815
|
+
- name: environmentName
|
|
1816
|
+
in: path
|
|
1817
|
+
description: Name of the environment
|
|
1818
|
+
required: true
|
|
1819
|
+
schema:
|
|
1820
|
+
$ref: "#/components/schemas/IdentifierPattern"
|
|
1821
|
+
- name: packageName
|
|
1822
|
+
in: path
|
|
1823
|
+
description: Name of the package
|
|
1824
|
+
required: true
|
|
1825
|
+
schema:
|
|
1826
|
+
$ref: "#/components/schemas/IdentifierPattern"
|
|
1827
|
+
- name: dashboardName
|
|
1828
|
+
in: path
|
|
1829
|
+
description: >-
|
|
1830
|
+
The dashboard's name: its filename basename. Conventionally letters,
|
|
1831
|
+
digits, "-" and "_", and a package is warned when one of its SERVED
|
|
1832
|
+
dashboards falls outside that. A dashboard withheld by curation gets
|
|
1833
|
+
no naming finding, because the naming check runs after the curation
|
|
1834
|
+
gate and a withheld dashboard is already reported as withheld. It is NOT constrained to it, because
|
|
1835
|
+
the name comes from a filename rather than being chosen: a file such
|
|
1836
|
+
as `dashboards/v1.2.malloy` is served, and its published `resource`
|
|
1837
|
+
carries the name percent-encoded. Send it percent-encoded.
|
|
1838
|
+
required: true
|
|
1839
|
+
schema:
|
|
1840
|
+
type: string
|
|
1841
|
+
minLength: 1
|
|
1842
|
+
- name: versionId
|
|
1843
|
+
in: query
|
|
1844
|
+
description: Version identifier for the package
|
|
1845
|
+
required: false
|
|
1846
|
+
schema:
|
|
1847
|
+
$ref: "#/components/schemas/VersionIdPattern"
|
|
1848
|
+
responses:
|
|
1849
|
+
"200":
|
|
1850
|
+
description: The dashboard manifest
|
|
1851
|
+
content:
|
|
1852
|
+
application/json:
|
|
1853
|
+
schema:
|
|
1854
|
+
$ref: "#/components/schemas/DashboardManifest"
|
|
1855
|
+
"401":
|
|
1856
|
+
$ref: "#/components/responses/Unauthorized"
|
|
1857
|
+
"404":
|
|
1858
|
+
$ref: "#/components/responses/NotFound"
|
|
1859
|
+
"500":
|
|
1860
|
+
$ref: "#/components/responses/InternalServerError"
|
|
1861
|
+
"501":
|
|
1862
|
+
$ref: "#/components/responses/NotImplemented"
|
|
1863
|
+
"503":
|
|
1864
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
1865
|
+
|
|
1718
1866
|
/environments/{environmentName}/packages/{packageName}/notebooks:
|
|
1719
1867
|
get:
|
|
1720
1868
|
tags:
|
|
@@ -2854,9 +3002,19 @@ components:
|
|
|
2854
3002
|
collision, and materialization-config problems that degrade
|
|
2855
3003
|
attribution. Discovery findings: a model listed in `explores` whose
|
|
2856
3004
|
export closure surfaces no sources or named queries, so it lists as
|
|
2857
|
-
empty and renders a blank page.
|
|
2858
|
-
|
|
2859
|
-
|
|
3005
|
+
empty and renders a blank page. Dashboard findings: a
|
|
3006
|
+
`dashboards/` file whose `# artifact` tag does not parse or does not
|
|
3007
|
+
describe a dashboard, a tile or suggest query that does not resolve,
|
|
3008
|
+
a `# drill` naming a destination that is not a dashboard, and a
|
|
3009
|
+
dashboard held back from the listing because its entry file is not
|
|
3010
|
+
in `explores`. Two dashboard findings are about Publisher rather
|
|
3011
|
+
than about the package: one when a file carrying an artifact tag
|
|
3012
|
+
could not be read and so is not served at all, and one when the lint
|
|
3013
|
+
stops early, in which case the list must be read as incomplete
|
|
3014
|
+
rather than as a clean package. Server-computed and read-only:
|
|
3015
|
+
ignored on
|
|
3016
|
+
create/update requests and only returned in responses. Present only
|
|
3017
|
+
when there are such findings.
|
|
2860
3018
|
|
|
2861
3019
|
|
|
2862
3020
|
**Pre-aggregation contributes nothing to this array. A
|
|
@@ -2913,9 +3071,13 @@ components:
|
|
|
2913
3071
|
type: string
|
|
2914
3072
|
description: >-
|
|
2915
3073
|
What the finding is about: the query or view a render finding
|
|
2916
|
-
sits on (`by_carrier`, `flights -> by_carrier`),
|
|
2917
|
-
|
|
2918
|
-
|
|
3074
|
+
sits on (`by_carrier`, `flights -> by_carrier`), the source a
|
|
3075
|
+
materialization finding belongs to, or, for a dashboard
|
|
3076
|
+
finding, the dashboard's name or the `source.dimension` a
|
|
3077
|
+
`# drill` is declared on. Absent when a finding sits on none
|
|
3078
|
+
of those, either because it spans several, in which case the
|
|
3079
|
+
message names them, or because it is about the lint itself
|
|
3080
|
+
rather than about any one dashboard.
|
|
2919
3081
|
message:
|
|
2920
3082
|
type: string
|
|
2921
3083
|
description: A description of the problem.
|
|
@@ -2925,9 +3087,21 @@ components:
|
|
|
2925
3087
|
- error
|
|
2926
3088
|
- warn
|
|
2927
3089
|
description: >-
|
|
2928
|
-
Finding severity.
|
|
2929
|
-
|
|
2930
|
-
|
|
3090
|
+
Finding severity. Render findings are surfaced here only at
|
|
3091
|
+
`error` severity; lower-severity render findings remain on the
|
|
3092
|
+
query-time `renderLogs` surface. Materialization and dashboard
|
|
3093
|
+
findings use both: `error` for something that cannot work as
|
|
3094
|
+
written, such as a tile naming a view the source does not
|
|
3095
|
+
have, and `warn` for something that works but not as the
|
|
3096
|
+
author probably intended, such as a dashboard held back by
|
|
3097
|
+
curation. The two findings about Publisher rather than about
|
|
3098
|
+
the package split across both: a file that carries an artifact
|
|
3099
|
+
tag and could not be read is `error`, because the dashboard it
|
|
3100
|
+
should have produced does not exist, and a lint that stopped
|
|
3101
|
+
early is `warn`, because the lint failing is not itself a
|
|
3102
|
+
defect in the package. That `warn` does NOT mean the package is
|
|
3103
|
+
free of `error`-severity findings, since the ones the lint
|
|
3104
|
+
never reached are exactly what it cannot report.
|
|
2931
3105
|
queryableSources:
|
|
2932
3106
|
type: string
|
|
2933
3107
|
enum:
|
|
@@ -3175,19 +3349,196 @@ components:
|
|
|
3175
3349
|
type: object
|
|
3176
3350
|
description: Malloy notebook metadata and status information
|
|
3177
3351
|
properties:
|
|
3178
|
-
|
|
3352
|
+
environmentName:
|
|
3179
3353
|
type: string
|
|
3180
|
-
description:
|
|
3354
|
+
description: Name of the environment containing this notebook
|
|
3181
3355
|
packageName:
|
|
3182
3356
|
type: string
|
|
3183
3357
|
description: Name of the package containing this notebook
|
|
3184
3358
|
path:
|
|
3185
3359
|
type: string
|
|
3186
3360
|
description: Relative path to the notebook file within its package directory
|
|
3361
|
+
title:
|
|
3362
|
+
type: string
|
|
3363
|
+
description:
|
|
3364
|
+
Human title, resolved from the notebook's own `## title="…"`, then
|
|
3365
|
+
its `#"` doc comment, then its first markdown heading. Absent when
|
|
3366
|
+
none of those resolve, leaving the caller to show the path.
|
|
3367
|
+
description:
|
|
3368
|
+
type: string
|
|
3369
|
+
description: The notebook's `#"` doc comment, when it has one
|
|
3187
3370
|
error:
|
|
3188
3371
|
type: string
|
|
3189
3372
|
description: Error message if the notebook failed to compile or load
|
|
3190
3373
|
|
|
3374
|
+
Dashboard:
|
|
3375
|
+
type: object
|
|
3376
|
+
description: |
|
|
3377
|
+
A dashboard within a Malloy package: a self-contained `.malloy` file in
|
|
3378
|
+
the package's `dashboards/` directory carrying an `# artifact` (or
|
|
3379
|
+
model-level `## artifact`) annotation. The list entry; see
|
|
3380
|
+
DashboardManifest for the detail a viewer needs to render one.
|
|
3381
|
+
properties:
|
|
3382
|
+
resource:
|
|
3383
|
+
type: string
|
|
3384
|
+
description: Resource path to the dashboard
|
|
3385
|
+
packageName:
|
|
3386
|
+
type: string
|
|
3387
|
+
description: Name of the package containing this dashboard
|
|
3388
|
+
name:
|
|
3389
|
+
type: string
|
|
3390
|
+
description:
|
|
3391
|
+
The dashboard's slug — its filename basename. Addresses it in a URL
|
|
3392
|
+
and as a `# drill` target.
|
|
3393
|
+
path:
|
|
3394
|
+
type: string
|
|
3395
|
+
description:
|
|
3396
|
+
Relative path to the dashboard file within its package directory
|
|
3397
|
+
(`dashboards/<name>.malloy`)
|
|
3398
|
+
title:
|
|
3399
|
+
type: string
|
|
3400
|
+
description:
|
|
3401
|
+
Human title from the artifact tag, falling back to the file's `#"`
|
|
3402
|
+
doc comment and then to the slug
|
|
3403
|
+
description:
|
|
3404
|
+
type: string
|
|
3405
|
+
description: The file's `#"` doc comment, when it has one
|
|
3406
|
+
error:
|
|
3407
|
+
type: string
|
|
3408
|
+
description: Error message if the dashboard file failed to compile
|
|
3409
|
+
|
|
3410
|
+
DashboardManifest:
|
|
3411
|
+
type: object
|
|
3412
|
+
description: |
|
|
3413
|
+
Everything a viewer needs to render one dashboard: the artifact tag's
|
|
3414
|
+
declarations plus the control contract derived from the givens its query
|
|
3415
|
+
references. Running needs no dashboard-specific endpoint — the query,
|
|
3416
|
+
each composite tile, and each control's suggest query all run through
|
|
3417
|
+
the ordinary model query endpoint with `givens`.
|
|
3418
|
+
properties:
|
|
3419
|
+
resource:
|
|
3420
|
+
type: string
|
|
3421
|
+
description: Resource path to the dashboard
|
|
3422
|
+
packageName:
|
|
3423
|
+
type: string
|
|
3424
|
+
description: Name of the package containing this dashboard
|
|
3425
|
+
name:
|
|
3426
|
+
type: string
|
|
3427
|
+
description:
|
|
3428
|
+
The dashboard's slug — its filename basename. Addresses it in a URL
|
|
3429
|
+
and as a `# drill` target.
|
|
3430
|
+
path:
|
|
3431
|
+
type: string
|
|
3432
|
+
description: |
|
|
3433
|
+
Relative path to the dashboard file within its package directory
|
|
3434
|
+
(`dashboards/<name>.malloy`). This is also the model to POST to:
|
|
3435
|
+
`query`, each tile, and each control's suggest query all run through
|
|
3436
|
+
`POST /environments/{environmentName}/packages/{packageName}/models/{path}/query`
|
|
3437
|
+
with `givens`, which is why there is no dashboard-specific run
|
|
3438
|
+
endpoint.
|
|
3439
|
+
title:
|
|
3440
|
+
type: string
|
|
3441
|
+
description:
|
|
3442
|
+
Human title from the artifact tag, falling back to the file's `#"`
|
|
3443
|
+
doc comment and then to the slug
|
|
3444
|
+
description:
|
|
3445
|
+
type: string
|
|
3446
|
+
description: The file's `#"` doc comment, when it has one
|
|
3447
|
+
error:
|
|
3448
|
+
type: string
|
|
3449
|
+
description: Error message if the dashboard file failed to compile
|
|
3450
|
+
query:
|
|
3451
|
+
type: string
|
|
3452
|
+
description: >-
|
|
3453
|
+
Name of the tagged query to run. Present for the single-query form
|
|
3454
|
+
only; a composite dashboard carries `tiles` instead. A NAME rather
|
|
3455
|
+
than an expression, so it goes in the `queryName` field of a
|
|
3456
|
+
`POST …/models/{path}/query` body. A tile's `query` is the other
|
|
3457
|
+
shape and is not interchangeable with this one; see
|
|
3458
|
+
`DashboardTile.query`.
|
|
3459
|
+
tiles:
|
|
3460
|
+
type: array
|
|
3461
|
+
description:
|
|
3462
|
+
Tiles of a composite dashboard, run separately and combined into one
|
|
3463
|
+
grid. Present for the composite form only.
|
|
3464
|
+
items:
|
|
3465
|
+
$ref: "#/components/schemas/DashboardTile"
|
|
3466
|
+
dashboardColumns:
|
|
3467
|
+
type: integer
|
|
3468
|
+
description:
|
|
3469
|
+
Grid width — from the `# dashboard {columns=N}` render tag, or
|
|
3470
|
+
`dashboard_columns=N` on a composite artifact tag
|
|
3471
|
+
startingGivens:
|
|
3472
|
+
allOf:
|
|
3473
|
+
- $ref: "#/components/schemas/EncodedGivenValues"
|
|
3474
|
+
description:
|
|
3475
|
+
Per-dashboard starting values for controls, from the artifact tag.
|
|
3476
|
+
URL parameters override these, which is why the two share a shape.
|
|
3477
|
+
autorun:
|
|
3478
|
+
type: boolean
|
|
3479
|
+
description:
|
|
3480
|
+
False batches control changes behind an Apply button instead of
|
|
3481
|
+
re-running on every change. Defaults to true.
|
|
3482
|
+
givens:
|
|
3483
|
+
type: array
|
|
3484
|
+
description: |
|
|
3485
|
+
The control row. Normally one entry per given the dashboard runs
|
|
3486
|
+
with, which is what its `query` references on the single-query form
|
|
3487
|
+
and the union over `tiles` on a composite, and which the entry file
|
|
3488
|
+
can bind. A composite widens it to
|
|
3489
|
+
every given the entry file surfaces when any tile is one discovery
|
|
3490
|
+
cannot resolve, because that tile's givens are otherwise absent from
|
|
3491
|
+
the row it filters by; see `DashboardTile.givenNames`. So an entry
|
|
3492
|
+
here is always bindable, but on a widened row it is not necessarily
|
|
3493
|
+
referenced by any tile. A given reachable only
|
|
3494
|
+
through an import chain the entry file does not import itself
|
|
3495
|
+
cannot be bound at query time, so no control is offered for it and
|
|
3496
|
+
it stays at its default; that case is reported in the package's
|
|
3497
|
+
`warnings` rather than represented here by an unusable entry. Plain
|
|
3498
|
+
`Given`s, because the presentation a control takes is declared on
|
|
3499
|
+
the given itself, so a dashboard and a notebook render the same
|
|
3500
|
+
control for the same given, `#(description=…)` helper text
|
|
3501
|
+
included.
|
|
3502
|
+
|
|
3503
|
+
ONE DELIBERATE DIVERGENCE from `Given` as the model surface sends
|
|
3504
|
+
it: `default` here is the value the QUERY ENDPOINT takes, not the
|
|
3505
|
+
Malloy source literal. A `filter<…>` given declared `f'West'`
|
|
3506
|
+
publishes `West`. As the literal it could not be used as a default
|
|
3507
|
+
at all, since sending it back verbatim matches zero rows silently,
|
|
3508
|
+
with no error to search for. Only filter-typed givens are unwrapped,
|
|
3509
|
+
so a plain string default that merely reads like `f'x'` is
|
|
3510
|
+
untouched. `startingGivens` uses the same shape for the same reason.
|
|
3511
|
+
items:
|
|
3512
|
+
$ref: "#/components/schemas/Given"
|
|
3513
|
+
|
|
3514
|
+
DashboardTile:
|
|
3515
|
+
type: object
|
|
3516
|
+
description: One tile of a composite dashboard
|
|
3517
|
+
properties:
|
|
3518
|
+
query:
|
|
3519
|
+
type: string
|
|
3520
|
+
description: >-
|
|
3521
|
+
The run expression exactly as written in `tiles=[…]`, for example
|
|
3522
|
+
"orders -> by_month". An EXPRESSION rather than a name, so it goes in
|
|
3523
|
+
the `query` field of a `POST …/models/{path}/query` body, prefixed
|
|
3524
|
+
with `run:`. Sending it in `queryName`, the field
|
|
3525
|
+
`DashboardManifest.query` takes, is rejected.
|
|
3526
|
+
givenNames:
|
|
3527
|
+
type: array
|
|
3528
|
+
items:
|
|
3529
|
+
type: string
|
|
3530
|
+
description: |
|
|
3531
|
+
Names of the givens this tile references. This is a scoping hint,
|
|
3532
|
+
not a binding constraint: it tells a caller which tiles a changed
|
|
3533
|
+
control actually needs to re-run. Running a tile with the
|
|
3534
|
+
dashboard's whole control row also works, because an unreferenced
|
|
3535
|
+
given is ignored. Absent when the tile expression is not one
|
|
3536
|
+
discovery can resolve, a refinement or a multi-stage pipeline for
|
|
3537
|
+
instance, in which case send the whole control row. One such tile
|
|
3538
|
+
widens `DashboardManifest.givens` to every given the entry file
|
|
3539
|
+
surfaces, rather than the union over the resolvable tiles, so that
|
|
3540
|
+
the row actually contains the givens that tile filters by.
|
|
3541
|
+
|
|
3191
3542
|
DataApp:
|
|
3192
3543
|
type: object
|
|
3193
3544
|
description:
|
|
@@ -3259,6 +3610,14 @@ components:
|
|
|
3259
3610
|
Starting values for the notebook's controls, declared at its file
|
|
3260
3611
|
level. URL parameters override these, which is why the two share a
|
|
3261
3612
|
shape. Omitted when the notebook declares none.
|
|
3613
|
+
autorun:
|
|
3614
|
+
type: boolean
|
|
3615
|
+
description:
|
|
3616
|
+
False batches control changes behind an Apply button instead of
|
|
3617
|
+
re-running on every change. Defaults to true. The same flag, with
|
|
3618
|
+
the same default, that `DashboardManifest.autorun` carries, so a
|
|
3619
|
+
notebook's `## autorun=false` and a dashboard's
|
|
3620
|
+
`# artifact { autorun=false }` arrive identically.
|
|
3262
3621
|
sources:
|
|
3263
3622
|
type: array
|
|
3264
3623
|
description: Sources defined in the notebook's model
|
|
@@ -3391,12 +3750,16 @@ components:
|
|
|
3391
3750
|
that survives a URL), and a bare list of names is spelled `givenNames`.
|
|
3392
3751
|
|
|
3393
3752
|
It also carries how the given should be presented as an input control
|
|
3394
|
-
(`label`, `control`, `rangeMin`, `rangeMax`, `suggest`),
|
|
3395
|
-
the declaration's own tags. That contract belongs to the
|
|
3396
|
-
than to any one surface, which is what lets a notebook and
|
|
3397
|
-
render the same control without restating it.
|
|
3398
|
-
|
|
3399
|
-
|
|
3753
|
+
(`label`, `description`, `control`, `rangeMin`, `rangeMax`, `suggest`),
|
|
3754
|
+
derived from the declaration's own tags. That contract belongs to the
|
|
3755
|
+
given rather than to any one surface, which is what lets a notebook and
|
|
3756
|
+
an SDK host render the same control without restating it. Each of those
|
|
3757
|
+
six is present only when the declaration carries the tag it reads, so a
|
|
3758
|
+
given tagged with none of them carries none of them. A tag whose value is
|
|
3759
|
+
not one this contract accepts is dropped the same way rather than
|
|
3760
|
+
reported, so an unrecognized `control`, or a `rangeMin`/`rangeMax` that is
|
|
3761
|
+
not a number, is absent here and indistinguishable from never having been
|
|
3762
|
+
written.
|
|
3400
3763
|
properties:
|
|
3401
3764
|
name:
|
|
3402
3765
|
type: string
|
|
@@ -3420,6 +3783,15 @@ components:
|
|
|
3420
3783
|
label:
|
|
3421
3784
|
type: string
|
|
3422
3785
|
description: Display label from the declaration's `# label=` tag
|
|
3786
|
+
description:
|
|
3787
|
+
type: string
|
|
3788
|
+
description:
|
|
3789
|
+
Helper text from the declaration's `# description=` tag. Distinct
|
|
3790
|
+
from the older `#(description="…")` annotation, which is not derived
|
|
3791
|
+
into this field and instead stays on `annotations` for the client
|
|
3792
|
+
that already parses it. The tag form is also the one that compiles
|
|
3793
|
+
without a `malformed-route` warning, because Malloy reads an
|
|
3794
|
+
annotation's route up to the first whitespace.
|
|
3423
3795
|
control:
|
|
3424
3796
|
type: string
|
|
3425
3797
|
enum:
|
|
@@ -3487,10 +3859,13 @@ components:
|
|
|
3487
3859
|
|
|
3488
3860
|
The role it names: a surface's URL parameters and the starting values a
|
|
3489
3861
|
document declares share this shape, so the two can merge and then be
|
|
3490
|
-
decoded once against the declarations and sent as `GivenValues`.
|
|
3491
|
-
|
|
3492
|
-
typed as it
|
|
3493
|
-
|
|
3862
|
+
decoded once against the declarations and sent as `GivenValues`.
|
|
3863
|
+
`RawNotebook.startingGivens` and `DashboardManifest.startingGivens` are
|
|
3864
|
+
both typed as it and both populated, so this schema now describes live
|
|
3865
|
+
traffic rather than only the contract. A `filter<…>` value is unwrapped
|
|
3866
|
+
to its body and every other type is published as declared, keyed on the
|
|
3867
|
+
declared type, so a plain string default that reads like `f'x'` survives
|
|
3868
|
+
untouched. The
|
|
3494
3869
|
`givens` query parameter is not an instance of it: that carries a
|
|
3495
3870
|
JSON-encoded `GivenValues`, with values typed rather than stringified.
|
|
3496
3871
|
additionalProperties:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{T as r,J as t,j as e,a3 as i,ad as o}from"./index-t7IEDVsK.js";function m(){const s=r(),{environmentName:n}=t();if(n){const a=i({environmentName:n});return e.jsx(o,{onSelectPackage:s,resourceUri:a})}else return e.jsx("div",{children:e.jsx("h2",{children:"Missing environment name"})})}export{m as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{T as t,j as o,y as a}from"./index-t7IEDVsK.js";function s(){const n=t();return o.jsx(a,{onClickEnvironment:n})}export{s as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c,j as s}from"./index-
|
|
1
|
+
import{c,j as s}from"./index-t7IEDVsK.js";const t=c(s.jsx("path",{d:"M12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9 9-4.03 9-9c0-.46-.04-.92-.1-1.36-.98 1.37-2.58 2.26-4.4 2.26-2.98 0-5.4-2.42-5.4-5.4 0-1.81.89-3.42 2.26-4.4-.44-.06-.9-.1-1.36-.1"})),a=c(s.jsx("path",{d:"M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5M2 13h2c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1m18 0h2c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1s.45 1 1 1M11 2v2c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1m0 18v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1M5.99 4.58c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0s.39-1.03 0-1.41zm12.37 12.37c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0 .39-.39.39-1.03 0-1.41zm1.06-10.96c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0zM7.05 18.36c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0z"}));export{t as D,a as L};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{u as Pe,g as Ee,r as u,R as Ce,a as Ie,c as S,j as t,s as M,B as Me,m as J,
|
|
2
|
-
`)),(ye!==void 0?et:Ze)(m,c,h,x,p)}}be();const tt=S(t.jsx("path",{d:"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"})),rt=M(Me,{name:"MuiBreadcrumbCollapsed"})(J(({theme:e})=>({display:"flex",marginLeft:`calc(${e.spacing(1)} * 0.5)`,marginRight:`calc(${e.spacing(1)} * 0.5)`,...e.palette.mode==="light"?{backgroundColor:e.palette.grey[100],color:e.palette.grey[700]}:{backgroundColor:e.palette.grey[700],color:e.palette.grey[100]},borderRadius:2,"&:hover, &:focus":{...e.palette.mode==="light"?{backgroundColor:e.palette.grey[200]}:{backgroundColor:e.palette.grey[600]}},"&:active":{boxShadow:e.shadows[0],...e.palette.mode==="light"?{backgroundColor:oe(e.palette.grey[200],.12)}:{backgroundColor:oe(e.palette.grey[600],.12)}}}))),nt=M(tt)({width:24,height:16});function ot(e){const{slots:r={},slotProps:n={},...o}=e,s=e;return t.jsx("li",{children:t.jsx(rt,{focusRipple:!0,...o,ownerState:s,children:t.jsx(nt,{as:r.CollapsedIcon,ownerState:s,...n.collapsedIcon})})})}function st(e){return ce("MuiBreadcrumbs",e)}const at=le("MuiBreadcrumbs",["root","ol","li","separator"]),it=e=>{const{classes:r}=e;return pe({root:["root"],li:["li"],ol:["ol"],separator:["separator"]},st,r)},lt=M(U,{name:"MuiBreadcrumbs",slot:"Root",overridesResolver:(e,r)=>[{[`& .${at.li}`]:r.li},r.root]})({}),ct=M("ol",{name:"MuiBreadcrumbs",slot:"Ol"})({display:"flex",flexWrap:"wrap",alignItems:"center",padding:0,margin:0,listStyle:"none"}),dt=M("li",{name:"MuiBreadcrumbs",slot:"Separator"})({display:"flex",userSelect:"none",marginLeft:8,marginRight:8});function pt(e,r,n,o){return e.reduce((s,a,i)=>(i<e.length-1?s=s.concat(a,t.jsx(dt,{"aria-hidden":!0,className:r,ownerState:o,children:n},`separator-${i}`)):s.push(a),s),[])}const ut=u.forwardRef(function(r,n){const o=de({props:r,name:"MuiBreadcrumbs"}),{children:s,className:a,component:i="nav",slots:c={},slotProps:h={},expandText:x="Show path",itemsAfterCollapse:p=1,itemsBeforeCollapse:m=1,maxItems:y=8,separator:P="/",...H}=o,[z,E]=u.useState(!1),v={...o,component:i,expanded:z,expandText:x,itemsAfterCollapse:p,itemsBeforeCollapse:m,maxItems:y,separator:P},C=it(v),T=ze({elementType:c.CollapsedIcon,externalSlotProps:h.collapsedIcon,ownerState:v}),j=u.useRef(null),k=d=>{const w=()=>{E(!0);const b=j.current.querySelector("a[href],button,[tabindex]");b&&b.focus()};return m+p>=d.length?d:[...d.slice(0,m),t.jsx(ot,{"aria-label":x,slots:{CollapsedIcon:c.CollapsedIcon},slotProps:{collapsedIcon:T},onClick:w},"ellipsis"),...d.slice(d.length-p,d.length)]},D=u.Children.toArray(s).filter(d=>u.isValidElement(d)).map((d,w)=>t.jsx("li",{className:C.li,children:d},`child-${w}`));return t.jsx(lt,{ref:n,component:i,color:"textSecondary",className:O(C.root,a),ownerState:v,...H,children:t.jsx(ct,{className:C.ol,ref:j,ownerState:v,children:pt(z||y&&D.length<=y?D:k(D),C.separator,P,v)})})});function ht(e,r,n){const o=r.getBoundingClientRect(),s=n&&n.getBoundingClientRect(),a=ue(r);let i;if(r.fakeTransform)i=r.fakeTransform;else{const x=a.getComputedStyle(r);i=x.getPropertyValue("-webkit-transform")||x.getPropertyValue("transform")}let c=0,h=0;if(i&&i!=="none"&&typeof i=="string"){const x=i.split("(")[1].split(")")[0].split(",");c=parseInt(x[4],10),h=parseInt(x[5],10)}return e==="left"?s?`translateX(${s.right+c-o.left}px)`:`translateX(${a.innerWidth+c-o.left}px)`:e==="right"?s?`translateX(-${o.right-s.left-c}px)`:`translateX(-${o.left+o.width-c}px)`:e==="up"?s?`translateY(${s.bottom+h-o.top}px)`:`translateY(${a.innerHeight+h-o.top}px)`:s?`translateY(-${o.top-s.top+o.height-h}px)`:`translateY(-${o.top+o.height-h}px)`}function xt(e){return typeof e=="function"?e():e}function W(e,r,n){const o=xt(n),s=ht(e,r,o);s&&(r.style.webkitTransform=s,r.style.transform=s)}const ft=u.forwardRef(function(r,n){const o=Z(),s={enter:o.transitions.easing.easeOut,exit:o.transitions.easing.sharp},a={enter:o.transitions.duration.enteringScreen,exit:o.transitions.duration.leavingScreen},{addEndListener:i,appear:c=!0,children:h,container:x,direction:p="down",easing:m=s,in:y,onEnter:P,onEntered:H,onEntering:z,onExit:E,onExited:v,onExiting:C,style:T,timeout:j=a,TransitionComponent:k=Te,...D}=r,d=u.useRef(null),w=De(Re(h),d,n),b=l=>g=>{l&&(g===void 0?l(d.current):l(d.current,g))},X=b((l,g)=>{W(p,l,x),Le(l),P&&P(l,g)}),te=b((l,g)=>{const L=se({timeout:j,style:T,easing:m},{mode:"enter"});l.style.webkitTransition=o.transitions.create("-webkit-transform",{...L}),l.style.transition=o.transitions.create("transform",{...L}),l.style.webkitTransform="none",l.style.transform="none",z&&z(l,g)}),R=b(H),B=b(C),I=b(l=>{const g=se({timeout:j,style:T,easing:m},{mode:"exit"});l.style.webkitTransition=o.transitions.create("-webkit-transform",g),l.style.transition=o.transitions.create("transform",g),W(p,l,x),E&&E(l)}),Y=b(l=>{l.style.webkitTransition="",l.style.transition="",v&&v(l)}),_=l=>{i&&i(d.current,l)},N=u.useCallback(()=>{d.current&&W(p,d.current,x)},[p,x]);return u.useEffect(()=>{if(y||p==="down"||p==="right")return;const l=Be(()=>{d.current&&W(p,d.current,x)}),g=ue(d.current);return g.addEventListener("resize",l),()=>{l.clear(),g.removeEventListener("resize",l)}},[p,y,x]),u.useEffect(()=>{y||N()},[y,N]),t.jsx(k,{nodeRef:d,onEnter:X,onEntered:R,onEntering:te,onExit:I,onExited:Y,onExiting:B,addEndListener:_,appear:c,in:y,timeout:j,...D,children:(l,{ownerState:g,...L})=>u.cloneElement(h,{ref:w,style:{visibility:l==="exited"&&!y?"hidden":void 0,...T,...h.props.style},...L})})});function mt(e){return ce("MuiDrawer",e)}le("MuiDrawer",["root","docked","paper","anchorLeft","anchorRight","anchorTop","anchorBottom","paperAnchorLeft","paperAnchorRight","paperAnchorTop","paperAnchorBottom","paperAnchorDockedLeft","paperAnchorDockedRight","paperAnchorDockedTop","paperAnchorDockedBottom","modal"]);const ve=(e,r)=>{const{ownerState:n}=e;return[r.root,(n.variant==="permanent"||n.variant==="persistent")&&r.docked,r.modal]},gt=e=>{const{classes:r,anchor:n,variant:o}=e,s={root:["root",`anchor${$(n)}`],docked:[(o==="permanent"||o==="persistent")&&"docked"],modal:["modal"],paper:["paper",`paperAnchor${$(n)}`,o!=="temporary"&&`paperAnchorDocked${$(n)}`]};return pe(s,mt,r)},yt=M(Ne,{name:"MuiDrawer",slot:"Root",overridesResolver:ve})(J(({theme:e})=>({zIndex:(e.vars||e).zIndex.drawer}))),bt=M("div",{shouldForwardProp:We,name:"MuiDrawer",slot:"Docked",skipVariantsResolver:!1,overridesResolver:ve})({flex:"0 0 auto"}),vt=M(Ae,{name:"MuiDrawer",slot:"Paper",overridesResolver:(e,r)=>{const{ownerState:n}=e;return[r.paper,r[`paperAnchor${$(n.anchor)}`],n.variant!=="temporary"&&r[`paperAnchorDocked${$(n.anchor)}`]]}})(J(({theme:e})=>({overflowY:"auto",display:"flex",flexDirection:"column",height:"100%",flex:"1 0 auto",zIndex:(e.vars||e).zIndex.drawer,WebkitOverflowScrolling:"touch",position:"fixed",top:0,outline:0,variants:[{props:{anchor:"left"},style:{left:0}},{props:{anchor:"top"},style:{top:0,left:0,right:0,height:"auto",maxHeight:"100%"}},{props:{anchor:"right"},style:{right:0}},{props:{anchor:"bottom"},style:{top:"auto",left:0,bottom:0,right:0,height:"auto",maxHeight:"100%"}},{props:({ownerState:r})=>r.anchor==="left"&&r.variant!=="temporary",style:{borderRight:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:r})=>r.anchor==="top"&&r.variant!=="temporary",style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:r})=>r.anchor==="right"&&r.variant!=="temporary",style:{borderLeft:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:r})=>r.anchor==="bottom"&&r.variant!=="temporary",style:{borderTop:`1px solid ${(e.vars||e).palette.divider}`}}]}))),je={left:"right",right:"left",top:"down",bottom:"up"};function jt(e){return["left","right"].includes(e)}function kt({direction:e},r){return e==="rtl"&&jt(r)?je[r]:r}const wt=u.forwardRef(function(r,n){const o=de({props:r,name:"MuiDrawer"}),s=Z(),a=He(),i={enter:s.transitions.duration.enteringScreen,exit:s.transitions.duration.leavingScreen},{anchor:c="left",BackdropProps:h,children:x,className:p,elevation:m=16,hideBackdrop:y=!1,ModalProps:{BackdropProps:P,...H}={},onClose:z,open:E=!1,PaperProps:v={},SlideProps:C,TransitionComponent:T,transitionDuration:j=i,variant:k="temporary",slots:D={},slotProps:d={},...w}=o,b=u.useRef(!1);u.useEffect(()=>{b.current=!0},[]);const X=kt({direction:a?"rtl":"ltr"},c),R={...o,anchor:c,elevation:m,open:E,variant:k,...w},B=gt(R),I={slots:{transition:T,...D},slotProps:{paper:v,transition:C,...d,backdrop:$e(d.backdrop||{...h,...P},{transitionDuration:j})}},[Y,_]=A("root",{ref:n,elementType:yt,className:O(B.root,B.modal,p),shouldForwardComponentProp:!0,ownerState:R,externalForwardedProps:{...I,...w,...H},additionalProps:{open:E,onClose:z,hideBackdrop:y,slots:{backdrop:I.slots.backdrop},slotProps:{backdrop:I.slotProps.backdrop}}}),[N,l]=A("paper",{elementType:vt,shouldForwardComponentProp:!0,className:O(B.paper,v.className),ownerState:R,externalForwardedProps:I,additionalProps:{elevation:k==="temporary"?m:0,square:!0,...k==="temporary"&&{role:"dialog","aria-modal":"true"}}}),[g,L]=A("docked",{elementType:bt,ref:n,className:O(B.root,B.docked,p),ownerState:R,externalForwardedProps:I,additionalProps:w}),[we,Se]=A("transition",{elementType:ft,ownerState:R,externalForwardedProps:I,additionalProps:{in:E,direction:je[X],timeout:j,appear:b.current}}),re=t.jsx(N,{...l,children:x});if(k==="permanent")return t.jsx(g,{...L,children:re});const ne=t.jsx(we,{...Se,children:re});return k==="persistent"?t.jsx(g,{...L,children:ne}):t.jsx(Y,{..._,children:ne})}),St=be({themeId:Oe}),Pt=S([t.jsx("path",{d:"M19 5v14H5V5zm0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2"},"0"),t.jsx("path",{d:"M14 17H7v-2h7zm3-4H7v-2h10zm0-4H7V7h10z"},"1")]),Et=S(t.jsx("path",{d:"M10.85 12.65h2.3L12 9zM20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM14.3 16l-.7-2h-3.2l-.7 2H7.8L11 7h2l3.2 9z"})),Ct=S(t.jsx("path",{d:"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"})),It=S(t.jsx("path",{d:"M9.4 16.6 4.8 12l4.6-4.6L8 6l-6 6 6 6zm5.2 0 4.6-4.6-4.6-4.6L16 6l6 6-6 6z"})),Mt=S(t.jsx("path",{d:"m9.17 6 2 2H20v10H4V6zM10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8z"})),zt=S(t.jsx("path",{d:"m12 5.69 5 4.5V18h-2v-6H9v6H7v-7.81zM12 3 2 12h3v8h6v-6h2v6h6v-8h3z"})),Tt=S(t.jsx("path",{d:"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3z"})),Dt=S([t.jsx("path",{d:"M12 22C6.49 22 2 17.51 2 12S6.49 2 12 2s10 4.04 10 9c0 3.31-2.69 6-6 6h-1.77c-.28 0-.5.22-.5.5 0 .12.05.23.13.33.41.47.64 1.06.64 1.67 0 1.38-1.12 2.5-2.5 2.5m0-18c-4.41 0-8 3.59-8 8s3.59 8 8 8c.28 0 .5-.22.5-.5 0-.16-.08-.28-.14-.35-.41-.46-.63-1.05-.63-1.65 0-1.38 1.12-2.5 2.5-2.5H16c2.21 0 4-1.79 4-4 0-3.86-3.59-7-8-7"},"0"),t.jsx("circle",{cx:"6.5",cy:"11.5",r:"1.5"},"1"),t.jsx("circle",{cx:"9.5",cy:"7.5",r:"1.5"},"2"),t.jsx("circle",{cx:"14.5",cy:"7.5",r:"1.5"},"3"),t.jsx("circle",{cx:"17.5",cy:"11.5",r:"1.5"},"4")]);function G(e){return t.jsxs(Ve,{...e,viewBox:"0 0 24 24",sx:{fill:"none",...e.sx},children:[t.jsx("rect",{x:"3.25",y:"4.75",width:"17.5",height:"14.5",rx:"2.25",stroke:"currentColor",strokeWidth:"1.5"}),t.jsx("line",{x1:"8.5",y1:"5",x2:"8.5",y2:"19",stroke:"currentColor",strokeWidth:"1.5"})]})}const Rt={light:"dark",dark:"auto",auto:"light"},ie={light:"Light mode (click for dark)",dark:"Dark mode (click for auto)",auto:"Auto mode (follows OS, click for light)"};function Bt(){const{mode:e,userChoice:r,setMode:n,allowUserToggle:o}=Ue();if(!o)return null;const s=r??e,a=Rt[s],i=s==="auto"?Et:s==="dark"?Ge:Je;return t.jsx(Q,{title:ie[s],children:t.jsx(V,{"aria-label":ie[s],onClick:()=>n(a),size:"small",children:t.jsx(i,{fontSize:"small"})})})}function K({label:e,onClick:r}){return t.jsx(Qe,{clickable:!0,onClick:r,label:e,size:"small","aria-label":`Navigate to ${e}`,sx:n=>({backgroundColor:"background.paper",color:"text.primary",fontWeight:500,fontSize:"0.875rem",height:32,cursor:"pointer",borderRadius:"4px",maxWidth:320,"& .MuiChip-label":{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},"&:hover":{backgroundColor:n.palette.mode==="dark"?"rgba(255, 255, 255, 0.08)":"grey.100"}})})}function Lt(){const e=he(),r=e["*"],n=q();return!e.environmentName&&!e.packageName&&!r?null:t.jsx(f,{sx:{display:"flex",alignItems:"center",minWidth:0},children:t.jsxs(ut,{"aria-label":"breadcrumb",separator:t.jsx(Ct,{sx:{fontSize:14,color:"text.secondary"}}),children:[e.environmentName&&t.jsx(K,{label:e.environmentName,onClick:o=>n(`/${e.environmentName}/`,o)}),e.packageName&&t.jsx(K,{label:e.packageName,onClick:o=>n(`/${e.environmentName}/${e.packageName}/`,o)}),r&&t.jsx(K,{label:r,onClick:o=>n(`/${e.environmentName}/${e.packageName}/${r}`,o)})]})})}const Ht=260,$t=64;function ke({isCollapsed:e,onToggleCollapse:r,logoHeader:n}){return t.jsxs(f,{sx:{height:"100dvh",width:e?$t:Ht,flexShrink:0,display:"flex",flexDirection:"column",backgroundColor:"background.paper",transition:"width 0.2s cubic-bezier(0.4, 0, 0.2, 1)",overflow:"hidden"},children:[t.jsx(Nt,{isCollapsed:e,onToggleCollapse:r,logoHeader:n}),t.jsxs(f,{sx:{flex:1,overflowY:"auto",overflowX:"hidden",py:1},children:[t.jsx(At,{isCollapsed:e}),t.jsx(Wt,{isCollapsed:e}),t.jsx(Ot,{isCollapsed:e})]}),t.jsx(Vt,{isCollapsed:e})]})}function Nt({isCollapsed:e,onToggleCollapse:r,logoHeader:n}){const o=q();return n?t.jsxs(f,{sx:{height:56,display:"flex",alignItems:"center",justifyContent:"space-between",px:e?0:2,flexShrink:0},children:[n,t.jsx(V,{size:"small",onClick:r,"aria-label":e?"Expand sidebar":"Collapse sidebar",children:t.jsx(G,{fontSize:"small"})})]}):t.jsxs(f,{sx:{minHeight:56,display:"flex",flexDirection:e?"column":"row",alignItems:"center",justifyContent:e?"center":"space-between",gap:e?.5:0,py:e?1:0,px:e?0:2,flexShrink:0},children:[t.jsxs(f,{onClick:s=>o("/",s),sx:{display:"flex",alignItems:"center",gap:1,cursor:"pointer",minWidth:0},children:[t.jsx(f,{component:"img",src:"/logo.svg",alt:"Malloy",sx:{width:24,height:24,flexShrink:0}}),!e&&t.jsx(U,{variant:"subtitle1",sx:{color:"text.primary",fontWeight:500,letterSpacing:"-0.025em",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:"Malloy Publisher"})]}),t.jsx(Q,{title:e?"Expand sidebar":"Collapse sidebar",placement:"right",children:t.jsx(V,{size:"small",onClick:r,"aria-label":e?"Expand sidebar":"Collapse sidebar",children:t.jsx(G,{fontSize:"small"})})})]})}function At({isCollapsed:e}){const n=xe().pathname==="/";return t.jsx(F,{sx:{py:0},children:t.jsx(ee,{icon:t.jsx(zt,{fontSize:"small"}),label:"Home",to:"/",selected:n,isCollapsed:e})})}function Wt({isCollapsed:e}){const{apiClients:r}=Fe(),n=he(),{data:o}=Xe({queryKey:["environments"],queryFn:()=>r.environments.listEnvironments()}),s=o?.data??[];return s.length===0?null:t.jsxs(f,{sx:{mt:1},children:[!e&&t.jsx(U,{variant:"caption",sx:{display:"block",px:3,py:1,color:"text.secondary",fontWeight:500,textTransform:"uppercase",fontSize:"0.6875rem",letterSpacing:"0.5px"},children:"Environments"}),t.jsx(F,{sx:{py:0},children:s.map(a=>{const i=a.name??"";return t.jsx(ee,{icon:t.jsx(Mt,{fontSize:"small"}),label:i,to:`/${i}`,selected:n.environmentName===i,isCollapsed:e},i)})})]})}function Ot({isCollapsed:e}){const n=xe().pathname.startsWith("/settings/theme");return t.jsxs(f,{sx:{mt:1},children:[!e&&t.jsx(U,{variant:"caption",sx:{display:"block",px:3,py:1,color:"text.secondary",fontWeight:500,textTransform:"uppercase",fontSize:"0.6875rem",letterSpacing:"0.5px"},children:"Settings"}),t.jsx(F,{sx:{py:0},children:t.jsx(ee,{icon:t.jsx(Dt,{fontSize:"small"}),label:"Visualization theme",to:"/settings/theme",selected:n,isCollapsed:e})})]})}function Vt({isCollapsed:e}){const r=[{label:"Malloy Docs",href:ae.docsHome,icon:t.jsx(Pt,{fontSize:"small"}),external:!0},{label:"Publisher Docs",href:ae.publishing,icon:t.jsx(Tt,{fontSize:"small"}),external:!0},{label:"Publisher API",href:"/api-doc.html",icon:t.jsx(It,{fontSize:"small"}),external:!1}];return t.jsx(F,{sx:{py:1},children:r.map(n=>t.jsx(Ut,{label:n.label,href:n.href,icon:n.icon,external:n.external,isCollapsed:e},n.label))})}function ee({icon:e,label:r,to:n,selected:o,isCollapsed:s}){const a=q(),i=t.jsxs(fe,{selected:o,onClick:c=>a(n,c),sx:{justifyContent:s?"center":"flex-start",px:s?0:2},children:[t.jsx(me,{sx:{minWidth:s?0:36,justifyContent:"center",color:o?"text.primary":"text.secondary"},children:e}),!s&&t.jsx(ge,{primary:r,primaryTypographyProps:{variant:"body2",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}})]});return s?t.jsx(Q,{title:r,placement:"right",children:t.jsx(f,{children:i})}):i}function Ut({label:e,href:r,icon:n,external:o,isCollapsed:s}){const a=t.jsxs(fe,{component:"a",href:r,target:o?"_blank":void 0,rel:o?"noopener noreferrer":void 0,sx:{justifyContent:s?"center":"flex-start",px:s?0:2},children:[t.jsx(me,{sx:{minWidth:s?0:36,justifyContent:"center",color:"text.secondary"},children:n}),!s&&t.jsx(ge,{primary:e,primaryTypographyProps:{variant:"body2",sx:{color:"text.secondary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}})]});return s?t.jsx(Q,{title:e,placement:"right",children:t.jsx(f,{children:a})}):a}function Qt({open:e,onClose:r,logoHeader:n}){return t.jsx(wt,{anchor:"left",open:e,onClose:r,ModalProps:{keepMounted:!0},sx:{display:{xs:"block",md:"none"},"& .MuiDrawer-paper":{boxSizing:"border-box",width:260}},children:t.jsx(ke,{isCollapsed:!1,onToggleCollapse:r,logoHeader:n})})}function Yt({headerProps:e}){const r=Z(),n=St(r.breakpoints.up("md")),[o,s]=u.useState(!1),[a,i]=u.useState(!1);return u.useEffect(()=>{n&&o&&s(!1)},[n,o]),t.jsxs(f,{sx:{height:"100dvh",display:"flex",flexDirection:"row",bgcolor:"background.default"},children:[n&&t.jsx(ke,{isCollapsed:a,onToggleCollapse:()=>i(c=>!c),logoHeader:e?.logoHeader}),t.jsxs(f,{component:"main",sx:{flex:1,display:"flex",flexDirection:"column",minWidth:0},children:[t.jsxs(f,{sx:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"space-between",height:Ye.headerHeight,px:{xs:1,md:3},backgroundColor:"background.default"},children:[t.jsx(f,{sx:{display:{xs:"flex",md:"none"},alignItems:"center",mr:1},children:t.jsx(V,{size:"small",onClick:()=>s(!0),"aria-label":"Open navigation",children:t.jsx(G,{fontSize:"small"})})}),t.jsx(f,{sx:{flex:1,minWidth:0,display:"flex",alignItems:"center"},children:t.jsx(Lt,{})}),t.jsxs(f,{id:"header-actions-portal",sx:{display:"flex",alignItems:"center",flexShrink:0,gap:1},children:[t.jsx(Bt,{}),e?.endCap]})]}),t.jsx(f,{sx:{flex:1,overflow:"auto",minWidth:320,minHeight:0},children:t.jsx(u.Suspense,{fallback:t.jsx(Ke,{}),children:t.jsx(_e,{})})})]}),t.jsx(Qt,{open:o,onClose:()=>s(!1),logoHeader:e?.logoHeader})]})}export{Yt as default};
|
|
1
|
+
import{u as Pe,g as Ee,r as u,R as Ce,a as Ie,c as S,j as t,s as M,B as Me,m as J,e as oe,b as le,d as ce,f as de,h as ze,i as O,k as pe,l as U,n as Z,o as Te,p as De,q as Re,t as ue,v as Be,w as se,x as Le,z as He,A as $e,C as A,D as $,M as Ne,P as Ae,E as We,F as Oe,S as Ve,G as Ue,H as F,I as V,J as he,T as q,K as f,L as Fe,N as xe,O as Q,Q as Qe,U as Xe,V as ae,W as fe,X as me,Y as ge,Z as Ye,_ as _e,$ as Ke}from"./index-t7IEDVsK.js";import{D as Ge,L as Je}from"./LightMode--nzFqff1.js";function Ze(e,r,n,o,s){const[a,i]=u.useState(()=>s&&n?n(e).matches:o?o(e).matches:r);return Ie(()=>{if(!n)return;const c=n(e),h=()=>{i(c.matches)};return h(),c.addEventListener("change",h),()=>{c.removeEventListener("change",h)}},[e,n]),a}const qe={...Ce},ye=qe.useSyncExternalStore;function et(e,r,n,o,s){const a=u.useCallback(()=>r,[r]),i=u.useMemo(()=>{if(s&&n)return()=>n(e).matches;if(o!==null){const{matches:p}=o(e);return()=>p}return a},[a,e,o,s,n]),[c,h]=u.useMemo(()=>{if(n===null)return[a,()=>()=>{}];const p=n(e);return[()=>p.matches,m=>(p.addEventListener("change",m),()=>{p.removeEventListener("change",m)})]},[a,n,e]);return ye(h,c,i)}function be(e={}){const{themeId:r}=e;return function(o,s={}){let a=Pe();a&&r&&(a=a[r]||a);const i=typeof window<"u"&&typeof window.matchMedia<"u",{defaultMatches:c=!1,matchMedia:h=i?window.matchMedia:null,ssrMatchMedia:x=null,noSsr:p=!1}=Ee({name:"MuiUseMediaQuery",props:s,theme:a});let m=typeof o=="function"?o(a):o;return m=m.replace(/^@media( ?)/m,""),m.includes("print")&&console.warn(["MUI: You have provided a `print` query to the `useMediaQuery` hook.","Using the print media query to modify print styles can lead to unexpected results.","Consider using the `displayPrint` field in the `sx` prop instead.","More information about `displayPrint` on our docs: https://mui.com/system/display/#display-in-print."].join(`
|
|
2
|
+
`)),(ye!==void 0?et:Ze)(m,c,h,x,p)}}be();const tt=S(t.jsx("path",{d:"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"})),rt=M(Me,{name:"MuiBreadcrumbCollapsed"})(J(({theme:e})=>({display:"flex",marginLeft:`calc(${e.spacing(1)} * 0.5)`,marginRight:`calc(${e.spacing(1)} * 0.5)`,...e.palette.mode==="light"?{backgroundColor:e.palette.grey[100],color:e.palette.grey[700]}:{backgroundColor:e.palette.grey[700],color:e.palette.grey[100]},borderRadius:2,"&:hover, &:focus":{...e.palette.mode==="light"?{backgroundColor:e.palette.grey[200]}:{backgroundColor:e.palette.grey[600]}},"&:active":{boxShadow:e.shadows[0],...e.palette.mode==="light"?{backgroundColor:oe(e.palette.grey[200],.12)}:{backgroundColor:oe(e.palette.grey[600],.12)}}}))),nt=M(tt)({width:24,height:16});function ot(e){const{slots:r={},slotProps:n={},...o}=e,s=e;return t.jsx("li",{children:t.jsx(rt,{focusRipple:!0,...o,ownerState:s,children:t.jsx(nt,{as:r.CollapsedIcon,ownerState:s,...n.collapsedIcon})})})}function st(e){return ce("MuiBreadcrumbs",e)}const at=le("MuiBreadcrumbs",["root","ol","li","separator"]),it=e=>{const{classes:r}=e;return pe({root:["root"],li:["li"],ol:["ol"],separator:["separator"]},st,r)},lt=M(U,{name:"MuiBreadcrumbs",slot:"Root",overridesResolver:(e,r)=>[{[`& .${at.li}`]:r.li},r.root]})({}),ct=M("ol",{name:"MuiBreadcrumbs",slot:"Ol"})({display:"flex",flexWrap:"wrap",alignItems:"center",padding:0,margin:0,listStyle:"none"}),dt=M("li",{name:"MuiBreadcrumbs",slot:"Separator"})({display:"flex",userSelect:"none",marginLeft:8,marginRight:8});function pt(e,r,n,o){return e.reduce((s,a,i)=>(i<e.length-1?s=s.concat(a,t.jsx(dt,{"aria-hidden":!0,className:r,ownerState:o,children:n},`separator-${i}`)):s.push(a),s),[])}const ut=u.forwardRef(function(r,n){const o=de({props:r,name:"MuiBreadcrumbs"}),{children:s,className:a,component:i="nav",slots:c={},slotProps:h={},expandText:x="Show path",itemsAfterCollapse:p=1,itemsBeforeCollapse:m=1,maxItems:y=8,separator:P="/",...H}=o,[z,E]=u.useState(!1),v={...o,component:i,expanded:z,expandText:x,itemsAfterCollapse:p,itemsBeforeCollapse:m,maxItems:y,separator:P},C=it(v),T=ze({elementType:c.CollapsedIcon,externalSlotProps:h.collapsedIcon,ownerState:v}),j=u.useRef(null),k=d=>{const w=()=>{E(!0);const b=j.current.querySelector("a[href],button,[tabindex]");b&&b.focus()};return m+p>=d.length?d:[...d.slice(0,m),t.jsx(ot,{"aria-label":x,slots:{CollapsedIcon:c.CollapsedIcon},slotProps:{collapsedIcon:T},onClick:w},"ellipsis"),...d.slice(d.length-p,d.length)]},D=u.Children.toArray(s).filter(d=>u.isValidElement(d)).map((d,w)=>t.jsx("li",{className:C.li,children:d},`child-${w}`));return t.jsx(lt,{ref:n,component:i,color:"textSecondary",className:O(C.root,a),ownerState:v,...H,children:t.jsx(ct,{className:C.ol,ref:j,ownerState:v,children:pt(z||y&&D.length<=y?D:k(D),C.separator,P,v)})})});function ht(e,r,n){const o=r.getBoundingClientRect(),s=n&&n.getBoundingClientRect(),a=ue(r);let i;if(r.fakeTransform)i=r.fakeTransform;else{const x=a.getComputedStyle(r);i=x.getPropertyValue("-webkit-transform")||x.getPropertyValue("transform")}let c=0,h=0;if(i&&i!=="none"&&typeof i=="string"){const x=i.split("(")[1].split(")")[0].split(",");c=parseInt(x[4],10),h=parseInt(x[5],10)}return e==="left"?s?`translateX(${s.right+c-o.left}px)`:`translateX(${a.innerWidth+c-o.left}px)`:e==="right"?s?`translateX(-${o.right-s.left-c}px)`:`translateX(-${o.left+o.width-c}px)`:e==="up"?s?`translateY(${s.bottom+h-o.top}px)`:`translateY(${a.innerHeight+h-o.top}px)`:s?`translateY(-${o.top-s.top+o.height-h}px)`:`translateY(-${o.top+o.height-h}px)`}function xt(e){return typeof e=="function"?e():e}function W(e,r,n){const o=xt(n),s=ht(e,r,o);s&&(r.style.webkitTransform=s,r.style.transform=s)}const ft=u.forwardRef(function(r,n){const o=Z(),s={enter:o.transitions.easing.easeOut,exit:o.transitions.easing.sharp},a={enter:o.transitions.duration.enteringScreen,exit:o.transitions.duration.leavingScreen},{addEndListener:i,appear:c=!0,children:h,container:x,direction:p="down",easing:m=s,in:y,onEnter:P,onEntered:H,onEntering:z,onExit:E,onExited:v,onExiting:C,style:T,timeout:j=a,TransitionComponent:k=Te,...D}=r,d=u.useRef(null),w=De(Re(h),d,n),b=l=>g=>{l&&(g===void 0?l(d.current):l(d.current,g))},X=b((l,g)=>{W(p,l,x),Le(l),P&&P(l,g)}),te=b((l,g)=>{const L=se({timeout:j,style:T,easing:m},{mode:"enter"});l.style.webkitTransition=o.transitions.create("-webkit-transform",{...L}),l.style.transition=o.transitions.create("transform",{...L}),l.style.webkitTransform="none",l.style.transform="none",z&&z(l,g)}),R=b(H),B=b(C),I=b(l=>{const g=se({timeout:j,style:T,easing:m},{mode:"exit"});l.style.webkitTransition=o.transitions.create("-webkit-transform",g),l.style.transition=o.transitions.create("transform",g),W(p,l,x),E&&E(l)}),Y=b(l=>{l.style.webkitTransition="",l.style.transition="",v&&v(l)}),_=l=>{i&&i(d.current,l)},N=u.useCallback(()=>{d.current&&W(p,d.current,x)},[p,x]);return u.useEffect(()=>{if(y||p==="down"||p==="right")return;const l=Be(()=>{d.current&&W(p,d.current,x)}),g=ue(d.current);return g.addEventListener("resize",l),()=>{l.clear(),g.removeEventListener("resize",l)}},[p,y,x]),u.useEffect(()=>{y||N()},[y,N]),t.jsx(k,{nodeRef:d,onEnter:X,onEntered:R,onEntering:te,onExit:I,onExited:Y,onExiting:B,addEndListener:_,appear:c,in:y,timeout:j,...D,children:(l,{ownerState:g,...L})=>u.cloneElement(h,{ref:w,style:{visibility:l==="exited"&&!y?"hidden":void 0,...T,...h.props.style},...L})})});function mt(e){return ce("MuiDrawer",e)}le("MuiDrawer",["root","docked","paper","anchorLeft","anchorRight","anchorTop","anchorBottom","paperAnchorLeft","paperAnchorRight","paperAnchorTop","paperAnchorBottom","paperAnchorDockedLeft","paperAnchorDockedRight","paperAnchorDockedTop","paperAnchorDockedBottom","modal"]);const ve=(e,r)=>{const{ownerState:n}=e;return[r.root,(n.variant==="permanent"||n.variant==="persistent")&&r.docked,r.modal]},gt=e=>{const{classes:r,anchor:n,variant:o}=e,s={root:["root",`anchor${$(n)}`],docked:[(o==="permanent"||o==="persistent")&&"docked"],modal:["modal"],paper:["paper",`paperAnchor${$(n)}`,o!=="temporary"&&`paperAnchorDocked${$(n)}`]};return pe(s,mt,r)},yt=M(Ne,{name:"MuiDrawer",slot:"Root",overridesResolver:ve})(J(({theme:e})=>({zIndex:(e.vars||e).zIndex.drawer}))),bt=M("div",{shouldForwardProp:We,name:"MuiDrawer",slot:"Docked",skipVariantsResolver:!1,overridesResolver:ve})({flex:"0 0 auto"}),vt=M(Ae,{name:"MuiDrawer",slot:"Paper",overridesResolver:(e,r)=>{const{ownerState:n}=e;return[r.paper,r[`paperAnchor${$(n.anchor)}`],n.variant!=="temporary"&&r[`paperAnchorDocked${$(n.anchor)}`]]}})(J(({theme:e})=>({overflowY:"auto",display:"flex",flexDirection:"column",height:"100%",flex:"1 0 auto",zIndex:(e.vars||e).zIndex.drawer,WebkitOverflowScrolling:"touch",position:"fixed",top:0,outline:0,variants:[{props:{anchor:"left"},style:{left:0}},{props:{anchor:"top"},style:{top:0,left:0,right:0,height:"auto",maxHeight:"100%"}},{props:{anchor:"right"},style:{right:0}},{props:{anchor:"bottom"},style:{top:"auto",left:0,bottom:0,right:0,height:"auto",maxHeight:"100%"}},{props:({ownerState:r})=>r.anchor==="left"&&r.variant!=="temporary",style:{borderRight:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:r})=>r.anchor==="top"&&r.variant!=="temporary",style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:r})=>r.anchor==="right"&&r.variant!=="temporary",style:{borderLeft:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:r})=>r.anchor==="bottom"&&r.variant!=="temporary",style:{borderTop:`1px solid ${(e.vars||e).palette.divider}`}}]}))),je={left:"right",right:"left",top:"down",bottom:"up"};function jt(e){return["left","right"].includes(e)}function kt({direction:e},r){return e==="rtl"&&jt(r)?je[r]:r}const wt=u.forwardRef(function(r,n){const o=de({props:r,name:"MuiDrawer"}),s=Z(),a=He(),i={enter:s.transitions.duration.enteringScreen,exit:s.transitions.duration.leavingScreen},{anchor:c="left",BackdropProps:h,children:x,className:p,elevation:m=16,hideBackdrop:y=!1,ModalProps:{BackdropProps:P,...H}={},onClose:z,open:E=!1,PaperProps:v={},SlideProps:C,TransitionComponent:T,transitionDuration:j=i,variant:k="temporary",slots:D={},slotProps:d={},...w}=o,b=u.useRef(!1);u.useEffect(()=>{b.current=!0},[]);const X=kt({direction:a?"rtl":"ltr"},c),R={...o,anchor:c,elevation:m,open:E,variant:k,...w},B=gt(R),I={slots:{transition:T,...D},slotProps:{paper:v,transition:C,...d,backdrop:$e(d.backdrop||{...h,...P},{transitionDuration:j})}},[Y,_]=A("root",{ref:n,elementType:yt,className:O(B.root,B.modal,p),shouldForwardComponentProp:!0,ownerState:R,externalForwardedProps:{...I,...w,...H},additionalProps:{open:E,onClose:z,hideBackdrop:y,slots:{backdrop:I.slots.backdrop},slotProps:{backdrop:I.slotProps.backdrop}}}),[N,l]=A("paper",{elementType:vt,shouldForwardComponentProp:!0,className:O(B.paper,v.className),ownerState:R,externalForwardedProps:I,additionalProps:{elevation:k==="temporary"?m:0,square:!0,...k==="temporary"&&{role:"dialog","aria-modal":"true"}}}),[g,L]=A("docked",{elementType:bt,ref:n,className:O(B.root,B.docked,p),ownerState:R,externalForwardedProps:I,additionalProps:w}),[we,Se]=A("transition",{elementType:ft,ownerState:R,externalForwardedProps:I,additionalProps:{in:E,direction:je[X],timeout:j,appear:b.current}}),re=t.jsx(N,{...l,children:x});if(k==="permanent")return t.jsx(g,{...L,children:re});const ne=t.jsx(we,{...Se,children:re});return k==="persistent"?t.jsx(g,{...L,children:ne}):t.jsx(Y,{..._,children:ne})}),St=be({themeId:Oe}),Pt=S([t.jsx("path",{d:"M19 5v14H5V5zm0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2"},"0"),t.jsx("path",{d:"M14 17H7v-2h7zm3-4H7v-2h10zm0-4H7V7h10z"},"1")]),Et=S(t.jsx("path",{d:"M10.85 12.65h2.3L12 9zM20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM14.3 16l-.7-2h-3.2l-.7 2H7.8L11 7h2l3.2 9z"})),Ct=S(t.jsx("path",{d:"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"})),It=S(t.jsx("path",{d:"M9.4 16.6 4.8 12l4.6-4.6L8 6l-6 6 6 6zm5.2 0 4.6-4.6-4.6-4.6L16 6l6 6-6 6z"})),Mt=S(t.jsx("path",{d:"m9.17 6 2 2H20v10H4V6zM10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8z"})),zt=S(t.jsx("path",{d:"m12 5.69 5 4.5V18h-2v-6H9v6H7v-7.81zM12 3 2 12h3v8h6v-6h2v6h6v-8h3z"})),Tt=S(t.jsx("path",{d:"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3z"})),Dt=S([t.jsx("path",{d:"M12 22C6.49 22 2 17.51 2 12S6.49 2 12 2s10 4.04 10 9c0 3.31-2.69 6-6 6h-1.77c-.28 0-.5.22-.5.5 0 .12.05.23.13.33.41.47.64 1.06.64 1.67 0 1.38-1.12 2.5-2.5 2.5m0-18c-4.41 0-8 3.59-8 8s3.59 8 8 8c.28 0 .5-.22.5-.5 0-.16-.08-.28-.14-.35-.41-.46-.63-1.05-.63-1.65 0-1.38 1.12-2.5 2.5-2.5H16c2.21 0 4-1.79 4-4 0-3.86-3.59-7-8-7"},"0"),t.jsx("circle",{cx:"6.5",cy:"11.5",r:"1.5"},"1"),t.jsx("circle",{cx:"9.5",cy:"7.5",r:"1.5"},"2"),t.jsx("circle",{cx:"14.5",cy:"7.5",r:"1.5"},"3"),t.jsx("circle",{cx:"17.5",cy:"11.5",r:"1.5"},"4")]);function G(e){return t.jsxs(Ve,{...e,viewBox:"0 0 24 24",sx:{fill:"none",...e.sx},children:[t.jsx("rect",{x:"3.25",y:"4.75",width:"17.5",height:"14.5",rx:"2.25",stroke:"currentColor",strokeWidth:"1.5"}),t.jsx("line",{x1:"8.5",y1:"5",x2:"8.5",y2:"19",stroke:"currentColor",strokeWidth:"1.5"})]})}const Rt={light:"dark",dark:"auto",auto:"light"},ie={light:"Light mode (click for dark)",dark:"Dark mode (click for auto)",auto:"Auto mode (follows OS, click for light)"};function Bt(){const{mode:e,userChoice:r,setMode:n,allowUserToggle:o}=Ue();if(!o)return null;const s=r??e,a=Rt[s],i=s==="auto"?Et:s==="dark"?Ge:Je;return t.jsx(F,{title:ie[s],children:t.jsx(V,{"aria-label":ie[s],onClick:()=>n(a),size:"small",children:t.jsx(i,{fontSize:"small"})})})}function K({label:e,onClick:r}){return t.jsx(Fe,{clickable:!0,onClick:r,label:e,size:"small","aria-label":`Navigate to ${e}`,sx:n=>({backgroundColor:"background.paper",color:"text.primary",fontWeight:500,fontSize:"0.875rem",height:32,cursor:"pointer",borderRadius:"4px",maxWidth:320,"& .MuiChip-label":{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},"&:hover":{backgroundColor:n.palette.mode==="dark"?"rgba(255, 255, 255, 0.08)":"grey.100"}})})}function Lt(){const e=he(),r=e["*"],n=q();return!e.environmentName&&!e.packageName&&!r?null:t.jsx(f,{sx:{display:"flex",alignItems:"center",minWidth:0},children:t.jsxs(ut,{"aria-label":"breadcrumb",separator:t.jsx(Ct,{sx:{fontSize:14,color:"text.secondary"}}),children:[e.environmentName&&t.jsx(K,{label:e.environmentName,onClick:o=>n(`/${e.environmentName}/`,o)}),e.packageName&&t.jsx(K,{label:e.packageName,onClick:o=>n(`/${e.environmentName}/${e.packageName}/`,o)}),r&&t.jsx(K,{label:r,onClick:o=>n(`/${e.environmentName}/${e.packageName}/${r}`,o)})]})})}const Ht=260,$t=64;function ke({isCollapsed:e,onToggleCollapse:r,logoHeader:n}){return t.jsxs(f,{sx:{height:"100dvh",width:e?$t:Ht,flexShrink:0,display:"flex",flexDirection:"column",backgroundColor:"background.paper",transition:"width 0.2s cubic-bezier(0.4, 0, 0.2, 1)",overflow:"hidden"},children:[t.jsx(Nt,{isCollapsed:e,onToggleCollapse:r,logoHeader:n}),t.jsxs(f,{sx:{flex:1,overflowY:"auto",overflowX:"hidden",py:1},children:[t.jsx(At,{isCollapsed:e}),t.jsx(Wt,{isCollapsed:e}),t.jsx(Ot,{isCollapsed:e})]}),t.jsx(Vt,{isCollapsed:e})]})}function Nt({isCollapsed:e,onToggleCollapse:r,logoHeader:n}){const o=q();return n?t.jsxs(f,{sx:{height:56,display:"flex",alignItems:"center",justifyContent:"space-between",px:e?0:2,flexShrink:0},children:[n,t.jsx(V,{size:"small",onClick:r,"aria-label":e?"Expand sidebar":"Collapse sidebar",children:t.jsx(G,{fontSize:"small"})})]}):t.jsxs(f,{sx:{minHeight:56,display:"flex",flexDirection:e?"column":"row",alignItems:"center",justifyContent:e?"center":"space-between",gap:e?.5:0,py:e?1:0,px:e?0:2,flexShrink:0},children:[t.jsxs(f,{onClick:s=>o("/",s),sx:{display:"flex",alignItems:"center",gap:1,cursor:"pointer",minWidth:0},children:[t.jsx(f,{component:"img",src:"/logo.svg",alt:"Malloy",sx:{width:24,height:24,flexShrink:0}}),!e&&t.jsx(U,{variant:"subtitle1",sx:{color:"text.primary",fontWeight:500,letterSpacing:"-0.025em",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:"Malloy Publisher"})]}),t.jsx(F,{title:e?"Expand sidebar":"Collapse sidebar",placement:"right",children:t.jsx(V,{size:"small",onClick:r,"aria-label":e?"Expand sidebar":"Collapse sidebar",children:t.jsx(G,{fontSize:"small"})})})]})}function At({isCollapsed:e}){const n=xe().pathname==="/";return t.jsx(Q,{sx:{py:0},children:t.jsx(ee,{icon:t.jsx(zt,{fontSize:"small"}),label:"Home",to:"/",selected:n,isCollapsed:e})})}function Wt({isCollapsed:e}){const{apiClients:r}=Qe(),n=he(),{data:o}=Xe({queryKey:["environments"],queryFn:()=>r.environments.listEnvironments()}),s=o?.data??[];return s.length===0?null:t.jsxs(f,{sx:{mt:1},children:[!e&&t.jsx(U,{variant:"caption",sx:{display:"block",px:3,py:1,color:"text.secondary",fontWeight:500,textTransform:"uppercase",fontSize:"0.6875rem",letterSpacing:"0.5px"},children:"Environments"}),t.jsx(Q,{sx:{py:0},children:s.map(a=>{const i=a.name??"";return t.jsx(ee,{icon:t.jsx(Mt,{fontSize:"small"}),label:i,to:`/${i}`,selected:n.environmentName===i,isCollapsed:e},i)})})]})}function Ot({isCollapsed:e}){const n=xe().pathname.startsWith("/settings/theme");return t.jsxs(f,{sx:{mt:1},children:[!e&&t.jsx(U,{variant:"caption",sx:{display:"block",px:3,py:1,color:"text.secondary",fontWeight:500,textTransform:"uppercase",fontSize:"0.6875rem",letterSpacing:"0.5px"},children:"Settings"}),t.jsx(Q,{sx:{py:0},children:t.jsx(ee,{icon:t.jsx(Dt,{fontSize:"small"}),label:"Visualization theme",to:"/settings/theme",selected:n,isCollapsed:e})})]})}function Vt({isCollapsed:e}){const r=[{label:"Malloy Docs",href:ae.docsHome,icon:t.jsx(Pt,{fontSize:"small"}),external:!0},{label:"Publisher Docs",href:ae.publishing,icon:t.jsx(Tt,{fontSize:"small"}),external:!0},{label:"Publisher API",href:"/api-doc.html",icon:t.jsx(It,{fontSize:"small"}),external:!1}];return t.jsx(Q,{sx:{py:1},children:r.map(n=>t.jsx(Ut,{label:n.label,href:n.href,icon:n.icon,external:n.external,isCollapsed:e},n.label))})}function ee({icon:e,label:r,to:n,selected:o,isCollapsed:s}){const a=q(),i=t.jsxs(fe,{selected:o,onClick:c=>a(n,c),sx:{justifyContent:s?"center":"flex-start",px:s?0:2},children:[t.jsx(me,{sx:{minWidth:s?0:36,justifyContent:"center",color:o?"text.primary":"text.secondary"},children:e}),!s&&t.jsx(ge,{primary:r,primaryTypographyProps:{variant:"body2",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}})]});return s?t.jsx(F,{title:r,placement:"right",children:t.jsx(f,{children:i})}):i}function Ut({label:e,href:r,icon:n,external:o,isCollapsed:s}){const a=t.jsxs(fe,{component:"a",href:r,target:o?"_blank":void 0,rel:o?"noopener noreferrer":void 0,sx:{justifyContent:s?"center":"flex-start",px:s?0:2},children:[t.jsx(me,{sx:{minWidth:s?0:36,justifyContent:"center",color:"text.secondary"},children:n}),!s&&t.jsx(ge,{primary:e,primaryTypographyProps:{variant:"body2",sx:{color:"text.secondary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}})]});return s?t.jsx(F,{title:e,placement:"right",children:t.jsx(f,{children:a})}):a}function Ft({open:e,onClose:r,logoHeader:n}){return t.jsx(wt,{anchor:"left",open:e,onClose:r,ModalProps:{keepMounted:!0},sx:{display:{xs:"block",md:"none"},"& .MuiDrawer-paper":{boxSizing:"border-box",width:260}},children:t.jsx(ke,{isCollapsed:!1,onToggleCollapse:r,logoHeader:n})})}function Yt({headerProps:e}){const r=Z(),n=St(r.breakpoints.up("md")),[o,s]=u.useState(!1),[a,i]=u.useState(!1);return u.useEffect(()=>{n&&o&&s(!1)},[n,o]),t.jsxs(f,{sx:{height:"100dvh",display:"flex",flexDirection:"row",bgcolor:"background.default"},children:[n&&t.jsx(ke,{isCollapsed:a,onToggleCollapse:()=>i(c=>!c),logoHeader:e?.logoHeader}),t.jsxs(f,{component:"main",sx:{flex:1,display:"flex",flexDirection:"column",minWidth:0},children:[t.jsxs(f,{sx:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"space-between",height:Ye.headerHeight,px:{xs:1,md:3},backgroundColor:"background.default"},children:[t.jsx(f,{sx:{display:{xs:"flex",md:"none"},alignItems:"center",mr:1},children:t.jsx(V,{size:"small",onClick:()=>s(!0),"aria-label":"Open navigation",children:t.jsx(G,{fontSize:"small"})})}),t.jsx(f,{sx:{flex:1,minWidth:0,display:"flex",alignItems:"center"},children:t.jsx(Lt,{})}),t.jsxs(f,{id:"header-actions-portal",sx:{display:"flex",alignItems:"center",flexShrink:0,gap:1},children:[t.jsx(Bt,{}),e?.endCap]})]}),t.jsx(f,{sx:{flex:1,overflow:"auto",minWidth:320,minHeight:0},children:t.jsx(u.Suspense,{fallback:t.jsx(Ke,{}),children:t.jsx(_e,{})})})]}),t.jsx(Ft,{open:o,onClose:()=>s(!1),logoHeader:e?.logoHeader})]})}export{Yt as default};
|
package/dist/app/assets/{MaterializationsPage-h3ONDcgJ.js → MaterializationsPage-BqaGRrxZ.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{J as r,T as t,j as e,a3 as c,ac as o}from"./index-t7IEDVsK.js";function m(){const{environmentName:a,packageName:n}=r(),s=t();if(a)if(n){const i=c({environmentName:a,packageName:n});return e.jsx(o,{onClickPackageFile:s,resourceUri:i})}else return e.jsx("div",{children:e.jsx("h2",{children:"Missing package name"})});else return e.jsx("div",{children:e.jsx("h2",{children:"Missing environment name"})})}export{m as default};
|