Full Code of microsoft/SandDance for AI

main 99059c7ab876 cached
820 files
43.5 MB
11.4M tokens
47846 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (45,769K chars total). Download the full file to get everything.
Repository: microsoft/SandDance
Branch: main
Commit: 99059c7ab876
Files: 820
Total size: 43.5 MB

Directory structure:
gitextract_7ww1rax1/

├── .github/
│   └── workflows/
│       └── codeql.yml
├── .gitignore
├── .vscode/
│   ├── launch.json
│   ├── settings.json
│   └── tasks.json
├── LICENSE
├── README.md
├── SECURITY.md
├── azure-pipelines.yml
├── dev.md
├── docker-jekyll-local/
│   ├── Dockerfile
│   ├── README.md
│   └── docker-compose.yml
├── docs/
│   ├── Gemfile
│   ├── _config.yml
│   ├── _data/
│   │   ├── apitree.json
│   │   ├── outlines.json
│   │   └── tree.json
│   ├── _includes/
│   │   └── footer-links.html
│   ├── _layouts/
│   │   ├── api.html
│   │   ├── default.html
│   │   ├── docs.html
│   │   ├── page.html
│   │   └── typedoc.html
│   ├── _sass/
│   │   ├── components/
│   │   │   ├── _components.breadcrumbs.scss
│   │   │   ├── _components.buttons.scss
│   │   │   ├── _components.page-content.scss
│   │   │   ├── _components.page-foot.scss
│   │   │   ├── _components.page-head.scss
│   │   │   ├── _components.page-main.scss
│   │   │   ├── _components.site-nav.scss
│   │   │   └── _components.tree.scss
│   │   ├── elements/
│   │   │   ├── _elements.code.scss
│   │   │   ├── _elements.headings.scss
│   │   │   ├── _elements.hr.scss
│   │   │   ├── _elements.links.scss
│   │   │   ├── _elements.page.scss
│   │   │   └── _elements.tables.scss
│   │   ├── generic/
│   │   │   └── _generic.syntax-highlight.scss
│   │   ├── inuitcss/
│   │   │   ├── LICENSE
│   │   │   ├── elements/
│   │   │   │   ├── _elements.headings.scss
│   │   │   │   ├── _elements.images.scss
│   │   │   │   ├── _elements.page.scss
│   │   │   │   └── _elements.tables.scss
│   │   │   ├── generic/
│   │   │   │   ├── _generic.box-sizing.scss
│   │   │   │   ├── _generic.normalize.scss
│   │   │   │   ├── _generic.reset.scss
│   │   │   │   └── _generic.shared.scss
│   │   │   ├── objects/
│   │   │   │   ├── _objects.block.scss
│   │   │   │   ├── _objects.box.scss
│   │   │   │   ├── _objects.crop.scss
│   │   │   │   ├── _objects.flag.scss
│   │   │   │   ├── _objects.layout.scss
│   │   │   │   ├── _objects.list-bare.scss
│   │   │   │   ├── _objects.list-inline.scss
│   │   │   │   ├── _objects.media.scss
│   │   │   │   ├── _objects.pack.scss
│   │   │   │   ├── _objects.ratio.scss
│   │   │   │   ├── _objects.table.scss
│   │   │   │   └── _objects.wrapper.scss
│   │   │   ├── settings/
│   │   │   │   └── _settings.core.scss
│   │   │   ├── tools/
│   │   │   │   ├── _tools.clearfix.scss
│   │   │   │   ├── _tools.font-size.scss
│   │   │   │   └── _tools.hidden.scss
│   │   │   └── utilities/
│   │   │       ├── _utilities.clearfix.scss
│   │   │       ├── _utilities.headings.scss
│   │   │       ├── _utilities.hide.scss
│   │   │       ├── _utilities.print.scss
│   │   │       ├── _utilities.responsive-spacings.scss
│   │   │       ├── _utilities.spacings.scss
│   │   │       └── _utilities.widths.scss
│   │   ├── sass-mq/
│   │   │   ├── LICENSE.md
│   │   │   └── _mq.scss
│   │   └── settings/
│   │       ├── _settings.colors.scss
│   │       └── _settings.global.scss
│   ├── app/
│   │   ├── css/
│   │   │   ├── sanddance-app-site.css
│   │   │   └── sanddance-app.css
│   │   ├── index.html
│   │   └── js/
│   │       └── sanddance-app.js
│   ├── assets/
│   │   ├── css/
│   │   │   ├── main.scss
│   │   │   └── typedoc.css
│   │   └── js/
│   │       └── main.js
│   ├── dist/
│   │   ├── azdata/
│   │   │   ├── v3/
│   │   │   │   └── azdata-sanddance-3.3.0.vsix
│   │   │   └── v4/
│   │   │       ├── azdata-sanddance-4.0.0.vsix
│   │   │       ├── azdata-sanddance-4.0.1.vsix
│   │   │       ├── azdata-sanddance-4.0.2.vsix
│   │   │       ├── azdata-sanddance-4.0.3.vsix
│   │   │       ├── azdata-sanddance-4.1.0.vsix
│   │   │       └── azdata-sanddance-4.1.1.vsix
│   │   ├── powerbi/
│   │   │   ├── v3/
│   │   │   │   └── SandDance201929976D117A654D0BAB8E96507442D80B.3.2.0.pbiviz
│   │   │   └── v4/
│   │   │       ├── SandDance201929976D117A654D0BAB8E96507442D80B.4.0.0.pbiviz
│   │   │       ├── SandDance201929976D117A654D0BAB8E96507442D80B.4.1.0.pbiviz
│   │   │       ├── SandDance201929976D117A654D0BAB8E96507442D80B.4.1.1.pbiviz
│   │   │       ├── SandDance201929976D117A654D0BAB8E96507442D80B.4.1.2.0.pbix
│   │   │       ├── SandDance201929976D117A654D0BAB8E96507442D80B.4.1.2.pbiviz
│   │   │       ├── SandDance201929976D117A654D0BAB8E96507442D80B.4.2.0.0.pbiviz
│   │   │       ├── SandDance201929976D117A654D0BAB8E96507442D80B.4.2.0.1.pbiviz
│   │   │       ├── SandDance201929976D117A654D0BAB8E96507442D80B.4.2.0.2.pbiviz
│   │   │       ├── SandDance2019beta4.4.0.0.pbiviz
│   │   │       ├── SandDance2019beta4.4.0.1.pbiviz
│   │   │       ├── SandDance2019beta4.4.0.2.pbiviz
│   │   │       ├── SandDance2019beta4.4.0.3.pbiviz
│   │   │       ├── SandDance2019beta4.4.0.4.pbiviz
│   │   │       ├── SandDance2019beta4.4.0.5.pbiviz
│   │   │       ├── SandDance2019beta4.4.0.6.pbiviz
│   │   │       ├── SandDance2019beta4.4.0.7.pbiviz
│   │   │       ├── SandDance2019beta4.4.0.8.pbiviz
│   │   │       └── SandDance2019beta4.4.0.9.pbiviz
│   │   ├── sanddance/
│   │   │   ├── v1/
│   │   │   │   ├── sanddance.css
│   │   │   │   └── sanddance.js
│   │   │   ├── v2/
│   │   │   │   ├── sanddance.css
│   │   │   │   └── sanddance.js
│   │   │   ├── v3/
│   │   │   │   ├── sanddance.css
│   │   │   │   └── sanddance.js
│   │   │   └── v4/
│   │   │       ├── sanddance.css
│   │   │       └── sanddance.js
│   │   ├── sanddance-explorer/
│   │   │   ├── v1/
│   │   │   │   ├── sanddance-explorer.css
│   │   │   │   └── sanddance-explorer.js
│   │   │   ├── v2/
│   │   │   │   ├── sanddance-explorer.css
│   │   │   │   └── sanddance-explorer.js
│   │   │   ├── v3/
│   │   │   │   ├── sanddance-explorer.css
│   │   │   │   └── sanddance-explorer.js
│   │   │   └── v4/
│   │   │       ├── sanddance-explorer.css
│   │   │       └── sanddance-explorer.js
│   │   ├── sanddance-react/
│   │   │   └── v4/
│   │   │       └── sanddance-react.js
│   │   ├── vega-deck.gl/
│   │   │   ├── v2/
│   │   │   │   └── vega-deck.gl.js
│   │   │   └── v3/
│   │   │       └── vega-deck.gl.js
│   │   ├── vega-morphcharts/
│   │   │   └── v1/
│   │   │       └── vega-morphcharts.js
│   │   └── vscode/
│   │       ├── v3/
│   │       │   └── vscode-sanddance-3.3.0.vsix
│   │       └── v4/
│   │           ├── vscode-sanddance-4.0.0-beta.0.vsix
│   │           ├── vscode-sanddance-4.0.0-beta.1.vsix
│   │           ├── vscode-sanddance-4.0.0-beta.2.vsix
│   │           ├── vscode-sanddance-4.0.0.vsix
│   │           ├── vscode-sanddance-4.0.1.vsix
│   │           ├── vscode-sanddance-4.0.2.vsix
│   │           ├── vscode-sanddance-4.0.3.vsix
│   │           ├── vscode-sanddance-4.0.4.vsix
│   │           ├── vscode-sanddance-4.1.0.vsix
│   │           └── vscode-sanddance-4.2.0.vsix
│   ├── docs/
│   │   ├── changelog.md
│   │   ├── contributing.md
│   │   └── index.md
│   ├── embed/
│   │   ├── v1/
│   │   │   └── sanddance-embed.html
│   │   ├── v2/
│   │   │   ├── sanddance-embed-privacy-footer.html
│   │   │   └── sanddance-embed.html
│   │   ├── v3/
│   │   │   └── sanddance-embed.html
│   │   └── v4/
│   │       ├── dynamic/
│   │       │   ├── target.html
│   │       │   └── test.html
│   │       ├── sanddance-embed.html
│   │       └── test.html
│   ├── examples/
│   │   ├── index.md
│   │   └── v3.md
│   ├── external/
│   │   └── js/
│   │       ├── react-dom.development.js
│   │       └── react.development.js
│   ├── index.html
│   ├── sample-data/
│   │   ├── demovote.tsv
│   │   └── titanicmaster.tsv
│   ├── tests/
│   │   ├── data-inference/
│   │   │   ├── v1/
│   │   │   │   ├── index.html
│   │   │   │   └── js/
│   │   │   │       └── data-inference.js
│   │   │   └── v2/
│   │   │       ├── index.html
│   │   │       └── js/
│   │   │           └── data-inference.js
│   │   ├── sanddance-specs/
│   │   │   ├── v1/
│   │   │   │   ├── index.html
│   │   │   │   ├── js/
│   │   │   │   │   ├── index.js
│   │   │   │   │   └── sanddance-specs.js
│   │   │   │   └── specs/
│   │   │   │       ├── column-categoric.json
│   │   │   │       ├── column-facet-cross.json
│   │   │   │       ├── column-facet-wrap.json
│   │   │   │       ├── column-sum-strip-pct.json
│   │   │   │       ├── column-sum-strip.json
│   │   │   │       ├── column-sum-treemap.json
│   │   │   │       ├── column.json
│   │   │   │       ├── density-facet-cross.json
│   │   │   │       ├── density-facet-wrap.json
│   │   │   │       ├── density-treemap.json
│   │   │   │       ├── density.json
│   │   │   │       ├── scatter-facet-cross.json
│   │   │   │       ├── scatter-facet-wrap-with-image.json
│   │   │   │       ├── scatter-facet-wrap.json
│   │   │   │       ├── scatter-with-image.json
│   │   │   │       ├── scatter.json
│   │   │   │       ├── stacks-facet-cross.json
│   │   │   │       ├── stacks-facet-wrap-with-image.json
│   │   │   │       ├── stacks-facet-wrap.json
│   │   │   │       ├── stacks-with-image.json
│   │   │   │       └── stacks.json
│   │   │   └── v2/
│   │   │       ├── index.html
│   │   │       ├── js/
│   │   │       │   ├── index.js
│   │   │       │   └── sanddance-specs.js
│   │   │       └── specs/
│   │   │           ├── column-categoric.json
│   │   │           ├── column-facet-cross.json
│   │   │           ├── column-facet-wrap.json
│   │   │           ├── column-sum-strip-pct.json
│   │   │           ├── column-sum-strip.json
│   │   │           ├── column-sum-treemap.json
│   │   │           ├── column.json
│   │   │           ├── density-facet-cross.json
│   │   │           ├── density-facet-wrap.json
│   │   │           ├── density-treemap.json
│   │   │           ├── density.json
│   │   │           ├── scatter-facet-cross.json
│   │   │           ├── scatter-facet-wrap-with-image.json
│   │   │           ├── scatter-facet-wrap.json
│   │   │           ├── scatter-with-image.json
│   │   │           ├── scatter.json
│   │   │           ├── stacks-facet-cross.json
│   │   │           ├── stacks-facet-wrap-with-image.json
│   │   │           ├── stacks-facet-wrap.json
│   │   │           ├── stacks-with-image.json
│   │   │           └── stacks.json
│   │   ├── v2/
│   │   │   ├── es6/
│   │   │   │   ├── css/
│   │   │   │   │   └── sanddance.css
│   │   │   │   ├── js/
│   │   │   │   │   └── sanddance.js
│   │   │   │   └── sanddance.html
│   │   │   └── umd/
│   │   │       ├── chromaticTextTest.html
│   │   │       ├── css/
│   │   │       │   ├── test.css
│   │   │       │   ├── transition.css
│   │   │       │   └── vega-deck.gl.test.css
│   │   │       ├── cubeTest.html
│   │   │       ├── js/
│   │   │       │   ├── chromaticTextTest.js
│   │   │       │   ├── cubeTest.js
│   │   │       │   ├── qualBarChartTest.js
│   │   │       │   ├── quanBarChartTest.js
│   │   │       │   ├── scatterplotTest.js
│   │   │       │   ├── test.js
│   │   │       │   ├── transition.js
│   │   │       │   ├── treeMapTest.js
│   │   │       │   └── vega-deck.gl.test.js
│   │   │       ├── qualBarChartTest.html
│   │   │       ├── quanBarChartTest.html
│   │   │       ├── scatterplotTest.html
│   │   │       ├── specs/
│   │   │       │   ├── scatter3D.json
│   │   │       │   └── titanic.json
│   │   │       ├── test.html
│   │   │       ├── transition.html
│   │   │       ├── treeMapTest.html
│   │   │       └── vega-deck.gl.test.html
│   │   ├── v3/
│   │   │   ├── es6/
│   │   │   │   ├── app.html
│   │   │   │   ├── css/
│   │   │   │   │   ├── sanddance-app-site.css
│   │   │   │   │   ├── sanddance-app.css
│   │   │   │   │   └── sanddance-test-es6.css
│   │   │   │   ├── js/
│   │   │   │   │   ├── sanddance-app.js
│   │   │   │   │   └── sanddance-test-es6.js
│   │   │   │   └── sanddance-test-es6.html
│   │   │   └── umd/
│   │   │       ├── css/
│   │   │       │   ├── test.css
│   │   │       │   ├── transition.css
│   │   │       │   └── vega-deck.gl.test.css
│   │   │       ├── cubeTest.html
│   │   │       ├── embed.html
│   │   │       ├── js/
│   │   │       │   ├── cubeTest.js
│   │   │       │   ├── qualBarChartTest.js
│   │   │       │   ├── quanBarChartTest.js
│   │   │       │   ├── scatterplotTest.js
│   │   │       │   ├── test.js
│   │   │       │   ├── transforms.js
│   │   │       │   ├── transition.js
│   │   │       │   ├── treeMapTest.js
│   │   │       │   └── vega-deck.gl.test.js
│   │   │       ├── qualBarChartTest.html
│   │   │       ├── quanBarChartTest.html
│   │   │       ├── sanddance-specs.html
│   │   │       ├── scatterplotTest.html
│   │   │       ├── specs/
│   │   │       │   ├── scatter3D.json
│   │   │       │   └── titanic.json
│   │   │       ├── test.html
│   │   │       ├── transforms.html
│   │   │       ├── transition.html
│   │   │       ├── treeMapTest.html
│   │   │       └── vega-deck.gl.test.html
│   │   └── v4/
│   │       ├── es6/
│   │       │   ├── app.html
│   │       │   ├── css/
│   │       │   │   ├── sanddance-app-site.css
│   │       │   │   ├── sanddance-app.css
│   │       │   │   ├── sanddance-test-es6.css
│   │       │   │   └── vega-morphcharts-test-es6.css
│   │       │   ├── js/
│   │       │   │   ├── sanddance-app.js
│   │       │   │   ├── sanddance-test-es6.js
│   │       │   │   └── vega-morphcharts-test-es6.js
│   │       │   ├── sanddance-test-es6.html
│   │       │   └── vega-morphcharts-test-es6.html
│   │       └── umd/
│   │           ├── css/
│   │           │   ├── test.css
│   │           │   ├── transition.css
│   │           │   └── vega-morphcharts.test.css
│   │           ├── embed.html
│   │           ├── js/
│   │           │   ├── qualBarChartTest.js
│   │           │   ├── quanBarChartTest.js
│   │           │   ├── scatterplotTest.js
│   │           │   ├── test.js
│   │           │   ├── transforms.js
│   │           │   ├── transition.js
│   │           │   ├── treeMapTest.js
│   │           │   └── vega-morphcharts.test.js
│   │           ├── qualBarChartTest.html
│   │           ├── quanBarChartTest.html
│   │           ├── sanddance-react.html
│   │           ├── sanddance-specs.html
│   │           ├── scatterplotTest.html
│   │           ├── specs/
│   │           │   ├── scatter3D.json
│   │           │   └── titanic.json
│   │           ├── test.html
│   │           ├── transforms.html
│   │           ├── transition.html
│   │           ├── treeMapTest.html
│   │           └── vega-morphcharts.test.html
│   └── tutorial/
│       └── index.md
├── eslint.config.mjs
├── extensions/
│   ├── azdata-sanddance/
│   │   ├── .gitattributes
│   │   ├── .gitignore
│   │   ├── .vscode/
│   │   │   ├── settings.json
│   │   │   └── tasks.json
│   │   ├── .vscodeignore
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── scripts/
│   │   │   └── deploy.js
│   │   ├── sql.bat
│   │   ├── sql.sh
│   │   ├── src/
│   │   │   ├── azdata.proposed.d.ts
│   │   │   ├── extension.ts
│   │   │   └── mssqlapis.d.ts
│   │   ├── tsconfig.json
│   │   └── webpack.config.js
│   ├── common-backend/
│   │   ├── .gitignore
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── html.ts
│   │   │   ├── index.ts
│   │   │   └── panel.ts
│   │   └── tsconfig.json
│   ├── common-frontend/
│   │   ├── .gitignore
│   │   ├── package.json
│   │   ├── scripts/
│   │   │   └── resources.js
│   │   ├── src/
│   │   │   ├── app.tsx
│   │   │   ├── css/
│   │   │   │   └── app.scss
│   │   │   ├── fluentUI-icons.d.ts
│   │   │   ├── fluentUI.d.ts
│   │   │   ├── interfaces.d.ts
│   │   │   ├── language.ts
│   │   │   └── sanddance-explorer.d.ts
│   │   ├── test/
│   │   │   └── sanddance-test.html
│   │   └── tsconfig.json
│   └── vscode-sanddance/
│       ├── .gitattributes
│       ├── .gitignore
│       ├── .vscode/
│       │   ├── settings.json
│       │   └── tasks.json
│       ├── .vscodeignore
│       ├── CHANGELOG.md
│       ├── LICENSE
│       ├── README.md
│       ├── package.json
│       ├── scripts/
│       │   └── deploy.js
│       ├── src/
│       │   └── extension.ts
│       ├── tsconfig.json
│       └── webpack.config.js
├── package.json
├── packages/
│   ├── chart-recommender/
│   │   ├── .gitignore
│   │   ├── .mocharc.json
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── barChart.ts
│   │   │   ├── geo.ts
│   │   │   ├── index.ts
│   │   │   ├── recommender.ts
│   │   │   ├── recommenderSummary.ts
│   │   │   ├── scatterPlot.ts
│   │   │   └── treemap.ts
│   │   ├── test/
│   │   │   ├── mocha.opts
│   │   │   └── recommend.mjs
│   │   ├── test-data/
│   │   │   ├── test1.tsv
│   │   │   ├── test2.tsv
│   │   │   ├── test3.tsv
│   │   │   ├── test4.tsv
│   │   │   └── test5.tsv
│   │   └── tsconfig.json
│   ├── chart-types/
│   │   ├── .gitignore
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── column.ts
│   │   │   ├── dimensions.ts
│   │   │   ├── index.ts
│   │   │   ├── stats.ts
│   │   │   └── view.ts
│   │   └── tsconfig.json
│   ├── data-inference/
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── rollup.config.mjs
│   │   ├── scripts/
│   │   │   └── deploy.js
│   │   ├── src/
│   │   │   ├── color.ts
│   │   │   ├── index.ts
│   │   │   ├── inference.ts
│   │   │   ├── numeric.ts
│   │   │   ├── stats.ts
│   │   │   └── summary.ts
│   │   ├── test/
│   │   │   ├── index.ts
│   │   │   └── pandas.ipynb
│   │   └── tsconfig.json
│   ├── fluentui-icons/
│   │   ├── README.md
│   │   ├── config/
│   │   │   └── fabric-icons.json
│   │   ├── css/
│   │   │   ├── fabric-icons-inline.css
│   │   │   └── fabric-icons.css
│   │   ├── fabric-icons.html
│   │   ├── package.json
│   │   ├── rollup.config.mjs
│   │   ├── scripts/
│   │   │   └── prebuild.js
│   │   ├── scss/
│   │   │   ├── fabric-icons-inline.scss
│   │   │   └── fabric-icons.scss
│   │   ├── src/
│   │   │   ├── fabric-icons.ts
│   │   │   ├── fabric_icons_4ac17eec.ts
│   │   │   └── index.ts
│   │   └── tsconfig.json
│   ├── fluentui-react-cdn-typings/
│   │   ├── LICENSE
│   │   ├── index.d.ts
│   │   ├── package.json
│   │   └── types.d.ts
│   ├── powerbi/
│   │   ├── .gitignore
│   │   ├── .vscode/
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── capabilities.json
│   │   ├── package.json
│   │   ├── pbiviz.json
│   │   ├── scripts/
│   │   │   ├── deploy.js
│   │   │   └── version.js
│   │   ├── src/
│   │   │   ├── app.ts
│   │   │   ├── cleanInsight.ts
│   │   │   ├── convertFilter.ts
│   │   │   ├── convertTableToObjectArray.ts
│   │   │   ├── fluentUIComponents.ts
│   │   │   ├── fontfix.ts
│   │   │   ├── language.ts
│   │   │   ├── logView.tsx
│   │   │   ├── settings.ts
│   │   │   ├── version.ts
│   │   │   └── visual.ts
│   │   ├── style/
│   │   │   └── visual.less
│   │   └── tsconfig.json
│   ├── sanddance/
│   │   ├── .gitignore
│   │   ├── LICENSE
│   │   ├── README-DEV.md
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── rollup.config.mjs
│   │   ├── scripts/
│   │   │   └── deploy.js
│   │   ├── src/
│   │   │   ├── animator.ts
│   │   │   ├── array.ts
│   │   │   ├── axisSelection.ts
│   │   │   ├── characterSet.ts
│   │   │   ├── colorCubes.ts
│   │   │   ├── colorSchemes.ts
│   │   │   ├── constants.ts
│   │   │   ├── css/
│   │   │   │   └── sanddance.scss
│   │   │   ├── dataScope.ts
│   │   │   ├── date.ts
│   │   │   ├── defaults.ts
│   │   │   ├── details.tsx
│   │   │   ├── expression.ts
│   │   │   ├── headers.ts
│   │   │   ├── index.ts
│   │   │   ├── legend.ts
│   │   │   ├── ordinal.ts
│   │   │   ├── search.ts
│   │   │   ├── signals.ts
│   │   │   ├── tooltip.tsx
│   │   │   ├── transition.ts
│   │   │   ├── types.ts
│   │   │   ├── util.ts
│   │   │   ├── version.ts
│   │   │   └── viewer.ts
│   │   └── tsconfig.json
│   ├── sanddance-app/
│   │   ├── .gitignore
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── scripts/
│   │   │   └── deploy.js
│   │   ├── src/
│   │   │   ├── base.ts
│   │   │   ├── css/
│   │   │   │   └── sanddance-app.scss
│   │   │   ├── dataSourcePicker.tsx
│   │   │   ├── download.ts
│   │   │   ├── fluentUIComponents.ts
│   │   │   ├── index.tsx
│   │   │   ├── language.ts
│   │   │   ├── sanddanceApp.tsx
│   │   │   ├── snapshots.tsx
│   │   │   ├── types.ts
│   │   │   └── url.ts
│   │   ├── tsconfig.json
│   │   ├── vite.config.js
│   │   └── vite.dev.config.js
│   ├── sanddance-embed/
│   │   ├── .gitignore
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── css/
│   │   │   │   └── sanddance-embed.scss
│   │   │   ├── deps.ts
│   │   │   ├── gen/
│   │   │   │   ├── gen.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── prepare.ts
│   │   │   ├── sanddance-embed.ts
│   │   │   └── types/
│   │   │       ├── deps.d.ts
│   │   │       ├── fluentUI-icons.d.ts
│   │   │       ├── fluentUI.d.ts
│   │   │       ├── message-request.d.ts
│   │   │       ├── message-response.d.ts
│   │   │       └── sanddance-explorer.d.ts
│   │   ├── test/
│   │   │   ├── dynamic-deps/
│   │   │   │   ├── target.html
│   │   │   │   └── test.html
│   │   │   ├── standalone/
│   │   │   │   └── test.html
│   │   │   └── static-deps/
│   │   │       ├── target.html
│   │   │       └── test.html
│   │   └── tsconfig.json
│   ├── sanddance-explorer/
│   │   ├── .gitignore
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── bundle/
│   │   │   └── umd.js
│   │   ├── package.json
│   │   ├── scripts/
│   │   │   ├── deploy.js
│   │   │   └── prebuild.js
│   │   ├── src/
│   │   │   ├── base.ts
│   │   │   ├── canvas.ts
│   │   │   ├── clickableTextLayer.tsx
│   │   │   ├── colorMap.tsx
│   │   │   ├── colorScheme.ts
│   │   │   ├── columns.ts
│   │   │   ├── controls/
│   │   │   │   ├── CommandBarButton.styles.ts
│   │   │   │   ├── button.tsx
│   │   │   │   ├── columnMap.tsx
│   │   │   │   ├── columnTypeChanger.tsx
│   │   │   │   ├── dataExporter.tsx
│   │   │   │   ├── dataExporterHtml.ts
│   │   │   │   ├── dataItem.tsx
│   │   │   │   ├── dataScope.tsx
│   │   │   │   ├── dialog.tsx
│   │   │   │   ├── dropdown.tsx
│   │   │   │   ├── group.tsx
│   │   │   │   ├── iconButton.tsx
│   │   │   │   ├── index.ts
│   │   │   │   ├── logo.tsx
│   │   │   │   ├── renderer.tsx
│   │   │   │   ├── scrollable.tsx
│   │   │   │   ├── searchTerm.tsx
│   │   │   │   ├── sideButton.tsx
│   │   │   │   ├── sidebar.tsx
│   │   │   │   ├── signal.tsx
│   │   │   │   ├── textfield.tsx
│   │   │   │   ├── toggleColumns.tsx
│   │   │   │   └── topbar.tsx
│   │   │   ├── css/
│   │   │   │   ├── color.scss
│   │   │   │   ├── columnMap.scss
│   │   │   │   ├── dataIndex.scss
│   │   │   │   ├── dataItem.scss
│   │   │   │   ├── dataScope.scss
│   │   │   │   ├── group.scss
│   │   │   │   ├── history.scss
│   │   │   │   ├── note.scss
│   │   │   │   ├── palette.scss
│   │   │   │   ├── sanddance-explorer.scss
│   │   │   │   ├── scrollable.scss
│   │   │   │   ├── search.scss
│   │   │   │   ├── sidebar.scss
│   │   │   │   ├── snapshots.scss
│   │   │   │   └── topbar.scss
│   │   │   ├── dataLoader.ts
│   │   │   ├── defaults.ts
│   │   │   ├── dialogs/
│   │   │   │   ├── backgroundImageEditor.tsx
│   │   │   │   ├── chart.tsx
│   │   │   │   ├── color.tsx
│   │   │   │   ├── dataBrowser.tsx
│   │   │   │   ├── history.tsx
│   │   │   │   ├── search.tsx
│   │   │   │   ├── settings.tsx
│   │   │   │   ├── snapshotEditor.tsx
│   │   │   │   ├── snapshots.tsx
│   │   │   │   └── transition.tsx
│   │   │   ├── explorer.tsx
│   │   │   ├── exportDelimited.ts
│   │   │   ├── index.ts
│   │   │   ├── interfaces.ts
│   │   │   ├── keycodes.ts
│   │   │   ├── language.ts
│   │   │   ├── mouseEvent.ts
│   │   │   ├── palettes/
│   │   │   │   ├── categorical.tsx
│   │   │   │   ├── cyclical.tsx
│   │   │   │   ├── diverging.tsx
│   │   │   │   ├── dual.tsx
│   │   │   │   ├── index.tsx
│   │   │   │   ├── scheme.ts
│   │   │   │   ├── sequentialMultiHue.tsx
│   │   │   │   └── sequentialSingleHue.tsx
│   │   │   ├── partialInsight.ts
│   │   │   ├── searchGroups.ts
│   │   │   ├── themes.ts
│   │   │   └── version.ts
│   │   ├── tsconfig.json
│   │   └── vite.config.js
│   ├── sanddance-react/
│   │   ├── .gitignore
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── rollup.config.mjs
│   │   ├── scripts/
│   │   │   └── deploy.js
│   │   ├── src/
│   │   │   ├── base.ts
│   │   │   ├── css/
│   │   │   │   └── sanddance-react.scss
│   │   │   ├── index.ts
│   │   │   ├── util.ts
│   │   │   ├── version.ts
│   │   │   └── viewer.tsx
│   │   ├── test/
│   │   │   ├── index.html
│   │   │   ├── index.tsx
│   │   │   └── tsconfig.json
│   │   └── tsconfig.json
│   ├── sanddance-specs/
│   │   ├── .gitignore
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── rollup.config.mjs
│   │   ├── scripts/
│   │   │   └── deploy.js
│   │   ├── src/
│   │   │   ├── axes.ts
│   │   │   ├── bin.ts
│   │   │   ├── build.ts
│   │   │   ├── charts/
│   │   │   │   ├── barchartH.ts
│   │   │   │   ├── barchartV.ts
│   │   │   │   ├── density.ts
│   │   │   │   ├── grid.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── scatterplot.ts
│   │   │   │   ├── stacks.ts
│   │   │   │   ├── strips.ts
│   │   │   │   └── treemap.ts
│   │   │   ├── color.ts
│   │   │   ├── constants.ts
│   │   │   ├── defaults.ts
│   │   │   ├── expr.ts
│   │   │   ├── facetLayout.ts
│   │   │   ├── facetSearch.ts
│   │   │   ├── facetTitle.ts
│   │   │   ├── fill.ts
│   │   │   ├── globalScope.ts
│   │   │   ├── image.ts
│   │   │   ├── index.ts
│   │   │   ├── inference.ts
│   │   │   ├── insight.ts
│   │   │   ├── interfaces.ts
│   │   │   ├── layouts/
│   │   │   │   ├── aggregateContainer.ts
│   │   │   │   ├── aggregateSquare.ts
│   │   │   │   ├── band.ts
│   │   │   │   ├── cross.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── layout.ts
│   │   │   │   ├── scatter.ts
│   │   │   │   ├── square.ts
│   │   │   │   ├── stack.ts
│   │   │   │   ├── strip.ts
│   │   │   │   ├── treemap.ts
│   │   │   │   └── wrap.ts
│   │   │   ├── legends.ts
│   │   │   ├── ordinal.ts
│   │   │   ├── scales.ts
│   │   │   ├── scope.ts
│   │   │   ├── selection.ts
│   │   │   ├── signals.ts
│   │   │   ├── size.ts
│   │   │   ├── specBuilder.ts
│   │   │   ├── top.ts
│   │   │   ├── transforms.ts
│   │   │   ├── types.ts
│   │   │   └── zBase.ts
│   │   ├── test/
│   │   │   ├── demo.js
│   │   │   └── perf.js
│   │   ├── tsconfig.json
│   │   └── uitest/
│   │       ├── chart-types.d.ts
│   │       ├── index.ts
│   │       ├── tsconfig.json
│   │       └── vega.d.ts
│   ├── sanddance-test-es6/
│   │   ├── .gitignore
│   │   ├── package.json
│   │   ├── src/
│   │   │   └── sanddance-test-es6.ts
│   │   ├── tsconfig.json
│   │   └── vite.config.js
│   ├── sanddance-test-umd/
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── qualBarChartTest.ts
│   │   │   ├── quanBarChartTest.ts
│   │   │   ├── scatterplotTest.ts
│   │   │   ├── test.ts
│   │   │   ├── transforms.ts
│   │   │   ├── transition.ts
│   │   │   ├── treeMapTest.ts
│   │   │   ├── vega-morphcharts.test.ts
│   │   │   └── vega.d.ts
│   │   └── tsconfig.json
│   ├── search-expression/
│   │   ├── .gitignore
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── compare.ts
│   │   │   ├── exec.ts
│   │   │   ├── group.ts
│   │   │   ├── index.ts
│   │   │   ├── invert.ts
│   │   │   ├── narrow.ts
│   │   │   └── types.ts
│   │   └── tsconfig.json
│   ├── vega-deck.gl/
│   │   ├── .gitignore
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── alias/
│   │   │   ├── deck-external.js
│   │   │   ├── luma-external.js
│   │   │   └── react-external.js
│   │   ├── package.json
│   │   ├── rollup.config.mjs
│   │   ├── scripts/
│   │   │   └── deploy.js
│   │   ├── src/
│   │   │   ├── array.ts
│   │   │   ├── base.ts
│   │   │   ├── clone.ts
│   │   │   ├── color.ts
│   │   │   ├── constants.ts
│   │   │   ├── controls.tsx
│   │   │   ├── cube-layer/
│   │   │   │   ├── cube-layer-fragment.glsl.ts
│   │   │   │   ├── cube-layer-vertex.glsl.ts
│   │   │   │   └── cube-layer.ts
│   │   │   ├── deck.gl-classes/
│   │   │   │   ├── deckgl.ts
│   │   │   │   ├── linearInterpolator.ts
│   │   │   │   └── orbitController.ts
│   │   │   ├── defaults.ts
│   │   │   ├── easing.ts
│   │   │   ├── effects.ts
│   │   │   ├── enums.ts
│   │   │   ├── exports/
│   │   │   │   ├── controls.ts
│   │   │   │   ├── types.ts
│   │   │   │   └── util.ts
│   │   │   ├── htmlHelpers.ts
│   │   │   ├── index.ts
│   │   │   ├── interfaces.ts
│   │   │   ├── layers.ts
│   │   │   ├── legend.tsx
│   │   │   ├── marks/
│   │   │   │   ├── area.ts
│   │   │   │   ├── interfaces.ts
│   │   │   │   ├── legend.ts
│   │   │   │   ├── line.ts
│   │   │   │   ├── rect.ts
│   │   │   │   ├── rule.ts
│   │   │   │   └── text.ts
│   │   │   ├── panel.tsx
│   │   │   ├── patchedCubeArray.ts
│   │   │   ├── presenter.ts
│   │   │   ├── stagers.ts
│   │   │   ├── vega-classes/
│   │   │   │   ├── rendererGl.ts
│   │   │   │   └── viewGl.ts
│   │   │   ├── viewState.ts
│   │   │   └── zaxis.ts
│   │   ├── test/
│   │   │   ├── cubelayer/
│   │   │   │   ├── cubeTest.css
│   │   │   │   ├── cubeTest.html
│   │   │   │   └── cubeTest.ts
│   │   │   └── vegaspec/
│   │   │       ├── vega-deck.gl.test.css
│   │   │       ├── vega-deck.gl.test.html
│   │   │       └── vega-deck.gl.test.ts
│   │   └── tsconfig.json
│   ├── vega-morphcharts/
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── rollup.config.mjs
│   │   ├── scripts/
│   │   │   └── deploy.js
│   │   ├── src/
│   │   │   ├── array.ts
│   │   │   ├── base.ts
│   │   │   ├── clone.ts
│   │   │   ├── color.ts
│   │   │   ├── controls.tsx
│   │   │   ├── defaults.ts
│   │   │   ├── easing.ts
│   │   │   ├── enums.ts
│   │   │   ├── exports/
│   │   │   │   ├── controls.ts
│   │   │   │   ├── types.ts
│   │   │   │   └── util.ts
│   │   │   ├── htmlHelpers.ts
│   │   │   ├── index.ts
│   │   │   ├── interfaces.ts
│   │   │   ├── legend.tsx
│   │   │   ├── marks/
│   │   │   │   ├── image.ts
│   │   │   │   ├── interfaces.ts
│   │   │   │   ├── legend.ts
│   │   │   │   ├── line.ts
│   │   │   │   ├── rect.ts
│   │   │   │   ├── rule.ts
│   │   │   │   └── text.ts
│   │   │   ├── morphcharts/
│   │   │   │   ├── axes.ts
│   │   │   │   ├── bounds.ts
│   │   │   │   ├── camera.ts
│   │   │   │   ├── canvas.ts
│   │   │   │   ├── color.ts
│   │   │   │   ├── cubes.ts
│   │   │   │   ├── defaults.ts
│   │   │   │   ├── image.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── init.ts
│   │   │   │   ├── lines.ts
│   │   │   │   ├── render.ts
│   │   │   │   ├── renderer.ts
│   │   │   │   └── text.ts
│   │   │   ├── panel.tsx
│   │   │   ├── patchedCubeArray.ts
│   │   │   ├── presenter.ts
│   │   │   ├── stagers.ts
│   │   │   ├── transition.ts
│   │   │   ├── vega-classes/
│   │   │   │   ├── rendererGl.ts
│   │   │   │   └── viewGl.ts
│   │   │   └── version.ts
│   │   ├── test/
│   │   │   ├── tsconfig.json
│   │   │   └── vegaspec/
│   │   │       ├── vega-morphcharts.test.css
│   │   │       ├── vega-morphcharts.test.html
│   │   │       └── vega-morphcharts.test.ts
│   │   ├── tsconfig.json
│   │   └── vite.dev.config.js
│   └── vega-morphcharts-test-es6/
│       ├── package.json
│       ├── src/
│       │   └── vega-morphcharts-test-es6.ts
│       ├── tsconfig.json
│       └── vite.config.js
├── powerbi.md
├── scripts/
│   ├── copy_inuitcss.js
│   ├── publish.mjs
│   ├── readme.js
│   ├── vega-version.mjs
│   └── version.js
└── test/
    ├── data-inference.html
    ├── sanddance-app-direct.html
    ├── sanddance-app.html
    └── sanddance-test-es6.html

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/workflows/codeql.yml
================================================
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL Advanced"

on:
  push:
    branches: [ "main" ]
    paths-ignore:
      - 'docs/**'
  pull_request:
    branches: [ "main" ]
    paths-ignore:
      - 'docs/**'
  schedule:
    - cron: '38 18 * * 3'

jobs:
  analyze:
    name: Analyze (${{ matrix.language }})
    # Runner size impacts CodeQL analysis time. To learn more, please see:
    #   - https://gh.io/recommended-hardware-resources-for-running-codeql
    #   - https://gh.io/supported-runners-and-hardware-resources
    #   - https://gh.io/using-larger-runners (GitHub.com only)
    # Consider using larger runners or machines with greater resources for possible analysis time improvements.
    runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
    permissions:
      # required for all workflows
      security-events: write

      # required to fetch internal or private CodeQL packs
      packages: read

      # only required for workflows in private repositories
      actions: read
      contents: read

    strategy:
      fail-fast: false
      matrix:
        include:
        - language: javascript-typescript
          build-mode: none
        # CodeQL supports the following values keywords for 'language': 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift'
        # Use `c-cpp` to analyze code written in C, C++ or both
        # Use 'java-kotlin' to analyze code written in Java, Kotlin or both
        # Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
        # To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
        # see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
        # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
        # your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
    steps:
    - name: Checkout repository
      uses: actions/checkout@v4

    # Initializes the CodeQL tools for scanning.
    - name: Initialize CodeQL
      uses: github/codeql-action/init@v3
      with:
        languages: ${{ matrix.language }}
        build-mode: ${{ matrix.build-mode }}
        # If you wish to specify custom queries, you can do so here or in a config file.
        # By default, queries listed here will override any specified in a config file.
        # Prefix the list here with "+" to use these queries and those in the config file.

        # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
        # queries: security-extended,security-and-quality

    # If the analyze step fails for one of the languages you are analyzing with
    # "We were unable to automatically build your code", modify the matrix above
    # to set the build mode to "manual" for that language. Then modify this step
    # to build your code.
    # ℹ️ Command-line programs to run using the OS shell.
    # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
    - if: matrix.build-mode == 'manual'
      shell: bash
      run: |
        echo 'If you are using a "manual" build mode for one or more of the' \
          'languages you are analyzing, replace this with the commands to build' \
          'your code, for example:'
        echo '  make bootstrap'
        echo '  make release'
        exit 1

    - name: Perform CodeQL Analysis
      uses: github/codeql-action/analyze@v3
      with:
        category: "/language:${{matrix.language}}"


================================================
FILE: .gitignore
================================================
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage

# nyc test coverage
.nyc_output

# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# Typescript v1 declaration files
typings/

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env

# built files
**/src/**/*.js
docs/**/*.map
docs/.jekyll-cache
docs/.jekyll-metadata
docs/docs/**/assets

# powerbi builds
.tmp
webpack.statistics.dev.html

# local jekyll site
_site
.sass-cache

# mac files
.DS_Store

dist
!docs/dist


================================================
FILE: .vscode/launch.json
================================================
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "VsCode Extension",
            "type": "extensionHost",
            "request": "launch",
            "runtimeExecutable": "${workspaceRoot}",
            "args": [
                "--extensionDevelopmentPath=${workspaceRoot}/extensions/vscode-sanddance"
            ],
            "sourceMaps": true,
            "outFiles": [
                "${workspaceRoot}/extensions/vscode-sanddance/dist/**/*.js"
            ],
            "preLaunchTask": "vscode-webpack-extension"
        },
    ]
}

================================================
FILE: .vscode/settings.json
================================================
{
  "editor.tabSize": 4,
  "editor.insertSpaces": true,
  "files.associations": {
    "*.snapshots": "json"
  },
  "files.eol": "\n",
  "files.watcherExclude": {
    "**/.git/objects/**": true,
    "**/node_modules/**": true,
    ".tmp": true
  },
  "files.exclude": {
    ".tmp": true
  },
  "search.exclude": {
    ".tmp": true,
    "typings": true
  },
  "json.schemas": [
    {
      "fileMatch": [
        "/pbiviz.json"
      ],
      "url": "./packages/powerbi/.api/v1.10.0/schema.pbiviz.json"
    },
    {
      "fileMatch": [
        "/capabilities.json"
      ],
      "url": "./packages/powerbi/.api/v1.10.0/schema.capabilities.json"
    },
    {
      "fileMatch": [
        "/dependencies.json"
      ],
      "url": "./packages/powerbi/.api/v1.10.0/schema.dependencies.json"
    }
  ],
  "typescript.extension.sortImports.sortMethod": "path",
  "typescript.tsdk": "node_modules\\typescript\\lib"
}


================================================
FILE: .vscode/tasks.json
================================================
{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "npm",
			"script": "vscode-webpack-extension",
			"path": ".",
			"problemMatcher": [],
			"label": "vscode-webpack-extension",
			"detail": "vscode-webpack-extension"
		}
	]
}

================================================
FILE: LICENSE
================================================
    MIT License

    Copyright (c) Microsoft Corporation. All rights reserved.

    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:

    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE


================================================
FILE: README.md
================================================
# SandDance

Visually explore, understand, and present your data.

![sanddance-animation](https://user-images.githubusercontent.com/11507384/189461831-9467863e-bff8-47d2-aa03-ab2b74658814.gif)

By using easy-to-understand views, SandDance helps you find insights about your data, which in turn help you tell stories supported by data, build cases based on evidence, test hypotheses, dig deeper into surface explanations, support decisions for purchases, or relate data into a wider, real world context.

SandDance uses unit visualizations, which apply a one-to-one mapping between rows in your database and marks on the screen.
Smooth animated transitions between views help you to maintain context as you interact with your data.

> This new version of SandDance has been rebuilt from scratch with the goal of being modular, extensible, and embeddable into your custom applications. We are now on GitHub so that we are open and driven by the community through contributions, feature requests, and discussion.

SandDance was created by the [Microsoft Research VIDA Group](https://aka.ms/vida) which explores novel technologies for visualization and immersive data analytics.

## Where can I use SandDance?
* [Try it now on the web](https://microsoft.github.io/SandDance/app/)
* Microsoft apps:
  * [Power BI](https://appsource.microsoft.com/en-us/product/power-bi-visuals/WA200000430) - [*see additional info*](https://github.com/microsoft/SandDance/blob/master/powerbi.md)
  * [Azure Data Studio](https://docs.microsoft.com/en-us/sql/azure-data-studio/sanddance-extension?view=sql-server-2017)
  * [VSCode extension](https://marketplace.visualstudio.com/items?itemName=msrvida.vscode-sanddance)
* 3rd Party apps:
  * [Observable](https://observablehq.com/collection/@danmarshall/sanddance)
  * [HASH Core IDE](https://core.hash.ai/) - [*see 'Step Explorer' documentation*](https://docs.hash.ai/core/creating-simulations/views#step-explorer)
* In your own JavaScript apps - see below

## Component architecture

SandDance is an offering of several JavaScript components:

* [sanddance](packages/sanddance/README.md) - the core SandDance visualization canvas.
* [sanddance-specs](packages/sanddance-specs/README.md) - [Vega specifications](https://vega.github.io/vega/docs/specification/) for unit visualizations.
* [sanddance-react](packages/sanddance-react/README.md) - the core SandDance visualization canvas for use in React based applications.
* [sanddance-explorer](packages/sanddance-explorer/README.md) - the core SandDance visualization canvas with UI to enable data exploration, for use in React based applications.
* [sanddance-embed](packages/sanddance-embed/README.md) - the easiest way to embed SandDance Explorer in your applications, via an `<iframe>` tag.

## Publications

* 2018 - [Atom: A Grammar for Unit Visualizations](https://www.microsoft.com/en-us/research/uploads/prod/2019/01/atom.pdf)
  * Deokgun Park, Steven Drucker, Roland Fernandez, Niklas Elmqvist
  * IEEE Transactions on Visualization and Computer Graphics | December 2018, Vol 24(12): pp. 3032-3043
* 2015 - [A Unifying Framework for Animated and Interactive Unit Visualizations](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/sanddance.pdf)
  * Steven Drucker, Roland Fernandez 
  * MSR-TR-2015-65 | August 2015

## Articles & videos

* [SandDance project @ Microsoft Research](https://www.microsoft.com/en-us/research/project/sanddance/)
* [Microsoft Research webinar / Data Visualization: Bridging the Gap Between Users and Information](https://note.microsoft.com/MSR-Webinar-Data-Visualization-Registration-On-Demand.html).
* [SQL Server Blog / The August release of Azure Data Studio is now available](https://cloudblogs.microsoft.com/sqlserver/2019/08/15/the-august-release-of-azure-data-studio-is-now-available/)
* [Open Source Blog / What’s new in SandDance 3](https://cloudblogs.microsoft.com/opensource/2020/06/23/whats-new-sanddance-3-microsoft-research/)
* [Channel 9 - Data Exposed / Introducing SandDance: Data Visualization in Azure Data Studio](https://channel9.msdn.com/Shows/Data-Exposed/Introducing-SandDance-Data-Visualization-in-Azure-Data-Studio)
* [Channel 9 - Data Exposed / What is SandDance?](https://channel9.msdn.com/Shows/Data-Exposed/What-is-SandDance)
* [Hacker News / Microsoft open sources SandDance, a visual data exploration tool](https://news.ycombinator.com/item?id=21224685)
* [analyticsindiamag.com / Visualizations With SandDance Using Visual Studio Code](https://analyticsindiamag.com/visualizations-with-sanddance-using-visual-studio-code/)
* [codeburst.io / Exploring Titanic Dataset using Microsoft’s Sandance](https://codeburst.io/exploring-titanic-dataset-using-microsofts-sandance-175eb04b3ac2)
* [mathkuro.com / VS Codeのイケメンすぎる分析&可視化ツールSand Danceの使い方](https://www.mathkuro.com/vs-code/sand-dance/)
* [mathkuro.com / 【SandDanceグラフサンプル】用途に合わせて選択しましょう◎](https://www.mathkuro.com/vs-code/sanddance-charts/)
* [medium.com - @sefaoguzsaglam / how to start data visualizing with Microsoft’s SandDance (for beginners)](https://medium.com/@sefaoguzsaglam/how-to-start-data-visualizing-with-microsofts-sanddance-for-beginners-abe5c0552750)
* [mssqltips.com / SandDance for Azure Data Studio](https://www.mssqltips.com/sqlservertip/6045/sanddance-for-azure-data-studio/)
* [sqlshack.com / Exploring the SandDance Visualizations extension in Azure Data Studio](https://www.sqlshack.com/exploring-the-sanddance-visualizations-extension-in-azure-data-studio/)
* [torbjornzetterlund.com / I got to do some SandDance visualization](https://torbjornzetterlund.com/i-got-to-do-some-sanddance-vizualisation/)
* [YouTube - Anjani Prasad Atluri / SandDance: A tutorial](https://www.youtube.com/watch?v=sI4WIQEz07w)
* [YouTube - BI Tracks / SandDance Visualizations Tutorial - Azure Data Studio](https://www.youtube.com/watch?v=iUhvYMggzAQ)

## Changelog

* July 2022 - Major version bump to v4: Now using MorphCharts.
* June 2020 - Major version bump to v3: Now using Deck.gl@8.
* December 2019 - Major version bump to v2: Now using Vega@5.
* August 2019 - Initial release to AppSource (Power BI marketplace).
* April 2019 - Initial release to GitHub.

## Known issues

* Animations require a WebGL2 enabled browser.

## Roadmap

* ~~PowerBI custom visual based on this new architecture.~~ done!
* ~~Additional views, such as stacks.~~ done!
* Code examples and tutorials.
* ~~Faceting for all chart types.~~ done!
* Better date handling.

## Dependencies

SandDance is created with open source libraries, using [Vega](https://vega.github.io) for chart layout.

## Development

See [dev.md](dev.md)

## Contributing

This project welcomes contributions and suggestions.  Most contributions require you to agree to a
Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide
a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions
provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.


================================================
FILE: SECURITY.md
================================================
<!-- BEGIN MICROSOFT SECURITY.MD V0.0.6 BLOCK -->

## Security

Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/).

If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://docs.microsoft.com/previous-versions/tn-archive/cc751383(v=technet.10)), please report it to us as described below.

## Reporting Security Issues

**Please do not report security vulnerabilities through public GitHub issues.**

Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report).

If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com).  If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://www.microsoft.com/msrc/pgp-key-msrc).

You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://www.microsoft.com/msrc). 

Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue:

  * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
  * Full paths of source file(s) related to the manifestation of the issue
  * The location of the affected source code (tag/branch/commit or direct URL)
  * Any special configuration required to reproduce the issue
  * Step-by-step instructions to reproduce the issue
  * Proof-of-concept or exploit code (if possible)
  * Impact of the issue, including how an attacker might exploit the issue

This information will help us triage your report more quickly.

If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://microsoft.com/msrc/bounty) page for more details about our active programs.

## Preferred Languages

We prefer all communications to be in English.

## Policy

Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://www.microsoft.com/msrc/cvd).

<!-- END MICROSOFT SECURITY.MD BLOCK -->


================================================
FILE: azure-pipelines.yml
================================================
# Node.js
# Build a general Node.js project with npm.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/javascript

trigger:
- master

pool:
  vmImage: 'ubuntu-latest'

steps:
- task: NodeTool@0
  inputs:
    versionSpec: '20.x'
  displayName: 'Install Node.js'

- script: |
    npm i -g npm@10
  displayName: 'Install npm 10'

- script: |
    npm ci
  displayName: 'npm ci'

- task: ComponentGovernanceComponentDetection@0
  inputs:
    scanType: 'Register'
    verbosity: 'Verbose'
    alertWarningLevel: 'High'

- script: |
    npm -v
  displayName: 'npm version'

- script: |
    npm run build
  displayName: 'npm build'

- script: |
    npm test
  displayName: 'npm test'

- script: |
    npm run deploy
  displayName: 'deploy to website'


================================================
FILE: dev.md
================================================
# SandDance development

The SandDance repo is a monorepo made up of several packages, managed by npm workspaces. SandDance is a component stack with the layer hierarchy below:

1. [Deck.gl](https://github.com/uber/deck.gl) - WebGL rendering and canvas control.
1. [Vega](https://github.com/vega/vega) - chart layout.
1. [sanddance-specs](https://github.com/microsoft/SandDance/tree/master/packages/sanddance-specs) - [Vega specifications](https://vega.github.io/vega/docs/specification/) for unit visualizations.
1. [sanddance](https://github.com/microsoft/SandDance/tree/master/packages/sanddance) - unit visualization chart views and selecting / filtering interaction.
1. [sanddance-test-umd](https://github.com/microsoft/SandDance/tree/master/packages/sanddance-test-umd) - test of sanddance in UMD deployment.
1. [sanddance-test-es6](https://github.com/microsoft/SandDance/tree/master/packages/sanddance-test-es6) - test of sanddance in es6 deployment.
1. [sanddance-react](https://github.com/microsoft/SandDance/tree/master/packages/sanddance-react) - (optional) React wrapper for sanddance.
1. [sanddance-explorer](https://github.com/microsoft/SandDance/tree/master/packages/sanddance-explorer) - React-based data exploration component.
1. [sanddance-app](https://github.com/microsoft/SandDance/tree/master/packages/sanddance-app) - React-based sample application used on website.

## System requirements
* Node.js 16 or higher
* NPM 8 or higher

## Install
1. Clone this repo
1. `npm install`
1. [Install Jekyll](https://jekyllrb.com/) to run the website locally.

## Build
1. `npm run build`

## Run
Depending on which component you'd like to see, you can run in various ways.

### Run website
1. `npm run deploy`
1. `cd docs`
1. `jekyll serve`
1. Visit http://127.0.0.1:4000/SandDance/
1. For tests, visit http://127.0.0.1:4000/SandDance/tests

### Run sanddance-app with watchers
1. `npm start`
1. Visit http://127.0.0.1:8085/


================================================
FILE: docker-jekyll-local/Dockerfile
================================================
FROM jekyll/jekyll:4.2.2

WORKDIR /srv/jekyll

# Copy the docs directory
COPY docs/ ./

# Install dependencies
RUN bundle install

EXPOSE 4000

CMD ["bundle", "exec", "jekyll", "serve", "--host", "0.0.0.0", "--port", "4000"]


================================================
FILE: docker-jekyll-local/README.md
================================================
# Jekyll Local Development with Docker

This repository includes Docker setup for running Jekyll locally to preview the GitHub Pages site.

## Quick Start

### Start Jekyll
```bash
cd docker-jekyll-local
docker-compose up
```

### View your site
Open http://localhost:4000/SandDance/ in your browser

### Stop Jekyll
Type ctrl-C in the terminal running `docker-compose up`

## Other useful commands

### Rebuild after changes
```bash
cd docker-jekyll-local
docker-compose build
```

## Files

- `docker-jekyll-local/Dockerfile` - Jekyll container setup for local development
- `docker-jekyll-local/docker-compose.yml` - Container orchestration for local development
- `docs/Gemfile` - Jekyll dependencies (same as GitHub Pages)
- `docs/_config.yml` - Jekyll configuration

The setup uses the same `github-pages` gem as GitHub Pages to ensure compatibility.


================================================
FILE: docker-jekyll-local/docker-compose.yml
================================================
services:
  jekyll:
    build:
      context: ..
      dockerfile: docker-jekyll-local/Dockerfile
    ports:
      - "4000:4000"
    volumes:
      - ../docs:/srv/jekyll
    command: bundle exec jekyll serve --host 0.0.0.0 --port 4000 --force_polling

================================================
FILE: docs/Gemfile
================================================
source "https://rubygems.org"

gem "github-pages", group: :jekyll_plugins
gem "webrick", "~> 1.7"


================================================
FILE: docs/_config.yml
================================================
baseurl: /SandDance
sass:
  style: compressed


================================================
FILE: docs/_data/apitree.json
================================================
{
  "sanddance": [
    "colorSchemes",
    "constants",
    "searchExpression",
    "specs",
    "types",
    "use",
    "util",
    "VegaDeckGl",
    "version",
    "Viewer"
  ],
  "sanddance-explorer": [
    "capabilities",
    "ColorSettings",
    "controls",
    "DataContent",
    "DataExportType",
    "DataFile",
    "DataFileType",
    "Explorer",
    "Explorer_Class",
    "getColorSettingsFromThemePalette",
    "getEmbedHTML",
    "HistoricInsight",
    "HistoryAction",
    "HistoryItem",
    "Index",
    "Options",
    "Prefs",
    "Props",
    "SettingsGroup",
    "SideTabId",
    "State",
    "themePalettes",
    "UIState",
    "use",
    "version",
    "ViewerOptions"
  ],
  "sanddance-react": [
    "Props",
    "SandDance",
    "SandDanceReact",
    "use",
    "util",
    "version"
  ],
  "vega-deck.gl": [
    "base",
    "constants",
    "controls",
    "defaults",
    "Presenter",
    "PresenterElement",
    "types",
    "use",
    "util",
    "ViewGl"
  ]
}

================================================
FILE: docs/_data/outlines.json
================================================
{
  "sanddance": {
    "constants.md": [
      "Variables"
    ],
    "types.md": [
      "Interfaces"
    ],
    "util.md": [
      "Functions"
    ],
    "viewer.md": [
      "Constructor",
      "Methods",
      "Properties"
    ]
  },
  "sanddance-explorer": {
    "controls.md": [
      "Functions",
      "Interfaces"
    ],
    "explorer_class.md": [
      "Constructor",
      "Methods",
      "Properties"
    ]
  },
  "sanddance-react": {
    "util.md": [
      "Variables"
    ]
  },
  "vega-deck.gl": {
    "constants.md": [
      "Variables"
    ],
    "controls.md": [
      "Interfaces",
      "Variables"
    ],
    "defaults.md": [
      "Functions",
      "Variables"
    ],
    "presenter.md": [
      "Constructor",
      "Methods",
      "Properties"
    ],
    "types.md": [
      "Interfaces",
      "Types"
    ],
    "util.md": [
      "Functions"
    ]
  }
}

================================================
FILE: docs/_data/tree.json
================================================
{
  "Overview": [
    {
      "tree": "Introduction",
      "url": "/docs"
    },
    {
      "tree": "Changelog",
      "url": "/docs/changelog"
    },
    {
      "tree": "Contributing",
      "url": "/docs/contributing"
    }
  ],
  "Resources": [
    {
      "tree": "Vega",
      "url": "https://vega.github.io/"
    },
    {
      "tree": "MorphCharts",
      "url": "https://morphcharts.com/"
    }
  ]
}

================================================
FILE: docs/_includes/footer-links.html
================================================
<span>
    <a href="https://github.com/microsoft">Open source, from Microsoft with love.</a>
</span>
<span>
    <a href="https://github.com/microsoft/sanddance/issues">Contact us on GitHub</a>
</span>
<span>
    <a href="https://go.microsoft.com/fwlink/?LinkId=521839">Privacy &amp; Cookies</a>
</span>
<span>
    <a href="https://go.microsoft.com/fwlink/?linkid=2259814">Consumer Health Privacy</a>
</span>
<span>
    <a href="https://www.microsoft.com/en-us/servicesagreement/">Terms of Use</a>
</span>
<br/>
<span>
    This site does not collect any personal information or use cookies.
</span>
<span>
    ©2019-2024 Microsoft.
</span>


================================================
FILE: docs/_layouts/api.html
================================================
---
layout: default
---

<nav class="c-breadcrumbs">
    <div class="o-wrapper">
        <a href="{{ site.baseurl }}/docs" class="c-breadcrumbs__crumb">Docs</a> 
        <a href="{{ site.baseurl }}/docs/api" class="c-breadcrumbs__crumb">Api Reference</a>
    </div>
</nav>

<section class="c-page-content">
    <div class="o-wrapper">
        <div class="o-layout o-layout--large">
            <div class="o-layout__item u-1/4@tablet c-tree-stick">
                <ul id="site-tree" class="c-tree o-list-bare" role="tree">
                    {% for tree in site.data.apitree %}

                    {% assign page_url = site.baseurl | append: page.url %}

                    {% assign tree_url = site.baseurl | append: "/docs/" | append : tree[0] | append: "/v3/api/" %}

                    <li class="c-tree__item o-list-bare__item" role="treeitem">
                        <div class="c-tree__toggle js-tree-toggle{% if page_url == tree_url %} is-open is-active{% endif %}">
                            <a href="{{ tree_url }}" {% if page_url == tree_url %}class="is-active"{% endif %}>
                                {{ tree[0] }}
                            </a>
                        </div>

                        <ul class="c-tree__submenu">
                            {% for branch in tree[1] %}
                            <li class="c-tree__item">
                                <a href="{{ site.baseurl }}/docs/{{ tree[0] }}/v3/api/#{{ branch | downcase }}">
                                    {{ branch }}
                                </a>
                            </li>
                            {% endfor %}
                        </ul>

                    </li>
                    {% endfor %}
                </ul>
            </div>

            <div class="o-layout__item u-3/4@tablet">

                {{ content }}

            </div>
        </div>
    </div>
</div>

================================================
FILE: docs/_layouts/default.html
================================================
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>SandDance {{ page.title }}</title>
    <link rel="stylesheet" href="{{ site.baseurl }}/assets/css/main.css">
    <link rel="stylesheet" href="{{ site.baseurl }}/assets/css/typedoc.css">
    <link rel="shortcut icon" href="{{ site.baseurl }}/favicon.ico" />
</head>

<body>
    <header class="c-page-head">
        <div class="o-wrapper">
            <button id="site-nav-toggle" type="button" class="c-site-nav-toggle">
                <span></span>
                <span></span>
                <span></span>
            </button>

            <a href="//opensource.microsoft.com/" class="c-page-head__logo">
                <img alt="Microsoft logo" src="{{ site.baseurl }}/assets/images/microsoft-logo.png">
            </a>

            <strong class="c-page-head__title">SandDance</strong>

            <nav id="site-nav" class="c-site-nav">
                <a href="{{ site.baseurl }}/" class="c-site-nav__item">
                    Home
                </a>
                <a href="{{ site.baseurl }}/app/" class="c-site-nav__item">
                    Try Online
                </a>
                <a href="{{ site.baseurl }}/examples/" class="c-site-nav__item">
                    Examples
                </a>
                <a href="{{ site.baseurl }}/docs/" class="c-site-nav__item">
                    Docs
                </a>
                <a href="https://github.com/Microsoft/SandDance" class="c-site-nav__item">
                    GitHub
                </a>
            </nav>

            <button id="site-tree-toggle" type="button" class="c-tree-toggle">
                <div class="c-tree-toggle__icon">
                    <span></span>
                    <span></span>
                    <span></span>
                </div>
                <span class="c-tree-toggle__label">
                    Contents
                </span>
            </button>

            <button id="dark-mode-toggle" type="button" class="c-dark-mode-toggle">
            </button>
        </div>
    </header>

    <main class="c-page-main">

        {{ content }}

    </main>

    <footer class="o-wrapper">
        {% include footer-links.html %}
    </footer>

    <script src="{{ site.baseurl }}/assets/js/main.js"></script>
</body>

</html>

================================================
FILE: docs/_layouts/docs.html
================================================
---
layout: default
---

<nav class="c-breadcrumbs">
    <div class="o-wrapper">
        <a href="{{ site.baseurl }}/docs" class="c-breadcrumbs__crumb">Docs</a>
    </div>
</nav>

{% assign match = '' %}
{% for tree in site.data.tree %}
    {% for branch in tree[1] %}
        {% assign checkArray = page.url | split:branch.url %}                       
        {% if checkArray[0] == '' %}
            {% assign match = branch.url %}
        {% endif %}
    {% endfor %}
{% endfor %}

<section class="c-page-content">
    <div class="o-wrapper">
        <div class="o-layout o-layout--large">
            <div class="o-layout__item u-1/4@tablet c-tree-stick">
                <ul id="site-tree" class="c-tree o-list-bare" role="tree">
                    {% for tree in site.data.tree %}
                    <li class="c-tree__item o-list-bare__item" role="treeitem">
                        <div class="c-tree__toggle js-tree-toggle">
                            {{ tree[0] }}
                        </div>

                        <ul class="c-tree__submenu">
                            {% for branch in tree[1] %}
                                {% if branch.hidden != true %}
                                    {% assign page_url = page.url %}
                                    {% assign page_num = page_url | size | minus: 1 %}
                                    {% assign page_last_char = page_url | slice: page_num, page_num %}
                                    {% if page_last_char == "/" %}
                                        {% assign page_url = page_url | slice: 0, page_num %}
                                    {% endif %}

                                    {% assign branch_url = branch.url %}
                                    {% assign branch_num = branch_url | size | minus: 1 %}
                                    {% assign branch_last_char = branch_url | slice: branch_num, branch_num %}
                                    {% if branch_last_char == "/" %}
                                        {% assign branch_url = branch_url | slice: 0, branch_num %}
                                    {% endif %}
                                    {% if branch.url contains "https://" %}
                                        {% assign branch_link = branch_url %}
                                    {% else %}
                                        {% capture branch_link %}{{ site.baseurl }}{{branch_url}}{% endcapture %}
                                    {% endif %}

                                    <li class="c-tree__item {% if branch.url == match %} is-active{% endif %}">
                                        <a href="{{ branch_link }}" {% if branch.url == match %}class="is-active"{% endif %}>
                                            {{ branch.tree }}
                                        </a>
                                    </li>
                                {% endif %}
                            {% endfor %}
                        </ul>

                    </li>
                    {% endfor %}
                </ul>
            </div>

            <div class="o-layout__item u-3/4@tablet">

                {{ content }}

            </div>
        </div>
    </div>
</section>

================================================
FILE: docs/_layouts/page.html
================================================
---
layout: default
---

<section class="c-page-content">
    <div class="o-wrapper">

        {{ content }}

    </div>
</section>


================================================
FILE: docs/_layouts/typedoc.html
================================================
---
layout: docs
---

<div class="typedoc">

    {{ content }}

    <footer class="with-border-bottom o-wrapper">
        <div class="container">
            <h2>Legend</h2>
            <div class="tsd-legend-group">
                <ul class="tsd-legend">
                    <li class="tsd-kind-module"><span class="tsd-kind-icon">Module</span></li>
                    <li class="tsd-kind-object-literal"><span class="tsd-kind-icon">Object literal</span></li>
                    <li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
                    <li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
                    <li class="tsd-kind-function tsd-has-type-parameter"><span class="tsd-kind-icon">Function with type parameter</span></li>
                    <li class="tsd-kind-index-signature"><span class="tsd-kind-icon">Index signature</span></li>
                    <li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
                    <li class="tsd-kind-type-alias tsd-has-type-parameter"><span class="tsd-kind-icon">Type alias with type parameter</span></li>
                </ul>
                <ul class="tsd-legend">
                    <li class="tsd-kind-enum"><span class="tsd-kind-icon">Enumeration</span></li>
                    <li class="tsd-kind-enum-member"><span class="tsd-kind-icon">Enumeration member</span></li>
                    <li class="tsd-kind-property tsd-parent-kind-enum"><span class="tsd-kind-icon">Property</span></li>
                    <li class="tsd-kind-method tsd-parent-kind-enum"><span class="tsd-kind-icon">Method</span></li>
                </ul>
                <ul class="tsd-legend">
                    <li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
                    <li class="tsd-kind-interface tsd-has-type-parameter"><span class="tsd-kind-icon">Interface with type parameter</span></li>
                    <li class="tsd-kind-constructor tsd-parent-kind-interface"><span class="tsd-kind-icon">Constructor</span></li>
                    <li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
                    <li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
                    <li class="tsd-kind-index-signature tsd-parent-kind-interface"><span class="tsd-kind-icon">Index signature</span></li>
                </ul>
                <ul class="tsd-legend">
                    <li class="tsd-kind-class"><span class="tsd-kind-icon">Class</span></li>
                    <li class="tsd-kind-class tsd-has-type-parameter"><span class="tsd-kind-icon">Class with type parameter</span></li>
                    <li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
                    <li class="tsd-kind-property tsd-parent-kind-class"><span class="tsd-kind-icon">Property</span></li>
                    <li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
                    <li class="tsd-kind-accessor tsd-parent-kind-class"><span class="tsd-kind-icon">Accessor</span></li>
                    <li class="tsd-kind-index-signature tsd-parent-kind-class"><span class="tsd-kind-icon">Index signature</span></li>
                </ul>
                <ul class="tsd-legend">
                    <li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited constructor</span></li>
                    <li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited property</span></li>
                    <li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited method</span></li>
                    <li class="tsd-kind-accessor tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited accessor</span></li>
                </ul>
                <ul class="tsd-legend">
                    <li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected"><span class="tsd-kind-icon">Protected property</span></li>
                    <li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><span class="tsd-kind-icon">Protected method</span></li>
                    <li class="tsd-kind-accessor tsd-parent-kind-class tsd-is-protected"><span class="tsd-kind-icon">Protected accessor</span></li>
                </ul>
                <ul class="tsd-legend">
                    <li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private property</span></li>
                    <li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private method</span></li>
                    <li class="tsd-kind-accessor tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private accessor</span></li>
                </ul>
                <ul class="tsd-legend">
                    <li class="tsd-kind-property tsd-parent-kind-class tsd-is-static"><span class="tsd-kind-icon">Static property</span></li>
                    <li class="tsd-kind-call-signature tsd-parent-kind-class tsd-is-static"><span class="tsd-kind-icon">Static method</span></li>
                </ul>
            </div>
        </div>
    </footer>

    <div class="container tsd-generator">
        <p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
    </div>

</div>

================================================
FILE: docs/_sass/components/_components.breadcrumbs.scss
================================================
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
/*------------------------------------*\
  #BREADCRUMBS
\*------------------------------------*/

.c-breadcrumbs {
    border-bottom: 1px solid $ms-black-200;
    background: $ms-black-100;

    .dark-theme & {
        border-bottom-color: $ms-black-500;
        background: $ms-black-600;
    }

    &__crumb {
        display: inline-block;
        padding-top:    $spacing-small;
        padding-right:  $spacing-tiny;
        padding-bottom: $spacing-small;
        color: $ms-sky-400;

        // Dividers on all but the last crumb
        &:not(:last-child) {
            &:after {
                display: inline-block;
                content: "/";
                margin-left: $spacing-small;
                color: $ms-black-300;
            }
        }

        &:last-child {
            //color: $ms-black-600;
        }
    }
}

================================================
FILE: docs/_sass/components/_components.buttons.scss
================================================
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.


================================================
FILE: docs/_sass/components/_components.page-content.scss
================================================
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
/*------------------------------------*\
  #PAGE CONTENT
\*------------------------------------*/

.c-page-content {
    min-height: 10em;
    padding-top: $spacing;

    blockquote {
      border-radius: 6px;
      padding: 16px;
      background-color: rgb(226, 218, 241);
      p {
        margin-bottom: 0;
      }
      .dark-theme & {
          background-color: rgb(56, 34, 93);
      }      
    }
}

================================================
FILE: docs/_sass/components/_components.page-foot.scss
================================================
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
/*------------------------------------*\
  #PAGE FOOT
\*------------------------------------*/

footer {
    font-size: smaller;
    span a {
        border-left: 1px solid $ms-black-300;
        margin-left: 1em;
        padding-left: 1em;
    }
    span:first-child a {
        border-left: initial;
        margin-left: initial;
        padding-left: initial;
    }
}

================================================
FILE: docs/_sass/components/_components.page-head.scss
================================================
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
/*------------------------------------*\
  #PAGE HEAD
\*------------------------------------*/

.c-page-head {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000;
    width: 100%;
    padding-top:    $spacing-small;
    padding-bottom: $spacing-small;
    text-align: center;
    background: $ms-black-600;
    border-bottom: 1px solid transparent;
    color: white;

    .dark-theme & {
        border-color: $ms-black-500;
    }

    @include mq($from: desktop) {
        padding: 0;
        text-align: left;
    }

    &__logo {
        display: inline-block;
        vertical-align: middle;
        height: $spacing;
        margin-bottom: $spacing;        

        @include mq($from: desktop) {
            margin-right:  $spacing-small + $spacing-tiny;
            margin-bottom: 0;
            padding-right: $spacing + $spacing-small;
            border-right: 2px solid $ms-black-400;
        }

        > img {
            display: block;
            height: $spacing;
        }
    }

    &__title {
        display: block;
        font-weight: 600;
        text-align: left;
        @include inuit-font-size($inuit-font-size-h5);

        @include mq($from: desktop) {
            display: inline-block;
            vertical-align: middle;
            margin-right: $spacing;
            font-weight: 400;
            @include inuit-font-size($inuit-font-size-h3);
        }

        &:after {
            content: '';
            position: absolute;
            top: $spacing-large;
            left: 0;
            width: 100%;
            height: 1px;
            background: $ms-black-500;

            @include mq($from: desktop) {
                display: none;
            }
        }
    }
}

.c-dark-mode-toggle {
    position: absolute;
    top: $spacing-tiny + $spacing-tiny/2;
    right: $spacing-small;
    padding-top:    $spacing-tiny;
    padding-bottom: $spacing-tiny;
    padding-right:  $spacing-small;
    padding-left:   $spacing-small;
    display: inline-block;
    background: transparent;
    border: 0;
    border-radius: $spacing-tiny/2;
    outline: 0;
    cursor: pointer;
    color: white;
    width: 6rem;
    text-align: center;
    line-height: $spacing;
    @include inuit-font-size(10px);

    &:hover,
    &:focus {
        background: $ms-black-500;
    }

    &:before {
        display: inline-block;
        vertical-align: middle;
        margin-right: $spacing-tiny;
        margin-top: -$spacing-tiny/2;
        content: '';
        height: $spacing;
        width: $spacing;
        background: url(../images/icons/moon.svg);
        background-size: cover;
        background-position: center center;
    }

    .dark-theme & {
        &:before {
            background-image: url(../images/icons/sun.svg);
        }
    }

    @include mq($from: desktop) {
        position: static;
        float: right;
        margin-top: $spacing-small;

        @include inuit-font-size($inuit-font-size-h5);
    }
}

================================================
FILE: docs/_sass/components/_components.page-main.scss
================================================
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
/*------------------------------------*\
  #PAGE MAIN
\*------------------------------------*/

.c-page-main {
    padding-top: $spacing-huge;
    padding-bottom: $spacing-huge;
    
    @include mq($from: desktop) {
        padding-top: $spacing-large + $spacing-small;
    }
}

================================================
FILE: docs/_sass/components/_components.site-nav.scss
================================================
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
/*------------------------------------*\
  #SITE NAV
\*------------------------------------*/

.c-site-nav {
    display: inline-block;
    vertical-align: middle;
    text-align: left;

    @include mq($until: desktop) {
        display: block;
        position: absolute;
        top: 48px;
        left: 0;
        width: 100%;
        z-index: 1000;

        &:not(.is-open) {
            @include inuit-hidden-visually();
        }
    }

    &__item {
        position: relative;
        display: block;
        padding-top:    $spacing-small;
        padding-right:  $spacing;
        padding-bottom: $spacing-small;
        padding-left:   $spacing;
        color: white;
        background: $ms-black-500;

        @include mq($from: desktop) {
            display: inline-block;
            padding-top:    $spacing-small + $spacing-tiny;
            padding-right:  $spacing-small;
            padding-bottom: $spacing-small + $spacing-tiny;
            padding-left:   $spacing-small;
            background: transparent;
            @include inuit-font-size($inuit-font-size-h6);
        }

        /*&:after {
            content: "";
            position: absolute;
            bottom: $spacing-small + $spacing-tiny;
            left: $spacing-small;
            right: $spacing-small;
            height: 2px;
            background: $ms-black-100;
            opacity: 0;
        }*/

        &:hover,
        &:focus {
            background: $ms-black-500;
            text-decoration: none;

            &:after {
                opacity: 1;
            }
        }
    }

    a {
        text-decoration: none;

        &:hover,
        &:focus {
            text-decoration: underline;
        }
    }
}

.c-site-nav-toggle {
    position: absolute;
    top: 0;
    left: 0;
    height: $spacing-large;
    width: $spacing-large + $spacing;
    border: 0;
    outline: 0;
    background: transparent;
    appearance: none;

    &:hover,
    &:focus {
        background: $ms-black-500;
    }

    > span {
        position: absolute;
        width: $spacing;
        height: 1px;
        left: 50%;
        margin-left: -$spacing/2;
        background: $ms-black-100;

        &:first-child  { top: 35%; }
        &:nth-child(2) { top: 50%; }
        &:last-child   { bottom: 35%; }
    }

    @include mq($from: desktop) {
        display: none;
    }
}

================================================
FILE: docs/_sass/components/_components.tree.scss
================================================
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
/*------------------------------------*\
  #TREE
\*------------------------------------*/

.c-tree {
    @include mq($until: tablet) {
        position: fixed;
        top: $spacing-huge;
        left: 0;
        width: 100%;
        padding: $spacing;
        background: $ms-black-100;
        border-bottom: 1px solid $ms-black-200;
        z-index: 1000;

        .dark-theme & {
            background: $ms-black-500;
            border-bottom-color: $ms-black-600;
        }

        &:not(.is-open) {
            @include inuit-hidden-visually();
        }
    }

    ul {
        margin-left: 0;
        overflow: hidden;
        transition: height 250ms;
    }

    li {
        list-style: none;
    }

    a {
        display: inline-block;
        width: 100%;
        vertical-align: middle;
        padding-top:    $spacing-tiny/2;
        padding-right:  $spacing-small;
        padding-bottom: $spacing-tiny/2;
        padding-left:   $spacing + $spacing-tiny;
        color: $ms-black-600;

        .dark-theme & {
            color: white;
        }

        &:hover,
        &:focus {
            color: $ms-sky-500;
            text-decoration: underline;
        }

        &.is-active {
            background: $ms-sky-500;
            color: white;
        }
    }

    &__toggle {
        position: relative;
        cursor: pointer;
        padding-top:    $spacing-tiny/2;
        padding-right:  $spacing-small;
        padding-bottom: $spacing-tiny/2;
        padding-left:   $spacing + $spacing-tiny;

        &:before {
            content: "";
            display: block;
            position: absolute;
            top: 50%;
            left: 0;
            margin-left:  $spacing-tiny;
            margin-right: $spacing-tiny;
            margin-top:   -$spacing-tiny/2;
            height: $spacing-tiny*1.5;
            width: $spacing-tiny*1.5;
            border-style: solid;
            border-radius: 2px;
            border-width: 2px 2px 0 0;
            border-color: $ms-black-500;
            transform: rotate(45deg);
            transition: transform 250ms;

            .dark-theme & {
                border-color: $ms-black-400;
            }
        }

        &.is-open {
            &:before {
                transform: rotate(135deg);
            }
        }

        &.is-active {
            &:before {
                border-color: white;
            }
        }

        > a {
            padding-left: 0;

            &.is-active {
                margin-left: -$spacing - $spacing-tiny;
                padding-left: $spacing + $spacing-tiny;
                width: calc(100% + #{$spacing + $spacing-tiny});
            }
        }
    }
}

.c-tree-stick {
    @include mq($from: tablet) {
        position: sticky;
        top: $spacing*3 + $spacing-small;
    }
}

.c-tree-toggle {
    position: absolute;
    bottom: 0;
    right: 0;
    padding-top:    $spacing-small;
    padding-right:  $spacing;
    padding-bottom: $spacing-small;
    padding-left:   $spacing;
    background: transparent;
    border: 0;
    outline: 0;
    appearance: none;
    color: white;
    @include inuit-font-size(10px);

    @include mq($from: desktop) {
        display: none;
    }

    &:hover,
    &:focus {
        background: $ms-black-500;
    }

    &__icon {
        display: inline-block;
        vertical-align: middle;
        position: relative;
        height: $spacing;
        width: $spacing;
        margin-right: $spacing-tiny;

        > span {
            width: 80%;
            height: 1px;
            position: absolute;
            right: 0;
            background: $ms-black-100;

            &:first-child { top: 26%; }
            &:nth-child(2) { top: 50%; }
            &:last-child   { bottom: 26%; }

            &:before {
                content: "";
                position: absolute;
                top: -0.5px;
                left: -20%;
                width: 2px;
                height: 2px;
                border-radius: 50%;
                background: inherit;
            }
        }
    }

    &__label {
        display: inline-block;
        vertical-align: middle;
    }
}

================================================
FILE: docs/_sass/elements/_elements.code.scss
================================================
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
/*------------------------------------*\
  #CODE BLOCKS
\*------------------------------------*/

pre.highlight {
    width: 100%;
    max-width: 100%;
    overflow: auto;
    margin-bottom: $spacing;
    padding: $spacing;
    background: lighten($ms-black-100, 3%);
    border: 1px solid $ms-black-200;
    @include inuit-font-size($inuit-font-size-h5);

    .dark-theme & {
         background: $ms-black-600;
         border-color: $ms-black-500;
    }

    > pre {
        margin-bottom: 0;
        font-family: Consolas, Lucida Console, Courier New, monospace;
    }

    code {
        padding: 0;
    }
}

[class*="language-"]:before {
    display: block;
    width: 100%;
    padding-top:    $spacing-tiny;
    padding-right:  $spacing;
    padding-bottom: $spacing-tiny;
    padding-left:   $spacing;
    background: $ms-black-100;
    border: 1px solid $ms-black-200;
    border-bottom: 0;
    color: $ms-black-500;
    @include inuit-font-size($inuit-font-size-h6);

    .dark-theme & {
        background: $ms-sky-500;
        border-color: $ms-sky-400;
        color: $ms-black-200;
    }
}

.language-html:before       { content: 'HTML'; }
.language-js:before         { content: 'JavaScript'; }
.language-json:before       { content: 'JSON'; }
.language-typescript:before { content: 'TypeScript'; }

code {
    padding-bottom:   $spacing-tiny;
    padding-right:  $spacing-tiny;
    padding-left:   $spacing-tiny;
    background: lighten($ms-black-100, 3%);
    border: 1px solid $ms-black-200;
    color: $ms-black-500;
    @include inuit-font-size($inuit-font-size-h5);

    pre & {
        border: 0;
        display: block;
        overflow: auto;
    }
}

================================================
FILE: docs/_sass/elements/_elements.headings.scss
================================================
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
/*------------------------------------*\
  #HEADINGS
\*------------------------------------*/

$header-height: 60px + $spacing;

h1, h2, h3,
h4, h5, h6 {
    margin-top: 0;
    font-weight: 600;

    &:before {
      display: block; 
      content: ' '; 
      margin-top: -$header-height; 
      height: $header-height; 
      visibility: hidden; 
      pointer-events: none;
    }
}

================================================
FILE: docs/_sass/elements/_elements.hr.scss
================================================
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
/*------------------------------------*\
  #HORIZONTAL RULE
\*------------------------------------*/

hr {
    border: 0;
    height: 1px;
    background: $ms-black-200;

    .dark-theme & {
        background: $ms-black-500;
    }
}

================================================
FILE: docs/_sass/elements/_elements.links.scss
================================================
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
/*------------------------------------*\
  #LINKS
\*------------------------------------*/

a {
    .c-page-main &, footer & {
        color: $ms-sky-400;

        .dark-theme & {
            color: $ms-cyan-400;
        }

        &:hover,
        &:focus {
            color: $ms-sky-500;
            
            .dark-theme & {
                color: $ms-cyan-200;
            }
        }
    }
}

button {
    font-family: inherit;
}

================================================
FILE: docs/_sass/elements/_elements.page.scss
================================================
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
/*------------------------------------*\
  #PAGE ELEMENTS
\*------------------------------------*/

html {

}

body {
    font-family: 'Segoe UI', sans-serif;
    color: $ms-black-600;

    &.dark-theme {
        background: $ms-black-700;
        color: white;
    }
}

================================================
FILE: docs/_sass/elements/_elements.tables.scss
================================================
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
/*------------------------------------*\
  #TABLES
\*------------------------------------*/

table {
    td, th {
        padding-top:    $spacing-small;
        padding-right:  $spacing;
        padding-bottom: $spacing-small;
        padding-left:   $spacing;
        border-bottom: 1px solid $ms-black-200;
        @include inuit-font-size($inuit-font-size-h5);

        .dark-theme & {
            border-bottom-color: $ms-black-500;
        }
    }

    tr:last-child {
        td {
            border-bottom: 0;
        }
    }

    th {
        text-align: left;
    }
}

================================================
FILE: docs/_sass/generic/_generic.syntax-highlight.scss
================================================
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
/*------------------------------------*\
  #SYNTAX HIGHLIGHTING
\*------------------------------------*/

.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #228B22 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #8B008B; font-weight: bold } /* Keyword */
.highlight .cm { color: #228B22 } /* Comment.Multiline */
.highlight .cp { color: #1e889b } /* Comment.Preproc */
.highlight .c1 { color: #228B22 } /* Comment.Single */
.highlight .cs { color: #8B008B; font-weight: bold } /* Comment.Special */
.highlight .gd { color: #aa0000 } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #00aa00 } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { color: #8B008B; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #8B008B; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #8B008B; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #8B008B; font-weight: bold } /* Keyword.Pseudo */
.highlight .kr { color: #8B008B; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #a7a7a7; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #B452CD } /* Literal.Number */
.highlight .s { color: #CD5555 } /* Literal.String */
.highlight .na { color: #658b00 } /* Name.Attribute */
.highlight .nb { color: #658b00 } /* Name.Builtin */
.highlight .nc { color: #008b45; font-weight: bold } /* Name.Class */
.highlight .no { color: #00688B } /* Name.Constant */
.highlight .nd { color: #707a7c } /* Name.Decorator */
.highlight .ne { color: #008b45; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #008b45 } /* Name.Function */
.highlight .nn { color: #008b45; text-decoration: underline } /* Name.Namespace */
.highlight .nt { color: #8B008B; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #00688B } /* Name.Variable */
.highlight .ow { color: #8B008B } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mf { color: #B452CD } /* Literal.Number.Float */
.highlight .mh { color: #B452CD } /* Literal.Number.Hex */
.highlight .mi { color: #B452CD } /* Literal.Number.Integer */
.highlight .mo { color: #B452CD } /* Literal.Number.Oct */
.highlight .sb { color: #CD5555 } /* Literal.String.Backtick */
.highlight .sc { color: #CD5555 } /* Literal.String.Char */
.highlight .sd { color: #CD5555 } /* Literal.String.Doc */
.highlight .s2 { color: #CD5555 } /* Literal.String.Double */
.highlight .se { color: #CD5555 } /* Literal.String.Escape */
.highlight .sh { color: #1c7e71; font-style: italic } /* Literal.String.Heredoc */
.highlight .si { color: #CD5555 } /* Literal.String.Interpol */
.highlight .sx { color: #cb6c20 } /* Literal.String.Other */
.highlight .sr { color: #1c7e71 } /* Literal.String.Regex */
.highlight .s1 { color: #CD5555 } /* Literal.String.Single */
.highlight .ss { color: #CD5555 } /* Literal.String.Symbol */
.highlight .bp { color: #658b00 } /* Name.Builtin.Pseudo */
.highlight .vc { color: #00688B } /* Name.Variable.Class */
.highlight .vg { color: #00688B } /* Name.Variable.Global */
.highlight .vi { color: #00688B } /* Name.Variable.Instance */
.highlight .il { color: #B452CD } /* Literal.Number.Integer.Long */

.dark-theme {
    //.highlight pre { background-color: #272822; }
    .highlight .hll { background-color: #272822; }
    .highlight .c { color: #75715e } /* Comment */
    .highlight .err { color: #960050; background-color: #1e0010 } /* Error */
    .highlight .k { color: #66d9ef } /* Keyword */
    .highlight .l { color: #ae81ff } /* Literal */
    .highlight .n { color: #f8f8f2 } /* Name */
    .highlight .o { color: #f92672 } /* Operator */
    .highlight .p { color: #f8f8f2 } /* Punctuation */
    .highlight .cm { color: #75715e } /* Comment.Multiline */
    .highlight .cp { color: #75715e } /* Comment.Preproc */
    .highlight .c1 { color: #75715e } /* Comment.Single */
    .highlight .cs { color: #75715e } /* Comment.Special */
    .highlight .ge { font-style: italic } /* Generic.Emph */
    .highlight .gs { font-weight: bold } /* Generic.Strong */
    .highlight .kc { color: #66d9ef } /* Keyword.Constant */
    .highlight .kd { color: #66d9ef } /* Keyword.Declaration */
    .highlight .kn { color: #f92672 } /* Keyword.Namespace */
    .highlight .kp { color: #66d9ef } /* Keyword.Pseudo */
    .highlight .kr { color: #66d9ef } /* Keyword.Reserved */
    .highlight .kt { color: #66d9ef } /* Keyword.Type */
    .highlight .ld { color: #e6db74 } /* Literal.Date */
    .highlight .m { color: #ae81ff } /* Literal.Number */
    .highlight .s { color: #e6db74 } /* Literal.String */
    .highlight .na { color: #a6e22e } /* Name.Attribute */
    .highlight .nb { color: #f8f8f2 } /* Name.Builtin */
    .highlight .nc { color: #a6e22e } /* Name.Class */
    .highlight .no { color: #66d9ef } /* Name.Constant */
    .highlight .nd { color: #a6e22e } /* Name.Decorator */
    .highlight .ni { color: #f8f8f2 } /* Name.Entity */
    .highlight .ne { color: #a6e22e } /* Name.Exception */
    .highlight .nf { color: #a6e22e } /* Name.Function */
    .highlight .nl { color: #f8f8f2 } /* Name.Label */
    .highlight .nn { color: #f8f8f2 } /* Name.Namespace */
    .highlight .nx { color: #a6e22e } /* Name.Other */
    .highlight .py { color: #f8f8f2 } /* Name.Property */
    .highlight .nt { color: #f92672 } /* Name.Tag */
    .highlight .nv { color: #f8f8f2 } /* Name.Variable */
    .highlight .ow { color: #f92672 } /* Operator.Word */
    .highlight .w { color: #f8f8f2 } /* Text.Whitespace */
    .highlight .mf { color: #ae81ff } /* Literal.Number.Float */
    .highlight .mh { color: #ae81ff } /* Literal.Number.Hex */
    .highlight .mi { color: #ae81ff } /* Literal.Number.Integer */
    .highlight .mo { color: #ae81ff } /* Literal.Number.Oct */
    .highlight .sb { color: #e6db74 } /* Literal.String.Backtick */
    .highlight .sc { color: #e6db74 } /* Literal.String.Char */
    .highlight .sd { color: #e6db74 } /* Literal.String.Doc */
    .highlight .s2 { color: #e6db74 } /* Literal.String.Double */
    .highlight .se { color: #ae81ff } /* Literal.String.Escape */
    .highlight .sh { color: #e6db74 } /* Literal.String.Heredoc */
    .highlight .si { color: #e6db74 } /* Literal.String.Interpol */
    .highlight .sx { color: #e6db74 } /* Literal.String.Other */
    .highlight .sr { color: #e6db74 } /* Literal.String.Regex */
    .highlight .s1 { color: #e6db74 } /* Literal.String.Single */
    .highlight .ss { color: #e6db74 } /* Literal.String.Symbol */
    .highlight .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */
    .highlight .vc { color: #f8f8f2 } /* Name.Variable.Class */
    .highlight .vg { color: #f8f8f2 } /* Name.Variable.Global */
    .highlight .vi { color: #f8f8f2 } /* Name.Variable.Instance */
    .highlight .il { color: #ae81ff } /* Literal.Number.Integer.Long */

    .highlight .gh { } /* Generic Heading & Diff Header */
    .highlight .gu { color: #75715e; } /* Generic.Subheading & Diff Unified/Comment? */
    .highlight .gd { color: #f92672; } /* Generic.Deleted & Diff Deleted */
    .highlight .gi { color: #a6e22e; } /* Generic.Inserted & Diff Inserted */
}

================================================
FILE: docs/_sass/inuitcss/LICENSE
================================================
Copyright 2018 Harry Roberts

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.


================================================
FILE: docs/_sass/inuitcss/elements/_elements.headings.scss
================================================
/* ==========================================================================
   #HEADINGS
   ========================================================================== */

/**
 * Simple default styles for headings 1 through 6. Anything more opinionated
 * than simple font-size changes should likely be applied via classes (see:
 * http://csswizardry.com/2016/02/managing-typography-on-large-apps/).
 */

// We have all of our heading font sizes defined here. Passing these pixel
// values into our `inuit-font-size()` mixin will generate a rem-based
// `font-size` with a pixel fallback, as well as generating a `line-height` that
// will sit on our baseline grid.

$inuit-font-size-h1:  36px !default;
$inuit-font-size-h2:  28px !default;
$inuit-font-size-h3:  24px !default;
$inuit-font-size-h4:  20px !default;
$inuit-font-size-h5:  18px !default;
$inuit-font-size-h6:  16px !default;

h1 {
  @include inuit-font-size($inuit-font-size-h1);
}

h2 {
  @include inuit-font-size($inuit-font-size-h2);
}

h3 {
  @include inuit-font-size($inuit-font-size-h3);
}

h4 {
  @include inuit-font-size($inuit-font-size-h4);
}

h5 {
  @include inuit-font-size($inuit-font-size-h5);
}

h6 {
  @include inuit-font-size($inuit-font-size-h6);
}


================================================
FILE: docs/_sass/inuitcss/elements/_elements.images.scss
================================================
/* ==========================================================================
   #IMAGES
   ========================================================================== */

/**
 * 1. Fluid images for responsive purposes.
 * 2. Offset `alt` text from surrounding copy.
 * 3. Setting `vertical-align` removes the whitespace that appears under `img`
 *    elements when they are dropped into a page as-is. Safer alternative to
 *    using `display: block;`.
 */

img {
  max-width: 100%; /* [1] */
  font-style: italic; /* [2] */
  vertical-align: middle; /* [3] */
}



// In case you don't have control over generated `width` and `height` attributes
// on `<img>` elements in your markup, but still want the images to be fluid,
// set this to `false`.

$inuit-static-images: true !default;

  @if ($inuit-static-images == true) {

  /**
   * If a `width` and/or `height` attribute has been explicitly defined, let’s
   * not make the image fluid.
   */

  img[width],
  img[height] {
    max-width: none;
  }

}


================================================
FILE: docs/_sass/inuitcss/elements/_elements.page.scss
================================================
/* ==========================================================================
   #PAGE
   ========================================================================== */

/**
 * Simple page-level setup.
 *
 * 1. Set the default `font-size` and `line-height` for the entire project,
 *    sourced from our default variables. The `font-size` is calculated to exist
 *    in ems, the `line-height` is calculated to exist unitlessly.
 * 2. Force scrollbars to always be visible to prevent awkward ‘jumps’ when
 *    navigating between pages that do/do not have enough content to produce
 *    scrollbars naturally.
 * 3. Ensure the page always fills at least the entire height of the viewport.
 */

html {
  font-size: ($inuit-global-font-size / 16px) * 1em; /* [1] */
  line-height: $inuit-global-line-height / $inuit-global-font-size; /* [1] */
  overflow-y: scroll; /* [2] */
  min-height: 100%; /* [3] */
}


================================================
FILE: docs/_sass/inuitcss/elements/_elements.tables.scss
================================================
/* ==========================================================================
   #TABLES
   ========================================================================== */

/**
 * 1. Ensure tables fill up as much space as possible.
 */

table {
  width: 100%; /* [1] */
}


================================================
FILE: docs/_sass/inuitcss/generic/_generic.box-sizing.scss
================================================
/* ==========================================================================
   #BOX-SIZING
   ========================================================================== */

/**
 * More sensible default box-sizing:
 * css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice
 */

html {
  box-sizing: border-box;
}

* {

  &,
  &:before,
  &:after {
    box-sizing: inherit;
  }

}


================================================
FILE: docs/_sass/inuitcss/generic/_generic.normalize.scss
================================================
/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */

/* Document
   ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in
 *    IE on Windows Phone and in iOS.
 */

html {
  line-height: 1.15; /* 1 */
  -ms-text-size-adjust: 100%; /* 2 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
   ========================================================================== */

/**
 * Remove the margin in all browsers (opinionated).
 */

body {
  margin: 0;
}

/**
 * Add the correct display in IE 9-.
 */

article,
aside,
footer,
header,
nav,
section {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */

/**
 * Add the correct display in IE 9-.
 * 1. Add the correct display in IE.
 */

figcaption,
figure,
main { /* 1 */
  display: block;
}

/**
 * Add the correct margin in IE 8.
 */

figure {
  margin: 1em 40px;
}

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */

/**
 * 1. Remove the gray background on active links in IE 10.
 * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
 */

a {
  background-color: transparent; /* 1 */
  -webkit-text-decoration-skip: objects; /* 2 */
}

/**
 * 1. Remove the bottom border in Chrome 57- and Firefox 39-.
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */

abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  text-decoration: underline dotted; /* 2 */
}

/**
 * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
 */

b,
strong {
  font-weight: inherit;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct font style in Android 4.3-.
 */

dfn {
  font-style: italic;
}

/**
 * Add the correct background and color in IE 9-.
 */

mark {
  background-color: #ff0;
  color: #000;
}

/**
 * Add the correct font size in all browsers.
 */

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */

/**
 * Add the correct display in IE 9-.
 */

audio,
video {
  display: inline-block;
}

/**
 * Add the correct display in iOS 4-7.
 */

audio:not([controls]) {
  display: none;
  height: 0;
}

/**
 * Remove the border on images inside links in IE 10-.
 */

img {
  border-style: none;
}

/**
 * Hide the overflow in IE.
 */

svg:not(:root) {
  overflow: hidden;
}

/* Forms
   ========================================================================== */

/**
 * 1. Change the font styles in all browsers (opinionated).
 * 2. Remove the margin in Firefox and Safari.
 */

button,
input,
optgroup,
select,
textarea {
  font-family: sans-serif; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */

button,
input { /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */

button,
select { /* 1 */
  text-transform: none;
}

/**
 * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
 *    controls in Android 4.
 * 2. Correct the inability to style clickable types in iOS and Safari.
 */

button,
html [type="button"], /* 1 */
[type="reset"],
[type="submit"] {
  -webkit-appearance: button; /* 2 */
}

/**
 * Remove the inner border and padding in Firefox.
 */

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */

fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */

legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
 * 1. Add the correct display in IE 9-.
 * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
  display: inline-block; /* 1 */
  vertical-align: baseline; /* 2 */
}

/**
 * Remove the default vertical scrollbar in IE.
 */

textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10-.
 * 2. Remove the padding in IE 10-.
 */

[type="checkbox"],
[type="radio"] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */

[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
 */

[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */

/*
 * Add the correct display in IE 9-.
 * 1. Add the correct display in Edge, IE, and Firefox.
 */

details, /* 1 */
menu {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */

summary {
  display: list-item;
}

/* Scripting
   ========================================================================== */

/**
 * Add the correct display in IE 9-.
 */

canvas {
  display: inline-block;
}

/**
 * Add the correct display in IE.
 */

template {
  display: none;
}

/* Hidden
   ========================================================================== */

/**
 * Add the correct display in IE 10-.
 */

[hidden] {
  display: none;
}


================================================
FILE: docs/_sass/inuitcss/generic/_generic.reset.scss
================================================
/* ==========================================================================
   #RESET
   ========================================================================== */

/**
 * A very simple reset that sits on top of Normalize.css.
 */

body,
h1, h2, h3, h4, h5, h6,
blockquote, p, pre,
dl, dd, ol, ul,
figure,
hr,
fieldset, legend {
  margin:  0;
  padding: 0;
}



/**
 * Remove trailing margins from nested lists.
 */

li > {

  ol,
  ul {
    margin-bottom: 0;
  }

}



/**
 * Remove default table spacing.
 */

table {
  border-collapse: collapse;
  border-spacing: 0;
}



/**
 * 1. Reset Chrome and Firefox behaviour which sets a `min-width: min-content;`
 *    on fieldsets.
 */

fieldset {
  min-width: 0; /* [1] */
  border: 0;
}


================================================
FILE: docs/_sass/inuitcss/generic/_generic.shared.scss
================================================
/* ==========================================================================
   #SHARED
   ========================================================================== */

/**
 * Shared declarations for certain elements.
 */

/**
 * Always declare margins in the same direction:
 * csswizardry.com/2012/06/single-direction-margin-declarations
 */

address,
h1, h2, h3, h4, h5, h6,
blockquote, p, pre,
dl, ol, ul,
figure,
hr,
table,
fieldset {
  margin-bottom: $inuit-global-spacing-unit;
}



/**
 * Consistent indentation for lists.
 */

dd, ol, ul {
  margin-left: $inuit-global-spacing-unit;
}


================================================
FILE: docs/_sass/inuitcss/objects/_objects.block.scss
================================================
/* ==========================================================================
   #BLOCK
   ========================================================================== */

/**
 * Stacked image-with-text object. A simple abstraction to cover a very commonly
 * occurring design pattern.
 */

.o-block {
  display: block;
  text-align: center;
}

  .o-block__img {
    margin-bottom: $inuit-global-spacing-unit;


    /* Size variants
       ====================================================================== */

    .o-block--flush > & {
      margin-bottom: 0;
    }

    .o-block--tiny > & {
      margin-bottom: $inuit-global-spacing-unit-tiny;
    }

    .o-block--small > & {
      margin-bottom: $inuit-global-spacing-unit-small;
    }

    .o-block--large > & {
      margin-bottom: $inuit-global-spacing-unit-large;
    }

    .o-block--huge > & {
      margin-bottom: $inuit-global-spacing-unit-huge;
    }

  }

  .o-block__body {
    display: block;
  }





/* Alignment variants
   ========================================================================== */

.o-block--right {
  text-align: right;
}

.o-block--left {
  text-align: left;
}


================================================
FILE: docs/_sass/inuitcss/objects/_objects.box.scss
================================================
/* ==========================================================================
   #BOX
   ========================================================================== */

/**
 * The box object simply boxes off content. Extend with cosmetic styles in the
 * Components layer.
 *
 * 1. So we can apply the `.o-box` class to naturally-inline elements.
 */

.o-box {
  @include inuit-clearfix();
  display: block; /* [1] */
  padding: $inuit-global-spacing-unit;

  > :last-child {
    margin-bottom: 0;
  }

}





/* Size variants
   ========================================================================== */

.o-box--flush {
  padding: 0;
}

.o-box--tiny {
  padding: $inuit-global-spacing-unit-tiny;
}

.o-box--small {
  padding: $inuit-global-spacing-unit-small;
}

.o-box--large {
  padding: $inuit-global-spacing-unit-large;
}

.o-box--huge {
  padding: $inuit-global-spacing-unit-huge;
}


================================================
FILE: docs/_sass/inuitcss/objects/_objects.crop.scss
================================================
/* ==========================================================================
   #CROP
   ========================================================================== */

// A list of cropping ratios that get generated as modifier classes.
// You should predefine it with only the ratios and names your project needs.
//
// The map keys are the strings used in the generated class names, and they can
// follow any convention, as long as they are properly escaped strings. i.e.:
//
//   $inuit-crops: (
//     "2\\:1"         : (2:1),
//     "4-by-3"        : (4:3),
//     "full-hd"       : (16:9),
//     "card-image"    : (2:3),
//     "golden-ratio"  : (1.618:1) -> non-integers are okay
//   ) !default;

$inuit-crops: (
  "2\\:1"   : (2:1),
  "4\\:3"   : (4:3),
  "16\\:9"  : (16:9)
) !default;



/**
 * Provide a cropping container in order to display media (usually images)
 * cropped to certain ratios.
 *
 * 1. Set up a positioning context in which the image can sit.
 * 2. This is the crucial part: where the cropping happens.
 */

.o-crop {
  position: relative; /* [1] */
  display: block;
  overflow: hidden; /* [2] */
}

  /**
   * Apply this class to the content (usually `img`) that needs cropping.
   *
   * 1. Image’s default positioning is top-left in the cropping box.
   * 2. Make sure the media doesn’t stop itself too soon.
   */

  .o-crop__content {
    position: absolute;
    top:  0; /* [1] */
    left: 0; /* [1] */
    max-width: none; /* [2] */
  }



  /**
   * We can position the media in different locations within the cropping area.
   */

  .o-crop__content--left-top {
    left: 0;
  }

  .o-crop__content--left-center {
    top: 50%;
    transform: translateY(-50%);
  }

  .o-crop__content--left-bottom {
    top: auto;
    bottom: 0;
  }

  .o-crop__content--right-top {
    right: 0;
    left: auto;
  }

  .o-crop__content--right-center {
    top: 50%;
    right: 0;
    left: auto;
    transform: translateY(-50%);
  }

  .o-crop__content--right-bottom {
    top: auto;
    right: 0;
    bottom: 0;
    left: auto;
  }

  .o-crop__content--center-top {
    left: 50%;
    transform: translateX(-50%);
  }

  .o-crop__content--center,
  .o-crop__content--center-center {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }

  .o-crop__content--center-bottom {
    top: auto;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
  }





/* Crop-ratio variants
   ========================================================================== */

/**
 * Generate a series of crop classes to be used like so:
 *
 *   <div class="o-crop  o-crop--golden-ratio">
 *
 */

@each $crop-name, $crop-value in $inuit-crops {

  @each $antecedent, $consequent in $crop-value {

    @if (type-of($antecedent) != number) {
      @error "`#{$antecedent}` needs to be a number.";
    }

    @if (type-of($consequent) != number) {
      @error "`#{$consequent}` needs to be a number.";
    }

    .o-crop--#{$crop-name} {
      padding-bottom: ($consequent/$antecedent) * 100%;
    }

  }

}





/* Fill modifier
   ========================================================================== */

/**
 * Content stretches to fill it's container while maintaining aspect-ratio.
 */

.o-crop--fill {

  > .o-crop__content {
    min-height: 100%;
    min-width: 100%;
  }

}


================================================
FILE: docs/_sass/inuitcss/objects/_objects.flag.scss
================================================
/* ==========================================================================
   #FLAG
   ========================================================================== */

/**
 * The flag object is a design pattern similar to the media object, however it
 * utilises `display: table[-cell];` to give us control over the vertical
 * alignments of the text and image.
 *
 * http://csswizardry.com/2013/05/the-flag-object/
 *
 * 1. Allows us to control vertical alignments.
 * 2. Force the object to be the full width of its parent. Combined with [1],
 *    this makes the object behave in a quasi-`display: block;` manner.
 * 3. Reset inherited `border-spacing` declarations.
 */

.o-flag {
  display: table; /* [1] */
  width: 100%; /* [2] */
  border-spacing: 0; /* [3] */
}

  /**
   * Items within a flag object. There should only ever be one of each.
   *
   * 1. Default to aligning content to their middles.
   */

  .o-flag__img,
  .o-flag__body {
    display: table-cell;
    vertical-align: middle; /* [1] */
  }

  /**
   * Flag images have a space between them and the body of the object.
   *
   * 1. Force `.flag__img` to take up as little space as possible:
   *    https://pixelsvsbytes.com/2012/02/this-css-layout-grid-is-no-holy-grail/
   */

  .o-flag__img {
    width: 1px; /* [1] */
    padding-right: $inuit-global-spacing-unit;

    /**
     * 1. Fixes problem with images disappearing.
     *
     *    The direct child selector '>' needs to remain in order for nested flag
     *    objects to not inherit their parent’s formatting. In case the image tag
     *    is wrapped into another tag, e.g. an anchor for linking reasons, it will
     *    disappear. In that case try wrapping the whole o-flag__img object into
     *    an anchor tag.
     *
     *    E.g.:
     *
     *      <a href="/">
     *        <div class="o-flag__img">
     *          <img src="./link/to/image.jpg" alt="image alt text">
     *        </div>
     *      </a>
     */

    > img {
      max-width: none; /* [1] */
    }

  }

  /**
   * The container for the main content of the flag object.
   *
   * 1. Forces the `.flag__body` to take up all remaining space.
   */

  .o-flag__body {
    width: auto; /* [1] */

    &,
    > :last-child {
      margin-bottom: 0;
    }

  }





/* Size variants
   ========================================================================== */

.o-flag--flush {

  > .o-flag__img {
    padding-right: 0;
    padding-left:  0;
  }

}


.o-flag--tiny {

  > .o-flag__img {
    padding-right: $inuit-global-spacing-unit-tiny;
  }

  &.o-flag--reverse {

    > .o-flag__img {
      padding-right: 0;
      padding-left: $inuit-global-spacing-unit-tiny;
    }

  }

}


.o-flag--small {

  > .o-flag__img {
    padding-right: $inuit-global-spacing-unit-small;
  }

  &.o-flag--reverse {

    > .o-flag__img {
      padding-right: 0;
      padding-left: $inuit-global-spacing-unit-small;
    }

  }

}


.o-flag--large {

  > .o-flag__img {
    padding-right: $inuit-global-spacing-unit-large;
  }

  &.o-flag--reverse {

    > .o-flag__img {
      padding-right: 0;
      padding-left: $inuit-global-spacing-unit-large;
    }

  }

}


.o-flag--huge {

  > .o-flag__img {
    padding-right: $inuit-global-spacing-unit-huge;
  }

  &.o-flag--reverse {

    > .o-flag__img {
      padding-right: 0;
      padding-left: $inuit-global-spacing-unit-huge;
    }

  }

}





/* Reversed flag
   ========================================================================== */

/**
 * 1. Swap the rendered direction of the object…
 * 2. …and reset it.
 * 3. Reassign margins to the correct sides.
 */

.o-flag--reverse {
  direction: rtl; /* [1] */

  > .o-flag__img,
  > .o-flag__body {
    direction: ltr; /* [2] */
  }

  > .o-flag__img {
    padding-right: 0; /* [3] */
    padding-left: $inuit-global-spacing-unit; /* [3] */
  }

}





/* Alignment variants
   ========================================================================== */

/**
 * Vertically align the image- and body-content differently. Defaults to middle.
 */

.o-flag--top {

  > .o-flag__img,
  > .o-flag__body {
    vertical-align: top;
  }

}


.o-flag--bottom {

  > .o-flag__img,
  > .o-flag__body {
    vertical-align: bottom;
  }

}


================================================
FILE: docs/_sass/inuitcss/objects/_objects.layout.scss
================================================
/* ==========================================================================
   #LAYOUT
   ========================================================================== */

/**
 * Grid-like layout system.
 *
 * The layout object provides us with a column-style layout system. This file
 * contains the basic structural elements, but classes should be complemented
 * with width utilities, for example:
 *
 *   <div class="o-layout">
 *     <div class="o-layout__item  u-1/2">
 *     </div>
 *     <div class="o-layout__item  u-1/2">
 *     </div>
 *   </div>
 *
 * The above will create a two-column structure in which each column will
 * fluidly fill half of the width of the parent. We can have more complex
 * systems:
 *
 *   <div class="o-layout">
 *     <div class="o-layout__item  u-1/1  u-1/3@medium">
 *     </div>
 *     <div class="o-layout__item  u-1/2  u-1/3@medium">
 *     </div>
 *     <div class="o-layout__item  u-1/2  u-1/3@medium">
 *     </div>
 *   </div>
 *
 * The above will create a system in which the first item will be 100% width
 * until we enter our medium breakpoint, when it will become 33.333% width. The
 * second and third items will be 50% of their parent, until they also become
 * 33.333% width at the medium breakpoint.
 *
 * We can also manipulate entire layout systems by adding a series of modifiers
 * to the `.o-layout` block. For example:
 *
 *   <div class="o-layout  o-layout--reverse">
 *
 * This will reverse the displayed order of the system so that it runs in the
 * opposite order to our source, effectively flipping the system over.
 *
 *   <div class="o-layout  o-layout--[right|center]">
 *
 * This will cause the system to fill up from either the centre or the right
 * hand side. Default behaviour is to fill up the layout system from the left.
 *
 * There are plenty more options available to us: explore them below.
 */

// By default we use the `font-size: 0;` trick to remove whitespace between
// items. Set this to true in order to use a markup-based strategy like
// commenting out whitespace or minifying HTML.
$inuit-use-markup-fix: false !default;





/* Default/mandatory classes
   ========================================================================== */

/**
 * 1. Allows us to use the layout object on any type of element.
 * 2. We need to defensively reset any box-model properties.
 * 3. Use the negative margin trick for multi-row grids:
 *    http://csswizardry.com/2011/08/building-better-grid-systems/
 */

.o-layout {
  display: block; /* [1] */
  margin:  0; /* [2] */
  padding: 0; /* [2] */
  list-style: none; /* [1] */
  margin-left: -$inuit-global-spacing-unit; /* [3] */

  @if ($inuit-use-markup-fix == false) {
    font-size: 0;
  }

}

  /**
   * 1. Required in order to combine fluid widths with fixed gutters.
   * 2. Allows us to manipulate grids vertically, with text-level properties,
   *    etc.
   * 3. Default item alignment is with the tops of each other, like most
   *    traditional grid/layout systems.
   * 4. By default, all layout items are full-width (mobile first).
   * 5. Gutters provided by left padding:
   *    http://csswizardry.com/2011/08/building-better-grid-systems/
   * 6. Fallback for old IEs not supporting `rem` values.
   */

  .o-layout__item {
    box-sizing: border-box; /* [1] */
    display: inline-block; /* [2] */
    vertical-align: top; /* [3] */
    width: 100%; /* [4] */
    padding-left: $inuit-global-spacing-unit; /* [5] */

    @if ($inuit-use-markup-fix == false) {
      font-size: $inuit-global-font-size; /* [6] */
      font-size: 1rem;
    }

  }





/* Gutter size modifiers
   ========================================================================== */

.o-layout--flush {
  margin-left: 0;

  > .o-layout__item {
    padding-left: 0;
  }

}


.o-layout--tiny {
  margin-left: -$inuit-global-spacing-unit-tiny;

  > .o-layout__item {
    padding-left: $inuit-global-spacing-unit-tiny;
  }

}


.o-layout--small {
  margin-left: -$inuit-global-spacing-unit-small;

  > .o-layout__item {
    padding-left: $inuit-global-spacing-unit-small;
  }

}


.o-layout--large {
  margin-left: -$inuit-global-spacing-unit-large;

  > .o-layout__item {
    padding-left: $inuit-global-spacing-unit-large;
  }

}


.o-layout--huge {
  margin-left: -$inuit-global-spacing-unit-huge;

  > .o-layout__item {
    padding-left: $inuit-global-spacing-unit-huge;
  }

}





/* Vertical alignment modifiers
   ========================================================================== */

/**
 * Align all grid items to the middles of each other.
 */

.o-layout--middle {

  > .o-layout__item {
    vertical-align: middle;
  }

}


/**
 * Align all grid items to the bottoms of each other.
 */

.o-layout--bottom {

  > .o-layout__item {
    vertical-align: bottom;
  }

}


/**
 * Stretch all grid items of each row to have an equal-height.
 * Please be aware that this modifier class doesn’t take any effect in IE9 and
 * below and other older browsers due to the lack of `display: flex` support.
 */

.o-layout--stretch {
  display: flex;
  flex-wrap: wrap;

  > .o-layout__item {
    display: flex;
  }

  &.o-layout--center {
    justify-content: center;
  }

  &.o-layout--right {
    justify-content: flex-end;
  }

  &.o-layout--left {
    justify-content: flex-start;
  }

}





/* Fill order modifiers
   ========================================================================== */

/**
 * Fill up the layout system from the centre.
 */

.o-layout--center {
  text-align: center;

  > .o-layout__item {
    text-align: left;
  }

}


/**
 * Fill up the layout system from the right-hand side.
 */

.o-layout--right {
  text-align: right;

  > .o-layout__item {
    text-align: left;
  }

}


/**
 * Fill up the layout system from the left-hand side. This will likely only be
 * needed when using in conjunction with `.o-layout--reverse`.
 */

.o-layout--left {
  text-align: left;

  > .o-layout__item {
    text-align: left;
  }

}


/**
 * Reverse the rendered order of the grid system.
 */

.o-layout--reverse {
  direction: rtl;

  > .o-layout__item {
    direction: ltr;
  }

}





/* Auto-widths modifier
   ========================================================================== */

/**
 * Cause layout items to take up a non-explicit amount of width.
 */

.o-layout--auto {

  > .o-layout__item {
    width: auto;
  }

}


================================================
FILE: docs/_sass/inuitcss/objects/_objects.list-bare.scss
================================================
/* ==========================================================================
   #LIST-BARE
   ========================================================================== */

/**
 * Strip list-like appearance from lists by removing their bullets and any
 * indentation.
 *
 * Note: Declaring the item class might not be necessary everywhere,
 * but is for example in <dl> lists for the <dd> children.
 */

.o-list-bare {
  list-style: none;
  margin-left: 0;
}

  .o-list-bare__item {
    margin-left: 0;
  }


================================================
FILE: docs/_sass/inuitcss/objects/_objects.list-inline.scss
================================================
/* ==========================================================================
   #LIST-INLINE
   ========================================================================== */

/**
 * The list-inline object simply displays a list of items in one line.
 */

.o-list-inline {
  margin-left: 0;
  list-style: none;
}

  .o-list-inline__item {
    display: inline-block;
  }


================================================
FILE: docs/_sass/inuitcss/objects/_objects.media.scss
================================================
/* ==========================================================================
   #MEDIA
   ========================================================================== */

/**
 * Place any image- and text-like content side-by-side, as per:
 * http://www.stubbornella.org/content/2010/06/25/the-media-object-saves-hundreds-of-lines-of-code
 */

.o-media {
  @include inuit-clearfix();
  display: block;
}

  .o-media__img {
    float: left;
    margin-right: $inuit-global-spacing-unit;

    > img {
      display: block;
    }

  }

  .o-media__body {
    overflow: hidden;
    display: block;

    &,
    > :last-child {
      margin-bottom: 0;
    }

  }





/* Size variants
   ========================================================================== */

/**
 * Modify the amount of space between our image and our text. We also have
 * reversible options for all available sizes.
 */

.o-media--flush {

  > .o-media__img {
    margin-right: 0;
    margin-left: 0;
 }

}


.o-media--tiny {

  > .o-media__img {
    margin-right: $inuit-global-spacing-unit-tiny;
  }

  &.o-media--reverse {

    > .o-media__img {
      margin-right: 0;
      margin-left: $inuit-global-spacing-unit-tiny;
    }

  }

}


.o-media--small {

  > .o-media__img {
    margin-right: $inuit-global-spacing-unit-small;
  }

  &.o-media--reverse {

    > .o-media__img {
      margin-right: 0;
      margin-left: $inuit-global-spacing-unit-small;
    }

  }

}


.o-media--large {

  > .o-media__img {
    margin-right: $inuit-global-spacing-unit-large;
  }

  &.o-media--reverse {

    > .o-media__img {
      margin-right: 0;
      margin-left: $inuit-global-spacing-unit-large;
    }

  }

}


.o-media--huge {

  > .o-media__img {
    margin-right: $inuit-global-spacing-unit-huge;
  }

  &.o-media--reverse {

    > .o-media__img {
      margin-right: 0;
      margin-left: $inuit-global-spacing-unit-huge;
    }

  }

}





/* Reversed media objects
   ========================================================================== */

.o-media--reverse {

  > .o-media__img {
    float: right;
    margin-right: 0;
    margin-left: $inuit-global-spacing-unit;
  }

}


================================================
FILE: docs/_sass/inuitcss/objects/_objects.pack.scss
================================================
/* ==========================================================================
   #PACK
   ========================================================================== */

/**
 * The pack object simply causes any number of elements pack up horizontally to
 * automatically fill an equal, fluid width of their parent.
 *
 * 1. Fill all available space.
 * 2. Remove any leftover styling from lists.
 * 3. Cause children to be automatically equally sized.
 */

.o-pack {
  width: 100%; /* [1] */
  margin-left: 0; /* [2] */
  display: table;
  table-layout: fixed; /* [3] */
}

  /**
   * 1. Cause children to adopt table-like structure.
   * 2. Default item alignment is with the tops of each other.
   */

  .o-pack__item {
    display: table-cell; /* [1] */
    vertical-align: top; /* [2] */


    /* Vertical alignment variants
       ====================================================================== */

    .o-pack--middle > & {
      vertical-align: middle;
    }

    .o-pack--bottom > & {
      vertical-align: bottom;
    }

  }





/* Unequal-width items
   ========================================================================== */

.o-pack--auto {
  table-layout: auto;
}





/* Size variants
   ========================================================================== */

.o-pack--tiny {
  border-spacing: $inuit-global-spacing-unit-tiny;
}

.o-pack--small {
  border-spacing: $inuit-global-spacing-unit-small;
}

.o-pack--default {
  border-spacing: $inuit-global-spacing-unit;
}

.o-pack--large {
  border-spacing: $inuit-global-spacing-unit-large;
}

.o-pack--huge {
  border-spacing: $inuit-global-spacing-unit-huge;
}





/* Reversed order packs
   ========================================================================== */

.o-pack--reverse {
  direction: rtl;

  > .o-pack__item {
    direction: ltr;
  }

}


================================================
FILE: docs/_sass/inuitcss/objects/_objects.ratio.scss
================================================
/* ==========================================================================
   #RATIO
   ========================================================================== */

// A list of aspect ratios that get generated as modifier classes.
// You should predefine it with only the ratios and names your project needs.
//
// The map keys are the strings used in the generated class names, and they can
// follow any convention, as long as they are properly escaped strings. i.e.:
//
//   $inuit-ratios: (
//     "2\\:1"         : (2:1),
//     "4-by-3"        : (4:3),
//     "full-hd"       : (16:9),
//     "card-image"    : (2:3),
//     "golden-ratio"  : (1.618:1) -> non-integers are okay
//   ) !default;

$inuit-ratios: (
  "2\\:1"   : (2:1),
  "4\\:3"   : (4:3),
  "16\\:9"  : (16:9)
) !default;



/**
 * Create ratio-bound content blocks, to keep media (e.g. images, videos) in
 * their correct aspect ratios.
 *
 * http://alistapart.com/article/creating-intrinsic-ratios-for-video
 *
 * 1. Default is a 1:1 ratio (i.e. a perfect square).
 */

.o-ratio {
  position: relative;
  display: block;

  &:before {
    content: "";
    display: block;
    width: 100%;
    padding-bottom: 100%; /* [1] */
  }

}

  .o-ratio__content,
  .o-ratio > iframe,
  .o-ratio > embed,
  .o-ratio > object {
    position: absolute;
    top:    0;
    bottom: 0;
    left:   0;
    height: 100%;
    width:  100%;
  }





/* Ratio variants.
   ========================================================================== */

/**
 * Generate a series of ratio classes to be used like so:
 *
 *   <div class="o-ratio  o-ratio--golden-ratio">
 *
 */

@each $ratio-name, $ratio-value in $inuit-ratios {

  @each $antecedent, $consequent in $ratio-value {

    @if (type-of($antecedent) != number) {
      @error "`#{$antecedent}` needs to be a number.";
    }

    @if (type-of($consequent) != number) {
      @error "`#{$consequent}` needs to be a number.";
    }

    .o-ratio--#{$ratio-name}:before {
      padding-bottom: ($consequent/$antecedent) * 100%;
    }

  }

}





/* Contain modifier.
   ========================================================================== */

/**
 * Only works with image content.
 * Contains the image to the boundaries, without cropping or stretching it.
 */

.o-ratio--img-contain {

  > .o-ratio__content:before {
    height: auto;
    margin: auto;
    max-height: 100%;
    max-width: 100%;
    width: auto;
  }

}


================================================
FILE: docs/_sass/inuitcss/objects/_objects.table.scss
================================================
/* ==========================================================================
   #TABLE
   ========================================================================== */

/**
 * A simple object for manipulating the structure of HTML `table`s.
 */

.o-table {
  width: 100%;
}





/* Equal-width table cells
   ========================================================================== */

/**
 * `table-layout: fixed` forces all cells within a table to occupy the same
 * width as each other. This also has performance benefits: because the browser
 * does not need to (re)calculate cell dimensions based on content it discovers,
 * the table can be rendered very quickly. Further reading:
 * https://developer.mozilla.org/en-US/docs/Web/CSS/table-layout#Values
 */

.o-table--fixed {
  table-layout: fixed;
}





/* Size variants
   ========================================================================== */

.o-table--tiny {

  th,
  td {
    padding: $inuit-global-spacing-unit-tiny;
  }

}


.o-table--small {

  th,
  td {
    padding: $inuit-global-spacing-unit-small;
  }

}


.o-table--large {

  th,
  td {
    padding: $inuit-global-spacing-unit-large;
  }

}


.o-table--huge {

  th,
  td {
    padding: $inuit-global-spacing-unit-huge;
  }

}


================================================
FILE: docs/_sass/inuitcss/objects/_objects.wrapper.scss
================================================
/* ==========================================================================
   #WRAPPER
   ========================================================================== */

/**
 * Page-level constraining and wrapping elements.
 */

$inuit-wrapper-width: 1200px !default;

@if (type-of($inuit-wrapper-width) != number) {
  @error "`#{$inuit-wrapper-width}` needs to be a number.";
}

.o-wrapper {
  @include inuit-clearfix();
  padding-right: $inuit-global-spacing-unit;
  padding-left:  $inuit-global-spacing-unit;
  margin-right: auto;
  margin-left:  auto;
  max-width: $inuit-wrapper-width;
}


================================================
FILE: docs/_sass/inuitcss/settings/_settings.core.scss
================================================
///* ========================================================================
//   #CORE
//   ======================================================================== */

// This core file sets up inuitcss’ most important setup variables. They
// underpin a lot of how the framework functions and should be modified and
// preconfigured with caution.



// Baseline grid lines height.
// Every spacing metric should be based on this.

$inuit-global-baseline:     6px !default;



// How many grid lines should our spacing unit variants span?
// Each value should be an unitless integer.

$inuit-global-spacing-unit-factor-tiny:   1 !default;   // 6px
$inuit-global-spacing-unit-factor-small:  2 !default;   // 12px
$inuit-global-spacing-unit-factor:        4 !default;   // 24px
$inuit-global-spacing-unit-factor-large:  8 !default;   // 48px
$inuit-global-spacing-unit-factor-huge:   16 !default;  // 96px



// Spacing values are determined based on your project’s global baseline grid.
// It is not recommended that you modify these following variables
// (it can break your vertical rhythm), but if you need to, you can.

$inuit-global-spacing-unit:       $inuit-global-baseline * $inuit-global-spacing-unit-factor !default;
$inuit-global-spacing-unit-tiny:  $inuit-global-baseline * $inuit-global-spacing-unit-factor-tiny !default;
$inuit-global-spacing-unit-small: $inuit-global-baseline * $inuit-global-spacing-unit-factor-small !default;
$inuit-global-spacing-unit-large: $inuit-global-baseline * $inuit-global-spacing-unit-factor-large !default;
$inuit-global-spacing-unit-huge:  $inuit-global-baseline * $inuit-global-spacing-unit-factor-huge !default;



// Base typographical styles.

$inuit-global-font-size:    16px !default;
$inuit-global-line-height:  $inuit-global-spacing-unit !default;





// Check that the chosen font rules are pixel numbers.

@each $_inuit-font-globals in
      $inuit-global-font-size
      $inuit-global-line-height {

  @if (type-of($_inuit-font-globals) == number) {

    @if (unit($_inuit-font-globals) != "px") {
      @error "`#{$_inuit-font-globals}` needs to be a pixel value.";
    }

  } @else {
    @error "`#{$_inuit-font-globals}` needs to be a number.";
  }

}



// Check that the chosen size factors are unitless, integer numbers.

@each $_inuit-spacing-unit in
      $inuit-global-spacing-unit-factor-tiny
      $inuit-global-spacing-unit-factor-small
      $inuit-global-spacing-unit-factor-large
      $inuit-global-spacing-unit-factor-huge {

  @if (type-of($_inuit-spacing-unit) == number) {

    @if (unitless($_inuit-spacing-unit) == false) {
      @error "`#{$_inuit-spacing-unit}` needs to be unitless.";
    }

    @if ($_inuit-spacing-unit != ceil($_inuit-spacing-unit)) {
      @error "`#{$_inuit-spacing-unit}` needs to be an integer.";
    }

  } @else {
    @error "`#{$_inuit-spacing-unit}` needs to be a number.";
  }

}


================================================
FILE: docs/_sass/inuitcss/tools/_tools.clearfix.scss
================================================
///* ========================================================================
//   #CLEARFIX
//   ======================================================================== */

// Mixin to drop micro clearfix into a selector. Further reading:
// http://www.cssmojo.com/the-very-latest-clearfix-reloaded/
//
// .usage {
//   @include inuit-clearfix();
// }

@mixin inuit-clearfix() {

  &:after {
    content: "" !important;
    display: block !important;
    clear: both !important;
  }

}


================================================
FILE: docs/_sass/inuitcss/tools/_tools.font-size.scss
================================================
///* ========================================================================
//   #FONT-SIZE
//   ======================================================================== */

// Generates a rem font-size (with pixel fallback) and a baseline-compatible
// unitless line-height from a pixel font-size value. Basic usage is simply:
//
//   @include inuit-font-size(18px);
//
// You can force a specific line-height by passing it as the second argument:
//
//   @include inuit-font-size(16px, 1);
//
// You can also modify the line-height by increments, while staying in the
// baseline grid, by setting the `$modifier` parameter. It takes a positive
// or negative integer, and it will add or remove "lines" to the  generated
// line-height. This is the recomended way to do it, unless you really need
// an absolute value. i.e.:
//
//   // add 2 lines:
//   @include inuit-font-size(24px, $modifier: +2);
//
//   // subtract 1 line:
//   @include inuit-font-size(24px, $modifier: -1);

@mixin inuit-font-size($font-size, $line-height: auto, $modifier: 0, $important: false) {

  @if (type-of($font-size) == number) {
    @if (unit($font-size) != "px") {
      @error "`#{$font-size}` needs to be a pixel value.";
    }
  } @else {
    @error "`#{$font-size}` needs to be a number.";
  }

  @if ($important == true) {
    $important: !important;
  } @else if ($important == false) {
    $important: null;
  } @else {
    @error "`#{$important}` needs to be `true` or `false`.";
  }

  // We provide a `px` fallback for old IEs not supporting `rem` values.
  font-size: $font-size $important;
  font-size: ($font-size / $inuit-global-font-size) * 1rem $important;

  @if ($line-height == "auto") {

    // Define how many grid lines each text line should span.
    // By default, we set it to the minimum number of lines necessary
    // in order to contain the defined font-size, +1 for some breathing room.
    // This can be modified with the `$modifier` parameter.
    $lines: ceil($font-size / $inuit-global-baseline) + $modifier + 1;
    $line-height: $lines * $inuit-global-baseline;

    line-height: ($line-height / $font-size) $important;
  }

  @else {

    @if (type-of($line-height) == number or $line-height == "inherit" or $line-height == "normal") {
      line-height: $line-height $important;
    }

    @else if ($line-height != 'none' and $line-height != false) {
      @error "D’oh! `#{$line-height}` is not a valid value for `$line-height`."
    }

  }

}


================================================
FILE: docs/_sass/inuitcss/tools/_tools.hidden.scss
================================================
///* ========================================================================
//   #HIDDEN-VISUALLY
//   ======================================================================== */

// Mixin to quickly apply accessible hiding to elements.

@mixin inuit-hidden-visually() {
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  white-space: nowrap !important;
  width: 1px !important;
}


================================================
FILE: docs/_sass/inuitcss/utilities/_utilities.clearfix.scss
================================================
/* ==========================================================================
   #CLEARFIX
   ========================================================================== */

/**
 * Attach our clearfix mixin to a utility class.
 */

.u-clearfix {
  @include inuit-clearfix();
}


================================================
FILE: docs/_sass/inuitcss/utilities/_utilities.headings.scss
================================================
/* ==========================================================================
   #HEADINGS
   ========================================================================== */

/**
 * Redefine all of our basic heading styles against utility classes so as to
 * allow for double stranded heading hierarchy, e.g. we semantically need an H2,
 * but we want it to be sized like an H1:
 *
 *   <h2 class="u-h1"></h2>
 *
 */

.u-h1 {
  @include inuit-font-size($inuit-font-size-h1, $important: true);
}

.u-h2 {
  @include inuit-font-size($inuit-font-size-h2, $important: true);
}

.u-h3 {
  @include inuit-font-size($inuit-font-size-h3, $important: true);
}

.u-h4 {
  @include inuit-font-size($inuit-font-size-h4, $important: true);
}

.u-h5 {
  @include inuit-font-size($inuit-font-size-h5, $important: true);
}

.u-h6 {
  @include inuit-font-size($inuit-font-size-h6, $important: true);
}


================================================
FILE: docs/_sass/inuitcss/utilities/_utilities.hide.scss
================================================
/* ==========================================================================
   #HIDE
   ========================================================================== */

/**
 * Hide only visually, but have it available for screen readers:
 * http://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 */

.u-hidden-visually {
  @include inuit-hidden-visually();
}


/**
 * Hide visually and from screen readers.
 */

.u-hidden {
  display: none !important;
}


================================================
FILE: docs/_sass/inuitcss/utilities/_utilities.print.scss
================================================
/* ==========================================================================
   #PRINT
   ========================================================================== */

/**
 * Very crude, reset-like styles taken from the HTML5 Boilerplate:
 * https://github.com/h5bp/html5-boilerplate/blob/5.3.0/dist/doc/css.md#print-styles
 * https://github.com/h5bp/html5-boilerplate/blob/master/dist/css/main.css#L205-L282
 */

@media print {

  /**
   * 1. Black prints faster: http://www.sanbeiji.com/archives/953
   */

  *,
  *:before,
  *:after {
    background: transparent !important;
    color: #000 !important; /* [1] */
    box-shadow: none !important;
    text-shadow: none !important;
  }


  a,
  a:visited {
    text-decoration: underline;
  }

  a[href]:after {
    content: " (" attr(href) ")";
  }

  abbr[title]:after {
    content: " (" attr(title) ")";
  }


  /**
   * Don’t show links that are fragment identifiers, or use the `javascript:`
   * pseudo protocol.
   */

  a[href^="#"]:after,
  a[href^="javascript:"]:after {
    content: "";
  }

  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }


  /**
   * Printing Tables: http://css-discuss.incutio.com/wiki/Printing_Tables
   */

  thead {
    display: table-header-group;
  }

  tr,
  img {
    page-break-inside: avoid;
  }


  img {
    max-width: 100% !important;
  }

  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }

  h2,
  h3 {
    page-break-after: avoid;
  }

}


================================================
FILE: docs/_sass/inuitcss/utilities/_utilities.responsive-spacings.scss
================================================
/* ==========================================================================
   #RESPONSIVE-SPACINGS
   ========================================================================== */

/**
 * Utility classes enhancing the normal spacing classes by adding responsiveness
 * to them. By default, there are not responsive spacings defined. You can
 * generate responsive spacings by adding entries to the following three Sass
 * maps, e.g.:
 *
 *   $inuit-responsive-spacing-directions: (
 *     null: null,
 *     bottom: bottom,
 *   );
 *
 *   $inuit-responsive-spacing-properties: (
 *     "margin": "margin",
 *   );
 *
 *   $inuit-responsive-spacing-sizes: (
 *     "-small": $inuit-global-spacing-unit-small,
 *   );
 *
 * This would bring us the following classes:
 *
 *   .u-margin-small@mobile {}
 *   .u-margin-small@tablet {}
 *   .u-margin-small@desktop {}
 *   .u-margin-small@wide {}
 *   .u-margin-bottom-small@mobile {}
 *   .u-margin-bottom-small@tablet {}
 *   .u-margin-bottom-small@desktop {}
 *   .u-margin-bottom-small@wide {}
 *
 * You can change the generated CSS classes by further extending the Sass maps.
 * If you want every ‘normal’ spacing (those from `utilities.spacings`) also as
 * a responsive version, you can just mirror the ‘normal’ spacings:
 *
 *   $inuit-responsive-spacing-directions: $inuit-spacing-directions !default;
 *
 *   $inuit-responsive-spacing-properties: $inuit-spacing-properties !default;
 *
 *   $inuit-responsive-spacing-sizes: $inuit-spacing-sizes !default;
 *
 * BUT BE AWARE: This can generate a huge chunk of extra CSS, depending on the
 * amount of breakpoints you defined. So please check your CSS’ output and
 * filesize!
 */



// The responsive spacings just make sense and work properly when the ‘normal’
// spacings are included, too. In case they're not, we set `_utilities.spacings`
// to `null`.
$inuit-spacing-directions: null !default;

// If the ‘normal’ spacings partial is not included, we provide an error message
// to indicate this.
@if $inuit-spacing-directions == null {
  @error "In order to use responsive spacings, you also need to include `_utilities.spacings.scss`!";
}
@else {



// When using Sass-MQ, this defines the separator for the breakpoints suffix
// in the class name. By default, we are generating the responsive suffixes
// for the classes with a `@` symbol so you get classes like:
//
//   <div class="u-margin-bottom@mobile">
//
// Be aware that since the `@` symbol is a reserved symbol in CSS, it has to be
// escaped with a `\`. In the markup though, you write your classes without the
// backslash (e.g. `u-margin-bottom@mobile`).
$inuit-widths-breakpoint-separator: \@ !default;



$inuit-responsive-spacing-directions: null !default;

$inuit-responsive-spacing-properties: null !default;

$inuit-responsive-spacing-sizes: null !default;



/* stylelint-disable max-nesting-depth */

// Don't output anything if no responsive spacings are defined.
@if ($inuit-responsive-spacing-properties != null) {

  @each $property-namespace, $property in $inuit-responsive-spacing-properties {

    @each $direction-namespace, $direction-rules in $inuit-responsive-spacing-directions {

      @each $size-namespace, $size in $inuit-responsive-spacing-sizes {

        @each $inuit-bp-name, $inuit-bp-value in $mq-breakpoints {

          @include mq($from: $inuit-bp-name) {

            .u-#{$property-namespace}#{$direction-namespace}#{$size-namespace}#{$inuit-widths-breakpoint-separator}#{$inuit-bp-name} {

              @each $direction in $direction-rules {
                #{$property}#{$direction}: $size !important;
              }

            }

          }

        }

      }

    }

  }

}

/* stylelint-enable max-nesting-depth */

}


================================================
FILE: docs/_sass/inuitcss/utilities/_utilities.spacings.scss
================================================
/* ==========================================================================
   #SPACINGS
   ========================================================================== */

/**
 * Utility classes to put specific spacing values onto elements. The below loop
 * will generate us a suite of classes like:
 *
 *   .u-margin-top {}
 *   .u-padding-left-large {}
 *   .u-margin-right-small {}
 *   .u-padding {}
 *   .u-padding-right-none {}
 *   .u-padding-horizontal {}
 *   .u-padding-vertical-small {}
 */

$inuit-spacing-directions: (
  null: null,
  "-top": "-top",
  "-right": "-right",
  "-bottom": "-bottom",
  "-left": "-left",
  "-horizontal": "-left" "-right",
  "-vertical": "-top" "-bottom",
) !default;

$inuit-spacing-properties: (
  "padding": "padding",
  "margin": "margin",
) !default;

$inuit-spacing-sizes: (
  null: $inuit-global-spacing-unit,
  "-tiny": $inuit-global-spacing-unit-tiny,
  "-small": $inuit-global-spacing-unit-small,
  "-large": $inuit-global-spacing-unit-large,
  "-huge": $inuit-global-spacing-unit-huge,
  "-none": 0
) !default;

@each $property-namespace, $property in $inuit-spacing-properties {

  @each $direction-namespace, $direction-rules in $inuit-spacing-directions {

    @each $size-namespace, $size in $inuit-spacing-sizes {

      .u-#{$property-namespace}#{$direction-namespace}#{$size-namespace} {

        @each $direction in $direction-rules {
          #{$property}#{$direction}: $size !important;
        }

      }

    }

  }

}


================================================
FILE: docs/_sass/inuitcss/utilities/_utilities.widths.scss
================================================
/* ==========================================================================
   #WIDTHS
   ========================================================================== */

/**
 * inuitcss generates a series of utility classes that give a fluid width to
 * whichever element they’re applied, e.g.:
 *
 *   <img src="" alt="" class="u-1/2" />
 *
 * These classes are most commonly used in conjunction with our layout system,
 * e.g.:
 *
 *   <div class="o-layout__item  u-1/2">
 *
 * By default, inuitcss will also generate responsive variants of each of these
 * classes by using your Sass MQ configuration, e.g.:
 *
 *   <div class="o-layout__item  u-1/1  u-1/2@tablet  u-1/3@desktop">
 *
 * Optionally, inuitcss can generate offset classes which can push and pull
 * elements left and right by a specified amount, e.g.:
 *
 *   <div class="o-layout__item  u-2/3  u-pull-1/3">
 *
 * This is useful for making very granular changes to the rendered order of
 * items in a layout.
 *
 * N.B. This option is turned off by default.
 */



// Which fractions would you like in your grid system(s)? By default, inuitcss
// provides you fractions of one whole, halves, thirds, quarters and fifths,
// e.g.:
//
//   .u-1/2
//   .u-2/5
//   .u-3/4
//   .u-2/3

$inuit-fractions: 1 2 3 4 5 !default;





// Optionally, inuitcss can generate classes to offset items by a certain width.
// Would you like to generate these types of class as well? E.g.:
//
//   .u-push-1/3
//   .u-pull-2/4
//   .u-pull-1/5
//   .u-push-2/3

$inuit-offsets: false !default;





// By default, inuitcss uses fractions-like classes like `<div class="u-1/4">`.
// You can change the `/` to whatever you fancy with this variable.
$inuit-widths-delimiter: \/ !default;





// When using Sass-MQ, this defines the separator for the breakpoints suffix
// in the class name. By default, we are generating the responsive suffixes
// for the classes with a `@` symbol so you get classes like:
// <div class="u-3/12@mobile">
$inuit-widths-breakpoint-separator: \@ !default;





// A mixin to spit out our width classes. Pass in the columns we want the widths
// to have, and an optional suffix for responsive widths. E.g. to create thirds
// and quarters for a small breakpoint:
//
// @include widths(3 4, -sm);

@mixin inuit-widths($columns, $breakpoint: null) {

  // Loop through the number of columns for each denominator of our fractions.
  @each $denominator in $columns {

    // Begin creating a numerator for our fraction up until we hit the
    // denominator.
    @for $numerator from 1 through $denominator {

      // Build a class in the format `.u-3/4[@<breakpoint>]`.

      .u-#{$numerator}#{$inuit-widths-delimiter}#{$denominator}#{$breakpoint} {
        width: ($numerator / $denominator) * 100% !important;
      }

      @if ($inuit-offsets == true) {

        /**
         * 1. Reset any leftover or conflicting `left`/`right` values.
         */

        // Build a class in the format `.u-push-1/2[@<breakpoint>]`.

        .u-push-#{$numerator}#{$inuit-widths-delimiter}#{$denominator}#{$breakpoint} {
          position: relative !important;
          right: auto !important; /* [1] */
          left: ($numerator / $denominator) * 100% !important;
        }

        // Build a class in the format `.u-pull-5/6[@<breakpoint>]`.

        .u-pull-#{$numerator}#{$inuit-widths-delimiter}#{$denominator}#{$breakpoint} {
          position: relative !important;
          right: ($numerator / $denominator) * 100% !important;
          left: auto !important; /* [1] */
        }

      }

    }

  }

  @if ($inuit-offsets == true and $breakpoint != null) {

    // Create auto push and pull classes.

    .u-push-none#{$breakpoint} {
      left: auto !important;
    }

    .u-pull-none#{$breakpoint} {
      right: auto !important;
    }

  }

}





/**
 * A series of width helper classes that you can use to size things like grid
 * systems. Classes take a fraction-like format (e.g. `.u-2/3`). Use these in
 * your markup:
 *
 * <div class="u-7/12">
 *
 * The following will generate widths helper classes based on the fractions
 * defined in the `$inuit-fractions` list.
 */

@include inuit-widths($inuit-fractions);





/**
 * If we’re using Sass-MQ, automatically generate grid system(s) for each of our
 * defined breakpoints, and give them a Responsive Suffix, e.g.:
 *
 * <div class="u-3/12@mobile">
 */

@if (variable-exists(mq-breakpoints)) {

  @each $inuit-bp-name, $inuit-bp-value in $mq-breakpoints {

    @include mq($from: $inuit-bp-name) {
      @include inuit-widths($inuit-fractions, #{$inuit-widths-breakpoint-separator}#{$inuit-bp-name});
    }

  }

}


================================================
FILE: docs/_sass/sass-mq/LICENSE.md
================================================
Copyright (c) 2013-2016 Guardian Media Group and contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.


================================================
FILE: docs/_sass/sass-mq/_mq.scss
================================================
@charset "UTF-8"; // Fixes an issue where Ruby locale is not set properly
                  // See https://github.com/sass-mq/sass-mq/pull/10

/// Base font size on the `<body>` element
/// @type Number (unit)
$mq-base-font-size: 16px !default;

/// Responsive mode
///
/// Set to `false` to enable support for browsers that do not support @media queries,
/// (IE <= 8, Firefox <= 3, Opera <= 9)
///
/// You could create a stylesheet served exclusively to older browsers,
/// where @media queries are rasterized
///
/// @example scss
///  // old-ie.scss
///  $mq-responsive: false;
///  @import 'main'; // @media queries in this file will be rasterized up to $mq-static-breakpoint
///                   // larger breakpoints will be ignored
///
/// @type Boolean
/// @link https://github.com/sass-mq/sass-mq#responsive-mode-off Disabled responsive mode documentation
$mq-responsive: true !default;

/// Breakpoint list
///
/// Name your breakpoints in a way that creates a ubiquitous language
/// across team members. It will improve communication between
/// stakeholders, designers, developers, and testers.
///
/// @type Map
/// @link https://github.com/sass-mq/sass-mq#seeing-the-currently-active-breakpoint Full documentation and examples
$mq-breakpoints: (
    mobile:  320px,
    tablet:  740px,
    desktop: 980px,
    wide:    1300px
) !default;

/// Static breakpoint (for fixed-width layouts)
///
/// Define the breakpoint from $mq-breakpoints that should
/// be used as the target width for the fixed-width layout
/// (i.e. when $mq-responsive is set to 'false') in a old-ie.scss
///
/// @example scss
///  // tablet-only.scss
///  //
///  // Ignore all styles above tablet breakpoint,
///  // and fix the styles (e.g. layout) at tablet width
///  $mq-responsive: false;
///  $mq-static-breakpoint: tablet;
///  @import 'main'; // @media queries in this file will be rasterized up to tablet
///                   // larger breakpoints will be ignored
///
/// @type String
/// @link https://github.com/sass-mq/sass-mq#adding-custom-breakpoints Full documentation and examples
$mq-static-breakpoint: desktop !default;

/// Show breakpoints in the top right corner
///
/// If you want to display the currently active breakpoint in the top
/// right corner of your site during development, add the breakpoints
/// to this list, ordered by width, e.g. (mobile, tablet, desktop).
///
/// @type map
$mq-show-breakpoints: () !default;

/// Customize the media type (e.g. `@media screen` or `@media print`)
/// By default sass-mq uses an "all" media type (`@media all and …`)
///
/// @type String
/// @link https://github.com/sass-mq/sass-mq#changing-media-type Full documentation and examples
$mq-media-type: all !default;

/// Convert pixels to ems
///
/// @param {Number} $px - value to convert
/// @param {Number} $base-font-size ($mq-base-font-size) - `<body>` font size
///
/// @example scss
///  $font-size-in-ems: mq-px2em(16px);
///  p { font-size: mq-px2em(16px); }
///
/// @requires $mq-base-font-size
/// @returns {Number}
@function mq-px2em($px, $base-font-size: $mq-base-font-size) {
    @if unitless($px) {
        @warn "Assuming #{$px} to be in pixels, attempting to convert it into pixels.";
        @return mq-px2em($px * 1px, $base-font-size);
    } @else if unit($px) == em {
        @return $px;
    }
    @return ($px / $base-font-size) * 1em;
}

/// Get a breakpoint's width
///
/// @param {String} $name - Name of the breakpoint. One of $mq-breakpoints
///
/// @example scss
///  $tablet-width: mq-get-breakpoint-width(tablet);
///  @media (min-width: mq-get-breakpoint-width(desktop)) {}
///
/// @requires {Variable} $mq-breakpoints
///
/// @returns {Number} Value in pixels
@function mq-get-breakpoint-width($name, $breakpoints: $mq-breakpoints) {
    @if map-has-key($breakpoints, $name) {
        @return map-get($breakpoints, $name);
    } @else {
        @warn "Breakpoint #{$name} wasn't found in $breakpoints.";
    }
}

/// Media Query mixin
///
/// @param {String | Boolean} $from (false) - One of $mq-breakpoints
/// @param {String | Boolean} $until (false) - One of $mq-breakpoints
/// @param {String | Boolean} $and (false) - Additional media query parameters
/// @param {String} $media-type ($mq-media-type) - Media type: screen, print…
///
/// @ignore Undocumented API, for advanced use only:
/// @ignore @param {Map} $breakpoints ($mq-breakpoints)
/// @ignore @param {String} $static-breakpoint ($mq-static-breakpoint)
///
/// @content styling rules, wrapped into a @media query when $responsive is true
///
/// @requires {Variable} $mq-media-type
/// @requires {Variable} $mq-breakpoints
/// @requires {Variable} $mq-static-breakpoint
/// @requires {function} mq-px2em
/// @requires {function} mq-get-breakpoint-width
///
/// @link https://github.com/sass-mq/sass-mq#responsive-mode-on-default Full documentation and examples
///
/// @example scss
///  .element {
///    @include mq($from: mobile) {
///      color: red;
///    }
///    @include mq($until: tablet) {
///      color: blue;
///    }
///    @include mq(mobile, tablet) {
///      color: green;
///    }
///    @include mq($from: tablet, $and: '(orientation: landscape)') {
///      color: teal;
///    }
///    @include mq(950px) {
///      color: hotpink;
///    }
///    @include mq(tablet, $media-type: screen) {
///      color: hotpink;
///    }
///    // Advanced use:
///    $my-breakpoints: (L: 900px, XL: 1200px);
///    @include mq(L, $breakpoints: $my-breakpoints, $static-breakpoint: L) {
///      color: hotpink;
///    }
///  }
@mixin mq(
    $from: false,
    $until: false,
    $and: false,
    $media-type: $mq-media-type,
    $breakpoints: $mq-breakpoints,
    $responsive: $mq-responsive,
    $static-breakpoint: $mq-static-breakpoint
) {
    $min-width: 0;
    $max-width: 0;
    $media-query: '';

    // From: this breakpoint (inclusive)
    @if $from {
        @if type-of($from) == number {
            $min-width: mq-px2em($from);
        } @else {
            $min-width: mq-px2em(mq-get-breakpoint-width($from, $breakpoints));
        }
    }

    // Until: that breakpoint (exclusive)
    @if $until {
        @if type-of($until) == number {
            $max-width: mq-px2em($until);
        } @else {
            $max-width: mq-px2em(mq-get-breakpoint-width($until, $breakpoints)) - .01em;
        }
    }

    // Responsive support is disabled, rasterize the output outside @media blocks
    // The browser will rely on the cascade itself.
    @if $responsive == false {
        $static-breakpoint-width: mq-get-breakpoint-width($static-breakpoint, $breakpoints);
        $target-width: mq-px2em($static-breakpoint-width);

        // Output only rules that start at or span our target width
        @if (
            $and == false
            and $min-width <= $target-width
            and (
                $until == false or $max-width >= $target-width
            )
        ) {
            @content;
        }
    }

    // Responsive support is enabled, output rules inside @media queries
    @else {
        @if $min-width != 0 { $media-query: '#{$media-query} and (min-width: #{$min-width})'; }
        @if $max-width != 0 { $media-query: '#{$media-query} and (max-width: #{$max-width})'; }
        @if $and            { $media-query: '#{$media-query} and #{$and}'; }

        // Remove unnecessary media query prefix 'all and '
        @if ($media-type == 'all' and $media-query != '') {
            $media-type: '';
            $media-query: str-slice(unquote($media-query), 6);
        }

        @media #{$media-type + $media-query} {
            @content;
        }
    }
}

/// Add a breakpoint
///
/// @param {String} $name - Name of the breakpoint
/// @param {Number} $width - Width of the breakpoint
///
/// @requires {Variable} $mq-breakpoints
///
/// @example scss
///  @include mq-add-breakpoint(tvscreen, 1920px);
///  @include mq(tvscreen) {}
@mixin mq-add-breakpoint($name, $width) {
    $new-breakpoint: ($name: $width);
    $mq-breakpoints: map-merge($mq-breakpoints, $new-breakpoint) !global;
}

/// Show the active breakpoint in the top right corner of the viewport
/// @link https://github.com/sass-mq/sass-mq#seeing-the-currently-active-breakpoint
///
/// @param {List} $show-breakpoints ($mq-show-breakpoints) - List of breakpoints to show in the top right corner
/// @param {Map} $breakpoints ($mq-breakpoints) - Breakpoint names and sizes
///
/// @requires {Variable} $mq-breakpoints
/// @requires {Variable} $mq-show-breakpoints
///
/// @example scss
///  // Show breakpoints using global settings
///  @include mq-show-breakpoints;
///
///  // Show breakpoints using custom settings
///  @include mq-show-breakpoints((L, XL), (S: 300px, L: 800px, XL: 1200px));
@mixin mq-show-breakpoints($show-breakpoints: $mq-show-breakpoints, $breakpoints: $mq-breakpoints) {
    body:before {
        background-color: #FCF8E3;
        border-bottom: 1px solid #FBEED5;
        border-left: 1px solid #FBEED5;
        color: #C09853;
        font: small-caption;
        padding: 3px 6px;
        pointer-events: none;
        position: fixed;
        right: 0;
        top: 0;
        z-index: 100;

        // Loop through the breakpoints that should be shown
        @each $show-breakpoint in $show-breakpoints {
            $width: mq-get-breakpoint-width($show-breakpoint, $breakpoints);
            @include mq($show-breakpoint, $breakpoints: $breakpoints) {
                content: "#{$show-breakpoint} ≥ #{$width} (#{mq-px2em($width)})";
            }
        }
    }
}

@if length($mq-show-breakpoints) > 0 {
    @include mq-show-breakpoints;
}


================================================
FILE: docs/_sass/settings/_settings.colors.scss
================================================
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
////
/// Microsoft Colors
/// @link https://www.microsoft.com/en-us/design/color Microsoft Design Universal Color Palette
////

/// @group Red
/// @type Color
$ms-red-100: #f4abba;

/// @group Red
/// @type Color
$ms-red-200: #e6808a;

/// @group Red
/// @type Color
$ms-red-300: #e74856;

/// @group Red
/// @type Color
$ms-red-400: #e81123;

/// @group Red
/// @type Color
$ms-red-500: #c50f1f;

/// @group Red
/// @type Color
$ms-red-600: #a80000;

/// @group Red
/// @type Color
$ms-red-700: #750b1c;

/// @group Red
/// @type Map
/// @example
///     $red: map-get($ms-red, 400);
///     // (Same as $ms-red-400)
$ms-red: (
    100: $ms-red-100,
    200: $ms-red-200,
    300: $ms-red-300,
    400: $ms-red-400,
    500: $ms-red-500,
    600: $ms-red-600,
    700: $ms-red-700
);



/// @group Red-Orange
/// @type Color
$ms-red-orange-100: #eec7c2;

/// @group Red-Orange
/// @type Color
$ms-red-orange-200: #ee9889;

/// @group Red-Orange
/// @type Color
$ms-red-orange-300: #ef6950;

/// @group Red-Orange
/// @type Color
$ms-red-orange-400: #f03a17;

/// @group Red-Orange
/// @type Color
$ms-red-orange-500: #da3b01;

/// @group Red-Orange
/// @type Color
$ms-red-orange-600: #a52613;

/// @group Red-Orange
/// @type Color
$ms-red-orange-700: #7f1d10;

/// @group Red-Orange
/// @type Map
/// @example
///     $red-orange: map-get($ms-red-orange, 400);
///     // (Same as $ms-red-orange-400)
$ms-red-orange: (
    100: $ms-red-orange-100,
    200: $ms-red-orange-200,
    300: $ms-red-orange-300,
    400: $ms-red-orange-400,
    500: $ms-red-orange-500,
    600: $ms-red-orange-600,
    700: $ms-red-orange-700
);

/// @group Orange
/// @type Color
$ms-orange-100: #f2d5c9;

/// @group Orange
/// @type Color
$ms-orange-200: #f7b189;

/// @group Orange
/// @type Color
$ms-orange-300: #f7894a;

/// @group Orange
/// @type Color
$ms-orange-400: #f7630c;

/// @group Orange
/// @type Color
$ms-orange-500: #ca5010;

/// @group Orange
/// @type Color
$ms-orange-600: #a74109;

/// @group Orange
/// @type Color
$ms-orange-700: #7f2f08;

/// @group Orange
/// @type Map
/// @example
///     $orange: map-get($ms-orange, 400);
///     // (Same as $ms-orange-400)
$ms-orange: (
    100: $ms-orange-100,
    200: $ms-orange-200,
    300: $ms-orange-300,
    400: $ms-orange-400,
    500: $ms-orange-500,
    600: $ms-orange-600,
    700: $ms-orange-700
);



/// @group Amber
/// @type Color
$ms-amber-100: #ffdabb;

/// @group Amber
/// @type Color
$ms-amber-200: #ffc988;

/// @group Amber
/// @type Color
$ms-amber-300: #fa4;

/// @group Amber
/// @type Color
$ms-amber-400: #ff8c00;

/// @group Amber
/// @type Color
$ms-amber-500: #d47300;

/// @group Amber
/// @type Color
$ms-amber-600: #b05e0d;

/// @group Amber
/// @type Color
$ms-amber-700: #7f4200;

/// @group Amber
/// @type Map
/// @example
///     $amber: map-get($ms-amber, 400);
///     // (Same as $ms-amber-400)
$ms-amber: (
    100: $ms-amber-100,
    200: $ms-amber-200,
    300: $ms-amber-300,
    400: $ms-amber-400,
    500: $ms-amber-500,
    600: $ms-amber-600,
    700: $ms-amber-700
);



/// @group Gold
/// @type Color
$ms-gold-100: #ffe5b6;

/// @group Gold
/// @type Color
$ms-gold-200: #ffd679;

/// @group Gold
/// @type Color
$ms-gold-300: #ffc83d;

/// @group Gold
/// @type Color
$ms-gold-400: #ffb900;

/// @group Gold
/// @type Color
$ms-gold-500: #eaa300;

/// @group Gold
/// @type Color
$ms-gold-600: #d48c00;

/// @group Gold
/// @type Color
$ms-gold-700: #ab620d;

/// @group Gold
/// @type Map
/// @example
///     $gold: map-get($ms-gold, 400);
///     // (Same as $ms-gold-400)
$ms-gold: (
    100: $ms-gold-100,
    200: $ms-gold-200,
    300: $ms-gold-300,
    400: $ms-gold-400,
    500: $ms-gold-500,
    600: $ms-gold-600,
    700: $ms-gold-700
);



/// @group Yellow
/// @type Color
$ms-yellow-100: #f9f1a5;

/// @group Yellow
/// @type Color
$ms-yellow-200: #faec6e;

/// @group Yellow
/// @type Color
$ms-yellow-300: #fff100;

/// @group Yellow
/// @type Color
$ms-yellow-400: #fce100;

/// @group Yellow
/// @type Color
$ms-yellow-500: #dfbe00;

/// @group Yellow
/// @type Color
$ms-yellow-600: #c19c00;

/// @group Yellow
/// @type Color
$ms-yellow-700: #986f0b;

/// @group Yellow
/// @type Map
/// @example
///     $yellow: map-get($ms-yellow, 400);
///     // (Same as $ms-yellow-400)
$ms-yellow: (
    100: $ms-yellow-100,
    200: $ms-yellow-200,
    300: $ms-yellow-300,
    400: $ms-yellow-400,
    500: $ms-yellow-500,
    600: $ms-yellow-600,
    700: $ms-yellow-700
);

/// @group Chartreuse
/// @type Color
$ms-chartreuse-100: #f8ffb3;

/// @group Yellow-Green
/// @type Color
$ms-chartreuse-200: #e4f577;

/// @group Yellow-Green
/// @type Color
$ms-chartreuse-300: #d1ec3c;

/// @group Yellow-Green
/// @type Color
$ms-chartreuse-400: #bad80a;

/// @group Yellow-Green
/// @type Color
$ms-chartreuse-500: #a4cf0c;

/// @group Yellow-Green
/// @type Color
$ms-chartreuse-600: #8cbd18;

/// @group Yellow-Green
/// @type Color
$ms-chartreuse-700: #73aa24;

/// @group Yellow-Green
/// @type Map
/// @example
///     $chartreuse: map-get($ms-chartreuse, 400);
///     // (Same as $ms-chartreuse-400)
$ms-chartreuse: (
    100: $ms-chartreuse-100,
    200: $ms-chartreuse-200,
    300: $ms-chartreuse-300,
    400: $ms-chartreuse-400,
    500: $ms-chartreuse-500,
    600: $ms-chartreuse-600,
    700: $ms-chartreuse-700
);



/// @group Lime
/// @type Color
$ms-lime-100: #d5e5ae;

/// @group Lime
/// @type Color
$ms-lime-200: #b7df74;

/// @group Lime
/// @type Color
$ms-lime-300: #9ad93a;

/// @group Lime
/// @type Color
$ms-lime-400: #7cd300;

/// @group Lime
/// @type Color
$ms-lime-500: #6bb700;

/// @group Lime
/// @type Color
$ms-lime-600: #599b00;

/// @group Lime
/// @type Color
$ms-lime-700: #498205;

/// @group Lime
/// @type Map
/// @example
///     $lime: map-get($ms-lime, 400);
///     // (Same as $ms-lime-400)
$ms-lime: (
    100: $ms-lime-100,
    200: $ms-lime-200,
    300: $ms-lime-300,
    400: $ms-lime-400,
    500: $ms-lime-500,
    600: $ms-lime-600,
    700: $ms-lime-700
);



/// @group Green
/// @type Color
$ms-green-100: #aae5aa;

/// @group Green
/// @type Color
$ms-green-200: #79db75;

/// @group Green
/// @type Color
$ms-green-300: #47d041;

/// @group Green
/// @type Color
$ms-green-400: #16c60c;

/// @group Green
/// @type Color
$ms-green-500: #13a10e;

/// @group Green
/// @type Color
$ms-green-600: #107c10;

/// @group Green
/// @type Color
$ms-green-700: #0b6a0b;

/// @group Green
/// @type Map
/// @example
///     $green: map-get($ms-green, 400);
///     // (Same as $ms-green-400)
$ms-green: (
    100: $ms-green-100,
    200: $ms-green-200,
    300: $ms-green-300,
    400: $ms-green-400,
    500: $ms-green-500,
    600: $ms-green-600,
    700: $ms-green-700
);



/// @group Mint
/// @type Color
$ms-mint-100: #a8e5c2;

/// @group Mint
/// @type Color
$ms-mint-200: #70dda5;

/// @group Mint
/// @type Color
$ms-mint-300: #38d487;

/// @group Mint
/// @type Color
$ms-mint-400: #00cc6a;

/// @group Mint
/// @type Color
$ms-mint-500: #00ae56;

/// @group Mint
/// @type Color
$ms-mint-600: #10893e;

/// @group Mint
/// @type Color
$ms-mint-700: #00722e;

/// @group Mint
/// @type Map
/// @example
///     $mint: map-get($ms-mint, 400);
///     // (Same as $ms-mint-400)
$ms-mint: (
    100: $ms-mint-100,
    200: $ms-mint-200,
    300: $ms-mint-300,
    400: $ms-mint-400,
    500: $ms-mint-500,
    600: $ms-mint-600,
    700: $ms-mint-700
);

/// @group Teal
/// @type Color
$ms-teal-100: #c2f2e9;

/// @group Teal
/// @type Color
$ms-teal-200: #81e6d3;

/// @group Teal
/// @type Color
$ms-teal-300: #41dabc;

/// @group Teal
/// @type Color
$ms-teal-400: #00cea6;

/// @group Teal
/// @type Color
$ms-teal-500: #00b294;

/// @group Teal
/// @type Color
$ms-teal-600: #008272;

/// @group Teal
/// @type Color
$ms-teal-700: #005e50;

/// @group Teal
/// @type Map
/// @example
///     $teal: map-get($ms-teal, 400);
///     // (Same as $ms-teal-400)
$ms-teal: (
    100: $ms-teal-100,
    200: $ms-teal-200,
    300: $ms-teal-300,
    400: $ms-teal-400,
    500: $ms-teal-500,
    600: $ms-teal-600,
    700: $ms-teal-700
);



/// @group Seafoam
/// @type Color
$ms-seafoam-100: #91e5df;

/// @group Seafoam
/// @type Color
$ms-seafoam-200: #61d6d6;

/// @group Seafoam
/// @type Color
$ms-seafoam-300: #30c6cc;

/// @group Seafoam
/// @type Color
$ms-seafoam-400: #00b7c3;

/// @group Seafoam
/// @type Color
$ms-seafoam-500: #009ca4;

/// @group Seafoam
/// @type Color
$ms-seafoam-600: #038387;

/// @group Seafoam
/// @type Color
$ms-seafoam-700: #066;

/// @group Seafoam
/// @type Map
/// @example
///     $splish-splash: map-get($ms-seafoam, 400);
///     // (Same as $ms-seafoam-400)
$ms-seafoam: (
    100: $ms-seafoam-100,
    200: $ms-seafoam-200,
    300: $ms-seafoam-300,
    400: $ms-seafoam-400,
    500: $ms-seafoam-500,
    600: $ms-seafoam-600,
    700: $ms-seafoam-700
);



/// @group Cyan
/// @type Color
$ms-cyan-100: #99ecff;

/// @group Cyan
/// @type Color
$ms-cyan-200: #69eaff;

/// @group Cyan
/// @type Color
$ms-cyan-300: #31d2f7;

/// @group Cyan
/// @type Color
$ms-cyan-400: #00bcf2;

/// @group Cyan
/// @type Color
$ms-cyan-500: #0099bc;

/// @group Cyan
/// @type Color
$ms-cyan-600: #006f94;

/// @group Cyan
/// @type Color
$ms-cyan-700: #005b70;

/// @group Cyan
/// @type Map
/// @example
///     $cyan: map-get($ms-cyan, 400);
///     // (Same as $ms-cyan-400)
$ms-cyan: (
    100: $ms-cyan-100,
    200: $ms-cyan-200,
    300: $ms-cyan-300,
    400: $ms-cyan-400,
    500: $ms-cyan-500,
    600: $ms-cyan-600,
    700: $ms-cyan-700
);



/// @group Sky
/// @type Color
$ms-sky-100: #b3dbf2;

/// @group Sky
/// @type Color
$ms-sky-200: #83beec;

/// @group Sky
/// @type Color
$ms-sky-300: #3a96dd;

/// @group Sky
/// @type Color
$ms-sky-400: #0072cc;

/// @group Sky
/// @type Color
$ms-sky-500: #0063b1;

/// @group Sky
/// @type Color
$ms-sky-600: #004e8c;

/// @group Sky
/// @type Color
$ms-sky-700: #003966;

/// @group Sky
/// @type Map
/// @example
///     $mr-blue-sky: map-get($ms-sky, 400);
///     // (Same as $ms-sky-400)
$ms-sky: (
    100: $ms-sky-100,
    200: $ms-sky-200,
    300: $ms-sky-300,
    400: $ms-sky-400,
    500: $ms-sky-500,
    600: $ms-sky-600,
    700: $ms-sky-700
);



/// @group Blue
/// @type Color
$ms-blue-100: #abc9ed;

/// @group Blue
/// @type Color
$ms-blue-200: #7ba7ff;

/// @group Blue
/// @type Color
$ms-blue-300: #3b78ff;

/// @group Blue
/// @type Color
$ms-blue-400: #0046ff;

/// @group Blue
/// @type Color
$ms-blue-500: #0037da;

/// @group Blue
/// @type Color
$ms-blue-600: #0027b4;

/// @group Blue
/// @type Color
$ms-blue-700: #00188f;

/// @group Blue
/// @type Map
/// @example
///     $blue: map-get($ms-blue, 400);
///     // (Same as $ms-blue-400)
$ms-blue: (
    100: $ms-blue-100,
    200: $ms-blue-200,
    300: $ms-blue-300,
    400: $ms-blue-400,
    500: $ms-blue-500,
    600: $ms-blue-600,
    700: $ms-blue-700
);



/// @group Navy
/// @type Color
$ms-navy-100: #a6bdff;

/// @group Navy
/// @type Color
$ms-navy-200: #7c96f9;

/// @group Navy
/// @type Color
$ms-navy-300: #4f6bed;

/// @group Navy
/// @type Color
$ms-navy-400: #2849ec;

/// @group Navy
/// @type Color
$ms-navy-500: #203dbd;

/// @group Navy
/// @type Color
$ms-navy-600: #19318d;

/// @group Navy
/// @type Color
$ms-navy-700: #11255e;

/// @group Navy
/// @type Map
/// @example
///     $in-the-navy: map-get($ms-navy, 400);
///     // (Same as $ms-navy-400)
$ms-navy: (
    100: $ms-navy-100,
    200: $ms-navy-200,
    300: $ms-navy-300,
    400: $ms-navy-400,
    500: $ms-navy-500,
    600: $ms-navy-600,
    700: $ms-navy-700
);

/// @group Indigo
/// @type Color
$ms-indigo-100: #bebee5;

/// @group Indigo
/// @type Color
$ms-indigo-200: #6b69d6;

/// @group Indigo
/// @type Color
$ms-indigo-300: #4f4bd9;

/// @group Indigo
/// @type Color
$ms-indigo-400: #413eb3;

/// @group Indigo
/// @type Color
$ms-indigo-500: #32318c;

/// @group Indigo
/// @type Color
$ms-indigo-600: #242466;

/// Custom indigo shade (Not officially apart of Microsoft's color palette)
/// @group Violet
/// @type Color
$ms-indigo-700: darken($ms-indigo-600, 10%);

/// @group Indigo
/// @type Map
/// @example
///     $girls: map-get($ms-indigo, 400);
///     // (Same as $ms-indigo-400)
$ms-indigo: (
    100: $ms-indigo-100,
    200: $ms-indigo-200,
    300: $ms-indigo-300,
    400: $ms-indigo-400,
    500: $ms-indigo-500,
    600: $ms-indigo-600,
    700: $ms-indigo-700
);



/// @group Violet
/// @type Color
$ms-violet-100: #b5b5e2;

/// @group Violet
/// @type Color
$ms-violet-200: #8378de;

/// @group Violet
/// @type Color
$ms-violet-300: #7160e8;

/// @group Violet
/// @type Color
$ms-violet-400: #5a4ebc;

/// @group Violet
/// @type Color
$ms-violet-500: #49409a;

/// @group Violet
/// @type Color
$ms-violet-600: #373277;

/// Custom violet shade (Not officially apart of Microsoft's color palette)
/// @group Violet
/// @type Color
$ms-violet-700: darken($ms-violet-600, 10%);

/// @group Violet
/// @type Map
/// @example
///     $girls: map-get($ms-indigo, 400);
///     // (Same as $ms-indigo-400)
$ms-violet: (
    100: $ms-violet-100,
    200: $ms-violet-200,
    300: $ms-violet-300,
    400: $ms-violet-400,
    500: $ms-violet-500,
    600: $ms-violet-600,
    700: $ms-violet-700
);



/// @group Lavender
/// @type Color
$ms-lavender-100: #c3c3f4;

/// @group Lavender
/// @type Color
$ms-lavender-200: #9c89e9;

/// @group Lavender
/// @type Color
$ms-lavender-300: #886ce4;

/// @group Lavender
/// @type Color
$ms-lavender-400: #735bc1;

/// @group Lavender
/// @type Color
$ms-lavender-500: #5e4a9d;

/// @group Lavender
/// @type Color
$ms-lavender-600: #49397a;

/// Custom lavender shade (Not officially apart of Microsoft's color palette)
/// @group Lavender
/// @type Color
$ms-lavender-700: darken($ms-lavender-600, 10%);

/// @group Lavender
/// @type Map
/// @example
///     $flower: map-get($ms-lavender, 400);
///     // (Same as $ms-lavender-400)
$ms-lavender: (
    100: $ms-lavender-100,
    200: $ms-lavender-200,
    300: $ms-lavender-300,
    400: $ms-lavender-400,
    500: $ms-lavender-500,
    600: $ms-lavender-600,
    700: $ms-lavender-700
);

/// @group Purple
/// @type Color
$ms-purple-100: #cfc4f5;

/// @group Purple
/// @type Color
$ms-purple-200: #8764b8;

/// @group Purple
/// @type Color
$ms-purple-300: #744da9;

/// @group Purple
/// @type Color
$ms-purple-400: #5c2e91;

/// @group Purple
/// @type Color
$ms-purple-500: #4e257f;

/// @group Purple
/// @type Color
$ms-purple-600: #401b6c;

/// Custom purple shade (Not officially apart of Microsoft's color palette)
/// @group Purple
/// @type Color
$ms-purple-700: darken($ms-purple-600, 10%);

/// @group Purple
/// @type Map
/// @example
///     $nurple: map-get($ms-purple, 400);
///     // (Same as $ms-purple-400)
$ms-purple: (
    100: $ms-purple-100,
    200: $ms-purple-200,
    300: $ms-purple-300,
    400: $ms-purple-400,
    500: $ms-purple-500,
    600: $ms-purple-600,
    700: $ms-purple-700
);



/// @group Orchid
/// @type Color
$ms-orchid-100: #dea2ed;

/// @group Orchid
/// @type Color
$ms-orchid-200: #b146c2;

/// @group Orchid
/// @type Color
$ms-orchid-300: #881798;

/// @group Orchid
/// @type Color
$ms-orchid-400: #721481;

/// @group Orchid
/// @type Color
$ms-orchid-500: #5c126b;

/// @group Orchid
/// @type Color
$ms-orchid-600: #460f54;

/// Custom violet-red shade (Not officially apart of Microsoft's color palette)
/// @group Orchid
/// @type Color
$ms-orchid-700: darken($ms-orchid-600, 10%);

/// @group Orchid
/// @type Map
/// @example
///     $flower: map-get($ms-orchid, 400);
///     // (Same as $ms-orchid-400)
$ms-orchid: (
    100: $ms-orchid-100,
    200: $ms-orchid-200,
    300: $ms-orchid-300,
    400: $ms-orchid-400,
    500: $ms-orchid-500,
    600: $ms-orchid-600,
    700: $ms-orchid-700
);



/// @group Magenta
/// @type Color
$ms-magenta-100: #de94e0;

/// @group Magenta
/// @type Color
$ms-magenta-200: #c239b3;

/// @group Magenta
/// @type Color
$ms-magenta-300: #b4009e;

/// @group Magenta
/// @type Color
$ms-magenta-400: #9a0089;

/// @group Magenta
/// @type Color
$ms-magenta-500: #800074;

/// @group Magenta
/// @type Color
$ms-magenta-600: #5c005c;

/// Custom violet-red shade (Not officially apart of Microsoft's color palette)
/// @group Magenta
/// @type Color
$ms-magenta-700: darken($ms-magenta-600, 10%);

/// @group Orchid
/// @type Map
/// @example
///     $not-pink: map-get($ms-magenta, 400);
///     // (Same as $ms-magenta-400)
$ms-magenta: (
    100: $ms-magenta-100,
    200: $ms-magenta-200,
    300: $ms-magenta-300,
    400: $ms-magenta-400,
    500: $ms-magenta-500,
    600: $ms-magenta-600,
    700: $ms-magenta-700
);



/// @group Pink
/// @type Color
$ms-pink-100: #e8a3de;

/// @group Pink
/// @type Color
$ms-pink-200: #e43ba6;

/// @group Pink
/// @type Color
$ms-pink-300: #e3008c;

/// @group Pink
/// @type Color
$ms-pink-400: #bf0077;

/// @group Pink
/// @type Color
$ms-pink-500: #9b0062;

/// @group Pink
/// @type Color
$ms-pink-600: #77004d;

/// Custom pink shade (Not officially apart of Microsoft's color palette)
/// @group Pink
/// @type Color
$ms-pink-700: darken($ms-pink-600, 10%);

/// @group Pink
/// @type Map
/// @example
///     $panther: map-get($ms-pink, 400);
///     // (Same as $ms-pink-400)
$ms-pink: (
    100: $ms-pink-100,
    200: $ms-pink-200,
    300: $ms-pink-300,
    400: $ms-pink-400,
    500: $ms-pink-500,
    600: $ms-pink-600,
    700: $ms-pink-700
);



/// @group Fuchsia
/// @type Color
$ms-fuchsia-100: #edbed3;

/// @group Fuchsia
/// @type Color
$ms-fuchsia-200: #ee3f86;

/// @group Fuchsia
/// @type Color
$ms-fuchsia-300: #ea005e;

/// @group Fuchsia
/// @type Color
$ms-fuchsia-400: #c30052;

/// @group Fuchsia
/// @type Color
$ms-fuchsia-500: #970044;

/// @group Fuchsia
/// @type Color
$ms-fuchsia-600: #6b0036;

/// Custom fuchsia shade (Not officially apart of Microsoft's color palette)
/// @group Fuchsia
/// @type Color
$ms-fuchsia-700: darken($ms-fuchsia-600, 10%);

/// @group Fuchsia
/// @type Map
/// @example
///     $fuchsia: map-get($ms-fuchsia, 400);
///     // (Same as $ms-fuchsia-400)
$ms-fuchsia: (
    100: $ms-fuchsia-100,
    200: $ms-fuchsia-200,
    300: $ms-fuchsia-300,
    400: $ms-fuchsia-400,
    500: $ms-fuchsia-500,
    600: $ms-fuchsia-600,
    700: $ms-fuchsia-700
);

/// @group Crimson
/// @type Color
$ms-crimson-100: #ffc0c0;

/// @group Crimson
/// @type Color
$ms-crimson-200: #ff8c8c;

/// @group Crimson
/// @type Color
$ms-crimson-300: #ff6767;

/// @group Crimson
/// @type Color
$ms-crimson-400: #ff4343;

/// @group Crimson
/// @type Color
$ms-crimson-500: #d13438;

/// @group Crimson
/// @type Color
$ms-crimson-600: #a4262c;

/// @group Crimson
/// @type Color
$ms-crimson-700: #761721;

/// @group Crimson
/// @type Map
/// @example
///     $tide: map-get($ms-crimson, 400);
///     // (Same as $ms-crimson-400)
$ms-crimson: (
    100: $ms-crimson-100,
    200: $ms-crimson-200,
    300: $ms-crimson-300,
    400: $ms-crimson-400,
    500: $ms-crimson-500,
    600: $ms-crimson-600,
    700: $ms-crimson-700
);



/// @group Brown
/// @type Color
$ms-brown-100: #f7d7c4;

/// @group Brown
/// @type Color
$ms-brown-200: #d8b094;

/// @group Brown
/// @type Color
$ms-brown-300: #bb9167;

/// @group Brown
/// @type Color
$ms-brown-400: #ac744c;

/// @group Brown
/// @type Color
$ms-brown-500: #8e562e;

/// @group Brown
/// @type Color
$ms-brown-600: #603d30;

/// @group Brown
/// @type Color
$ms-brown-700: #4d291c;

/// @group Brown
/// @type Map
/// @example
///     $brown: map-get($ms-brown, 400);
///     // (Same as $ms-brown-400)
$ms-brown: (
    100: $ms-brown-100,
    200: $ms-brown-200,
    300: $ms-brown-300,
    400: $ms-brown-400,
    500: $ms-brown-500,
    600: $ms-brown-600,
    700: $ms-brown-700
);



/// @group Sage
/// @type Color
$ms-sage-100: #cae0d9;

/// @group Sage
/// @type Color
$ms-sage-200: #a3bfb7;

/// @group Sage
/// @type Color
$ms-sage-300: #7d9d95;

/// @group Sage
/// @type Color
$ms-sage-400: #567c73;

/// @group Sage
/// @type Color
$ms-sage-500: #486860;

/// @group Sage
/// @type Color
$ms-sage-600: #3b534d;

/// @group Sage
/// @type Color
$ms-sage-700: #2d3f3a;

/// @group Sage
/// @type Map
/// @example
///     $wisdom: map-get($ms-sage, 400);
///     // (Same as $ms-sage-400)
$ms-sage: (
    100: $ms-sage-100,
    200: $ms-sage-200,
    300: $ms-sage-300,
    400: $ms-sage-400,
    500: $ms-sage-500,
    600: $ms-sage-600,
    700: $ms-sage-700
);



/// @group Slate
/// @type Color
$ms-slate-100: #bac8cc;

/// @group Slate
/// @type Color
$ms-slate-200: #a0aeb2;

/// @group Slate
/// @type Color
$ms-slate-300: #859599;

/// @group Slate
/// @type Color
$ms-slate-400: #69797e;

/// @group Slate
/// @type Color
$ms-slate-500: #5a686c;

/// @group Slate
/// @type Color
$ms-slate-600: #4a5459;

/// @group Slate
/// @type Color
$ms-slate-700: #394146;

/// @group Slate
/// @type Map
/// @example
///     $tabula-rasa: map-get($ms-slate, 400);
///     // (Same as $ms-slate-400)
$ms-slate: (
    100: $ms-slate-100,
    200: $ms-slate-200,
    300: $ms-slate-300,
    400: $ms-slate-400,
    500: $ms-slate-500,
    600: $ms-slate-600,
    700: $ms-slate-700
);



/// @group Gray
/// @type Color
$ms-gray-100: #cbc6c4;

/// @group Gray
/// @type Color
$ms-gray-200: #b1adab;

/// @group Gray
/// @type Color
$ms-gray-300: #989391;

/// @group Gray
/// @type Color
$ms-gray-400: #7a7574;

/// @group Gray
/// @type Color
$ms-gray-500: #6e6a68;

/// @group Gray
/// @type Color
$ms-gray-600: #5d5a58;

/// @group Gray
/// @type Color
$ms-gray-700: #4c4a48;

/// @group Gray
/// @type Map
/// @example
///     $gray: map-get($ms-gray, 400);
///     // (Same as $ms-gray-400)
$ms-gray: (
    100: $ms-gray-100,
    200: $ms-gray-200,
    300: $ms-gray-300,
    400: $ms-gray-400,
    500: $ms-gray-500,
    600: $ms-gray-600,
    700: $ms-gray-700
);



/// @group Black
/// @type Color
$ms-black-100: #f5f5f5;

/// @group Black
/// @type Color
$ms-black-200: #e6e6e6;

/// @group Black
/// @type Color
$ms-black-300: #ccc;

/// @group Black
/// @type Color
$ms-black-400: #767676;

/// @group Black
/// @type Color
$ms-black-500: #393939;

/// @group Black
/// @type Color
$ms-black-600: #2b2b2b;

/// @group Black
/// @type Color
$ms-black-700: #1f1f1f;

/// @group Gray
/// @type Map
/// @example
///     $gray: map-get($ms-gray, 400);
///     // (Same as $ms-gray-400)
$ms-black: (
    100: $ms-black-100,
    200: $ms-black-200,
    300: $ms-black-300,
    400: $ms-black-400,
    500: $ms-black-500,
    600: $ms-black-600,
    700: $ms-black-700
);



/// @group Contextual Colors
/// @type Color
/// @see ms-crimson-500
$ms-assertive: $ms-crimson-500 !default;

/// @group Contextual Colors
/// @type Color
/// @see ms-red-400
$ms-danger: $ms-red-400 !default;

/// @group Contextual Colors
/// @type Color
/// @see ms-fuchsia-300
$ms-beacon: $ms-fuchsia-300 !default;

/// @group Contextual Colors
/// @type Color
/// @see ms-amber-400
$ms-exciting: $ms-amber-400 !default;

/// @group Contextual Colors
/// @type Color
/// @see ms-yellow-300
$ms-cheerful: $ms-yellow-300 !default;

/// @group Contextual Colors
/// @type Color
/// @see ms-yellow-400
$ms-highlight: $ms-yellow-400 !default;

/// @group Contextual Colors
/// @type Color
/// @see ms-lime-300
$ms-energized: $ms-lime-300 !default;

/// @group Contextual Colors
/// @type Color
/// @see ms-lime-400
$ms-growth: $ms-lime-400 !default;

/// @group Contextual Colors
/// @type Color
/// @see ms-mint-400
$ms-positive: $ms-mint-400 !default;

/// @group Contextual Colors
/// @type Color
/// @see ms-navy-400
$ms-sturdy: $ms-navy-400 !default;

/// @group Contextual Colors
/// @type Color
/// @see ms-sky-400
$ms-calm: $ms-sky-400 !default;

/// @group Contextual Colors
/// @type Color
/// @see ms-violet-300
$ms-balanced: $ms-violet-300 !default;

/// @group Contextual Colors
/// @type Color
/// @see ms-black-100
$ms-light: $ms-black-100 !default;

/// @group Contextual Colors
/// @type Color
/// @see ms-black-200
$ms-stable: $ms-black-200 !default;



/// Windows 10 UAC notice color
/// @group UI Colors
/// @type Color
$ms-info: #65b7f0;

/// Windows 10 UAC admin notice color
/// @group UI Colors
/// @type Color
$ms-warn: #ffd64d;



/// Light theme button background color
/// @group Light UI Colors
/// @type Color
/// @see ms-black-300
$ms-ui-light-btn: $ms-black-300;

/// Light theme app bar background color
/// @group Light UI Colors
/// @type Color
/// @see ms-black-200
$ms-ui-light-appbar: $ms-black-200;

/// Light theme navigation bar background color
/// @group Light UI Colors
/// @type Color
/// @see ms-black-100
$ms-ui-light-navbar: $ms-black-100;

/// Light theme background color
/// @group Light UI Colors
/// @type Color
$ms-ui-light-background: #fff;



/// Dark theme button background color
/// @group Dark UI Colors
/// @type Color
/// @see ms-black-600
$ms-ui-dark-btn: $ms-black-600;

/// Dark theme app bar background color
/// @group Dark UI Colors
/// @type Color
/// @see ms-black-700
$ms-ui-dark-appbar: $ms-black-700;

/// Dark theme navigation bar background color
/// @group Dark UI Colors
/// @type Color
$ms-ui-dark-navbar: #171717;

/// Dark theme background color
/// @group Dark UI Colors
/// @type Color
$ms-ui-dark-background: #000;


/// Outlook
/// @group Office & App Colors
/// @type Color
/// @see ms-sky-400
$ms-outlook: $ms-sky-400;

/// Calendar
/// @group Office & App Colors
/// @type Color
$ms-calendar: #5133ab;

/// OneDrive
/// @group Office & App Colors
/// @type Color
$ms-onedrive: #094ab2;

/// Office / Office 365
/// @group Office & App Colors
/// @type Color
$ms-office: #d83b01;

/// Word
/// @group Office & App Colors
/// @type Color
$ms-word: #2b579a;

/// Excel
/// @group Office & App Colors
/// @type Color
$ms-excel: #217346;

/// PowerPoint
/// @group Office & App Colors
/// @type Color
$ms-powerpoint: #d24726;

/// OneNote
/// @group Office & App Colors
/// @type Color
$ms-onenote: #80397b;

/// Sway
/// @group Office & App Colors
/// @type Color
/// @see ms-teal-600
$ms-sway: $ms-teal-600;

/// Skype
/// @group Office & App Colors
/// @type Color
$ms-skype: #00aff0;

/// Bing
/// @group Office & App Colors
/// @type Color
$ms-bing: #0c8484;

/// MSN
/// @group Office & App Colors
/// @type Color
$ms-msn: #1e1e1e;




/// @group Skype Status Colors
/// @type Color
$ms-status-available: #5dd255;

/// @group Skype Status Colors
/// @type Color
$ms-status-away: #ffd200;

/// @group Skype Status Colors
/// @type Color
$ms-status-busy: #c72d25;

/// @group Skype Status Colors
/// @type Color
$ms-status-invisible: #b6cfd8;



/// @group Microsoft Logo Colors
/// @type Color
$ms-logo-red: #f25022;

/// @group Microsoft Logo Colors
/// @type Color
$ms-logo-green: #7fba00;

/// @group Microsoft Logo Colors
/// @type Color
$ms-logo-blue: #00a4ef;

/// @group Microsoft Logo Colors
/// @type Color
/// @see ms-gold-400
$ms-logo-yellow: $ms-gold-400;



/// @group Xbox Colors
/// @link https://msdn.microsoft.com/en-us/windows/uwp/style/color#xbox-accent-colors Xbox accent colors in Windows Dev Center
/// @type Color
$ms-xbox-yellow: #e88c10;

/// @group Xbox Colors
/// @link https://msdn.microsoft.com/en-us/windows/uwp/style/color#xbox-accent-colors Xbox accent colors in Windows Dev Center
/// @type Color
$ms-xbox-orange: #eb4910;

/// @group Xbox Colors
/// @link https://msdn.microsoft.com/en-us/windows/uwp/style/color#xbox-accent-colors Xbox accent colors in Windows Dev Center
/// @type Color
$ms-xbox-red: #e31123;

/// @group Xbox Colors
/// @link https://msdn.microsoft.com/en-us/windows/uwp/style/color#xbox-accent-colors Xbox accent colors in Windows Dev Center
/// @type Color
$ms-xbox-brick: #a21025;

/// @group Xbox Colors
/// @link https://msdn.microsoft.com/en-us/windows/uwp/style/color#xbox-accent-colors Xbox accent colors in Windows Dev Center
/// @type Color
$ms-xbox-pink: #ed5588;

/// @group Xbox Colors
/// @link https://msdn.microsoft.com/en-us/windows/uwp/style/color#xbox-accent-colors Xbox accent colors in Windows Dev Center
/// @type Color
$ms-xbox-magenta: #bf1077;

/// @group Xbox Colors
/// @link https://msdn.microsoft.com/en-us/windows/uwp/style/color#xbox-accent-colors Xbox accent colors in Windows Dev Center
/// @type Color
$ms-xbox-lavender: #b144c0;

/// @group Xbox Colors
/// @link https://msdn.microsoft.com/en-us/windows/uwp/style/color#xbox-accent-colors Xbox accent colors in Windows Dev Center
/// @type Color
$ms-xbox-purple: #744da9;

/// @group Xbox Colors
/// @link https://msdn.microsoft.com/en-us/windows/uwp/style/color#xbox-accent-colors Xbox accent colors in Windows Dev Center
/// @type Color
$ms-xbox-blue: #1073d6;

/// @group Xbox Colors
/// @link https://msdn.microsoft.com/en-us/windows/uwp/style/color#xbox-accent-colors Xbox accent colors in Windows Dev Center
/// @type Color
$ms-xbox-navy: #193e91;

/// @group Xbox Colors
/// @link https://msdn.microsoft.com/en-us/windows/uwp/style/color#xbox-accent-colors Xbox accent colors in Windows Dev Center
/// @type Color
$ms-xbox-sky: #1081ca;

/// @group Xbox Colors
/// @link https://msdn.microsoft.com/en-us/windows/uwp/style/color#xbox-accent-colors Xbox accent colors in Windows Dev Center
/// @type Color
$ms-xbox-slate: #677488;

/// @group Xbox Colors
/// @link https://msdn.microsoft.com/en-us/windows/uwp/style/color#xbox-accent-colors Xbox accent colors in Windows Dev Center
/// @type Color
$ms-xbox-sage: #108272;

/// @group Xbox Colors
/// @link https://msdn.microsoft.com/en-us/windows/uwp/style/color#xbox-accent-colors Xbox accent colors in Windows Dev Center
/// @type Color
$ms-xbox-forrest: #148282;

/// @group Xbox Colors
/// @link https://msdn.microsoft.com/en-us/windows/uwp/style/color#xbox-accent-colors Xbox accent colors in Windows Dev Center
/// @type Color
$ms-xbox-lime: #54a81b;

/// @group Xbox Colors
/// @link https://msdn.microsoft.com/en-us/windows/uwp/style/color#xbox-accent-colors Xbox accent colors in Windows Dev Center
/// @type Color
$ms-xbox-camo: #547a72;

/// @group Xbox Colors
/// @link https://msdn.microsoft.com/en-us/windows/uwp/style/color#xbox-accent-colors Xbox accent colors in Windows Dev Center
/// @type Color
$ms-xbox-tan: #7e715c;

/// @group Xbox Colors
/// @link https://msdn.microsoft.com/en-us/windows/uwp/style/color#xbox-accent-colors Xbox accent colors in Windows Dev Center
/// @type Color
$ms-xbox-brown: #724f2f;

/// @group Xbox Colors
/// @link https://msdn.microsoft.com/en-us/windows/uwp/style/color#xbox-accent-colors Xbox accent colors in Windows Dev Center
/// @type Color
$ms-xbox-green: #107c10;

/// @group Xbox Colors
/// @link https://msdn.microsoft.com/en-us/windows/uwp/style/color#xbox-accent-colors Xbox accent colors in Windows Dev Center
/// @type Color
$ms-xbox-gray: #737373;

/// @group Xbox Colors
/// @link https://msdn.microsoft.com/en-us/windows/uwp/style/color#xbox-accent-colors Xbox accent colors in Windows Dev Center
/// @type Color
$ms-xbox-dark: #4c4a4b;

/// @group Xbox Colors
/// @link https://msdn.microsoft.com/en-us/windows/uwp/style/color#xbox-accent-colors Xbox accent colors in Windows Dev Center
/// @type Map
/// @example
///     $accent: map-get($ms-xbox, yellow);
///     // (Same as $ms-xbox-yellow)
$ms-xbox: (
    yellow: $ms-xbox-yellow,
    orange: $ms-xbox-orange,
    red: $ms-xbox-red,
    brick: $ms-xbox-brick,
    pink: $ms-xbox-pink,
    magenta: $ms-xbox-magenta,
    lavender: $ms-xbox-lavender,
    purple: $ms-xbox-purple,
    blue: $ms-xbox-blue,
    navy: $ms-xbox-navy,
    sky: $ms-xbox-sky,
    slate: $ms-xbox-slate,
    sage: $ms-xbox-sage,
    forrest: $ms-xbox-forrest,
    lime: $ms-xbox-lime,
    camo: $ms-xbox-camo,
    tan: $ms-xbox-tan,
    brown: $ms-xbox-brown,
    green: $ms-xbox-green,
    gray: $ms-xbox-gray,
    dark: $ms-xbox-dark
);



/// Windows 10 toast notification background color
/// @group Windows 10 Colors
/// @type Color
$ms-win-toast: #464646;

/// Windows 10 toast notification border color
/// @group Windows 10 Colors
/// @type Color
$ms-win-toast-border: #404040;

/// @group Windows 10 Colors
/// @type Map
/// @link https://msdn.microsoft.com/en-us/windows/uwp/style/color
/// @todo Create Windows 10 color map, similar to `$ms-xbox`. Add more Windows 10 colors.
$ms-win: ();



/// @group Zune
/// @type Color
$ms-zune-pink: #f10da2;

/// @group Zune
/// @type Color
$ms-zune-orange: #fd5d11;

/// @group Zune
/// @type Color
$ms-zune-blue: #1370bb;

/// Background color used in Zune app's default skin
/// @group Zune
/// @type Color
$ms-zune-light: #fdfdfd;

/// Dark background used in Zune's _Quickplay_ tab.
/// @group Zune
/// @type Color
$ms-zune-dark: #11090f;

/// @group Zune
/// @type Color
$ms-zune-text: #e9e9e9;

/// @group Zune
/// @type Color
$ms-zune-muted: #828689;

/// Zune logo gradient
/// @group Zune
/// @type String
/// @link http://colorzilla.com/gradient-editor/#e95216+0,f10da2+100 Get CSS gradient vendor prefixes for `$ms-zune-gradient`
/// @example
///     .zune {
///         background-image: $ms-zune-gradient;
///     }
$ms-zune-gradient: linear-gradient(to bottom, $ms-zune-pink 0%, $ms-zune-orange 100%);

/// Zune HD gradient
/// @group Zune
/// @type String
/// @link http://colorzilla.com/gradient-editor/#e95216+2,e95216+2,f10da2+50,1370bb+98 Get CSS gradient vendor prefixes for `$ms-zune-hd-gradient`
/// @example
///     .zune-hd {
///         background-image: $ms-zune-hd-gradient;
///     }
$ms-zune-hd-gradient: linear-gradient(135deg, $ms-zune-orange 2%, $ms-zune-blue 50%, $ms-zune-orange 98%);

/// Subtle gradient seen in background of Zune dialogs
/// @group Zune
/// @type String
/// @link http://colorzilla.com/gradient-editor/#e95216+2,e95216+2,f10da2+50,1370bb+98 Get CSS gradient vendor prefixes for `$ms-zune-hd-gradient`
/// @example
///     .zune-hd {
///         background-image: $ms-zune-hd-gradient;
///     }
$ms-zune-background-gradient: linear-gradient(135deg, #200319 0%, #21303a 60%, #07192a 100%); // scss-lint:disable ColorVariable

/// @group Zune
/// @type Map
/// @link
/// @example
///     $cute-zune: map-get($ms-zune, pink);
///     // (Same as $ms-zune-pink)
$ms-zune: (
    pink: $ms-zune-pink,
    orange: $ms-zune-orange,
    blue: $ms-zune-blue,
    light: $ms-zune-light,
    dark: $ms-zune-dark,
    text: $ms-zune-text,
    muted: $ms-zune-muted
);



/// Excel's "Good" cell color
/// @group Excel
/// @type Color
$ms-excel-good: #c6efce;

/// Excel's "Bad" cell color
/// @group Excel
/// @type Color
$ms-excel-bad: #ffc7ce;

/// Excel's "Neutral" cell color
/// @group Excel
/// @type Color
$ms-excel-neutral: #ffeb9c;

/// Excel's "Note" cell color
/// @group Excel
/// @type Color
$ms-excel-note: #ffc;

/// Excel's "Check Cell" cell color
/// @group Excel
/// @type Color
$ms-excel-check: #a5a5a5;

/// @group Excel
/// @type Color
$ms-excel-accent-cyan: #4bacc6;

/// @group Excel
/// @type Color
$ms-excel-accent-blue: #4f81bd;

/// @group Excel
/// @type Color
$ms-excel-accent-purple: #8064a2;

/// @group Excel
/// @type Color
$ms-excel-accent-red: #c0504d;

/// @group Excel
/// @type Color
$ms-excel-accent-orange: #f79646;

/// @group Excel
/// @type Color
$ms-excel-accent-green: #9bbb59;



// By Jason Gardner
// https://github.com/jasonjgardner/microsoft-scss-colors

================================================
FILE: docs/_sass/settings/_settings.global.scss
================================================
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
/*------------------------------------*\
  #GLOBAL SETTINGS
\*------------------------------------*/


// Spacing aliases

$spacing:       $inuit-global-spacing-unit;
$spacing-tiny:  $inuit-global-spacing-unit-tiny;
$spacing-small: $inuit-global-spacing-unit-small;
$spacing-large: $inuit-global-spacing-unit-large;
$spacing-huge:  $inuit-global-spacing-unit-huge;

================================================
FILE: docs/app/css/sanddance-app-site.css
================================================
html,
body {
    height: 100%;
    margin: 0;
}

body {
    display: grid;
    font-family: 'Segoe UI', sans-serif;
    grid-template-rows: auto 0fr;
}
select,
button,
input {
    font-family: 'Segoe UI', sans-serif;
}

header {
    border-bottom: 1px solid #ccc;
    font-size: smaller;
    padding: 5px 1em;
}

footer {
    border-top: 1px solid #ccc;
    font-size: smaller;
    padding: 5px 1em;
}


================================================
FILE: docs/app/css/sanddance-app.css
================================================
.sanddance-app-static-content {
  display: none;
}

.sanddance-app {
  display: grid;
  grid-template-rows: 100% 0;
  height: 100%;
}

.sanddance-export .ms-Button {
  margin-bottom: 1em;
  margin-top: 0.5em;
}

.sanddance-datasource-picker {
  width: 100%;
}

.sanddance-root {
  height: 100%;
  position: relative;
  width: 100%;
}

.sanddance-gl {
  overflow: hidden;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.sanddance-gl.show-center {
  background: linear-gradient(to right, transparent 49.9%, rgba(255, 0, 0, 0.7), transparent 50.1%), linear-gradient(to bottom, transparent 49.9%, rgba(255, 0, 0, 0.7), transparent 50.1%);
}

.sanddance-gl canvas {
  outline: none;
}

.sanddance-panel {
  position: absolute;
  top: 1em;
  right: 1em;
  bottom: 1em;
  background: #fff;
  box-shadow: 8px 8px 12px -6px #ccc;
  border: 1px solid #ccc;
  overflow-y: scroll;
  padding-bottom: 1em;
  padding-left: 1em;
}

.sanddance-legend table {
  border-collapse: collapse;
}

.sanddance-legend th {
  word-break: break-word;
  max-width: 11em;
}

.sanddance-legend .legend-row {
  cursor: pointer;
}

.sanddance-legend .legend-row td {
  padding: 2px;
}

.sanddance-legend .legend-row:hover {
  background-color: #efefef;
}

.sanddance-legend .symbol div {
  border-style: outset;
  border-width: 1.5px;
}

.sanddance-legend .label {
  max-width: 9em;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}

.sanddance-details {
  font-size: smaller;
}

.sanddance-details-scroll {
  padding-bottom: 1em;
}

.sanddance-tooltip {
  z-index: 1;
}

.sanddance-tooltip table {
  background: #333;
  color: #fff;
  font-size: smaller;
  margin: 1em;
  min-width: 16em;
  padding: 6px;
  position: absolute;
}

.sanddance-tooltip td {
  max-width: 16em;
  overflow: hidden;
  text-align: left;
  text-overflow: ellipsis;
  vertical-align: top;
  width: 75%;
}

.sanddance-tooltip td:first-child {
  width: 25%;
}

.sanddance-scheme.disabled {
  filter: grayscale(95%);
}

.sanddance-scheme.option {
  display: grid;
  grid-template-columns: 10em auto;
  width: 100%;
}

.sanddance-scheme.title {
  justify-content: flex-start;
}

.sanddance-scheme span {
  align-self: center;
}

.sanddance-scheme svg, .sanddance-scheme .swatch {
  align-self: center;
  border: thin solid #777;
  height: 24px;
}

.sanddance-scheme svg {
  width: 100%;
}

.sanddance-scheme .swatch div {
  display: inline-block;
  width: 10px;
  height: 24px;
}

.sanddance-explorer-topbar {
  background-color: #fff;
  border-bottom: 1px solid #ccc;
  display: grid;
  grid-template-columns: 300px auto;
  height: 36px;
}

.sanddance-explorer-topbar .logo {
  color: rgb(0, 120, 212);
  display: grid;
  grid-template-columns: 50px auto;
  padding: 6px 0;
}

.sanddance-explorer-topbar .logo svg {
  fill: rgb(0, 120, 212);
  height: 24px;
  margin: 0 auto;
  width: 24px;
}

.sanddance-explorer-topbar .logo a {
  color: inherit;
  font-size: 14px;
  font-weight: bold;
  line-height: 24px;
  text-decoration: none;
}

.sanddance-explorer-commandbar {
  position: relative;
}

.sanddance-explorer-commandbar > div {
  left: 0;
  position: absolute;
  right: 0;
}

.sanddance-explorer-commandbar .ms-CommandBar {
  height: 36px;
}

.dark-theme .sanddance-explorer-topbar {
  background-color: #000;
}

.dark-theme .sanddance-explorer-topbar .logo {
  color: #00b4f0;
}

.sanddance-group {
  border-top: 1px solid #ccc;
  padding-bottom: 1.5em;
  position: relative;
}

.sanddance-group .group-head {
  display: grid;
  grid-template-columns: auto auto;
  line-height: 16px;
  margin: 1em 0;
}

.sanddance-group .group-head label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 3px;
  opacity: 0.8;
  text-transform: uppercase;
}

.sanddance-group .group-head .count {
  color: #333;
  font-size: 12px;
  text-align: right;
}

.sanddance-group .group-icon {
  position: absolute;
  top: -1px;
  right: 0;
}

.sanddance-group:first-child {
  border-top: none;
}

.sanddance-group:first-child .group-head {
  margin-top: 0;
}

.sanddance-group:last-child {
  padding-bottom: 0;
}

.sanddance-sidebar {
  background-color: #f9f9f9;
  display: grid;
  overflow: hidden;
  position: relative;
  transition: width 350ms cubic-bezier(0.4, 0, 0.2, 1);
  width: 300px;
}

.sanddance-sidebar:not(.pinned) {
  bottom: 0;
  position: absolute;
  top: 0;
}

.sanddance-sidebar .sidebar-content {
  background-color: inherit;
  display: grid;
  grid-template-areas: "stats stats" "tabs bar";
  grid-template-columns: 50px auto;
  grid-template-rows: 0fr auto;
  height: 100%;
  overflow: hidden;
  position: absolute;
  z-index: 1;
}

.sanddance-sidebar .vbuttons {
  background-color: rgba(0, 0, 0, 0.1);
  display: grid;
  grid-area: tabs;
  grid-template-rows: auto 0fr;
  position: relative;
}

.sanddance-sidebar .vbutton {
  align-self: center;
  display: grid;
  height: 60px;
}

.sanddance-sidebar .vbutton.selected {
  background-color: #f9f9f9;
}

.sanddance-sidebar .vbutton button {
  height: 100%;
  width: 100%;
}

.sanddance-sidebar .vbutton button .ms-Button-icon {
  font-size: 20px;
}

.sanddance-sidebar .sidebar-dialogs .vbutton {
  height: 16.6666666667%;
  max-height: 60px;
  min-height: 32px;
}

.sanddance-sidebar .scrollable-container {
  width: 250px;
}

.sanddance-sidebar .sidetab {
  grid-area: bar;
  padding: 12px;
}

.sanddance-sidebar.closed {
  width: 50px;
}

.sanddance-sidebar.calculator .calculating {
  background: rgba(249, 249, 249, 0.5);
  height: 100%;
  position: absolute;
  top: 0;
  width: 100%;
}

.sanddance-sidebar.calculator .ms-Spinner {
  margin-top: -16px;
  position: relative;
  top: 50%;
}

.dark-theme .sanddance-sidebar {
  background-color: #272727;
  color: #fff;
}

.dark-theme .sanddance-sidebar .vbuttons {
  background-color: rgba(0, 0, 0, 0.4);
}

.dark-theme .sanddance-sidebar .vbutton.selected {
  background-color: #272727;
}

.dark-theme .sanddance-sidebar.calculator .calculating {
  background: rgba(39, 39, 39, 0.5);
}

.sanddance-chart-type .ms-ChoiceFieldGroup-flexContainer {
  display: grid;
  grid-template-columns: repeat(2, 50%);
  grid-auto-flow: column;
  grid-template-rows: repeat(4, auto);
}

.sanddance-datascope {
  grid-area: stats;
  background-color: rgba(0, 0, 0, 0.05);
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  min-height: 5em;
}

.sanddance-datascope.extended > div {
  margin: 12px;
  width: 276px;
}

.sanddance-datascope label {
  display: block;
  font-size: 10px;
  text-transform: uppercase;
}

.sanddance-datascope.compact {
  align-self: center;
  cursor: pointer;
  display: grid;
  text-align: center;
  width: 50px;
}

.sanddance-datascope.compact > div {
  align-self: center;
}

.sanddance-datascope .datascope-button {
  background-color: #fff;
  border: 1px solid rgba(0, 0, 0, 0.2);
  box-sizing: border-box;
  height: 36px;
  min-width: unset;
  width: 33.333%;
}

.sanddance-datascope .datascope-button:hover {
  background-color: rgb(0, 120, 212);
  color: #fff;
}

.sanddance-datascope .datascope-button label {
  cursor: inherit;
}

.sanddance-datascope.active .datascope-button.selected {
  border-color: rgb(0, 120, 212);
}

.dark-theme .sanddance-datascope {
  background-color: rgba(0, 0, 0, 0.3);
  border-bottom-color: rgba(255, 255, 255, 0.1);
}

.dark-theme .sanddance-datascope .datascope-button {
  background-color: #000;
  border-color: rgba(255, 255, 255, 0.2);
  color: #fff;
}

.dark-theme .sanddance-datascope .datascope-button:hover {
  background-color: rgb(0, 120, 212);
  color: #fff;
}

.sanddance-dataItem {
  background-color: #fff;
  border: 1px solid #ddd;
}

.sanddance-dataItem .name-value {
  border-top: 1px solid #ddd;
  cursor: pointer;
  padding: 4px;
  position: relative;
  word-break: break-all;
}

.sanddance-dataItem .name-value:hover {
  background-color: rgb(0, 120, 212);
  color: #fff;
}

.sanddance-dataItem .name-value:first-child {
  border-top: none;
}

.sanddance-dataItem .column-name {
  font-weight: 500;
}

.sanddance-dataItem .column-value {
  max-height: 20em;
  overflow: auto;
}

.sanddance-dataItem .bing-search {
  text-align: right;
}

.dark-theme .sanddance-dataItem {
  background-color: #000;
  border-color: #222;
}

.dark-theme .sanddance-dataItem .name-value {
  border-top-color: #222;
}

.dark-theme .sanddance-dataItem a {
  color: #00b4f0;
}

.sanddance-dataIndex .index {
  display: grid;
  grid-template-columns: 32px auto 32px;
  line-height: 32px;
  margin: 0px -8px 6px -8px;
  text-align: center;
}

.sanddance-dataIndex .item-filtered {
  background-color: rgba(0, 0, 0, 0.1);
  font-size: 10px;
  padding: 2px 4px;
  text-transform: uppercase;
}

.sanddance-dataIndex .ms-Dropdown-container {
  margin-bottom: 0.5em;
}

.sanddance-dataIndex button {
  margin-top: 1em;
}

.scrollable-container {
  display: grid;
  min-height: 200px;
  position: relative;
}

.scrollable {
  bottom: 0;
  left: 0;
  position: absolute;
  right: 0;
  overflow-y: auto;
  top: 0;
}

.sanddance-search .sanddance-search-group {
  border: 1px solid rgba(0, 0, 0, 0.2);
}

.sanddance-search .sanddance-search-group {
  background: #fff;
  margin-top: 1em;
  padding: 4px;
}

.sanddance-search .sanddance-search-group:first-child {
  margin-top: 0;
}

.sanddance-search .sanddance-search-expression {
  background-color: rgba(0, 0, 0, 0.1);
  margin: 12px 4px;
  padding: 4px 8px 8px 8px;
}

.sanddance-search .search-action {
  width: 100%;
}

.sanddance-search .search-bottom-action {
  margin-top: 1em;
}

.sanddance-search .search-field {
  margin-top: 4px;
}

.dark-theme .sanddance-search .sanddance-search-group {
  border-color: rgba(255, 255, 255, 0.2);
  background: #000;
}

.dark-theme .sanddance-search .sanddance-search-expression {
  background-color: rgba(255, 255, 255, 0.2);
}

.sanddance-snapshots .ms-Button {
  margin-bottom: 0.5em;
}

.sanddance-snapshots .snapshot {
  border: 1px solid rgba(0, 0, 0, 0.2);
  cursor: pointer;
  margin-bottom: 0.5em;
  padding: 5px;
}

.sanddance-snapshots .snapshot.selected {
  border-color: rgba(0, 0, 0, 0.6);
  border-width: 2px;
  padding: 4px;
}

.sanddance-snapshots .snapshot:hover {
  background-color: rgba(0, 0, 0, 0.1);
}

.sanddance-snapshots .snapshot:first-child {
  margin-top: 0.5em;
}

.sanddance-snapshots .title {
  font-weight: 500;
  word-break: break-word;
}

.sanddance-snapshots .description {
  font-weight: 100;
  word-break: break-word;
}

.sanddance-snapshots .thumbnail {
  display: grid;
  height: 160px;
  margin-top: 0.5em;
}

.sanddance-snapshots img {
  height: 100%;
  object-fit: contain;
  width: 100%;
}

.sanddance-snapshots .actions {
  display: grid;
  grid-auto-flow: column;
}

.sanddance-snapshots .actions a, .sanddance-snapshots .actions span {
  align-self: center;
  text-align: center;
}

.sanddance-snapshots .actions button {
  width: 100%;
}

.sanddance-snapshot-dialog .thumbnail {
  border: 1px solid rgba(0, 0, 0, 0.2);
  display: grid;
  height: 300px;
  margin-top: 1em;
}

.sanddance-snapshot-dialog img {
  height: 100%;
  object-fit: contain;
  width: 100%;
}

.dark-theme .sanddance-snapshots .snapshot {
  background-color: rgba(0, 0, 0, 0.6);
  border-color: rgba(255, 255, 255, 0.2);
}

.dark-theme .sanddance-snapshots .snapshot.selected {
  border-color: rgba(255, 255, 255, 0.6);
}

.dark-theme .sanddance-snapshots .snapshot:hover {
  background-color: rgb(0, 0, 0);
}

.dark-theme .sanddance-snapshots .actions a {
  color: #fff;
}

.dark-theme.sanddance-snapshot-dialog .thumbnail {
  border-color: rgba(255, 255, 255, 0.2);
}

.sanddance-history ol {
  padding-left: 20px;
}

.sanddance-history li {
  border: 1px solid transparent;
  cursor: pointer;
}

.sanddance-history li.selected {
  font-weight: bold;
}

.sanddance-history-button {
  background: none;
  border: 0;
  font-size: inherit;
  font-style: inherit;
  font-weight: inherit;
  height: unset;
  padding: 3px 4px;
  text-align: left;
  width: 100%;
}

.sanddance-history-button .ms-Button-label {
  display: inline;
  font-weight: inherit;
  margin: 0;
}

.sanddance-note {
  background-color: #fffacd;
  border: 1px solid #333;
  box-shadow: 8px 8px 12px -6px #ccc;
  color: #333;
  margin: 1em;
  padding: 20px;
  position: absolute;
  width: 15em;
  word-break: break-word;
}

.sanddance-note .cancel {
  position: absolute;
  right: -1px;
  top: -1px;
}

.sanddance-note .cancel i {
  color: #333;
}

.sanddance-columnMap {
  position: relative;
}

.sanddance-columnMap .ms-Dropdown-container {
  margin-top: 10px;
}

.sanddance-columnMap .column-options {
  bottom: 3px;
  position: absolute;
  right: 0;
}

.sanddance-columnMap-absolute {
  margin-bottom: 1em;
  margin-left: -4em;
  margin-right: 1em;
  margin-top: -1em;
}

.sanddance-columnMap-absolute .ms-Dropdown-container {
  margin-top: 0;
}

.sanddance-tooltip {
  z-index: 2;
}

.sanddance-chart-button {
  display: block;
  margin-top: 10px;
}

.sanddance-columnTypes {
  max-height: 20em;
  overflow: scroll;
}

.sanddance-columnTypes th, .sanddance-columnTypes td {
  padding: 0 5px;
}

.sanddance-columnTypes td, .sanddance-columnTypes button {
  height: 18px;
}

.sanddance-columnTypes tr.changed {
  text-decoration: line-through;
}

.sanddance-dialog ul {
  margin: 0;
}

.sanddance-dialog section {
  margin-top: 1em;
}

.sanddance-dialog section:first-child {
  margin-top: 0;
}

.sanddance-dialog .tip {
  font-style: italic;
}

.sanddance-explorer {
  display: grid;
  font-family: "Segoe UI", sans-serif;
  font-size: 13px;
  grid-template-rows: 0fr auto;
}

.sanddance-explorer.dark-theme {
  background-color: black;
}

.sanddance-explorer.dark-theme canvas {
  background-color: black;
}

.sanddance-main {
  display: grid;
  position: relative;
  transition: grid-template-columns 350ms cubic-bezier(0.4, 0, 0.2, 1);
}

.sanddance-main .loading {
  grid-row-end: span 2;
  position: relative;
}

.sanddance-main .loading .ms-Spinner {
  position: absolute;
  top: 50%;
  width: 100%;
}

.sanddance-main .sanddance-view {
  display: grid;
  position: relative;
  margin-left: 50px;
}

.sanddance-main .sanddance-layout-unpinned, .sanddance-main .sanddance-layout-pinned {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.sanddance-main.hide-legend .sanddance-layout-unpinned, .sanddance-main.hide-legend .sanddance-layout-pinned {
  right: 0;
}

.sanddance-main .sanddance-layout-pinned {
  left: 300px;
}

.sanddance-main .sanddance-ReactViewer {
  overflow: hidden;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
}

.sanddance-main.hide-legend .sanddance-ReactViewer {
  left: 0;
}

.sanddance-main.show-center .sanddance-layout-unpinned, .sanddance-main.show-center .sanddance-layout-pinned {
  background: linear-gradient(to right, transparent 49%, rgba(255, 0, 255, 0.2), transparent 51%);
  background-color: rgba(0, 255, 255, 0.1);
}

.sanddance-main.pinned {
  grid-template-columns: 300px auto;
  grid-template-areas: "side main";
}

.sanddance-main.pinned .sanddance-view {
  grid-area: main;
  margin-left: 0;
}

.sanddance-main.pinned .loading {
  grid-area: main;
  grid-row-end: unset;
}

.sanddance-main.pinned .sanddance-slidePanel {
  grid-area: side;
}

.sanddance-main.pinned.closed {
  grid-template-columns: 0 auto;
}

.sanddance-main.pinned.closed .sanddance-view {
  margin-left: 50px;
}

.sanddance-main span.ms-layer {
  display: none;
}

.sanddance-advanced-renderer {
  height: 36px;
  position: absolute;
  right: 0;
  top: 0;
  width: 40px;
}

.sanddance-renderer-dialog ul {
  list-style-type: none;
  padding-left: 2em;
}

.sanddance-background-image-dialog {
  min-width: 32em;
}

.sanddance-background-image-dialog .thumbnail {
  border-bottom: 1px solid #ccc;
  display: grid;
  grid-template-columns: auto auto;
  padding-bottom: 1em;
}

.sanddance-background-image-dialog .thumbnail > * {
  align-self: center;
}

.sanddance-background-image-dialog .thumbnail img {
  margin-right: 1em;
  max-height: 160px;
  max-width: 16em;
  object-fit: contain;
}

.sanddance-background-image-dialog .axis-bounds {
  border-bottom: 1px solid #ccc;
  padding-bottom: 1em;
}

.sanddance-background-image-dialog .axis-bound-fields {
  display: grid;
  column-gap: 1em;
  grid-template-columns: auto auto;
  margin-bottom: 1em;
}

#sanddance-vega-spec {
  border: 1px inset;
  max-height: 20em;
  overflow: scroll;
}

.sanddance-panel {
  top: 5em;
  bottom: unset;
  overflow-y: unset;
  padding-right: 1em;
  padding-top: 32px;
}

.sanddance-panel h4,
.sanddance-panel .sanddance-vegaControls,
.sanddance-panel .sanddance-unitControls {
  display: none;
}

.sanddance-main.hide-legend .sanddance-panel {
  display: none;
}

.sanddance-panel-tools {
  position: absolute;
  top: 0;
  right: 0;
}

.sanddance-legend {
  min-width: 54px;
}

.sanddance-explanation {
  font-size: smaller;
  font-style: italic;
  margin-bottom: 1em;
}

.sanddance-explanation .fieldname,
.sanddance-explanation .fieldtype {
  font-style: italic;
}

.sanddance-signal {
  margin-top: 1em;
}

.sanddance-legend th {
  color: #005a9e;
  cursor: pointer;
}

.sanddance-legend th:hover {
  background-color: rgba(43, 136, 216, 0.3333333333);
}

.sanddance-legend .legend-row:hover {
  background-color: rgb(0, 120, 212);
  color: #fff;
}

.sanddance-form-separate {
  margin-top: 1em;
}

.dark-theme .sanddance-dialog a {
  color: #00b4f0;
}

.dark-theme .sanddance-panel {
  background-color: #000;
  color: #fff;
}

.dark-theme .sanddance-legend th {
  color: #3ac5f3;
}

.dark-theme .sanddance-legend th:hover {
  color: #009ed3;
}


.sanddance-sidebar .sanddance-datascope {
  min-height: 7em;
}

/*# sourceMappingURL=sanddance-app.css.map */


================================================
FILE: docs/app/index.html
================================================
---
---
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>SandDance</title>
    <link rel="stylesheet" type="text/css" href="css/sanddance-app.css">
    <link rel="stylesheet" type="text/css" href="css/sanddance-app-site.css?2">
    <link rel="shortcut icon" href="../favicon.ico" />
</head>

<body>
    <!-- link to JSON files so we can get a url from the bundler -->
    <a class="sanddance-app-static-content" id="demovote" data-display-name="Demo Vote" data-type="tsv"
        href="../sample-data/demovote.tsv"></a>
    <a class="sanddance-app-static-content" id="titanic" data-display-name="Titanic" data-type="tsv"
        href="../sample-data/titanicmaster.tsv"></a>

    <script>
        function setTheme(darkTheme) {
            localStorage.setItem('theme', darkTheme ? 'Dark' : 'Light');
        }
        var darkTheme = localStorage.getItem('theme') === 'Dark';
        var insights = {
            "titanic": {
                "columns": {
                    "uid": "Name",
                    "x": "Gender",
                    "y": "Joined",
                    "color": "Survived",
                    "z": "TicketCost",
                    "sort": "Survived"
                },
                "scheme": "dual_redgreen",
                "chart": "barchart",
                "view": "2d"
            },
            "demovote": {
                "columns": {
                    "uid": "Id",
                    "x": "Longitude",
                    "y": "Latitude",
                    "color": "Obama",
                    "z": "Education",
                    "sort": "State"
                },
                "scheme": "redblue",
                "chart": "scatterplot",
                "view": "2d",
                "colorBin": "quantize"
            }
        };
        var options = {
            "*": {
                "chartPrefs": {
                    "*": {
                        "*": {
                            "*": {
                                "signalValues": {
                                    "RoleColor_BinCountSignal": 7
                                }
                            }
                        }
                    }
                }
            },
            "titanic": {
                "chartPrefs": {
                    "barchart": {
                        "color": {
                            "Gender": {
                     
Download .txt
gitextract_7ww1rax1/

├── .github/
│   └── workflows/
│       └── codeql.yml
├── .gitignore
├── .vscode/
│   ├── launch.json
│   ├── settings.json
│   └── tasks.json
├── LICENSE
├── README.md
├── SECURITY.md
├── azure-pipelines.yml
├── dev.md
├── docker-jekyll-local/
│   ├── Dockerfile
│   ├── README.md
│   └── docker-compose.yml
├── docs/
│   ├── Gemfile
│   ├── _config.yml
│   ├── _data/
│   │   ├── apitree.json
│   │   ├── outlines.json
│   │   └── tree.json
│   ├── _includes/
│   │   └── footer-links.html
│   ├── _layouts/
│   │   ├── api.html
│   │   ├── default.html
│   │   ├── docs.html
│   │   ├── page.html
│   │   └── typedoc.html
│   ├── _sass/
│   │   ├── components/
│   │   │   ├── _components.breadcrumbs.scss
│   │   │   ├── _components.buttons.scss
│   │   │   ├── _components.page-content.scss
│   │   │   ├── _components.page-foot.scss
│   │   │   ├── _components.page-head.scss
│   │   │   ├── _components.page-main.scss
│   │   │   ├── _components.site-nav.scss
│   │   │   └── _components.tree.scss
│   │   ├── elements/
│   │   │   ├── _elements.code.scss
│   │   │   ├── _elements.headings.scss
│   │   │   ├── _elements.hr.scss
│   │   │   ├── _elements.links.scss
│   │   │   ├── _elements.page.scss
│   │   │   └── _elements.tables.scss
│   │   ├── generic/
│   │   │   └── _generic.syntax-highlight.scss
│   │   ├── inuitcss/
│   │   │   ├── LICENSE
│   │   │   ├── elements/
│   │   │   │   ├── _elements.headings.scss
│   │   │   │   ├── _elements.images.scss
│   │   │   │   ├── _elements.page.scss
│   │   │   │   └── _elements.tables.scss
│   │   │   ├── generic/
│   │   │   │   ├── _generic.box-sizing.scss
│   │   │   │   ├── _generic.normalize.scss
│   │   │   │   ├── _generic.reset.scss
│   │   │   │   └── _generic.shared.scss
│   │   │   ├── objects/
│   │   │   │   ├── _objects.block.scss
│   │   │   │   ├── _objects.box.scss
│   │   │   │   ├── _objects.crop.scss
│   │   │   │   ├── _objects.flag.scss
│   │   │   │   ├── _objects.layout.scss
│   │   │   │   ├── _objects.list-bare.scss
│   │   │   │   ├── _objects.list-inline.scss
│   │   │   │   ├── _objects.media.scss
│   │   │   │   ├── _objects.pack.scss
│   │   │   │   ├── _objects.ratio.scss
│   │   │   │   ├── _objects.table.scss
│   │   │   │   └── _objects.wrapper.scss
│   │   │   ├── settings/
│   │   │   │   └── _settings.core.scss
│   │   │   ├── tools/
│   │   │   │   ├── _tools.clearfix.scss
│   │   │   │   ├── _tools.font-size.scss
│   │   │   │   └── _tools.hidden.scss
│   │   │   └── utilities/
│   │   │       ├── _utilities.clearfix.scss
│   │   │       ├── _utilities.headings.scss
│   │   │       ├── _utilities.hide.scss
│   │   │       ├── _utilities.print.scss
│   │   │       ├── _utilities.responsive-spacings.scss
│   │   │       ├── _utilities.spacings.scss
│   │   │       └── _utilities.widths.scss
│   │   ├── sass-mq/
│   │   │   ├── LICENSE.md
│   │   │   └── _mq.scss
│   │   └── settings/
│   │       ├── _settings.colors.scss
│   │       └── _settings.global.scss
│   ├── app/
│   │   ├── css/
│   │   │   ├── sanddance-app-site.css
│   │   │   └── sanddance-app.css
│   │   ├── index.html
│   │   └── js/
│   │       └── sanddance-app.js
│   ├── assets/
│   │   ├── css/
│   │   │   ├── main.scss
│   │   │   └── typedoc.css
│   │   └── js/
│   │       └── main.js
│   ├── dist/
│   │   ├── azdata/
│   │   │   ├── v3/
│   │   │   │   └── azdata-sanddance-3.3.0.vsix
│   │   │   └── v4/
│   │   │       ├── azdata-sanddance-4.0.0.vsix
│   │   │       ├── azdata-sanddance-4.0.1.vsix
│   │   │       ├── azdata-sanddance-4.0.2.vsix
│   │   │       ├── azdata-sanddance-4.0.3.vsix
│   │   │       ├── azdata-sanddance-4.1.0.vsix
│   │   │       └── azdata-sanddance-4.1.1.vsix
│   │   ├── powerbi/
│   │   │   ├── v3/
│   │   │   │   └── SandDance201929976D117A654D0BAB8E96507442D80B.3.2.0.pbiviz
│   │   │   └── v4/
│   │   │       ├── SandDance201929976D117A654D0BAB8E96507442D80B.4.0.0.pbiviz
│   │   │       ├── SandDance201929976D117A654D0BAB8E96507442D80B.4.1.0.pbiviz
│   │   │       ├── SandDance201929976D117A654D0BAB8E96507442D80B.4.1.1.pbiviz
│   │   │       ├── SandDance201929976D117A654D0BAB8E96507442D80B.4.1.2.0.pbix
│   │   │       ├── SandDance201929976D117A654D0BAB8E96507442D80B.4.1.2.pbiviz
│   │   │       ├── SandDance201929976D117A654D0BAB8E96507442D80B.4.2.0.0.pbiviz
│   │   │       ├── SandDance201929976D117A654D0BAB8E96507442D80B.4.2.0.1.pbiviz
│   │   │       ├── SandDance201929976D117A654D0BAB8E96507442D80B.4.2.0.2.pbiviz
│   │   │       ├── SandDance2019beta4.4.0.0.pbiviz
│   │   │       ├── SandDance2019beta4.4.0.1.pbiviz
│   │   │       ├── SandDance2019beta4.4.0.2.pbiviz
│   │   │       ├── SandDance2019beta4.4.0.3.pbiviz
│   │   │       ├── SandDance2019beta4.4.0.4.pbiviz
│   │   │       ├── SandDance2019beta4.4.0.5.pbiviz
│   │   │       ├── SandDance2019beta4.4.0.6.pbiviz
│   │   │       ├── SandDance2019beta4.4.0.7.pbiviz
│   │   │       ├── SandDance2019beta4.4.0.8.pbiviz
│   │   │       └── SandDance2019beta4.4.0.9.pbiviz
│   │   ├── sanddance/
│   │   │   ├── v1/
│   │   │   │   ├── sanddance.css
│   │   │   │   └── sanddance.js
│   │   │   ├── v2/
│   │   │   │   ├── sanddance.css
│   │   │   │   └── sanddance.js
│   │   │   ├── v3/
│   │   │   │   ├── sanddance.css
│   │   │   │   └── sanddance.js
│   │   │   └── v4/
│   │   │       ├── sanddance.css
│   │   │       └── sanddance.js
│   │   ├── sanddance-explorer/
│   │   │   ├── v1/
│   │   │   │   ├── sanddance-explorer.css
│   │   │   │   └── sanddance-explorer.js
│   │   │   ├── v2/
│   │   │   │   ├── sanddance-explorer.css
│   │   │   │   └── sanddance-explorer.js
│   │   │   ├── v3/
│   │   │   │   ├── sanddance-explorer.css
│   │   │   │   └── sanddance-explorer.js
│   │   │   └── v4/
│   │   │       ├── sanddance-explorer.css
│   │   │       └── sanddance-explorer.js
│   │   ├── sanddance-react/
│   │   │   └── v4/
│   │   │       └── sanddance-react.js
│   │   ├── vega-deck.gl/
│   │   │   ├── v2/
│   │   │   │   └── vega-deck.gl.js
│   │   │   └── v3/
│   │   │       └── vega-deck.gl.js
│   │   ├── vega-morphcharts/
│   │   │   └── v1/
│   │   │       └── vega-morphcharts.js
│   │   └── vscode/
│   │       ├── v3/
│   │       │   └── vscode-sanddance-3.3.0.vsix
│   │       └── v4/
│   │           ├── vscode-sanddance-4.0.0-beta.0.vsix
│   │           ├── vscode-sanddance-4.0.0-beta.1.vsix
│   │           ├── vscode-sanddance-4.0.0-beta.2.vsix
│   │           ├── vscode-sanddance-4.0.0.vsix
│   │           ├── vscode-sanddance-4.0.1.vsix
│   │           ├── vscode-sanddance-4.0.2.vsix
│   │           ├── vscode-sanddance-4.0.3.vsix
│   │           ├── vscode-sanddance-4.0.4.vsix
│   │           ├── vscode-sanddance-4.1.0.vsix
│   │           └── vscode-sanddance-4.2.0.vsix
│   ├── docs/
│   │   ├── changelog.md
│   │   ├── contributing.md
│   │   └── index.md
│   ├── embed/
│   │   ├── v1/
│   │   │   └── sanddance-embed.html
│   │   ├── v2/
│   │   │   ├── sanddance-embed-privacy-footer.html
│   │   │   └── sanddance-embed.html
│   │   ├── v3/
│   │   │   └── sanddance-embed.html
│   │   └── v4/
│   │       ├── dynamic/
│   │       │   ├── target.html
│   │       │   └── test.html
│   │       ├── sanddance-embed.html
│   │       └── test.html
│   ├── examples/
│   │   ├── index.md
│   │   └── v3.md
│   ├── external/
│   │   └── js/
│   │       ├── react-dom.development.js
│   │       └── react.development.js
│   ├── index.html
│   ├── sample-data/
│   │   ├── demovote.tsv
│   │   └── titanicmaster.tsv
│   ├── tests/
│   │   ├── data-inference/
│   │   │   ├── v1/
│   │   │   │   ├── index.html
│   │   │   │   └── js/
│   │   │   │       └── data-inference.js
│   │   │   └── v2/
│   │   │       ├── index.html
│   │   │       └── js/
│   │   │           └── data-inference.js
│   │   ├── sanddance-specs/
│   │   │   ├── v1/
│   │   │   │   ├── index.html
│   │   │   │   ├── js/
│   │   │   │   │   ├── index.js
│   │   │   │   │   └── sanddance-specs.js
│   │   │   │   └── specs/
│   │   │   │       ├── column-categoric.json
│   │   │   │       ├── column-facet-cross.json
│   │   │   │       ├── column-facet-wrap.json
│   │   │   │       ├── column-sum-strip-pct.json
│   │   │   │       ├── column-sum-strip.json
│   │   │   │       ├── column-sum-treemap.json
│   │   │   │       ├── column.json
│   │   │   │       ├── density-facet-cross.json
│   │   │   │       ├── density-facet-wrap.json
│   │   │   │       ├── density-treemap.json
│   │   │   │       ├── density.json
│   │   │   │       ├── scatter-facet-cross.json
│   │   │   │       ├── scatter-facet-wrap-with-image.json
│   │   │   │       ├── scatter-facet-wrap.json
│   │   │   │       ├── scatter-with-image.json
│   │   │   │       ├── scatter.json
│   │   │   │       ├── stacks-facet-cross.json
│   │   │   │       ├── stacks-facet-wrap-with-image.json
│   │   │   │       ├── stacks-facet-wrap.json
│   │   │   │       ├── stacks-with-image.json
│   │   │   │       └── stacks.json
│   │   │   └── v2/
│   │   │       ├── index.html
│   │   │       ├── js/
│   │   │       │   ├── index.js
│   │   │       │   └── sanddance-specs.js
│   │   │       └── specs/
│   │   │           ├── column-categoric.json
│   │   │           ├── column-facet-cross.json
│   │   │           ├── column-facet-wrap.json
│   │   │           ├── column-sum-strip-pct.json
│   │   │           ├── column-sum-strip.json
│   │   │           ├── column-sum-treemap.json
│   │   │           ├── column.json
│   │   │           ├── density-facet-cross.json
│   │   │           ├── density-facet-wrap.json
│   │   │           ├── density-treemap.json
│   │   │           ├── density.json
│   │   │           ├── scatter-facet-cross.json
│   │   │           ├── scatter-facet-wrap-with-image.json
│   │   │           ├── scatter-facet-wrap.json
│   │   │           ├── scatter-with-image.json
│   │   │           ├── scatter.json
│   │   │           ├── stacks-facet-cross.json
│   │   │           ├── stacks-facet-wrap-with-image.json
│   │   │           ├── stacks-facet-wrap.json
│   │   │           ├── stacks-with-image.json
│   │   │           └── stacks.json
│   │   ├── v2/
│   │   │   ├── es6/
│   │   │   │   ├── css/
│   │   │   │   │   └── sanddance.css
│   │   │   │   ├── js/
│   │   │   │   │   └── sanddance.js
│   │   │   │   └── sanddance.html
│   │   │   └── umd/
│   │   │       ├── chromaticTextTest.html
│   │   │       ├── css/
│   │   │       │   ├── test.css
│   │   │       │   ├── transition.css
│   │   │       │   └── vega-deck.gl.test.css
│   │   │       ├── cubeTest.html
│   │   │       ├── js/
│   │   │       │   ├── chromaticTextTest.js
│   │   │       │   ├── cubeTest.js
│   │   │       │   ├── qualBarChartTest.js
│   │   │       │   ├── quanBarChartTest.js
│   │   │       │   ├── scatterplotTest.js
│   │   │       │   ├── test.js
│   │   │       │   ├── transition.js
│   │   │       │   ├── treeMapTest.js
│   │   │       │   └── vega-deck.gl.test.js
│   │   │       ├── qualBarChartTest.html
│   │   │       ├── quanBarChartTest.html
│   │   │       ├── scatterplotTest.html
│   │   │       ├── specs/
│   │   │       │   ├── scatter3D.json
│   │   │       │   └── titanic.json
│   │   │       ├── test.html
│   │   │       ├── transition.html
│   │   │       ├── treeMapTest.html
│   │   │       └── vega-deck.gl.test.html
│   │   ├── v3/
│   │   │   ├── es6/
│   │   │   │   ├── app.html
│   │   │   │   ├── css/
│   │   │   │   │   ├── sanddance-app-site.css
│   │   │   │   │   ├── sanddance-app.css
│   │   │   │   │   └── sanddance-test-es6.css
│   │   │   │   ├── js/
│   │   │   │   │   ├── sanddance-app.js
│   │   │   │   │   └── sanddance-test-es6.js
│   │   │   │   └── sanddance-test-es6.html
│   │   │   └── umd/
│   │   │       ├── css/
│   │   │       │   ├── test.css
│   │   │       │   ├── transition.css
│   │   │       │   └── vega-deck.gl.test.css
│   │   │       ├── cubeTest.html
│   │   │       ├── embed.html
│   │   │       ├── js/
│   │   │       │   ├── cubeTest.js
│   │   │       │   ├── qualBarChartTest.js
│   │   │       │   ├── quanBarChartTest.js
│   │   │       │   ├── scatterplotTest.js
│   │   │       │   ├── test.js
│   │   │       │   ├── transforms.js
│   │   │       │   ├── transition.js
│   │   │       │   ├── treeMapTest.js
│   │   │       │   └── vega-deck.gl.test.js
│   │   │       ├── qualBarChartTest.html
│   │   │       ├── quanBarChartTest.html
│   │   │       ├── sanddance-specs.html
│   │   │       ├── scatterplotTest.html
│   │   │       ├── specs/
│   │   │       │   ├── scatter3D.json
│   │   │       │   └── titanic.json
│   │   │       ├── test.html
│   │   │       ├── transforms.html
│   │   │       ├── transition.html
│   │   │       ├── treeMapTest.html
│   │   │       └── vega-deck.gl.test.html
│   │   └── v4/
│   │       ├── es6/
│   │       │   ├── app.html
│   │       │   ├── css/
│   │       │   │   ├── sanddance-app-site.css
│   │       │   │   ├── sanddance-app.css
│   │       │   │   ├── sanddance-test-es6.css
│   │       │   │   └── vega-morphcharts-test-es6.css
│   │       │   ├── js/
│   │       │   │   ├── sanddance-app.js
│   │       │   │   ├── sanddance-test-es6.js
│   │       │   │   └── vega-morphcharts-test-es6.js
│   │       │   ├── sanddance-test-es6.html
│   │       │   └── vega-morphcharts-test-es6.html
│   │       └── umd/
│   │           ├── css/
│   │           │   ├── test.css
│   │           │   ├── transition.css
│   │           │   └── vega-morphcharts.test.css
│   │           ├── embed.html
│   │           ├── js/
│   │           │   ├── qualBarChartTest.js
│   │           │   ├── quanBarChartTest.js
│   │           │   ├── scatterplotTest.js
│   │           │   ├── test.js
│   │           │   ├── transforms.js
│   │           │   ├── transition.js
│   │           │   ├── treeMapTest.js
│   │           │   └── vega-morphcharts.test.js
│   │           ├── qualBarChartTest.html
│   │           ├── quanBarChartTest.html
│   │           ├── sanddance-react.html
│   │           ├── sanddance-specs.html
│   │           ├── scatterplotTest.html
│   │           ├── specs/
│   │           │   ├── scatter3D.json
│   │           │   └── titanic.json
│   │           ├── test.html
│   │           ├── transforms.html
│   │           ├── transition.html
│   │           ├── treeMapTest.html
│   │           └── vega-morphcharts.test.html
│   └── tutorial/
│       └── index.md
├── eslint.config.mjs
├── extensions/
│   ├── azdata-sanddance/
│   │   ├── .gitattributes
│   │   ├── .gitignore
│   │   ├── .vscode/
│   │   │   ├── settings.json
│   │   │   └── tasks.json
│   │   ├── .vscodeignore
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── scripts/
│   │   │   └── deploy.js
│   │   ├── sql.bat
│   │   ├── sql.sh
│   │   ├── src/
│   │   │   ├── azdata.proposed.d.ts
│   │   │   ├── extension.ts
│   │   │   └── mssqlapis.d.ts
│   │   ├── tsconfig.json
│   │   └── webpack.config.js
│   ├── common-backend/
│   │   ├── .gitignore
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── html.ts
│   │   │   ├── index.ts
│   │   │   └── panel.ts
│   │   └── tsconfig.json
│   ├── common-frontend/
│   │   ├── .gitignore
│   │   ├── package.json
│   │   ├── scripts/
│   │   │   └── resources.js
│   │   ├── src/
│   │   │   ├── app.tsx
│   │   │   ├── css/
│   │   │   │   └── app.scss
│   │   │   ├── fluentUI-icons.d.ts
│   │   │   ├── fluentUI.d.ts
│   │   │   ├── interfaces.d.ts
│   │   │   ├── language.ts
│   │   │   └── sanddance-explorer.d.ts
│   │   ├── test/
│   │   │   └── sanddance-test.html
│   │   └── tsconfig.json
│   └── vscode-sanddance/
│       ├── .gitattributes
│       ├── .gitignore
│       ├── .vscode/
│       │   ├── settings.json
│       │   └── tasks.json
│       ├── .vscodeignore
│       ├── CHANGELOG.md
│       ├── LICENSE
│       ├── README.md
│       ├── package.json
│       ├── scripts/
│       │   └── deploy.js
│       ├── src/
│       │   └── extension.ts
│       ├── tsconfig.json
│       └── webpack.config.js
├── package.json
├── packages/
│   ├── chart-recommender/
│   │   ├── .gitignore
│   │   ├── .mocharc.json
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── barChart.ts
│   │   │   ├── geo.ts
│   │   │   ├── index.ts
│   │   │   ├── recommender.ts
│   │   │   ├── recommenderSummary.ts
│   │   │   ├── scatterPlot.ts
│   │   │   └── treemap.ts
│   │   ├── test/
│   │   │   ├── mocha.opts
│   │   │   └── recommend.mjs
│   │   ├── test-data/
│   │   │   ├── test1.tsv
│   │   │   ├── test2.tsv
│   │   │   ├── test3.tsv
│   │   │   ├── test4.tsv
│   │   │   └── test5.tsv
│   │   └── tsconfig.json
│   ├── chart-types/
│   │   ├── .gitignore
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── column.ts
│   │   │   ├── dimensions.ts
│   │   │   ├── index.ts
│   │   │   ├── stats.ts
│   │   │   └── view.ts
│   │   └── tsconfig.json
│   ├── data-inference/
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── rollup.config.mjs
│   │   ├── scripts/
│   │   │   └── deploy.js
│   │   ├── src/
│   │   │   ├── color.ts
│   │   │   ├── index.ts
│   │   │   ├── inference.ts
│   │   │   ├── numeric.ts
│   │   │   ├── stats.ts
│   │   │   └── summary.ts
│   │   ├── test/
│   │   │   ├── index.ts
│   │   │   └── pandas.ipynb
│   │   └── tsconfig.json
│   ├── fluentui-icons/
│   │   ├── README.md
│   │   ├── config/
│   │   │   └── fabric-icons.json
│   │   ├── css/
│   │   │   ├── fabric-icons-inline.css
│   │   │   └── fabric-icons.css
│   │   ├── fabric-icons.html
│   │   ├── package.json
│   │   ├── rollup.config.mjs
│   │   ├── scripts/
│   │   │   └── prebuild.js
│   │   ├── scss/
│   │   │   ├── fabric-icons-inline.scss
│   │   │   └── fabric-icons.scss
│   │   ├── src/
│   │   │   ├── fabric-icons.ts
│   │   │   ├── fabric_icons_4ac17eec.ts
│   │   │   └── index.ts
│   │   └── tsconfig.json
│   ├── fluentui-react-cdn-typings/
│   │   ├── LICENSE
│   │   ├── index.d.ts
│   │   ├── package.json
│   │   └── types.d.ts
│   ├── powerbi/
│   │   ├── .gitignore
│   │   ├── .vscode/
│   │   │   ├── launch.json
│   │   │   └── settings.json
│   │   ├── capabilities.json
│   │   ├── package.json
│   │   ├── pbiviz.json
│   │   ├── scripts/
│   │   │   ├── deploy.js
│   │   │   └── version.js
│   │   ├── src/
│   │   │   ├── app.ts
│   │   │   ├── cleanInsight.ts
│   │   │   ├── convertFilter.ts
│   │   │   ├── convertTableToObjectArray.ts
│   │   │   ├── fluentUIComponents.ts
│   │   │   ├── fontfix.ts
│   │   │   ├── language.ts
│   │   │   ├── logView.tsx
│   │   │   ├── settings.ts
│   │   │   ├── version.ts
│   │   │   └── visual.ts
│   │   ├── style/
│   │   │   └── visual.less
│   │   └── tsconfig.json
│   ├── sanddance/
│   │   ├── .gitignore
│   │   ├── LICENSE
│   │   ├── README-DEV.md
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── rollup.config.mjs
│   │   ├── scripts/
│   │   │   └── deploy.js
│   │   ├── src/
│   │   │   ├── animator.ts
│   │   │   ├── array.ts
│   │   │   ├── axisSelection.ts
│   │   │   ├── characterSet.ts
│   │   │   ├── colorCubes.ts
│   │   │   ├── colorSchemes.ts
│   │   │   ├── constants.ts
│   │   │   ├── css/
│   │   │   │   └── sanddance.scss
│   │   │   ├── dataScope.ts
│   │   │   ├── date.ts
│   │   │   ├── defaults.ts
│   │   │   ├── details.tsx
│   │   │   ├── expression.ts
│   │   │   ├── headers.ts
│   │   │   ├── index.ts
│   │   │   ├── legend.ts
│   │   │   ├── ordinal.ts
│   │   │   ├── search.ts
│   │   │   ├── signals.ts
│   │   │   ├── tooltip.tsx
│   │   │   ├── transition.ts
│   │   │   ├── types.ts
│   │   │   ├── util.ts
│   │   │   ├── version.ts
│   │   │   └── viewer.ts
│   │   └── tsconfig.json
│   ├── sanddance-app/
│   │   ├── .gitignore
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── scripts/
│   │   │   └── deploy.js
│   │   ├── src/
│   │   │   ├── base.ts
│   │   │   ├── css/
│   │   │   │   └── sanddance-app.scss
│   │   │   ├── dataSourcePicker.tsx
│   │   │   ├── download.ts
│   │   │   ├── fluentUIComponents.ts
│   │   │   ├── index.tsx
│   │   │   ├── language.ts
│   │   │   ├── sanddanceApp.tsx
│   │   │   ├── snapshots.tsx
│   │   │   ├── types.ts
│   │   │   └── url.ts
│   │   ├── tsconfig.json
│   │   ├── vite.config.js
│   │   └── vite.dev.config.js
│   ├── sanddance-embed/
│   │   ├── .gitignore
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── css/
│   │   │   │   └── sanddance-embed.scss
│   │   │   ├── deps.ts
│   │   │   ├── gen/
│   │   │   │   ├── gen.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── prepare.ts
│   │   │   ├── sanddance-embed.ts
│   │   │   └── types/
│   │   │       ├── deps.d.ts
│   │   │       ├── fluentUI-icons.d.ts
│   │   │       ├── fluentUI.d.ts
│   │   │       ├── message-request.d.ts
│   │   │       ├── message-response.d.ts
│   │   │       └── sanddance-explorer.d.ts
│   │   ├── test/
│   │   │   ├── dynamic-deps/
│   │   │   │   ├── target.html
│   │   │   │   └── test.html
│   │   │   ├── standalone/
│   │   │   │   └── test.html
│   │   │   └── static-deps/
│   │   │       ├── target.html
│   │   │       └── test.html
│   │   └── tsconfig.json
│   ├── sanddance-explorer/
│   │   ├── .gitignore
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── bundle/
│   │   │   └── umd.js
│   │   ├── package.json
│   │   ├── scripts/
│   │   │   ├── deploy.js
│   │   │   └── prebuild.js
│   │   ├── src/
│   │   │   ├── base.ts
│   │   │   ├── canvas.ts
│   │   │   ├── clickableTextLayer.tsx
│   │   │   ├── colorMap.tsx
│   │   │   ├── colorScheme.ts
│   │   │   ├── columns.ts
│   │   │   ├── controls/
│   │   │   │   ├── CommandBarButton.styles.ts
│   │   │   │   ├── button.tsx
│   │   │   │   ├── columnMap.tsx
│   │   │   │   ├── columnTypeChanger.tsx
│   │   │   │   ├── dataExporter.tsx
│   │   │   │   ├── dataExporterHtml.ts
│   │   │   │   ├── dataItem.tsx
│   │   │   │   ├── dataScope.tsx
│   │   │   │   ├── dialog.tsx
│   │   │   │   ├── dropdown.tsx
│   │   │   │   ├── group.tsx
│   │   │   │   ├── iconButton.tsx
│   │   │   │   ├── index.ts
│   │   │   │   ├── logo.tsx
│   │   │   │   ├── renderer.tsx
│   │   │   │   ├── scrollable.tsx
│   │   │   │   ├── searchTerm.tsx
│   │   │   │   ├── sideButton.tsx
│   │   │   │   ├── sidebar.tsx
│   │   │   │   ├── signal.tsx
│   │   │   │   ├── textfield.tsx
│   │   │   │   ├── toggleColumns.tsx
│   │   │   │   └── topbar.tsx
│   │   │   ├── css/
│   │   │   │   ├── color.scss
│   │   │   │   ├── columnMap.scss
│   │   │   │   ├── dataIndex.scss
│   │   │   │   ├── dataItem.scss
│   │   │   │   ├── dataScope.scss
│   │   │   │   ├── group.scss
│   │   │   │   ├── history.scss
│   │   │   │   ├── note.scss
│   │   │   │   ├── palette.scss
│   │   │   │   ├── sanddance-explorer.scss
│   │   │   │   ├── scrollable.scss
│   │   │   │   ├── search.scss
│   │   │   │   ├── sidebar.scss
│   │   │   │   ├── snapshots.scss
│   │   │   │   └── topbar.scss
│   │   │   ├── dataLoader.ts
│   │   │   ├── defaults.ts
│   │   │   ├── dialogs/
│   │   │   │   ├── backgroundImageEditor.tsx
│   │   │   │   ├── chart.tsx
│   │   │   │   ├── color.tsx
│   │   │   │   ├── dataBrowser.tsx
│   │   │   │   ├── history.tsx
│   │   │   │   ├── search.tsx
│   │   │   │   ├── settings.tsx
│   │   │   │   ├── snapshotEditor.tsx
│   │   │   │   ├── snapshots.tsx
│   │   │   │   └── transition.tsx
│   │   │   ├── explorer.tsx
│   │   │   ├── exportDelimited.ts
│   │   │   ├── index.ts
│   │   │   ├── interfaces.ts
│   │   │   ├── keycodes.ts
│   │   │   ├── language.ts
│   │   │   ├── mouseEvent.ts
│   │   │   ├── palettes/
│   │   │   │   ├── categorical.tsx
│   │   │   │   ├── cyclical.tsx
│   │   │   │   ├── diverging.tsx
│   │   │   │   ├── dual.tsx
│   │   │   │   ├── index.tsx
│   │   │   │   ├── scheme.ts
│   │   │   │   ├── sequentialMultiHue.tsx
│   │   │   │   └── sequentialSingleHue.tsx
│   │   │   ├── partialInsight.ts
│   │   │   ├── searchGroups.ts
│   │   │   ├── themes.ts
│   │   │   └── version.ts
│   │   ├── tsconfig.json
│   │   └── vite.config.js
│   ├── sanddance-react/
│   │   ├── .gitignore
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── rollup.config.mjs
│   │   ├── scripts/
│   │   │   └── deploy.js
│   │   ├── src/
│   │   │   ├── base.ts
│   │   │   ├── css/
│   │   │   │   └── sanddance-react.scss
│   │   │   ├── index.ts
│   │   │   ├── util.ts
│   │   │   ├── version.ts
│   │   │   └── viewer.tsx
│   │   ├── test/
│   │   │   ├── index.html
│   │   │   ├── index.tsx
│   │   │   └── tsconfig.json
│   │   └── tsconfig.json
│   ├── sanddance-specs/
│   │   ├── .gitignore
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── rollup.config.mjs
│   │   ├── scripts/
│   │   │   └── deploy.js
│   │   ├── src/
│   │   │   ├── axes.ts
│   │   │   ├── bin.ts
│   │   │   ├── build.ts
│   │   │   ├── charts/
│   │   │   │   ├── barchartH.ts
│   │   │   │   ├── barchartV.ts
│   │   │   │   ├── density.ts
│   │   │   │   ├── grid.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── scatterplot.ts
│   │   │   │   ├── stacks.ts
│   │   │   │   ├── strips.ts
│   │   │   │   └── treemap.ts
│   │   │   ├── color.ts
│   │   │   ├── constants.ts
│   │   │   ├── defaults.ts
│   │   │   ├── expr.ts
│   │   │   ├── facetLayout.ts
│   │   │   ├── facetSearch.ts
│   │   │   ├── facetTitle.ts
│   │   │   ├── fill.ts
│   │   │   ├── globalScope.ts
│   │   │   ├── image.ts
│   │   │   ├── index.ts
│   │   │   ├── inference.ts
│   │   │   ├── insight.ts
│   │   │   ├── interfaces.ts
│   │   │   ├── layouts/
│   │   │   │   ├── aggregateContainer.ts
│   │   │   │   ├── aggregateSquare.ts
│   │   │   │   ├── band.ts
│   │   │   │   ├── cross.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── layout.ts
│   │   │   │   ├── scatter.ts
│   │   │   │   ├── square.ts
│   │   │   │   ├── stack.ts
│   │   │   │   ├── strip.ts
│   │   │   │   ├── treemap.ts
│   │   │   │   └── wrap.ts
│   │   │   ├── legends.ts
│   │   │   ├── ordinal.ts
│   │   │   ├── scales.ts
│   │   │   ├── scope.ts
│   │   │   ├── selection.ts
│   │   │   ├── signals.ts
│   │   │   ├── size.ts
│   │   │   ├── specBuilder.ts
│   │   │   ├── top.ts
│   │   │   ├── transforms.ts
│   │   │   ├── types.ts
│   │   │   └── zBase.ts
│   │   ├── test/
│   │   │   ├── demo.js
│   │   │   └── perf.js
│   │   ├── tsconfig.json
│   │   └── uitest/
│   │       ├── chart-types.d.ts
│   │       ├── index.ts
│   │       ├── tsconfig.json
│   │       └── vega.d.ts
│   ├── sanddance-test-es6/
│   │   ├── .gitignore
│   │   ├── package.json
│   │   ├── src/
│   │   │   └── sanddance-test-es6.ts
│   │   ├── tsconfig.json
│   │   └── vite.config.js
│   ├── sanddance-test-umd/
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── qualBarChartTest.ts
│   │   │   ├── quanBarChartTest.ts
│   │   │   ├── scatterplotTest.ts
│   │   │   ├── test.ts
│   │   │   ├── transforms.ts
│   │   │   ├── transition.ts
│   │   │   ├── treeMapTest.ts
│   │   │   ├── vega-morphcharts.test.ts
│   │   │   └── vega.d.ts
│   │   └── tsconfig.json
│   ├── search-expression/
│   │   ├── .gitignore
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── compare.ts
│   │   │   ├── exec.ts
│   │   │   ├── group.ts
│   │   │   ├── index.ts
│   │   │   ├── invert.ts
│   │   │   ├── narrow.ts
│   │   │   └── types.ts
│   │   └── tsconfig.json
│   ├── vega-deck.gl/
│   │   ├── .gitignore
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── alias/
│   │   │   ├── deck-external.js
│   │   │   ├── luma-external.js
│   │   │   └── react-external.js
│   │   ├── package.json
│   │   ├── rollup.config.mjs
│   │   ├── scripts/
│   │   │   └── deploy.js
│   │   ├── src/
│   │   │   ├── array.ts
│   │   │   ├── base.ts
│   │   │   ├── clone.ts
│   │   │   ├── color.ts
│   │   │   ├── constants.ts
│   │   │   ├── controls.tsx
│   │   │   ├── cube-layer/
│   │   │   │   ├── cube-layer-fragment.glsl.ts
│   │   │   │   ├── cube-layer-vertex.glsl.ts
│   │   │   │   └── cube-layer.ts
│   │   │   ├── deck.gl-classes/
│   │   │   │   ├── deckgl.ts
│   │   │   │   ├── linearInterpolator.ts
│   │   │   │   └── orbitController.ts
│   │   │   ├── defaults.ts
│   │   │   ├── easing.ts
│   │   │   ├── effects.ts
│   │   │   ├── enums.ts
│   │   │   ├── exports/
│   │   │   │   ├── controls.ts
│   │   │   │   ├── types.ts
│   │   │   │   └── util.ts
│   │   │   ├── htmlHelpers.ts
│   │   │   ├── index.ts
│   │   │   ├── interfaces.ts
│   │   │   ├── layers.ts
│   │   │   ├── legend.tsx
│   │   │   ├── marks/
│   │   │   │   ├── area.ts
│   │   │   │   ├── interfaces.ts
│   │   │   │   ├── legend.ts
│   │   │   │   ├── line.ts
│   │   │   │   ├── rect.ts
│   │   │   │   ├── rule.ts
│   │   │   │   └── text.ts
│   │   │   ├── panel.tsx
│   │   │   ├── patchedCubeArray.ts
│   │   │   ├── presenter.ts
│   │   │   ├── stagers.ts
│   │   │   ├── vega-classes/
│   │   │   │   ├── rendererGl.ts
│   │   │   │   └── viewGl.ts
│   │   │   ├── viewState.ts
│   │   │   └── zaxis.ts
│   │   ├── test/
│   │   │   ├── cubelayer/
│   │   │   │   ├── cubeTest.css
│   │   │   │   ├── cubeTest.html
│   │   │   │   └── cubeTest.ts
│   │   │   └── vegaspec/
│   │   │       ├── vega-deck.gl.test.css
│   │   │       ├── vega-deck.gl.test.html
│   │   │       └── vega-deck.gl.test.ts
│   │   └── tsconfig.json
│   ├── vega-morphcharts/
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── rollup.config.mjs
│   │   ├── scripts/
│   │   │   └── deploy.js
│   │   ├── src/
│   │   │   ├── array.ts
│   │   │   ├── base.ts
│   │   │   ├── clone.ts
│   │   │   ├── color.ts
│   │   │   ├── controls.tsx
│   │   │   ├── defaults.ts
│   │   │   ├── easing.ts
│   │   │   ├── enums.ts
│   │   │   ├── exports/
│   │   │   │   ├── controls.ts
│   │   │   │   ├── types.ts
│   │   │   │   └── util.ts
│   │   │   ├── htmlHelpers.ts
│   │   │   ├── index.ts
│   │   │   ├── interfaces.ts
│   │   │   ├── legend.tsx
│   │   │   ├── marks/
│   │   │   │   ├── image.ts
│   │   │   │   ├── interfaces.ts
│   │   │   │   ├── legend.ts
│   │   │   │   ├── line.ts
│   │   │   │   ├── rect.ts
│   │   │   │   ├── rule.ts
│   │   │   │   └── text.ts
│   │   │   ├── morphcharts/
│   │   │   │   ├── axes.ts
│   │   │   │   ├── bounds.ts
│   │   │   │   ├── camera.ts
│   │   │   │   ├── canvas.ts
│   │   │   │   ├── color.ts
│   │   │   │   ├── cubes.ts
│   │   │   │   ├── defaults.ts
│   │   │   │   ├── image.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── init.ts
│   │   │   │   ├── lines.ts
│   │   │   │   ├── render.ts
│   │   │   │   ├── renderer.ts
│   │   │   │   └── text.ts
│   │   │   ├── panel.tsx
│   │   │   ├── patchedCubeArray.ts
│   │   │   ├── presenter.ts
│   │   │   ├── stagers.ts
│   │   │   ├── transition.ts
│   │   │   ├── vega-classes/
│   │   │   │   ├── rendererGl.ts
│   │   │   │   └── viewGl.ts
│   │   │   └── version.ts
│   │   ├── test/
│   │   │   ├── tsconfig.json
│   │   │   └── vegaspec/
│   │   │       ├── vega-morphcharts.test.css
│   │   │       ├── vega-morphcharts.test.html
│   │   │       └── vega-morphcharts.test.ts
│   │   ├── tsconfig.json
│   │   └── vite.dev.config.js
│   └── vega-morphcharts-test-es6/
│       ├── package.json
│       ├── src/
│       │   └── vega-morphcharts-test-es6.ts
│       ├── tsconfig.json
│       └── vite.config.js
├── powerbi.md
├── scripts/
│   ├── copy_inuitcss.js
│   ├── publish.mjs
│   ├── readme.js
│   ├── vega-version.mjs
│   └── version.js
└── test/
    ├── data-inference.html
    ├── sanddance-app-direct.html
    ├── sanddance-app.html
    └── sanddance-test-es6.html
Download .txt
Showing preview only (3,604K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (47846 symbols across 288 files)

FILE: docs/app/js/sanddance-app.js
  function _interopNamespaceDefault (line 5) | function _interopNamespaceDefault(e) {
  function allowNoneForSize (line 112) | function allowNoneForSize(specContext) {
  function barchartH (line 122) | function barchartH(specContext) {
  function barchartV (line 302) | function barchartV(specContext) {
  function density (line 481) | function density(specContext) {
  function grid (line 666) | function grid(specContext) {
  function scatterplot (line 720) | function scatterplot(specContext) {
  function stacks (line 790) | function stacks(specContext) {
  function strips (line 889) | function strips(specContext) {
  function treemap$1 (line 970) | function treemap$1(specContext) {
  function getFacetLayout (line 1050) | function getFacetLayout(facetStyle, facetColumn, facetVColumn, axisTextC...
  function getSpecBuilderPropsForChart (line 1118) | function getSpecBuilderPropsForChart(specContext) {
  function define2 (line 1146) | function define2(constructor, factory, prototype2) {
  function extend$1 (line 1150) | function extend$1(parent, definition2) {
  function Color$2 (line 1155) | function Color$2() {
  method copy (line 1311) | copy(channels) {
  method displayable (line 1314) | displayable() {
  function color_formatHex (line 1325) | function color_formatHex() {
  function color_formatHex8 (line 1328) | function color_formatHex8() {
  function color_formatHsl (line 1331) | function color_formatHsl() {
  function color_formatRgb (line 1334) | function color_formatRgb() {
  function color$2 (line 1337) | function color$2(format2) {
  function rgbn (line 1342) | function rgbn(n) {
  function rgba (line 1345) | function rgba(r, g, b2, a2) {
  function rgbConvert (line 1349) | function rgbConvert(o) {
  function rgb$1 (line 1355) | function rgb$1(r, g, b2, opacity2) {
  function Rgb (line 1358) | function Rgb(r, g, b2, opacity2) {
  method brighter (line 1365) | brighter(k) {
  method darker (line 1369) | darker(k) {
  method rgb (line 1373) | rgb() {
  method clamp (line 1376) | clamp() {
  method displayable (line 1379) | displayable() {
  function rgb_formatHex (line 1389) | function rgb_formatHex() {
  function rgb_formatHex8 (line 1392) | function rgb_formatHex8() {
  function rgb_formatRgb (line 1395) | function rgb_formatRgb() {
  function clampa (line 1399) | function clampa(opacity2) {
  function clampi (line 1402) | function clampi(value2) {
  function hex (line 1405) | function hex(value2) {
  function hsla (line 1409) | function hsla(h2, s2, l, a2) {
  function hslConvert (line 1415) | function hslConvert(o) {
  function hsl$1 (line 1433) | function hsl$1(h2, s2, l, opacity2) {
  function Hsl (line 1436) | function Hsl(h2, s2, l, opacity2) {
  method brighter (line 1443) | brighter(k) {
  method darker (line 1447) | darker(k) {
  method rgb (line 1451) | rgb() {
  method clamp (line 1460) | clamp() {
  method displayable (line 1463) | displayable() {
  method formatHsl (line 1466) | formatHsl() {
  function clamph (line 1471) | function clamph(value2) {
  function clampt (line 1475) | function clampt(value2) {
  function hsl2rgb (line 1478) | function hsl2rgb(h2, m1, m2) {
  function labConvert (line 1484) | function labConvert(o) {
  function lab$1 (line 1496) | function lab$1(l, a2, b2, opacity2) {
  function Lab (line 1499) | function Lab(l, a2, b2, opacity2) {
  method brighter (line 1506) | brighter(k) {
  method darker (line 1509) | darker(k) {
  method rgb (line 1512) | rgb() {
  function xyz2lab (line 1525) | function xyz2lab(t) {
  function lab2xyz (line 1528) | function lab2xyz(t) {
  function lrgb2rgb (line 1531) | function lrgb2rgb(x2) {
  function rgb2lrgb (line 1534) | function rgb2lrgb(x2) {
  function hclConvert (line 1537) | function hclConvert(o) {
  function hcl$1 (line 1544) | function hcl$1(h2, c2, l, opacity2) {
  function Hcl (line 1547) | function Hcl(h2, c2, l, opacity2) {
  function hcl2lab (line 1553) | function hcl2lab(o) {
  method brighter (line 1559) | brighter(k) {
  method darker (line 1562) | darker(k) {
  method rgb (line 1565) | rgb() {
  function cubehelixConvert (line 1570) | function cubehelixConvert(o) {
  function cubehelix$1 (line 1576) | function cubehelix$1(h2, s2, l, opacity2) {
  function Cubehelix (line 1579) | function Cubehelix(h2, s2, l, opacity2) {
  method brighter (line 1586) | brighter(k) {
  method darker (line 1590) | darker(k) {
  method rgb (line 1594) | rgb() {
  function isColor (line 1604) | function isColor(cssColorSpecifier) {
  function checkIsColorData (line 1607) | function checkIsColorData(data2, column) {
  function isQuantitative (line 1620) | function isQuantitative(column) {
  function detectNegative (line 1623) | function detectNegative(columnName, data2) {
  function detectSequentialColumn (line 1631) | function detectSequentialColumn(columnName, data2) {
  function getStats (line 1642) | function getStats(data2, ...args) {
  function getColumnsFromData (line 1709) | function getColumnsFromData(inferTypesFn, data2, columnTypes) {
  function inferAll (line 1723) | function inferAll(columns, data2) {
  method constructor (line 1739) | constructor(columns, rows, maxWidth = 80, underlineHeaders = false, alig...
  method createSpaces (line 1750) | createSpaces(num) {
  method groupColumns (line 1753) | groupColumns() {
  method formatRow (line 1773) | formatRow(row, group2) {
  method formatHeader (line 1780) | formatHeader(group2) {
  method underlineHeader (line 1786) | underlineHeader(group2) {
  method render (line 1789) | render() {
  function head (line 1819) | function head(columns, data2, maxWidth = 80) {
  function info2 (line 1832) | function info2(columns, data2, maxWidth = 80) {
  function getSpecColumns (line 1862) | function getSpecColumns(insight, columns) {
  function addAxes (line 1879) | function addAxes(scope, ...axes) {
  function addData (line 1886) | function addData(scope, ...datas) {
  function addMarks (line 1893) | function addMarks(scope, ...marks) {
  function addScales (line 1900) | function addScales(scope, ...scales2) {
  function addSignals (line 1907) | function addSignals(scope, ...signals) {
  function addTransforms (line 1914) | function addTransforms(data2, ...transforms2) {
  function getDataByName (line 1921) | function getDataByName(data2, dataName) {
  function getGroupBy (line 1927) | function getGroupBy(groupings) {
  function addOffsets (line 1931) | function addOffsets(...offsets2) {
  function addGlobalAxes (line 1934) | function addGlobalAxes(props) {
  function createAxis (line 1985) | function createAxis(props) {
  function safeFieldName (line 2020) | function safeFieldName(field2) {
  function exprSafeFieldName (line 2023) | function exprSafeFieldName(field2) {
  function linearScale (line 2026) | function linearScale(scaleName, domain2, range2, reverse2, zero2, nice2 ...
  function pointScale (line 2039) | function pointScale(scaleName, data2, range2, field2, reverse2) {
  function binnableColorScale (line 2056) | function binnableColorScale(scaleName, colorBin, data2, field2, scheme2) {
  function textSignals (line 2103) | function textSignals(context2, heightSignal) {
  function colorBinCountSignal (line 2181) | function colorBinCountSignal(context2) {
  function colorReverseSignal (line 2197) | function colorReverseSignal(context2) {
  function modifySignal (line 2209) | function modifySignal(s2, fn2, update2) {
  function legend (line 2212) | function legend(column, fill2) {
  function getLegends (line 2233) | function getLegends(context2, fill2) {
  function topLookup (line 2239) | function topLookup(column, count2, source2, legend2, lookupName, fieldNa...
  function addColor (line 2282) | function addColor(props) {
  function addFacetColRowTitles (line 2317) | function addFacetColRowTitles(globalScope, colTitleSource, rowTitleSourc...
  function addFacetCellTitles (line 2390) | function addFacetCellTitles(scope, sizeSignals, axisTextColor) {
  function addFacetAxesGroupMarks (line 2428) | function addFacetAxesGroupMarks(props) {
  function facetRowHeaderFooter (line 2481) | function facetRowHeaderFooter(data2, sizeSignals, index2) {
  function facetColumnHeaderFooter (line 2501) | function facetColumnHeaderFooter(data2, sizeSignals, index2) {
  function createSequence (line 2521) | function createSequence(dataName, countSignal) {
  function fill$1 (line 2535) | function fill$1(context2, colorFieldName, scale2) {
  function opacity (line 2547) | function opacity(context2) {
  class GlobalScope (line 2553) | class GlobalScope {
    method constructor (line 2554) | constructor(props) {
    method markDataName (line 2573) | get markDataName() {
    method setMarkDataName (line 2576) | setMarkDataName(markDataName) {
    method markGroup (line 2579) | get markGroup() {
    method setMarkGroup (line 2582) | setMarkGroup(markGroup) {
  class Layout (line 2586) | class Layout {
    method constructor (line 2587) | constructor(props) {
    method getGrouping (line 2591) | getGrouping() {
    method getAggregateSumOp (line 2594) | getAggregateSumOp() {
    method build (line 2597) | build() {
  function testForCollapseSelection (line 2601) | function testForCollapseSelection() {
  class AggregateContainer (line 2604) | class AggregateContainer extends Layout {
    method constructor (line 2605) | constructor(props) {
    method getAggregateSumOp (line 2619) | getAggregateSumOp() {
    method build (line 2629) | build() {
    method getTransforms (line 2715) | getTransforms(aggregation, groupby) {
    method getAggregation (line 2726) | getAggregation() {
  class AggregateSquare (line 2742) | class AggregateSquare extends Layout {
    method constructor (line 2743) | constructor(props) {
    method build (line 2755) | build() {
    method getTransforms (line 2796) | getTransforms(aggregation, groupby) {
  function dataExtent (line 2808) | function dataExtent(column, signal) {
  function binnable (line 2815) | function binnable(prefix, domainDataName, discreteColumn, outerSignalExt...
  function outerExtentSignal (line 2941) | function outerExtentSignal(name, min2, max2, dataExtent2) {
  function shouldBeIntegralBinStep (line 2947) | function shouldBeIntegralBinStep(column) {
  method constructor (line 2952) | constructor(props) {
  method getGrouping (line 2964) | getGrouping() {
  method build (line 2967) | build() {
  method getOffset (line 3047) | getOffset(horizontal, binField) {
  method getScale (line 3057) | getScale(bin2, horizontal) {
  function displayBin (line 3101) | function displayBin(bin2) {
  function obj (line 3105) | function obj(nameValues, clause) {
  function serializeAsVegaExpression (line 3108) | function serializeAsVegaExpression(bin2, firstFieldName, lastFieldName, ...
  function createOrdinals (line 3135) | function createOrdinals(source2, prefix, binFields, sortOrder) {
  function ordinalScale (line 3165) | function ordinalScale(dataName, scaleName, binFields) {
  method constructor (line 3180) | constructor(props) {
  method getGrouping (line 3196) | getGrouping() {
  method build (line 3199) | build() {
  method dimensionOffset (line 3360) | dimensionOffset(d2) {
  method constructor (line 3366) | constructor(props) {
  method build (line 3385) | build() {
  function addZScale (line 3569) | function addZScale(z2, zSize, dataName, zScaleName) {
  class Square (line 3579) | class Square extends Layout {
    method constructor (line 3580) | constructor(props) {
    method build (line 3593) | build() {
    method getBandWidth (line 3667) | getBandWidth() {
    method addSignals (line 3676) | addSignals() {
    method transformXY (line 3708) | transformXY(gap, levelSize, squaresPerBand) {
  method constructor (line 3745) | constructor(props) {
  method build (line 3766) | build() {
  class Strip (line 3940) | class Strip extends Layout {
    method constructor (line 3941) | constructor(props) {
    method build (line 3953) | build() {
  method constructor (line 4066) | constructor(props) {
  method build (line 4089) | build() {
  method transformedMark (line 4128) | transformedMark(offsets2) {
  method addMark (line 4191) | addMark(offsets2, markParent, markDataName) {
  method treemapTransform (line 4223) | treemapTransform(treemapData, widthSignal, heightSignal) {
  function fn (line 4255) | function fn(n) {
  function subtract$1 (line 4258) | function subtract$1(...fields) {
  class Wrap (line 4261) | class Wrap extends Layout {
    method constructor (line 4262) | constructor(props) {
    method getGrouping (line 4289) | getGrouping() {
    method build (line 4292) | build() {
  function getImageMark (line 4550) | function getImageMark(backgroundImage, allGlobalScales) {
  function getScaledSpan (line 4583) | function getScaledSpan(scaleName, low, high) {
  function getScaledValue (line 4586) | function getScaledValue(scaleName, value2) {
  class SpecBuilder (line 4589) | class SpecBuilder {
    method constructor (line 4590) | constructor(props, specContext) {
    method validate (line 4609) | validate() {
    method build (line 4643) | build() {
    method initSpec (line 4793) | initSpec(dataName) {
    method iterateLayouts (line 4855) | iterateLayouts(globalScope, onLayoutBuild) {
    method createLayout (line 4917) | createLayout(layoutPair, buildProps) {
  function build (line 4926) | function build(specContext, currData) {
  function isSearchExpressionGroup (line 4997) | function isSearchExpressionGroup(search) {
  function createGroupFromExpression (line 5003) | function createGroupFromExpression(input) {
  function ensureSearchExpressionGroupArray (line 5009) | function ensureSearchExpressionGroupArray(search) {
  function compareExpression (line 5024) | function compareExpression(a2, b2) {
  function compareGroup$1 (line 5039) | function compareGroup$1(a2, b2) {
  function compare$4 (line 5057) | function compare$4(a2, b2) {
  function startsWith (line 5072) | function startsWith(whole, part) {
  function valueToBoolean (line 5085) | function valueToBoolean(value2) {
  function valueToString (line 5096) | function valueToString(value2) {
  function isStringOperation (line 5109) | function isStringOperation(ex) {
  function isnullorEmpty (line 5119) | function isnullorEmpty(value2) {
  class Exec (line 5126) | class Exec {
    method constructor (line 5127) | constructor(search, columns) {
    method getColumn (line 5141) | getColumn(name) {
    method runExpressionOnColumn (line 5148) | runExpressionOnColumn(datum2, ex) {
    method runExpression (line 5192) | runExpression(datum2, ex) {
    method runGroup (line 5208) | runGroup(datum2, group2) {
    method run (line 5223) | run(datum2) {
  function invertSearchExpressionGroup (line 5239) | function invertSearchExpressionGroup(input) {
  function invertSearchExpression (line 5266) | function invertSearchExpression(input) {
  function invert$2 (line 5274) | function invert$2(search) {
  function narrow (line 5283) | function narrow(a2, b2) {
  function decamelize (line 5309) | function decamelize(str, separator = "-") {
  function createElement (line 5312) | function createElement(tag, attrs, ...children2) {
  function setAttribute$1 (line 5359) | function setAttribute$1(el, ns, name, value2) {
  function flatten$1 (line 5366) | function flatten$1(o) {
  function isInsideForeignObject (line 5372) | function isInsideForeignObject(element2) {
  function recreateWithSvgNamespace (line 5382) | function recreateWithSvgNamespace(element2) {
  function addChild (line 5416) | function addChild(parentElement, child) {
  function appendChildren (line 5433) | function appendChildren(parentElement, children2) {
  function isElement (line 5436) | function isElement(el) {
  function mount (line 5439) | function mount(element2, container) {
  function findElementByChildPositions (line 5445) | function findElementByChildPositions(childPositions, container) {
  function focusActiveElement (line 5456) | function focusActiveElement(element2, activeElementInfo) {
  function setActiveElement (line 5464) | function setActiveElement(activeElementInfo, container) {
  function getActiveElementInfo (line 5472) | function getActiveElementInfo(container) {
  function getChildPosition (line 5489) | function getChildPosition(element2) {
  function setMatrixArrayType (line 5516) | function setMatrixArrayType(type2) {
  function create$8 (line 5519) | function create$8() {
  function fromMat4 (line 5534) | function fromMat4(out, a2) {
  function fromValues$5 (line 5546) | function fromValues$5(m00, m01, m02, m10, m11, m12, m20, m21, m22) {
  function fromQuat$1 (line 5559) | function fromQuat$1(out, q) {
  function create$7 (line 5584) | function create$7() {
  function copy$7 (line 5606) | function copy$7(out, a2) {
  function fromValues$4 (line 5625) | function fromValues$4(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, ...
  function identity$8 (line 5645) | function identity$8(out) {
  function invert$1 (line 5664) | function invert$1(out, a2) {
  function multiply$2 (line 5704) | function multiply$2(out, a2, b2) {
  function translate$2 (line 5740) | function translate$2(out, a2, v) {
  function scale$6 (line 5782) | function scale$6(out, a2, v) {
  function fromScaling (line 5802) | function fromScaling(out, v) {
  function fromRotationTranslationScale (line 5821) | function fromRotationTranslationScale(out, q, v, s2) {
  function fromRotationTranslationScaleOrigin (line 5856) | function fromRotationTranslationScaleOrigin(out, q, v, s2, o) {
  function fromQuat (line 5903) | function fromQuat(out, q) {
  function frustum (line 5935) | function frustum(out, left, right, bottom, top, near, far) {
  function perspectiveNO (line 5957) | function perspectiveNO(out, fovy, aspect, near, far) {
  function lookAt (line 5984) | function lookAt(out, eye, center, up) {
  function create$6 (line 6052) | function create$6() {
  function clone$4 (line 6061) | function clone$4(a2) {
  function length$1 (line 6068) | function length$1(a2) {
  function fromValues$3 (line 6074) | function fromValues$3(x2, y2, z2) {
  function copy$6 (line 6081) | function copy$6(out, a2) {
  function set$8 (line 6087) | function set$8(out, x2, y2, z2) {
  function add$4 (line 6093) | function add$4(out, a2, b2) {
  function subtract (line 6099) | function subtract(out, a2, b2) {
  function multiply$1 (line 6105) | function multiply$1(out, a2, b2) {
  function min$3 (line 6111) | function min$3(out, a2, b2) {
  function max$3 (line 6117) | function max$3(out, a2, b2) {
  function scale$5 (line 6123) | function scale$5(out, a2, b2) {
  function scaleAndAdd (line 6129) | function scaleAndAdd(out, a2, b2, scale2) {
  function distance (line 6135) | function distance(a2, b2) {
  function squaredDistance (line 6141) | function squaredDistance(a2, b2) {
  function squaredLength (line 6147) | function squaredLength(a2) {
  function negate (line 6153) | function negate(out, a2) {
  function normalize$5 (line 6159) | function normalize$5(out, a2) {
  function dot$1 (line 6172) | function dot$1(a2, b2) {
  function cross$1 (line 6175) | function cross$1(out, a2, b2) {
  function lerp$1 (line 6183) | function lerp$1(out, a2, b2, t) {
  function transformMat4$2 (line 6192) | function transformMat4$2(out, a2, m2) {
  function transformMat3 (line 6201) | function transformMat3(out, a2, m2) {
  function transformQuat (line 6208) | function transformQuat(out, a2, q) {
  function exactEquals$1 (line 6222) | function exactEquals$1(a2, b2) {
  function equals$2 (line 6225) | function equals$2(a2, b2) {
  function create$5 (line 6258) | function create$5() {
  function clone$3 (line 6268) | function clone$3(a2) {
  function fromValues$2 (line 6276) | function fromValues$2(x2, y2, z2, w2) {
  function copy$5 (line 6284) | function copy$5(out, a2) {
  function set$7 (line 6291) | function set$7(out, x2, y2, z2, w2) {
  function normalize$4 (line 6298) | function normalize$4(out, a2) {
  function dot (line 6313) | function dot(a2, b2) {
  function transformMat4$1 (line 6316) | function transformMat4$1(out, a2, m2) {
  function exactEquals (line 6324) | function exactEquals(a2, b2) {
  function create$4 (line 6356) | function create$4() {
  function setAxisAngle (line 6366) | function setAxisAngle(out, axis, rad) {
  function multiply (line 6375) | function multiply(out, a2, b2) {
  function rotateX (line 6384) | function rotateX(out, a2, rad) {
  function rotateY (line 6394) | function rotateY(out, a2, rad) {
  function slerp (line 6404) | function slerp(out, a2, b2, t) {
  function conjugate (line 6431) | function conjugate(out, a2) {
  function fromMat3 (line 6438) | function fromMat3(out, m2) {
  function equals$1 (line 6468) | function equals$1(a2, b2) {
  function create$3 (line 6524) | function create$3() {
  function clone$1 (line 6532) | function clone$1(a2) {
  function fromValues (line 6538) | function fromValues(x2, y2) {
  function copy$3 (line 6544) | function copy$3(out, a2) {
  function set$5 (line 6549) | function set$5(out, x2, y2) {
  function transformMat4 (line 6554) | function transformMat4(out, a2, m2) {
  function equals (line 6561) | function equals(a2, b2) {
  class MathHelper (line 6636) | class MathHelper {
    method simpleLinearRegression (line 6637) | static simpleLinearRegression(points2) {
    method clamp (line 6653) | static clamp(value2, min2, max2) {
    method lerp (line 6656) | static lerp(value1, value2, amount) {
    method normalize (line 6659) | static normalize(value2, min2, max2, from = 0, to = 1) {
    method splitExponent (line 6662) | static splitExponent(value2, result) {
    method combineExponent (line 6672) | static combineExponent(mantissa, exponent2) {
    method isPowerOf2 (line 6675) | static isPowerOf2(value2) {
  class PseudoRandom (line 6679) | class PseudoRandom {
    method constructor (line 6680) | constructor(seed) {
    method next (line 6685) | next() {
    method nextFloat (line 6688) | nextFloat() {
    method nextInteger (line 6691) | nextInteger(min2, max2) {
  class AngleHelper (line 6695) | class AngleHelper {
    method degreesToRadians (line 6696) | static degreesToRadians(degrees2) {
    method radiansToDegrees (line 6699) | static radiansToDegrees(radians2) {
    method wrapAngle (line 6702) | static wrapAngle(angle2) {
    method sphericalToCartesian (line 6709) | static sphericalToCartesian(altitude, longitude2, latitude, result) {
    method cartesianToSpherical (line 6717) | static cartesianToSpherical(x2, y2, z2, result) {
    method angleBetweenVectors (line 6721) | static angleBetweenVectors(from, to) {
    method signedAngleBetweenVectors (line 6729) | static signedAngleBetweenVectors(from, to, up) {
  class CameraBase (line 6744) | class CameraBase {
    method getView (line 6745) | getView(view) {
    method setView (line 6748) | setView(view, isSmooth) {
    method lerpView (line 6751) | lerpView(from, to, time2) {
    method vMatrices (line 6755) | get vMatrices() {
    method inverseVMatrices (line 6758) | get inverseVMatrices() {
    method mvMatrices (line 6761) | get mvMatrices() {
    method pMatrices (line 6764) | get pMatrices() {
    method inversePMatrices (line 6767) | get inversePMatrices() {
    method pickVMatrix (line 6770) | get pickVMatrix() {
    method rMatrix (line 6773) | get rMatrix() {
    method getOrbit (line 6776) | getOrbit(value2) {
    method setOrbit (line 6779) | setOrbit(value2, isSmooth) {
    method getPosition (line 6785) | getPosition(value2) {
    method setPosition (line 6788) | setPosition(value2, isSmooth) {
    method constructor (line 6794) | constructor(core) {
    method reset (line 6824) | reset(isSmooth) {
    method update (line 6832) | update(elapsedTime) {
    method _zoom (line 6943) | _zoom(direction, distance2) {
    method rotate (line 6946) | rotate(translationDelta) {
    method zoom (line 6948) | zoom(zoomDelta, x2, y2) {
    method _twist (line 6955) | _twist(axis, angle2) {
    method twist (line 6957) | twist(angle2, x2, y2) {
    method updatePickVMatrix (line 6959) | updatePickVMatrix(x2, y2) {
    method syncSmooth (line 6963) | syncSmooth() {
    method updateModelManipulationOrigin (line 6968) | updateModelManipulationOrigin(from, to) {
    method unproject (line 6986) | unproject(position2, x2, y2, z2) {
    method translate (line 6991) | translate(translationDelta) {
  class AltAzimuthCamera (line 7000) | class AltAzimuthCamera extends CameraBase {
    method getView (line 7001) | getView(view) {
    method setView (line 7007) | setView(view, isSmooth) {
    method lerpView (line 7012) | lerpView(from, to, time2) {
    method update (line 7017) | update(elapsedTime) {
    method altitude (line 7026) | get altitude() {
    method azimuth (line 7031) | get azimuth() {
    method setAltAzimuth (line 7036) | setAltAzimuth(altitude, azimuth, isSmooth) {
    method rotate (line 7045) | rotate(translationDelta) {
  method constructor (line 7056) | constructor(core) {
  method reset (line 7059) | reset() {
  method theme (line 7162) | get theme() {
  method theme (line 7165) | set theme(value2) {
  class DebugText (line 7212) | class DebugText {
    method text (line 7213) | get text() {
    method constructor (line 7216) | constructor() {
    method clear (line 7219) | clear() {
    method addLine (line 7222) | addLine(value2) {
  class Fps (line 7226) | class Fps {
    method frameCounter (line 7227) | get frameCounter() {
    method totalFrames (line 7230) | get totalFrames() {
    method constructor (line 7233) | constructor(core) {
    method update (line 7238) | update(elapsedTime) {
    method render (line 7249) | render() {
    method reset (line 7253) | reset() {
  class PaletteResources (line 7265) | class PaletteResources {
    method constructor (line 7266) | constructor() {
  class PaletteBase (line 7312) | class PaletteBase {
    method colors (line 7313) | get colors() {
    method colors (line 7316) | set colors(value2) {
    method constructor (line 7322) | constructor() {
    method copyFrom (line 7325) | copyFrom(palette) {
    method update (line 7332) | update() {
  class PositionVertex (line 7337) | class PositionVertex {
    method getPosition (line 7338) | static getPosition(buffer, index2, value2) {
    method setPosition (line 7342) | static setPosition(buffer, index2, value2) {
  class PositionColorVertex (line 7351) | class PositionColorVertex {
    method getPosition (line 7352) | static getPosition(bufferView, index2, value2) {
    method setPosition (line 7356) | static setPosition(bufferView, index2, value2) {
    method getColor (line 7362) | static getColor(bufferView, index2, value2) {
    method setColor (line 7366) | static setColor(bufferView, index2, value2) {
  class PositionTextureVertex (line 7376) | class PositionTextureVertex {
    method getPosition (line 7377) | static getPosition(bufferView, index2, value2) {
    method setPosition (line 7381) | static setPosition(bufferView, index2, value2) {
    method getTexCoord (line 7387) | static getTexCoord(bufferView, index2, value2) {
    method setTexCoord (line 7391) | static setTexCoord(bufferView, index2, value2) {
  class PositionTexturePickVertex (line 7400) | class PositionTexturePickVertex {
    method getPosition (line 7401) | static getPosition(bufferView, index2, value2) {
    method setPosition (line 7405) | static setPosition(bufferView, index2, value2) {
    method getTexCoord (line 7411) | static getTexCoord(bufferView, index2, value2) {
    method setTexCoord (line 7415) | static setTexCoord(bufferView, index2, value2) {
    method getIdColor (line 7420) | static getIdColor(bufferView, index2, value2) {
    method setIdColor (line 7424) | static setIdColor(bufferView, index2, value2) {
  class PositionNormalTextureVertex (line 7436) | class PositionNormalTextureVertex {
    method getPosition (line 7437) | static getPosition(bufferView, index2, value2) {
    method setPosition (line 7441) | static setPosition(bufferView, index2, value2) {
    method getNormal (line 7447) | static getNormal(bufferView, index2, value2) {
    method setNormal (line 7451) | static setNormal(bufferView, index2, value2) {
    method getTexCoord (line 7457) | static getTexCoord(bufferView, index2, value2) {
    method setTexCoord (line 7461) | static setTexCoord(bufferView, index2, value2) {
  class PickGridVertex (line 7471) | class PickGridVertex {
    method getTranslation (line 7472) | static getTranslation(bufferView, index2, value2) {
    method setTranslation (line 7476) | static setTranslation(bufferView, index2, value2) {
    method getNormal (line 7482) | static getNormal(bufferView, index2, value2) {
    method setNormal (line 7486) | static setNormal(bufferView, index2, value2) {
    method getIdColor (line 7492) | static getIdColor(bufferView, index2, value2) {
    method setIdColor (line 7496) | static setIdColor(bufferView, index2, value2) {
    method getTexCoord (line 7503) | static getTexCoord(bufferView, index2, value2) {
    method setTexCoord (line 7507) | static setTexCoord(bufferView, index2, value2) {
    method getBounds (line 7512) | static getBounds(bufferView, index2, value2) {
    method setBounds (line 7516) | static setBounds(bufferView, index2, value2) {
  class UnitVertex (line 7530) | class UnitVertex {
    method getIdHover (line 7531) | static getIdHover(bufferView, index2) {
    method setIdHover (line 7534) | static setIdHover(bufferView, index2, value2) {
    method copyIdHover (line 7537) | static copyIdHover(fromBufferView, fromIndex, toBufferView, toIndex) {
    method getTranslation (line 7540) | static getTranslation(bufferView, index2, value2) {
    method setTranslation (line 7544) | static setTranslation(bufferView, index2, value2) {
    method copyTranslation (line 7550) | static copyTranslation(fromBufferView, fromIndex, toBufferView, toInde...
    method getColor (line 7557) | static getColor(bufferView, index2, value2) {
    method setColor (line 7561) | static setColor(bufferView, index2, value2) {
    method copyColor (line 7566) | static copyColor(fromBufferView, fromIndex, toBufferView, toIndex) {
    method getOrder (line 7572) | static getOrder(bufferView, index2, value2) {
    method setOrder (line 7576) | static setOrder(bufferView, index2, value2) {
    method copyOrder (line 7581) | static copyOrder(fromBufferView, fromIndex, toBufferView, toIndex) {
    method getScale (line 7587) | static getScale(bufferView, index2, value2) {
    method setScale (line 7591) | static setScale(bufferView, index2, value2) {
    method copyScale (line 7597) | static copyScale(fromBufferView, fromIndex, toBufferView, toIndex) {
    method getRotation (line 7604) | static getRotation(bufferView, index2, value2) {
    method setRotation (line 7608) | static setRotation(bufferView, index2, value2) {
    method copyRotation (line 7615) | static copyRotation(fromBufferView, fromIndex, toBufferView, toIndex) {
    method getTexCoord (line 7623) | static getTexCoord(bufferView, index2, value2) {
    method setTexCoord (line 7627) | static setTexCoord(bufferView, index2, value2) {
    method copyTexCoord (line 7634) | static copyTexCoord(fromBufferView, fromIndex, toBufferView, toIndex) {
    method getIdColor (line 7642) | static getIdColor(bufferView, index2, value2) {
    method setIdColor (line 7646) | static setIdColor(bufferView, index2, value2) {
    method getSelected (line 7653) | static getSelected(bufferView, index2) {
    method setSelected (line 7656) | static setSelected(bufferView, index2, value2) {
    method copySelected (line 7659) | static copySelected(fromBufferView, fromIndex, toBufferView, toIndex) {
    method getRounding (line 7662) | static getRounding(bufferView, index2) {
    method setRounding (line 7665) | static setRounding(bufferView, index2, value2) {
    method copyRounding (line 7668) | static copyRounding(fromBufferView, fromIndex, toBufferView, toIndex) {
    method getParameter1 (line 7671) | static getParameter1(bufferView, index2) {
    method setParameter1 (line 7674) | static setParameter1(bufferView, index2, value2) {
    method copyParameter1 (line 7677) | static copyParameter1(fromBufferView, fromIndex, toBufferView, toIndex) {
    method getParameter2 (line 7680) | static getParameter2(bufferView, index2) {
    method setParameter2 (line 7683) | static setParameter2(bufferView, index2, value2) {
    method copyParameter2 (line 7686) | static copyParameter2(fromBufferView, fromIndex, toBufferView, toIndex) {
    method getMaterial (line 7689) | static getMaterial(bufferView, index2) {
    method setMaterial (line 7692) | static setMaterial(bufferView, index2, value2) {
    method copyMaterial (line 7695) | static copyMaterial(fromBufferView, fromIndex, toBufferView, toIndex) {
    method getTexture (line 7698) | static getTexture(bufferView, index2) {
    method setTexture (line 7701) | static setTexture(bufferView, index2, value2) {
    method copyTexture (line 7704) | static copyTexture(fromBufferView, fromIndex, toBufferView, toIndex) {
    method getSdfBuffer (line 7707) | static getSdfBuffer(bufferView, index2) {
    method setSdfBuffer (line 7710) | static setSdfBuffer(bufferView, index2, value2) {
    method copySdfBuffer (line 7713) | static copySdfBuffer(fromBufferView, fromIndex, toBufferView, toIndex) {
    method getSdfBorder (line 7716) | static getSdfBorder(bufferView, index2) {
    method setSdfBorder (line 7719) | static setSdfBorder(bufferView, index2, value2) {
    method copySdfBorder (line 7722) | static copySdfBorder(fromBufferView, fromIndex, toBufferView, toIndex) {
    method getMatId (line 7725) | static getMatId(bufferView, index2) {
    method setMatId (line 7728) | static setMatId(bufferView, index2, value2) {
    method copyMatId (line 7731) | static copyMatId(fromBufferView, fromIndex, toBufferView, toIndex) {
    method getMatColor (line 7734) | static getMatColor(bufferView, index2, value2) {
    method setMatColor (line 7740) | static setMatColor(bufferView, index2, value2) {
    method copyMatColor (line 7746) | static copyMatColor(fromBufferView, fromIndex, toBufferView, toIndex) {
    method getMatFuzz (line 7753) | static getMatFuzz(bufferView, index2) {
    method setMatFuzz (line 7757) | static setMatFuzz(bufferView, index2, value2) {
    method copyMatFuzz (line 7761) | static copyMatFuzz(fromBufferView, fromIndex, toBufferView, toIndex) {
    method getMatGloss (line 7764) | static getMatGloss(bufferView, index2) {
    method setMatGloss (line 7768) | static setMatGloss(bufferView, index2, value2) {
    method copyMatGloss (line 7772) | static copyMatGloss(fromBufferView, fromIndex, toBufferView, toIndex) {
    method getMatDensity (line 7775) | static getMatDensity(bufferView, index2) {
    method setMatDensity (line 7778) | static setMatDensity(bufferView, index2, value2) {
    method copyMatDensity (line 7781) | static copyMatDensity(fromBufferView, fromIndex, toBufferView, toIndex) {
    method getMatRefractiveIndex (line 7784) | static getMatRefractiveIndex(bufferView, index2) {
    method setMatRefractiveIndex (line 7787) | static setMatRefractiveIndex(bufferView, index2, value2) {
    method copyMatRefractiveIndex (line 7790) | static copyMatRefractiveIndex(fromBufferView, fromIndex, toBufferView,...
    method getSegColor (line 7793) | static getSegColor(bufferView, index2, value2) {
    method setSegColor (line 7800) | static setSegColor(bufferView, index2, value2) {
    method copySegColor (line 7807) | static copySegColor(fromBufferView, fromIndex, toBufferView, toIndex) {
  class ObjMesh (line 7841) | class ObjMesh {
  class ObjHelper (line 7843) | class ObjHelper {
    method constructor (line 7844) | constructor(core) {
    method read (line 7847) | read(data2) {
  class Cube (line 7962) | class Cube {
  method render (line 8133) | render(elapsedTime, xrFrame) {
  method update (line 8135) | update(elapsedTime) {
  method constructor (line 8137) | constructor(controller) {
  class Controller (line 8141) | class Controller {
    method isInitialized (line 8142) | get isInitialized() {
    method mMatrix (line 8145) | get mMatrix() {
    method indexCount (line 8148) | get indexCount() {
    method vertices (line 8151) | get vertices() {
    method indices (line 8154) | get indices() {
    method texture (line 8157) | get texture() {
    method rayMMatrix (line 8160) | get rayMMatrix() {
    method rayIndexCount (line 8163) | get rayIndexCount() {
    method rayVertices (line 8166) | get rayVertices() {
    method rayIndices (line 8169) | get rayIndices() {
    method constructor (line 8172) | constructor(core, options2) {
    method initialize (line 8219) | initialize() {
    method update (line 8257) | update(elapsedTime) {
  class MatrixHelper (line 8260) | class MatrixHelper {
    method fieldOfViewFromProjectionMatrix (line 8261) | static fieldOfViewFromProjectionMatrix(p) {
  class AxesVisual (line 8265) | class AxesVisual {
    method render (line 8266) | render(elapsedTime, xrFrame) {
    method update (line 8268) | update(elapsedTime) {
    method constructor (line 8270) | constructor(axes) {
  class AxesBase (line 8274) | class AxesBase {
    method isInitialized (line 8275) | get isInitialized() {
    method vMatrix (line 8278) | set vMatrix(value2) {
    method pickGrid (line 8281) | pickGrid(id2) {
    method pickTitle (line 8289) | pickTitle(id2) {
    method pickLabel (line 8292) | pickLabel(id2) {
    method pickHeading (line 8299) | pickHeading(id2) {
    method getFromValues (line 8302) | getFromValues(index2) {
    method setFromValues (line 8305) | setFromValues(index2, value2) {
    method getToValues (line 8311) | getToValues(index2) {
    method setToValues (line 8314) | setToValues(index2, value2) {
    method font (line 8320) | get font() {
    method font (line 8323) | set font(value2) {
    method gridPickDivisionHeight (line 8329) | get gridPickDivisionHeight() {
    method gridPickDivisionHeight (line 8332) | set gridPickDivisionHeight(value2) {
    method constructor (line 8338) | constructor(core) {
    method update (line 8352) | update(elapsedTime) {
  method positions (line 8356) | static positions(transform2) {
  method textured (line 8368) | static textured(transform2, texTransform = Constants$1.MAT4_IDENTITY) {
  method normalTextured (line 8384) | static normalTextured(transform2, texTransform = Constants$1.MAT4_IDENTI...
  class TextHelper (line 8460) | class TextHelper {
    method truncate (line 8461) | static truncate(text2, length2) {
    method measure (line 8464) | static measure(font2, text2, size) {
    method wrap (line 8479) | static wrap(font2, text2, maxWidth) {
    method addString (line 8514) | static addString(font2, text2, vertices, indices, index2, position2, s...
    method addGlyph (line 8519) | static addGlyph(font2, char, vertices, indices, index2, position2, sca...
  class PickHelper (line 8579) | class PickHelper {
    method nextPickId (line 8580) | static nextPickId() {
    method encodeNumber (line 8583) | static encodeNumber(number2, type2, color2) {
    method decodeNumber (line 8587) | static decodeNumber(color2) {
    method encodeVec3 (line 8590) | static encodeVec3(vec3, type2, color2) {
    method decodeVec3 (line 8594) | static decodeVec3(color2, axes) {
    method encodeType (line 8599) | static encodeType(type2) {
    method decodeType (line 8602) | static decodeType(color2) {
    method float32ToVec4 (line 8605) | static float32ToVec4(number2, color2) {
    method uint8ArrayToNumber (line 8611) | static uint8ArrayToNumber(color2) {
  class Cartesian3dAxes (line 8616) | class Cartesian3dAxes extends AxesBase {
    method size (line 8617) | get size() {
    method isDiscreteX (line 8620) | get isDiscreteX() {
    method isDiscreteX (line 8623) | set isDiscreteX(value2) {
    method isDiscreteY (line 8629) | get isDiscreteY() {
    method isDiscreteY (line 8632) | set isDiscreteY(value2) {
    method isDiscreteZ (line 8638) | get isDiscreteZ() {
    method isDiscreteZ (line 8641) | set isDiscreteZ(value2) {
    method minBoundsX (line 8647) | get minBoundsX() {
    method minBoundsX (line 8650) | set minBoundsX(value2) {
    method maxBoundsX (line 8656) | get maxBoundsX() {
    method maxBoundsX (line 8659) | set maxBoundsX(value2) {
    method minBoundsY (line 8665) | get minBoundsY() {
    method minBoundsY (line 8668) | set minBoundsY(value2) {
    method maxBoundsY (line 8674) | get maxBoundsY() {
    method maxBoundsY (line 8677) | set maxBoundsY(value2) {
    method minBoundsZ (line 8683) | get minBoundsZ() {
    method minBoundsZ (line 8686) | set minBoundsZ(value2) {
    method maxBoundsZ (line 8692) | get maxBoundsZ() {
    method maxBoundsZ (line 8695) | set maxBoundsZ(value2) {
    method getIsOutsideEdge (line 8701) | getIsOutsideEdge(index2) {
    method getIsForwardFace (line 8704) | getIsForwardFace(index2) {
    method textVertices (line 8707) | get textVertices() {
    method textIndices (line 8710) | get textIndices() {
    method getLabelMMatrix (line 8713) | getLabelMMatrix(index2) {
    method setLabelPositions (line 8716) | setLabelPositions(index2, value2) {
    method setLabels (line 8722) | setLabels(index2, value2) {
    method setLabelSizes (line 8728) | setLabelSizes(index2, value2) {
    method getLabelOrientation (line 8734) | getLabelOrientation(index2) {
    method setLabelOrientation (line 8737) | setLabelOrientation(index2, orientation) {
    method getTitleIndexCount (line 8743) | getTitleIndexCount(index2) {
    method getTitleIndexOffset (line 8746) | getTitleIndexOffset(index2) {
    method getTitleMMatrix (line 8749) | getTitleMMatrix(index2) {
    method setTitle (line 8752) | setTitle(index2, value2) {
    method setTitleSize (line 8758) | setTitleSize(index2, value2) {
    method getHeadingIndexCount (line 8764) | getHeadingIndexCount(index2) {
    method getHeadingIndexOffset (line 8767) | getHeadingIndexOffset(index2) {
    method getHeadingMMatrix (line 8770) | getHeadingMMatrix(index2) {
    method setHeading (line 8773) | setHeading(index2, value2) {
    method setHeadingSize (line 8779) | setHeadingSize(index2, value2) {
    method getIsLeftToRightHorizontal (line 8785) | getIsLeftToRightHorizontal(index2) {
    method getIsLeftToRightVertical (line 8788) | getIsLeftToRightVertical(index2) {
    method getAxesLeftToRightIndexCount (line 8791) | getAxesLeftToRightIndexCount(index2) {
    method getAxesRightToLeftIndexCount (line 8794) | getAxesRightToLeftIndexCount(index2) {
    method getAxesLeftToRightIndexOffset (line 8797) | getAxesLeftToRightIndexOffset(index2) {
    method getAxesRightToLeftIndexOffset (line 8800) | getAxesRightToLeftIndexOffset(index2) {
    method gridVertices (line 8803) | get gridVertices() {
    method gridIndices (line 8806) | get gridIndices() {
    method getGridTicksIndexCount (line 8809) | getGridTicksIndexCount(index2) {
    method getGridTicksIndexOffset (line 8812) | getGridTicksIndexOffset(index2) {
    method getGridFaceIndexCount (line 8815) | getGridFaceIndexCount(index2) {
    method getGridFaceIndexOffset (line 8818) | getGridFaceIndexOffset(index2) {
    method getGridTicksMMatrix (line 8821) | getGridTicksMMatrix(index2) {
    method getGridFaceMMatrix (line 8824) | getGridFaceMMatrix(index2) {
    method getGridTicksScale (line 8827) | getGridTicksScale(index2) {
    method getGridFaceZero (line 8830) | getGridFaceZero(index2) {
    method getGridTicksZero (line 8833) | getGridTicksZero(index2) {
    method getGridFaceMinorGridlines (line 8836) | getGridFaceMinorGridlines(index2) {
    method getGridTicksMinorGridlines (line 8839) | getGridTicksMinorGridlines(index2) {
    method setTickPositions (line 8842) | setTickPositions(index2, value2) {
    method scalingX (line 8848) | get scalingX() {
    method scalingX (line 8851) | set scalingX(value2) {
    method scalingY (line 8857) | get scalingY() {
    method scalingY (line 8860) | set scalingY(value2) {
    method scalingZ (line 8866) | get scalingZ() {
    method scalingZ (line 8869) | set scalingZ(value2) {
    method offsetX (line 8875) | get offsetX() {
    method offsetX (line 8878) | set offsetX(value2) {
    method offsetY (line 8883) | get offsetY() {
    method offsetY (line 8886) | set offsetY(value2) {
    method offsetZ (line 8891) | get offsetZ() {
    method offsetZ (line 8894) | set offsetZ(value2) {
    method constructor (line 8899) | constructor(core) {
    method initialize (line 9077) | initialize() {
    method update (line 9080) | update(elapsedTime) {
    method _updateLabels (line 9241) | _updateLabels(axisId, edgeId) {
    method _updateTitle (line 9288) | _updateTitle(axisId, edgeId) {
    method _updateHeading (line 9314) | _updateHeading(axisId, edgeId) {
    method _updateGrids (line 9340) | _updateGrids(size) {
    method _updateText (line 9365) | _updateText(size) {
    method _updateLeftToRightAxisLabels (line 9468) | _updateLeftToRightAxisLabels(axisId, size, maxSize, glyphOffset, orien...
    method _updateRightToLeftAxisLabels (line 9512) | _updateRightToLeftAxisLabels(axisId, size, maxSize, glyphOffset, orien...
    method _updateGridTicks (line 9552) | _updateGridTicks(axisId, dataView, indices, offset2) {
    method _updateGridFace (line 9617) | _updateGridFace(axisId, faceId, dataView, indices, offset2) {
  class Cartesian2dAxes (line 9693) | class Cartesian2dAxes extends AxesBase {
    method size (line 9694) | get size() {
    method isDiscreteX (line 9697) | get isDiscreteX() {
    method isDiscreteX (line 9700) | set isDiscreteX(value2) {
    method isDiscreteY (line 9706) | get isDiscreteY() {
    method isDiscreteY (line 9709) | set isDiscreteY(value2) {
    method minBoundsX (line 9715) | get minBoundsX() {
    method minBoundsX (line 9718) | set minBoundsX(value2) {
    method maxBoundsX (line 9724) | get maxBoundsX() {
    method maxBoundsX (line 9727) | set maxBoundsX(value2) {
    method minBoundsY (line 9733) | get minBoundsY() {
    method minBoundsY (line 9736) | set minBoundsY(value2) {
    method maxBoundsY (line 9742) | get maxBoundsY() {
    method maxBoundsY (line 9745) | set maxBoundsY(value2) {
    method getIsOutsideEdge (line 9751) | getIsOutsideEdge(index2) {
    method getIsForwardFace (line 9754) | getIsForwardFace(index2) {
    method textVertices (line 9757) | get textVertices() {
    method textIndices (line 9760) | get textIndices() {
    method getLabelMMatrix (line 9763) | getLabelMMatrix(index2) {
    method setLabelPositions (line 9766) | setLabelPositions(index2, value2) {
    method setLabels (line 9772) | setLabels(index2, value2) {
    method setLabelSizes (line 9778) | setLabelSizes(index2, value2) {
    method getLabelOrientation (line 9784) | getLabelOrientation(index2) {
    method setLabelOrientation (line 9787) | setLabelOrientation(index2, orientation) {
    method getTitleIndexCount (line 9793) | getTitleIndexCount(index2) {
    method getTitleIndexOffset (line 9796) | getTitleIndexOffset(index2) {
    method getTitleMMatrix (line 9799) | getTitleMMatrix(index2) {
    method setTitle (line 9802) | setTitle(index2, value2) {
    method setTitleSize (line 9808) | setTitleSize(index2, value2) {
    method getHeadingIndexCount (line 9814) | getHeadingIndexCount(index2) {
    method getHeadingIndexOffset (line 9817) | getHeadingIndexOffset(index2) {
    method getHeadingMMatrix (line 9820) | getHeadingMMatrix(index2) {
    method setHeading (line 9823) | setHeading(index2, value2) {
    method setHeadingSize (line 9829) | setHeadingSize(index2, value2) {
    method getIsLeftToRightHorizontal (line 9835) | getIsLeftToRightHorizontal(index2) {
    method getIsLeftToRightVertical (line 9838) | getIsLeftToRightVertical(index2) {
    method getAxesLeftToRightIndexCount (line 9841) | getAxesLeftToRightIndexCount(index2) {
    method getAxesRightToLeftIndexCount (line 9844) | getAxesRightToLeftIndexCount(index2) {
    method getAxesLeftToRightIndexOffset (line 9847) | getAxesLeftToRightIndexOffset(index2) {
    method getAxesRightToLeftIndexOffset (line 9850) | getAxesRightToLeftIndexOffset(index2) {
    method gridVertices (line 9853) | get gridVertices() {
    method gridIndices (line 9856) | get gridIndices() {
    method getGridTicksIndexCount (line 9859) | getGridTicksIndexCount(index2) {
    method getGridTicksIndexOffset (line 9862) | getGridTicksIndexOffset(index2) {
    method getGridFaceIndexCount (line 9865) | getGridFaceIndexCount(index2) {
    method getGridFaceIndexOffset (line 9868) | getGridFaceIndexOffset(index2) {
    method getGridTicksMMatrix (line 9871) | getGridTicksMMatrix(index2) {
    method getGridFaceMMatrix (line 9874) | getGridFaceMMatrix(index2) {
    method getGridTicksScale (line 9877) | getGridTicksScale(index2) {
    method getGridTicksZero (line 9880) | getGridTicksZero(index2) {
    method gridFaceZero (line 9883) | get gridFaceZero() {
    method gridFaceMinorGridlines (line 9886) | get gridFaceMinorGridlines() {
    method getGridTicksMinorGridlines (line 9889) | getGridTicksMinorGridlines(index2) {
    method setTickPositions (line 9892) | setTickPositions(index2, value2) {
    method scalingX (line 9898) | get scalingX() {
    method scalingX (line 9901) | set scalingX(value2) {
    method scalingY (line 9907) | get scalingY() {
    method scalingY (line 9910) | set scalingY(value2) {
    method offsetX (line 9916) | get offsetX() {
    method offsetX (line 9919) | set offsetX(value2) {
    method offsetY (line 9924) | get offsetY() {
    method offsetY (line 9927) | set offsetY(value2) {
    method rotation (line 9932) | set rotation(value2) {
    method constructor (line 9939) | constructor(core) {
    method initialize (line 10110) | initialize() {
    method update (line 10113) | update(elapsedTime) {
    method _updateLabels (line 10258) | _updateLabels(axisId, edgeId) {
    method _updateTitle (line 10305) | _updateTitle(axisId, edgeId) {
    method _updateHeading (line 10331) | _updateHeading(axisId, edgeId) {
    method _updateGrids (line 10357) | _updateGrids(size) {
    method _updateText (line 10382) | _updateText(size) {
    method _updateLeftToRightAxisLabels (line 10485) | _updateLeftToRightAxisLabels(axisId, size, maxSize, glyphOffset, orien...
    method _updateRightToLeftAxisLabels (line 10529) | _updateRightToLeftAxisLabels(axisId, size, maxSize, glyphOffset, orien...
    method _updateGridTicks (line 10569) | _updateGridTicks(axisId, dataView, indices, offset2) {
    method _updateGridFace (line 10634) | _updateGridFace(axisId, faceId, dataView, indices, offset2) {
  class Glyph (line 10710) | class Glyph {
    method toJSON (line 10711) | toJSON() {
  method update (line 10728) | update() {
  method constructor (line 10730) | constructor(font2) {
  class Font (line 10734) | class Font {
    method atlas (line 10735) | get atlas() {
    method count (line 10738) | get count() {
    method constructor (line 10741) | constructor(core, rasterizer) {
    method addGlyph (line 10748) | addGlyph(char) {
    method update (line 10755) | update() {
    method toJSON (line 10765) | toJSON() {
  class FontAtlas (line 10780) | class FontAtlas {
    method constructor (line 10781) | constructor(width2, height2) {
  class FontRasterizer (line 10792) | class FontRasterizer {
    method font (line 10793) | get font() {
    method fontAtlas (line 10796) | get fontAtlas() {
    method constructor (line 10799) | constructor(core, options2) {
    method draw (line 10829) | draw(char) {
  class GlyphRasterizer (line 10866) | class GlyphRasterizer {
    method constructor (line 10867) | constructor(core, options2) {
    method draw (line 10894) | draw(char) {
    method _edt (line 10972) | _edt(data2, x02, y02, width2, height2, gridSize, f, v, z2) {
    method _edt1d (line 10978) | _edt1d(grid2, offset2, stride, n, f, v, z2) {
  class ManipulationProcessor (line 11005) | class ManipulationProcessor {
    method manipulators (line 11006) | get manipulators() {
    method count (line 11009) | get count() {
    method isDragging (line 11012) | get isDragging() {
    method constructor (line 11015) | constructor(core) {
    method update (line 11032) | update(elapsedTime, manipulators) {
    method initialize (line 11087) | initialize() {
    method _process (line 11093) | _process() {
  class MouseWheel (line 11166) | class MouseWheel {
    method constructor (line 11167) | constructor(core) {
    method initialize (line 11172) | initialize(element2) {
    method update (line 11179) | update(elapsedTime) {
  class Manipulator (line 11188) | class Manipulator {
    method constructor (line 11189) | constructor() {
  class Pointers (line 11202) | class Pointers {
    method hoverX (line 11203) | get hoverX() {
    method hoverY (line 11206) | get hoverY() {
    method hoverId (line 11209) | get hoverId() {
    method constructor (line 11212) | constructor(core, manipulators) {
    method initialize (line 11216) | initialize(element2) {
    method update (line 11225) | update(elapsedTime) {
    method _handlePointerDown (line 11231) | _handlePointerDown(e) {
    method _handlePointerMove (line 11252) | _handlePointerMove(e) {
    method _handlePointerUp (line 11279) | _handlePointerUp(e) {
    method _handlePointerCancel (line 11286) | _handlePointerCancel(e) {
    method _handlePointerLeave (line 11289) | _handlePointerLeave(e) {
    method _handlePointerOut (line 11293) | _handlePointerOut(e) {
    method _resetHover (line 11297) | _resetHover() {
    method _remove (line 11302) | _remove(pointerId) {
  class AnimationHelper (line 11309) | class AnimationHelper {
    method smoothStep (line 11310) | static smoothStep(value2) {
    method damp (line 11313) | static damp(value2, target2, threshold2, dampening) {
  class Keyboard (line 11321) | class Keyboard {
    method constructor (line 11322) | constructor(core) {
    method initialize (line 11327) | initialize(element2) {
    method update (line 11335) | update(elapsedTime) {
    method isKeyDown (line 11340) | isKeyDown(key2) {
    method wasKeyReleased (line 11343) | wasKeyReleased(key2) {
    method _handleKeyDown (line 11354) | _handleKeyDown(e) {
    method _handleKeyUp (line 11361) | _handleKeyUp(e) {
  class Manager (line 11369) | class Manager {
    method constructor (line 11370) | constructor(core) {
    method update (line 11411) | update(elapsedTime, xrFrame) {
  method constructor (line 11724) | constructor(core) {
  method write (line 11727) | write(level, value2) {
  function adopt (line 11750) | function adopt(value2) {
  function fulfilled (line 11756) | function fulfilled(value2) {
  function rejected (line 11763) | function rejected(value2) {
  function step (line 11770) | function step(result) {
  class Core (line 11776) | class Core {
    method container (line 11777) | get container() {
    method started (line 11780) | get started() {
    method debugText (line 11783) | get debugText() {
    method log (line 11786) | get log() {
    method totalFrames (line 11789) | get totalFrames() {
    method camera (line 11792) | get camera() {
    method camera (line 11795) | set camera(value2) {
    method getModelRotation (line 11798) | getModelRotation(value2) {
    method setModelRotation (line 11801) | setModelRotation(value2, isSmooth) {
    method getModelScale (line 11807) | getModelScale() {
    method setModelScale (line 11810) | setModelScale(value2, isSmooth) {
    method getModelManipulationOrigin (line 11816) | getModelManipulationOrigin(value2) {
    method setModelManipulationOrigin (line 11819) | setModelManipulationOrigin(value2) {
    method getModelPosition (line 11822) | getModelPosition(value2) {
    method setModelPosition (line 11825) | setModelPosition(value2, isSmooth) {
    method webXRSession (line 11831) | get webXRSession() {
    method renderer (line 11834) | get renderer() {
    method renderer (line 11837) | set renderer(renderer) {
    method font (line 11901) | get font() {
    method paletteResources (line 11904) | get paletteResources() {
    method config (line 11907) | get config() {
    method inputManager (line 11910) | get inputManager() {
    method constructor (line 11913) | constructor(options2) {
    method getView (line 11950) | getView(view) {
    method setView (line 11955) | setView(view, isSmooth) {
    method lerpView (line 11960) | lerpView(from, to, time2) {
    method resetModel (line 11967) | resetModel(isSmooth) {
    method resetManipulationOrigin (line 11975) | resetManipulationOrigin() {
    method reset (line 11980) | reset(isSmooth) {
    method start (line 11985) | start() {
    method stop (line 11995) | stop() {
    method checkWebXRSupport (line 12008) | checkWebXRSupport() {
    method requestWebXRSession (line 12021) | requestWebXRSession() {
    method _webXRSessionStarted (line 12028) | _webXRSessionStarted(session) {
    method _webXRSessionEnded (line 12043) | _webXRSessionEnded() {
    method _webXRInputSourcesChanged (line 12051) | _webXRInputSourcesChanged(event2) {
    method _tick (line 12081) | _tick(currentTime, xrFrame) {
    method update (line 12096) | update(elapsedTime, xrFrame) {
    method render (line 12153) | render(elapsedTime, xrFrame) {
    method _syncSmooth (line 12164) | _syncSmooth() {
    method _updateManipulationOrigin (line 12169) | _updateManipulationOrigin(position2) {
    method pickLasso (line 12185) | pickLasso(x02, y02, x12, y12, pickType) {
  method render (line 12335) | render(elapsedTime, xrFrame) {
  method update (line 12337) | update(elapsedTime) {
  method constructor (line 12339) | constructor(labelSet) {
  method material (line 12344) | get material() {
  method vertices (line 12347) | get vertices() {
  method verticesView (line 12350) | get verticesView() {
  method indices (line 12353) | get indices() {
  method indexCount (line 12356) | get indexCount() {
  method isInitialized (line 12359) | get isInitialized() {
  method mMatrix (line 12362) | get mMatrix() {
  method materialType (line 12365) | get materialType() {
  method materialColor (line 12368) | get materialColor() {
  method materialFuzz (line 12371) | get materialFuzz() {
  method materialGloss (line 12374) | get materialGloss() {
  method segmentColor (line 12377) | get segmentColor() {
  method scale (line 12380) | get scale() {
  method scale (line 12383) | set scale(value2) {
  method font (line 12389) | get font() {
  method font (line 12392) | set font(value2) {
  method rotation (line 12398) | get rotation() {
  method rotation (line 12401) | set rotation(value2) {
  method reverseX (line 12407) | set reverseX(value2) {
  method reverseY (line 12413) | set reverseY(value2) {
  method reverseZ (line 12419) | set reverseZ(value2) {
  method horizontalAlignment (line 12425) | get horizontalAlignment() {
  method horizontalAlignment (line 12428) | set horizontalAlignment(value2) {
  method verticalAlignment (line 12434) | get verticalAlignment() {
  method verticalAlignment (line 12437) | set verticalAlignment(value2) {
  method offsetX (line 12443) | get offsetX() {
  method offsetX (line 12446) | set offsetX(value2) {
  method offsetY (line 12452) | get offsetY() {
  method offsetY (line 12455) | set offsetY(value2) {
  method offsetZ (line 12461) | get offsetZ() {
  method offsetZ (line 12464) | set offsetZ(value2) {
  method maxGlyphTop (line 12470) | get maxGlyphTop() {
  method maxGlyphTop (line 12473) | set maxGlyphTop(value2) {
  method maxGlyphHeight (line 12479) | get maxGlyphHeight() {
  method maxGlyphHeight (line 12482) | set maxGlyphHeight(value2) {
  method constructor (line 12488) | constructor(core, options2) {
  method initialize (line 12517) | initialize() {
  method update (line 12523) | update(elapsedTime) {
  class LabelSet (line 12526) | class LabelSet extends LabelBase$1 {
    method materials (line 12527) | get materials() {
    method materialTypes (line 12530) | get materialTypes() {
    method materialColors (line 12533) | get materialColors() {
    method materialFuzzes (line 12536) | get materialFuzzes() {
    method materialGlosses (line 12539) | get materialGlosses() {
    method segmentColors (line 12542) | get segmentColors() {
    method minBoundsX (line 12545) | get minBoundsX() {
    method minBoundsX (line 12548) | set minBoundsX(value2) {
    method minBoundsY (line 12554) | get minBoundsY() {
    method minBoundsY (line 12557) | set minBoundsY(value2) {
    method minBoundsZ (line 12563) | get minBoundsZ() {
    method minBoundsZ (line 12566) | set minBoundsZ(value2) {
    method maxBoundsX (line 12572) | get maxBoundsX() {
    method maxBoundsX (line 12575) | set maxBoundsX(value2) {
    method maxBoundsY (line 12581) | get maxBoundsY() {
    method maxBoundsY (line 12584) | set maxBoundsY(value2) {
    method maxBoundsZ (line 12590) | get maxBoundsZ() {
    method maxBoundsZ (line 12593) | set maxBoundsZ(value2) {
    method positionsX (line 12599) | get positionsX() {
    method positionsX (line 12602) | set positionsX(value2) {
    method positionsY (line 12608) | get positionsY() {
    method positionsY (line 12611) | set positionsY(value2) {
    method positionsZ (line 12617) | get positionsZ() {
    method positionsZ (line 12620) | set positionsZ(value2) {
    method positionScalingX (line 12626) | get positionScalingX() {
    method positionScalingX (line 12629) | set positionScalingX(value2) {
    method positionScalingY (line 12635) | get positionScalingY() {
    method positionScalingY (line 12638) | set positionScalingY(value2) {
    method positionScalingZ (line 12644) | get positionScalingZ() {
    method positionScalingZ (line 12647) | set positionScalingZ(value2) {
    method rotations (line 12653) | get rotations() {
    method rotations (line 12656) | set rotations(value2) {
    method offsetsX (line 12662) | get offsetsX() {
    method offsetsX (line 12665) | set offsetsX(value2) {
    method offsetsY (line 12671) | get offsetsY() {
    method offsetsY (line 12674) | set offsetsY(value2) {
    method offsetsZ (line 12680) | get offsetsZ() {
    method offsetsZ (line 12683) | set offsetsZ(value2) {
    method offsetScalingX (line 12689) | get offsetScalingX() {
    method offsetScalingX (line 12692) | set offsetScalingX(value2) {
    method offsetScalingY (line 12698) | get offsetScalingY() {
    method offsetScalingY (line 12701) | set offsetScalingY(value2) {
    method offsetScalingZ (line 12707) | get offsetScalingZ() {
    method offsetScalingZ (line 12710) | set offsetScalingZ(value2) {
    method text (line 12716) | get text() {
    method text (line 12719) | set text(value2) {
    method horizontalAlignments (line 12725) | get horizontalAlignments() {
    method horizontalAlignments (line 12728) | set horizontalAlignments(value2) {
    method verticalAlignments (line 12734) | get verticalAlignments() {
    method verticalAlignments (line 12737) | set verticalAlignments(value2) {
    method scales (line 12743) | get scales() {
    method scales (line 12746) | set scales(value2) {
    method scalesScaling (line 12752) | get scalesScaling() {
    method scalesScaling (line 12755) | set scalesScaling(value2) {
    method constructor (line 12761) | constructor(core, options2) {
    method update (line 12797) | update(elapsedTime) {
  method render (line 12889) | render(elapsedTime, xrFrame) {
  method update (line 12891) | update(elapsedTime) {
  method constructor (line 12893) | constructor(image2) {
  method material (line 12898) | get material() {
  method vertices (line 12901) | get vertices() {
  method indices (line 12904) | get indices() {
  method indexCount (line 12907) | get indexCount() {
  method isInitialized (line 12910) | get isInitialized() {
  method mMatrix (line 12913) | get mMatrix() {
  method imageData (line 12916) | get imageData() {
  method imageData (line 12919) | set imageData(value2) {
  method rotation (line 12925) | get rotation() {
  method rotation (line 12928) | set rotation(value2) {
  method position (line 12934) | get position() {
  method position (line 12937) | set position(value2) {
  method texCoord0 (line 12943) | get texCoord0() {
  method texCoord0 (line 12946) | set texCoord0(value2) {
  method texCoord1 (line 12952) | get texCoord1() {
  method texCoord1 (line 12955) | set texCoord1(value2) {
  method minBoundsX (line 12961) | get minBoundsX() {
  method minBoundsX (line 12964) | set minBoundsX(value2) {
  method minBoundsY (line 12970) | get minBoundsY() {
  method minBoundsY (line 12973) | set minBoundsY(value2) {
  method minBoundsZ (line 12979) | get minBoundsZ() {
  method minBoundsZ (line 12982) | set minBoundsZ(value2) {
  method maxBoundsX (line 12988) | get maxBoundsX() {
  method maxBoundsX (line 12991) | set maxBoundsX(value2) {
  method maxBoundsY (line 12997) | get maxBoundsY() {
  method maxBoundsY (line 13000) | set maxBoundsY(value2) {
  method maxBoundsZ (line 13006) | get maxBoundsZ() {
  method maxBoundsZ (line 13009) | set maxBoundsZ(value2) {
  method constructor (line 13015) | constructor(core, options2) {
  class ImageQuad (line 13037) | class ImageQuad extends ImageBase$1 {
    method width (line 13038) | get width() {
    method width (line 13041) | set width(value2) {
    method height (line 13047) | get height() {
    method height (line 13050) | set height(value2) {
    method constructor (line 13056) | constructor(core, options2) {
    method initialize (line 13064) | initialize() {
    method update (line 13070) | update(elapsedTime) {
  class BoundsHelper (line 13092) | class BoundsHelper {
    method rotateBounds (line 13093) | static rotateBounds(minBounds, maxBounds, rotation2, rotatedMinBounds,...
    method cylinder (line 13116) | static cylinder(pa2, pb, radius2, minBounds, maxBounds) {
  class LayoutBase (line 13131) | class LayoutBase {
    method facetScaling (line 13132) | get facetScaling() {
    method offsetX (line 13135) | offsetX(facetCoordX) {
    method offsetY (line 13138) | offsetY(facetCoordY) {
    method offsetZ (line 13141) | offsetZ(facetCoordZ) {
    method constructor (line 13144) | constructor(core) {
    method _updateModelBounds (line 13171) | _updateModelBounds(options2) {
    method resetCumulativeLayoutBounds (line 13208) | resetCumulativeLayoutBounds() {
    method _updateCumulativeLayoutBounds (line 13216) | _updateCumulativeLayoutBounds() {
    method unitToModelSize (line 13224) | unitToModelSize(unitSize) {
    method unitToModelPositionX (line 13227) | unitToModelPositionX(unitPositionX) {
    method unitToModelPositionY (line 13230) | unitToModelPositionY(unitPositionY) {
    method unitToModelPositionZ (line 13233) | unitToModelPositionZ(unitPositionZ) {
    method unitToModelPosition (line 13236) | unitToModelPosition(unitPosition, modelPosition) {
    method modelToUnitSize (line 13241) | modelToUnitSize(modelSize) {
    method modelToUnitPositionX (line 13244) | modelToUnitPositionX(modelPositionX) {
    method modelToUnitPositionY (line 13247) | modelToUnitPositionY(modelPositionY) {
    method modelToUnitPositionZ (line 13250) | modelToUnitPositionZ(modelPositionZ) {
    method modelToUnitPosition (line 13253) | modelToUnitPosition(modelPosition, unitPosition) {
    method inclusiveUnitBounds (line 13258) | inclusiveUnitBounds(buffer, ids, unitType, offset2, count2, minBounds,...
  class Scatter (line 13346) | class Scatter extends LayoutBase {
    method layout (line 13347) | layout(buffer, ids, options2) {
    method update (line 13383) | update(buffer, ids, options2) {
  class PathHelper (line 13537) | class PathHelper {
    method getFilenameWithoutExtension (line 13538) | static getFilenameWithoutExtension(path2) {
    method getExtension (line 13547) | static getExtension(path2) {
    method getFilename (line 13555) | static getFilename(path2) {
    method getPath (line 13563) | static getPath(path2) {
    method combine (line 13570) | static combine(first, second2) {
  class TextureHelper (line 13587) | class TextureHelper {
    method create (line 13588) | static create(gl, width2, height2, format2, type2, filter2, bytes, int...
    method fromImage (line 13598) | static fromImage(gl, image2, mipmaps, filter2) {
    method cubemapFromImages (line 13613) | static cubemapFromImages(gl, images) {
  class Line (line 13634) | class Line extends LayoutBase {
    method layout (line 13635) | layout(buffer, ids, fromIds, toIds, options2) {
    method update (line 13737) | update(buffer, ids, fromIds, toIds, options2) {
  class AtlasBase (line 13869) | class AtlasBase {
    method imageData (line 13870) | get imageData() {
    method imageData (line 13873) | set imageData(value2) {
    method constructor (line 13879) | constructor() {
    method copyFrom (line 13882) | copyFrom(atlas) {
    method update (line 13890) | update() {
  class BufferBase (line 13895) | class BufferBase {
    method isInitialized (line 13896) | get isInitialized() {
    method ids (line 13899) | get ids() {
    method dataView (line 13902) | get dataView() {
    method vertices (line 13905) | get vertices() {
    method lookup (line 13908) | get lookup() {
    method length (line 13911) | get length() {
    method selected (line 13914) | get selected() {
    method constructor (line 13917) | constructor(core, ids) {
    method createShared (line 13934) | createShared() {
    method copyFrom (line 13940) | copyFrom(buffer) {
    method update (line 13978) | update() {
    method updateSelection (line 13980) | updateSelection(options2) {
  class TransitionBufferBase (line 13996) | class TransitionBufferBase {
    method pickIdLookup (line 13997) | get pickIdLookup() {
    method currentBuffer (line 14000) | get currentBuffer() {
    method previousBuffer (line 14003) | get previousBuffer() {
    method currentPalette (line 14006) | get currentPalette() {
    method previousPalette (line 14009) | get previousPalette() {
    method currentAtlas (line 14012) | get currentAtlas() {
    method previousAtlas (line 14015) | get previousAtlas() {
    method isInitialized (line 14018) | get isInitialized() {
    method length (line 14021) | get length() {
    method constructor (line 14024) | constructor(core, ids, bufferType, paletteType, atlasType) {
    method swap (line 14063) | swap() {
    method copyFrom (line 14066) | copyFrom(transitionBuffer) {
  method constructor (line 14087) | constructor(core, ids) {
  method constructor (line 14092) | constructor(core, ids) {
  class DebugAxes (line 14096) | class DebugAxes {
    method vertices (line 14097) | get vertices() {
    method indices (line 14100) | get indices() {
    method indexCount (line 14103) | get indexCount() {
    method isInitialized (line 14106) | get isInitialized() {
    method initialize (line 14109) | initialize() {
    method update (line 14154) | update(elapsedTime) {
    method _createAxis (line 14156) | _createAxis(axisVertices, axisIndices2, verticesView, indices, color2,...
  function adopt (line 14172) | function adopt(value2) {
  function fulfilled (line 14178) | function fulfilled(value2) {
  function rejected (line 14185) | function rejected(value2) {
  function step (line 14192) | function step(result) {
  class RendererConfig (line 14198) | class RendererConfig {
    method reset (line 14199) | reset() {
  class RendererBase (line 14202) | class RendererBase {
    method isInitialized (line 14203) | get isInitialized() {
    method config (line 14206) | get config() {
    method devicePixelRatio (line 14209) | get devicePixelRatio() {
    method width (line 14212) | get width() {
    method width (line 14215) | set width(value2) {
    method height (line 14218) | get height() {
    method height (line 14221) | set height(value2) {
    method webXRReferenceSpace (line 14224) | get webXRReferenceSpace() {
    method pickedType (line 14227) | get pickedType() {
    method pickedId (line 14230) | get pickedId() {
    method isCapturingPickImage (line 14233) | get isCapturingPickImage() {
    method capturePickImage (line 14236) | capturePickImage() {
    method backgroundColor (line 14239) | get backgroundColor() {
    method backgroundColor (line 14242) | set backgroundColor(value2) {
    method ambientColor (line 14247) | get ambientColor() {
    method ambientColor (line 14250) | set ambientColor(value2) {
    method currentAxes (line 14255) | get currentAxes() {
    method currentAxes (line 14258) | set currentAxes(value2) {
    method previousAxes (line 14265) | get previousAxes() {
    method previousAxes (line 14268) | set previousAxes(value2) {
    method swapAxes (line 14275) | swapAxes() {
    method createCartesian2dAxesVisual (line 14278) | createCartesian2dAxesVisual(axes) {
    method createCartesian3dAxesVisual (line 14281) | createCartesian3dAxesVisual(axes) {
    method _createDebugAxesVisual (line 14284) | _createDebugAxesVisual(debugAxes) {
    method createLabelSetVisual (line 14287) | createLabelSetVisual(labelSet) {
    method createControllerVisual (line 14290) | createControllerVisual(controller) {
    method createTransitionBuffer (line 14293) | createTransitionBuffer(ids) {
    method createImageVisual (line 14296) | createImageVisual(image2) {
    method createFontVisual (line 14299) | createFontVisual(font2) {
    method constructor (line 14302) | constructor(options2) {
    method isWebXRSupported (line 14306) | get isWebXRSupported() {
    method initialize (line 14309) | initialize(core) {
    method remove (line 14344) | remove() {
    method finalize (line 14347) | finalize() {
    method setSize (line 14350) | setSize(elapsedTime) {
    method _resize (line 14376) | _resize(width2, height2) {
    method update (line 14384) | update(elapsedTime) {
    method getVertexPosition (line 14500) | getVertexPosition(position2, pickedId) {
    method render (line 14512) | render(elapsedTime, xrFrame) {
    method prepare (line 14516) | prepare(xrFrame) {
    method initializeWebXR (line 14518) | initializeWebXR(session) {
  method isInitialized (line 14523) | get isInitialized() {
  method vertexBuffer (line 14526) | get vertexBuffer() {
  method indexBuffer (line 14529) | get indexBuffer() {
  method indexCount (line 14532) | get indexCount() {
  method initializeContext (line 14535) | initializeContext(gl) {
  method texture (line 14552) | get texture() {
  method defaultTexture (line 14555) | get defaultTexture() {
  method initializeContext (line 14558) | initializeContext(core, gl) {
  method update (line 14563) | update() {
  method _updateTexture (line 14570) | _updateTexture() {
  method texture (line 14579) | get texture() {
  method defaultTexture (line 14582) | get defaultTexture() {
  method initializeContext (line 14585) | initializeContext(core, gl) {
  method update (line 14590) | update() {
  method _updateTexture (line 14597) | _updateTexture() {
  method vertexBuffer (line 14610) | get vertexBuffer() {
  method initializeContext (line 14613) | initializeContext(gl) {
  method update (line 14620) | update() {
  method constructor (line 14630) | constructor(core, ids) {
  method initializeContext (line 14633) | initializeContext(gl) {
  method constructor (line 14644) | constructor() {
  method reset (line 14648) | reset() {
  method bindFramebuffer (line 14670) | bindFramebuffer(framebuffer) {
  method initializeContext (line 14676) | initializeContext(gl) {
  method isInitialized (line 14715) | get isInitialized() {
  method vertexBuffer (line 14718) | get vertexBuffer() {
  method vertexBuffer (line 14721) | set vertexBuffer(value2) {
  method indexBuffer (line 14727) | get indexBuffer() {
  method indexBuffer (line 14730) | set indexBuffer(value2) {
  method constructor (line 14736) | constructor(core, main) {
  method initializeContext (line 14740) | initializeContext(gl) {
  method _createProgram (line 14743) | _createProgram(vs, fs) {
  method _compileShader (line 14753) | _compileShader(source2, type2) {
  method _removeDirective (line 14762) | _removeDirective(shaderSource, directive) {
  method prepare (line 14768) | prepare() {
  method apply (line 14785) | apply() {
  method applyModel (line 14787) | applyModel() {
  method applyView (line 14789) | applyView() {
  method enableProgram (line 14791) | enableProgram(program) {
  method updateBuffers (line 14796) | updateBuffers() {
  method updateTextures (line 14799) | updateTextures() {
  method disableProgram (line 14802) | disableProgram() {
  method _shaderFromFile (line 14806) | _shaderFromFile(vsName, fsName, callback) {
  method _shaderFromUrl (line 14809) | _shaderFromUrl(vsName, fsName, callback) {
  method _sourceFromUrl (line 14820) | _sourceFromUrl(url, callback) {
  method _includesFromFile (line 14830) | _includesFromFile(source2) {
  method _includesFromUrl (line 14844) | _includesFromUrl(source2, index2, callback) {
  method initializeContext (line 14860) | initializeContext(gl) {
  method _initializeShader (line 14873) | _initializeShader(gl, vsSource, fsSource) {
  method apply (line 14884) | apply() {
  method applyView (line 14887) | applyView() {
  method updateBuffers (line 14891) | updateBuffers() {
  method texture2D (line 14902) | get texture2D() {
  method texture2D (line 14905) | set texture2D(value2) {
  method initializeContext (line 14911) | initializeContext(gl) {
  method _initializeShader (line 14924) | _initializeShader(gl, vsSource, fsSource) {
  method apply (line 14938) | apply() {
  method applyView (line 14942) | applyView() {
  method updateBuffers (line 14947) | updateBuffers() {
  method updateTextures (line 14958) | updateTextures() {
  method initializeContext (line 14965) | initializeContext(gl) {
  method _initializeShader (line 14978) | _initializeShader(gl, vsSource, fsSource) {
  method apply (line 14990) | apply() {
  method applyView (line 14994) | applyView() {
  method updateBuffers (line 14998) | updateBuffers() {
  class Model (line 15008) | class Model extends ShaderBase$1 {
    method texture2D (line 15009) | get texture2D() {
    method texture2D (line 15012) | set texture2D(value2) {
    method initializeContext (line 15018) | initializeContext(gl) {
    method _initializeShader (line 15031) | _initializeShader(gl, vsSource, fsSource) {
    method apply (line 15048) | apply() {
    method applyView (line 15054) | applyView() {
    method updateBuffers (line 15060) | updateBuffers() {
    method updateTextures (line 15071) | updateTextures() {
  method texture2D (line 15078) | get texture2D() {
  method texture2D (line 15081) | set texture2D(value2) {
  method initializeContext (line 15087) | initializeContext(gl) {
  method _initializeShader (line 15103) | _initializeShader(gl, vsSource, fsSource) {
  method apply (line 15124) | apply() {
  method applyModel (line 15134) | applyModel() {
  method applyView (line 15137) | applyView() {
  method updateBuffers (line 15142) | updateBuffers() {
  method updateTextures (line 15153) | updateTextures() {
  method initializeContext (line 15160) | initializeContext(gl) {
  method _initializeShader (line 15176) | _initializeShader(gl, vsSource, fsSource) {
  method apply (line 15204) | apply() {
  method applyView (line 15216) | applyView() {
  method ApplyFace (line 15221) | ApplyFace() {
  method updateBuffers (line 15227) | updateBuffers() {
  method paletteTexture (line 15244) | get paletteTexture() {
  method paletteTexture (line 15247) | set paletteTexture(value2) {
  method previousPaletteTexture (line 15253) | get previousPaletteTexture() {
  method previousPaletteTexture (line 15256) | set previousPaletteTexture(value2) {
  method sdfTexture (line 15262) | get sdfTexture() {
  method sdfTexture (line 15265) | set sdfTexture(value2) {
  method previousSdfTexture (line 15271) | get previousSdfTexture() {
  method previousSdfTexture (line 15274) | set previousSdfTexture(value2) {
  method instanceBuffer (line 15280) | set instanceBuffer(value2) {
  method previousInstanceBuffer (line 15286) | set previousInstanceBuffer(value2) {
  method initializeData (line 15292) | initializeData() {
  method _initializeShader (line 15295) | _initializeShader(gl, vsSource, fsSource) {
  method updateBuffers (line 15342) | updateBuffers() {
  method _updateCurrentBuffer (line 15351) | _updateCurrentBuffer() {
  method _updatePreviousBuffer (line 15373) | _updatePreviousBuffer() {
  method apply (line 15388) | apply() {
  method applyView (line 15406) | applyView() {
  method updateTextures (line 15413) | updateTextures() {
  method disableProgram (line 15419) | disableProgram() {
  method initializeContext (line 15436) | initializeContext(gl) {
  method _initializeShader (line 15453) | _initializeShader(gl, vsSource, fsSource) {
  method _updateCurrentBuffer (line 15459) | _updateCurrentBuffer() {
  method _updatePreviousBuffer (line 15469) | _updatePreviousBuffer() {
  method disableProgram (line 15479) | disableProgram() {
  method initializeContext (line 15487) | initializeContext(gl) {
  method _initializeShader (line 15503) | _initializeShader(gl, vsSource, fsSource) {
  method _updateCurrentBuffer (line 15507) | _updateCurrentBuffer() {
  method _updatePreviousBuffer (line 15514) | _updatePreviousBuffer() {
  method initializeContext (line 15523) | initializeContext(gl) {
  method _initializeShader (line 15539) | _initializeShader(gl, vsSource, fsSource) {
  method _updateCurrentBuffer (line 15545) | _updateCurrentBuffer() {
  method _updatePreviousBuffer (line 15555) | _updatePreviousBuffer() {
  method disableProgram (line 15565) | disableProgram() {
  class UnitHexPrism (line 15572) | class UnitHexPrism extends UnitShader$1 {
    method initializeContext (line 15573) | initializeContext(gl) {
    method _initializeShader (line 15589) | _initializeShader(gl, vsSource, fsSource) {
    method _updateCurrentBuffer (line 15595) | _updateCurrentBuffer() {
    method _updatePreviousBuffer (line 15605) | _updatePreviousBuffer() {
    method disableProgram (line 15615) | disableProgram() {
  method initializeContext (line 15623) | initializeContext(gl) {
  method _initializeShader (line 15640) | _initializeShader(gl, vsSource, fsSource) {
  method _updateCurrentBuffer (line 15652) | _updateCurrentBuffer() {
  method _updatePreviousBuffer (line 15665) | _updatePreviousBuffer() {
  method apply (line 15678) | apply() {
  method updateTextures (line 15685) | updateTextures() {
  method disableProgram (line 15692) | disableProgram() {
  class Anaglyph (line 15701) | class Anaglyph extends ShaderBase$1 {
    method texture2D1 (line 15702) | get texture2D1() {
    method texture2D1 (line 15705) | set texture2D1(value2) {
    method texture2D2 (line 15711) | get texture2D2() {
    method texture2D2 (line 15714) | set texture2D2(value2) {
    method initializeContext (line 15720) | initializeContext(gl) {
    method _initializeShader (line 15733) | _initializeShader(gl, vsSource, fsSource) {
    method apply (line 15743) | apply() {
    method updateBuffers (line 15748) | updateBuffers() {
    method updateTextures (line 15755) | updateTextures() {
  class DebugAxesVisual (line 15764) | class DebugAxesVisual {
    method isInitialized (line 15765) | get isInitialized() {
    method constructor (line 15768) | constructor(core, main, debugAxes) {
    method initializeContext (line 15773) | initializeContext(gl) {
    method update (line 15786) | update(elapsedTime) {
    method render (line 15788) | render(elapsedTime, xrFrame) {
  method isInitialized (line 15810) | get isInitialized() {
  method axes (line 15813) | get axes() {
  method constructor (line 15816) | constructor(core) {
  method initializeContext (line 15820) | initializeContext(gl) {
  method update (line 15823) | update(elapsedTime) {
  method render (line 15825) | render(elapsedTime, xrFrame) {
  method _renderGrid (line 15831) | _renderGrid() {
  method _renderText (line 15833) | _renderText() {
  method isInitialized (line 15837) | get isInitialized() {
  method constructor (line 15840) | constructor(core, main, cartesian2dAxes) {
  method initializeContext (line 15848) | initializeContext(gl) {
  method _createGridBuffers (line 15862) | _createGridBuffers() {
  method _createTextBuffers (line 15873) | _createTextBuffers() {
  method update (line 15884) | update(elapsedTime) {
  method _renderText (line 15909) | _renderText() {
  method _renderGrid (line 16016) | _renderGrid() {
  method _renderGridTicks (line 16064) | _renderGridTicks(axisId, edgeId, width2, height2) {
  method _renderGridFace (line 16092) | _renderGridFace(faceId, width2, height2) {
  method isInitialized (line 16122) | get isInitialized() {
  method constructor (line 16125) | constructor(core, main, cartesian3dAxes) {
  method initializeContext (line 16133) | initializeContext(gl) {
  method _createGridBuffers (line 16147) | _createGridBuffers() {
  method _createTextBuffers (line 16158) | _createTextBuffers() {
  method update (line 16169) | update(elapsedTime) {
  method _renderText (line 16194) | _renderText() {
  method _renderGrid (line 16303) | _renderGrid() {
  method _renderGridTicks (line 16355) | _renderGridTicks(axisId, edgeId, width2, height2) {
  method _renderGridFace (line 16383) | _renderGridFace(faceId, width2, height2) {
  class ControllerVisual (line 16412) | class ControllerVisual {
    method isInitialized (line 16413) | get isInitialized() {
    method controller (line 16416) | get controller() {
    method constructor (line 16419) | constructor(core, main, controller) {
    method initializeContext (line 16431) | initializeContext(gl) {
    method _initialize (line 16437) | _initialize(gl) {
    method update (line 16454) | update(elapsedTime) {
    method render (line 16456) | render(elapsedTime, xrFrame) {
  method isInitialized (line 16501) | get isInitialized() {
  method image (line 16504) | get image() {
  method constructor (line 16507) | constructor(core, main, image2) {
  method initializeContext (line 16517) | initializeContext(gl) {
  method update (line 16533) | update(elapsedTime) {
  method render (line 16541) | render(elapsedTime, xrFrame) {
  method isInitialized (line 16574) | get isInitialized() {
  method constructor (line 16577) | constructor(core, main, label2) {
  method initializeContext (line 16588) | initializeContext(gl) {
  method update (line 16601) | update(elapsedTime) {
  method render (line 16611) | render(elapsedTime, xrFrame) {
  method label (line 16656) | get label() {
  method text (line 16659) | set text(value2) {
  method text (line 16662) | get text() {
  method constructor (line 16665) | constructor(core, main, label2) {
  method label (line 16670) | get label() {
  method constructor (line 16673) | constructor(core, main, label2) {
  method isInitialized (line 16678) | get isInitialized() {
  method font (line 16681) | get font() {
  method constructor (line 16684) | constructor(core, font2) {
  method initializeContext (line 16691) | initializeContext(gl) {
  method update (line 16698) | update() {
  method isInitialized (line 16707) | get isInitialized() {
  method vertexBuffer (line 16710) | get vertexBuffer() {
  method indexBuffer (line 16713) | get indexBuffer() {
  method indexCount (line 16716) | get indexCount() {
  method initializeContext (line 16719) | initializeContext(gl) {
  function adopt (line 16733) | function adopt(value2) {
  function fulfilled (line 16739) | function fulfilled(value2) {
  function rejected (line 16746) | function rejected(value2) {
  function step (line 16753) | function step(result) {
  method shaderResources (line 16760) | get shaderResources() {
  method colorShader (line 16763) | get colorShader() {
  method textureShader (line 16766) | get textureShader() {
  method lassoShader (line 16769) | get lassoShader() {
  method modelShader (line 16772) | get modelShader() {
  method sdfTextShader (line 16775) | get sdfTextShader() {
  method gridShader (line 16778) | get gridShader() {
  method blockShader (line 16781) | get blockShader() {
  method sphereShader (line 16784) | get sphereShader() {
  method cyclinderShader (line 16787) | get cyclinderShader() {
  method hexPrismShader (line 16790) | get hexPrismShader() {
  method sdfShader (line 16793) | get sdfShader() {
  method anaglyphShader (line 16796) | get anaglyphShader() {
  method currentAxes (line 16799) | get currentAxes() {
  method currentAxes (line 16802) | set currentAxes(value2) {
  method previousAxes (line 16809) | get previousAxes() {
  method previousAxes (line 16812) | set previousAxes(value2) {
  method config (line 16819) | get config() {
  method constructor (line 16822) | constructor(options2) {
  method isSupported (line 16837) | get isSupported() {
  method isWebXRSupported (line 16840) | get isWebXRSupported() {
  method initialize (line 16843) | initialize(core) {
  method _initializeContext (line 16871) | _initializeContext(gl) {
  method _resize (line 16928) | _resize(width2, height2) {
  method _createContext (line 16944) | _createContext(canvas) {
  method initializeWebXR (line 16954) | initializeWebXR(session) {
  method prepare (line 16970) | prepare(xrFrame) {
  method createTransitionBuffer (line 17060) | createTransitionBuffer(ids) {
  method createControllerVisual (line 17065) | createControllerVisual(controller) {
  method createCartesian2dAxesVisual (line 17070) | createCartesian2dAxesVisual(axes) {
  method createCartesian3dAxesVisual (line 17075) | createCartesian3dAxesVisual(axes) {
  method _createDebugAxesVisual (line 17080) | _createDebugAxesVisual(debugAxes) {
  method _createLabelVisual (line 17083) | _createLabelVisual(label2) {
  method createLabelSetVisual (line 17086) | createLabelSetVisual(labelSet) {
  method createImageVisual (line 17091) | createImageVisual(image2) {
  method createFontVisual (line 17096) | createFontVisual(font2) {
  method getDataUrl (line 17101) | getDataUrl(mimeType) {
  method render (line 17104) | render(elapsedTime, xrFrame) {
  method _renderTransitionBuffer (line 17261) | _renderTransitionBuffer(xrFrame, transitionBuffer) {
  method isInitialized (line 17580) | get isInitialized() {
  method vertexBuffer (line 17583) | get vertexBuffer() {
  method indexBuffer (line 17586) | get indexBuffer() {
  method indexCount (line 17589) | get indexCount() {
  method initializeContext (line 17592) | initializeContext(gl) {
  class Atlas (line 17608) | class Atlas extends AtlasBase {
    method texture (line 17609) | get texture() {
    method defaultTexture (line 17612) | get defaultTexture() {
    method initializeContext (line 17615) | initializeContext(core, gl) {
    method update (line 17620) | update() {
    method _updateTexture (line 17627) | _updateTexture() {
  method texture (line 17636) | get texture() {
  method defaultTexture (line 17639) | get defaultTexture() {
  method initializeContext (line 17642) | initializeContext(core, gl) {
  method update (line 17647) | update() {
  method _updateTexture (line 17654) | _updateTexture() {
  method vertexBuffer (line 17667) | get vertexBuffer() {
  method constructor (line 17670) | constructor(core, ids) {
  method initializeContext (line 17673) | initializeContext(gl) {
  method update (line 17680) | update() {
  class TransitionBuffer (line 17689) | class TransitionBuffer extends TransitionBufferBase {
    method constructor (line 17690) | constructor(core, ids) {
    method initializeContext (line 17693) | initializeContext(gl) {
  class Config (line 17703) | class Config extends RendererConfig {
    method keyLightAltitude (line 17704) | get keyLightAltitude() {
    method keyLightAltitude (line 17707) | set keyLightAltitude(value2) {
    method keyLightAzimuth (line 17711) | get keyLightAzimuth() {
    method keyLightAzimuth (line 17714) | set keyLightAzimuth(value2) {
    method keyLightDistance (line 17718) | get keyLightDistance() {
    method keyLightDistance (line 17721) | set keyLightDistance(value2) {
    method fillLight1Altitude (line 17725) | get fillLight1Altitude() {
    method fillLight1Altitude (line 17728) | set fillLight1Altitude(value2) {
    method fillLight1Azimuth (line 17732) | get fillLight1Azimuth() {
    method fillLight1Azimuth (line 17735) | set fillLight1Azimuth(value2) {
    method fillLight2Altitude (line 17739) | get fillLight2Altitude() {
    method fillLight2Altitude (line 17742) | set fillLight2Altitude(value2) {
    method fillLight2Azimuth (line 17746) | get fillLight2Azimuth() {
    method fillLight2Azimuth (line 17749) | set fillLight2Azimuth(value2) {
    method constructor (line 17753) | constructor() {
    method _updateLights (line 17761) | _updateLights() {
    method _updateLight (line 17766) | _updateLight(altitude, azimuth, distance2, position2) {
    method reset (line 17772) | reset() {
  class Resources (line 17809) | class Resources {
    method bindFramebuffer (line 17810) | bindFramebuffer(framebuffer) {
    method initializeContext (line 17816) | initializeContext(gl) {
  class ShaderBase (line 17857) | class ShaderBase {
    method isInitialized (line 17858) | get isInitialized() {
    method vertexBuffer (line 17861) | get vertexBuffer() {
    method vertexBuffer (line 17864) | set vertexBuffer(value2) {
    method indexBuffer (line 17870) | get indexBuffer() {
    method indexBuffer (line 17873) | set indexBuffer(value2) {
    method constructor (line 17879) | constructor(core, main) {
    method initializeContext (line 17883) | initializeContext(gl) {
    method _createProgram (line 17886) | _createProgram(vs, fs) {
    method _compileShader (line 17896) | _compileShader(source2, type2) {
    method _removeDirective (line 17905) | _removeDirective(shaderSource, directive) {
    method prepare (line 17911) | prepare() {
    method apply (line 17928) | apply() {
    method applyModel (line 17930) | applyModel() {
    method applyView (line 17932) | applyView() {
    method enableProgram (line 17934) | enableProgram(program) {
    method updateBuffers (line 17939) | updateBuffers() {
    method updateTextures (line 17942) | updateTextures() {
    method disableProgram (line 17945) | disableProgram() {
    method _shaderFromFile (line 17949) | _shaderFromFile(vsName, fsName, callback) {
    method _shaderFromUrl (line 17952) | _shaderFromUrl(vsName, fsName, callback) {
    method _sourceFromUrl (line 17963) | _sourceFromUrl(url, callback) {
    method _includesFromFile (line 17973) | _includesFromFile(source2) {
    method _includesFromUrl (line 17987) | _includesFromUrl(source2, index2, callback) {
  class Texture (line 18002) | class Texture extends ShaderBase {
    method texture2D (line 18003) | get texture2D() {
    method texture2D (line 18006) | set texture2D(value2) {
    method initializeContext (line 18012) | initializeContext(gl) {
    method _initializeShader (line 18025) | _initializeShader(gl, vsSource, fsSource) {
    method apply (line 18038) | apply() {
    method applyView (line 18042) | applyView() {
    method updateBuffers (line 18046) | updateBuffers() {
    method updateTextures (line 18057) | updateTextures() {
  method initializeContext (line 18064) | initializeContext(gl) {
  method _initializeShader (line 18077) | _initializeShader(gl, vsSource, fsSource) {
  method apply (line 18089) | apply() {
  method applyView (line 18093) | applyView() {
  method updateBuffers (line 18097) | updateBuffers() {
  class SdfText (line 18107) | class SdfText extends ShaderBase {
    method texture2D (line 18108) | get texture2D() {
    method texture2D (line 18111) | set texture2D(value2) {
    method initializeContext (line 18117) | initializeContext(gl) {
    method _initializeShader (line 18130) | _initializeShader(gl, vsSource, fsSource) {
    method apply (line 18151) | apply() {
    method applyModel (line 18161) | applyModel() {
    method applyView (line 18164) | applyView() {
    method updateBuffers (line 18169) | updateBuffers() {
    method updateTextures (line 18180) | updateTextures() {
  class PickGrid (line 18186) | class PickGrid extends ShaderBase {
    method initializeContext (line 18187) | initializeContext(gl) {
    method _initializeShader (line 18200) | _initializeShader(gl, vsSource, fsSource) {
    method apply (line 18227) | apply() {
    method applyView (line 18238) | applyView() {
    method ApplyFace (line 18243) | ApplyFace() {
    method updateBuffers (line 18249) | updateBuffers() {
  class UnitShader (line 18265) | class UnitShader extends ShaderBase {
    method paletteTexture (line 18266) | get paletteTexture() {
    method paletteTexture (line 18269) | set paletteTexture(value2) {
    method previousPaletteTexture (line 18275) | get previousPaletteTexture() {
    method previousPaletteTexture (line 18278) | set previousPaletteTexture(value2) {
    method sdfTexture (line 18284) | get sdfTexture() {
    method sdfTexture (line 18287) | set sdfTexture(value2) {
    method previousSdfTexture (line 18293) | get previousSdfTexture() {
    method previousSdfTexture (line 18296) | set previousSdfTexture(value2) {
    method instanceBuffer (line 18302) | set instanceBuffer(value2) {
    method previousInstanceBuffer (line 18308) | set previousInstanceBuffer(value2) {
    method initializeData (line 18314) | initializeData() {
    method _initializeShader (line 18317) | _initializeShader(gl, vsSource, fsSource) {
    method updateBuffers (line 18356) | updateBuffers() {
    method _updateCurrentBuffer (line 18365) | _updateCurrentBuffer() {
    method _updatePreviousBuffer (line 18386) | _updatePreviousBuffer() {
    method apply (line 18400) | apply() {
    method applyView (line 18411) | applyView() {
    method updateTextures (line 18417) | updateTextures() {
    method disableProgram (line 18423) | disableProgram() {
  class UnitBlock (line 18438) | class UnitBlock extends UnitShader {
    method initializeContext (line 18439) | initializeContext(gl) {
    method _initializeShader (line 18452) | _initializeShader(gl, vsSource, fsSource) {
    method _updateCurrentBuffer (line 18458) | _updateCurrentBuffer() {
    method _updatePreviousBuffer (line 18467) | _updatePreviousBuffer() {
    method disableProgram (line 18476) | disableProgram() {
  class UnitSphere (line 18482) | class UnitSphere extends UnitShader {
    method initializeContext (line 18483) | initializeContext(gl) {
    method _initializeShader (line 18496) | _initializeShader(gl, vsSource, fsSource) {
    method _updateCurrentBuffer (line 18500) | _updateCurrentBuffer() {
    method _updatePreviousBuffer (line 18506) | _updatePreviousBuffer() {
  class UnitCylinder (line 18513) | class UnitCylinder extends UnitShader {
    method initializeContext (line 18514) | initializeContext(gl) {
    method _initializeShader (line 18527) | _initializeShader(gl, vsSource, fsSource) {
    method _updateCurrentBuffer (line 18533) | _updateCurrentBuffer() {
    method _updatePreviousBuffer (line 18542) | _updatePreviousBuffer() {
    method disableProgram (line 18551) | disableProgram() {
  class UnitSdf (line 18557) | class UnitSdf extends UnitShader {
    method initializeContext (line 18558) | initializeContext(gl) {
    method _initializeShader (line 18571) | _initializeShader(gl, vsSource, fsSource) {
    method _updateCurrentBuffer (line 18581) | _updateCurrentBuffer() {
    method _updatePreviousBuffer (line 18593) | _updatePreviousBuffer() {
    method apply (line 18605) | apply() {
    method updateTextures (line 18610) | updateTextures() {
    method disableProgram (line 18617) | disableProgram() {
  class Background (line 18625) | class Background extends ShaderBase {
    method constructor (line 18626) | constructor(core, main) {
    method initializeContext (line 18630) | initializeContext(gl) {
    method _initializeShader (line 18644) | _initializeShader(gl, vsSource, fsSource) {
    method apply (line 18659) | apply() {
    method updateBuffers (line 18662) | updateBuffers() {
  class Ssao (line 18667) | class Ssao extends ShaderBase {
    method texture2D1 (line 18668) | get texture2D1() {
    method texture2D1 (line 18671) | set texture2D1(value2) {
    method texture2D2 (line 18677) | get texture2D2() {
    method texture2D2 (line 18680) | set texture2D2(value2) {
    method texture2D3 (line 18686) | get texture2D3() {
    method texture2D3 (line 18689) | set texture2D3(value2) {
    method initializeContext (line 18695) | initializeContext(gl) {
    method _initializeShader (line 18708) | _initializeShader(gl, vsSource, fsSource) {
    method apply (line 18724) | apply() {
    method applyView (line 18734) | applyView() {
    method updateBuffers (line 18737) | updateBuffers() {
    method updateTextures (line 18744) | updateTextures() {
  class Box (line 18754) | class Box extends ShaderBase {
    method texture2D (line 18755) | get texture2D() {
    method texture2D (line 18758) | set texture2D(value2) {
    method initializeContext (line 18764) | initializeContext(gl) {
    method _initializeShader (line 18777) | _initializeShader(gl, vsSource, fsSource) {
    method apply (line 18786) | apply() {
    method updateBuffers (line 18790) | updateBuffers() {
    method updateTextures (line 18797) | updateTextures() {
  class Deferred (line 18803) | class Deferred extends ShaderBase {
    method texture2D1 (line 18804) | get texture2D1() {
    method texture2D1 (line 18807) | set texture2D1(value2) {
    method texture2D2 (line 18813) | get texture2D2() {
    method texture2D2 (line 18816) | set texture2D2(value2) {
    method texture2D3 (line 18822) | get texture2D3() {
    method texture2D3 (line 18825) | set texture2D3(value2) {
    method texture2D4 (line 18831) | get texture2D4() {
    method texture2D4 (line 18834) | set texture2D4(value2) {
    method texture2D5 (line 18840) | get texture2D5() {
    method texture2D5 (line 18843) | set texture2D5(value2) {
    method constructor (line 18849) | constructor(core, main) {
    method initializeContext (line 18856) | initializeContext(gl) {
    method _initializeShader (line 18869) | _initializeShader(gl, vsSource, fsSource) {
    method apply (line 18899) | apply() {
    method updateBuffers (line 18924) | updateBuffers() {
    method updateTextures (line 18931) | updateTextures() {
  class Combine (line 18945) | class Combine extends ShaderBase {
    method texture2D1 (line 18946) | get texture2D1() {
    method texture2D1 (line 18949) | set texture2D1(value2) {
    method texture2D2 (line 18955) | get texture2D2() {
    method texture2D2 (line 18958) | set texture2D2(value2) {
    method texture2D3 (line 18964) | get texture2D3() {
    method texture2D3 (line 18967) | set texture2D3(value2) {
    method texture2D4 (line 18973) | get texture2D4() {
    method texture2D4 (line 18976) | set texture2D4(value2) {
    method texture2D5 (line 18982) | get texture2D5() {
    method texture2D5 (line 18985) | set texture2D5(value2) {
    method initializeContext (line 18991) | initializeContext(gl) {
    method _initializeShader (line 19004) | _initializeShader(gl, vsSource, fsSource) {
    method apply (line 19018) | apply() {
    method updateBuffers (line 19027) | updateBuffers() {
    method updateTextures (line 19034) | updateTextures() {
  class DofBlur (line 19048) | class DofBlur extends ShaderBase {
    method texture2D1 (line 19049) | get texture2D1() {
    method texture2D1 (line 19052) | set texture2D1(value2) {
    method texture2D2 (line 19058) | get texture2D2() {
    method texture2D2 (line 19061) | set texture2D2(value2) {
    method initializeContext (line 19067) | initializeContext(gl) {
    method _initializeShader (line 19080) | _initializeShader(gl, vsSource, fsSource) {
    method apply (line 19094) | apply() {
    method updateBuffers (line 19103) | updateBuffers() {
    method updateTextures (line 19111) | updateTextures() {
  class Downsample (line 19119) | class Downsample extends ShaderBase {
    method texture2D (line 19120) | get texture2D() {
    method texture2D (line 19123) | set texture2D(value2) {
    method initializeContext (line 19129) | initializeContext(gl) {
    method _initializeShader (line 19142) | _initializeShader(gl, vsSource, fsSource) {
    method apply (line 19151) | apply() {
    method updateBuffers (line 19155) | updateBuffers() {
    method updateTextures (line 19163) | updateTextures() {
  class Gaussian (line 19169) | class Gaussian extends ShaderBase {
    method texture2D (line 19170) | get texture2D() {
    method texture2D (line 19173) | set texture2D(value2) {
    method initializeContext (line 19179) | initializeContext(gl) {
    method _initializeShader (line 19192) | _initializeShader(gl, vsSource, fsSource) {
    method apply (line 19202) | apply() {
    method updateBuffers (line 19207) | updateBuffers() {
    method updateTextures (line 19215) | updateTextures() {
  class DofCombine (line 19221) | class DofCombine extends ShaderBase {
    method texture2D1 (line 19222) | get texture2D1() {
    method texture2D1 (line 19225) | set texture2D1(value2) {
    method texture2D2 (line 19231) | get texture2D2() {
    method texture2D2 (line 19234) | set texture2D2(value2) {
    method texture2D3 (line 19240) | get texture2D3() {
    method texture2D3 (line 19243) | set texture2D3(value2) {
    method initializeContext (line 19249) | initializeContext(gl) {
    method _initializeShader (line 19262) | _initializeShader(gl, vsSource, fsSource) {
    method apply (line 19275) | apply() {
    method updateBuffers (line 19283) | updateBuffers() {
    method updateTextures (line 19291) | updateTextures() {
  class Fxaa (line 19301) | class Fxaa extends ShaderBase {
    method texture2D (line 19302) | get texture2D() {
    method texture2D (line 19305) | set texture2D(value2) {
    method initializeContext (line 19311) | initializeContext(gl) {
    method _initializeShader (line 19324) | _initializeShader(gl, vsSource, fsSource) {
    method apply (line 19333) | apply() {
    method updateBuffers (line 19337) | updateBuffers() {
    method updateTextures (line 19345) | updateTextures() {
  class Bright (line 19351) | class Bright extends ShaderBase {
    method texture2D (line 19352) | get texture2D() {
    method texture2D (line 19355) | set texture2D(value2) {
    method initializeContext (line 19361) | initializeContext(gl) {
    method _initializeShader (line 19374) | _initializeShader(gl, vsSource, fsSource) {
    method apply (line 19383) | apply() {
    method updateBuffers (line 19387) | updateBuffers() {
    method updateTextures (line 19395) | updateTextures() {
  class AxesVisualBase (line 19401) | class AxesVisualBase {
    method isInitialized (line 19402) | get isInitialized() {
    method axes (line 19405) | get axes() {
    method constructor (line 19408) | constructor(core) {
    method initializeContext (line 19412) | initializeContext(gl) {
    method update (line 19415) | update(elapsedTime) {
    method render (line 19417) | render(elapsedTime, xrFrame) {
    method _renderGrid (line 19423) | _renderGrid() {
    method _renderText (line 19425) | _renderText() {
  class Cartesian2dVisual (line 19428) | class Cartesian2dVisual extends AxesVisualBase {
    method isInitialized (line 19429) | get isInitialized() {
    method constructor (line 19432) | constructor(core, main, cartesian2dAxes) {
    method initializeContext (line 19440) | initializeContext(gl) {
    method _createGridBuffers (line 19454) | _createGridBuffers() {
    method _createTextBuffers (line 19465) | _createTextBuffers() {
    method update (line 19476) | update(elapsedTime) {
    method _renderText (line 19501) | _renderText() {
    method _renderGrid (line 19608) | _renderGrid() {
    method _renderGridTicks (line 19655) | _renderGridTicks(axisId, edgeId, width2, height2) {
    method _renderGridFace (line 19683) | _renderGridFace(faceId, width2, height2) {
  class Cartesian3dVisual (line 19712) | class Cartesian3dVisual extends AxesVisualBase {
    method isInitialized (line 19713) | get isInitialized() {
    method constructor (line 19716) | constructor(core, main, cartesian3dAxes) {
    method initializeContext (line 19724) | initializeContext(gl) {
    method _createGridBuffers (line 19738) | _createGridBuffers() {
    method _createTextBuffers (line 19749) | _createTextBuffers() {
    method update (line 19760) | update(elapsedTime) {
    method _renderText (line 19785) | _renderText() {
    method _renderGrid (line 19894) | _renderGrid() {
    method _renderGridTicks (line 19945) | _renderGridTicks(axisId, edgeId, width2, height2) {
    method _renderGridFace (line 19973) | _renderGridFace(faceId, width2, height2) {
  class FontVisual (line 20002) | class FontVisual {
    method isInitialized (line 20003) | get isInitialized() {
    method font (line 20006) | get font() {
    method constructor (line 20009) | constructor(core, font2) {
    method initializeContext (line 20016) | initializeContext(gl) {
    method update (line 20023) | update() {
  class LabelVisualBase (line 20031) | class LabelVisualBase {
    method isInitialized (line 20032) | get isInitialized() {
    method constructor (line 20035) | constructor(core, main, label2) {
    method initializeContext (line 20046) | initializeContext(gl) {
    method update (line 20059) | update(elapsedTime) {
    method render (line 20068) | render(elapsedTime, xrFrame) {
  class LabelVisual (line 20112) | class LabelVisual extends LabelVisualBase {
    method label (line 20113) | get label() {
    method text (line 20116) | set text(value2) {
    method text (line 20119) | get text() {
    method constructor (line 20122) | constructor(core, main, label2) {
  class LabelSetVisual (line 20126) | class LabelSetVisual extends LabelVisualBase {
    method label (line 20127) | get label() {
    method constructor (line 20130) | constructor(core, main, label2) {
  class ImageVisual (line 20134) | class ImageVisual {
    method isInitialized (line 20135) | get isInitialized() {
    method image (line 20138) | get image() {
    method constructor (line 20141) | constructor(core, main, image2) {
    method initializeContext (line 20151) | initializeContext(gl) {
    method update (line 20167) | update(elapsedTime) {
    method render (line 20175) | render(elapsedTime, xrFrame) {
  class Lasso (line 20196) | class Lasso {
    method isInitialized (line 20197) | get isInitialized() {
    method vertexBuffer (line 20200) | get vertexBuffer() {
    method indexBuffer (line 20203) | get indexBuffer() {
    method indexCount (line 20206) | get indexCount() {
    method initializeContext (line 20209) | initializeContext(gl) {
  function adopt (line 20223) | function adopt(value2) {
  function fulfilled (line 20229) | function fulfilled(value2) {
  function rejected (line 20236) | function rejected(value2) {
  function step (line 20243) | function step(result) {
  class Main (line 20249) | class Main extends RendererBase {
    method shaderResources (line 20250) | get shaderResources() {
    method textureShader (line 20253) | get textureShader() {
    method lassoShader (line 20256) | get lassoShader() {
    method sdfTextShader (line 20259) | get sdfTextShader() {
    method gridShader (line 20262) | get gridShader() {
    method blockShader (line 20265) | get blockShader() {
    method sphereShader (line 20268) | get sphereShader() {
    method cyclinderShader (line 20271) | get cyclinderShader() {
    method sdfShader (line 20274) | get sdfShader() {
    method currentAxes (line 20277) | get currentAxes() {
    method currentAxes (line 20280) | set currentAxes(value2) {
    method previousAxes (line 20287) | get previousAxes() {
    method previousAxes (line 20290) | set previousAxes(value2) {
    method config (line 20297) | get config() {
    method constructor (line 20300) | constructor(options2) {
    method isSupported (line 20316) | get isSupported() {
    method initialize (line 20319) | initialize(core) {
    method _initializeContext (line 20352) | _initializeContext(gl) {
    method _resize (line 20446) | _resize(width2, height2) {
    method _createContext (line 20517) | _createContext(canvas) {
    method prepare (line 20544) | prepare() {
    method createTransitionBuffer (line 20576) | createTransitionBuffer(ids) {
    method createCartesian2dAxesVisual (line 20581) | createCartesian2dAxesVisual(axes) {
    method createCartesian3dAxesVisual (line 20586) | createCartesian3dAxesVisual(axes) {
    method _createLabelVisual (line 20591) | _createLabelVisual(label2) {
    method createLabelSetVisual (line 20594) | createLabelSetVisual(labelSet) {
    method createImageVisual (line 20599) | createImageVisual(image2) {
    method createFontVisual (line 20604) | createFontVisual(font2) {
    method getDataUrl (line 20609) | getDataUrl(mimeType) {
    method update (line 20612) | update(elapsedTime) {
    method render (line 20649) | render(elapsedTime) {
    method _renderTransitionBuffer (line 20767) | _renderTransitionBuffer(transitionBuffer) {
    method _postProcess (line 20978) | _postProcess(vMatrix, inverseVMatrix, pMatrix, viewport) {
  function adopt (line 21246) | function adopt(value2) {
  function fulfilled (line 21252) | function fulfilled(value2) {
  function rejected (line 21259) | function rejected(value2) {
  function step (line 21266) | function step(result) {
  class MaterialBufferData (line 21272) | class MaterialBufferData extends Float32Array {
    method constructor (line 21273) | constructor(count2) {
    method getType (line 21284) | getType(index2) {
    method setType (line 21287) | setType(index2, value2) {
    method getFuzz (line 21290) | getFuzz(index2) {
    method setFuzz (line 21293) | setFuzz(index2, value2) {
    method getRefractiveIndex (line 21296) | getRefractiveIndex(index2) {
    method setRefractiveIndex (line 21299) | setRefractiveIndex(index2, value2) {
    method getTextureId (line 21302) | getTextureId(index2) {
    method setTextureId (line 21305) | setTextureId(index2, value2) {
    method getColor (line 21308) | getColor(index2, value2) {
    method setColor (line 21312) | setColor(index2, value2) {
    method getGlossiness (line 21318) | getGlossiness(index2) {
    method setGlossiness (line 21321) | setGlossiness(index2, value2) {
    method getDensity (line 21324) | getDensity(index2) {
    method setDensity (line 21327) | setDensity(index2, value2) {
    method getIdColor (line 21330) | getIdColor(index2, value2) {
    method setIdColor (line 21334) | setIdColor(index2, value2) {
  class TextureBufferData (line 21343) | class TextureBufferData extends Float32Array {
    method constructor (line 21344) | constructor(count2) {
    method getType (line 21354) | getType(index2) {
    method setType (line 21357) | setType(index2, value2) {
    method getColor0 (line 21360) | getColor0(index2, value2) {
    method setColor0 (line 21364) | setColor0(index2, value2) {
    method getColor1 (line 21370) | getColor1(index2, value2) {
    method setColor1 (line 21374) | setColor1(index2, value2) {
    method getSize0 (line 21380) | getSize0(index2, value2) {
    method setSize0 (line 21384) | setSize0(index2, value2) {
    method getSize1 (line 21391) | getSize1(index2, value2) {
    method setSize1 (line 21395) | setSize1(index2, value2) {
    method getClip (line 21402) | getClip(index2, value2) {
    method setClip (line 21406) | setClip(index2, value2) {
    method getOffset (line 21413) | getOffset(index2, value2) {
    method setOffset (line 21417) | setOffset(index2, value2) {
  class HittableBufferData (line 21424) | class HittableBufferData extends Float32Array {
    method constructor (line 21425) | constructor(count2) {
    method getType (line 21456) | getType(index2) {
    method setType (line 21459) | setType(index2, value2) {
    method getCenter0 (line 21462) | getCenter0(index2, value2) {
    method setCenter0 (line 21466) | setCenter0(index2, value2) {
    method getCenter1 (line 21472) | getCenter1(index2, value2) {
    method setCenter1 (line 21476) | setCenter1(index2, value2) {
    method getTime0 (line 21482) | getTime0(index2) {
    method setTime0 (line 21485) | setTime0(index2, value2) {
    method getTime1 (line 21488) | getTime1(index2) {
    method setTime1 (line 21491) | setTime1(index2, value2) {
    method getSize0 (line 21494) | getSize0(index2, value2) {
    method setSize0 (line 21498) | setSize0(index2, value2) {
    method getSize1 (line 21504) | getSize1(index2, value2) {
    method setSize1 (line 21508) | setSize1(index2, value2) {
    method getRotation0 (line 21514) | getRotation0(index2, value2) {
    method setRotation0 (line 21518) | setRotation0(index2, value2) {
    method getRotation1 (line 21525) | getRotation1(index2, value2) {
    method setRotation1 (line 21529) | setRotation1(index2, value2) {
    method getTexCoord0 (line 21536) | getTexCoord0(index2, value2) {
    method setTexCoord0 (line 21540) | setTexCoord0(index2, value2) {
    method getTexCoord1 (line 21545) | getTexCoord1(index2, value2) {
    method setTexCoord1 (line 21549) | setTexCoord1(index2, value2) {
    method getRounding (line 21554) | getRounding(index2) {
    method setRounding (line 21557) | setRounding(index2, value2) {
    method getParameter1 (line 21560) | getParameter1(index2) {
    method setParameter1 (line 21563) | setParameter1(index2, value2) {
    method getParameter2 (line 21566) | getParameter2(index2) {
    method setParameter2 (line 21569) | setParameter2(index2, value2) {
    method getBoundaryType (line 21572) | getBoundaryType(index2) {
    method setBoundaryType (line 21575) | setBoundaryType(index2, value2) {
    method getTexId (line 21578) | getTexId(index2) {
    method setTexId (line 21581) | setTexId(index2, value2) {
    method getSdfBuffer (line 21584) | getSdfBuffer(index2) {
    method setSdfBuffer (line 21587) | setSdfBuffer(index2, value2) {
    method getSdfBorder (line 21590) | getSdfBorder(index2) {
    method setSdfBorder (line 21593) | setSdfBorder(index2, value2) {
    method getMaterialTypeId (line 21596) | getMaterialTypeId(index2) {
    method setMaterialTypeId (line 21599) | setMaterialTypeId(index2, value2) {
    method getMaterialFuzz (line 21602) | getMaterialFuzz(index2) {
    method setMaterialFuzz (line 21605) | setMaterialFuzz(index2, value2) {
    method getMaterialDensity (line 21608) | getMaterialDensity(index2) {
    method setMaterialDensity (line 21611) | setMaterialDensity(index2, value2) {
    method getMaterialGloss (line 21614) | getMaterialGloss(index2) {
    method setMaterialGloss (line 21617) | setMaterialGloss(index2, value2) {
    method getMaterialRefractiveIndex (line 21620) | getMaterialRefractiveIndex(index2) {
    method setMaterialRefractiveIndex (line 21623) | setMaterialRefractiveIndex(index2, value2) {
    method getMaterialColor (line 21626) | getMaterialColor(index2, value2) {
    method setMaterialColor (line 21632) | setMaterialColor(index2, value2) {
    method getSegmentColor (line 21638) | getSegmentColor(index2, value2) {
    method setSegmentColor (line 21645) | setSegmentColor(index2, value2) {
  class ComputeUniformBufferData (line 21654) | class ComputeUniformBufferData extends Float32Array {
    method constructor (line 21655) | constructor() {
    method getFocusDistance (line 21678) | getFocusDistance() {
    method setFocusDistance (line 21681) | setFocusDistance(value2) {
    method getWidth (line 21684) | getWidth() {
    method setWidth (line 21687) | setWidth(value2) {
    method getHeight (line 21690) | getHeight() {
    method setHeight (line 21693) | setHeight(value2) {
    method getSeed (line 21696) | getSeed() {
    method setSeed (line 21699) | setSeed(value2) {
    method getRaysPerFrame (line 21702) | getRaysPerFrame() {
    method setRaysPerFrame (line 21705) | setRaysPerFrame(value2) {
    method getFieldOfView (line 21708) | getFieldOfView() {
    method setFieldOfView (line 21711) | setFieldOfView(value2) {
    method getAperture (line 21714) | getAperture() {
    method setAperture (line 21717) | setAperture(value2) {
    method getPosition (line 21720) | getPosition(value2) {
    method setPosition (line 21723) | setPosition(value2) {
    method getRight (line 21728) | getRight(value2) {
    method setRight (line 21731) | setRight(value2) {
    method getUp (line 21736) | getUp(value2) {
    method setUp (line 21739) | setUp(value2) {
    method getForward (line 21744) | getForward(value2) {
    method setForward (line 21747) | setForward(value2) {
    method getBackgroundColor (line 21752) | getBackgroundColor(value2) {
    method setBackgroundColor (line 21755) | setBackgroundColor(value2) {
    method getAmbientColor (line 21761) | getAmbientColor(value2) {
    method setAmbientColor (line 21764) | setAmbientColor(value2) {
    method getTime0 (line 21769) | getTime0() {
    method setTime0 (line 21772) | setTime0(value2) {
    method getTime1 (line 21775) | getTime1() {
    method setTime1 (line 21778) | setTime1(value2) {
    method getTilesX (line 21781) | getTilesX() {
    method setTilesX (line 21784) | setTilesX(value2) {
    method getTilesY (line 21787) | getTilesY() {
    method setTilesY (line 21790) | setTilesY(value2) {
    method getTileOffsetX (line 21793) | getTileOffsetX() {
    method setTileOffsetX (line 21796) | setTileOffsetX(value2) {
    method getTileOffsetY (line 21799) | getTileOffsetY() {
    method setTileOffsetY (line 21802) | setTileOffsetY(value2) {
    method getLookAt (line 21805) | getLookAt(value2) {
    method setLookAt (line 21808) | setLookAt(value2) {
  class FullscreenQuadUniformBufferData (line 21815) | class FullscreenQuadUniformBufferData extends Float32Array {
    method constructor (line 21816) | constructor() {
    method getWidth (line 21829) | getWidth() {
    method setWidth (line 21832) | setWidth(value2) {
    method getHeight (line 21835) | getHeight() {
    method setHeight (line 21838) | setHeight(value2) {
    method getSamplesPerPixel (line 21841) | getSamplesPerPixel() {
    method setSamplesPerPixel (line 21844) | setSamplesPerPixel(value2) {
    method getExposure (line 21847) | getExposure() {
    method setExposure (line 21850) | setExposure(value2) {
    method getMinDepth (line 21853) | getMinDepth() {
    method setMinDepth (line 21856) | setMinDepth(value2) {
    method getMaxDepth (line 21859) | getMaxDepth() {
    method setMaxDepth (line 21862) | setMaxDepth(value2) {
    method getEdgeDepth (line 21865) | getEdgeDepth() {
    method setEdgeDepth (line 21868) | setEdgeDepth(value2) {
    method getEdgeNormal (line 21871) | getEdgeNormal() {
    method setEdgeNormal (line 21874) | setEdgeNormal(value2) {
    method getEdgeForeground (line 21877) | getEdgeForeground(value2) {
    method setEdgeForeground (line 21880) | setEdgeForeground(value2) {
    method getEdgeBackground (line 21886) | getEdgeBackground(value2) {
    method setEdgeBackground (line 21889) | setEdgeBackground(value2) {
  class LinearBVHNodeBufferData (line 21897) | class LinearBVHNodeBufferData extends Float32Array {
    method constructor (line 21898) | constructor(count2) {
    method getCenter (line 21907) | getCenter(index2, value2) {
    method setCenter (line 21911) | setCenter(index2, value2) {
    method getSize (line 21917) | getSize(index2, value2) {
    method setSize (line 21921) | setSize(index2, value2) {
    method getPrimitivesOffset (line 21927) | getPrimitivesOffset(index2) {
    method setPrimitivesOffset (line 21930) | setPrimitivesOffset(index2, value2) {
    method getSecondChildOffset (line 21933) | getSecondChildOffset(index2) {
    method setSecondChildOffset (line 21936) | setSecondChildOffset(index2, value2) {
    method getNPrimitives (line 21939) | getNPrimitives(index2) {
    method setNPrimitives (line 21942) | setNPrimitives(index2, value2) {
    method getAxis (line 21945) | getAxis(index2) {
    method setAxis (line 21948) | setAxis(index2, value2) {
  class LightBufferData (line 21953) | class LightBufferData extends Float32Array {
    method constructor (line 21954) | constructor(count2) {
    method getType (line 21962) | getType(index2) {
    method setType (line 21965) | setType(index2, value2) {
    method getCenter (line 21968) | getCenter(index2, value2) {
    method setCenter (line 21972) | setCenter(index2, value2) {
    method getSize (line 21978) | getSize(index2, value2) {
    method setSize (line 21982) | setSize(index2, value2) {
    method getColor (line 21988) | getColor(index2, value2) {
    method setColor (line 21992) | setColor(index2, value2) {
    method getRotation (line 21998) | getRotation(index2, value2) {
    method setRotation (line 22002) | setRotation(index2, value2) {
  function adopt (line 22012) | function adopt(value2) {
  function fulfilled (line 22018) | function fulfilled(value2) {
  function rejected (line 22025) | function rejected(value2) {
  function step (line 22032) | function step(result) {
  function concat (line 22042) | function concat(...args) {
  function allTruthy (line 22045) | function allTruthy(...args) {
  function push$1 (line 22048) | function push$1(arr, items) {
  function addEl (line 22051) | function addEl(tagName, parentElement) {
  function addDiv (line 22056) | function addDiv(parentElement, className2) {
  function outerSize$1 (line 22063) | function outerSize$1(el) {
  function isNonNullObject (line 22072) | function isNonNullObject(value2) {
  function isSpecial (line 22075) | function isSpecial(value2) {
  function isReactElement (line 22081) | function isReactElement(value2) {
  function emptyTarget (line 22084) | function emptyTarget(val) {
  function cloneUnlessOtherwiseSpecified (line 22087) | function cloneUnlessOtherwiseSpecified(value2, options2) {
  function defaultArrayMerge (line 22090) | function defaultArrayMerge(target2, source2, options2) {
  function mergeObject (line 22095) | function mergeObject(target2, source2, options2) {
  function deepmerge$1 (line 22111) | function deepmerge$1(target2, source2, options2) {
  function isObject$1 (line 22139) | function isObject$1(o) {
  function isPlainObject (line 22142) | function isPlainObject(o) {
  function clone (line 22155) | function clone(objectToClone) {
  function deepMerge (line 22161) | function deepMerge(...objectsToMerge) {
  function rgbToDeckglColor (line 22165) | function rgbToDeckglColor(c2) {
  function colorIsEqual (line 22168) | function colorIsEqual(a2, b2) {
  function colorFromString (line 22177) | function colorFromString(cssColorSpecifier) {
  function colorToString (line 22186) | function colorToString(color2) {
  function desaturate (line 22193) | function desaturate(color2, value2) {
  function createStage (line 22244) | function createStage(view) {
  function defaultOnAxisItem (line 22271) | function defaultOnAxisItem(vegaItem, stageItem, stage, currAxis) {
  function removeCurrentAxes (line 22283) | function removeCurrentAxes(stage, currAxis) {
  function use$5 (line 22326) | function use$5(vega2) {
  function initializePanel (line 22374) | function initializePanel(presenter) {
  function className$1 (line 22388) | function className$1(type2, presenter) {
  function patchCubeArray (line 22391) | function patchCubeArray(allocatedSize, empty, cubes) {
  function styledLine (line 22481) | function styledLine(x12, y12, x2, y2, stroke2, strokeWidth) {
  function box (line 22491) | function box(gx, gy, height2, width2, stroke2, strokeWidth, diagonals = ...
  function convertAngle (line 22553) | function convertAngle(vegaTextAngle) {
  function getAxisGroupType (line 22567) | function getAxisGroupType(item, options2) {
  function convertGroupRole (line 22582) | function convertGroupRole(item, options2) {
  function setCurrentAxis (line 22612) | function setCurrentAxis(options2, stage, groupType) {
  function sceneToStage (line 22654) | function sceneToStage(options2, stage, scene) {
  function sortAxis (line 22660) | function sortAxis(axes, dim) {
  function orderDomain (line 22668) | function orderDomain(domain2, dim) {
  function outerBounds (line 22675) | function outerBounds(b1, b2) {
  function notNull (line 22697) | function notNull(fn2, v1, v2) {
  function increment$1 (line 22706) | function increment$1(b2, minBoundsX, minBoundsY, minBoundsZ, maxBoundsX,...
  class AxesCorrelation (line 22857) | class AxesCorrelation {
    method constructor (line 22858) | constructor(stage, dimensions) {
    method getGrid (line 22873) | getGrid() {
    method initialize (line 22902) | initialize(axis) {
    method correlate (line 22911) | correlate(axis) {
    method matchDomains (line 22930) | matchDomains(a2, b2) {
    method matchPoint (line 22941) | matchPoint(a2, b2) {
  function createAxes (line 22949) | function createAxes(cartesian2, dim2d, dim3d, axis, orientation, height2...
  function configCartesianAxes (line 22975) | function configCartesianAxes(is3d, bounds2, cartesian2) {
  function getDomainBounds (line 22994) | function getDomainBounds(dim2d, axis) {
  function convertAxis (line 23003) | function convertAxis(axis, domain2, dim, height2) {
  method constructor (line 23026) | constructor(quant = 5) {
  method getColorKey (line 23031) | getColorKey(rgbaColor) {
  method registerColor (line 23036) | registerColor(rgbaColor) {
  method getPalette (line 23047) | getPalette() {
  function convert$3 (line 23054) | function convert$3(newColor) {
  function colorConfig (line 23058) | function colorConfig(ref2, colors2) {
  function convert$2 (line 23135) | function convert$2(stage) {
  function convert$1 (line 23231) | function convert$1(stage, height2, width2) {
  function convert (line 23325) | function convert(stage) {
  function getImageData (line 23364) | function getImageData(url) {
  function createImageQuad (line 23379) | function createImageQuad(core, imageData, bounds2, position2, width2, he...
  function createCameraDefaults (line 23395) | function createCameraDefaults() {
  function applyCameraCallbacks (line 23415) | function applyCameraCallbacks(ref2, lastPresenterConfig, lastView, trans...
  function setTransitionTimeAxesVisibility (line 23463) | function setTransitionTimeAxesVisibility(transistion2dOnly, core) {
  function morphChartsRender (line 23481) | function morphChartsRender(ref2, prevStage, stage, height2, width2, preS...
  function layersWithSelection (line 23600) | function layersWithSelection(cubeLayer, lineLayer, textLayer, layerSelec...
  function convertBounds (line 23623) | function convertBounds(bounds2) {
  function shouldChangeRenderer (line 23635) | function shouldChangeRenderer(prev, next) {
  function getRenderer (line 23645) | function getRenderer(mcRendererOptions, core) {
  function setRendererOptions (line 23652) | function setRendererOptions(renderer, mcRendererOptions) {
  function rendererEnabled (line 23660) | function rendererEnabled(advanced) {
  function listenCanvasEvents (line 23665) | function listenCanvasEvents(core, options2) {
  function cubicInOut (line 23730) | function cubicInOut(t) {
  function easing (line 23733) | function easing(t) {
  class Transitioner (line 23738) | class Transitioner {
    method constructor (line 23739) | constructor() {
    method begin (line 23742) | begin() {
    method elapse (line 23746) | elapse(elapsedTime, totalTime, ease = false) {
  class CameraTransitioner (line 23757) | class CameraTransitioner extends Transitioner {
    method constructor (line 23758) | constructor() {
    method move (line 23771) | move(position2, rotation2) {
  class ModelTransitioner (line 23777) | class ModelTransitioner extends Transitioner {
    method constructor (line 23778) | constructor() {
  function init$1 (line 23788) | function init$1(options2, mcRendererOptions) {
  class Presenter (line 23826) | class Presenter {
    method stage (line 23830) | get stage() {
    method view (line 23836) | get view() {
    method constructor (line 23844) | constructor(el, style2) {
    method animationCancel (line 23853) | animationCancel() {
    method animationQueue (line 23871) | animationQueue(handler, timeout2, options2) {
    method getElement (line 23887) | getElement(type2) {
    method present (line 23900) | present(sceneOrStage, height2, width2, config) {
    method canvasToDataURL (line 23960) | canvasToDataURL() {
    method configColors (line 23970) | configColors(mcColors) {
    method homeCamera (line 23976) | homeCamera() {
    method showGuides (line 23983) | showGuides() {
    method finalize (line 23986) | finalize() {
  function _RendererGl (line 23999) | function _RendererGl(loader2) {
  function _ViewGl (line 24025) | function _ViewGl(runtime2, config) {
  method PresenterElement (line 24074) | get PresenterElement() {
  function getPresenterStyle (line 24149) | function getPresenterStyle(options2) {
  function isInternalFieldName (line 24169) | function isInternalFieldName(columnName, includeVegaMorphChartsFields = ...
  function registerColorSchemes (line 24203) | function registerColorSchemes(vega2) {
  function createPair (line 24212) | function createPair(names, colors2) {
  function createDualColorSchemes (line 24216) | function createDualColorSchemes() {
  class Animator (line 24233) | class Animator {
    method constructor (line 24234) | constructor(dataScope, props) {
    method select (line 24238) | select(search) {
    method deselect (line 24245) | deselect() {
    method filter (line 24252) | filter(search, keepData, collapseData, rebase) {
    method reset (line 24266) | reset() {
    method activate (line 24282) | activate(datum2) {
    method deactivate (line 24289) | deactivate() {
  function notNice (line 24297) | function notNice(niceValue) {
  function tickValue (line 24300) | function tickValue(axis, i) {
  function selectNullOrEmpty (line 24308) | function selectNullOrEmpty(column) {
  function selectExact (line 24315) | function selectExact(column, value2) {
  function selectNone (line 24326) | function selectNone(column, values2) {
  function selectExactAxis (line 24343) | function selectExactAxis(axis, column, i) {
  function selectBetween (line 24349) | function selectBetween(column, lowValue, highValue, lowOperator = ">=", ...
  function selectBetweenAxis (line 24373) | function selectBetweenAxis(axis, column, i) {
  class AxisSelection (line 24388) | class AxisSelection {
    method constructor (line 24389) | constructor(specCapabilities, columns, stage) {
    method convert (line 24394) | convert(divisions) {
    method getSearchFromSearchRole (line 24432) | getSearchFromSearchRole(searchRole) {
  function moveTicksBetween (line 24438) | function moveTicksBetween(axes) {
  function populateColorContext (line 24462) | function populateColorContext(colorContext, presenter) {
  method constructor (line 24470) | constructor() {
  method setData (line 24473) | setData(data2, columns) {
  method setFilteredData (line 24486) | setFilteredData(filteredData) {
  method getColumns (line 24490) | getColumns(columnTypes) {
  method getFilteredColumnStats (line 24496) | getFilteredColumnStats(columnName) {
  method currentData (line 24502) | currentData() {
  method select (line 24505) | select(search) {
  method createUserSelection (line 24514) | createUserSelection(search, assign2, rebase) {
  method deselect (line 24534) | deselect() {
  method hasFilteredData (line 24541) | hasFilteredData() {
  method hasSelectedData (line 24544) | hasSelectedData() {
  method collapse (line 24547) | collapse(collapsed, data2 = this.data) {
  method activate (line 24553) | activate(datum2) {
  method deactivate (line 24558) | deactivate() {
  method ordinalIndexWithinSelection (line 24564) | ordinalIndexWithinSelection(ordinal2) {
  method finalize (line 24575) | finalize() {
  class Details (line 24595) | class Details {
    method constructor (line 24596) | constructor(parentElement, language, animator, dataScope, colorMapHand...
    method finalize (line 24605) | finalize() {
    method clear (line 24611) | clear() {
    method clearSelection (line 24619) | clearSelection() {
    method populate (line 24624) | populate(userSelection, index2 = 0) {
    method selectByNameValue (line 24629) | selectByNameValue(columnName, value2) {
    method remapChanged (line 24639) | remapChanged(remap) {
    method handleAction (line 24644) | handleAction(action) {
    method render (line 24693) | render() {
  function linkSelect (line 24769) | function linkSelect(language, columnName, value2, selectionHandler) {
  function ensureHeaders (line 24777) | function ensureHeaders(presenter, headers) {
  function conditionalHeader (line 24783) | function conditionalHeader(condition, element2, header) {
  function addHeader (line 24792) | function addHeader(element2, header) {
  function existingHeader (line 24797) | function existingHeader(element2, header) {
  function legendRange (line 24803) | function legendRange(colorBinType, column, legend2, clickedIndex) {
  function selectCategorical (line 24810) | function selectCategorical(column, legend2, clickedIndex) {
  function selectQuantitative (line 24824) | function selectQuantitative(colorBinType, column, legend2, clickedIndex) {
  function finalizeLegend (line 24871) | function finalizeLegend(colorBinType, colorColumn, legend2, language) {
  function assignOrdinals (line 24883) | function assignOrdinals(columns, data2, ordinalMap) {
  function getDataIndexOfCube (line 24900) | function getDataIndexOfCube(cube, data2) {
  function getSearchGroupFromVegaValue (line 24909) | function getSearchGroupFromVegaValue(search) {
  function applySignalValues (line 24924) | function applySignalValues(sv, b2) {
  function extractSignalValuesFromView (line 24935) | function extractSignalValuesFromView(view, spec) {
  function unbindSignalUI (line 24954) | function unbindSignalUI(spec) {
  method constructor (line 24964) | constructor(props) {
  method destroy (line 25014) | destroy() {
  function cleanDataItem (line 25024) | function cleanDataItem(item) {
  function getRows (line 25037) | function getRows(item) {
  class CharacterSet (line 25064) | class CharacterSet {
    method resetCharacterSet (line 25065) | resetCharacterSet(forceNewCharacterSet, oldInsight, newInsight) {
    method getCharacterSet (line 25070) | getCharacterSet(stage) {
  function needsNewCharacterSet (line 25093) | function needsNewCharacterSet(oldInsight, newInsight) {
  function differentObjectValues (line 25124) | function differentObjectValues(a2, b2) {
  function ascending$2 (line 25145) | function ascending$2(a2, b2) {
  function descending$1 (line 25148) | function descending$1(a2, b2) {
  function bisector (line 25151) | function bisector(f) {
  function zero$3 (line 25190) | function zero$3() {
  function number$6 (line 25193) | function number$6(x2) {
  function variance (line 25216) | function variance(values2, valueof) {
  function deviation (line 25241) | function deviation(values2, valueof) {
  class Adder (line 25245) | class Adder {
    method constructor (line 25246) | constructor() {
    method add (line 25250) | add(x2) {
    method valueOf (line 25262) | valueOf() {
  class InternMap (line 25283) | class InternMap extends Map {
    method constructor (line 25284) | constructor(entries, key2 = keyof) {
    method get (line 25289) | get(key2) {
    method has (line 25292) | has(key2) {
    method set (line 25295) | set(key2, value2) {
    method delete (line 25298) | delete(key2) {
  class InternSet (line 25302) | class InternSet extends Set {
    method constructor (line 25303) | constructor(values2, key2 = keyof) {
    method has (line 25308) | has(value2) {
    method add (line 25311) | add(value2) {
    method delete (line 25314) | delete(value2) {
  function intern_get (line 25318) | function intern_get({ _intern, _key }, value2) {
  function intern_set (line 25322) | function intern_set({ _intern, _key }, value2) {
  function intern_delete (line 25328) | function intern_delete({ _intern, _key }, value2) {
  function keyof (line 25336) | function keyof(value2) {
  function permute (line 25339) | function permute(source2, keys2) {
  function compareDefined (line 25342) | function compareDefined(compare2 = ascending$2) {
  function ascendingDefined (line 25351) | function ascendingDefined(a2, b2) {
  function tickSpec (line 25355) | function tickSpec(start, stop2, count2) {
  function ticks (line 25375) | function ticks(start, stop2, count2) {
  function tickIncrement (line 25391) | function tickIncrement(start, stop2, count2) {
  function tickStep (line 25395) | function tickStep(start, stop2, count2) {
  function max$2 (line 25400) | function max$2(values2, valueof) {
  function min$2 (line 25418) | function min$2(values2, valueof) {
  function quickselect (line 25436) | function quickselect(array2, k, left = 0, right = Infinity, compare2) {
  function swap$1 (line 25470) | function swap$1(array2, i, j) {
  function quantile$1 (line 25475) | function quantile$1(values2, p, valueof) {
  function quantileSorted (line 25483) | function quantileSorted(values2, p, valueof = number$6) {
  function mean (line 25490) | function mean(values2, valueof) {
  function median (line 25509) | function median(values2, valueof) {
  function merge$4 (line 25517) | function merge$4(arrays) {
  function range$3 (line 25520) | function range$3(start, stop2, step) {
  function sum$1 (line 25528) | function sum$1(values2, valueof) {
  function intersection (line 25539) | function intersection(values2, ...others) {
  function set$4 (line 25552) | function set$4(values2) {
  function union (line 25555) | function union(...others) {
  function initRange (line 25564) | function initRange(domain2, range2) {
  function initInterpolator (line 25577) | function initInterpolator(domain2, interpolator) {
  function ordinal (line 25596) | function ordinal() {
  function basis (line 25627) | function basis(t12, v0, v1, v2, v3) {
  function basis$1 (line 25631) | function basis$1(values2) {
  function basisClosed (line 25638) | function basisClosed(values2) {
  function linear$2 (line 25646) | function linear$2(a2, d2) {
  function exponential (line 25651) | function exponential(a2, b2, y2) {
  function hue$1 (line 25656) | function hue$1(a2, b2) {
  function gamma (line 25660) | function gamma(y2) {
  function nogamma (line 25665) | function nogamma(a2, b2) {
  function rgb2 (line 25671) | function rgb2(start, end) {
  function rgbSpline (line 25684) | function rgbSpline(spline) {
  function numberArray (line 25707) | function numberArray(a2, b2) {
  function isNumberArray (line 25715) | function isNumberArray(x2) {
  function array$5 (line 25718) | function array$5(a2, b2) {
  function genericArray (line 25721) | function genericArray(a2, b2) {
  function date$1 (line 25730) | function date$1(a2, b2) {
  function interpolateNumber (line 25736) | function interpolateNumber(a2, b2) {
  function object$1 (line 25741) | function object$1(a2, b2) {
  function zero$2 (line 25758) | function zero$2(b2) {
  function one$2 (line 25763) | function one$2(b2) {
  function string (line 25768) | function string(a2, b2) {
  function interpolate$1 (line 25796) | function interpolate$1(a2, b2) {
  function discrete$1 (line 25800) | function discrete$1(range2) {
  function hue (line 25806) | function hue(a2, b2) {
  function interpolateRound (line 25813) | function interpolateRound(a2, b2) {
  function decompose (line 25827) | function decompose(a2, b2, c2, d2, e, f) {
  function parseCss (line 25843) | function parseCss(value2) {
  function parseSvg (line 25847) | function parseSvg(value2) {
  function interpolateTransform (line 25855) | function interpolateTransform(parse2, pxComma, pxParen, degParen) {
  function cosh (line 25909) | function cosh(x2) {
  function sinh (line 25912) | function sinh(x2) {
  function tanh (line 25915) | function tanh(x2) {
  function zoom2 (line 25919) | function zoom2(p02, p1) {
  function hsl (line 25951) | function hsl(hue2) {
  function lab (line 25965) | function lab(start, end) {
  function hcl (line 25975) | function hcl(hue2) {
  function cubehelix (line 25989) | function cubehelix(hue2) {
  function piecewise (line 26008) | function piecewise(interpolate2, values2) {
  function quantize$2 (line 26017) | function quantize$2(interpolator, n) {
  function constants (line 26052) | function constants(x2) {
  function number$5 (line 26057) | function number$5(x2) {
  function identity$6 (line 26061) | function identity$6(x2) {
  function normalize$2 (line 26064) | function normalize$2(a2, b2) {
  function clamper (line 26069) | function clamper(a2, b2) {
  function bimap (line 26076) | function bimap(domain2, range2, interpolate2) {
  function polymap (line 26084) | function polymap(domain2, range2, interpolate2) {
  function copy$2 (line 26099) | function copy$2(source2, target2) {
  function transformer$3 (line 26102) | function transformer$3() {
  function continuous$1 (line 26140) | function continuous$1() {
  function formatDecimal$1 (line 26143) | function formatDecimal$1(x2) {
  function formatDecimalParts$1 (line 26146) | function formatDecimalParts$1(x2, p) {
  function exponent$1 (line 26154) | function exponent$1(x2) {
  function formatGroup$1 (line 26157) | function formatGroup$1(grouping, thousands) {
  function formatNumerals$1 (line 26169) | function formatNumerals$1(numerals) {
  function formatSpecifier$1 (line 26177) | function formatSpecifier$1(specifier) {
  function FormatSpecifier$1 (line 26194) | function FormatSpecifier$1(specifier) {
  function formatTrim$1 (line 26209) | function formatTrim$1(s2) {
  function formatPrefixAuto$1 (line 26228) | function formatPrefixAuto$1(x2, p) {
  function formatRounded$1 (line 26234) | function formatRounded$1(x2, p) {
  function identity$5 (line 26255) | function identity$5(x2) {
  function formatLocale$2 (line 26259) | function formatLocale$2(locale2) {
  function defaultLocale$3 (line 26337) | function defaultLocale$3(definition2) {
  function precisionFixed (line 26343) | function precisionFixed(step) {
  function precisionPrefix (line 26346) | function precisionPrefix(step, value2) {
  function precisionRound (line 26349) | function precisionRound(step, max2) {
  function tickFormat$1 (line 26353) | function tickFormat$1(start, stop2, count2, specifier) {
  function linearish (line 26378) | function linearish(scale2) {
  function linear$1 (line 26423) | function linear$1() {
  function identity$4 (line 26431) | function identity$4(domain2) {
  function nice (line 26449) | function nice(domain2, interval2) {
  function transformLog (line 26460) | function transformLog(x2) {
  function transformExp (line 26463) | function transformExp(x2) {
  function transformLogn (line 26466) | function transformLogn(x2) {
  function transformExpn (line 26469) | function transformExpn(x2) {
  function pow10 (line 26472) | function pow10(x2) {
  function powp (line 26475) | function powp(base2) {
  function logp (line 26478) | function logp(base2) {
  function reflect (line 26481) | function reflect(f) {
  function loggish (line 26484) | function loggish(transform2) {
  function log$4 (line 26565) | function log$4() {
  function transformSymlog (line 26571) | function transformSymlog(c2) {
  function transformSymexp (line 26576) | function transformSymexp(c2) {
  function symlogish (line 26581) | function symlogish(transform2) {
  function symlog$1 (line 26588) | function symlog$1() {
  function transformPow (line 26595) | function transformPow(exponent2) {
  function transformSqrt (line 26600) | function transformSqrt(x2) {
  function transformSquare (line 26603) | function transformSquare(x2) {
  function powish (line 26606) | function powish(transform2) {
  function pow$4 (line 26616) | function pow$4() {
  function sqrt$3 (line 26624) | function sqrt$3() {
  function quantile (line 26627) | function quantile() {
  function quantize$1 (line 26666) | function quantize$1() {
  function threshold (line 26698) | function threshold() {
  function timeInterval$1 (line 26722) | function timeInterval$1(floori, offseti, count2, field2) {
  function timeWeekday (line 26882) | function timeWeekday(i) {
  function utcWeekday (line 26906) | function utcWeekday(i) {
  function ticker (line 26992) | function ticker(year, month, week2, day, hour, minute) {
  function localDate$1 (line 27032) | function localDate$1(d2) {
  function utcDate$1 (line 27040) | function utcDate$1(d2) {
  function newDate (line 27048) | function newDate(y2, m2, d2) {
  function formatLocale$1 (line 27051) | function formatLocale$1(locale2) {
  function pad$2 (line 27333) | function pad$2(value2, fill2, width2) {
  function requote (line 27337) | function requote(s2) {
  function formatRe (line 27340) | function formatRe(names) {
  function formatLookup (line 27343) | function formatLookup(names) {
  function parseWeekdayNumberSunday (line 27346) | function parseWeekdayNumberSunday(d2, string2, i) {
  function parseWeekdayNumberMonday (line 27350) | function parseWeekdayNumberMonday(d2, string2, i) {
  function parseWeekNumberSunday (line 27354) | function parseWeekNumberSunday(d2, string2, i) {
  function parseWeekNumberISO (line 27358) | function parseWeekNumberISO(d2, string2, i) {
  function parseWeekNumberMonday (line 27362) | function parseWeekNumberMonday(d2, string2, i) {
  function parseFullYear (line 27366) | function parseFullYear(d2, string2, i) {
  function parseYear (line 27370) | function parseYear(d2, string2, i) {
  function parseZone (line 27374) | function parseZone(d2, string2, i) {
  function parseQuarter (line 27378) | function parseQuarter(d2, string2, i) {
  function parseMonthNumber (line 27382) | function parseMonthNumber(d2, string2, i) {
  function parseDayOfMonth (line 27386) | function parseDayOfMonth(d2, string2, i) {
  function parseDayOfYear (line 27390) | function parseDayOfYear(d2, string2, i) {
  function parseHour24 (line 27394) | function parseHour24(d2, string2, i) {
  function parseMinutes (line 27398) | function parseMinutes(d2, string2, i) {
  function parseSeconds (line 27402) | function parseSeconds(d2, string2, i) {
  function parseMilliseconds (line 27406) | function parseMilliseconds(d2, string2, i) {
  function parseMicroseconds (line 27410) | function parseMicroseconds(d2, string2, i) {
  function parseLiteralPercent (line 27414) | function parseLiteralPercent(d2, string2, i) {
  function parseUnixTimestamp (line 27418) | function parseUnixTimestamp(d2, string2, i) {
  function parseUnixTimestampSeconds (line 27422) | function parseUnixTimestampSeconds(d2, string2, i) {
  function formatDayOfMonth (line 27426) | function formatDayOfMonth(d2, p) {
  function formatHour24 (line 27429) | function formatHour24(d2, p) {
  function formatHour12 (line 27432) | function formatHour12(d2, p) {
  function formatDayOfYear (line 27435) | function formatDayOfYear(d2, p) {
  function formatMilliseconds (line 27438) | function formatMilliseconds(d2, p) {
  function formatMicroseconds (line 27441) | function formatMicroseconds(d2, p) {
  function formatMonthNumber (line 27444) | function formatMonthNumber(d2, p) {
  function formatMinutes (line 27447) | function formatMinutes(d2, p) {
  function formatSeconds (line 27450) | function formatSeconds(d2, p) {
  function formatWeekdayNumberMonday (line 27453) | function formatWeekdayNumberMonday(d2) {
  function formatWeekNumberSunday (line 27457) | function formatWeekNumberSunday(d2, p) {
  function dISO (line 27460) | function dISO(d2) {
  function formatWeekNumberISO (line 27464) | function formatWeekNumberISO(d2, p) {
  function formatWeekdayNumberSunday (line 27468) | function formatWeekdayNumberSunday(d2) {
  function formatWeekNumberMonday (line 27471) | function formatWeekNumberMonday(d2, p) {
  function formatYear$1 (line 27474) | function formatYear$1(d2, p) {
  function formatYearISO (line 27477) | function formatYearISO(d2, p) {
  function formatFullYear (line 27481) | function formatFullYear(d2, p) {
  function formatFullYearISO (line 27484) | function formatFullYearISO(d2, p) {
  function formatZone (line 27489) | function formatZone(d2) {
  function formatUTCDayOfMonth (line 27493) | function formatUTCDayOfMonth(d2, p) {
  function formatUTCHour24 (line 27496) | function formatUTCHour24(d2, p) {
  function formatUTCHour12 (line 27499) | function formatUTCHour12(d2, p) {
  function formatUTCDayOfYear (line 27502) | function formatUTCDayOfYear(d2, p) {
  function formatUTCMilliseconds (line 27505) | function formatUTCMilliseconds(d2, p) {
  function formatUTCMicroseconds (line 27508) | function formatUTCMicroseconds(d2, p) {
  function formatUTCMonthNumber (line 27511) | function formatUTCMonthNumber(d2, p) {
  function formatUTCMinutes (line 27514) | function formatUTCMinutes(d2, p) {
  function formatUTCSeconds (line 27517) | function formatUTCSeconds(d2, p) {
  function formatUTCWeekdayNumberMonday (line 27520) | function formatUTCWeekdayNumberMonday(d2) {
  function formatUTCWeekNumberSunday (line 27524) | function formatUTCWeekNumberSunday(d2, p) {
  function UTCdISO (line 27527) | function UTCdISO(d2) {
  function formatUTCWeekNumberISO (line 27531) | function formatUTCWeekNumberISO(d2, p) {
  function formatUTCWeekdayNumberSunday (line 27535) | function formatUTCWeekdayNumberSunday(d2) {
  function formatUTCWeekNumberMonday (line 27538) | function formatUTCWeekNumberMonday(d2, p) {
  function formatUTCYear (line 27541) | function formatUTCYear(d2, p) {
  function formatUTCYearISO (line 27544) | function formatUTCYearISO(d2, p) {
  function formatUTCFullYear (line 27548) | function formatUTCFullYear(d2, p) {
  function formatUTCFullYearISO (line 27551) | function formatUTCFullYearISO(d2, p) {
  function formatUTCZone (line 27556) | function formatUTCZone() {
  function formatLiteralPercent (line 27559) | function formatLiteralPercent() {
  function formatUnixTimestamp (line 27562) | function formatUnixTimestamp(d2) {
  function formatUnixTimestampSeconds (line 27565) | function formatUnixTimestampSeconds(d2) {
  function defaultLocale$2 (line 27583) | function defaultLocale$2(definition2) {
  function date (line 27591) | function date(t) {
  function number$4 (line 27594) | function number$4(t) {
  function calendar (line 27597) | function calendar(ticks2, tickInterval, year, month, week2, day, hour, m...
  function time$1 (line 27626) | function time$1() {
  function utcTime (line 27629) | function utcTime() {
  function transformer$2 (line 27632) | function transformer$2() {
  function copy$1 (line 27662) | function copy$1(source2, target2) {
  function sequential (line 27665) | function sequential() {
  function sequentialLog (line 27672) | function sequentialLog() {
  function sequentialSymlog (line 27679) | function sequentialSymlog() {
  function sequentialPow (line 27686) | function sequentialPow() {
  function sequentialSqrt (line 27693) | function sequentialSqrt() {
  function transformer$1 (line 27696) | function transformer$1() {
  function diverging$1 (line 27726) | function diverging$1() {
  function divergingLog (line 27733) | function divergingLog() {
  function divergingSymlog (line 27740) | function divergingSymlog() {
  function divergingPow (line 27747) | function divergingPow() {
  function divergingSqrt (line 27754) | function divergingSqrt() {
  function assignTransitionStagger (line 27757) | function assignTransitionStagger(transition, currentData, selection, pre...
  function adopt (line 27829) | function adopt(value2) {
  function fulfilled (line 27835) | function fulfilled(value2) {
  function rejected (line 27842) | function rejected(value2) {
  function step (line 27849) | function step(result) {
  method constructor (line 27864) | constructor(element2, options2) {
  method changeColorContexts (line 27880) | changeColorContexts(colorContexts) {
  method applyLegendColorContext (line 27885) | applyLegendColorContext(colorContext) {
  method onAnimateDataChange (line 27891) | onAnimateDataChange(dataChange, waitingLabel, handlerLabel, time2) {
  method onDataChanged (line 27928) | onDataChanged(dataLayout, filter2) {
  method convertSearchToSet (line 27992) | convertSearchToSet() {
  method convertSetToSearch (line 28006) | convertSetToSearch(s2) {
  method getSpecColumnsWithFilteredStats (line 28020) | getSpecColumnsWithFilteredStats() {
  method renderNewLayout (line 28035) | renderNewLayout(signalValues, presenterConfig, view) {
  method renderSameLayout (line 28098) | renderSameLayout(newViewerOptions) {
  method getView (line 28112) | getView(view) {
  method transformData (line 28123) | transformData(values2, transform2) {
  method render (line 28144) | render(insightSetup_1, data_1) {
  method shouldViewstateTransition (line 28170) | shouldViewstateTransition(newInsight, oldInsight) {
  method configForSignalCapture (line 28183) | configForSignalCapture(presenterConfig) {
  method onPresent (line 28204) | onPresent() {
  method _render (line 28211) | _render(insightSetup, data2, renderOptions, forceNewCharacterSet) {
  method overrideAxisLabels (line 28256) | overrideAxisLabels(stage) {
  method preLayer (line 28258) | preLayer(stage) {
  method preStage (line 28267) | preStage(stage, cubeLayer) {
  method onCubeClick (line 28275) | onCubeClick(e, cube) {
  method onCubeHover (line 28301) | onCubeHover(event2, cube) {
  method onTextHover (line 28325) | onTextHover(e, t) {
  method getMorphChartsColors (line 28330) | getMorphChartsColors() {
  method createConfig (line 28347) | createConfig(c2) {
  method filter (line 28457) | filter(search, rebase = false) {
  method reset (line 28471) | reset() {
  method select (line 28484) | select(search) {
  method deselect (line 28495) | deselect() {
  method getSelection (line 28506) | getSelection() {
  method activate (line 28519) | activate(datum2) {
  method deActivate (line 28531) | deActivate() {
  method getCamera (line 28548) | getCamera(transitionFinal = false) {
  method setCamera (line 28568) | setCamera(camera) {
  method getInsight (line 28577) | getInsight() {
  method getColumnStats (line 28586) | getColumnStats(column) {
  method getSignalValues (line 28592) | getSignalValues() {
  method assignTransitionStagger (line 28595) | assignTransitionStagger(transition) {
  method finalize (line 28598) | finalize() {
  function compare$2 (line 28640) | function compare$2(value1, value2) {
  function compareNativeSubtypes (line 28668) | function compareNativeSubtypes(value1, value2) {
  function compareArrays (line 28671) | function compareArrays(value1, value2) {
  function compareObjects (line 28685) | function compareObjects(value1, value2) {
  function addNullable (line 28709) | function addNullable(insight, signalValues) {
  function compareInsight (line 28713) | function compareInsight(viewer, insight) {
  function use$3 (line 28730) | function use$3(react, reactDOM, vega2) {
  function _Viewer (line 28736) | function _Viewer(_props) {
  function IconButton$1 (line 29077) | function IconButton$1(props) {
  function defaultColorScheme$1 (line 29095) | function defaultColorScheme$1(c2) {
  class BarChartRecommenderSummary (line 29107) | class BarChartRecommenderSummary {
    method constructor (line 29108) | constructor(columns, data2) {
    method recommend (line 29133) | recommend() {
  class BarChartRecommender (line 29137) | class BarChartRecommender {
    method constructor (line 29138) | constructor(column, data2) {
    method recommend (line 29159) | recommend() {
  function isSpec (line 29174) | function isSpec(names, limits, column, data2) {
  function isLongitude (line 29185) | function isLongitude(column, data2) {
  function isLatitude (line 29188) | function isLatitude(column, data2) {
  function isGeo (line 29191) | function isGeo(column, data2) {
  class ScatterPlotRecommenderSummary (line 29194) | class ScatterPlotRecommenderSummary {
    method constructor (line 29195) | constructor(columns, data2) {
    method recommend (line 29233) | recommend() {
  function preferredColumnForTreemapSize (line 29237) | function preferredColumnForTreemapSize(columns, strict) {
  class RecommenderSummary (line 29251) | class RecommenderSummary {
    method constructor (line 29252) | constructor(columns, data2) {
    method recommend (line 29269) | recommend() {
  function ensureColumnsExist (line 29273) | function ensureColumnsExist(insightColumns, actualColumns, transform2) {
  function ensureColumnsPopulated (line 29289) | function ensureColumnsPopulated(chart, totalStyle, insightColumns, actua...
  function getTreemapColumn (line 29345) | function getTreemapColumn(columns) {
  function colorMapping (line 29352) | function colorMapping(insight, columns) {
  function getBackgroundImageColumnBounds (line 29357) | function getBackgroundImageColumnBounds(columns) {
  function _BackgroundImageEditor (line 29380) | function _BackgroundImageEditor(_props) {
  function setInsightBackgroundImage (line 29573) | function setInsightBackgroundImage(insight, imageHolder, columns) {
  function Dropdown$1 (line 29613) | function Dropdown$1(props) {
  function getInitialSignalValue (line 29635) | function getInitialSignalValue(explorer2, signal) {
  function Signal (line 29643) | function Signal(props) {
  function filterColumnList (line 29718) | function filterColumnList(context2, columns) {
  function optionsForSpecColumn (line 29727) | function optionsForSpecColumn(sectionName, columns, role, disabledColumn...
  function optionsForReference (line 29749) | function optionsForReference(sectionName, specRoles) {
  function selectFirst (line 29768) | function selectFirst(options2) {
  function getColumnMapOptions (line 29776) | function getColumnMapOptions(props) {
  function ColumnMap (line 29799) | function ColumnMap(props) {
  function attachSpecRoleToAxisTitle (line 29837) | function attachSpecRoleToAxisTitle(stage, specCapabilities) {
  function px$1 (line 29852) | function px$1(n) {
  function _PositionedColumnMap (line 29855) | function _PositionedColumnMap(_props) {
  function _ColumnTypeChanger (line 29901) | function _ColumnTypeChanger(_props) {
  function convertToDelimited (line 30070) | function convertToDelimited(data2, delimiter) {
  function _DataExportPicker (line 30097) | function _DataExportPicker(_props) {
  function getFileNameError (line 30197) | function getFileNameError(displayName) {
  function removeExtensions (line 30207) | function removeExtensions(fileName) {
  function columnReplacer (line 30214) | function columnReplacer(name, value2) {
  function embedScript (line 30220) | function embedScript(csv, displayName, snapshots) {
  function getEmbedHTML (line 30225) | function getEmbedHTML(data2, displayName, snapshots) {
  function Group$1 (line 30231) | function Group$1(props) {
  function ToggleColumns (line 30250) | function ToggleColumns(props) {
  function chartLabel (line 30300) | function chartLabel(key2) {
  function _Chart (line 30307) | function _Chart(_props) {
  function TextField$1 (line 30505) | function TextField$1(props) {
  function getValidOperators (line 30511) | function getValidOperators(column) {
  function getExpressionClauses (line 30547) | function getExpressionClauses(currClause, disableOR) {
  function getOperators (line 30566) | function getOperators(ex, column) {
  function getDistinctValues (line 30586) | function getDistinctValues(data2, columnName) {
  function getValues (line 30595) | function getValues(ex, column, data2, autoCompleteDistinctValues) {
  function getText (line 30608) | function getText(ex) {
  function SearchTerm (line 30613) | function SearchTerm(props) {
  function Button (line 30643) | function Button(props) {
  function getColumnWithName (line 30659) | function getColumnWithName(columnName, columns) {
  function validateExpression (line 30665) | function validateExpression(ex) {
  function clearExpressionValidation (line 30677) | function clearExpressionValidation(ex) {
  function getGroupClauses (line 30687) | function getGroupClauses(currClause, index2, disableGroupOR) {
  function _Search (line 30713) | function _Search(_props) {
  function getCanvas (line 30873) | function getCanvas(viewer) {
  function removeTabIndex (line 30879) | function removeTabIndex(viewer) {
  function filterSignals (line 30897) | function filterSignals(signal) {
  function cloneData (line 30913) | function cloneData(vegaSpec) {
  function cloneScales (line 30922) | function cloneScales(vegaSpec) {
  function serializeSpec (line 30925) | function serializeSpec(vegaSpec, datafile, dataRefType, transform2, sche...
  function defaultDataRefType (line 30961) | function defaultDataRefType(datafile) {
  function initState (line 30967) | function initState(props) {
  function signalGroupKey (line 30975) | function signalGroupKey(key2) {
  function vegaSignalGroups (line 30983) | function vegaSignalGroups(vegaSignals) {
  function _Settings (line 30993) | function _Settings(_props) {
  function _SnapshotEditor (line 31150) | function _SnapshotEditor(_props) {
  function _Snapshots (line 31239) | function _Snapshots(_props) {
  function Actions (line 31353) | function Actions(props) {
  function _TransitionEditor (line 31369) | function _TransitionEditor(_props) {
  function groupOptions (line 31526) | function groupOptions(sectionName, columns, selectedKey) {
  function getColumnOptions (line 31546) | function getColumnOptions(props, selectedKey) {
  function getTransition (line 31551) | function getTransition(state) {
  function syncTansitionDurations (line 31576) | function syncTansitionDurations(viewer, transitionDurations) {
  class AutoScrubber (line 31585) | class AutoScrubber {
    method constructor (line 31586) | constructor(interval2, onInterval) {
    method getSignedInterval (line 31590) | getSignedInterval() {
    method toggleScrubbing (line 31593) | toggleScrubbing(direction) {
    method isPaused (line 31600) | isPaused() {
    method isStopped (line 31603) | isStopped() {
    method isScrubbing (line 31606) | isScrubbing() {
    method togglePause (line 31609) | togglePause() {
    method start (line 31616) | start(direction) {
    method pause (line 31622) | pause() {
    method stop (line 31626) | stop() {
  function ensureToolbar (line 31632) | function ensureToolbar(panel) {
  function applyColorButtons (line 31642) | function applyColorButtons(presenter, showLegend, props) {
  function ColorMap (line 31648) | function ColorMap(props) {
  function bestColorScheme (line 31675) | function bestColorScheme(newColumn, oldColumn, oldScheme) {
  function defaultColorScheme (line 31678) | function defaultColorScheme(c2) {
  function formatDecimal (line 31688) | function formatDecimal(x2) {
  function formatDecimalParts (line 31691) | function formatDecimalParts(x2, p) {
  function exponent (line 31699) | function exponent(x2) {
  function formatGroup (line 31702) | function formatGroup(grouping, thousands) {
  function formatNumerals (line 31714) | function formatNumerals(numerals) {
  function formatSpecifier (line 31722) | function formatSpecifier(specifier) {
  function FormatSpecifier (line 31739) | function FormatSpecifier(specifier) {
  function formatTrim (line 31754) | function formatTrim(s2) {
  function formatPrefixAuto (line 31773) | function formatPrefixAuto(x2, p) {
  function formatRounded (line 31779) | function formatRounded(x2, p) {
  function identity$3 (line 31820) | function identity$3(x2) {
  function formatLocale (line 31824) | function formatLocale(locale2) {
  function defaultLocale$1 (line 31903) | function defaultLocale$1(definition2) {
  function resetSelectedItemIndex (line 31915) | function resetSelectedItemIndex(selectedItemIndex) {
  function short (line 31921) | function short(n) {
  function DataScope$1 (line 31924) | function DataScope$1(props) {
  function Compact (line 31949) | function Compact(props) {
  function DataScopeButton (line 31954) | function DataScopeButton(props) {
  function Scrollable (line 31966) | function Scrollable(props) {
  function Sidebutton (line 31986) | function Sidebutton(props) {
  function Sidebar (line 32000) | function Sidebar(props) {
  function Logo (line 32179) | function Logo() {
  function Topbar (line 32186) | function Topbar(props) {
  function handleRawText (line 32329) | function handleRawText(text2) {
  function getColorSettingsFromThemePalette (line 32448) | function getColorSettingsFromThemePalette(themePalette) {
  function initialExplorerState (line 32484) | function initialExplorerState(props) {
  function schemeOption (line 32537) | function schemeOption(selected, scheme2) {
  function schemeHeader (line 32546) | function schemeHeader(key2, text2) {
  function load$7 (line 32560) | function load$7() {
  function categorical (line 32793) | function categorical(selected) {
  function load$6 (line 32814) | function load$6() {
  function cyclical (line 32865) | function cyclical(selected) {
  function load$5 (line 32874) | function load$5() {
  function diverging (line 33117) | function diverging(selected) {
  function load$4 (line 33134) | function load$4() {
  function dual (line 33140) | function dual(selected) {
  function load$3 (line 33146) | function load$3() {
  function sequentialMultiHue (line 33893) | function sequentialMultiHue(selected) {
  function load$2 (line 33933) | function load$2() {
  function sequentialSingleHue (line 34176) | function sequentialSingleHue(selected) {
  function Palette (line 34193) | function Palette(props) {
  function Color (line 34258) | function Color(props) {
  function isNumber$2 (line 34316) | function isNumber$2(value2) {
  function isBoolean$2 (line 34323) | function isBoolean$2(value2) {
  function bingSearchLink (line 34335) | function bingSearchLink(column, value2) {
  function displayValue (line 34348) | function displayValue(value2) {
  function displayValueElement (line 34374) | function displayValueElement(nvp) {
  function DataItem (line 34381) | function DataItem(props) {
  function DataBrowser (line 34442) | function DataBrowser(props) {
  function History (line 34496) | function History(props) {
  function getPureInsight (line 34521) | function getPureInsight(historicInsight) {
  function replay (line 34541) | function replay(historyItems, index2) {
  function hasClientXY (line 34559) | function hasClientXY(e) {
  function getPosition (line 34564) | function getPosition(e) {
  function initPrefs (line 34583) | function initPrefs(prefs, partialInsight) {
  function saveSignalValuePref (line 34616) | function saveSignalValuePref(prefs, chart, role, column, signalName, sig...
  function copyPrefToNewState (line 34620) | function copyPrefToNewState(prefs, chart, role, columnName) {
  function savePref (line 34626) | function savePref(prefs, chart, role, column, partialInsight) {
  function comparableGroup (line 34634) | function comparableGroup(group2) {
  function compareGroup (line 34637) | function compareGroup(a2, b2) {
  function compareGroups (line 34640) | function compareGroups(haystack, needle) {
  function createInputSearch (line 34652) | function createInputSearch(search) {
  function _Renderer (line 34662) | function _Renderer(_props) {
  function _Explorer (line 34842) | function _Explorer(_props) {
  function use$2 (line 35867) | function use$2(fluentUI2, react, reactDOM, vega2) {
  function Dialog$1 (line 35885) | function Dialog$1(props) {
  method SideTabId (line 35912) | get SideTabId() {
  function use$1 (line 35927) | function use$1(fluentUI2, vega2) {
  function __extends (line 35939) | function __extends(d2, b2) {
  function __rest (line 35958) | function __rest(s2, e) {
  function __decorate (line 35969) | function __decorate(decorators, target2, key2, desc) {
  function __spreadArray (line 35975) | function __spreadArray(to, from, pack2) {
  function setVersion (line 35994) | function setVersion(packageName, packageVersion) {
  function canUseDOM (line 36005) | function canUseDOM() {
  function getWindow (line 36017) | function getWindow(rootElement) {
  function Async2 (line 36028) | function Async2(parent, onError) {
  function isVirtualElement (line 36338) | function isVirtualElement(element2) {
  function getVirtualParent (line 36341) | function getVirtualParent(child) {
  function getParent (line 36348) | function getParent(child, allowVirtualParents) {
  function elementContains (line 36368) | function elementContains(parent, child, allowVirtualParents) {
  function findElementRecursive (line 36394) | function findElementRecursive(element2, matchFunction, doc) {
  function elementContainsAttribute (line 36401) | function elementContainsAttribute(element2, attribute, doc) {
  function getChildren (line 36414) | function getChildren(parent, allowVirtualChildren) {
  function setPortalAttribute (line 36437) | function setPortalAttribute(element2) {
  function portalContainsElement (line 36440) | function portalContainsElement(target2, parent, doc) {
  function setVirtualParent (line 36448) | function setVirtualParent(child, parent) {
  function getDocument (line 36473) | function getDocument(rootElement) {
  function getFirstFocusable (line 36485) | function getFirstFocusable(rootElement, currentElement, includeElementsI...
  function getLastFocusable (line 36488) | function getLastFocusable(rootElement, currentElement, includeElementsIn...
  function getFirstTabbable (line 36491) | function getFirstTabbable(rootElement, currentElement, includeElementsIn...
  function getLastTabbable (line 36494) | function getLastTabbable(rootElement, currentElement, includeElementsInF...
  function focusFirstChild (line 36497) | function focusFirstChild(rootElement, bypassHiddenElements, includeShado...
  function getPreviousElement (line 36505) | function getPreviousElement(rootElement, currentElement, checkNode, supp...
  function getNextElement (line 36544) | function getNextElement(rootElement, currentElement, checkNode, suppress...
  function isElementVisible (line 36573) | function isElementVisible(element2) {
  function isElementVisibleAndNotHidden (line 36584) | function isElementVisibleAndNotHidden(element2, win) {
  function isElementTabbable (line 36588) | function isElementTabbable(element2, checkTabIndex, checkShadowRoot) {
  function isElementFocusZone (line 36609) | function isElementFocusZone(element2) {
  function isElementFocusSubZone (line 36612) | function isElementFocusSubZone(element2) {
  function doesElementContainFocus (line 36615) | function doesElementContainFocus(element2) {
  function shouldWrapFocus (line 36623) | function shouldWrapFocus(element2, noWrapDataAttribute, doc) {
  function focusAsync (line 36628) | function focusAsync(element2) {
  function getFocusableByIndexPath (line 36642) | function getFocusableByIndexPath(parent, path2) {
  function getElementIndexPath (line 36655) | function getElementIndexPath(fromElement, toElement) {
  function on$1 (line 36667) | function on$1(element2, eventName, callback, options2) {
  function shallowCompare (line 36673) | function shallowCompare(a2, b2) {
  function assign (line 36693) | function assign(target2) {
  function filteredAssign (line 36700) | function filteredAssign(isAllowed, target2) {
  function EventGroup2 (line 36721) | function EventGroup2(parent) {
  function isRecord (line 36933) | function isRecord(value2) {
  function extractStyleParts (line 36936) | function extractStyleParts(sheet) {
  function setRTL$1 (line 36975) | function setRTL$1(isRTL) {
  function getRTL$1 (line 36980) | function getRTL$1() {
  function getStyleOptions (line 36991) | function getStyleOptions() {
  function Stylesheet2 (line 37022) | function Stylesheet2(config, serializedStylesheet) {
  function kebabRules (line 37215) | function kebabRules(rulePairs, index2) {
  function getVendorSettings (line 37222) | function getVendorSettings() {
  function prefixRules (line 37249) | function prefixRules(rulePairs, index2) {
  function provideUnits (line 37282) | function provideUnits(rulePairs, index2) {
  function rtlifyRules (line 37302) | function rtlifyRules(options2, rulePairs, index2) {
  function negateNum (line 37336) | function negateNum(value2, partIndex) {
  function flipQuad (line 37342) | function flipQuad(value2) {
  function tokenizeWithParentheses (line 37351) | function tokenizeWithParentheses(value2) {
  function getDisplayName (line 37382) | function getDisplayName(rules2) {
  function expandCommaSeparatedGlobals (line 37387) | function expandCommaSeparatedGlobals(selectorWithGlobals) {
  function isSelector (line 37413) | function isSelector(potentialSelector) {
  function expandSelector (line 37416) | function expandSelector(newSelector, currentSelector) {
  function extractSelector (line 37428) | function extractSelector(currentSelector, rules2, selector, value2, styl...
  function extractRules (line 37445) | function extractRules(args, rules2, currentSelector, stylesheet2) {
  function expandQuads (line 37497) | function expandQuads(currentRules, name, value2) {
  function getKeyForRules (line 37512) | function getKeyForRules(options2, rules2) {
  function repeatString (line 37528) | function repeatString(target2, count2) {
  function serializeRuleEntries (line 37537) | function serializeRuleEntries(options2, ruleEntries) {
  function styleToRegistration (line 37558) | function styleToRegistration(options2) {
  function applyRegistration (line 37586) | function applyRegistration(registration, specificityMultiplier, shadowCo...
  function styleToClassName (line 37605) | function styleToClassName(options2) {
  function mergeStyles (line 37617) | function mergeStyles() {
  function mergeCss (line 37624) | function mergeCss(args, options2) {
  function concatStyleSets (line 37638) | function concatStyleSets() {
  function mergeStyleSets (line 37696) | function mergeStyleSets() {
  function mergeCssSets (line 37703) | function mergeCssSets(styleSets, options2) {
  function concatStyleSetsWithProps (line 37751) | function concatStyleSetsWithProps(styleProps) {
  function fontFace (line 37770) | function fontFace(font2) {
  function keyframes (line 37781) | function keyframes(timeline) {
  function disableBodyScroll (line 37857) | function disableBodyScroll() {
  function enableBodyScroll (line 37865) | function enableBodyScroll() {
  function getScrollbarWidth (line 37875) | function getScrollbarWidth(doc) {
  function findScrollableParent (line 37890) | function findScrollableParent(startingElement) {
  function warn$1 (line 37915) | function warn$1(message) {
  function warnConditionallyRequiredProps (line 37921) | function warnConditionallyRequiredProps(componentName, props, requiredPr...
  function warnMutuallyExclusive (line 37931) | function warnMutuallyExclusive(componentName, props, exclusiveMap) {
  function warnDeprecations (line 37933) | function warnDeprecations(componentName, props, deprecationMap) {
  function BaseComponent (line 37937) | function BaseComponent(props, context2) {
  function _makeAllSafe (line 38071) | function _makeAllSafe(obj2, prototype2, methodNames) {
  function _makeSafe (line 38076) | function _makeSafe(obj2, prototype2, methodName) {
  function nullRender (line 38096) | function nullRender() {
  function DelayedRender2 (line 38103) | function DelayedRender2(props) {
  function GlobalSettings2 (line 38139) | function GlobalSettings2() {
  function _getGlobalSettings (line 38182) | function _getGlobalSettings() {
  function _getCallbacks (line 38191) | function _getCallbacks() {
  function Rectangle2 (line 38214) | function Rectangle2(left, right, top, bottom) {
  function appendFunction (line 38258) | function appendFunction(parent) {
  function mergeAriaAttributeValues (line 38276) | function mergeAriaAttributeValues() {
  function findIndex (line 38286) | function findIndex(array2, cb, fromIndex) {
  function find$3 (line 38299) | function find$3(array2, cb) {
  function addElementAtIndex (line 38306) | function addElementAtIndex(array2, index2, itemToAdd) {
  function arraysEqual (line 38311) | function arraysEqual(array1, array2) {
  function getItem$1 (line 38322) | function getItem$1(key2) {
  function setItem (line 38331) | function setItem(key2, data2) {
  function getRTL (line 38340) | function getRTL(theme) {
  function setRTL (line 38361) | function setRTL(isRTL, persistSetting) {
  function getRTLSafeKeyCode (line 38375) | function getRTLSafeKeyCode(key2, theme) {
  function classNamesFunction (line 38398) | function classNamesFunction(options2) {
  function _traverseEdge (line 38464) | function _traverseEdge(current, value2) {
  function _traverseMap (line 38471) | function _traverseMap(current, inputs) {
  function _normalizeValue (line 38491) | function _normalizeValue(value2) {
  function resetMemoizations (line 38506) | function resetMemoizations() {
  function memoizeFunction (line 38509) | function memoizeFunction(cb, maxCacheSize, ignoreNullOrUndefinedResult) {
  function createMemoizer (line 38558) | function createMemoizer(getValue2) {
  function _normalizeArg (line 38576) | function _normalizeArg(val) {
  function _createNode (line 38586) | function _createNode() {
  function createComposedComponent (line 38591) | function createComposedComponent(outer) {
  function composeComponentAs (line 38613) | function composeComponentAs(outer, inner) {
  function isControlled (line 38616) | function isControlled(props, valueProp) {
  function css (line 38619) | function css() {
  function Customizations2 (line 38654) | function Customizations2() {
  function mergeSettings (line 38717) | function mergeSettings(oldSettings, newSettings) {
  function mergeScopedSettings (line 38724) | function mergeScopedSettings(oldSettings, newSettings) {
  function _isSettingsFunction (line 38731) | function _isSettingsFunction(settings) {
  function _settingsMergeWith (line 38734) | function _settingsMergeWith(newSettings) {
  function _scopedSettingsMergeWith (line 38739) | function _scopedSettingsMergeWith(scopedSettingsFromProps) {
  function mergeCustomizations (line 38753) | function mergeCustomizations(props, parentContext) {
  function Customizer2 (line 38767) | function Customizer2() {
  function hoistStatics (line 38794) | function hoistStatics(source2, dest) {
  function customizable (line 38879) | function customizable(scope, fields, concatStyles) {
  function useCustomizationSettings (line 38932) | function useCustomizationSettings(properties, scopeName) {
  function useForceUpdate (line 38948) | function useForceUpdate() {
  function extendComponent (line 38956) | function extendComponent(parent, methods2) {
  function getId (line 38970) | function getId(prefix) {
  function resetIds (line 38981) | function resetIds(counter) {
  function getNativeProps (line 39370) | function getNativeProps(props, allowedPropNames, excludedPropNames) {
  function hoistMethods (line 39398) | function hoistMethods(destination, source2, exclusions) {
  function unhoistMethods (line 39420) | function unhoistMethods(source2, methodNames) {
  function initializeComponentRef (line 39425) | function initializeComponentRef(obj2) {
  function _onMount (line 39432) | function _onMount() {
  function _onUpdate (line 39435) | function _onUpdate(prevProps) {
  function _onUnmount (line 39441) | function _onUnmount() {
  function _setComponentRef (line 39444) | function _setComponentRef(componentRef, value2) {
  function isDirectionalKeyCode (line 39455) | function isDirectionalKeyCode(which) {
  function updateClassList (line 39460) | function updateClassList(el, enabled) {
  function setFocusVisibility (line 39466) | function setFocusVisibility(enabled, target2, registeredProviders) {
  function setMountCounters (line 39478) | function setMountCounters(key2, delta) {
  function setCallbackMap (line 39489) | function setCallbackMap(context2) {
  function useFocusRects (line 39511) | function useFocusRects(rootRef) {
  function _onMouseDown (line 39566) | function _onMouseDown(ev, registeredProviders) {
  function _onPointerDown (line 39569) | function _onPointerDown(ev, registeredProviders) {
  function _onKeyDown (line 39574) | function _onKeyDown(ev, registeredProviders) {
  function _onKeyUp (line 39579) | function _onKeyUp(ev, registeredProviders) {
  function getItem (line 39620) | function getItem(key2) {
  function getLanguage (line 39631) | function getLanguage(persistenceType) {
  function merge$3 (line 39650) | function merge$3(target2) {
  function _merge (line 39661) | function _merge(target2, source2, circularReferences) {
  function modalize (line 39689) | function modalize(target2) {
  function unmodalize (line 39716) | function unmodalize(affectedNodes) {
  function isMac (line 39727) | function isMac(reset2) {
  function hasHorizontalOverflow (line 39736) | function hasHorizontalOverflow(element2) {
  function hasVerticalOverflow (line 39739) | function hasVerticalOverflow(element2) {
  function hasOverflow (line 39742) | function hasOverflow(element2) {
  function createComposedRenderFunction (line 39745) | function createComposedRenderFunction(outer) {
  function composeRenderFunction (line 39759) | function composeRenderFunction(outer, inner) {
  function styled (line 39783) | function styled(Component, baseStyles, getProps, customizable2, pure) {
  function warnControlledUsage (line 39818) | function warnControlledUsage(params2) {
  function getPropsWithDefaults (line 39828) | function getPropsWithDefaults(defaultProps, propsWithoutDefaults) {
  function useAsync (line 39895) | function useAsync() {
  function useConst (line 39909) | function useConst(initialValue) {
  function useBoolean (line 39918) | function useBoolean(initialState) {
  function useControllableValue (line 39939) | function useControllableValue(controlledValue, defaultUncontrolledValue,...
  function useEventCallback (line 39962) | function useEventCallback(fn2) {
  function useId (line 39980) | function useId(prefix, providedId) {
  function useMergedRefs (line 39987) | function useMergedRefs() {
  function useOnEvent (line 40005) | function useOnEvent(element2, eventName, callback, useCapture) {
  function usePrevious (line 40019) | function usePrevious(value2) {
  function useTarget (line 40052) | function useTarget(target2, hostElement) {
  function useLoadState (line 40094) | function useLoadState(props, imageElement) {
  function useCoverStyle (line 40159) | function useCoverStyle(props, loadState, imageElement, frameElement) {
  function computeCoverStyle (line 40168) | function computeCoverStyle(props, loadState, imageElement, frameElement) {
  function buildClassMap (line 40186) | function buildClassMap(styles) {
  function registerIcons$1 (line 40229) | function registerIcons$1(iconSubset, options2) {
  function unregisterIcons$1 (line 40248) | function unregisterIcons$1(iconNames) {
  function getIcon (line 40273) | function getIcon(name) {
  function _warnDuplicateIcon (line 40305) | function _warnDuplicateIcon(iconName) {
  function makeSemanticColors (line 40320) | function makeSemanticColors(p, e, s2, isInverted, depComments) {
  function getSemanticColors (line 40349) | function getSemanticColors(p, e, s2, isInverted, depComments) {
  function _fixDeprecatedSlots (line 40482) | function _fixDeprecatedSlots(s2, depComments) {
  function mergeThemes (line 40494) | function mergeThemes(theme, partialTheme) {
  function _createAnimation (line 40698) | function _createAnimation(animationName, animationDuration2, animationTi...
  function _createSlideInX (line 40706) | function _createSlideInX(fromX) {
  function _createSlideInY (line 40712) | function _createSlideInY(fromY) {
  function _createSlideOutX (line 40718) | function _createSlideOutX(toX) {
  function _createSlideOutY (line 40724) | function _createSlideOutY(toY) {
  function _fontFamilyWithFallbacks (line 40836) | function _fontFamilyWithFallbacks(fontFamily2) {
  function _getLocalizedFontFamily (line 40839) | function _getLocalizedFontFamily(language) {
  function _createFont (line 40847) | function _createFont(size, weight, fontFamily2) {
  function createFontStyles (line 40856) | function createFontStyles(localeCode) {
  function _registerFontFace (line 40878) | function _registerFontFace(fontFamily2, url, fontWeight, localFontName) {
  function _registerFontFaceSet (line 40889) | function _registerFontFaceSet(baseUrl, fontFamily2, cdnFolder, cdnFontNa...
  function registerDefaultFontFaces (line 40900) | function registerDefaultFontFaces(baseUrl) {
  function _getFontBaseUrl (line 40918) | function _getFontBaseUrl() {
  function createTheme (line 40924) | function createTheme(theme, depComments) {
  function getScreenSelector (line 40957) | function getScreenSelector(min2, max2) {
  function getHighContrastNoAdjustStyle (line 40962) | function getHighContrastNoAdjustStyle() {
  function getFocusStyle (line 40977) | function getFocusStyle(theme, insetOrOptions, position2, highContrastSty...
  function _getFocusStyleInternal (line 40992) | function _getFocusStyleInternal(theme, options2) {
  function focusClear (line 41027) | function focusClear() {
  function getGlobalClassNames (line 41085) | function getGlobalClassNames(classNames2, theme, disableGlobalClassNames) {
  function initializeThemeState (line 41102) | function initializeThemeState() {
  function applyThemableStyles (line 41124) | function applyThemableStyles(stylesArray, styleRecord) {
  function loadTheme$1 (line 41131) | function loadTheme$1(theme) {
  function clearStyles (line 41135) | function clearStyles(option) {
  function clearStylesInternal (line 41141) | function clearStylesInternal(records) {
  function reloadStyles (line 41149) | function reloadStyles() {
  function resolveThemableArray (line 41162) | function resolveThemableArray(splitStyleArray) {
  function registerStyles (line 41184) | function registerStyles(styleArray) {
  function initializeThemeInCustomizations (line 41222) | function initializeThemeInCustomizations() {
  function getTheme (line 41236) | function getTheme(depComments) {
  function loadTheme (line 41245) | function loadTheme(theme, depComments) {
  function _loadFonts (line 41261) | function _loadFonts(theme) {
  function getPlaceholderStyles (line 41284) | function getPlaceholderStyles(styles) {
  function IconBase2 (line 41527) | function IconBase2(props) {
  function raiseClickFromKeyboardEvent (line 41706) | function raiseClickFromKeyboardEvent(target2, ev) {
  function getRootClass (line 41747) | function getRootClass() {
  function FocusZone2 (line 41767) | function FocusZone2(props) {
  function getIsChecked (line 42623) | function getIsChecked(item) {
  function hasSubmenu (line 42635) | function hasSubmenu(item) {
  function isItemDisabled (line 42638) | function isItemDisabled(item) {
  function getMenuItemAriaRole (line 42641) | function getMenuItemAriaRole(item) {
  function _createPositionData (line 42661) | function _createPositionData(targetEdge, alignmentEdge, isAuto) {
  function _isRectangleWithinBounds (line 42669) | function _isRectangleWithinBounds(rect2, boundingRect) {
  function _getOutOfBoundsEdges (line 42684) | function _getOutOfBoundsEdges(rect2, boundingRect) {
  function _getEdgeValue (line 42700) | function _getEdgeValue(rect2, edge) {
  function _setEdgeValue (line 42703) | function _setEdgeValue(rect2, edge, value2) {
  function _getCenterValue (line 42707) | function _getCenterValue(rect2, edge) {
  function _getRelativeEdgeValue (line 42711) | function _getRelativeEdgeValue(edge, value2) {
  function _getRelativeRectEdgeValue (line 42718) | function _getRelativeRectEdgeValue(edge, rect2) {
  function _getRelativeEdgeDifference (line 42721) | function _getRelativeEdgeDifference(rect2, hostRect, edge) {
  function _moveEdge (line 42725) | function _moveEdge(rect2, edge, newValue, maintainSize) {
  function _alignEdges (line 42736) | function _alignEdges(rect2, target2, edge, gap) {
  function _alignOppositeEdges (line 42742) | function _alignOppositeEdges(rect2, target2, targetEdge, gap) {
  function _isEdgeInBounds (line 42750) | function _isEdgeInBounds(rect2, bounds2, edge) {
  function _getOutOfBoundsDegree (line 42754) | function _getOutOfBoundsDegree(rect2, bounds2) {
  function _canScrollResizeToFitEdge (line 42763) | function _canScrollResizeToFitEdge(target2, bounding, targetEdge, minimu...
  function _flipToFit (line 42772) | function _flipToFit(rect2, target2, bounding, positionData, shouldScroll...
  function _flipAlignmentEdge (line 42843) | function _flipAlignmentEdge(elementEstimate, target2, gap, coverTarget) {
  function _adjustFitWithinBounds (line 42853) | function _adjustFitWithinBounds(element2, target2, bounding, positionDat...
  function _alignOutOfBoundsEdges (line 42889) | function _alignOutOfBoundsEdges(outOfBoundsEdges, elementEstimate, bound...
  function _centerEdgeToPoint (line 42908) | function _centerEdgeToPoint(rect2, edge, point2) {
  function _estimatePosition (line 42914) | function _estimatePosition(elementToPosition, target2, positionData, gap...
  function _getFlankingEdges (line 42930) | function _getFlankingEdges(edge) {
  function _finalizeReturnEdge (line 42943) | function _finalizeReturnEdge(elementRectangle, returnEdge, bounds2) {
  function _isEdgeOnBounds (line 42949) | function _isEdgeOnBounds(elementRectangle, edge, bounds2) {
  function _finalizeElementPosition (line 42952) | function _finalizeElementPosition(elementRectangle, hostElement, targetE...
  function _calculateActualBeakWidthInPixels (line 42968) | function _calculateActualBeakWidthInPixels(beakWidth) {
  function _getPositionData (line 42971) | function _getPositionData(directionalHint, directionalHintForRTL, previo...
  function _getAlignmentData (line 42991) | function _getAlignmentData(positionData, target2, boundingRect, coverTar...
  function getClosestEdge (line 42998) | function getClosestEdge(targetEdge, target2, boundingRect) {
  function _positionElementWithinBounds (line 43008) | function _positionElementWithinBounds(elementToPosition, target2, boundi...
  function _finalizeBeakPosition (line 43023) | function _finalizeBeakPosition(elementPosition, positionedBeak, bounds2) {
  function _positionBeak (line 43039) | function _positionBeak(beakWidth, elementPosition) {
  function _getRectangleFromElement (line 43054) | function _getRectangleFromElement(element2) {
  function _getRectangleFromIRect (line 43058) | function _getRectangleFromIRect(rect2) {
  function _getTargetRect (line 43061) | function _getTargetRect(bounds2, target2) {
  function _positionElementRelative (line 43089) | function _positionElementRelative(props, elementToPosition, boundingRect...
  function _finalizePositionData (line 43099) | function _finalizePositionData(positionedElement, hostElement, bounds2, ...
  function _calculateGapSpace (line 43107) | function _calculateGapSpace(isBeakVisible, beakWidth, gapSpace) {
  function _positionCallout (line 43116) | function _positionCallout(props, hostElement, callout, previousPositions...
  function _positionCard (line 43131) | function _positionCard(props, hostElement, callout, previousPositions, w...
  function _getRectangleFromTarget (line 43135) | function _getRectangleFromTarget(target2) {
  function positionCallout (line 43154) | function positionCallout(props, hostElement, elementToPosition, previous...
  function positionCard (line 43157) | function positionCard(props, hostElement, elementToPosition, previousPos...
  function getOppositeEdge (line 43160) | function getOppositeEdge(edge) {
  function _getBoundsFromTargetWindow (line 43163) | function _getBoundsFromTargetWindow(target2, targetWindow) {
  function getBoundsFromTargetWindow (line 43204) | function getBoundsFromTargetWindow(target2, targetWindow) {
  function calculateGapSpace (line 43207) | function calculateGapSpace(isBeakVisible, beakWidth, gapSpace) {
  function getRectangleFromTarget (line 43210) | function getRectangleFromTarget(target2) {
  function useScrollbarAsync (line 43213) | function useScrollbarAsync(props, root) {
  function defaultFocusRestorer (line 43240) | function defaultFocusRestorer(options2) {
  function useRestoreFocus (line 43249) | function useRestoreFocus(props, root) {
  function useHideSiblingNodes (line 43277) | function useHideSiblingNodes(props, root) {
  function useBounds (line 43351) | function useBounds(_a2, targetRef, targetWindow) {
  function useMaxHeight (line 43380) | function useMaxHeight(_a2, getBounds, targetRef, positions2) {
  function usePositions (line 43425) | function usePositions(props, hostElement, calloutElement, targetRef, get...
  function useAutoFocus (line 43493) | function useAutoFocus(_a2, positions2, calloutElement) {
  function useDismissHandlers (line 43508) | function useDismissHandlers(_a2, positions2, hostElement, targetRef, tar...
  function getBeakPosition (line 43693) | function getBeakPosition(positions2) {
  function arePositionsEqual (line 43702) | function arePositionsEqual(prevElementPositions, newElementPosition) {
  function comparePositions (line 43705) | function comparePositions(prevElementPositions, newElementPositions) {
  function getBeakStyle (line 43722) | function getBeakStyle(beakWidth) {
  function usePortalCompat (line 43825) | function usePortalCompat() {
  function useRenderedContent (line 43860) | function useRenderedContent(props, _a2, rootElement, ref2) {
  function useApplyThemeToBody (line 43876) | function useApplyThemeToBody(applyThemeToBody, _a2, rootElement) {
  function registerLayer (line 43932) | function registerLayer(hostId, callback) {
  function unregisterLayer (line 43945) | function unregisterLayer(hostId, callback) {
  function getLayerHost (line 43964) | function getLayerHost(hostId) {
  function createDefaultLayerHost (line 43968) | function createDefaultLayerHost(doc, shadowRoot) {
  function getDefaultTarget (line 43982) | function getDefaultTarget() {
  function getFilteredEvents (line 44106) | function getFilteredEvents() {
  method previouslyFocusedElement (line 44203) | get previouslyFocusedElement() {
  function ContextualMenuItemBase2 (line 44444) | function ContextualMenuItemBase2(props) {
  function ContextualMenuItemWrapper2 (line 44861) | function ContextualMenuItemWrapper2(props) {
  function KeytipManager2 (line 44924) | function KeytipManager2() {
  function sequencesToID (line 45028) | function sequencesToID(keySequences) {
  function mergeOverflows (line 45033) | function mergeOverflows(keySequences, overflowKeySequences) {
  function getAriaDescribedBy (line 45039) | function getAriaDescribedBy(keySequences) {
  function useKeytipData (line 45046) | function useKeytipData(options2) {
  function getKeytipData (line 45073) | function getKeytipData(keytipManager, keytipProps, describedByPrepend) {
  function ContextualMenuAnchor2 (line 45096) | function ContextualMenuAnchor2() {
  function ContextualMenuButton2 (line 45184) | function ContextualMenuButton2() {
  function ContextualMenuSplitButton2 (line 45310) | function ContextualMenuSplitButton2(props) {
  function BaseDecorator2 (line 45523) | function BaseDecorator2(props) {
  function getInitialResponsiveMode (line 45551) | function getInitialResponsiveMode() {
  function withResponsiveMode (line 45555) | function withResponsiveMode(ComposedComponent) {
  function getWidthOfCurrentWindow (line 45592) | function getWidthOfCurrentWindow(currentWindow) {
  function getResponsiveMode (line 45599) | function getResponsiveMode(currentWindow) {
  function getItemCount (line 45644) | function getItemCount(items) {
  function getSubmenuItems (line 45655) | function getSubmenuItems(item, options2) {
  function canAnyMenuItemsCheck (line 45672) | function canAnyMenuItemsCheck(items) {
  function useVisibility (line 45696) | function useVisibility(props, targetWindow) {
  function useSubMenuState (line 45720) | function useSubMenuState(_a2, dismiss) {
  function useShouldUpdateFocusOnMouseMove (line 45776) | function useSho
Copy disabled (too large) Download .json
Condensed preview — 820 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (47,760K chars).
[
  {
    "path": ".github/workflows/codeql.yml",
    "chars": 4382,
    "preview": "# For most projects, this workflow file will not need changing; you simply need\n# to commit it to your repository.\n#\n# Y"
  },
  {
    "path": ".gitignore",
    "chars": 1118,
    "preview": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n\n# Runtime data\npids\n*.pid\n*.seed\n*.pid.lock\n\n# Directo"
  },
  {
    "path": ".vscode/launch.json",
    "chars": 774,
    "preview": "{\n    // Use IntelliSense to learn about possible attributes.\n    // Hover to view descriptions of existing attributes.\n"
  },
  {
    "path": ".vscode/settings.json",
    "chars": 912,
    "preview": "{\n  \"editor.tabSize\": 4,\n  \"editor.insertSpaces\": true,\n  \"files.associations\": {\n    \"*.snapshots\": \"json\"\n  },\n  \"file"
  },
  {
    "path": ".vscode/tasks.json",
    "chars": 227,
    "preview": "{\n\t\"version\": \"2.0.0\",\n\t\"tasks\": [\n\t\t{\n\t\t\t\"type\": \"npm\",\n\t\t\t\"script\": \"vscode-webpack-extension\",\n\t\t\t\"path\": \".\",\n\t\t\t\"pr"
  },
  {
    "path": "LICENSE",
    "chars": 1162,
    "preview": "    MIT License\n\n    Copyright (c) Microsoft Corporation. All rights reserved.\n\n    Permission is hereby granted, free o"
  },
  {
    "path": "README.md",
    "chars": 7550,
    "preview": "# SandDance\n\nVisually explore, understand, and present your data.\n\n![sanddance-animation](https://user-images.githubuser"
  },
  {
    "path": "SECURITY.md",
    "chars": 2763,
    "preview": "<!-- BEGIN MICROSOFT SECURITY.MD V0.0.6 BLOCK -->\n\n## Security\n\nMicrosoft takes the security of our software products an"
  },
  {
    "path": "azure-pipelines.yml",
    "chars": 827,
    "preview": "# Node.js\n# Build a general Node.js project with npm.\n# Add steps that analyze code, save build artifacts, deploy, and m"
  },
  {
    "path": "dev.md",
    "chars": 1938,
    "preview": "# SandDance development\n\nThe SandDance repo is a monorepo made up of several packages, managed by npm workspaces. SandDa"
  },
  {
    "path": "docker-jekyll-local/Dockerfile",
    "chars": 225,
    "preview": "FROM jekyll/jekyll:4.2.2\n\nWORKDIR /srv/jekyll\n\n# Copy the docs directory\nCOPY docs/ ./\n\n# Install dependencies\nRUN bundl"
  },
  {
    "path": "docker-jekyll-local/README.md",
    "chars": 857,
    "preview": "# Jekyll Local Development with Docker\n\nThis repository includes Docker setup for running Jekyll locally to preview the "
  },
  {
    "path": "docker-jekyll-local/docker-compose.yml",
    "chars": 250,
    "preview": "services:\n  jekyll:\n    build:\n      context: ..\n      dockerfile: docker-jekyll-local/Dockerfile\n    ports:\n      - \"40"
  },
  {
    "path": "docs/Gemfile",
    "chars": 98,
    "preview": "source \"https://rubygems.org\"\n\ngem \"github-pages\", group: :jekyll_plugins\ngem \"webrick\", \"~> 1.7\"\n"
  },
  {
    "path": "docs/_config.yml",
    "chars": 46,
    "preview": "baseurl: /SandDance\nsass:\n  style: compressed\n"
  },
  {
    "path": "docs/_data/apitree.json",
    "chars": 986,
    "preview": "{\n  \"sanddance\": [\n    \"colorSchemes\",\n    \"constants\",\n    \"searchExpression\",\n    \"specs\",\n    \"types\",\n    \"use\",\n   "
  },
  {
    "path": "docs/_data/outlines.json",
    "chars": 884,
    "preview": "{\n  \"sanddance\": {\n    \"constants.md\": [\n      \"Variables\"\n    ],\n    \"types.md\": [\n      \"Interfaces\"\n    ],\n    \"util."
  },
  {
    "path": "docs/_data/tree.json",
    "chars": 411,
    "preview": "{\n  \"Overview\": [\n    {\n      \"tree\": \"Introduction\",\n      \"url\": \"/docs\"\n    },\n    {\n      \"tree\": \"Changelog\",\n     "
  },
  {
    "path": "docs/_includes/footer-links.html",
    "chars": 639,
    "preview": "<span>\n    <a href=\"https://github.com/microsoft\">Open source, from Microsoft with love.</a>\n</span>\n<span>\n    <a href="
  },
  {
    "path": "docs/_layouts/api.html",
    "chars": 1910,
    "preview": "---\nlayout: default\n---\n\n<nav class=\"c-breadcrumbs\">\n    <div class=\"o-wrapper\">\n        <a href=\"{{ site.baseurl }}/doc"
  },
  {
    "path": "docs/_layouts/default.html",
    "chars": 2471,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-widt"
  },
  {
    "path": "docs/_layouts/docs.html",
    "chars": 3253,
    "preview": "---\nlayout: default\n---\n\n<nav class=\"c-breadcrumbs\">\n    <div class=\"o-wrapper\">\n        <a href=\"{{ site.baseurl }}/doc"
  },
  {
    "path": "docs/_layouts/page.html",
    "chars": 132,
    "preview": "---\nlayout: default\n---\n\n<section class=\"c-page-content\">\n    <div class=\"o-wrapper\">\n\n        {{ content }}\n\n    </div>"
  },
  {
    "path": "docs/_layouts/typedoc.html",
    "chars": 5627,
    "preview": "---\nlayout: docs\n---\n\n<div class=\"typedoc\">\n\n    {{ content }}\n\n    <footer class=\"with-border-bottom o-wrapper\">\n      "
  },
  {
    "path": "docs/_sass/components/_components.breadcrumbs.scss",
    "chars": 937,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n/*----------------------"
  },
  {
    "path": "docs/_sass/components/_components.buttons.scss",
    "chars": 96,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n"
  },
  {
    "path": "docs/_sass/components/_components.page-content.scss",
    "chars": 503,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n/*----------------------"
  },
  {
    "path": "docs/_sass/components/_components.page-foot.scss",
    "chars": 466,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n/*----------------------"
  },
  {
    "path": "docs/_sass/components/_components.page-head.scss",
    "chars": 3073,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n/*----------------------"
  },
  {
    "path": "docs/_sass/components/_components.page-main.scss",
    "chars": 374,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n/*----------------------"
  },
  {
    "path": "docs/_sass/components/_components.site-nav.scss",
    "chars": 2473,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n/*----------------------"
  },
  {
    "path": "docs/_sass/components/_components.tree.scss",
    "chars": 4267,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n/*----------------------"
  },
  {
    "path": "docs/_sass/elements/_elements.code.scss",
    "chars": 1770,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n/*----------------------"
  },
  {
    "path": "docs/_sass/elements/_elements.headings.scss",
    "chars": 480,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n/*----------------------"
  },
  {
    "path": "docs/_sass/elements/_elements.hr.scss",
    "chars": 329,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n/*----------------------"
  },
  {
    "path": "docs/_sass/elements/_elements.links.scss",
    "chars": 534,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n/*----------------------"
  },
  {
    "path": "docs/_sass/elements/_elements.page.scss",
    "chars": 365,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n/*----------------------"
  },
  {
    "path": "docs/_sass/elements/_elements.tables.scss",
    "chars": 673,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n/*----------------------"
  },
  {
    "path": "docs/_sass/generic/_generic.syntax-highlight.scss",
    "chars": 7765,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n/*----------------------"
  },
  {
    "path": "docs/_sass/inuitcss/LICENSE",
    "chars": 554,
    "preview": "Copyright 2018 Harry Roberts\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file "
  },
  {
    "path": "docs/_sass/inuitcss/elements/_elements.headings.scss",
    "chars": 1232,
    "preview": "/* ==========================================================================\n   #HEADINGS\n   =========================="
  },
  {
    "path": "docs/_sass/inuitcss/elements/_elements.images.scss",
    "chars": 1009,
    "preview": "/* ==========================================================================\n   #IMAGES\n   ============================"
  },
  {
    "path": "docs/_sass/inuitcss/elements/_elements.page.scss",
    "chars": 905,
    "preview": "/* ==========================================================================\n   #PAGE\n   =============================="
  },
  {
    "path": "docs/_sass/inuitcss/elements/_elements.tables.scss",
    "chars": 270,
    "preview": "/* ==========================================================================\n   #TABLES\n   ============================"
  },
  {
    "path": "docs/_sass/inuitcss/generic/_generic.box-sizing.scss",
    "chars": 402,
    "preview": "/* ==========================================================================\n   #BOX-SIZING\n   ========================"
  },
  {
    "path": "docs/_sass/inuitcss/generic/_generic.normalize.scss",
    "chars": 7719,
    "preview": "/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n   ==========================="
  },
  {
    "path": "docs/_sass/inuitcss/generic/_generic.reset.scss",
    "chars": 741,
    "preview": "/* ==========================================================================\n   #RESET\n   ============================="
  },
  {
    "path": "docs/_sass/inuitcss/generic/_generic.shared.scss",
    "chars": 596,
    "preview": "/* ==========================================================================\n   #SHARED\n   ============================"
  },
  {
    "path": "docs/_sass/inuitcss/objects/_objects.block.scss",
    "chars": 1156,
    "preview": "/* ==========================================================================\n   #BLOCK\n   ============================="
  },
  {
    "path": "docs/_sass/inuitcss/objects/_objects.box.scss",
    "chars": 892,
    "preview": "/* ==========================================================================\n   #BOX\n   ==============================="
  },
  {
    "path": "docs/_sass/inuitcss/objects/_objects.crop.scss",
    "chars": 3322,
    "preview": "/* ==========================================================================\n   #CROP\n   =============================="
  },
  {
    "path": "docs/_sass/inuitcss/objects/_objects.flag.scss",
    "chars": 4243,
    "preview": "/* ==========================================================================\n   #FLAG\n   =============================="
  },
  {
    "path": "docs/_sass/inuitcss/objects/_objects.layout.scss",
    "chars": 6377,
    "preview": "/* ==========================================================================\n   #LAYOUT\n   ============================"
  },
  {
    "path": "docs/_sass/inuitcss/objects/_objects.list-bare.scss",
    "chars": 508,
    "preview": "/* ==========================================================================\n   #LIST-BARE\n   ========================="
  },
  {
    "path": "docs/_sass/inuitcss/objects/_objects.list-inline.scss",
    "chars": 370,
    "preview": "/* ==========================================================================\n   #LIST-INLINE\n   ======================="
  },
  {
    "path": "docs/_sass/inuitcss/objects/_objects.media.scss",
    "chars": 2151,
    "preview": "/* ==========================================================================\n   #MEDIA\n   ============================="
  },
  {
    "path": "docs/_sass/inuitcss/objects/_objects.pack.scss",
    "chars": 1841,
    "preview": "/* ==========================================================================\n   #PACK\n   =============================="
  },
  {
    "path": "docs/_sass/inuitcss/objects/_objects.ratio.scss",
    "chars": 2443,
    "preview": "/* ==========================================================================\n   #RATIO\n   ============================="
  },
  {
    "path": "docs/_sass/inuitcss/objects/_objects.table.scss",
    "chars": 1260,
    "preview": "/* ==========================================================================\n   #TABLE\n   ============================="
  },
  {
    "path": "docs/_sass/inuitcss/objects/_objects.wrapper.scss",
    "chars": 595,
    "preview": "/* ==========================================================================\n   #WRAPPER\n   ==========================="
  },
  {
    "path": "docs/_sass/inuitcss/settings/_settings.core.scss",
    "chars": 2895,
    "preview": "///* ========================================================================\n//   #CORE\n//   =========================="
  },
  {
    "path": "docs/_sass/inuitcss/tools/_tools.clearfix.scss",
    "chars": 488,
    "preview": "///* ========================================================================\n//   #CLEARFIX\n//   ======================"
  },
  {
    "path": "docs/_sass/inuitcss/tools/_tools.font-size.scss",
    "chars": 2474,
    "preview": "///* ========================================================================\n//   #FONT-SIZE\n//   ====================="
  },
  {
    "path": "docs/_sass/inuitcss/tools/_tools.hidden.scss",
    "chars": 570,
    "preview": "///* ========================================================================\n//   #HIDDEN-VISUALLY\n//   ==============="
  },
  {
    "path": "docs/_sass/inuitcss/utilities/_utilities.clearfix.scss",
    "chars": 276,
    "preview": "/* ==========================================================================\n   #CLEARFIX\n   =========================="
  },
  {
    "path": "docs/_sass/inuitcss/utilities/_utilities.headings.scss",
    "chars": 883,
    "preview": "/* ==========================================================================\n   #HEADINGS\n   =========================="
  },
  {
    "path": "docs/_sass/inuitcss/utilities/_utilities.hide.scss",
    "chars": 471,
    "preview": "/* ==========================================================================\n   #HIDE\n   =============================="
  },
  {
    "path": "docs/_sass/inuitcss/utilities/_utilities.print.scss",
    "chars": 1476,
    "preview": "/* ==========================================================================\n   #PRINT\n   ============================="
  },
  {
    "path": "docs/_sass/inuitcss/utilities/_utilities.responsive-spacings.scss",
    "chars": 3742,
    "preview": "/* ==========================================================================\n   #RESPONSIVE-SPACINGS\n   ==============="
  },
  {
    "path": "docs/_sass/inuitcss/utilities/_utilities.spacings.scss",
    "chars": 1487,
    "preview": "/* ==========================================================================\n   #SPACINGS\n   =========================="
  },
  {
    "path": "docs/_sass/inuitcss/utilities/_utilities.widths.scss",
    "chars": 4663,
    "preview": "/* ==========================================================================\n   #WIDTHS\n   ============================"
  },
  {
    "path": "docs/_sass/sass-mq/LICENSE.md",
    "chars": 1086,
    "preview": "Copyright (c) 2013-2016 Guardian Media Group and contributors\n\nPermission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "docs/_sass/sass-mq/_mq.scss",
    "chars": 9614,
    "preview": "@charset \"UTF-8\"; // Fixes an issue where Ruby locale is not set properly\n                  // See https://github.com/sa"
  },
  {
    "path": "docs/_sass/settings/_settings.colors.scss",
    "chars": 35388,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n////\n/// Microsoft Color"
  },
  {
    "path": "docs/_sass/settings/_settings.global.scss",
    "chars": 460,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n/*----------------------"
  },
  {
    "path": "docs/app/css/sanddance-app-site.css",
    "chars": 402,
    "preview": "html,\nbody {\n    height: 100%;\n    margin: 0;\n}\n\nbody {\n    display: grid;\n    font-family: 'Segoe UI', sans-serif;\n    "
  },
  {
    "path": "docs/app/css/sanddance-app.css",
    "chars": 17637,
    "preview": ".sanddance-app-static-content {\n  display: none;\n}\n\n.sanddance-app {\n  display: grid;\n  grid-template-rows: 100% 0;\n  he"
  },
  {
    "path": "docs/app/index.html",
    "chars": 3831,
    "preview": "---\n---\n<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=dev"
  },
  {
    "path": "docs/app/js/sanddance-app.js",
    "chars": 3517043,
    "preview": "(function(global2, factory) {\n  typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(require(\"react\"),"
  },
  {
    "path": "docs/assets/css/main.scss",
    "chars": 2473,
    "preview": "---\n---\n// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n// SETTINGS\n$inu"
  },
  {
    "path": "docs/assets/css/typedoc.css",
    "chars": 43053,
    "preview": ":root {\n  --color-menu-divider-focus: #000;\n  --color-panel-divider: #eee;\n}\n\n.row {\n  display: flex;\n  position: relati"
  },
  {
    "path": "docs/assets/js/main.js",
    "chars": 4466,
    "preview": "const SiteNav = {\n    elems: {\n        toggle: document.querySelector('#site-nav-toggle'),\n        nav: document.querySe"
  },
  {
    "path": "docs/dist/sanddance/v1/sanddance.css",
    "chars": 1594,
    "preview": ".sanddance-root {\n  height: 100%;\n  position: relative;\n  width: 100%; }\n\n.sanddance-gl {\n  position: absolute;\n  top: 0"
  },
  {
    "path": "docs/dist/sanddance/v1/sanddance.js",
    "chars": 555537,
    "preview": "(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n    "
  },
  {
    "path": "docs/dist/sanddance/v2/sanddance.css",
    "chars": 1594,
    "preview": ".sanddance-root {\n  height: 100%;\n  position: relative;\n  width: 100%; }\n\n.sanddance-gl {\n  position: absolute;\n  top: 0"
  },
  {
    "path": "docs/dist/sanddance/v2/sanddance.js",
    "chars": 805211,
    "preview": "(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n    "
  },
  {
    "path": "docs/dist/sanddance/v3/sanddance.css",
    "chars": 1655,
    "preview": ".sanddance-root {\n  height: 100%;\n  position: relative;\n  width: 100%;\n}\n\n.sanddance-gl {\n  position: absolute;\n  top: 0"
  },
  {
    "path": "docs/dist/sanddance/v3/sanddance.js",
    "chars": 359488,
    "preview": "(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n    "
  },
  {
    "path": "docs/dist/sanddance/v4/sanddance.css",
    "chars": 1717,
    "preview": ".sanddance-root {\n  height: 100%;\n  position: relative;\n  width: 100%;\n}\n\n.sanddance-gl {\n  overflow: hidden;\n  position"
  },
  {
    "path": "docs/dist/sanddance/v4/sanddance.js",
    "chars": 1384763,
    "preview": "(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n    "
  },
  {
    "path": "docs/dist/sanddance-explorer/v1/sanddance-explorer.css",
    "chars": 13840,
    "preview": ".sanddance-root {\n  height: 100%;\n  position: relative;\n  width: 100%; }\n\n.sanddance-gl {\n  position: absolute;\n  top: 0"
  },
  {
    "path": "docs/dist/sanddance-explorer/v1/sanddance-explorer.js",
    "chars": 1179112,
    "preview": "// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -"
  },
  {
    "path": "docs/dist/sanddance-explorer/v2/sanddance-explorer.css",
    "chars": 15760,
    "preview": ".sanddance-root {\n  height: 100%;\n  position: relative;\n  width: 100%; }\n\n.sanddance-gl {\n  position: absolute;\n  top: 0"
  },
  {
    "path": "docs/dist/sanddance-explorer/v2/sanddance-explorer.js",
    "chars": 1219754,
    "preview": "// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -"
  },
  {
    "path": "docs/dist/sanddance-explorer/v3/sanddance-explorer.css",
    "chars": 15935,
    "preview": ".sanddance-root {\n  height: 100%;\n  position: relative;\n  width: 100%;\n}\n\n.sanddance-gl {\n  position: absolute;\n  top: 0"
  },
  {
    "path": "docs/dist/sanddance-explorer/v3/sanddance-explorer.js",
    "chars": 773804,
    "preview": "(() => {\nfunction $parcel$export(e, n, v, s) {\n  Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configur"
  },
  {
    "path": "docs/dist/sanddance-explorer/v4/sanddance-explorer.css",
    "chars": 17194,
    "preview": ".sanddance-root {\n  height: 100%;\n  position: relative;\n  width: 100%;\n}\n\n.sanddance-gl {\n  overflow: hidden;\n  position"
  },
  {
    "path": "docs/dist/sanddance-explorer/v4/sanddance-explorer.js",
    "chars": 2632846,
    "preview": "(() => {\n\nfunction $parcel$export(e, n, v, s) {\n  Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configu"
  },
  {
    "path": "docs/dist/sanddance-react/v4/sanddance-react.js",
    "chars": 9055,
    "preview": "(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require("
  },
  {
    "path": "docs/dist/vega-deck.gl/v2/vega-deck.gl.js",
    "chars": 351875,
    "preview": "(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n    "
  },
  {
    "path": "docs/dist/vega-deck.gl/v3/vega-deck.gl.js",
    "chars": 97367,
    "preview": "(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n    "
  },
  {
    "path": "docs/dist/vega-morphcharts/v1/vega-morphcharts.js",
    "chars": 1067570,
    "preview": "(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n    "
  },
  {
    "path": "docs/docs/changelog.md",
    "chars": 375,
    "preview": "---\nlayout: docs\ntitle: Documentation Changelog\n---\n\n# Documentation Changelog\n\n* December 2024 - API docs taken down fo"
  },
  {
    "path": "docs/docs/contributing.md",
    "chars": 1366,
    "preview": "---\nlayout: docs\ntitle: Contributing\n---\n\n# Contributing\nWe would love to accept your contributions to SandDance. Before"
  },
  {
    "path": "docs/docs/index.md",
    "chars": 1394,
    "preview": "---\nlayout: docs\ntitle: Docs\n---\n\n# Introduction\n\nSandDance is an offering of several JavaScript components:\n\n* [sanddan"
  },
  {
    "path": "docs/embed/v1/sanddance-embed.html",
    "chars": 1180,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-widt"
  },
  {
    "path": "docs/embed/v2/sanddance-embed-privacy-footer.html",
    "chars": 1901,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-widt"
  },
  {
    "path": "docs/embed/v2/sanddance-embed.html",
    "chars": 1186,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-widt"
  },
  {
    "path": "docs/embed/v3/sanddance-embed.html",
    "chars": 1174,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-widt"
  },
  {
    "path": "docs/embed/v4/dynamic/target.html",
    "chars": 307,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-widt"
  },
  {
    "path": "docs/embed/v4/dynamic/test.html",
    "chars": 2660,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n    <meta charset=\"utf-8\" />\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE"
  },
  {
    "path": "docs/embed/v4/sanddance-embed.html",
    "chars": 1119,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width"
  },
  {
    "path": "docs/embed/v4/test.html",
    "chars": 1355,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n    <meta charset=\"utf-8\" />\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE"
  },
  {
    "path": "docs/examples/index.md",
    "chars": 1605,
    "preview": "---\nlayout: page\ntitle: Examples\n---\n\n# Examples\n\n## Subsystem\n\n### data-inference\n* [data-inference test](../tests/data"
  },
  {
    "path": "docs/examples/v3.md",
    "chars": 1381,
    "preview": "---\nlayout: page\ntitle: V3 Examples\n---\n\n# V3 Examples\n\n## Subsystem\n\n### sanddance-specs\n* [sanddance-specs 2D vega spe"
  },
  {
    "path": "docs/external/js/react-dom.development.js",
    "chars": 906285,
    "preview": "/** @license React v16.13.1\n * react-dom.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * Thi"
  },
  {
    "path": "docs/external/js/react.development.js",
    "chars": 105134,
    "preview": "/** @license React v16.13.1\n * react.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This so"
  },
  {
    "path": "docs/index.html",
    "chars": 9203,
    "preview": "---\nlayout: page\ntitle: 'Home'\n---\n\n<h1 id=\"sanddance\">SandDance</h1>\n<p>Visually explore, understand, and present your "
  },
  {
    "path": "docs/sample-data/demovote.tsv",
    "chars": 3763764,
    "preview": "Id\tLongitude\tLatitude\tGeoName\tStateAbb\tState\tCounty\tTotalPop\tMedAge\tEducation\tUnemployment\tIncome\tMedHomeValue\tObama\tZip"
  },
  {
    "path": "docs/sample-data/titanicmaster.tsv",
    "chars": 190315,
    "preview": "Name\tClass\tJoined\tJob\tTicketCost\tAge\tGender\tSurvived\tDepartment\n\"ALLEN, Miss Elisabeth Walton\"\t1st Class Passenger\tSouth"
  },
  {
    "path": "docs/tests/data-inference/v1/index.html",
    "chars": 18815,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n    <meta charset=\"utf-8\" />\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE"
  },
  {
    "path": "docs/tests/data-inference/v1/js/data-inference.js",
    "chars": 24328,
    "preview": "(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n  type"
  },
  {
    "path": "docs/tests/data-inference/v2/index.html",
    "chars": 18815,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n    <meta charset=\"utf-8\" />\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE"
  },
  {
    "path": "docs/tests/data-inference/v2/js/data-inference.js",
    "chars": 24328,
    "preview": "(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n  type"
  },
  {
    "path": "docs/tests/sanddance-specs/v1/index.html",
    "chars": 3090,
    "preview": "<!DOCTYPE html>\n<html>\n\n<head>\n    <meta charset=\"utf-8\" />\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n  "
  },
  {
    "path": "docs/tests/sanddance-specs/v1/js/index.js",
    "chars": 2808,
    "preview": "var dataUrl = '/SandDance/sample-data/demovote.tsv';\nvar specViewOptions = {\n    colors: {\n        defaultCube: \"steelbl"
  },
  {
    "path": "docs/tests/sanddance-specs/v1/js/sanddance-specs.js",
    "chars": 202277,
    "preview": "(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n    "
  },
  {
    "path": "docs/tests/sanddance-specs/v1/specs/column-categoric.json",
    "chars": 233,
    "preview": "{\n    \"columns\": {\n        \"x\": \"State\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\"\n    },\n    \"scheme\": \"redblu"
  },
  {
    "path": "docs/tests/sanddance-specs/v1/specs/column-facet-cross.json",
    "chars": 316,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Income\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\",\n        \"facet\": \"MedAge\","
  },
  {
    "path": "docs/tests/sanddance-specs/v1/specs/column-facet-wrap.json",
    "chars": 287,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Income\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\",\n        \"facet\": \"MedAge\"\n"
  },
  {
    "path": "docs/tests/sanddance-specs/v1/specs/column-sum-strip-pct.json",
    "chars": 301,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Income\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\",\n        \"size\": \"TotalPop\""
  },
  {
    "path": "docs/tests/sanddance-specs/v1/specs/column-sum-strip.json",
    "chars": 293,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Income\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\",\n        \"size\": \"TotalPop\""
  },
  {
    "path": "docs/tests/sanddance-specs/v1/specs/column-sum-treemap.json",
    "chars": 295,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Income\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\",\n        \"size\": \"TotalPop\""
  },
  {
    "path": "docs/tests/sanddance-specs/v1/specs/column.json",
    "chars": 234,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Income\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\"\n    },\n    \"scheme\": \"redbl"
  },
  {
    "path": "docs/tests/sanddance-specs/v1/specs/density-facet-cross.json",
    "chars": 342,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\""
  },
  {
    "path": "docs/tests/sanddance-specs/v1/specs/density-facet-wrap.json",
    "chars": 313,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\""
  },
  {
    "path": "docs/tests/sanddance-specs/v1/specs/density-treemap.json",
    "chars": 372,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\""
  },
  {
    "path": "docs/tests/sanddance-specs/v1/specs/density.json",
    "chars": 260,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\""
  },
  {
    "path": "docs/tests/sanddance-specs/v1/specs/scatter-facet-cross.json",
    "chars": 346,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\""
  },
  {
    "path": "docs/tests/sanddance-specs/v1/specs/scatter-facet-wrap-with-image.json",
    "chars": 543,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\""
  },
  {
    "path": "docs/tests/sanddance-specs/v1/specs/scatter-facet-wrap.json",
    "chars": 317,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\""
  },
  {
    "path": "docs/tests/sanddance-specs/v1/specs/scatter-with-image.json",
    "chars": 490,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\""
  },
  {
    "path": "docs/tests/sanddance-specs/v1/specs/scatter.json",
    "chars": 269,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Income\",\n        \"z\": \"Income\"\n "
  },
  {
    "path": "docs/tests/sanddance-specs/v1/specs/stacks-facet-cross.json",
    "chars": 366,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\""
  },
  {
    "path": "docs/tests/sanddance-specs/v1/specs/stacks-facet-wrap-with-image.json",
    "chars": 562,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\""
  },
  {
    "path": "docs/tests/sanddance-specs/v1/specs/stacks-facet-wrap.json",
    "chars": 337,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\""
  },
  {
    "path": "docs/tests/sanddance-specs/v1/specs/stacks-with-image.json",
    "chars": 509,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\""
  },
  {
    "path": "docs/tests/sanddance-specs/v1/specs/stacks.json",
    "chars": 284,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\""
  },
  {
    "path": "docs/tests/sanddance-specs/v2/index.html",
    "chars": 3090,
    "preview": "<!DOCTYPE html>\n<html>\n\n<head>\n    <meta charset=\"utf-8\" />\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n  "
  },
  {
    "path": "docs/tests/sanddance-specs/v2/js/index.js",
    "chars": 2808,
    "preview": "var dataUrl = '/SandDance/sample-data/demovote.tsv';\nvar specViewOptions = {\n    colors: {\n        defaultCube: \"steelbl"
  },
  {
    "path": "docs/tests/sanddance-specs/v2/js/sanddance-specs.js",
    "chars": 202277,
    "preview": "(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n    "
  },
  {
    "path": "docs/tests/sanddance-specs/v2/specs/column-categoric.json",
    "chars": 233,
    "preview": "{\n    \"columns\": {\n        \"x\": \"State\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\"\n    },\n    \"scheme\": \"redblu"
  },
  {
    "path": "docs/tests/sanddance-specs/v2/specs/column-facet-cross.json",
    "chars": 316,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Income\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\",\n        \"facet\": \"MedAge\","
  },
  {
    "path": "docs/tests/sanddance-specs/v2/specs/column-facet-wrap.json",
    "chars": 287,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Income\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\",\n        \"facet\": \"MedAge\"\n"
  },
  {
    "path": "docs/tests/sanddance-specs/v2/specs/column-sum-strip-pct.json",
    "chars": 301,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Income\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\",\n        \"size\": \"TotalPop\""
  },
  {
    "path": "docs/tests/sanddance-specs/v2/specs/column-sum-strip.json",
    "chars": 293,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Income\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\",\n        \"size\": \"TotalPop\""
  },
  {
    "path": "docs/tests/sanddance-specs/v2/specs/column-sum-treemap.json",
    "chars": 295,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Income\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\",\n        \"size\": \"TotalPop\""
  },
  {
    "path": "docs/tests/sanddance-specs/v2/specs/column.json",
    "chars": 234,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Income\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\"\n    },\n    \"scheme\": \"redbl"
  },
  {
    "path": "docs/tests/sanddance-specs/v2/specs/density-facet-cross.json",
    "chars": 342,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\""
  },
  {
    "path": "docs/tests/sanddance-specs/v2/specs/density-facet-wrap.json",
    "chars": 313,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\""
  },
  {
    "path": "docs/tests/sanddance-specs/v2/specs/density-treemap.json",
    "chars": 372,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\""
  },
  {
    "path": "docs/tests/sanddance-specs/v2/specs/density.json",
    "chars": 260,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\""
  },
  {
    "path": "docs/tests/sanddance-specs/v2/specs/scatter-facet-cross.json",
    "chars": 346,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\""
  },
  {
    "path": "docs/tests/sanddance-specs/v2/specs/scatter-facet-wrap-with-image.json",
    "chars": 543,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\""
  },
  {
    "path": "docs/tests/sanddance-specs/v2/specs/scatter-facet-wrap.json",
    "chars": 317,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\""
  },
  {
    "path": "docs/tests/sanddance-specs/v2/specs/scatter-with-image.json",
    "chars": 490,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\""
  },
  {
    "path": "docs/tests/sanddance-specs/v2/specs/scatter.json",
    "chars": 269,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Income\",\n        \"z\": \"Income\"\n "
  },
  {
    "path": "docs/tests/sanddance-specs/v2/specs/stacks-facet-cross.json",
    "chars": 366,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\""
  },
  {
    "path": "docs/tests/sanddance-specs/v2/specs/stacks-facet-wrap-with-image.json",
    "chars": 562,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\""
  },
  {
    "path": "docs/tests/sanddance-specs/v2/specs/stacks-facet-wrap.json",
    "chars": 337,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\""
  },
  {
    "path": "docs/tests/sanddance-specs/v2/specs/stacks-with-image.json",
    "chars": 509,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\""
  },
  {
    "path": "docs/tests/sanddance-specs/v2/specs/stacks.json",
    "chars": 284,
    "preview": "{\n    \"columns\": {\n        \"x\": \"Longitude\",\n        \"y\": \"Latitude\",\n        \"color\": \"Obama\",\n        \"z\": \"Education\""
  },
  {
    "path": "docs/tests/v2/es6/css/sanddance.css",
    "chars": 448,
    "preview": ".sanddance-gl {\n    border: 1px solid #ccc;\n    float: left;\n    height: 700px;\n    width: 700px;\n    margin-right: 1em;"
  },
  {
    "path": "docs/tests/v2/es6/js/sanddance.js",
    "chars": 4859031,
    "preview": "// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -"
  },
  {
    "path": "docs/tests/v2/es6/sanddance.html",
    "chars": 443,
    "preview": "<!DOCTYPE html>\n<html>\n\n<head>\n    <meta charset=\"utf-8\" />\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n  "
  },
  {
    "path": "docs/tests/v2/umd/chromaticTextTest.html",
    "chars": 636,
    "preview": "<!DOCTYPE html>\n<html>\n\n<head>\n    <meta charset=\"utf-8\" />\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n  "
  },
  {
    "path": "docs/tests/v2/umd/css/test.css",
    "chars": 258,
    "preview": "body {\n    font-family: 'Segoe UI', sans-serif;\n}\n\n#vis { \n    position: absolute;\n    bottom: 0;\n    top: 5em;\n    left"
  },
  {
    "path": "docs/tests/v2/umd/css/transition.css",
    "chars": 1548,
    "preview": "html,\nbody {\n    font-family: sans-serif;\n    height: 100%;\n}\n\nbody.rows {\n    display: grid;\n    grid-template-rows: 10"
  },
  {
    "path": "docs/tests/v2/umd/css/vega-deck.gl.test.css",
    "chars": 67,
    "preview": ".vega-deckgl-gl {\n    border: 1px solid #ccc;\n    height: 700px;\n}\n"
  },
  {
    "path": "docs/tests/v2/umd/cubeTest.html",
    "chars": 652,
    "preview": "<!DOCTYPE html>\n<html>\n\n<head>\n    <meta charset=\"utf-8\" />\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n  "
  },
  {
    "path": "docs/tests/v2/umd/js/chromaticTextTest.js",
    "chars": 2131,
    "preview": "var chromaticTextTest;\n(function (chromaticTextTest) {\n    SandDance.use(null, deck, deck, luma);\n    var colors = {\n   "
  },
  {
    "path": "docs/tests/v2/umd/js/cubeTest.js",
    "chars": 2571,
    "preview": "var cubeTest;\n(function (cubeTest) {\n    SandDance.use(null, deck, deck, luma);\n    var colors = {\n        red: [255, 0,"
  },
  {
    "path": "docs/tests/v2/umd/js/qualBarChartTest.js",
    "chars": 1255,
    "preview": "var qualBarChartTest;\n(function (qualBarChartTest) {\n    SandDance.use(vega, deck, deck, luma);\n    qualBarChartTest.vie"
  },
  {
    "path": "docs/tests/v2/umd/js/quanBarChartTest.js",
    "chars": 1197,
    "preview": "var quanBarChartTest;\n(function (quanBarChartTest) {\n    SandDance.use(vega, deck, deck, luma);\n    quanBarChartTest.vie"
  },
  {
    "path": "docs/tests/v2/umd/js/scatterplotTest.js",
    "chars": 903,
    "preview": "var scatterplotTest;\n(function (scatterplotTest) {\n    SandDance.use(vega, deck, deck, luma);\n    scatterplotTest.viewer"
  },
  {
    "path": "docs/tests/v2/umd/js/test.js",
    "chars": 748,
    "preview": "var test;\n(function (test) {\n    var data = [\n        { myUid: 0, myColor: 0, mySort: 0, myX: 0, myY: 0, myZ: 0 },\n     "
  },
  {
    "path": "docs/tests/v2/umd/js/transition.js",
    "chars": 1816,
    "preview": "var transition;\n(function (transition) {\n    var view;\n    var lastSpec;\n    var viewType = '3d';\n    SandDance.use(vega"
  },
  {
    "path": "docs/tests/v2/umd/js/treeMapTest.js",
    "chars": 799,
    "preview": "var treeMapTest;\n(function (treeMapTest) {\n    SandDance.use(vega, deck, deck, luma);\n    treeMapTest.viewer = new SandD"
  },
  {
    "path": "docs/tests/v2/umd/js/vega-deck.gl.test.js",
    "chars": 3786,
    "preview": "var vegaDeckglTest;\n(function (vegaDeckglTest) {\n    SandDance.use(vega, deck, deck, luma);\n    var spec = {\n        \"$s"
  },
  {
    "path": "docs/tests/v2/umd/qualBarChartTest.html",
    "chars": 774,
    "preview": "<!DOCTYPE html>\n<html>\n\n<head>\n    <meta charset=\"utf-8\" />\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n  "
  },
  {
    "path": "docs/tests/v2/umd/quanBarChartTest.html",
    "chars": 774,
    "preview": "<!DOCTYPE html>\n<html>\n\n<head>\n    <meta charset=\"utf-8\" />\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n  "
  },
  {
    "path": "docs/tests/v2/umd/scatterplotTest.html",
    "chars": 773,
    "preview": "<!DOCTYPE html>\n<html>\n\n<head>\n    <meta charset=\"utf-8\" />\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n  "
  },
  {
    "path": "docs/tests/v2/umd/specs/scatter3D.json",
    "chars": 8528,
    "preview": "{\n    \"$schema\": \"https://vega.github.io/schema/vega/v3.json\",\n    \"width\": 700,\n    \"height\": 700,\n    \"padding\": 5,\n  "
  },
  {
    "path": "docs/tests/v2/umd/specs/titanic.json",
    "chars": 8063,
    "preview": "{\n    \"$schema\": \"https://vega.github.io/schema/vega/v3.json\",\n    \"height\": 500,\n    \"padding\": 5,\n    \"signals\": [\n   "
  },
  {
    "path": "docs/tests/v2/umd/test.html",
    "chars": 738,
    "preview": "<!DOCTYPE html>\n<html>\n\n<head>\n    <meta charset=\"utf-8\" />\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n  "
  },
  {
    "path": "docs/tests/v2/umd/transition.html",
    "chars": 1277,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-widt"
  },
  {
    "path": "docs/tests/v2/umd/treeMapTest.html",
    "chars": 765,
    "preview": "<!DOCTYPE html>\n<html>\n\n<head>\n    <meta charset=\"utf-8\" />\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n  "
  },
  {
    "path": "docs/tests/v2/umd/vega-deck.gl.test.html",
    "chars": 692,
    "preview": "<!DOCTYPE html>\n<html>\n\n<head>\n    <meta charset=\"utf-8\" />\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n  "
  },
  {
    "path": "docs/tests/v3/es6/app.html",
    "chars": 3859,
    "preview": "---\n---\n<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=dev"
  },
  {
    "path": "docs/tests/v3/es6/css/sanddance-app-site.css",
    "chars": 309,
    "preview": "html,\nbody {\n    height: 100%;\n    margin: 0;\n}\n\nbody {\n    display: grid;\n    font-family: 'Segoe UI', sans-serif;\n    "
  }
]

// ... and 620 more files (download for full content)

About this extraction

This page contains the full source code of the microsoft/SandDance GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 820 files (43.5 MB), approximately 11.4M tokens, and a symbol index with 47846 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!