diff --git a/docs/api/studio/changelog.mdx b/docs/api/studio/changelog.mdx index cecf669..88f89b2 100644 --- a/docs/api/studio/changelog.mdx +++ b/docs/api/studio/changelog.mdx @@ -51,7 +51,7 @@ The all-new Studio Runtime 2.0 comes with a rebuilt physics engine. Some physics - We added a new `type` property (required) to `ecs.Collider` to allow for determining if and how physics simulation should apply to the object. Previously, a mass value above 0 determined if a collider was Dynamic or not (0 mass = Static), and Kinematic colliders were not supported. - Allowed values: `ColliderType.Static`, `ColliderType.Kinematic`, `ColliderType.Dynamic` - Kinematic colliders are not affected by physics forces, but can have motion and can affect other dynamic bodies through collisions - - See [Collider API documentation](https://www.8thwall.com/docs/api/studio/ecs/collider/) for details and use cases + - See [Collider API documentation](/docs/api/studio/ecs/collider/) for details and use cases ### Fixes and Enhancements - Enabled stricter typescript checking on by default at build time to improve error reporting diff --git a/docs/api/studio/events/xr/face.mdx b/docs/api/studio/events/xr/face.mdx index 702de27..f297ba5 100644 --- a/docs/api/studio/events/xr/face.mdx +++ b/docs/api/studio/events/xr/face.mdx @@ -71,7 +71,7 @@ This event is emitted by Face Effects when a face is first found. | transform | [`TransformObject`](#TransformObject) | Transform information of the located face. | | vertices | `[{x, y, z}]` | Position of face points, relative to transform. | | normals | `[{x, y, z}]` | Normal direction of vertices, relative to transform. | -| attachmentPoints | `{ name, position: {x,y,z} }` | See [`XR8.FaceController.AttachmentPoints`](https://www.8thwall.com/docs/api/engine/facecontroller/attachmentpoints/) for list of available attachment points. `position` is relative to the transform. | +| attachmentPoints | `{ name, position: {x,y,z} }` | See [`XR8.FaceController.AttachmentPoints`](/docs/api/engine/facecontroller/attachmentpoints/) for list of available attachment points. `position` is relative to the transform. | | uvsInCameraFrame | `[{u, v}]` | The list of uv positions in the camera frame corresponding to the returned vertex points. | #### Example @@ -93,7 +93,7 @@ This event is emitted by Face Effects when faces are subsequently found. | transform | [`TransformObject`](#TransformObject) | Transform information of the located face. | | vertices | `[{x, y, z}]` | Position of face points, relative to transform. | | normals | `[{x, y, z}]` | Normal direction of vertices, relative to transform. | -| attachmentPoints | `{ name, position: {x,y,z} }` | See [`XR8.FaceController.AttachmentPoints`](https://www.8thwall.com/docs/api/engine/facecontroller/attachmentpoints/) for list of available attachment points. `position` is relative to the transform. | +| attachmentPoints | `{ name, position: {x,y,z} }` | See [`XR8.FaceController.AttachmentPoints`](/docs/api/engine/facecontroller/attachmentpoints/) for list of available attachment points. `position` is relative to the transform. | | uvsInCameraFrame | `[{u, v}]` | The list of uv positions in the camera frame corresponding to the returned vertex points. | #### Example diff --git a/docs/engine/engine.md b/docs/engine/engine.md index 268b247..7cf300b 100644 --- a/docs/engine/engine.md +++ b/docs/engine/engine.md @@ -1,9 +1,13 @@ --- -sidebar_label: Introduction +sidebar_label: Engine Introduction --- # 8th Wall Engine +:::info +If you are developing an 8th Wall project with [Studio](/docs/studio), the 8th Wall Engine is included in all projects by default and does not require additional setup. +::: + The 8th Wall AR Engine is a complete implementation of 8th Wall's Simultaneous Localization and Mapping (SLAM) engine, hyper-optimized for real-time WebAR on browsers. AR features include World Tracking, Image Targets, Face Effects, and Sky Segmentation. The engine is built-in to Studio projects, and is also easily integrated into modern 3D JavaScript frameworks such as [A-Frame](), [three.js](), [PlayCanvas](), and [Babylon.js](). diff --git a/docs/engine/guides/advanced-analytics.md b/docs/engine/guides/advanced-analytics.md index b2e4643..289d89b 100644 --- a/docs/engine/guides/advanced-analytics.md +++ b/docs/engine/guides/advanced-analytics.md @@ -64,7 +64,7 @@ experience. These events will be particular to your WebAR project, but some exam * etc… In this example, we’ll create a Tag (with Trigger) and add it to the -["AFrame: Place Ground"](https://www.8thwall.com/8thwall/placeground-aframe) sample project that +["AFrame: Place Ground"](https://github.com/8thwall/aframe-world-effects-example) example that fires each time a 3D model is spawned. #### Create Custom Event Trigger {#create-custom-event-trigger} @@ -95,7 +95,7 @@ In your 8th Wall project, add the following line of javascript to fire this trig `window.dataLayer.push({event: 'placeModel'})` -##### Example - based on {#example---based-on-httpswww8thwallcom8thwallplaceground-aframemastertap-placejs} +##### Example - based on ```javascript export const tapPlaceComponent = { diff --git a/docs/engine/guides/coaching-overlay.md b/docs/engine/guides/coaching-overlay.md index 25d0004..883ab91 100644 --- a/docs/engine/guides/coaching-overlay.md +++ b/docs/engine/guides/coaching-overlay.md @@ -15,20 +15,9 @@ customizable by developers, enabling you to focus your time on building your Web ### Use Absolute Scale Coaching Overlay in Your Project: {#use-absolute-scale-coaching-overlay-in-your-project} -1. Open your Project -2. Add the following tag to `head.html` +1. Clone a project that contains the coaching overlay. The coaching overlay is included as a part of the `external` folder. -```jsx - -``` - -Note: For Self-Hosted projects, you would add the following ` -``` - -3. Optionally, customize the parameters of your `coaching-overlay` component as defined below. For +2. Optionally, customize the parameters of the `coaching-overlay` component as defined below. For Non-AFrame projects, please refer to the [CoachingOverlay.configure()](/docs/api/engine/coachingoverlay/configure) documentation. @@ -138,20 +127,9 @@ enabling you to focus your time on building your WebAR experience. ### Use Sky Effects Coaching Overlay in Your Project {#use-sky-effects-coaching-overlay-in-your-project} -1. Open your Project -2. Add the following tag to `head.html` - -```jsx - -``` - -Note: For Self-Hosted projects, you would add the following ` -``` +1. Clone a project that contains the coaching overlay. The coaching overlay is included as a part of the `external` folder. -3. Optionally, customize the parameters of your `sky-coaching-overlay` component as defined below. +2. Optionally, customize the parameters of the `sky-coaching-overlay` component as defined below. For Non-AFrame projects, please refer to the SkyCoachingOverlay.configure() documentation. ### A-Frame component parameters (all optional) {#sky-coaching-overlay-parameters} diff --git a/docs/engine/guides/iframe.md b/docs/engine/guides/iframe.md index ba61954..49b1a2c 100644 --- a/docs/engine/guides/iframe.md +++ b/docs/engine/guides/iframe.md @@ -1,5 +1,5 @@ --- -id: ios-8th-wall-web-inside-an-iframe +id: iframe sidebar_position: 7 --- @@ -14,124 +14,6 @@ the following [feature-policy directives](https://developer.mozilla.org/en-US/do ``` -NOTE: microphone is optional. - -## LEGACY METHOD: Supporting iOS versions prior to iOS 15 {#legacy-method-supporting-ios-versions-prior-to-ios-15} - -The following is **ONLY** required for supporting Inline AR in iOS versions prior to iOS 15. Given -the high adoption of iOS 15+, we **NO LONGER** recommend using this approach. - -See the latest iOS adoption stats from Apple: - -In addition to including the allow parameter with the correct -[feature-policy directives](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy#directives) -in your iframe as explained above, to support World Tracking projects on iOS versions prior to iOS -15, you must also include additional javascript on both the OUTER and INNER AR pages as explained -below. - -In these versions, Safari blocks deviceorientation and devicemotion event access from cross-origin -iframes. To counter this, you must include two scripts in your project to ensure cross-compatibility -with iOS when deploying World Tracking projects. - -This is **not required for Face Effects or Image Target projects** (with `disableWorldTracking` set -to `true`). - -When implemented correctly, this process enables the OUTER website to send motion events down to the -INNER AR website, a requirement for World Tracking. - -#### For the OUTER website {#for-the-outer-website} - -**iframe.js** must be included in the **HEAD** of the **OUTER** page via this script tag: - -```html - -``` - -When starting AR, register the XRIFrame by iframe ID: - -```js -window.XRIFrame.registerXRIFrame(IFRAME_ID) -``` - -When stoppping AR, deregister the XRIFrame: - -```js -window.XRIFrame.deregisterXRIFrame() -``` - -#### For the INNER website {#for-the-inner-website} - -**iframe-inner.js** must be included in the **HEAD** of your **INNER AR** website with this script tag: - -```html - -``` - -By allowing the inner and outer windows to communicate, deviceorientation/devicemotion data can be shared. - -See sample project at - -#### Examples {#examples} - -##### Outer Page {#outer-page} - -```jsx -// Send deviceorientation/devicemotion to the INNER iframe - - -... -const IFRAME_ID = 'my-iframe' // Iframe containing AR content. -const onLoad = () => { - window.XRIFrame.registerXRIFrame(IFRAME_ID) -} -// Add event listenters and callbacks for the body DOM. -window.addEventListener('load', onLoad, false) - -... - - - - -``` - -##### Inner Page: AFrame projects {#inner-page-aframe-projects} - -```html - - - - - -... - - - - - - ... - -``` - -##### Inner Page: Non-AFrame projects {#inner-page-non-aframe-projects} - -```html - - - - - -... - - -XR8.addCameraPipelineModules([ - // Custom pipeline modules - iframeInnerPipelineModule, -]) -``` +:::note +All permissions are required for AR **except for microphone**. +::: diff --git a/docs/engine/guides/landing-page.md b/docs/engine/guides/landing-page.md index 94e0235..8e5c101 100644 --- a/docs/engine/guides/landing-page.md +++ b/docs/engine/guides/landing-page.md @@ -30,19 +30,8 @@ time on building your WebAR experience. ## Use Landing Pages in Your Project {#use-landing-pages-in-your-project} -1. Open your Project -2. Add the following tag to `head.html` - -`` - -Note: For Self-Hosted projects, you would add the following `` - -3. **Remove** `xrextras-almost-there` from your A-Frame project, or -`XRExtras.AlmostThere.pipelineModule()` from your Non-AFrame project. (Landing Pages include -almost-there logic in addition to the updates to the QR code page.) -4. Optionally, customize the parameters of your `landing-page` component as defined below. For +1. Clone a project that contains the landing page script. The landing page script is included as a part of the `external` folder. +2. Optionally, customize the parameters of the `landing-page` component as defined below. For Non-AFrame projects, please refer to the [LandingPage.configure()](/docs/api/engine/landingpage/configure) documentation. diff --git a/docs/engine/guides/progressive-web-apps.md b/docs/engine/guides/progressive-web-apps.md deleted file mode 100644 index ee22f73..0000000 --- a/docs/engine/guides/progressive-web-apps.md +++ /dev/null @@ -1,152 +0,0 @@ ---- -id: progressive-web-apps -sidebar_position: 8 ---- - -# Progressive Web Apps - -Progressive Web Apps (PWAs) use modern web capabilities to offer users an experience that's similar -to a native application. The 8th Wall Cloud Editor allows you to create a PWA version of your -project so that users can add it to their home screen. Users must be **connected to the internet** -in order to access it. - -To enable PWA support for your WebAR project: - -1. Visit your project settings page, and expand the “Progressive Web App” pane. (Only visible to paid workspaces) -2. Toggle the slider to Enable PWA support. -3. Customize your PWA name, icon, and colors. -4. Click "Save" - -**Note**: For Cloud Editor projects, you may be prompted to build & re-publish your project if it -was previously published. If you decide not to republish, PWA support will be included the next -time your project is built. - -## PWA API Reference {#pwa-api-reference} - -8th Wall's **XRExtras** library provides an API to automatically display an install prompt in your web app. - -Please refer to the `PwaInstaller` API reference at - -## PWA Icon Requirements {#pwa-icon-requirements} - -* File Types: **.png** -* Aspect Ratio: **1:1** -* Dimensions: - * Minimum: **512 x 512 pixels** - * Note: If you upload an image larger than 512x512, it will be cropped to a 1:1 aspect ratio and resized down to 512x512. - -## PWA Install Prompt Customization {#pwa-install-prompt-customization} - -The [PwaInstaller](https://github.com/8thwall/web/tree/master/xrextras/src/pwainstallermodule) -module from XRExtras displays an install prompt asking your user to add your web app to their home -screen. - -To customize the look of your install prompt, you can provide custom string values through the -[XRExtras.PwaInstaller.configure()](https://github.com/8thwall/web/tree/master/xrextras/src/pwainstallermodule#configure) API. - -For a completely custom install prompt, configure the installer with -[displayInstallPrompt](https://github.com/8thwall/web/tree/master/xrextras/src/pwainstallermodule#displayinstallprompt) -and -[hideInstallPrompt](https://github.com/8thwall/web/tree/master/xrextras/src/pwainstallermodule#hideinstallprompt) - -## Self-Hosted PWA Usage {#self-hosted-pwa-usage} - -For Self-Hosted apps, we aren’t able to automatically inject details of the PWA into the HTML, -requiring use of the configure API with the name and icon they’d like to appear in the install -prompt. - -Add the following `` tags to the `` of your html: - -`` - -`` - -## PWA Code Examples {#pwa-code-examples} - -#### Basic Example (AFrame) {#basic-example-aframe} - -```html - -``` - -#### Basic Example (Non-AFrame) {#basic-example-non-aframe} - -```javascript -XR8.addCameraPipelineModules([ - XR8.GlTextureRenderer.pipelineModule(), - XR8.Threejs.pipelineModule(), - XR8.XrController.pipelineModule(), - XRExtras.AlmostThere.pipelineModule(), - XRExtras.FullWindowCanvas.pipelineModule(), - XRExtras.Loading.pipelineModule(), - XRExtras.RuntimeError.pipelineModule(), - - XRExtras.PwaInstaller.pipelineModule(), // Added here - - // Custom pipeline modules. - myCustomPipelineModule(), -]) - -``` - -#### Customized Look Example (AFrame) {#customized-look-example-aframe} - -```html - -``` - -#### Customized Look Example (Non-AFrame) {#customized-look-example-non-aframe} - -```javascript -XRExtras.PwaInstaller.configure({ - displayConfig: { - name: 'My Custom PWA Name', - iconSrc: '//cdn.8thwall.com/my_custom_icon', - installTitle: ' My Custom Title', - installSubtitle: 'My Custom Subtitle', - installButtonText: 'Custom Install', - iosInstallText: 'Custom iOS Install', - } -}) -``` - -#### Customized Display Time Example (AFrame) {#customized-display-time-example-aframe} - -```html - -``` - -#### Customized Display Time Example (Non-AFrame) {#customized-display-time-example-non-aframe} - -```javascript -XRExtras.PwaInstaller.configure({ - promptConfig: { - minNumVisits: 5, // Users must visit web app 5 times before prompt - displayAfterDismissalMillis: 86400000 // One day - } -}) -``` diff --git a/docs/engine/introduction.md b/docs/engine/introduction.md deleted file mode 100644 index 72e4c6f..0000000 --- a/docs/engine/introduction.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -id: introduction -sidebar_position: 1 ---- - -# Introduction - -:::tip -If this is your first time working with 8th Wall, we strongly recommend starting with or referencing an [example project](https://github.com/8thwall/8thwall/tree/main/examples). -::: - -## Integrating 8th Wall with A-Frame {#aframe} - -8th Wall can be integrated with your A-Frame project in a few easy steps: - -1. Include a slightly modified version of A-Frame (referred to as "8-Frame") which fixes some polish concerns: -``` - -``` -2. Download the [8th Wall Engine Binary](https://8th.io/xrjs) and unzip it into your project folder -3. Add the 8th Wall Engine as a script tag to the `` of your `index.html` -``` - -``` -4. Add the [`xrconfig`](/docs/api/engine/aframe/xrconfig/) component to your `` -5. Depending on the type of experience you want to develop, add one of the following components to your ``: -* **World Tracking & Image Targets**: [`xrweb`](/docs/api/engine/aframe/xrweb/) -* **Face Effects**: [`xrface`](/docs/api/engine/aframe/xrface/) -* **Sky Effects**: [`xrlayers`](/docs/api/engine/aframe/xrlayers/) - -:::note -See documentation on [A-Frame Components](/docs/api/engine/aframe/), [A-Frame Events](/docs/api/engine/aframeevents/) and [A-Frame Event Listeners](/docs/api/engine/aframeeventlisenters/) provided by the 8th Wall Engine. -::: - -## Integrating 8th Wall with three.js {#threejs} - -To integrate the 8th Wall engine into a three.js project, use the [Camera Pipeline Module API](/docs/api/engine/camerapipelinemodule) to add functionality like drawing the camera feed, creating a three.js scene and enabling world tracking. You should also add a custom camera pipeline module which you use to set up the three.js camera and scene content. - -``` -// app.js -const onxrloaded = () => { - XR8.addCameraPipelineModules([ // Add camera pipeline modules. - // Existing pipeline modules. - XR8.GlTextureRenderer.pipelineModule(), // Draws the camera feed. - XR8.Threejs.pipelineModule(), // Creates a ThreeJS AR Scene. - XR8.XrController.pipelineModule(), // Enables SLAM tracking. - window.LandingPage.pipelineModule(), // Detects unsupported browsers and gives hints. - XRExtras.FullWindowCanvas.pipelineModule(), // Modifies the canvas to fill the window. - XRExtras.Loading.pipelineModule(), // Manages the loading screen on startup. - XRExtras.RuntimeError.pipelineModule(), // Shows an error image on runtime error. - // Custom pipeline modules. - initScenePipelineModule(), // Sets up the threejs camera and scene content. - ]) - - // Add a canvas to the document for our xr scene. - document.body.insertAdjacentHTML('beforeend', camerafeedHtml) - const canvas = document.getElementById('camerafeed') - - // Open the camera and start running the camera run loop. - XR8.run({canvas, allowedDevices: XR8.XrConfig.device().ANY}) -} - -window.XR8 ? onxrloaded() : window.addEventListener('xrloaded', onxrloaded) -``` - -:::note -See documentation on the [Camera Pipeline Module API](/docs/api/engine/camerapipelinemodule/) and core Camera Pipeline Modules provided by the 8th Wall Engine, including [GlTextureRenderer](/docs/api/engine/gltexturerenderer/), [Threejs](/docs/api/engine/threejs/), and [XrController](/docs/api/engine/xrcontroller/). -::: diff --git a/docs/engine/overview.md b/docs/engine/overview.md new file mode 100644 index 0000000..eeaba54 --- /dev/null +++ b/docs/engine/overview.md @@ -0,0 +1,144 @@ +--- +id: overview +sidebar_position: 1 +--- + +# Overview + +:::tip +If this is your first time working with 8th Wall, we strongly recommend starting with or referencing an [example project](https://github.com/8thwall/8thwall/tree/main/examples). +::: + +## Integration + +### Loading the Engine + +1. Download the [8th Wall Engine Binary](https://8th.io/xrjs) and unzip it into your project folder +2. Add the 8th Wall Engine as a script tag to the `` of your `index.html`. Add the `data-preload-chunks` attribute to the script tag, and depending on the type of experience you want to develop, set the `data-preload-chunks` to the appropriate value: +* **World Tracking & Image Targets**: `data-preload-chunks="slam"` +* **Face Effects**: `data-preload-chunks="face"` +* **Sky Effects**: no `data-preload-chunks` required +```html + +``` + +:::note +`data-preload-chunks="face, slam"` is also supported for experiences using both world and face effects. +::: + +Alternatively, you can call `await XR8.loadChunk()` **before starting the engine** instead of adding the `data-preload-chunks` attribute to the script tag. For example: +```javascript +await XR8.loadChunk('slam') +``` + +### Integrating 8th Wall with A-Frame {#aframe} + +8th Wall can be integrated with your A-Frame project in a few easy steps: + +1. Include a slightly modified version of A-Frame (referred to as "8-Frame") which fixes some polish concerns in your project. You can find 8-Frame in the `external` folder of A-Frame example projects, such as https://github.com/8thwall/aframe-world-effects-example/tree/main/external/scripts +2. Add the `xrconfig` component to your ``. See [documentation on xrconfig](/docs/api/engine/aframe/xrconfig/) for more details. +3. Depending on the type of experience you want to develop, add one of the following components to your ``: +* **World Tracking & Image Targets**: `xrweb`. See [documentation on xrweb](/docs/api/engine/aframe/xrweb/) for more details. +* **Face Effects**: `xrface`. See [documentation on xrface](/docs/api/engine/aframe/xrface/) for more details. +* **Sky Effects**: `xrlayers`. See [documentation on xrlayers](/docs/api/engine/aframe/xrlayers/) for more details. + +```html + +``` + +:::note +See documentation on [A-Frame Components](/docs/api/engine/aframe/), [A-Frame Events](/docs/api/engine/aframeevents/) and [A-Frame Event Listeners](/docs/api/engine/aframeeventlisenters/) provided by the 8th Wall Engine. +::: + +### Integrating 8th Wall with three.js {#threejs} + +To integrate the 8th Wall engine into a three.js project, use the [Camera Pipeline Module API](/docs/api/engine/camerapipelinemodule) to add functionality like drawing the camera feed, creating a three.js scene and enabling world tracking. You should also add a custom camera pipeline module which you use to set up the three.js camera and scene content. + +```javascript +// app.js +const onxrloaded = () => { + XR8.addCameraPipelineModules([ // Add camera pipeline modules. + // Existing pipeline modules. + XR8.GlTextureRenderer.pipelineModule(), // Draws the camera feed. + XR8.Threejs.pipelineModule(), // Creates a ThreeJS AR Scene. + XR8.XrController.pipelineModule(), // Enables SLAM tracking. + window.LandingPage.pipelineModule(), // Detects unsupported browsers and gives hints. + XRExtras.FullWindowCanvas.pipelineModule(), // Modifies the canvas to fill the window. + XRExtras.Loading.pipelineModule(), // Manages the loading screen on startup. + XRExtras.RuntimeError.pipelineModule(), // Shows an error image on runtime error. + // Custom pipeline modules. + initScenePipelineModule(), // Sets up the threejs camera and scene content. + ]) + + // Add a canvas to the document for our xr scene. + document.body.insertAdjacentHTML('beforeend', camerafeedHtml) + const canvas = document.getElementById('camerafeed') + + // Open the camera and start running the camera run loop. + XR8.run({canvas, allowedDevices: XR8.XrConfig.device().ANY}) +} + +window.XR8 ? onxrloaded() : window.addEventListener('xrloaded', onxrloaded) +``` + +:::note +See documentation on the [Camera Pipeline Module API](/docs/api/engine/camerapipelinemodule/) and core Camera Pipeline Modules provided by the 8th Wall Engine, including [GlTextureRenderer](/docs/api/engine/gltexturerenderer/), [Threejs](/docs/api/engine/threejs/), and [XrController](/docs/api/engine/xrcontroller/). +::: + +## Testing + +### Test on Desktop + +1. If node/npm are not installed, install using https://github.com/nvm-sh/nvm or https://nodejs.org/en/download +2. `cd` to the project root and run `npm install`. + +![](/images/migration/npm-install.png) + +3. Run `npm run serve` to run the development server. Once the local server is running, you will see the URL/IP addresses your project is running at. + +![](/images/migration/npm-run.png) + +4. Open a new browser window and paste in the loopback URL or IP address to test your project in development mode. + +![](/images/migration/dev-preview.png) + +### Test on Mobile + +To test your project on mobile devices, especially for AR experiences that require camera access, you'll need to serve your development server over HTTPS. + +1. If you do not already have `npm` installed, follow the instructions on this [page](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) to set it up. +2. Run `npm install --global http-server` to install the [http-server](https://www.npmjs.com/package/http-server) npm package as a global CLI tool. +3. Install [openssl](https://github.com/openssl/openssl) and generate key.pem and cert.pem files using this command: +``` +openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem +``` + +You will be prompted with a few questions after entering the command. Use `127.0.0.1` as value for Common name if you want to be able to install the certificate in your OS's root certificate store or browser so that it is trusted. + +This generates a cert-key pair and it will be valid for 3650 days (about 10 years). + +Then you can run `http-server` with `-S` for enabling SSL and `-C` for your certificate file: +``` +npx http-server [project-path] -S -C cert.pem +``` + +Example: +``` +npx http-server gettingstarted/aframe/ -S -C cert.pem +``` + +There should be some logs that list a series of local URLs like: +```sh +Available on: + http://127.0.0.1:8080 + http://192.168.20.43:8080 + http://172.29.29.159:8080 +``` + +:::note +The first IP address listed is `127.0.0.1:8080` (which is the loopback device aka "localhost") and your mobile phone won't be able to connect to that IP address directly. Please use one of the other IP addresses. +::: + +Window users need to run the http-server command using a standard Command Prompt window (cmd.exe). The script may generate errors if run from PowerShell. + +Learn more in the [http-server documentation](https://github.com/http-party/http-server#tlsssl). diff --git a/docs/engine/release-notes.md b/docs/engine/release-notes.md index cf471f0..a296d8e 100644 --- a/docs/engine/release-notes.md +++ b/docs/engine/release-notes.md @@ -219,7 +219,7 @@ sidebar_position: 99999 * Added Lightship VPS Coaching Overlay module to guide users through a flow to localize at real-world locations. * Added XR8.Platform API for unlocking new 8th Wall platform features like Lightship VPS and Niantic Lightship Maps. * Niantic Lightship Map module - * Add the lightship-maps module to your project on 8thwall.com to make it easy to create a variety of location-based experiences. + * Add the lightship-maps module to your project to make it easy to create a variety of location-based experiences. * Fixes and Enhancements: * Improved error handling for VPS network requests (20.1.19.684) @@ -602,7 +602,7 @@ Release 10 adds a revamped web developer console with streamlined developer-mode #### Release 9.2 {#release-92} * New Features: - * Public documentation released: https://docs.8thwall.com/web + * Public documentation released #### Release 9.1 {#release-91} diff --git a/docs/getting-started/introduction.md b/docs/getting-started/create-project.md similarity index 70% rename from docs/getting-started/introduction.md rename to docs/getting-started/create-project.md index f4ecd4c..8c0a1f9 100644 --- a/docs/getting-started/introduction.md +++ b/docs/getting-started/create-project.md @@ -3,18 +3,32 @@ id: create-project sidebar_position: 3 --- -# Create a project +# Create or open a project + +:::tip +If this is your first time working with 8th Wall, we strongly recommend downloading and opening an [example project](https://github.com/8thwall/8thwall/tree/main/examples) instead of creating a new project from scratch. +::: + +## Create a project 1. From the hub view, click **New Project** -![StudioHome](/images/studio/getting-started/studio-home.png) +![StudioHome](/images/getting-started/studio-home.png) 3. Enter the Project Title. -![StudioCreate](/images/studio/getting-started/studio-create.png) +![StudioCreate](/images/getting-started/studio-create.png) 4. Click **Create**. +## Open a project + +You can clone a variety of Studio projects from the examples folder in the 8th Wall GitHub repository: https://github.com/8thwall/8thwall/tree/main/examples + +1. From the hub view, click **Open** + +2. Select the root folder of a Studio project + ## Project Actions In the Studio hub view, you can move, delete, and find projects using the Project Actions menu `(...)` button next to each project: diff --git a/docs/getting-started/getting-started.md b/docs/getting-started/getting-started.md index 43aaf43..7e9ec32 100644 --- a/docs/getting-started/getting-started.md +++ b/docs/getting-started/getting-started.md @@ -4,7 +4,7 @@ You can now build projects right from your own machine while still staying connected to everything you already know in 8th Wall. This means you can move faster in your own code editor, save changes and see results right away, and stay in the flow while you experiment and iterate. -![](/images/studio/getting-started/getting-started.gif) +![](/images/getting-started/getting-started.gif) ## 8th Wall Engine @@ -16,4 +16,4 @@ The 8th Wall Engine powers AR experiences that work in the browser across all de The 8th Wall engine is an API that can be integrated into various web 3D frameworks, and is built-in to [8th Wall Studio](/docs/studio). -![](/images/engine/getting-started/getting-started.png) +![](/images/getting-started/getting-started.png) diff --git a/docs/getting-started/installation.md b/docs/getting-started/installation.md index 6f2332f..ad08e56 100644 --- a/docs/getting-started/installation.md +++ b/docs/getting-started/installation.md @@ -6,9 +6,11 @@ sidebar_position: 2 # Installation & Setup -## Studio +:::info +To integrate 8th Wall into projects that are **not developed with Studio**, see [documentation on 8th Wall Engine](/docs/engine). +::: -### Download and Install +## Download and Install To install the 8th Wall Studio desktop app: - Go to [8thwall.org/downloads](https://8thwall.org/downloads) @@ -16,21 +18,17 @@ To install the 8th Wall Studio desktop app: - **Apple Silicon** - **Intel** - **Windows** -- Install the application by opening the `.dmg` or `.exe.` file and dragging the app to your Applications folder. +- Install the application by opening the `.dmg` or `.exe` file and dragging the app to your Applications folder. - Open the 8th Wall app. When you launch the app for the first time, it might prompt you to give it access to some of your file system locations or allow its connections through the firewall. Accept those requests to help the 8th Wall app set up projects locally. When you open the 8th Wall desktop app, you’ll start in the app’s hub view where you can explore and access your projects, and edit local development preferences. You can also access quick links to resources like the project library, docs, and community discord. -![StudioHome](/images/studio/getting-started/studio-home.png) +![StudioHome](/images/getting-started/studio-home.png) -### Code Editor Preferences +## Code Editor Preferences 8th Wall desktop app allows you to work with your preferred local code editor like VSCode or Cursor. You can also change this at any time by clicking the **Settings** button in the left sidebar. -![StudioSettings](/images/studio/getting-started/studio-settings.png) - -## Engine - -The Engine is included in the Studio Desktop App and does not require additional installation or setup. To integrate 8th Wall into projects that are **not developed with Studio**, the Engine Binary can be downloaded from [GitHub](https://github.com/8thwall/engine). +![StudioSettings](/images/getting-started/studio-settings.png) diff --git a/docs/getting-started/making-changes.md b/docs/getting-started/making-changes.md index 291190b..0841787 100644 --- a/docs/getting-started/making-changes.md +++ b/docs/getting-started/making-changes.md @@ -11,13 +11,13 @@ If this is your first time opening Studio, see the documentation on [navigating Add new objects to your space by clicking the **+** button above the scene hierarchy. -![](/images/studio/getting-started/adding-entities.png) +![](/images/getting-started/adding-entities.png) ## Position, Rotate, Scale Use the top toolbar to change the position, rotation, or scale of a selected object, or to undo and redo edits. -![](/images/studio/getting-started/transform.png) +![](/images/getting-started/transform.png) ## Inspector Panel @@ -25,7 +25,7 @@ Inspect and configure an entity and its components. Learn more about entities an By default every entity displays a Transform component in the Inspector. Different types of entities may display different components, for example a Primitive will display a Mesh component with configurable options like geometry shape settings, materials, textures, etc. -![](/images/studio/getting-started/inspector.png) +![](/images/getting-started/inspector.png) ## Code and Assets diff --git a/docs/getting-started/publishing.md b/docs/getting-started/publishing.md index f073e0e..4e9fa85 100644 --- a/docs/getting-started/publishing.md +++ b/docs/getting-started/publishing.md @@ -39,9 +39,7 @@ Available on: ## Self-Hosting your project -The HTML5 bundle can be self hosted or deployed in many different ways. For more comprehensive information on self hosting, check out this [guide](https://github.com/mikeroyal/Self-Hosting-Guide). - -Below are common hosting options grouped by workflow: +The HTML5 bundle can be self hosted or deployed in many different ways. Below are common hosting options grouped by workflow: - **Drag & drop (recommended for beginners)**: upload your `dist/` folder (or a zip) in a web UI. - **Git-based CI/CD**: connect a Git repo for automatic deploys when you push changes. @@ -56,7 +54,7 @@ These hosting solutions are recommended for beginners or if you just want "uploa Netlify Drop lets you drag and drop your dist folder and get a live URL immediately, great for quick demos and sharing. -1. Build your project: `npm run build` +1. [Create a production build](#creating-production-build) of your project 2. Open [Netlify Drop](https://app.netlify.com/drop) 3. Drag your `dist/` folder into the page 4. You’ll get a live URL right away @@ -65,7 +63,7 @@ Netlify Drop lets you drag and drop your dist folder and get a live URL immediat Cloudflare Pages supports a Direct Upload flow that includes drag & drop of a folder or zip. -1. Build your project: `npm run build` +1. [Create a production build](#creating-production-build) of your project 2. Create a Pages project using **Direct Upload** 3. Drag & drop the `dist/` folder (or upload a zip) 4. Your site deploys and you get a URL @@ -74,7 +72,7 @@ Cloudflare Pages supports a Direct Upload flow that includes drag & drop of a fo Amplify Hosting supports manual deployments where you can drag & drop a zipped build output. -1. Build your project: `npm run build` +1. [Create a production build](#creating-production-build) of your project 2. Zip the `dist/` folder 3. In Amplify Hosting, choose **Deploy without a Git provider** 4. Drag & drop the zip and deploy @@ -84,7 +82,7 @@ Amplify Hosting supports manual deployments where you can drag & drop a zipped b Neocities is a straightforward platform that works well for simple static sites (especially personal/demo projects). **Steps** -1. Build your project: `npm run build` +1. [Create a production build](#creating-production-build) of your project 2. Upload the contents of `dist/` via the Neocities editor/uploader 3. Use the provided site URL @@ -115,7 +113,7 @@ Since 8th Wall HTML5 bundles are fully contained builds, they can be self hosted 2. Log in to [Itch.io](https://itch.io) and [create a new project](https://itch.io/game/new). 3. Fill in the project details: - Under **Kind of project**, select **HTML**. - - Under **Uploads**, select **Upload files**. Upload the `.zip` file that you downloaded in Step 1. Check the **This file will be played in the browser** checkbox. + - Under **Uploads**, select **Upload files**. Upload the `.zip` file exported from Studio. Check the **This file will be played in the browser** checkbox. - Under **Embed options**, choose the appropriate sizing for your project. 4. Finish configuring your game and publish it. @@ -126,7 +124,7 @@ Since 8th Wall HTML5 bundles are fully contained builds, they can be self hosted 3. Click **Create New World**. 4. Enter the **Name** and **Description** for your project, then click **Create**. 5. Click **Content Versions**. -6. Under **New Version**, click **Select File**. Upload the `.zip` file that you downloaded in Step 1, then click **Upload**. +6. Under **New Version**, click **Select File**. Upload the `.zip` file exported from Studio, then click **Upload**. 7. Under **iframe Support for Preview**, click **Apply iframe Settings** and enable all permissions that your project requires. - Note that Viverse will put your project downloaded from 8th Wall in it's own iFrame, and the Viverse iFrame will need to grant a permission which your project requires. 8. Finish configuring your game and publish it. @@ -138,7 +136,7 @@ Since 8th Wall HTML5 bundles are fully contained builds, they can be self hosted 3. Enter the project details and click **Save & Next**. 4. On your game dashboard, under **Packages**, click **Add Package**. 5. Under **Edit package**, click **New Release**. -6. Click **Upload Browser Build**. Upload the `.zip` file that you downloaded in Step 1. +6. Click **Upload Browser Build**. Upload the `.zip` file exported from Studio. 7. Configure your game dimensions, or select **Fit to screen?** if you want the game to fit the screen. 8. Finish configuring your game and publish it. @@ -148,12 +146,12 @@ Since 8th Wall HTML5 bundles are fully contained builds, they can be self hosted GamePix does not allow games with external links. Make sure your project does NOT make network calls outside of the bundle. ::: -1. Download the **Full HTML** embed code.\ +1. Download the **Full HTML** embed code. 2. Sign up for a [GamePix Developer Account](https://partners.gamepix.com/join-us?t=developer) and go to the [GamePix Dashboard](https://my.gamepix.com/dashboard). 3. Click **Create New Game**. 4. Enter the game details and click **Create**. 5. Under **Info**, select **HTML5-JS** under **Game Engine**. -6. Under **Build**, click **Browse File**. Upload the `.zip` file you downloaded earlier. +6. Under **Build**, click **Browse File**. Upload the `.zip` file exported from Studio. 7. Finish configuring your game and publish it. ### Newgrounds @@ -161,7 +159,7 @@ GamePix does not allow games with external links. Make sure your project does NO 1. Download the **Full HTML** embed code. Make a `.zip` file of this `index.html` file. 2. Sign up for a [Newgrounds account](https://www.newgrounds.com). 3. Click the arrow in the top right corner and select **Game (swf, HTML5)** -4. Under **Submission File(s)**, click **Upload File**. Upload the `.zip` file you downloaded earlier. +4. Under **Submission File(s)**, click **Upload File**. Upload the `.zip` file exported from Studio. 5. Configure your game dimensions and check **Touchscreen friendly** 6. Finish configuring your game and publish it. @@ -171,7 +169,7 @@ GamePix does not allow games with external links. Make sure your project does NO 2. Log into [Y8](https://www.y8.com/upload). 3. Make sure you have verified your email, then [create a free Y8 Storage Account](https://account.y8.com/storage_account). 4. Under **Game**, choose **Zip** and then **HTML5**. -5. Click **Choose File**. Upload the `.zip` file you downloaded earlier. If you have not created a Storage Account it will fail. If that happens, click **Create Storage Account** to create one, then refresh the **Upload Your Content to Y8** page and try again. +5. Click **Choose File**. Upload the `.zip` file exported from Studio. If you have not created a Storage Account it will fail. If that happens, click **Create Storage Account** to create one, then refresh the **Upload Your Content to Y8** page and try again. 6. Finish configuring your game and publish it. ### Poki diff --git a/docs/getting-started/simulator.md b/docs/getting-started/simulator.md index 9871fbf..06a4398 100644 --- a/docs/getting-started/simulator.md +++ b/docs/getting-started/simulator.md @@ -6,56 +6,22 @@ sidebar_position: 5 # Simulator -## Overview - Launch the simulator to play your scene. You can make edits to the entities in your space and -see those immediately reflected in the simulator. The simulator also lets you test and view project changes across different device viewport sizes and -simulated real-world environments without needing to leave Studio. +see those immediately reflected in the simulator. The simulator also lets you test and view project changes across different device viewport sizes without needing to leave Studio. ![Simulator1](/images/studio/studio-navigate-simulator1.png) ![Simulator2](/images/studio/studio-navigate-simulator2.png) -## AR Simulator - -If you're developing AR, you can access a collection of pre-recorded camera sequences. -The AR Simulator has a number of playback controls and convenience features -like: - -* Play bar, scrubber and in/out handles: Allow you to set up loop points, giving you granular - control over the selected sequence. -* Recenter button (lower right): Recenters the camera feed to its origin. NOTE: Recenter is also - called each time the sequence loops and each time a new sequence is selected. - -![ARSimulator](/images/studio/studio-ar-simulator.png) - -Use the bottom left Sequence Selection menu to change the AR sequence. You can use the carousel -to switch between options in the sequence category. Pausing the sequence only pauses the video, -allowing you to test changes at the same frame. Drag the playback handles to set in/out loop points. - -![SimulatorSequenceSelector](/images/studio/studio-sequence-selector.png) - -The camera button the bottom right corner opens Live View, which follows the same logic as your project's camera configuration. Live View allows you to simulate your project using the feed from your desktop instead of a pre-recorded AR sequence. For example, if -your project uses Face Effects and you have the Studio project open on desktop, it will open your -desktop camera. - -:::note -Live View in the Simulator may prompt you to enable camera, microphone, or location -permissions depending on what is enabled in your project. Click Allow for permission prompts in order to -see your experience in Live View. -::: - Your project might look different on different devices due to differences in the mobile web viewport size. Or you may want to see your project in both landscape and portrait mode. At the top left of the Simulator, you can choose from a set of common device viewport sizes, change the -orientation, or use responsive mode to adjust to a custom size. You can also double click the edges -of the Simulator panel to automatically fit the Simulator to the width of the selected device -viewport. **Note: Dimensions are presented in CSS logical pixels (AKA viewport dimensions), not +orientation, or use responsive mode to adjust to a custom size. + +:::note +Dimensions are presented in CSS logical pixels (AKA viewport dimensions), not physical device pixels. When selecting a device from the selector, only the viewport dimensions -will be updated, not the user agent of the client.** +will be updated, not the user agent of the client. +::: ![SimulatorDeviceSelector](/images/studio/studio-device-selector.png) - -You can also simulate specific GPS coordinates if you're developing a location or map-based experience. - -![SimulatorLocation](/images/studio/studio-simulator-location.png) diff --git a/docs/getting-started/testing.md b/docs/getting-started/testing.md index 006508d..5035f18 100644 --- a/docs/getting-started/testing.md +++ b/docs/getting-started/testing.md @@ -7,18 +7,10 @@ sidebar_position: 6 ## Test on Desktop -1. If node/npm are not installed, install using https://github.com/nvm-sh/nvm or https://nodejs.org/en/download -2. `cd` to the project root and run `npm install`. +1. Open the Simulator/Preview +2. Click the browser pop-out button -![](/images/migration/npm-install.png) - -3. Run `npm run serve` to run the development server. Once the local server is running, you will see the URL/IP addresses your project is running at. - -![](/images/migration/npm-run.png) - -4. Open a new browser window and paste in the loopback URL or IP address to test your project in development mode. - -![](/images/migration/dev-preview.png) +![DesktopPopout](/images/getting-started/desktop-pop-out.png) ## Test on Mobile diff --git a/docs/migration/faq.md b/docs/migration/faq.md index 2bcc4ad..2349c74 100644 --- a/docs/migration/faq.md +++ b/docs/migration/faq.md @@ -88,7 +88,7 @@ No. Existing self-hosted projects will continue to work without changes until Fe If your project is not cloud-dependent (does not use VPS, Maps, Hand Tracking, or Modules) and you want to migrate to the open-source engine to keep your project live beyond February 28, 2027, follow the [self-hosted project migration guide](/docs/migration/self-hosted). ### If I use the 8th Wall Desktop App, do I still need to export my project? -You still must export your project before February 28, 2026 in order to continue developing or self-hosting it. You can export your project directly from the Desktop App or from 8thwall.com. +You still must export your project before February 28, 2026 in order to continue developing or self-hosting it. ### Should I test my exported project before February 28, 2026? Yes. We strongly recommend exporting and running your project locally as soon as possible to validate your workflow and identify any dependencies on cloud-based services. @@ -271,7 +271,7 @@ All paid accounts will automatically end by February 28, 2026. If you prepaid for time beyond that date, you will receive a prorated refund. You’ll retain dashboard and export access until that date. ### What about enterprise or custom agreements? -Enterprise and custom customers will be contacted directly to coordinate transitions. For additional questions, contact billing@8thwall.com. +Enterprise and custom customers will be contacted directly to coordinate transitions. For additional questions, contact support@nianticspatial.com. ### Will I still be able to access my billing or account history? Yes. Billing receipts and account details will remain accessible through February 28, 2026. diff --git a/docs/open-source.md b/docs/open-source.md index 1139dc4..ece2d75 100644 --- a/docs/open-source.md +++ b/docs/open-source.md @@ -7,7 +7,7 @@ sidebar_position: 7 ## Engine Distribution -The 8th Wall engine is now available in two forms: +The 8th Wall engine is available in two forms: ### Distributed Engine Binary (with SLAM) @@ -35,8 +35,36 @@ SLAM is **not** included in the open source release and remains available only t With the framework now open, developers can inspect, extend, and maintain the engine as browser APIs evolve and web standards change. +## License Compliance -## Open Source Use +The XR Engine Binary is provided as closed source and governed by the XR Engine License Agreement. -8th Wall's websites and SDKs may incorporate open source packages. Please see - for details. +To be in compliance, ensure you are using the latest version of the xr bundle that contains the copyright notice at the top of the `external/xr/xr.js` file ("Copyright © 2026 Niantic Spatial, Inc."). + +As long as these unmodified files are included in your project as-is and are visible with browser devtools, you are in compliance by including both a copyright notice and the license text. + +You can update by downloading the latest `xr-standalone.zip` from https://8th.io/xrjs and replacing your `external/xr` folder with the new contents. + +If updating to the latest version of the xr bundle isn’t an option, make sure to include a copyright notice elsewhere in your deployed project, e.g. in your `index.html`: + +```html + +``` + +### Compiled or packaged apps + +For web projects, files like `index.html` are accessible to end users via view source or a public repository, so any of the options above satisfy the accessibility requirement. + +For compiled or packaged apps — such as a native mobile app or a bundled desktop experience — end users have no way to access project files. In this case, you must surface the copyright notice and a link to the LICENSE (https://github.com/8thwall/engine/blob/main/LICENSE) somewhere visible within the experience itself, such as an about screen, credits screen, or legal notices page. + +## FAQ + +### Do I need to do anything beyond keeping the LICENSE file? + +Yes, a copyright notice is required in addition to the LICENSE file. If you update to the latest version of the LICENSE file (Option A), you are in compliance. Otherwise, you need to add the copyright notice text to your project separately (Option B). + +### Is there a version without these restrictions? + +Yes. The MIT-licensed engine framework at `packages/engine` has no commercial restrictions. However, it does not include SLAM (world tracking) — it covers Face Effects, Image Targets, and Sky Effects only. If your use case requires world tracking, you need the binary. diff --git a/docs/studio/changelog.md b/docs/studio/changelog.md index 924d4d3..7b6f25c 100644 --- a/docs/studio/changelog.md +++ b/docs/studio/changelog.md @@ -41,10 +41,10 @@ October 10, 2025 ### New Features Desktop App -- Added support for Windows. Download [here](https://www.8thwall.com/download). +- Added support for Windows. Download [here](https://www.8thwall.org/downloads). Native App Export -- Added iFrame embed options with a copyable code snippet in the Publish flow. Learn more [here](https://www.8thwall.com/blog/post/196857049250/embedding-made-easy-iframe-support-in-8th-walls-publish-flow). +- Added iFrame embed options with a copyable code snippet in the Publish flow. ### Fixes and Enhancements @@ -83,7 +83,7 @@ September 17, 2025 ### New Features Desktop App -- [The 8th Wall Desktop App is here](http://8th.io/desktopappblog). Now in Public Beta for macOS, with Windows coming soon, the Desktop App brings the speed of local development together with the collaboration of the cloud. [Learn more](https://www.8thwall.com/docs/studio/app/) and [download now](https://www.8thwall.com/download). +- [The 8th Wall Desktop App is here](http://8th.io/desktopappblog). Now in Public Beta for macOS, with Windows coming soon, the Desktop App brings the speed of local development together with the collaboration of the cloud. ![](/images/studio/app/hub.jpg) diff --git a/docs/studio/studio.mdx b/docs/studio/studio.mdx index b54a848..7a20436 100644 --- a/docs/studio/studio.mdx +++ b/docs/studio/studio.mdx @@ -1,5 +1,5 @@ --- -sidebar_label: Introduction +sidebar_label: Studio Introduction sidebar_position: 1 description: 8th Wall Studio is designed to empower creators to build the next generation of immersive XR experiences. --- diff --git a/docs/troubleshooting/browser-requirements.md b/docs/troubleshooting/browser-requirements.md new file mode 100644 index 0000000..f9dde4f --- /dev/null +++ b/docs/troubleshooting/browser-requirements.md @@ -0,0 +1,35 @@ +--- +id: browser-requirements +sidebar_position: 1 +--- + +# Browser Requirements + +:::info +AR experiences must be viewed via **https**. This is required by browsers for camera access. +::: + +Mobile browsers require the following functionality to support 8th Wall Web experiences: + +* WebGL (`canvas.getContext('webgl') || canvas.getContext('webgl2')`) +* getUserMedia (`navigator.mediaDevices.getUserMedia`) +* deviceorientation (`window.DeviceOrientationEvent` - *only needed if SLAM is enabled*) +* WebAssembly SIMD (https://caniuse.com/wasm-simd) + +## iOS + +* **Safari** (iOS 16.4+) +* **Apps** that use SFSafariViewController web views (iOS 13+) + * Apple added `getUserMedia()` support to SFSafariViewController in iOS 13. 8th Wall works within iOS 13 apps that use SFSafariViewController web views. + * Examples: Twitter, Slack, Discord, Gmail, Hangouts, and more. +* **Apps/Browsers** that use WKWebView web views (iOS 14.3+) + +## Android + +* **Browsers** known to natively support the features required for WebAR: + * Chrome + * Firefox + * Samsung Internet + * Microsoft Edge +* **Apps** using Web Views known to support the features required for WebAR: + * Twitter, WhatsApp, Slack, Gmail, Hangouts, Reddit, LinkedIn, and more. diff --git a/docs/troubleshooting/invalid-timestamps-detected.md b/docs/troubleshooting/invalid-timestamps-detected.md index 03b2bb5..b7de3c4 100644 --- a/docs/troubleshooting/invalid-timestamps-detected.md +++ b/docs/troubleshooting/invalid-timestamps-detected.md @@ -1,6 +1,6 @@ --- id: invalid-timestamps-detected -sidebar_position: 4 +sidebar_position: 5 --- # Invalid Timestamps Detected diff --git a/docs/troubleshooting/ios-black-textures.md b/docs/troubleshooting/ios-black-textures.md index 2c20a64..d798a8b 100644 --- a/docs/troubleshooting/ios-black-textures.md +++ b/docs/troubleshooting/ios-black-textures.md @@ -1,6 +1,6 @@ --- id: ios-black-textures -sidebar_position: 1 +sidebar_position: 2 --- # Black textures on iOS devices diff --git a/docs/troubleshooting/loading-infinite-spinner.md b/docs/troubleshooting/loading-infinite-spinner.md index 522fe82..eeb1a84 100644 --- a/docs/troubleshooting/loading-infinite-spinner.md +++ b/docs/troubleshooting/loading-infinite-spinner.md @@ -1,6 +1,6 @@ --- id: loading-infinite-spinner -sidebar_position: 2 +sidebar_position: 3 --- # Loading Screen Infinite Spinner diff --git a/docs/troubleshooting/tracking-and-camera-issues.md b/docs/troubleshooting/tracking-and-camera-issues.md index 1bbaa36..64a8681 100644 --- a/docs/troubleshooting/tracking-and-camera-issues.md +++ b/docs/troubleshooting/tracking-and-camera-issues.md @@ -1,6 +1,6 @@ --- id: tracking-and-camera-issues -sidebar_position: 3 +sidebar_position: 4 --- # Tracking And Camera Issues diff --git a/docs/troubleshooting/world-tracking-issues.md b/docs/troubleshooting/world-tracking-issues.md index 1651de0..6c74492 100644 --- a/docs/troubleshooting/world-tracking-issues.md +++ b/docs/troubleshooting/world-tracking-issues.md @@ -1,6 +1,7 @@ --- id: world-tracking-issues description: I'm experiencing issues with World Tracking. +sidebar_position: 6 --- # World Tracking Issues diff --git a/docusaurus.config.js b/docusaurus.config.js index b83cfad..1a20885 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -3,6 +3,7 @@ const config = { title: '8th Wall', markdown: { format: 'detect', + mermaid: true, }, tagline: 'Open Source AR & 3D', favicon: 'favicon.svg', @@ -40,6 +41,7 @@ const config = { }, ], ], + themes: ['@docusaurus/theme-mermaid'], themeConfig: { colorMode: { defaultMode: 'dark', diff --git a/gen/tables/Camera.md b/gen/tables/Camera.md index f0fc148..693f8f5 100644 --- a/gen/tables/Camera.md +++ b/gen/tables/Camera.md @@ -15,7 +15,7 @@ Property | Type | Default | Description | leftHandedAxes | `boolean` | `false` | If true, use left-handed coordinates: X-right, Y-up, and Z-forward. Otherwise, X-left, Y-up, and Z-forward. | | disableWorldTracking | `boolean` | `false` | If true, turn off SLAM tracking for efficiency. Must be set to false to enable VPS. | | enableLighting | `boolean` | `false` | If true, return an estimate of lighting information | -| scale | `string` | `'responsive'` | Allowed values: `'responsive'`, `'absolute'`. `'responsive'` will return values so that the camera on frame 1 is at the origin defined via [XR8.XrController.updateCameraProjectionMatrix()](https://www.8thwall.com/docs/docs/api/engine/xrcontroller/updatecameraprojectionmatrix/). `'absolute'` will return the camera, image targets, etc in meters. When using `'absolute'`, the x-position, z-position, and rotation of the starting pose will respect the parameters set in [XR8.XrController.updateCameraProjectionMatrix()](https://www.8thwall.com/docs/docs/api/engine/xrcontroller/updatecameraprojectionmatrix/) once scale has been estimated. The y-position will depend on the camera's physical height from the ground plane. Must be set to `'responsive'` to enable VPS. | +| scale | `string` | `'responsive'` | Allowed values: `'responsive'`, `'absolute'`. `'responsive'` will return values so that the camera on frame 1 is at the origin defined via [XR8.XrController.updateCameraProjectionMatrix()](/docs/api/engine/xrcontroller/updatecameraprojectionmatrix/). `'absolute'` will return the camera, image targets, etc in meters. When using `'absolute'`, the x-position, z-position, and rotation of the starting pose will respect the parameters set in [XR8.XrController.updateCameraProjectionMatrix()](/docs/api/engine/xrcontroller/updatecameraprojectionmatrix/) once scale has been estimated. The y-position will depend on the camera's physical height from the ground plane. Must be set to `'responsive'` to enable VPS. | | enableWorldPoints | `boolean` | `false` | If true, return the map points used for tracking | | enableVps | `boolean` | `false` | If true, look for Project Locations and a mesh. The mesh that is returned has no relation to Project Locations and will be returned even if no Project Locations are configured. Must enable responsive scale and world tracking to enabled VPS. Only relevant when xrCameraType is set to `'world'` | | mirroredDisplay | `boolean` | `false` | If true, flip the rendering left-right | diff --git a/legacy-policies/copyright-dispute-policy.md b/legacy-policies/copyright-dispute-policy.md index 87b0e37..e5d15ae 100644 --- a/legacy-policies/copyright-dispute-policy.md +++ b/legacy-policies/copyright-dispute-policy.md @@ -11,11 +11,9 @@ that we believe in good faith to be copyrighted material that has been illegally and distributed by any of our advertisers, affiliates, content providers, members or users and (2) remove and discontinue service to repeat offenders. -Remember that your use of 8th Wall’s Hosting Services is at all times subject to the -Terms and Conditions [https://www.8thwall.com/terms](https://www.8thwall.com/terms), +Remember that your use of 8th Wall’s Hosting Services is at all times subject to the [Terms and Conditions](https://www.8thwall.org/legacy-policies/terms), which incorporates this Copyright Dispute Policy. Any terms we use in this Policy -without defining them have the definitions given to them in the Terms and Conditions -[https://www.8thwall.com/terms](https://www.8thwall.com/terms). +without defining them have the definitions given to them in the [Terms and Conditions](https://www.8thwall.org/legacy-policies/terms). ## 1. Procedure for Reporting Copyright Infringements. @@ -92,4 +90,4 @@ Copyright Compliance
318 Cambridge Avenue
Palo Alto, California 94306
Phone: 650-263-1144
-Email: [copyright@8thwall.com](mailto:copyright@8thwall.com) \ No newline at end of file +Email: [copyright@8thwall.com](mailto:copyright@8thwall.com) diff --git a/legacy-policies/dpa.md b/legacy-policies/dpa.md index 4bee487..b10e98c 100644 --- a/legacy-policies/dpa.md +++ b/legacy-policies/dpa.md @@ -225,7 +225,7 @@ The competent supervisory authority will be the Belgian Data Protection Authorit **D. Technical And Organisational Measures Including Technical And Organisational Measures To Ensure The Security Of The Data** -The technical and organizational security measures implemented by the data importer are described at https://www.8thwall.com/toms. +The technical and organizational security measures implemented by the data importer are described at https://www.8thwall.org/legacy-policies/toms. **E. List of Subprocessors (Annex III)** @@ -348,4 +348,4 @@ Table 4: Ending this Addendum when the Approved Addendum Changes Part 2: Mandatory Clauses of the Approved Addendum, being the template Addendum B.1.0 issued by the ICO and laid before Parliament in accordance with s119A of the Data Protection Act 2018 on 2 February 2022, as it is revised under Section 19 of those Mandatory Clauses. - \ No newline at end of file + diff --git a/legacy-policies/guidelines.md b/legacy-policies/guidelines.md index 1b22077..e7dc327 100644 --- a/legacy-policies/guidelines.md +++ b/legacy-policies/guidelines.md @@ -5,8 +5,7 @@ sidebar_position: 3 ## About these guidelines -8th Wall enables developers with a powerful set of tools to create immersive experiences that inspire movement, exploration, and encourage a deeper connection to the real-world including the people, places and things around us. In order to ensure that these experiences are safe and fun for users, Developers and Visitors (as those terms are defined in the [8th Wall Terms and -Conditions](https://www.8thwall.com/terms), referred to in these guidelines as the **“Terms”**) are required to abide by these content guidelines. To support this, we may actively review the content you create with our platform, flagged by another user or automated systems, and take action. +8th Wall enables developers with a powerful set of tools to create immersive experiences that inspire movement, exploration, and encourage a deeper connection to the real-world including the people, places and things around us. In order to ensure that these experiences are safe and fun for users, Developers and Visitors (as those terms are defined in the [Terms and Conditions](https://www.8thwall.org/legacy-policies/terms), referred to in these guidelines as the **“Terms”**) are required to abide by these content guidelines. To support this, we may actively review the content you create with our platform, flagged by another user or automated systems, and take action. Capitalized terms used in these guidelines have the meaning given to them in the Terms. @@ -34,7 +33,7 @@ Prohibited content includes: 10. Content that violates other’s intellectual property rights including copyrights or trademarks. - 11. Any content that promotes violations of our [Terms and Conditions](https://www.8thwall.com/terms), [Privacy Policy](https://www.8thwall.com/privacy), or these guidelines themselves. + 11. Any content that promotes violations of our [Terms and Conditions](https://www.8thwall.org/legacy-policies/terms), [Privacy Policy](https://www.8thwall.org/legacy-policies/privacy), or these guidelines themselves. ## Never publish sensitive content on 8th Wall @@ -68,4 +67,4 @@ Put privacy at the heart of your web app development. Respect the privacy of you ## How we enforce the Terms of Service and these guidelines. -We will review reported apps or projects and will determine whether or not they violate the Terms of Service and/or these policies. Developer accounts may be penalized for violations of the Terms of Service and/or these policies. Users who violate our Terms of Service and/or these policies may also be penalized for violations. Depending on the violation, we may issue a warning, suspend your account, or permanently terminate your account without warning. \ No newline at end of file +We will review reported apps or projects and will determine whether or not they violate the Terms of Service and/or these policies. Developer accounts may be penalized for violations of the Terms of Service and/or these policies. Users who violate our Terms of Service and/or these policies may also be penalized for violations. Depending on the violation, we may issue a warning, suspend your account, or permanently terminate your account without warning. diff --git a/legacy-policies/privacy.md b/legacy-policies/privacy.md index c929a19..76a55b0 100644 --- a/legacy-policies/privacy.md +++ b/legacy-policies/privacy.md @@ -8,7 +8,7 @@ Effective Date: November 14, 2023 We at 8th Wall know you care about how your personal information is used and shared, and we take your privacy seriously. Please read the following to learn more about our Privacy Policy ("Privacy Policy"). By using or accessing our Services ("Services") in any manner, you acknowledge that you accept the practices and policies outlined in this Privacy Policy, and you hereby consent that we will collect, use, and share your information in the following ways. -Remember that your use of 8th Wall’s Services is at all times subject to the [Terms and Conditions](https://www.8thwall.com/terms) ("Terms and Conditions"), which references and incorporates this Privacy Policy. Any terms we use in this Privacy Policy without defining them have the definitions given to them in the Terms and Conditions. +Remember that your use of 8th Wall’s Services is at all times subject to the [Terms and Conditions](https://www.8thwall.org/legacy-policies/terms) ("Terms and Conditions"), which references and incorporates this Privacy Policy. Any terms we use in this Privacy Policy without defining them have the definitions given to them in the Terms and Conditions. ## What does this Privacy Policy Cover? @@ -41,7 +41,7 @@ You can use our Services in the following ways to manage your Privacy: 3. Accessing, viewing, cloning and interacting with AR and VR code and content created by 8th Wall using our Services. 4. Accessing and viewing our websites and receiving and responding to emails and other marketing and communications such as our newsletters. -If you have any questions about this Privacy Policy, you can contact us at support@8thwall.com. +If you have any questions about this Privacy Policy, you can contact us at support@nianticspatial.com. ## Privacy Policy Key Terms @@ -103,7 +103,7 @@ To the extent the above data includes Personal Information, we may aggregate or If you click on a link to external sites or services from our First-Party Content, a third-party may also transmit cookies to you. This Privacy Policy does not cover the use of cookies by any third parties, and we aren’t responsible for their privacy policies and practices. -If you’ve given us your email address, we may send you 8th Wall marketing and promotional emails. We may receive a confirmation when you open an email from us. This confirmation helps improve our communications with you and makes them more interesting. If you do not want to receive communications from us, please indicate your preference by contacting support@8thwall.com. +If you’ve given us your email address, we may send you 8th Wall marketing and promotional emails. We may receive a confirmation when you open an email from us. This confirmation helps improve our communications with you and makes them more interesting. If you do not want to receive communications from us, please indicate your preference by contacting support@nianticspatial.com. ### Privacy for Developers @@ -112,7 +112,7 @@ As a Developer, by registering for an 8th Wall account and creating a Niantic Pr Certain information may be required to register with us or to take advantage of our Services. If you use 8th Wall Payments, we share some of this information with our payment processing provider, Stripe, in order for them to carry out onboarding and identity verification. Where information is shared with Stripe for these purposes, it will be processed in accordance with Stripe’s Privacy Policy, which can be found at https://stripe.com/privacy. -We may communicate with you if you’ve provided us the means to do so. For example, if you’ve given us your email address, we may send you 8th Wall marketing and promotional emails, or email you about your account and use of our Services. We may receive a confirmation when you open an email from us. This confirmation helps improve our communications with you and makes them more interesting. If you do not want to receive communications from us, please indicate your preference by contacting support@8thwall.com. +We may communicate with you if you’ve provided us the means to do so. For example, if you’ve given us your email address, we may send you 8th Wall marketing and promotional emails, or email you about your account and use of our Services. We may receive a confirmation when you open an email from us. This confirmation helps improve our communications with you and makes them more interesting. If you do not want to receive communications from us, please indicate your preference by contacting support@nianticspatial.com. When you use our Services, we may automatically collect or receive certain information about your device and usage of our Services (collectively "Service Usage Data"). In some (but not all) countries, including countries in the European Economic Area ("EEA"), this information is considered Personal Information under applicable data protection laws. We use cookies and other tracking technologies to collect some of this information. For further information, please review the "Our Cookie Policy" section below. @@ -186,14 +186,14 @@ For Developers using our Services, you may access, and, in some cases, edit or d If you have saved any information to your Niantic Profile, you can access and delete this information by visiting the Connected Services tab at my.nianticlabs.com. You can also access and delete any ‘private scans’ uploaded through the Niantic Wayfarer application at any time through your 8th Wall account. -The information you can view, update, and delete may change as the Services change. If you have any questions about viewing or updating information we have on file about you, please contact us at support@8thwall.com. +The information you can view, update, and delete may change as the Services change. If you have any questions about viewing or updating information we have on file about you, please contact us at support@nianticspatial.com. You can always opt not to disclose information to us, but keep in mind some information may be needed to register with us or to take advantage of some of our Services. For example, some communications are considered transactional and necessary for account management and you cannot opt out of these messages unless you cancel your 8th Wall account. -You may be able to add, update, or delete information as explained above. When you update information, however, we may maintain a copy of the unrevised information in our records. You may request deletion of your account by contacting support@8thwall.com. Some information may remain in our records after you delete your account. We may use any aggregated data derived from or incorporate your Personal Information after you update or delete it, but not in a manner that would identify you personally. +You may be able to add, update, or delete information as explained above. When you update information, however, we may maintain a copy of the unrevised information in our records. You may request deletion of your account by contacting support@nianticspatial.com. Some information may remain in our records after you delete your account. We may use any aggregated data derived from or incorporate your Personal Information after you update or delete it, but not in a manner that would identify you personally. For Developers and Visitors, certain State Laws require us to indicate whether we honor "Do Not Track" settings in your browser. 8th Wall adheres to the standards set out in this Privacy Policy and does not monitor or follow any Do Not Track browser requests. -We do not knowingly collect, solicit, or use Personal Information in any manner that would allow us to identify, contact, or profile anyone under the age of 13. If you are under 13, please do not attempt to register for our Services or send any Personal Information about yourself to us. If we learn that we have collected Personal Information from a child under age 13, we will delete that information as quickly as possible. If you believe that a child under 13 may have provided us with this information, please contact us at support@8thwall.com. +We do not knowingly collect, solicit, or use Personal Information in any manner that would allow us to identify, contact, or profile anyone under the age of 13. If you are under 13, please do not attempt to register for our Services or send any Personal Information about yourself to us. If we learn that we have collected Personal Information from a child under age 13, we will delete that information as quickly as possible. If you believe that a child under 13 may have provided us with this information, please contact us at support@nianticspatial.com. Parts of the Services may link to third-party services, which are not owned or controlled by 8th Wall. When you interact with these third parties and choose to use their service, you may be providing your information to them. Your use of these services is subject to the privacy policies of those providers. @@ -202,7 +202,7 @@ Parts of the Services may link to third-party services, which are not owned or c As a Developer, your account is protected by a password for your privacy and security. You must prevent unauthorized access to your account and Personal Information by selecting and protecting your password and appropriately and limiting access to your computer or device and browser by signing off after you have finished accessing your account. We strive to protect the privacy of your account and other Personal Information we hold in our records but cannot guarantee complete security. Unauthorized entry or use, hardware or software failure, and other factors, may compromise the security of user information at any time. -You can read about 8th Wall’s security practices[here](https://www.8thwall.com/toms). +You can read about 8th Wall’s security practices[here](https://www.8thwall.org/legacy-policies/toms). ### Retention of Data @@ -230,7 +230,7 @@ If you are a Visitor, whenever you access, visit and/or interact with our First- We need to collect and use certain Personal Data to provide certain First Party Content to you. For example, to enable experiences which enable you to view and interact with the same virtual objects at the same time in a shared physical space with other Visitors, as well as interact with and place virtual objects at real world locations. Some First Party Content experiences also require your input or feedback in order to work. -Where required by law, we will collect Personal Information only where we have your consent to do so. If you have questions or need further information concerning the legal basis on which we collect and use your Personal Information, please contact us at support@8thwall.com. +Where required by law, we will collect Personal Information only where we have your consent to do so. If you have questions or need further information concerning the legal basis on which we collect and use your Personal Information, please contact us at support@nianticspatial.com. ### Your Rights in Relation to Your Personal Information under GDPR @@ -245,14 +245,14 @@ Subject to the applicable provision of the GDPR, you have the following rights w 7. To object to the processing of your Personal Information, and we will cease processing it if (a) we are relying on a legitimate interest to process your Personal Information, unless we demonstrate compelling legitimate grounds for the processing or (b) we are processing your Personal Information for direct marketing. 8. To lodge a complaint with your national data protection authority if you have a concern about our privacy practices, including the way we handle your Personal Information. -If you would like to submit a request to us to exercise your rights, please contact us at support@8thwall.com. Please note that you must verify your identity before we will process your request. You may be required to provide email confirmation or other information in order for us to verify your identity. +If you would like to submit a request to us to exercise your rights, please contact us at support@nianticspatial.com. Please note that you must verify your identity before we will process your request. You may be required to provide email confirmation or other information in order for us to verify your identity. ### International Transfers -8th Wall operates in the United States. Our servers and offices are located in the United States, so your information may be transferred to, stored, or processed in the United States. While the data protection, privacy, and other laws of the United States might not be as comprehensive as those in your country, we take many steps to protect your privacy, including offering our Developers a Data Processing Agreement available [here](https://www.8thwall.com/dpa). +8th Wall operates in the United States. Our servers and offices are located in the United States, so your information may be transferred to, stored, or processed in the United States. While the data protection, privacy, and other laws of the United States might not be as comprehensive as those in your country, we take many steps to protect your privacy, including offering our Developers a Data Processing Agreement available [here](https://www.8thwall.org/legacy-policies/dpa). -If you have any concerns about your data protection as it relates to the country you are doing business, please contact us at support@8thwall.com. +If you have any concerns about your data protection as it relates to the country you are doing business, please contact us at support@nianticspatial.com. ### California Privacy Rights @@ -271,7 +271,7 @@ We do not sell or share your Personal Information as those terms are defined und 3. to request the correction of any inaccurate Personal Information that we maintain about you. 4. to exercise the privacy rights conferred to you under the CCPA without receiving discriminatory treatment. -If you would like to submit a request to us to exercise your rights, please contact us at support@8thwall.com. Please note that you must verify your identity before we will process your request. You may be required to provide email confirmation or other information in order for us to verify your identity. +If you would like to submit a request to us to exercise your rights, please contact us at support@nianticspatial.com. Please note that you must verify your identity before we will process your request. You may be required to provide email confirmation or other information in order for us to verify your identity. Note that we do not collect or process sensitive Personal Information for the purpose of inferring characteristics about you. We also do not disclose sensitive Personal Information for purposes other than those specified in Section 7027(m) of the California Privacy Rights Act regulations promulgated by the California Privacy Protection Agency. Therefore, we do not offer you the option to limit the use of your sensitive Personal Information. Under California law, consumers have the right to opt out of the sale or sharing of their personal information. Because we do not sell or share data for this purpose, we do not offer this opt out. @@ -279,4 +279,4 @@ Under California law, consumers have the right to opt out of the sale or sharing ### What if I have questions about this Policy? -If you have any questions or concerns regarding our Privacy Policy, please send us a detailed message to [support@8thwall.com](mailto:support@8thwall.com), and we will try to resolve your concerns. \ No newline at end of file +If you have any questions or concerns regarding our Privacy Policy, please send us a detailed message to [support@nianticspatial.com](mailto:support@nianticspatial.com), and we will try to resolve your concerns. diff --git a/legacy-policies/terms.md b/legacy-policies/terms.md index a066afc..6b42583 100644 --- a/legacy-policies/terms.md +++ b/legacy-policies/terms.md @@ -99,7 +99,7 @@ Each party (the “Receiving Party”) understands that the other party (the “ **d. Aggregated Anonymous Data.** Notwithstanding anything to the contrary, Licensee acknowledges and agrees that 8th Wall may (i) internally use and modify (but not disclose) Licensee Data and Device Data for the purposes of (A) providing the Services and any support or consultation services to Licensee and (B) generating Aggregated Anonymous Data (as defined below), and (ii) freely use and make available Aggregated Anonymous Data for 8th Wall’s business purposes (including without limitation, for purposes of improving, testing, operating, promoting and marketing 8th Wall’s products and services). “Aggregated Anonymous Data” means data submitted to, collected by, or generated by 8th Wall in connection with Licensee’s use of the Services, but only in aggregate, anonymized form which can in no way be linked specifically to Licensee or any individual. -**e. DATA PROCESSING ADDENDUM.** THIS SECTION APPLIES IF AND TO THE EXTENT WE PROCESS ANY CUSTOMER PERSONAL DATA (AS DEFINED IN THE DPA) OF LICENSEE’S CLIENTS OR END USERS THAT IS SUBJECT TO THE GDPR (AS DEFINED IN THE DPA) ON YOUR BEHALF. BY ENTERING INTO THIS AGREEMENT OR USING OUR SERVICES, YOU HEREBY ACCEPT AND AGREE TO ABIDE BY THE TERMS OF THE DATA PROCESSING ADDENDUM AT https://www.8thwall.com/dpa (“DPA”), WHICH ARE HEREBY INCORPORATED BY REFERENCE. For the purposes of the Standard Contractual Clauses (as defined in the DPA), Licensee and its applicable affiliates are each the data exporter, and Licensee’s acceptance of this Agreement shall be treated as its execution of the Standard Contractual Clauses and applicable appendices. +**e. DATA PROCESSING ADDENDUM.** THIS SECTION APPLIES IF AND TO THE EXTENT WE PROCESS ANY CUSTOMER PERSONAL DATA (AS DEFINED IN THE DPA) OF LICENSEE’S CLIENTS OR END USERS THAT IS SUBJECT TO THE GDPR (AS DEFINED IN THE DPA) ON YOUR BEHALF. BY ENTERING INTO THIS AGREEMENT OR USING OUR SERVICES, YOU HEREBY ACCEPT AND AGREE TO ABIDE BY THE TERMS OF THE DATA PROCESSING ADDENDUM AT https://www.8thwall.org/legacy-policies/dpa (“DPA”), WHICH ARE HEREBY INCORPORATED BY REFERENCE. For the purposes of the Standard Contractual Clauses (as defined in the DPA), Licensee and its applicable affiliates are each the data exporter, and Licensee’s acceptance of this Agreement shall be treated as its execution of the Standard Contractual Clauses and applicable appendices. #### 11. Indemnification. @@ -129,11 +129,11 @@ This Agreement is governed by and will be construed under the laws of the State You represent and warrant that you, and any entity that owns, controls, or is otherwise affiliated with you, i) are not located in a country that is subject to a U.S. government embargo or sanctions, or that has been designated by the U.S. government as a “terrorist supporting” country; ii) are not listed on any U.S. government list of prohibited or restricted parties (“Restricted Party List”); and iii) will not use the Services to do business with or provide goods or services, directly or indirectly, to anyone on a Restricted Party List or to any country with which trade is prohibited by any applicable sanctions. This Agreement represents the complete agreement concerning the subject matter hereof between the parties and supersedes all prior agreements and representations between them. This Agreement may be amended only by a writing executed by both parties or as otherwise provided in Section 16. If any provision of this Agreement is held to be unenforceable for any reason, such provision will be reformed only to the extent necessary to make it enforceable. Any notices or other communications provided by 8th Wall under this Agreement, including those regarding modifications to this Agreement, will be given: (i) via email; or (ii) by posting to the Platform. For notices made by e-mail, the date of receipt will be deemed the date on which such notice is given. For notices made by posting to the Platform, the date of such posting will be deemed the date that notice is given. The failure of 8th Wall to act with respect to a breach of this Agreement by Licensee or others does not constitute a waiver and will not limit 8th Wall’s rights with respect to such breach or any subsequent breaches. This Agreement is personal to Licensee and may not be assigned or transferred for any reason whatsoever without 8th Wall’s consent and any action or conduct in violation of the foregoing will be void and without effect. 8th Wall expressly reserves the right to assign this Agreement and to delegate any of its obligations hereunder. -Please contact support@8thwall.com if you have any questions or concerns regarding the Services. +Please contact support@nianticspatial.com if you have any questions or concerns regarding the Services. ## Section B: Supplemental Hosting Services and First Party Content Terms & Conditions -Your use of the Hosting Services and/or First Party Content is at all times subject to Section A of the 8th Wall Terms and Conditions (https://www.8thwall.com/terms), and the 8th Wall Content Guidelines (https://www.8thwall.com/guidelines). Any capitalized terms used herein shall have the same meaning as defined in the ‘Key Terms’ section of the 8th Wall Terms and Conditions. In the event of a conflict between these Supplemental Hosting Services and First Party Content Terms & Conditions (the “Supplemental Terms”) and the 8th Wall Terms and Conditions, these Supplemental Terms will prevail. +Your use of the Hosting Services and/or First Party Content is at all times subject to Section A of the 8th Wall Terms and Conditions (https://www.8thwall.org/legacy-policies/terms), and the 8th Wall Content Guidelines (https://www.8thwall.org/legacy-policies/guidelines). Any capitalized terms used herein shall have the same meaning as defined in the ‘Key Terms’ section of the 8th Wall Terms and Conditions. In the event of a conflict between these Supplemental Hosting Services and First Party Content Terms & Conditions (the “Supplemental Terms”) and the 8th Wall Terms and Conditions, these Supplemental Terms will prevail. VISITORS SHOULD BE AWARE THAT SECTION 11 (ARBITRATION APPLICABLE TO FIRST PARTY CONTENT) CONTAINS A BINDING ARBITRATION AGREEMENT AND CLASS ACTION WAIVER THAT AFFECT YOUR LEGAL RIGHTS. If you are a Visitor in the European Economic Area (“EEA“), or any other country that does not allow such arbitration agreement, Section 11 does not apply to you. @@ -194,7 +194,7 @@ Notwithstanding the foregoing, Developers are permitted to Content to the Hosti #### 4. Licenses. -Anything you post, upload, share, store, generate or otherwise provide through the Hosting Services and/or First Party Content is “Your Content.” In order to display Your Content on the Hosting Services, and to allow other users to enjoy them (where applicable), you grant us certain rights in Your Content. Please note that all of the following licenses are subject to our Privacy Policy (https://www.8thwall.com/privacy) to the extent they relate to Your Content that contains your personally-identifiable information. +Anything you post, upload, share, store, generate or otherwise provide through the Hosting Services and/or First Party Content is “Your Content.” In order to display Your Content on the Hosting Services, and to allow other users to enjoy them (where applicable), you grant us certain rights in Your Content. Please note that all of the following licenses are subject to our Privacy Policy (https://www.8thwall.org/legacy-policies/privacy) to the extent they relate to Your Content that contains your personally-identifiable information. **a.** For all of Your Content, you hereby grant 8th Wall a license to translate, modify (for technical purposes, for example making sure your content is viewable on an iPhone as well as a computer) and reproduce and otherwise act with respect to Your Content, in each case to enable us to operate the Hosting Services and provide First Party Content, as described in more detail below. This is a license only – your ownership in Your Content is not affected. @@ -210,7 +210,7 @@ You agree that 8th Wall may display advertising embedded in, in proximity to, or #### 5. DMCA Takedown. -You may have heard of the Digital Millennium Copyright Act (the “DMCA”), as it relates to online service providers, like 8th Wall, being asked to remove material that allegedly violates someone’s copyright. We respect others’ intellectual property rights, and we reserve the right to delete or disable Content alleged to be infringing, and to terminate the accounts of repeat alleged infringers; to review our complete Copyright Dispute Policy and learn how to report potentially infringing content, click [here](https://www.8thwall.com/copyright-dispute-policy). To learn more about the DMCA, click [here](https://www.copyright.gov/legislation/dmca.pdf). +You may have heard of the Digital Millennium Copyright Act (the “DMCA”), as it relates to online service providers, like 8th Wall, being asked to remove material that allegedly violates someone’s copyright. We respect others’ intellectual property rights, and we reserve the right to delete or disable Content alleged to be infringing, and to terminate the accounts of repeat alleged infringers; to review our complete Copyright Dispute Policy and learn how to report potentially infringing content, click [here](https://www.8thwall.org/legacy-policies/copyright-dispute-policy). To learn more about the DMCA, click [here](https://www.copyright.gov/legislation/dmca.pdf). #### 6. User Risks and Responsibilities. @@ -226,7 +226,7 @@ Some First Party Content may enable you to save data to a new or existing Nianti #### 7. Complaints -If you wish to complain about any Content please contact us via support@8thwall.com +If you wish to complain about any Content please contact us via support@nianticspatial.com #### 8. Interactions with Third Parties. @@ -254,7 +254,7 @@ TO THE EXTENT PERMITTED UNDER APPLICABLE LAW, IN NO EVENT WILL 8TH WALL’S TOTA If you live in the US or another jurisdiction which allows you to agree to arbitration, you and 8th Wall agree that any disputes relating to First Party Content will be settled by binding arbitration, except that each party retains the right: (a) to bring an individual action in small claims court and (b) to seek injunctive or other equitable relief in a court of competent jurisdiction to prevent the actual or threatened infringement, misappropriation, or violation of a party’s copyrights, trademarks, trade secrets, patents, or other intellectual property rights (the action described in this clause (b), an "IP Protection Action"). Notwithstanding this arbitration agreement, 8th Wall reserves the right to bring an action in any court of competent jurisdiction against you to stop and/or seek compensation for the intentional or willful misuse or abuse of its intellectual property and/or Services. -Without limiting the preceding paragraph, you will also have the right to litigate any other dispute if you provide 8th Wall with written notice of your desire to do so by email to support@8thwall.com within thirty (30) days following the date you first access First Party Content (such notice, an "Arbitration Opt-out Notice"). When you submit an Arbitration Opt-out Notice, you will be required to represent that you are opting out within 30 days of first accessing First Party Content. If you don’t provide 8th Wall with an Arbitration Opt-out Notice within the thirty (30) day period, you will be deemed to have knowingly and intentionally waived your right to litigate any dispute except as expressly set forth in clauses (a) and (b) above. Further, unless both you and 8th Wall otherwise agree in writing, the arbitrator may not consolidate more than one person’s claims, and may not otherwise preside over any form of any class or representative proceeding. If this class action waiver is held unenforceable, then the parties’ agreement to arbitrate will be deemed void. Except as provided in the preceding sentence, this “Dispute Resolution” section will survive any termination of these Supplemental Terms. If the terms of this Section are found unenforceable as to any claim for relief, that claim must be severed from the arbitration and brought pursuant to Section 15, “Choice of Law, Arbitration” in Section A of the Terms and Conditions. All other claims will be arbitrated. The arbitrator, and not any court or agency, shall have exclusive authority to (a) determine the scope and enforceability of this arbitration agreement and (b) resolve any dispute related to its interpretation, applicability, enforceability, or formation including any claim that all or any part of it is void or voidable. +Without limiting the preceding paragraph, you will also have the right to litigate any other dispute if you provide 8th Wall with written notice of your desire to do so by email to support@nianticspatial.com within thirty (30) days following the date you first access First Party Content (such notice, an "Arbitration Opt-out Notice"). When you submit an Arbitration Opt-out Notice, you will be required to represent that you are opting out within 30 days of first accessing First Party Content. If you don’t provide 8th Wall with an Arbitration Opt-out Notice within the thirty (30) day period, you will be deemed to have knowingly and intentionally waived your right to litigate any dispute except as expressly set forth in clauses (a) and (b) above. Further, unless both you and 8th Wall otherwise agree in writing, the arbitrator may not consolidate more than one person’s claims, and may not otherwise preside over any form of any class or representative proceeding. If this class action waiver is held unenforceable, then the parties’ agreement to arbitrate will be deemed void. Except as provided in the preceding sentence, this “Dispute Resolution” section will survive any termination of these Supplemental Terms. If the terms of this Section are found unenforceable as to any claim for relief, that claim must be severed from the arbitration and brought pursuant to Section 15, “Choice of Law, Arbitration” in Section A of the Terms and Conditions. All other claims will be arbitrated. The arbitrator, and not any court or agency, shall have exclusive authority to (a) determine the scope and enforceability of this arbitration agreement and (b) resolve any dispute related to its interpretation, applicability, enforceability, or formation including any claim that all or any part of it is void or voidable. The arbitration will be administered by the American Arbitration Association ("AAA") in accordance with the Commercial Arbitration Rules and the Supplementary Procedures for Consumer-Related Disputes (the “AAA Rules“) then in effect, except as modified by this “Dispute Resolution” section. (The AAA Rules are available at https://www.adr.org/Rules or by calling the AAA at 1-800-778-7879.) The Federal Arbitration Act will govern the interpretation and enforcement of this Section. Our responsibility to pay any AAA filing, administrative, and arbitrator fees will be solely as set forth in the AAA Rules. However, if your claim for damages does not exceed $75,000, 8th Wall will pay all such fees unless the arbitrator finds that either the substance of your claim or the relief sought in your Demand for Arbitration was frivolous or was brought for an improper purpose (as measured by the standards set forth in Federal Rules of Civil Procedure 11(b)). @@ -278,4 +278,4 @@ When you purchase access to Third Party Content, you agree that we may obtain au *Terms Specific to Residents of the European Economic Area (EEA)* If you live in the EEA, you have certain rights to withdraw from online purchases. On completion of your purchase of Third Party Content, you hereby consent to the immediate performance of the contract and acknowledge that you will have no right of withdrawal. -If you have any issues with your purchase, please reach out to us at support@8thwall.com +If you have any issues with your purchase, please reach out to us at support@nianticspatial.com diff --git a/package-lock.json b/package-lock.json index e2a12b9..992d53e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "dependencies": { "@docusaurus/core": "^3.4.0", "@docusaurus/preset-classic": "^3.4.0", + "@docusaurus/theme-mermaid": "^3.9.2", "react": "^18.2.0", "react-dom": "^18.2.0" }, @@ -255,6 +256,19 @@ "node": ">= 14.0.0" } }, + "node_modules/@antfu/install-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.1.0.tgz", + "integrity": "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==", + "license": "MIT", + "dependencies": { + "package-manager-detector": "^1.3.0", + "tinyexec": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/@babel/code-frame": { "version": "7.29.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", @@ -1968,6 +1982,51 @@ "node": ">=6.9.0" } }, + "node_modules/@braintree/sanitize-url": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.1.2.tgz", + "integrity": "sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA==", + "license": "MIT" + }, + "node_modules/@chevrotain/cst-dts-gen": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.1.2.tgz", + "integrity": "sha512-XTsjvDVB5nDZBQB8o0o/0ozNelQtn2KrUVteIHSlPd2VAV2utEb6JzyCJaJ8tGxACR4RiBNWy5uYUHX2eji88Q==", + "license": "Apache-2.0", + "dependencies": { + "@chevrotain/gast": "11.1.2", + "@chevrotain/types": "11.1.2", + "lodash-es": "4.17.23" + } + }, + "node_modules/@chevrotain/gast": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.1.2.tgz", + "integrity": "sha512-Z9zfXR5jNZb1Hlsd/p+4XWeUFugrHirq36bKzPWDSIacV+GPSVXdk+ahVWZTwjhNwofAWg/sZg58fyucKSQx5g==", + "license": "Apache-2.0", + "dependencies": { + "@chevrotain/types": "11.1.2", + "lodash-es": "4.17.23" + } + }, + "node_modules/@chevrotain/regexp-to-ast": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.1.2.tgz", + "integrity": "sha512-nMU3Uj8naWer7xpZTYJdxbAs6RIv/dxYzkYU8GSwgUtcAAlzjcPfX1w+RKRcYG8POlzMeayOQ/znfwxEGo5ulw==", + "license": "Apache-2.0" + }, + "node_modules/@chevrotain/types": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.1.2.tgz", + "integrity": "sha512-U+HFai5+zmJCkK86QsaJtoITlboZHBqrVketcO2ROv865xfCMSFpELQoz1GkX5GzME8pTa+3kbKrZHQtI0gdbw==", + "license": "Apache-2.0" + }, + "node_modules/@chevrotain/utils": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.1.2.tgz", + "integrity": "sha512-4mudFAQ6H+MqBTfqLmU7G1ZwRzCLfJEooL/fsF6rCX5eePMbGhoy5n4g+G4vlh2muDcsCTJtL+uKbOzWxs5LHA==", + "license": "Apache-2.0" + }, "node_modules/@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -3908,6 +3967,34 @@ "react-dom": "^18.0.0 || ^19.0.0" } }, + "node_modules/@docusaurus/theme-mermaid": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-mermaid/-/theme-mermaid-3.9.2.tgz", + "integrity": "sha512-5vhShRDq/ntLzdInsQkTdoKWSzw8d1jB17sNPYhA/KvYYFXfuVEGHLM6nrf8MFbV8TruAHDG21Fn3W4lO8GaDw==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/module-type-aliases": "3.9.2", + "@docusaurus/theme-common": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "mermaid": ">=11.6.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "@mermaid-js/layout-elk": "^0.1.9", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@mermaid-js/layout-elk": { + "optional": true + } + } + }, "node_modules/@docusaurus/theme-search-algolia": { "version": "3.9.2", "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.9.2.tgz", @@ -4074,6 +4161,23 @@ "@hapi/hoek": "^9.0.0" } }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "license": "MIT" + }, + "node_modules/@iconify/utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-3.1.0.tgz", + "integrity": "sha512-Zlzem1ZXhI1iHeeERabLNzBHdOa4VhQbqAcOQaMKuTuyZCpwKbC2R4Dd0Zo3g9EAc+Y4fiarO8HIHRAth7+skw==", + "license": "MIT", + "dependencies": { + "@antfu/install-pkg": "^1.1.0", + "@iconify/types": "^2.0.0", + "mlly": "^1.8.0" + } + }, "node_modules/@jest/schemas": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", @@ -4627,6 +4731,15 @@ "react": ">=16" } }, + "node_modules/@mermaid-js/parser": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-1.0.1.tgz", + "integrity": "sha512-opmV19kN1JsK0T6HhhokHpcVkqKpF+x2pPDKKM2ThHtZAB5F4PROopk0amuVYK5qMrIA4erzpNm8gmPNJgMDxQ==", + "license": "MIT", + "dependencies": { + "langium": "^4.0.0" + } + }, "node_modules/@noble/hashes": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", @@ -5226,6 +5339,259 @@ "@types/node": "*" } }, + "node_modules/@types/d3": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", + "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==", + "license": "MIT", + "dependencies": { + "@types/d3-array": "*", + "@types/d3-axis": "*", + "@types/d3-brush": "*", + "@types/d3-chord": "*", + "@types/d3-color": "*", + "@types/d3-contour": "*", + "@types/d3-delaunay": "*", + "@types/d3-dispatch": "*", + "@types/d3-drag": "*", + "@types/d3-dsv": "*", + "@types/d3-ease": "*", + "@types/d3-fetch": "*", + "@types/d3-force": "*", + "@types/d3-format": "*", + "@types/d3-geo": "*", + "@types/d3-hierarchy": "*", + "@types/d3-interpolate": "*", + "@types/d3-path": "*", + "@types/d3-polygon": "*", + "@types/d3-quadtree": "*", + "@types/d3-random": "*", + "@types/d3-scale": "*", + "@types/d3-scale-chromatic": "*", + "@types/d3-selection": "*", + "@types/d3-shape": "*", + "@types/d3-time": "*", + "@types/d3-time-format": "*", + "@types/d3-timer": "*", + "@types/d3-transition": "*", + "@types/d3-zoom": "*" + } + }, + "node_modules/@types/d3-array": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", + "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", + "license": "MIT" + }, + "node_modules/@types/d3-axis": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz", + "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-brush": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz", + "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-chord": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz", + "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==", + "license": "MIT" + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "license": "MIT" + }, + "node_modules/@types/d3-contour": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz", + "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==", + "license": "MIT", + "dependencies": { + "@types/d3-array": "*", + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==", + "license": "MIT" + }, + "node_modules/@types/d3-dispatch": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.7.tgz", + "integrity": "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==", + "license": "MIT" + }, + "node_modules/@types/d3-drag": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", + "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-dsv": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", + "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", + "license": "MIT" + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", + "license": "MIT" + }, + "node_modules/@types/d3-fetch": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", + "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", + "license": "MIT", + "dependencies": { + "@types/d3-dsv": "*" + } + }, + "node_modules/@types/d3-force": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz", + "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", + "license": "MIT" + }, + "node_modules/@types/d3-format": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz", + "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", + "license": "MIT" + }, + "node_modules/@types/d3-geo": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz", + "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-hierarchy": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz", + "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==", + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "license": "MIT", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", + "license": "MIT" + }, + "node_modules/@types/d3-polygon": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz", + "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==", + "license": "MIT" + }, + "node_modules/@types/d3-quadtree": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", + "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", + "license": "MIT" + }, + "node_modules/@types/d3-random": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz", + "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==", + "license": "MIT" + }, + "node_modules/@types/d3-scale": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", + "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", + "license": "MIT", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", + "license": "MIT" + }, + "node_modules/@types/d3-selection": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", + "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", + "license": "MIT" + }, + "node_modules/@types/d3-shape": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz", + "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", + "license": "MIT", + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", + "license": "MIT" + }, + "node_modules/@types/d3-time-format": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz", + "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==", + "license": "MIT" + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", + "license": "MIT" + }, + "node_modules/@types/d3-transition": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", + "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-zoom": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", + "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", + "license": "MIT", + "dependencies": { + "@types/d3-interpolate": "*", + "@types/d3-selection": "*" + } + }, "node_modules/@types/debug": { "version": "4.1.12", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", @@ -5294,6 +5660,12 @@ "@types/send": "*" } }, + "node_modules/@types/geojson": { + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", + "license": "MIT" + }, "node_modules/@types/gtag.js": { "version": "0.0.12", "resolved": "https://registry.npmjs.org/@types/gtag.js/-/gtag.js-0.0.12.tgz", @@ -5530,6 +5902,13 @@ "@types/node": "*" } }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "optional": true + }, "node_modules/@types/unist": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", @@ -5566,6 +5945,16 @@ "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", "license": "ISC" }, + "node_modules/@upsetjs/venn.js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@upsetjs/venn.js/-/venn.js-2.0.0.tgz", + "integrity": "sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw==", + "license": "MIT", + "optionalDependencies": { + "d3-selection": "^3.0.0", + "d3-transition": "^3.0.1" + } + }, "node_modules/@webassemblyjs/ast": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", @@ -6666,6 +7055,32 @@ "url": "https://github.com/sponsors/fb55" } }, + "node_modules/chevrotain": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.1.2.tgz", + "integrity": "sha512-opLQzEVriiH1uUQ4Kctsd49bRoFDXGGSC4GUqj7pGyxM3RehRhvTlZJc1FL/Flew2p5uwxa1tUDWKzI4wNM8pg==", + "license": "Apache-2.0", + "dependencies": { + "@chevrotain/cst-dts-gen": "11.1.2", + "@chevrotain/gast": "11.1.2", + "@chevrotain/regexp-to-ast": "11.1.2", + "@chevrotain/types": "11.1.2", + "@chevrotain/utils": "11.1.2", + "lodash-es": "4.17.23" + } + }, + "node_modules/chevrotain-allstar": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz", + "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==", + "license": "MIT", + "dependencies": { + "lodash-es": "^4.17.21" + }, + "peerDependencies": { + "chevrotain": "^11.0.0" + } + }, "node_modules/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", @@ -6957,6 +7372,12 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "license": "MIT" }, + "node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "license": "MIT" + }, "node_modules/config-chain": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", @@ -7157,6 +7578,15 @@ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "license": "MIT" }, + "node_modules/cose-base": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-1.0.3.tgz", + "integrity": "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==", + "license": "MIT", + "dependencies": { + "layout-base": "^1.0.0" + } + }, "node_modules/cosmiconfig": { "version": "8.3.6", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", @@ -7516,130 +7946,656 @@ "lilconfig": "^3.1.1" }, "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.4.31" + "node": "^14 || ^16 || >=18.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano-preset-advanced": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz", + "integrity": "sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==", + "license": "MIT", + "dependencies": { + "autoprefixer": "^10.4.19", + "browserslist": "^4.23.0", + "cssnano-preset-default": "^6.1.2", + "postcss-discard-unused": "^6.0.5", + "postcss-merge-idents": "^6.0.3", + "postcss-reduce-idents": "^6.0.3", + "postcss-zindex": "^6.0.2" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano-preset-default": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", + "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^4.0.2", + "postcss-calc": "^9.0.1", + "postcss-colormin": "^6.1.0", + "postcss-convert-values": "^6.1.0", + "postcss-discard-comments": "^6.0.2", + "postcss-discard-duplicates": "^6.0.3", + "postcss-discard-empty": "^6.0.3", + "postcss-discard-overridden": "^6.0.2", + "postcss-merge-longhand": "^6.0.5", + "postcss-merge-rules": "^6.1.1", + "postcss-minify-font-values": "^6.1.0", + "postcss-minify-gradients": "^6.0.3", + "postcss-minify-params": "^6.1.0", + "postcss-minify-selectors": "^6.0.4", + "postcss-normalize-charset": "^6.0.2", + "postcss-normalize-display-values": "^6.0.2", + "postcss-normalize-positions": "^6.0.2", + "postcss-normalize-repeat-style": "^6.0.2", + "postcss-normalize-string": "^6.0.2", + "postcss-normalize-timing-functions": "^6.0.2", + "postcss-normalize-unicode": "^6.1.0", + "postcss-normalize-url": "^6.0.2", + "postcss-normalize-whitespace": "^6.0.2", + "postcss-ordered-values": "^6.0.2", + "postcss-reduce-initial": "^6.1.0", + "postcss-reduce-transforms": "^6.0.2", + "postcss-svgo": "^6.0.3", + "postcss-unique-selectors": "^6.0.4" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano-utils": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", + "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "license": "CC0-1.0" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/cytoscape": { + "version": "3.33.1", + "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.33.1.tgz", + "integrity": "sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/cytoscape-cose-bilkent": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz", + "integrity": "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==", + "license": "MIT", + "dependencies": { + "cose-base": "^1.0.0" + }, + "peerDependencies": { + "cytoscape": "^3.2.0" + } + }, + "node_modules/cytoscape-fcose": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz", + "integrity": "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==", + "license": "MIT", + "dependencies": { + "cose-base": "^2.2.0" + }, + "peerDependencies": { + "cytoscape": "^3.2.0" + } + }, + "node_modules/cytoscape-fcose/node_modules/cose-base": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz", + "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==", + "license": "MIT", + "dependencies": { + "layout-base": "^2.0.0" + } + }, + "node_modules/cytoscape-fcose/node_modules/layout-base": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz", + "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==", + "license": "MIT" + }, + "node_modules/d3": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", + "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", + "license": "ISC", + "dependencies": { + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "d3-delaunay": "6", + "d3-dispatch": "3", + "d3-drag": "3", + "d3-dsv": "3", + "d3-ease": "3", + "d3-fetch": "3", + "d3-force": "3", + "d3-format": "3", + "d3-geo": "3", + "d3-hierarchy": "3", + "d3-interpolate": "3", + "d3-path": "3", + "d3-polygon": "3", + "d3-quadtree": "3", + "d3-random": "3", + "d3-scale": "4", + "d3-scale-chromatic": "3", + "d3-selection": "3", + "d3-shape": "3", + "d3-time": "3", + "d3-time-format": "4", + "d3-timer": "3", + "d3-transition": "3", + "d3-zoom": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-axis": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-brush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-chord": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "license": "ISC", + "dependencies": { + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-contour": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "license": "ISC", + "dependencies": { + "d3-array": "^3.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "license": "ISC", + "dependencies": { + "delaunator": "5" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "license": "ISC", + "dependencies": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/d3-dsv/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "license": "ISC", + "dependencies": { + "d3-dsv": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz", + "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-sankey": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz", + "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-array": "1 - 2", + "d3-shape": "^1.2.0" + } + }, + "node_modules/d3-sankey/node_modules/d3-array": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", + "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "license": "BSD-3-Clause", + "dependencies": { + "internmap": "^1.0.0" + } + }, + "node_modules/d3-sankey/node_modules/d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-sankey/node_modules/d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-path": "1" + } + }, + "node_modules/d3-sankey/node_modules/internmap": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", + "license": "ISC" + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" } }, - "node_modules/cssnano-preset-advanced": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz", - "integrity": "sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==", - "license": "MIT", + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", "dependencies": { - "autoprefixer": "^10.4.19", - "browserslist": "^4.23.0", - "cssnano-preset-default": "^6.1.2", - "postcss-discard-unused": "^6.0.5", - "postcss-merge-idents": "^6.0.3", - "postcss-reduce-idents": "^6.0.3", - "postcss-zindex": "^6.0.2" + "d3-array": "2 - 3" }, "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" + "node": ">=12" } }, - "node_modules/cssnano-preset-default": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", - "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", - "license": "MIT", + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", "dependencies": { - "browserslist": "^4.23.0", - "css-declaration-sorter": "^7.2.0", - "cssnano-utils": "^4.0.2", - "postcss-calc": "^9.0.1", - "postcss-colormin": "^6.1.0", - "postcss-convert-values": "^6.1.0", - "postcss-discard-comments": "^6.0.2", - "postcss-discard-duplicates": "^6.0.3", - "postcss-discard-empty": "^6.0.3", - "postcss-discard-overridden": "^6.0.2", - "postcss-merge-longhand": "^6.0.5", - "postcss-merge-rules": "^6.1.1", - "postcss-minify-font-values": "^6.1.0", - "postcss-minify-gradients": "^6.0.3", - "postcss-minify-params": "^6.1.0", - "postcss-minify-selectors": "^6.0.4", - "postcss-normalize-charset": "^6.0.2", - "postcss-normalize-display-values": "^6.0.2", - "postcss-normalize-positions": "^6.0.2", - "postcss-normalize-repeat-style": "^6.0.2", - "postcss-normalize-string": "^6.0.2", - "postcss-normalize-timing-functions": "^6.0.2", - "postcss-normalize-unicode": "^6.1.0", - "postcss-normalize-url": "^6.0.2", - "postcss-normalize-whitespace": "^6.0.2", - "postcss-ordered-values": "^6.0.2", - "postcss-reduce-initial": "^6.1.0", - "postcss-reduce-transforms": "^6.0.2", - "postcss-svgo": "^6.0.3", - "postcss-unique-selectors": "^6.0.4" + "d3-time": "1 - 3" }, "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" + "node": ">=12" } }, - "node_modules/cssnano-utils": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", - "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", - "license": "MIT", + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" + "node": ">=12" } }, - "node_modules/csso": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", - "license": "MIT", + "node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "license": "ISC", "dependencies": { - "css-tree": "~2.2.0" + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" }, "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" } }, - "node_modules/csso/node_modules/css-tree": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", - "license": "MIT", + "node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "license": "ISC", "dependencies": { - "mdn-data": "2.0.28", - "source-map-js": "^1.0.1" + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" }, "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" + "node": ">=12" } }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", - "license": "CC0-1.0" + "node_modules/dagre-d3-es": { + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.14.tgz", + "integrity": "sha512-P4rFMVq9ESWqmOgK+dlXvOtLwYg0i7u0HBGJER0LZDJT2VHIPAMZ/riPxqJceWMStH5+E61QxFra9kIS3AqdMg==", + "license": "MIT", + "dependencies": { + "d3": "^7.9.0", + "lodash-es": "^4.17.21" + } }, - "node_modules/csstype": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", - "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "node_modules/dayjs": { + "version": "1.11.20", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.20.tgz", + "integrity": "sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==", "license": "MIT" }, "node_modules/debounce": { @@ -7803,6 +8759,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/delaunator": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.1.0.tgz", + "integrity": "sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ==", + "license": "ISC", + "dependencies": { + "robust-predicates": "^3.0.2" + } + }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -7941,6 +8906,15 @@ "url": "https://github.com/fb55/domhandler?sponsor=1" } }, + "node_modules/dompurify": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.3.tgz", + "integrity": "sha512-Oj6pzI2+RqBfFG+qOaOLbFXLQ90ARpcGG6UePL82bJLtdsa6CYJD7nmiU8MW9nQNOtCHV3lZ/Bzq1X0QYbBZCA==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, "node_modules/domutils": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", @@ -9173,6 +10147,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/hachure-fill": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/hachure-fill/-/hachure-fill-0.5.2.tgz", + "integrity": "sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==", + "license": "MIT" + }, "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", @@ -9854,6 +10834,15 @@ "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==", "license": "MIT" }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, "node_modules/invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -10349,6 +11338,31 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/katex": { + "version": "0.16.42", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.42.tgz", + "integrity": "sha512-sZ4jqyEXfHTLEFK+qsFYToa3UZ0rtFcPGwKpyiRYh2NJn8obPWOQ+/u7ux0F6CAU/y78+Mksh1YkxTPXTh47TQ==", + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "license": "MIT", + "dependencies": { + "commander": "^8.3.0" + }, + "bin": { + "katex": "cli.js" + } + }, + "node_modules/katex/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -10358,6 +11372,11 @@ "json-buffer": "3.0.1" } }, + "node_modules/khroma": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz", + "integrity": "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==" + }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -10376,6 +11395,23 @@ "node": ">=6" } }, + "node_modules/langium": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/langium/-/langium-4.2.1.tgz", + "integrity": "sha512-zu9QWmjpzJcomzdJQAHgDVhLGq5bLosVak1KVa40NzQHXfqr4eAHupvnPOVXEoLkg6Ocefvf/93d//SB7du4YQ==", + "license": "MIT", + "dependencies": { + "chevrotain": "~11.1.1", + "chevrotain-allstar": "~0.3.1", + "vscode-languageserver": "~9.0.1", + "vscode-languageserver-textdocument": "~1.0.11", + "vscode-uri": "~3.1.0" + }, + "engines": { + "node": ">=20.10.0", + "npm": ">=10.2.3" + } + }, "node_modules/latest-version": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", @@ -10401,6 +11437,12 @@ "shell-quote": "^1.8.3" } }, + "node_modules/layout-base": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz", + "integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==", + "license": "MIT" + }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -10476,6 +11518,12 @@ "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", "license": "MIT" }, + "node_modules/lodash-es": { + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.23.tgz", + "integrity": "sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==", + "license": "MIT" + }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -10568,6 +11616,18 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/marked": { + "version": "16.4.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-16.4.2.tgz", + "integrity": "sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 20" + } + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -11047,6 +12107,48 @@ "node": ">= 8" } }, + "node_modules/mermaid": { + "version": "11.13.0", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.13.0.tgz", + "integrity": "sha512-fEnci+Immw6lKMFI8sqzjlATTyjLkRa6axrEgLV2yHTfv8r+h1wjFbV6xeRtd4rUV1cS4EpR9rwp3Rci7TRWDw==", + "license": "MIT", + "dependencies": { + "@braintree/sanitize-url": "^7.1.1", + "@iconify/utils": "^3.0.2", + "@mermaid-js/parser": "^1.0.1", + "@types/d3": "^7.4.3", + "@upsetjs/venn.js": "^2.0.0", + "cytoscape": "^3.33.1", + "cytoscape-cose-bilkent": "^4.1.0", + "cytoscape-fcose": "^2.2.0", + "d3": "^7.9.0", + "d3-sankey": "^0.12.3", + "dagre-d3-es": "7.0.14", + "dayjs": "^1.11.19", + "dompurify": "^3.3.1", + "katex": "^0.16.25", + "khroma": "^2.1.0", + "lodash-es": "^4.17.23", + "marked": "^16.3.0", + "roughjs": "^4.6.6", + "stylis": "^4.3.6", + "ts-dedent": "^2.2.0", + "uuid": "^11.1.0" + } + }, + "node_modules/mermaid/node_modules/uuid": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/esm/bin/uuid" + } + }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -12954,6 +14056,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/mlly": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.2.tgz", + "integrity": "sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==", + "license": "MIT", + "dependencies": { + "acorn": "^8.16.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.3" + } + }, "node_modules/mrmime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", @@ -13410,6 +14524,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/package-manager-detector": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.6.0.tgz", + "integrity": "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==", + "license": "MIT" + }, "node_modules/param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", @@ -13537,6 +14657,12 @@ "tslib": "^2.0.3" } }, + "node_modules/path-data-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/path-data-parser/-/path-data-parser-0.1.0.tgz", + "integrity": "sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==", + "license": "MIT" + }, "node_modules/path-exists": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", @@ -13585,6 +14711,12 @@ "node": ">=8" } }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "license": "MIT" + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -13618,6 +14750,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, "node_modules/pkijs": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/pkijs/-/pkijs-3.3.3.tgz", @@ -13635,6 +14778,22 @@ "node": ">=16.0.0" } }, + "node_modules/points-on-curve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/points-on-curve/-/points-on-curve-0.2.0.tgz", + "integrity": "sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==", + "license": "MIT" + }, + "node_modules/points-on-path": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/points-on-path/-/points-on-path-0.2.1.tgz", + "integrity": "sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==", + "license": "MIT", + "dependencies": { + "path-data-parser": "0.1.0", + "points-on-curve": "0.2.0" + } + }, "node_modules/postcss": { "version": "8.5.8", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz", @@ -16068,6 +17227,24 @@ "node": ">=0.10.0" } }, + "node_modules/robust-predicates": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz", + "integrity": "sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA==", + "license": "Unlicense" + }, + "node_modules/roughjs": { + "version": "4.6.6", + "resolved": "https://registry.npmjs.org/roughjs/-/roughjs-4.6.6.tgz", + "integrity": "sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==", + "license": "MIT", + "dependencies": { + "hachure-fill": "^0.5.2", + "path-data-parser": "^0.1.0", + "points-on-curve": "^0.2.0", + "points-on-path": "^0.2.1" + } + }, "node_modules/rtlcss": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.3.0.tgz", @@ -16121,6 +17298,12 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "license": "BSD-3-Clause" + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -16956,6 +18139,12 @@ "postcss": "^8.4.31" } }, + "node_modules/stylis": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", + "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", + "license": "MIT" + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -17153,6 +18342,15 @@ "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", "license": "MIT" }, + "node_modules/tinyexec": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.4.tgz", + "integrity": "sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/tinypool": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", @@ -17228,6 +18426,15 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/ts-dedent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", + "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", + "license": "MIT", + "engines": { + "node": ">=6.10" + } + }, "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", @@ -17307,6 +18514,12 @@ "is-typedarray": "^1.0.0" } }, + "node_modules/ufo": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.3.tgz", + "integrity": "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==", + "license": "MIT" + }, "node_modules/undici-types": { "version": "7.18.2", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", @@ -17801,6 +19014,55 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/vscode-jsonrpc": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", + "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/vscode-languageserver": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", + "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", + "license": "MIT", + "dependencies": { + "vscode-languageserver-protocol": "3.17.5" + }, + "bin": { + "installServerIntoExtension": "bin/installServerIntoExtension" + } + }, + "node_modules/vscode-languageserver-protocol": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", + "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", + "license": "MIT", + "dependencies": { + "vscode-jsonrpc": "8.2.0", + "vscode-languageserver-types": "3.17.5" + } + }, + "node_modules/vscode-languageserver-textdocument": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", + "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==", + "license": "MIT" + }, + "node_modules/vscode-languageserver-types": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", + "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", + "license": "MIT" + }, + "node_modules/vscode-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", + "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", + "license": "MIT" + }, "node_modules/watchpack": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", diff --git a/package.json b/package.json index d527826..8600b27 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "dependencies": { "@docusaurus/core": "^3.4.0", "@docusaurus/preset-classic": "^3.4.0", + "@docusaurus/theme-mermaid": "^3.9.2", "react": "^18.2.0", "react-dom": "^18.2.0" }, @@ -24,8 +25,16 @@ "@docusaurus/types": "^3.4.0" }, "browserslist": { - "production": [">0.5%", "not dead", "not op_mini all"], - "development": ["last 1 chrome version", "last 1 firefox version", "last 1 safari version"] + "production": [ + ">0.5%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] }, "engines": { "node": ">=18.0" diff --git a/src/components/_ecs-types.mdx b/src/components/_ecs-types.mdx index cc4e739..7f7ca78 100644 --- a/src/components/_ecs-types.mdx +++ b/src/components/_ecs-types.mdx @@ -1,7 +1,5 @@ :::info - -Currently, **storing dynamically sized objects or lists isn’t supported**. We’re actively exploring this feature and [**would love to hear about your specific use cases**](https://forum.8thwall.com/). - +Currently, **storing dynamically sized objects or lists isn’t supported**. We [would love to hear about your specific use cases](https://github.com/orgs/8thwall/discussions) and are open to contributions. ::: The following data types are useful for creating Schema properties on a Custom Component or references to a specific type. @@ -15,4 +13,4 @@ The following data types are useful for creating Schema properties on a Custom C | ecs.ui8 | 8-bit unsigned integer | | ecs.ui32 | 32-bit unsigned integer | | ecs.string | String | -| ecs.boolean | Boolean | \ No newline at end of file +| ecs.boolean | Boolean | diff --git a/static/images/getting-started/adding-entities.png b/static/images/getting-started/adding-entities.png new file mode 100644 index 0000000..7b22547 Binary files /dev/null and b/static/images/getting-started/adding-entities.png differ diff --git a/static/images/getting-started/desktop-pop-out.png b/static/images/getting-started/desktop-pop-out.png new file mode 100644 index 0000000..b73a7a3 Binary files /dev/null and b/static/images/getting-started/desktop-pop-out.png differ diff --git a/static/images/getting-started/getting-started.gif b/static/images/getting-started/getting-started.gif new file mode 100644 index 0000000..fdb54a5 Binary files /dev/null and b/static/images/getting-started/getting-started.gif differ diff --git a/static/images/getting-started/getting-started.png b/static/images/getting-started/getting-started.png new file mode 100644 index 0000000..13b2fc5 Binary files /dev/null and b/static/images/getting-started/getting-started.png differ diff --git a/static/images/getting-started/inspector.png b/static/images/getting-started/inspector.png new file mode 100644 index 0000000..d01aea5 Binary files /dev/null and b/static/images/getting-started/inspector.png differ diff --git a/static/images/getting-started/studio-create.png b/static/images/getting-started/studio-create.png new file mode 100644 index 0000000..c1fd641 Binary files /dev/null and b/static/images/getting-started/studio-create.png differ diff --git a/static/images/getting-started/studio-home.png b/static/images/getting-started/studio-home.png new file mode 100644 index 0000000..8f60556 Binary files /dev/null and b/static/images/getting-started/studio-home.png differ diff --git a/static/images/getting-started/studio-settings.png b/static/images/getting-started/studio-settings.png new file mode 100644 index 0000000..115436b Binary files /dev/null and b/static/images/getting-started/studio-settings.png differ diff --git a/static/images/getting-started/transform.png b/static/images/getting-started/transform.png new file mode 100644 index 0000000..f36ada5 Binary files /dev/null and b/static/images/getting-started/transform.png differ