@malloy-publisher/app 0.6.0 → 0.8.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/dist/api-doc.yaml +136 -37
- package/dist/assets/EnvironmentPage-Be-JAMS6.js +1 -0
- package/dist/assets/HomePage-DsdQpZuT.js +1 -0
- package/dist/assets/{LightMode-BpHRmI5M.js → LightMode-DyjqECoH.js} +1 -1
- package/dist/assets/{MainPage-BHleF-Kb.js → MainPage-DAaQnh6y.js} +2 -2
- package/dist/assets/{ModelPage-Cgw-SbZi.js → ModelPage-B7yaRDmM.js} +2 -2
- package/dist/assets/PackagePage-7b0klbWy.js +1 -0
- package/dist/assets/{RenderedResult-DSgqZUiN.es-CL0FEank.js → RenderedResult-CYyhQekT.es-DJ3BRrLl.js} +3 -3
- package/dist/assets/{RouteError-DBMc9ccU.js → RouteError-kdHl1qpH.js} +1 -1
- package/dist/assets/{ThemeEditorPage-ByJlsmNu.js → ThemeEditorPage-DIt45eWv.js} +1 -1
- package/dist/assets/{ToggleButtonGroup-BHEVw4Ti.js → ToggleButtonGroup-Dl_oTC8r.js} +1 -1
- package/dist/assets/{index-rWWmF7hn.js → index-Bzqs2UuN.js} +1 -1
- package/dist/assets/{index-C5BtJ1GX.js → index-C1qGlR2a.js} +105 -105
- package/dist/assets/{index-c3i6ScGn.js → index-C5hv_y6G.js} +1 -1
- package/dist/assets/{index-BdwkgpbO.js → index-T1Cl-rQv.js} +1 -1
- package/dist/assets/{index-Dyxfz1yO.js → index-t9-rAE4l.js} +1 -1
- package/dist/assets/{index.es-VI5lesX5.js → index.es-BlAu_Rj1.js} +4 -4
- package/dist/index.html +1 -1
- package/package.json +2 -2
- package/dist/assets/EnvironmentPage-C4IrQrKG.js +0 -1
- package/dist/assets/HomePage-DDyGPzmK.js +0 -1
- package/dist/assets/PackagePage-Cy0c37D0.js +0 -1
package/dist/api-doc.yaml
CHANGED
|
@@ -1899,25 +1899,31 @@ paths:
|
|
|
1899
1899
|
serving, so `error` is only reachable on the paths that keep per-model
|
|
1900
1900
|
placeholders. Treat it as present-but-uncommon rather than the normal
|
|
1901
1901
|
way a broken dashboard surfaces. When the package curates its query surface
|
|
1902
|
-
(
|
|
1903
|
-
`
|
|
1904
|
-
|
|
1902
|
+
(a surface from `explores` or from a root `index.malloy`, with
|
|
1903
|
+
`queryableSources` left at `"declared"`), a dashboard whose entry file is
|
|
1904
|
+
not on that surface is omitted, because its query and given names would
|
|
1905
|
+
not be runnable. A root `index.malloy` cannot export a dashboard file,
|
|
1906
|
+
so a package curated only by that file omits every dashboard; the omission is reported in the package's `warnings` as of the
|
|
1905
1907
|
last load. A metadata `PATCH` that TIGHTENS curation takes effect on
|
|
1906
1908
|
this listing immediately; one that relaxes it takes effect on the next
|
|
1907
1909
|
package reload, because the withheld dashboards were never built into
|
|
1908
1910
|
the cached set. Either way the matching warning is computed at load, so
|
|
1909
1911
|
after a `PATCH` it appears only once the package reloads.
|
|
1910
1912
|
|
|
1911
|
-
Where the boundary is active at all, which needs `explores`
|
|
1912
|
-
AND `queryableSources` left at
|
|
1913
|
+
Where the boundary is active at all, which needs a surface (`explores`
|
|
1914
|
+
declared, or a root `index.malloy`) AND `queryableSources` left at
|
|
1915
|
+
`"declared"`, being listed does not by
|
|
1913
1916
|
itself guarantee the dashboard runs: the queryable sources are the
|
|
1914
1917
|
union of every listed file's `export {}` closure, so a dashboard whose
|
|
1915
1918
|
tiles read a source that only an UNLISTED file exports is still served
|
|
1916
1919
|
while those queries are refused. The fix is to list that file too, or
|
|
1917
1920
|
to re-export the source from one already listed. It is served rather
|
|
1918
1921
|
than withheld because withholding on a guess would hide dashboards that
|
|
1919
|
-
do work.
|
|
1920
|
-
|
|
1922
|
+
do work. Each such tile is reported in the package's `warnings` with
|
|
1923
|
+
severity `error`, as of the last load, naming the tile. The check reads
|
|
1924
|
+
the tile's source from its text, so a tile written in a form it cannot
|
|
1925
|
+
read is not reported. Under `"all"` nothing is refused, so the
|
|
1926
|
+
situation does not arise.
|
|
1921
1927
|
parameters:
|
|
1922
1928
|
- name: environmentName
|
|
1923
1929
|
in: path
|
|
@@ -3088,17 +3094,29 @@ components:
|
|
|
3088
3094
|
loaded; defaults to `package` when the manifest omits it.
|
|
3089
3095
|
explores:
|
|
3090
3096
|
type: array
|
|
3097
|
+
deprecated: true
|
|
3091
3098
|
items:
|
|
3092
3099
|
type: string
|
|
3093
3100
|
description: >-
|
|
3094
|
-
|
|
3095
|
-
|
|
3096
|
-
`listModels()`, and within-file discovery is filtered to each
|
|
3097
|
-
model's `export {}` closure.
|
|
3098
|
-
|
|
3099
|
-
.malloy file still compiles for import/join resolution but is
|
|
3100
|
-
hidden from listings once `explores` is declared. Notebooks are
|
|
3101
|
+
The package's discovery surface and query boundary: model file
|
|
3102
|
+
paths relative to the package root. Only these models are listed
|
|
3103
|
+
via `listModels()`, and within-file discovery is filtered to each
|
|
3104
|
+
model's `export {}` closure. Every other .malloy file still
|
|
3105
|
+
compiles for import/join resolution but is hidden. Notebooks are
|
|
3101
3106
|
always listed regardless of this field.
|
|
3107
|
+
DEPRECATED for a one-file surface, still honored: a root
|
|
3108
|
+
`index.malloy` is the surface when this key is absent, and gives the
|
|
3109
|
+
same listing and the same boundary with no manifest field. A surface
|
|
3110
|
+
spanning several files is what the convention cannot express, so
|
|
3111
|
+
that use stays supported, with no replacement and no deprecation
|
|
3112
|
+
warning at load.
|
|
3113
|
+
This value MAY have been derived by the server from a root
|
|
3114
|
+
`index.malloy` rather than written by the package author, and the
|
|
3115
|
+
response does not distinguish the two — deliberately, because
|
|
3116
|
+
nothing downstream treats them differently. An explicit key always
|
|
3117
|
+
wins over the convention, and an explicit empty array means
|
|
3118
|
+
"do not curate" and suppresses it. A package is uncurated only when
|
|
3119
|
+
it has neither this key nor a root `index.malloy`.
|
|
3102
3120
|
exploresWarnings:
|
|
3103
3121
|
type: array
|
|
3104
3122
|
readOnly: true
|
|
@@ -3132,14 +3150,18 @@ components:
|
|
|
3132
3150
|
degrade attribution. A refusal is the one materialization finding the
|
|
3133
3151
|
build plan cannot also be read for: a refused `storage`/`colocated`
|
|
3134
3152
|
source is ABSENT from `BuildPlan.sources`, so nothing there records
|
|
3135
|
-
that the annotation was written at all. Discovery findings: a model
|
|
3136
|
-
export closure surfaces no sources or
|
|
3137
|
-
empty and renders a blank page
|
|
3153
|
+
that the annotation was written at all. Discovery findings: a model
|
|
3154
|
+
on the package's surface whose export closure surfaces no sources or
|
|
3155
|
+
named queries, so it lists as empty and renders a blank page; a
|
|
3156
|
+
surface whose every model failed to compile, so every model in the
|
|
3157
|
+
package answers 404 by name; and, on the reload that caused it, a
|
|
3158
|
+
package that had a surface and now has none, so every source that
|
|
3159
|
+
surface withheld is listed and queryable by name again. Dashboard findings: a
|
|
3138
3160
|
`dashboards/` file whose `# artifact` tag does not parse or does not
|
|
3139
3161
|
describe a dashboard, a tile or suggest query that does not resolve,
|
|
3140
3162
|
a `# drill` naming a destination that is not a dashboard, and a
|
|
3141
3163
|
dashboard held back from the listing because its entry file is not
|
|
3142
|
-
|
|
3164
|
+
on the package's surface. Two dashboard findings are about Publisher rather
|
|
3143
3165
|
than about the package: one when a file carrying an artifact tag
|
|
3144
3166
|
could not be read and so is not served at all, and one when the lint
|
|
3145
3167
|
stops early, in which case the list must be read as incomplete
|
|
@@ -3271,6 +3293,7 @@ components:
|
|
|
3271
3293
|
never reached are exactly what it cannot report.
|
|
3272
3294
|
queryableSources:
|
|
3273
3295
|
type: string
|
|
3296
|
+
deprecated: true
|
|
3274
3297
|
enum:
|
|
3275
3298
|
- declared
|
|
3276
3299
|
- all
|
|
@@ -3294,11 +3317,20 @@ components:
|
|
|
3294
3317
|
`/compile` with the generic 404, so the exemption cannot be used to
|
|
3295
3318
|
enumerate gated names.
|
|
3296
3319
|
`"all"` decouples the axes: `explores`/`export {}` gate discovery
|
|
3297
|
-
only and every compiled source stays directly queryable.
|
|
3298
|
-
|
|
3299
|
-
|
|
3300
|
-
`
|
|
3320
|
+
only and every compiled source stays directly queryable. The two
|
|
3321
|
+
modes are equivalent (everything queryable) only where there is no
|
|
3322
|
+
curated surface at all, which now means no `explores` AND no root
|
|
3323
|
+
`index.malloy` — a package with that file has a surface whether or
|
|
3324
|
+
not the key is present. Invalid values fall back to `"declared"`. Identity-based access is a separate concern — see
|
|
3301
3325
|
`#(authorize)` and `#(access_filter)`.
|
|
3326
|
+
DEPRECATED, still honored. `"declared"` is already the default, so
|
|
3327
|
+
the key changes nothing and a root `index.malloy` gives the same
|
|
3328
|
+
curated-and-enforced surface with no manifest field.
|
|
3329
|
+
`"all"` is the exception: `index.malloy` does NOT replace it,
|
|
3330
|
+
because a surface derived from one always enforces the boundary.
|
|
3331
|
+
It stays supported with no deprecation warning at load. To curate
|
|
3332
|
+
listings without refusing queries, keep both this key and an
|
|
3333
|
+
explicit `explores`.
|
|
3302
3334
|
manifestLocation:
|
|
3303
3335
|
type: ["string", "null"]
|
|
3304
3336
|
description: |
|
|
@@ -5660,22 +5692,39 @@ components:
|
|
|
5660
5692
|
type: string
|
|
5661
5693
|
enum: ["append", "file", "package"]
|
|
5662
5694
|
default: append
|
|
5663
|
-
description:
|
|
5695
|
+
description: >
|
|
5664
5696
|
What the source means, and how far the check reaches. "append"
|
|
5665
|
-
(default
|
|
5666
|
-
|
|
5667
|
-
|
|
5668
|
-
|
|
5669
|
-
|
|
5670
|
-
|
|
5671
|
-
|
|
5672
|
-
|
|
5673
|
-
|
|
5674
|
-
|
|
5675
|
-
|
|
5676
|
-
|
|
5677
|
-
|
|
5678
|
-
|
|
5697
|
+
(default) appends the source to the model in the URL and compiles
|
|
5698
|
+
it in that namespace — right for NEW definitions; an edit to an
|
|
5699
|
+
existing definition collides ("Cannot redefine"), and diagnostic
|
|
5700
|
+
positions land in the concatenated virtual file. "file" compiles
|
|
5701
|
+
the source AS that model, replacing its on-disk content for the
|
|
5702
|
+
check — validates an edit before saving, at true file coordinates.
|
|
5703
|
+
"package" runs the same worker compiler and file selection as
|
|
5704
|
+
reload over every .malloy and .malloynb file, without swapping the
|
|
5705
|
+
result into the served package; with a source, importers compile
|
|
5706
|
+
against the replacement. Package diagnostics can name files hidden
|
|
5707
|
+
from discovery. No rows or SQL are returned, and caller-provided
|
|
5708
|
+
source remains subject to authorize gates. includeSql is not
|
|
5709
|
+
available at "package".
|
|
5710
|
+
|
|
5711
|
+
"append" text is checked against the model's PUBLISHED surface, so
|
|
5712
|
+
it may not declare its own data roots: import, connection.table(…),
|
|
5713
|
+
connection.sql(…), given:, ##! compiler flags and the raw-SQL
|
|
5714
|
+
function forms (name!type(…), sql_number, sql_string and the rest
|
|
5715
|
+
of that family) are refused with a 400. Those belong in a model
|
|
5716
|
+
file, so validate text declaring them at "file" or "package", which
|
|
5717
|
+
are not restricted. "append" text must also stand alone as
|
|
5718
|
+
top-level Malloy: a bare view:, dimension: or measure:, and anything
|
|
5719
|
+
that only parses as a continuation of the model's last statement,
|
|
5720
|
+
is refused with a 400, because the check reads the submitted text by
|
|
5721
|
+
itself. Wrap a view body in a top-level query:, or a field in a
|
|
5722
|
+
throwaway source: check is <source> extend { … }. Compiling at
|
|
5723
|
+
"append" also requires the model named in the URL to load: a model
|
|
5724
|
+
that does not compile is a 400 carrying that model's own problems,
|
|
5725
|
+
and a model that does not exist is a 400 that deliberately says only
|
|
5726
|
+
that it could not be loaded. An invalid scope value is rejected with
|
|
5727
|
+
a 400 naming the valid set.
|
|
5679
5728
|
includeSql:
|
|
5680
5729
|
type: boolean
|
|
5681
5730
|
default: false
|
|
@@ -6112,6 +6161,28 @@ components:
|
|
|
6112
6161
|
The given names this term reads, in first-seen order. A reader must
|
|
6113
6162
|
bind these for the term to apply; binding none applies each given's
|
|
6114
6163
|
declared default, as a live query would.
|
|
6164
|
+
JoinedTerms:
|
|
6165
|
+
type: object
|
|
6166
|
+
required: [alias, source, terms]
|
|
6167
|
+
description: >-
|
|
6168
|
+
A join to a given-scoped source, declared on a persisted source and read
|
|
6169
|
+
per caller through the joined source's own artifact.
|
|
6170
|
+
properties:
|
|
6171
|
+
alias:
|
|
6172
|
+
type: string
|
|
6173
|
+
description: >-
|
|
6174
|
+
The join's alias as the author wrote it. Dotted for a join reached
|
|
6175
|
+
through another such join (`grant.team`).
|
|
6176
|
+
source:
|
|
6177
|
+
type: string
|
|
6178
|
+
description: The joined source's name — itself a persisted source.
|
|
6179
|
+
terms:
|
|
6180
|
+
type: array
|
|
6181
|
+
items:
|
|
6182
|
+
$ref: "#/components/schemas/StrippedTerm"
|
|
6183
|
+
description: >-
|
|
6184
|
+
The joined source's own stripped terms, which its binding re-applies
|
|
6185
|
+
with the caller's values.
|
|
6115
6186
|
PersistSourcePlan:
|
|
6116
6187
|
type: object
|
|
6117
6188
|
required: [name, sourceID, connectionName, sourceEntityId, sql, columns]
|
|
@@ -6216,6 +6287,25 @@ components:
|
|
|
6216
6287
|
reader has to bind for it to be served correctly. The publisher's own
|
|
6217
6288
|
serve path re-derives these from the compiled model rather than from
|
|
6218
6289
|
here.
|
|
6290
|
+
joinedTerms:
|
|
6291
|
+
type: array
|
|
6292
|
+
items:
|
|
6293
|
+
$ref: "#/components/schemas/JoinedTerms"
|
|
6294
|
+
description: >-
|
|
6295
|
+
The joins declared on this source whose TARGET is scoped by a given —
|
|
6296
|
+
one entry per such join, naming the joined source and the terms its
|
|
6297
|
+
own artifact re-applies. Absent or empty means no field of this source
|
|
6298
|
+
reads a caller-scoped join.
|
|
6299
|
+
|
|
6300
|
+
|
|
6301
|
+
These terms are not stripped from THIS artifact: a join is not part of
|
|
6302
|
+
a persist source's build, so this table holds the same rows with or
|
|
6303
|
+
without it. They are what makes a field reading through the join
|
|
6304
|
+
answer per caller (a visibility dimension that null-checks a grant
|
|
6305
|
+
table, say), and they are applied only by the joined source's own
|
|
6306
|
+
binding. So a reader serving this artifact must bind the joined source
|
|
6307
|
+
too; without it, the join cannot be re-emitted and any query reading
|
|
6308
|
+
through the alias must be served live.
|
|
6219
6309
|
refresh:
|
|
6220
6310
|
type: ["string", "null"]
|
|
6221
6311
|
description: >-
|
|
@@ -6780,6 +6870,15 @@ components:
|
|
|
6780
6870
|
failure. A consumer computes the same destination key a successful
|
|
6781
6871
|
build would (`storageDestinationName ?? connectionName`) whether the
|
|
6782
6872
|
source built or failed.
|
|
6873
|
+
refused:
|
|
6874
|
+
type: boolean
|
|
6875
|
+
description: >-
|
|
6876
|
+
True when the materialization-eligibility gate refused this source,
|
|
6877
|
+
so the build was never attempted and `reason` is the gate's message.
|
|
6878
|
+
A refusal is a property of the model, not of the run: retrying
|
|
6879
|
+
returns the same answer until the model changes, unlike a warehouse
|
|
6880
|
+
or compile failure, which may clear on its own. Absent for every
|
|
6881
|
+
other failure.
|
|
6783
6882
|
|
|
6784
6883
|
ManifestEntry:
|
|
6785
6884
|
type: object
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t,L as r,j as e,a7 as i,ai as o}from"./index-C1qGlR2a.js";function m(){const s=t(),{environmentName:n}=r();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 n,j as o,p as a}from"./index-C1qGlR2a.js";function s(){const t=n();return o.jsx(a,{onClickEnvironment:t})}export{s as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c,j as s}from"./index-
|
|
1
|
+
import{c,j as s}from"./index-C1qGlR2a.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 Ce,r as u,R as Ie,a as ze,c as S,j as t,s as z,B as Me,m as K,e as ne,b as le,d as ce,
|
|
2
|
-
`)),(ye!==void 0?rt:et)(x,c,h,f,p)}}be();const nt=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"})),ot=z(Me,{name:"MuiBreadcrumbCollapsed"})(K(({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:ne(e.palette.grey[200],.12)}:{backgroundColor:ne(e.palette.grey[600],.12)}}}))),st=z(nt)({width:24,height:16});function at(e){const{slots:r={},slotProps:n={},...o}=e,s=e;return t.jsx("li",{children:t.jsx(ot,{focusRipple:!0,...o,ownerState:s,children:t.jsx(st,{as:r.CollapsedIcon,ownerState:s,...n.collapsedIcon})})})}function it(e){return ce("MuiBreadcrumbs",e)}const lt=le("MuiBreadcrumbs",["root","ol","li","separator"]),ct=e=>{const{classes:r}=e;return pe({root:["root"],li:["li"],ol:["ol"],separator:["separator"]},it,r)},dt=z(G,{name:"MuiBreadcrumbs",slot:"Root",overridesResolver:(e,r)=>[{[`& .${lt.li}`]:r.li},r.root]})({}),pt=z("ol",{name:"MuiBreadcrumbs",slot:"Ol"})({display:"flex",flexWrap:"wrap",alignItems:"center",padding:0,margin:0,listStyle:"none"}),ut=z("li",{name:"MuiBreadcrumbs",slot:"Separator"})({display:"flex",userSelect:"none",marginLeft:8,marginRight:8});function ht(e,r,n,o){return e.reduce((s,a,i)=>(i<e.length-1?s=s.concat(a,t.jsx(ut,{"aria-hidden":!0,className:r,ownerState:o,children:n},`separator-${i}`)):s.push(a),s),[])}const ft=u.forwardRef(function(r,n){const o=de({props:r,name:"MuiBreadcrumbs"}),{children:s,className:a,component:i="nav",slots:c={},slotProps:h={},expandText:f="Show path",itemsAfterCollapse:p=1,itemsBeforeCollapse:x=1,maxItems:y=8,separator:E="/",...H}=o,[M,P]=u.useState(!1),v={...o,component:i,expanded:M,expandText:f,itemsAfterCollapse:p,itemsBeforeCollapse:x,maxItems:y,separator:E},C=ct(v),D=De({elementType:c.CollapsedIcon,externalSlotProps:h.collapsedIcon,ownerState:v}),j=u.useRef(null),k=d=>{const w=()=>{P(!0);const b=j.current.querySelector("a[href],button,[tabindex]");b&&b.focus()};return x+p>=d.length?d:[...d.slice(0,x),t.jsx(at,{"aria-label":f,slots:{CollapsedIcon:c.CollapsedIcon},slotProps:{collapsedIcon:D},onClick:w},"ellipsis"),...d.slice(d.length-p,d.length)]},T=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(dt,{ref:n,component:i,color:"textSecondary",className:Q(C.root,a),ownerState:v,...H,children:t.jsx(pt,{className:C.ol,ref:j,ownerState:v,children:ht(M||y&&T.length<=y?T:k(T),C.separator,E,v)})})});function xt(e,r,n){const o=r.getBoundingClientRect(),s=n&&n.getBoundingClientRect(),a=ue(r);let i;if(r.fakeTransform)i=r.fakeTransform;else{const f=a.getComputedStyle(r);i=f.getPropertyValue("-webkit-transform")||f.getPropertyValue("transform")}let c=0,h=0;if(i&&i!=="none"&&typeof i=="string"){const f=i.split("(")[1].split(")")[0].split(",");c=parseInt(f[4],10),h=parseInt(f[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 mt(e){return typeof e=="function"?e():e}function V(e,r,n){const o=mt(n),s=xt(e,r,o);s&&(r.style.webkitTransform=s,r.style.transform=s)}const gt=u.forwardRef(function(r,n){const o=J(),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:f,direction:p="down",easing:x=s,in:y,onEnter:E,onEntered:H,onEntering:M,onExit:P,onExited:v,onExiting:C,style:D,timeout:j=a,TransitionComponent:k=Te,...T}=r,d=u.useRef(null),w=Re(Be(h),d,n),b=l=>g=>{l&&(g===void 0?l(d.current):l(d.current,g))},U=b((l,g)=>{V(p,l,f),He(l),E&&E(l,g)}),ee=b((l,g)=>{const L=oe({timeout:j,style:D,easing:x},{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",M&&M(l,g)}),R=b(H),B=b(C),I=b(l=>{const g=oe({timeout:j,style:D,easing:x},{mode:"exit"});l.style.webkitTransition=o.transitions.create("-webkit-transform",g),l.style.transition=o.transitions.create("transform",g),V(p,l,f),P&&P(l)}),F=b(l=>{l.style.webkitTransition="",l.style.transition="",v&&v(l)}),X=l=>{i&&i(d.current,l)},O=u.useCallback(()=>{d.current&&V(p,d.current,f)},[p,f]);return u.useEffect(()=>{if(y||p==="down"||p==="right")return;const l=Le(()=>{d.current&&V(p,d.current,f)}),g=ue(d.current);return g.addEventListener("resize",l),()=>{l.clear(),g.removeEventListener("resize",l)}},[p,y,f]),u.useEffect(()=>{y||O()},[y,O]),t.jsx(k,{nodeRef:d,onEnter:U,onEntered:R,onEntering:ee,onExit:I,onExited:F,onExiting:B,addEndListener:X,appear:c,in:y,timeout:j,...T,children:(l,{ownerState:g,...L})=>u.cloneElement(h,{ref:w,style:{visibility:l==="exited"&&!y?"hidden":void 0,...D,...h.props.style},...L})})});function yt(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]},bt=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,yt,r)},vt=z(Ae,{name:"MuiDrawer",slot:"Root",overridesResolver:ve})(K(({theme:e})=>({zIndex:(e.vars||e).zIndex.drawer}))),jt=z("div",{shouldForwardProp:We,name:"MuiDrawer",slot:"Docked",skipVariantsResolver:!1,overridesResolver:ve})({flex:"0 0 auto"}),kt=z(Oe,{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)}`]]}})(K(({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 wt(e){return["left","right"].includes(e)}function St({direction:e},r){return e==="rtl"&&wt(r)?je[r]:r}const Et=u.forwardRef(function(r,n){const o=de({props:r,name:"MuiDrawer"}),s=J(),a=$e(),i={enter:s.transitions.duration.enteringScreen,exit:s.transitions.duration.leavingScreen},{anchor:c="left",BackdropProps:h,children:f,className:p,elevation:x=16,hideBackdrop:y=!1,ModalProps:{BackdropProps:E,...H}={},onClose:M,open:P=!1,PaperProps:v={},SlideProps:C,TransitionComponent:D,transitionDuration:j=i,variant:k="temporary",slots:T={},slotProps:d={},...w}=o,b=u.useRef(!1);u.useEffect(()=>{b.current=!0},[]);const U=St({direction:a?"rtl":"ltr"},c),R={...o,anchor:c,elevation:x,open:P,variant:k,...w},B=bt(R),I={slots:{transition:D,...T},slotProps:{paper:v,transition:C,...d,backdrop:Ne(d.backdrop||{...h,...E},{transitionDuration:j})}},[F,X]=W("root",{ref:n,elementType:vt,className:Q(B.root,B.modal,p),shouldForwardComponentProp:!0,ownerState:R,externalForwardedProps:{...I,...w,...H},additionalProps:{open:P,onClose:M,hideBackdrop:y,slots:{backdrop:I.slots.backdrop},slotProps:{backdrop:I.slotProps.backdrop}}}),[O,l]=W("paper",{elementType:kt,shouldForwardComponentProp:!0,className:Q(B.paper,v.className),ownerState:R,externalForwardedProps:I,additionalProps:{elevation:k==="temporary"?x:0,square:!0,...k==="temporary"&&{role:"dialog","aria-modal":"true"}}}),[g,L]=W("docked",{elementType:jt,ref:n,className:Q(B.root,B.docked,p),ownerState:R,externalForwardedProps:I,additionalProps:w}),[Se,Ee]=W("transition",{elementType:gt,ownerState:R,externalForwardedProps:I,additionalProps:{in:P,direction:je[U],timeout:j,appear:b.current}}),te=t.jsx(O,{...l,children:f});if(k==="permanent")return t.jsx(g,{...L,children:te});const re=t.jsx(Se,{...Ee,children:te});return k==="persistent"?t.jsx(g,{...L,children:re}):t.jsx(F,{...X,children:re})}),Pt=be({themeId:Ve}),Ct=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")]),It=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"})),zt=S(t.jsx("path",{d:"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"})),Mt=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"})),Dt=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"})),Tt=S(t.jsx("path",{d:"m12 5.69 5 4.5V18h-2v-6H9v6H7v-7.81zM12 3 2 12h3v8h6v-6h2v6h6v-8h3z"})),Rt=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"})),Bt=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 _(e){return t.jsxs(Qe,{...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 Lt={light:"dark",dark:"auto",auto:"light"},ae={light:"Light mode (click for dark)",dark:"Dark mode (click for auto)",auto:"Auto mode (follows OS, click for light)"};function Ht(){const{mode:e,userChoice:r,setMode:n,allowUserToggle:o}=Ue();if(!o)return null;const s=r??e,a=Lt[s],i=s==="auto"?It:s==="dark"?Ze:qe;return t.jsx(A,{title:ae[s],children:t.jsx(N,{"aria-label":ae[s],onClick:()=>n(a),size:"small",children:t.jsx(i,{fontSize:"small"})})})}const ie="Visualization theme";function $t(){const e=Fe(),n=he().pathname.startsWith("/settings/theme");return t.jsx(A,{title:ie,children:t.jsx(N,{"aria-label":ie,onClick:()=>e("/settings/theme"),size:"small",color:n?"primary":"default",children:t.jsx(Bt,{fontSize:"small"})})})}function Y({label:e,onClick:r}){return t.jsx(Xe,{clickable:!0,onClick:r,label:e,size:"small","aria-label":`Navigate to ${e}`,sx:n=>({backgroundColor:"transparent",border:`1px solid ${n.palette.divider}`,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 Nt(){const e=fe(),r=e["*"],n=Z();return!e.environmentName&&!e.packageName&&!r?null:t.jsx(m,{sx:{display:"flex",alignItems:"center",minWidth:0},children:t.jsxs(ft,{"aria-label":"breadcrumb",separator:t.jsx(zt,{sx:{fontSize:14,color:"text.secondary"}}),children:[e.environmentName&&t.jsx(Y,{label:e.environmentName,onClick:o=>n(`/${e.environmentName}/`,o)}),e.packageName&&t.jsx(Y,{label:e.packageName,onClick:o=>n(`/${e.environmentName}/${e.packageName}/`,o)}),r&&t.jsx(Y,{label:r,onClick:o=>n(`/${e.environmentName}/${e.packageName}/${r}`,o)})]})})}const At=260,Ot=64;function ke({isCollapsed:e,onToggleCollapse:r,logoHeader:n}){return t.jsxs(m,{sx:{height:"100dvh",width:e?Ot:At,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(Wt,{isCollapsed:e,onToggleCollapse:r,logoHeader:n}),t.jsxs(m,{sx:{flex:1,overflowY:"auto",overflowX:"hidden",py:1},children:[t.jsx(Vt,{isCollapsed:e}),t.jsx(Qt,{isCollapsed:e})]}),t.jsx(Ut,{isCollapsed:e})]})}function Wt({isCollapsed:e,onToggleCollapse:r,logoHeader:n}){const o=Z();return n?t.jsxs(m,{sx:{height:56,display:"flex",alignItems:"center",justifyContent:"space-between",px:e?0:2,flexShrink:0},children:[n,t.jsx(N,{size:"small",onClick:r,"aria-label":e?"Expand sidebar":"Collapse sidebar",children:t.jsx(_,{fontSize:"small"})})]}):t.jsxs(m,{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(m,{onClick:s=>o("/",s),sx:{display:"flex",alignItems:"center",gap:1,cursor:"pointer",minWidth:0},children:[t.jsx(m,{component:"img",src:"/logo.svg",alt:"Malloy",sx:{width:24,height:24,flexShrink:0}}),!e&&t.jsx(G,{variant:"subtitle1",sx:{color:"text.primary",fontWeight:500,letterSpacing:"-0.025em",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:"Malloy Publisher"})]}),t.jsx(A,{title:e?"Expand sidebar":"Collapse sidebar",placement:"right",children:t.jsx(N,{size:"small",onClick:r,"aria-label":e?"Expand sidebar":"Collapse sidebar",children:t.jsx(_,{fontSize:"small"})})})]})}function Vt({isCollapsed:e}){const n=he().pathname==="/";return t.jsx(q,{sx:{py:0},children:t.jsx(we,{icon:t.jsx(Tt,{fontSize:"small"}),label:"Home",to:"/",selected:n,isCollapsed:e})})}function Qt({isCollapsed:e}){const{apiClients:r}=Ye(),n=fe(),{data:o}=_e({queryKey:["environments"],queryFn:()=>r.environments.listEnvironments()}),s=o?.data??[];return s.length===0?null:t.jsxs(m,{sx:{mt:1},children:[!e&&t.jsx(G,{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(we,{icon:t.jsx(Dt,{fontSize:"small"}),label:i,to:`/${i}`,selected:n.environmentName===i,isCollapsed:e},i)})})]})}function Ut({isCollapsed:e}){const r=[{label:"Malloy Docs",href:se.docsHome,icon:t.jsx(Ct,{fontSize:"small"}),external:!0},{label:"Publisher Docs",href:se.publishing,icon:t.jsx(Rt,{fontSize:"small"}),external:!0},{label:"Publisher API",href:"/api-doc.html",icon:t.jsx(Mt,{fontSize:"small"}),external:!1}];return t.jsx(q,{sx:{py:1},children:r.map(n=>t.jsx(Ft,{label:n.label,href:n.href,icon:n.icon,external:n.external,isCollapsed:e},n.label))})}function we({icon:e,label:r,to:n,selected:o,isCollapsed:s}){const a=Z(),i=t.jsxs(xe,{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(A,{title:r,placement:"right",children:t.jsx(m,{children:i})}):i}function Ft({label:e,href:r,icon:n,external:o,isCollapsed:s}){const a=t.jsxs(xe,{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(A,{title:e,placement:"right",children:t.jsx(m,{children:a})}):a}function Xt({open:e,onClose:r,logoHeader:n}){return t.jsx(Et,{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 Kt({headerProps:e}){const r=J(),n=Pt(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(m,{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(m,{component:"main",sx:{flex:1,display:"flex",flexDirection:"column",minWidth:0},children:[t.jsxs(m,{sx:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"space-between",height:Ke.headerHeight,px:{xs:1,md:3},backgroundColor:"background.default"},children:[t.jsx(m,{sx:{display:{xs:"flex",md:"none"},alignItems:"center",mr:1},children:t.jsx(N,{size:"small",onClick:()=>s(!0),"aria-label":"Open navigation",children:t.jsx(_,{fontSize:"small"})})}),t.jsx(m,{sx:{flex:1,minWidth:0,display:"flex",alignItems:"center"},children:t.jsx(Nt,{})}),t.jsxs(m,{id:"header-actions-portal",sx:{display:"flex",alignItems:"center",flexShrink:0,gap:1},children:[t.jsx($t,{}),t.jsx(Ht,{}),e?.endCap]})]}),t.jsx(m,{sx:{flex:1,overflow:"auto",minWidth:320,minHeight:0},children:t.jsx(u.Suspense,{fallback:t.jsx(Je,{}),children:t.jsx(Ge,{})})})]}),t.jsx(Xt,{open:o,onClose:()=>s(!1),logoHeader:e?.logoHeader})]})}export{Kt as default};
|
|
1
|
+
import{u as Pe,g as Ce,r as u,R as Ie,a as ze,c as S,j as t,s as z,B as Me,m as K,e as ne,b as le,d as ce,f as de,h as De,i as U,k as pe,T as G,l as J,n as Te,o as Re,q as Be,v as ue,w as Le,x as oe,y as He,z as $e,A as Ne,C as W,D as $,M as Ae,P as Oe,E as We,F as Ve,S as Ue,G as Qe,H as A,I as N,J as Fe,K as he,L as fe,t as Z,N as m,O as Xe,Q as q,U as Ye,V as _e,$ as se,W as xe,X as me,Y as ge,Z as Ke,_ as Ge,a0 as Je}from"./index-C1qGlR2a.js";import{D as Ze,L as qe}from"./LightMode-DyjqECoH.js";function et(e,r,n,o,s){const[a,i]=u.useState(()=>s&&n?n(e).matches:o?o(e).matches:r);return ze(()=>{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 tt={...Ie},ye=tt.useSyncExternalStore;function rt(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,x=>(p.addEventListener("change",x),()=>{p.removeEventListener("change",x)})]},[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:f=null,noSsr:p=!1}=Ce({name:"MuiUseMediaQuery",props:s,theme:a});let x=typeof o=="function"?o(a):o;return x=x.replace(/^@media( ?)/m,""),x.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?rt:et)(x,c,h,f,p)}}be();const nt=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"})),ot=z(Me,{name:"MuiBreadcrumbCollapsed"})(K(({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:ne(e.palette.grey[200],.12)}:{backgroundColor:ne(e.palette.grey[600],.12)}}}))),st=z(nt)({width:24,height:16});function at(e){const{slots:r={},slotProps:n={},...o}=e,s=e;return t.jsx("li",{children:t.jsx(ot,{focusRipple:!0,...o,ownerState:s,children:t.jsx(st,{as:r.CollapsedIcon,ownerState:s,...n.collapsedIcon})})})}function it(e){return ce("MuiBreadcrumbs",e)}const lt=le("MuiBreadcrumbs",["root","ol","li","separator"]),ct=e=>{const{classes:r}=e;return pe({root:["root"],li:["li"],ol:["ol"],separator:["separator"]},it,r)},dt=z(G,{name:"MuiBreadcrumbs",slot:"Root",overridesResolver:(e,r)=>[{[`& .${lt.li}`]:r.li},r.root]})({}),pt=z("ol",{name:"MuiBreadcrumbs",slot:"Ol"})({display:"flex",flexWrap:"wrap",alignItems:"center",padding:0,margin:0,listStyle:"none"}),ut=z("li",{name:"MuiBreadcrumbs",slot:"Separator"})({display:"flex",userSelect:"none",marginLeft:8,marginRight:8});function ht(e,r,n,o){return e.reduce((s,a,i)=>(i<e.length-1?s=s.concat(a,t.jsx(ut,{"aria-hidden":!0,className:r,ownerState:o,children:n},`separator-${i}`)):s.push(a),s),[])}const ft=u.forwardRef(function(r,n){const o=de({props:r,name:"MuiBreadcrumbs"}),{children:s,className:a,component:i="nav",slots:c={},slotProps:h={},expandText:f="Show path",itemsAfterCollapse:p=1,itemsBeforeCollapse:x=1,maxItems:y=8,separator:E="/",...H}=o,[M,P]=u.useState(!1),v={...o,component:i,expanded:M,expandText:f,itemsAfterCollapse:p,itemsBeforeCollapse:x,maxItems:y,separator:E},C=ct(v),D=De({elementType:c.CollapsedIcon,externalSlotProps:h.collapsedIcon,ownerState:v}),j=u.useRef(null),k=d=>{const w=()=>{P(!0);const b=j.current.querySelector("a[href],button,[tabindex]");b&&b.focus()};return x+p>=d.length?d:[...d.slice(0,x),t.jsx(at,{"aria-label":f,slots:{CollapsedIcon:c.CollapsedIcon},slotProps:{collapsedIcon:D},onClick:w},"ellipsis"),...d.slice(d.length-p,d.length)]},T=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(dt,{ref:n,component:i,color:"textSecondary",className:U(C.root,a),ownerState:v,...H,children:t.jsx(pt,{className:C.ol,ref:j,ownerState:v,children:ht(M||y&&T.length<=y?T:k(T),C.separator,E,v)})})});function xt(e,r,n){const o=r.getBoundingClientRect(),s=n&&n.getBoundingClientRect(),a=ue(r);let i;if(r.fakeTransform)i=r.fakeTransform;else{const f=a.getComputedStyle(r);i=f.getPropertyValue("-webkit-transform")||f.getPropertyValue("transform")}let c=0,h=0;if(i&&i!=="none"&&typeof i=="string"){const f=i.split("(")[1].split(")")[0].split(",");c=parseInt(f[4],10),h=parseInt(f[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 mt(e){return typeof e=="function"?e():e}function V(e,r,n){const o=mt(n),s=xt(e,r,o);s&&(r.style.webkitTransform=s,r.style.transform=s)}const gt=u.forwardRef(function(r,n){const o=J(),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:f,direction:p="down",easing:x=s,in:y,onEnter:E,onEntered:H,onEntering:M,onExit:P,onExited:v,onExiting:C,style:D,timeout:j=a,TransitionComponent:k=Te,...T}=r,d=u.useRef(null),w=Re(Be(h),d,n),b=l=>g=>{l&&(g===void 0?l(d.current):l(d.current,g))},Q=b((l,g)=>{V(p,l,f),He(l),E&&E(l,g)}),ee=b((l,g)=>{const L=oe({timeout:j,style:D,easing:x},{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",M&&M(l,g)}),R=b(H),B=b(C),I=b(l=>{const g=oe({timeout:j,style:D,easing:x},{mode:"exit"});l.style.webkitTransition=o.transitions.create("-webkit-transform",g),l.style.transition=o.transitions.create("transform",g),V(p,l,f),P&&P(l)}),F=b(l=>{l.style.webkitTransition="",l.style.transition="",v&&v(l)}),X=l=>{i&&i(d.current,l)},O=u.useCallback(()=>{d.current&&V(p,d.current,f)},[p,f]);return u.useEffect(()=>{if(y||p==="down"||p==="right")return;const l=Le(()=>{d.current&&V(p,d.current,f)}),g=ue(d.current);return g.addEventListener("resize",l),()=>{l.clear(),g.removeEventListener("resize",l)}},[p,y,f]),u.useEffect(()=>{y||O()},[y,O]),t.jsx(k,{nodeRef:d,onEnter:Q,onEntered:R,onEntering:ee,onExit:I,onExited:F,onExiting:B,addEndListener:X,appear:c,in:y,timeout:j,...T,children:(l,{ownerState:g,...L})=>u.cloneElement(h,{ref:w,style:{visibility:l==="exited"&&!y?"hidden":void 0,...D,...h.props.style},...L})})});function yt(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]},bt=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,yt,r)},vt=z(Ae,{name:"MuiDrawer",slot:"Root",overridesResolver:ve})(K(({theme:e})=>({zIndex:(e.vars||e).zIndex.drawer}))),jt=z("div",{shouldForwardProp:We,name:"MuiDrawer",slot:"Docked",skipVariantsResolver:!1,overridesResolver:ve})({flex:"0 0 auto"}),kt=z(Oe,{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)}`]]}})(K(({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 wt(e){return["left","right"].includes(e)}function St({direction:e},r){return e==="rtl"&&wt(r)?je[r]:r}const Et=u.forwardRef(function(r,n){const o=de({props:r,name:"MuiDrawer"}),s=J(),a=$e(),i={enter:s.transitions.duration.enteringScreen,exit:s.transitions.duration.leavingScreen},{anchor:c="left",BackdropProps:h,children:f,className:p,elevation:x=16,hideBackdrop:y=!1,ModalProps:{BackdropProps:E,...H}={},onClose:M,open:P=!1,PaperProps:v={},SlideProps:C,TransitionComponent:D,transitionDuration:j=i,variant:k="temporary",slots:T={},slotProps:d={},...w}=o,b=u.useRef(!1);u.useEffect(()=>{b.current=!0},[]);const Q=St({direction:a?"rtl":"ltr"},c),R={...o,anchor:c,elevation:x,open:P,variant:k,...w},B=bt(R),I={slots:{transition:D,...T},slotProps:{paper:v,transition:C,...d,backdrop:Ne(d.backdrop||{...h,...E},{transitionDuration:j})}},[F,X]=W("root",{ref:n,elementType:vt,className:U(B.root,B.modal,p),shouldForwardComponentProp:!0,ownerState:R,externalForwardedProps:{...I,...w,...H},additionalProps:{open:P,onClose:M,hideBackdrop:y,slots:{backdrop:I.slots.backdrop},slotProps:{backdrop:I.slotProps.backdrop}}}),[O,l]=W("paper",{elementType:kt,shouldForwardComponentProp:!0,className:U(B.paper,v.className),ownerState:R,externalForwardedProps:I,additionalProps:{elevation:k==="temporary"?x:0,square:!0,...k==="temporary"&&{role:"dialog","aria-modal":"true"}}}),[g,L]=W("docked",{elementType:jt,ref:n,className:U(B.root,B.docked,p),ownerState:R,externalForwardedProps:I,additionalProps:w}),[Se,Ee]=W("transition",{elementType:gt,ownerState:R,externalForwardedProps:I,additionalProps:{in:P,direction:je[Q],timeout:j,appear:b.current}}),te=t.jsx(O,{...l,children:f});if(k==="permanent")return t.jsx(g,{...L,children:te});const re=t.jsx(Se,{...Ee,children:te});return k==="persistent"?t.jsx(g,{...L,children:re}):t.jsx(F,{...X,children:re})}),Pt=be({themeId:Ve}),Ct=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")]),It=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"})),zt=S(t.jsx("path",{d:"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"})),Mt=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"})),Dt=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"})),Tt=S(t.jsx("path",{d:"m12 5.69 5 4.5V18h-2v-6H9v6H7v-7.81zM12 3 2 12h3v8h6v-6h2v6h6v-8h3z"})),Rt=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"})),Bt=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 _(e){return t.jsxs(Ue,{...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 Lt={light:"dark",dark:"auto",auto:"light"},ae={light:"Light mode (click for dark)",dark:"Dark mode (click for auto)",auto:"Auto mode (follows OS, click for light)"};function Ht(){const{mode:e,userChoice:r,setMode:n,allowUserToggle:o}=Qe();if(!o)return null;const s=r??e,a=Lt[s],i=s==="auto"?It:s==="dark"?Ze:qe;return t.jsx(A,{title:ae[s],children:t.jsx(N,{"aria-label":ae[s],onClick:()=>n(a),size:"small",children:t.jsx(i,{fontSize:"small"})})})}const ie="Visualization theme";function $t(){const e=Fe(),n=he().pathname.startsWith("/settings/theme");return t.jsx(A,{title:ie,children:t.jsx(N,{"aria-label":ie,onClick:()=>e("/settings/theme"),size:"small",color:n?"primary":"default",children:t.jsx(Bt,{fontSize:"small"})})})}function Y({label:e,onClick:r}){return t.jsx(Xe,{clickable:!0,onClick:r,label:e,size:"small","aria-label":`Navigate to ${e}`,sx:n=>({backgroundColor:"transparent",border:`1px solid ${n.palette.divider}`,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 Nt(){const e=fe(),r=e["*"],n=Z();return!e.environmentName&&!e.packageName&&!r?null:t.jsx(m,{sx:{display:"flex",alignItems:"center",minWidth:0},children:t.jsxs(ft,{"aria-label":"breadcrumb",separator:t.jsx(zt,{sx:{fontSize:14,color:"text.secondary"}}),children:[e.environmentName&&t.jsx(Y,{label:e.environmentName,onClick:o=>n(`/${e.environmentName}/`,o)}),e.packageName&&t.jsx(Y,{label:e.packageName,onClick:o=>n(`/${e.environmentName}/${e.packageName}/`,o)}),r&&t.jsx(Y,{label:r,onClick:o=>n(`/${e.environmentName}/${e.packageName}/${r}`,o)})]})})}const At=260,Ot=64;function ke({isCollapsed:e,onToggleCollapse:r,logoHeader:n}){return t.jsxs(m,{sx:{height:"100dvh",width:e?Ot:At,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(Wt,{isCollapsed:e,onToggleCollapse:r,logoHeader:n}),t.jsxs(m,{sx:{flex:1,overflowY:"auto",overflowX:"hidden",py:1},children:[t.jsx(Vt,{isCollapsed:e}),t.jsx(Ut,{isCollapsed:e})]}),t.jsx(Qt,{isCollapsed:e})]})}function Wt({isCollapsed:e,onToggleCollapse:r,logoHeader:n}){const o=Z();return n?t.jsxs(m,{sx:{height:56,display:"flex",alignItems:"center",justifyContent:"space-between",px:e?0:2,flexShrink:0},children:[n,t.jsx(N,{size:"small",onClick:r,"aria-label":e?"Expand sidebar":"Collapse sidebar",children:t.jsx(_,{fontSize:"small"})})]}):t.jsxs(m,{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(m,{onClick:s=>o("/",s),sx:{display:"flex",alignItems:"center",gap:1,cursor:"pointer",minWidth:0},children:[t.jsx(m,{component:"img",src:"/logo.svg",alt:"Malloy",sx:{width:24,height:24,flexShrink:0}}),!e&&t.jsx(G,{variant:"subtitle1",sx:{color:"text.primary",fontWeight:500,letterSpacing:"-0.025em",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:"Malloy Publisher"})]}),t.jsx(A,{title:e?"Expand sidebar":"Collapse sidebar",placement:"right",children:t.jsx(N,{size:"small",onClick:r,"aria-label":e?"Expand sidebar":"Collapse sidebar",children:t.jsx(_,{fontSize:"small"})})})]})}function Vt({isCollapsed:e}){const n=he().pathname==="/";return t.jsx(q,{sx:{py:0},children:t.jsx(we,{icon:t.jsx(Tt,{fontSize:"small"}),label:"Home",to:"/",selected:n,isCollapsed:e})})}function Ut({isCollapsed:e}){const{apiClients:r}=Ye(),n=fe(),{data:o}=_e({queryKey:["environments"],queryFn:()=>r.environments.listEnvironments()}),s=o?.data??[];return s.length===0?null:t.jsxs(m,{sx:{mt:1},children:[!e&&t.jsx(G,{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(we,{icon:t.jsx(Dt,{fontSize:"small"}),label:i,to:`/${i}`,selected:n.environmentName===i,isCollapsed:e},i)})})]})}function Qt({isCollapsed:e}){const r=[{label:"Malloy Docs",href:se.docsHome,icon:t.jsx(Ct,{fontSize:"small"}),external:!0},{label:"Publisher Docs",href:se.publishing,icon:t.jsx(Rt,{fontSize:"small"}),external:!0},{label:"Publisher API",href:"/api-doc.html",icon:t.jsx(Mt,{fontSize:"small"}),external:!1}];return t.jsx(q,{sx:{py:1},children:r.map(n=>t.jsx(Ft,{label:n.label,href:n.href,icon:n.icon,external:n.external,isCollapsed:e},n.label))})}function we({icon:e,label:r,to:n,selected:o,isCollapsed:s}){const a=Z(),i=t.jsxs(xe,{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(A,{title:r,placement:"right",children:t.jsx(m,{children:i})}):i}function Ft({label:e,href:r,icon:n,external:o,isCollapsed:s}){const a=t.jsxs(xe,{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(A,{title:e,placement:"right",children:t.jsx(m,{children:a})}):a}function Xt({open:e,onClose:r,logoHeader:n}){return t.jsx(Et,{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 Kt({headerProps:e}){const r=J(),n=Pt(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(m,{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(m,{component:"main",sx:{flex:1,display:"flex",flexDirection:"column",minWidth:0},children:[t.jsxs(m,{sx:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"space-between",height:Ke.headerHeight,px:{xs:1,md:3},backgroundColor:"background.default"},children:[t.jsx(m,{sx:{display:{xs:"flex",md:"none"},alignItems:"center",mr:1},children:t.jsx(N,{size:"small",onClick:()=>s(!0),"aria-label":"Open navigation",children:t.jsx(_,{fontSize:"small"})})}),t.jsx(m,{sx:{flex:1,minWidth:0,display:"flex",alignItems:"center"},children:t.jsx(Nt,{})}),t.jsxs(m,{id:"header-actions-portal",sx:{display:"flex",alignItems:"center",flexShrink:0,gap:1},children:[t.jsx($t,{}),t.jsx(Ht,{}),e?.endCap]})]}),t.jsx(m,{sx:{flex:1,overflow:"auto",minWidth:320,minHeight:0},children:t.jsx(u.Suspense,{fallback:t.jsx(Je,{}),children:t.jsx(Ge,{})})})]}),t.jsx(Xt,{open:o,onClose:()=>s(!1),logoHeader:e?.logoHeader})]})}export{Kt as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index.es-
|
|
2
|
-
import{c as W,j as a,
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index.es-BlAu_Rj1.js","assets/index-C1qGlR2a.js","assets/index-DUqldpo0.css","assets/ToggleButtonGroup-Dl_oTC8r.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{c as W,j as a,t as f,r as x,a1 as v,J as b,K as $,a2 as k,N as i,a3 as m,a4 as y,a5 as _,a6 as L,a7 as p,a8 as N,a9 as U,aa as R,a0 as D,ab as F,L as I,U as S,ac as T,ad as M,ae as O,T as j,af as h,ag as w}from"./index-C1qGlR2a.js";const A=W(a.jsx("path",{d:"m14.06 9.02.92.92L5.92 19H5v-.92zM17.66 3c-.25 0-.51.1-.7.29l-1.83 1.83 3.75 3.75 1.83-1.83c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.2-.2-.45-.29-.71-.29m-3.6 3.19L3 17.25V21h3.75L17.81 9.94z"}));function E(e,s){const n=f();return x.useCallback((t,r)=>{const l=new URLSearchParams(t.givens).toString(),c=encodeURIComponent(e),d=encodeURIComponent(s),o=encodeURIComponent(t.dashboard);n(`/${c}/${d}/dashboards/${o}`+(l?`?${l}`:""),r)},[n,e,s])}function z({environmentName:e,packageName:s,dashboardName:n}){const{params:t,onGivensChange:r}=v(),l=E(e,s),c=b(),{pathname:d}=$(),o=x.useMemo(()=>k({environmentName:e,packageName:s,dashboardName:n}),[e,s,n]);return x.useEffect(()=>{const u=()=>void N(()=>import("./index.es-BlAu_Rj1.js"),__vite__mapDeps([0,1,2,3])),g=window.requestIdleCallback;if(g){const P=g(u);return()=>window.cancelIdleCallback?.(P)}const C=setTimeout(u,1500);return()=>clearTimeout(C)},[]),a.jsxs(i,{sx:{p:3,maxWidth:1600,mx:"auto"},children:[a.jsx(m,{label:s,href:`/${e}/${s}`,onClick:()=>c(`/${e}/${s}`)}),a.jsx(y,{children:a.jsx(_,{label:"Edit",icon:a.jsx(A,{}),onClick:()=>c(`${d.replace(/\/$/,"")}/edit`)})}),a.jsx(L,{resourceUri:p({environmentName:e,packageName:s}),dashboard:n,givens:t,onGivensChange:r,onNavigate:l,onEvent:o,maxResultSize:1024*1024})]})}const G=U.lazy(()=>N(()=>import("./index.es-BlAu_Rj1.js"),__vite__mapDeps([0,1,2,3])).then(e=>({default:e.DashboardEditor})));function V({environmentName:e,packageName:s,dashboardName:n}){const t=b(),{pathname:r}=$(),l=r.replace(/\/edit\/?$/,""),c=x.useMemo(()=>k({environmentName:e,packageName:s,dashboardName:n}),[e,s,n]);return a.jsxs(i,{sx:{p:3,maxWidth:1600,mx:"auto"},children:[a.jsx(m,{label:s,href:`/${e}/${s}`,onClick:()=>t(`/${e}/${s}`)}),a.jsx(x.Suspense,{fallback:a.jsxs(R,{sx:{gap:2},children:[a.jsx(y,{}),a.jsx(D,{text:"Opening the builder…"})]}),children:a.jsx(G,{resourceUri:p({environmentName:e,packageName:s}),dashboard:n,onExit:()=>t(l),onEvent:c})})]})}function q({environmentName:e,packageName:s,notebookPath:n}){const{params:t,onGivensChange:r}=v(),l=E(e,s),c=f();return a.jsxs(i,{sx:{p:3,maxWidth:1200,mx:"auto"},children:[a.jsx(m,{label:s,href:`/${e}/${s}`,onClick:d=>c(`/${e}/${s}`,d)}),a.jsx(F,{resourceUri:p({environmentName:e,packageName:s,modelPath:n}),maxResultSize:1024*1024,givens:t,onGivensChange:r,onNavigate:c,onDrillNavigate:l})]})}function H(){const e=I(),s=e["*"],{server:n}=S(),t=f();if(!e.environmentName)return a.jsx("div",{children:a.jsx("h2",{children:"Missing environment name"})});if(!e.packageName)return a.jsx("div",{children:a.jsx("h2",{children:"Missing package name"})});const r={p:3,maxWidth:1200,mx:"auto"};if(s?.startsWith("dashboards/")&&!s.endsWith(".malloy")&&!s.endsWith(".malloynb")){const o=s.slice(11);return o.endsWith("/edit")?a.jsx(V,{environmentName:e.environmentName,packageName:e.packageName,dashboardName:o.slice(0,-5)}):a.jsx(z,{environmentName:e.environmentName,packageName:e.packageName,dashboardName:o})}if(s?.startsWith("data-apps/")&&!s.endsWith(".malloy")&&!s.endsWith(".malloynb")){const o=s.slice(10),u=p({environmentName:e.environmentName,packageName:e.packageName,modelPath:o});return a.jsxs(i,{sx:r,children:[a.jsx(m,{label:e.packageName,href:`/${e.environmentName}/${e.packageName}`,onClick:g=>t(`/${e.environmentName}/${e.packageName}`,g)}),a.jsx(T,{resourceUri:u})]})}const l=p({environmentName:e.environmentName,packageName:e.packageName,modelPath:s});if(s?.endsWith(".malloy"))return a.jsxs(i,{sx:r,children:[a.jsx(m,{label:e.packageName,href:`/${e.environmentName}/${e.packageName}`,onClick:o=>t(`/${e.environmentName}/${e.packageName}`,o)}),a.jsx(M,{resourceUri:l,runOnDemand:!0,maxResultSize:512*1024})]});if(s?.endsWith(".malloynb"))return a.jsx(q,{environmentName:e.environmentName,packageName:e.packageName,notebookPath:s});const c=/\.[^./]+$/.test(s??""),d=O({server:n,environmentName:e.environmentName,packageName:e.packageName,path:s??""});return a.jsxs(i,{sx:r,children:[a.jsx(m,{label:e.packageName,href:`/${e.environmentName}/${e.packageName}`,onClick:o=>t(`/${e.environmentName}/${e.packageName}`,o)}),a.jsx(j,{variant:"h6",sx:{fontWeight:600},children:"Nothing to open at this path"}),a.jsxs(j,{variant:"body2",color:"text.secondary",sx:{mt:1},children:[a.jsx(i,{component:"span",sx:{fontFamily:h},children:s})," ","does not name a"," ",a.jsx(i,{component:"span",sx:{fontFamily:h},children:".malloy"})," ","or"," ",a.jsx(i,{component:"span",sx:{fontFamily:h},children:".malloynb"})," ","file in package"," ",a.jsx(i,{component:"span",sx:{fontFamily:h},children:e.packageName}),". This address opens"," ",a.jsx(i,{component:"span",sx:{fontFamily:h},children:".malloy"})," ","and"," ",a.jsx(i,{component:"span",sx:{fontFamily:h},children:".malloynb"})," ","files."]}),c&&a.jsxs(j,{variant:"body2",color:"text.secondary",sx:{mt:1},children:["A file from the package's"," ",a.jsx(i,{component:"span",sx:{fontFamily:h},children:"public/"})," ","directory is served at ",a.jsx(w,{href:d,children:d}),"."]}),a.jsx(j,{variant:"body2",color:"text.secondary",sx:{mt:1},children:"The package lists its models, notebooks, and data apps."})]})}export{H as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{L as r,t,j as e,a7 as c,ah as o}from"./index-C1qGlR2a.js";function l(){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{l as default};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-
|
|
2
|
-
import{j as D,
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-C5hv_y6G.js","assets/index-C1qGlR2a.js","assets/index-DUqldpo0.css","assets/index-w_0OQJgZ.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{j as D,N as oe,r as p,az as ce,G as he,l as ue,aA as me,ao as be,aB as H,a8 as G,aC as ye,aD as fe,aE as pe,aF as ge,aG as ae}from"./index-C1qGlR2a.js";const v="publisher-drill";function ve(e,r){const t=new Set;let o;try{o=e.getMetadata()?.getAllFields()??[]}catch{return t}const l=new Set;for(const a of o)!a||r(a)||a.tag?.tag("hidden")===void 0&&l.add(a.tag?.text("label")??a.name);for(const a of o){if(!a||!r(a))continue;const n=a.tag?.text("label")??a.name;l.has(n)||t.add(n)}return t}function M(e){const r=/^\s*(\d+)/.exec(e.style?.gridColumn??"");return r?r[1]:void 0}function we(e,r){if(r.size!==0)for(const t of e.querySelectorAll(".malloy-table")){const o=n=>n.closest(".malloy-table")===t,l=new Set;for(const n of t.querySelectorAll(".column-cell.th")){if(!o(n))continue;const i=(n.textContent??"").replace(/\u200b/g,"").trim(),f=M(n);f&&r.has(i)&&l.add(f)}if(l.size===0)continue;const a=new Set;for(const n of t.querySelectorAll(`.${v}[tabindex="0"]`)){if(!o(n))continue;const i=M(n);i&&(a.has(i)?n.tabIndex=-1:a.add(i))}for(const n of t.querySelectorAll(".column-cell.td")){if(!o(n))continue;const i=M(n),f=!n.querySelector(".value-null")&&(n.textContent??"").trim()!=="";if(i&&f&&l.has(i)&&!n.querySelector(".malloy-table")){if(n.classList.add(v),n.tabIndex===0)a.add(i);else{const m=a.has(i);m||a.add(i),n.tabIndex=m?-1:0}n.setAttribute("role","button")}}}}function ke(e){const r=e.closest(".malloy-table"),t=M(e);return!r||!t?[]:Array.from(r.querySelectorAll(`.${v}`)).filter(o=>o.closest(".malloy-table")===r&&M(o)===t)}function ne(e,r){const t=ke(e),o=t.indexOf(e);if(o===-1)return;const l=r==="first"?t[0]:r==="last"?t[t.length-1]:t[Math.min(Math.max(o+r,0),t.length-1)];if(l){for(const a of t)a.tabIndex=a===l?0:-1;return l}}function xe(e){return{background:e.dashboardRoot,tableBackground:e.tableBackground,tableHeaderColor:e.tableHeader,tableBodyColor:e.tableBody,tableBorder:e.border,tablePinnedBackground:e.tableHeaderBackground,tablePinnedBorder:e.pinnedBorder,tableFontSize:`${e.font.size}px`,fontFamily:e.font.family,mapColor:e.mapColor}}function Ce(e){const{foreground:r,axisFaint:t,font:o}=e,l={background:e.background,font:o.family,title:{color:r,font:o.family},axis:{labelColor:r,titleColor:r,domainColor:t,tickColor:t,gridColor:t,labelFont:o.family,titleFont:o.family},legend:{labelColor:r,titleColor:r,labelFont:o.family,titleFont:o.family},header:{labelColor:r,titleColor:r},range:{category:e.series}};return a=>l}function Ee(e){if(!e)return;const r=e.tag("theme");if(!r)return;const t={},o=r.tag("palette");if(o){const a={},n=o.textArray("series");n&&n.length>0&&(a.series=n);for(const i of ce){const f=o.tag(i);if(!f)continue;const m={},w=f.text("light"),E=f.text("dark");w&&(m.light=w),E&&(m.dark=E),Object.keys(m).length>0&&(a[i]=m)}Object.keys(a).length>0&&(t.palette=a)}const l=r.tag("font");if(l){const a={},n=l.text("family");n&&(a.family=n);const i=l.numeric("size");typeof i=="number"&&Number.isFinite(i)&&(a.size=i),Object.keys(a).length>0&&(t.font=a)}return Object.keys(t).length>0?t:void 0}const Ae=async(e,r)=>{if(typeof window>"u")throw new Error("MalloyRenderer can only be used in browser environment");const{MalloyRenderer:t}=await G(async()=>{const{MalloyRenderer:o}=await import("./index-DSoCUF-f.js");return{MalloyRenderer:o}},[]);return new t({onClick:r,vegaConfigOverride:Ce(e),theme:xe(e),onError:o=>{console.error("Error rendering visualization:",typeof o,o)}}).createViz()};typeof window<"u"&&G(()=>import("./index-DSoCUF-f.js"),[]);async function Se(e){if(!e||typeof e!="object")return;const r=e,t=[...Array.isArray(r.model_annotations)?r.model_annotations:[],...Array.isArray(r.source_annotations)?r.source_annotations:[],...Array.isArray(r.annotations)?r.annotations:[]].map(l=>typeof l?.value=="string"?l.value:void 0).filter(l=>!!l);if(t.length===0)return;let o;try{({parseAnnotation:o}=await G(()=>import("./index-C5hv_y6G.js").then(l=>l.i),__vite__mapDeps([0,1,2,3])))}catch{return}try{const{tag:l}=o(t);return Ee(l)}catch(l){console.warn("Failed to parse # theme.* annotations; chart will render with the shell theme.",{error:l,lines:t});return}}function _e(e,r,t){const o=ye(r,t);for(const[l,a]of Object.entries(o))e.style.setProperty(l,a)}const Re=`
|
|
3
3
|
/* Card geometry, through the renderer's OWN theme vars rather than over the top
|
|
4
4
|
of them. It declares --malloy-theme--dashboard-* on .malloy-render itself and
|
|
5
5
|
passes each through to the --malloy-render--* the card CSS reads, so a value
|
|
@@ -133,4 +133,4 @@ div.malloy-render .malloy-dashboard .dashboard-row-header {
|
|
|
133
133
|
color: var(--publisher-drill-link) !important;
|
|
134
134
|
text-decoration: underline;
|
|
135
135
|
}
|
|
136
|
-
`,le="publisher-malloy-renderer-overrides";function ze(){if(typeof document>"u"||document.getElementById(le))return;const e=document.createElement("style");e.id=le,e.textContent=Re,document.head.appendChild(e)}function Fe({result:e,height:r,drill:t,onSizeChange:o,onSizing:l}){const a=p.useRef(null),n=p.useRef(t);n.current=t;const i=p.useCallback(c=>{n.current?.onClick(c)},[]),f=t!==void 0,m=p.useRef(!1),w=p.useRef(null),E=p.useRef(0),{theme:
|
|
136
|
+
`,le="publisher-malloy-renderer-overrides";function ze(){if(typeof document>"u"||document.getElementById(le))return;const e=document.createElement("style");e.id=le,e.textContent=Re,document.head.appendChild(e)}function Fe({result:e,height:r,drill:t,onSizeChange:o,onSizing:l}){const a=p.useRef(null),n=p.useRef(t);n.current=t;const i=p.useCallback(c=>{n.current?.onClick(c)},[]),f=t!==void 0,m=p.useRef(!1),w=p.useRef(null),E=p.useRef(0),{theme:J,layers:U,mode:W}=he(),Y=ue().shape.borderRadius,K=p.useMemo(()=>({radius:`${Y}px`,padding:`${me}px`}),[Y]);return p.useEffect(()=>()=>{E.current+=1;const c=w.current;c?.viz.remove(),c?.node.remove(),w.current=null},[]),p.useLayoutEffect(()=>{if(!a.current||!e)return;ze();const c=a.current,se=E.current+=1;let P=!1;const N=()=>!P&&se===E.current;let d,b,B=null,q=0,L=null,$=null,I=null,F=null,O=null,T=null,X=null,Q=0,A=null;m.current=!1;let g,S;const V=k=>{if(P||!k.firstElementChild||H(g,S)==="container")return;const j=fe(g,S);if(m.current&&!j)return;const x=pe(k,ae(g));x>0&&(m.current=!0,o&&x!==Q&&(Q=x,o(x)));const _=ge(k,ae(g));j&&_&&X!==_&&(X=_,T?.disconnect(),T=new ResizeObserver(()=>V(k)),T.observe(_))};return(async()=>{let k;try{k=JSON.parse(e)}catch(y){console.error("Error parsing visualization result:",y);return}const j=await Se(k),x=j?be([...U,j],W):J;if(!N())return;try{b=await Ae(x,i)}catch(y){console.error("Failed to create renderer:",y);return}if(!N()){b.remove(),b=void 0;return}const _=w.current;d=document.createElement("div"),d.style.width="100%",d.style.height="100%",_e(d,x,K),c.childElementCount>0&&(c.style.position="relative",d.style.position="absolute",d.style.inset="0",d.style.visibility="hidden"),c.appendChild(d);const u=d;F=new MutationObserver(()=>{O&&clearTimeout(O),O=setTimeout(()=>{V(u),m.current&&F?.disconnect()},100)}),F.observe(d,{childList:!0,subtree:!0,attributes:!0});const ie=b;let Z=!1;const ee=()=>{if(!(Z||!N())){Z=!0,A&&(clearTimeout(A),A=null),_?.viz.remove();for(const y of Array.from(c.children))y!==u&&c.removeChild(y);u.style.position="",u.style.inset="",u.style.visibility="",c.style.position="",w.current={viz:ie,node:u},V(u)}};try{b.setResult(k);try{const C=b.getMetadata(),R=C?.getRootField();g=R?.renderAs(),S=R?C?.getPluginsForField(R.key)?.[0]?.sizingStrategy:void 0}catch{g=void 0,S=void 0}l?.(H(g,S)),d.dataset.malloyRenderAs=g??"unknown",d.dataset.malloySizing=H(g,S),b.render(d);const y=n.current;try{if(y){const C=ve(b,y.canDrill),R=()=>{try{we(u,C)}catch(s){console.warn("Drill affordance skipped:",s)}};R();const re=s=>{const h=s.querySelector(".cell-content")??s,z=h.getBoundingClientRect();h.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0,view:h.ownerDocument.defaultView,clientX:Math.round(z.left+z.width/2),clientY:Math.round(z.bottom)}))},te=s=>s.target?.closest?.(`.${v}`)??null,de=(s,h)=>{ne(s,h)?.focus()};L=s=>{const h=te(s);if(!h)return;const z=s.key==="ArrowDown"?1:s.key==="ArrowUp"?-1:s.key==="Home"?"first":s.key==="End"?"last":void 0;if(z!==void 0){s.preventDefault(),de(h,z);return}s.key==="Enter"?(s.preventDefault(),re(h)):s.key===" "&&s.preventDefault()},$=s=>{if(s.key!==" ")return;const h=te(s);h&&(s.preventDefault(),re(h))},I=s=>{const h=s.target?.closest?.(`.${v}`);h&&ne(h,0)},u.addEventListener("keydown",L),u.addEventListener("keyup",$),u.addEventListener("focusin",I),C.size>0&&typeof MutationObserver<"u"&&(B=new MutationObserver(()=>{cancelAnimationFrame(q),q=requestAnimationFrame(R)}),B.observe(u,{childList:!0,subtree:!0}))}}catch(C){console.warn("Drill affordance skipped:",C)}b.onReady(ee),A=setTimeout(ee,1e4)}catch(y){console.error("Error rendering visualization:",y),F?.disconnect(),T?.disconnect(),B?.disconnect(),b.remove(),b=void 0,u.parentNode===c&&c.removeChild(u)}})(),()=>{P=!0,F?.disconnect(),T?.disconnect(),O&&clearTimeout(O),A&&clearTimeout(A),d&&w.current?.node!==d&&(L&&d.removeEventListener("keydown",L),$&&d.removeEventListener("keyup",$),I&&d.removeEventListener("focusin",I),B?.disconnect(),cancelAnimationFrame(q),b?.remove(),d.parentNode===c&&c.removeChild(d),c.style.position="")}},[e,i,f,o,l,J,U,W,K]),D.jsx("div",{ref:a,style:{width:"100%",height:r?`${r}px`:"400px"}})}function Oe(e){return typeof window>"u"?D.jsx(oe,{sx:{width:"100%",height:e.height?`${e.height}px`:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"text.secondary"},children:"Loading..."}):D.jsx(p.Suspense,{fallback:D.jsx(oe,{sx:{width:"100%",height:e.height?`${e.height}px`:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"text.secondary"},children:"Loading visualization..."}),children:D.jsx(Fe,{...e})})}const je=Object.freeze(Object.defineProperty({__proto__:null,default:Oe},Symbol.toStringTag,{value:"Module"}));export{v as D,Oe as R,Ce as a,xe as b,je as c,ve as d,we as m,Ee as r};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{aj as o,j as r,ak as s,aa as a,
|
|
1
|
+
import{aj as o,j as r,ak as s,aa as a,N as n,T as t}from"./index-C1qGlR2a.js";function x(){const e=o();return console.error(e),r.jsx(s,{maxWidth:"lg",component:"main",sx:{display:"flex",flexDirection:"column",my:2,gap:0},children:r.jsxs(a,{sx:{m:"auto",flexDirection:"column"},children:[r.jsx(n,{sx:{height:"300px"}}),r.jsx("img",{src:"/error.png"}),r.jsx(t,{variant:"subtitle1",children:"An unexpected error occurred"})]})})}export{x as default};
|