open-index/open-npm huggingface dataset:
npm package: @itwin/itwinui-layouts-css
Description: iTwinUI CSS package that provides classes for most common layouts
Author: Bentley Systems, Inc.
Latest version: 0.4.0

<p align="center">
  <img src="https://itwin.github.io/iTwinUI-layouts/logo.png" alt="iTwinUI-layouts logo" style="width: 300px;"/>
</p>

<p align="center">An open-source design system that helps us build a unified web experience.</p>
  
<div align="center">
  
  [![itwinui-layouts on npm](https://img.shields.io/npm/v/@itwin/itwinui-layouts-css)](https://www.npmjs.com/package/@itwin/itwinui-layouts-css)
  [![Build status](https://github.com/iTwin/iTwinUI-layouts/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/iTwin/iTwinUI-layouts/actions/workflows/build.yml?query=branch%3Amain)

</div>
<div align="center">
  
  [Key features](#key-features) • [Installation](#Installation) • [Usage](#Usage) • [Contributing](#contributing)

</div>

## Key features

iTwinUI-layouts places given elements (eg. [iTwinUI](https://github.com/iTwin/iTwinUI)) accordingly within the page with minimal effort on the development side.

---

## Installation

```
npm install @itwin/itwinui-layouts-css
```

```
yarn add @itwin/itwinui-layouts-css
```

---

## Usage

```css
// app.css
import '@itwin/itwinui-layouts-css/styles.css';
```

```html
<!-- app.html -->
<div class="iui-layouts-page">
  <div class="iui-layouts-page-header">
    <!-- Your header code -->
  </div>
  <div class="iui-layouts-page-sidenav">
    <!-- Your side navigation -->
  </div>
  <div class="iui-layouts-page-content iui-layouts-page-content-padded">
    <!-- Your content (will be padded) -->
  </div>
</div>
```

---

## Contributing

We welcome you to contribute and make this layouts library better. You can submit feature requests or bugs by creating an [issue](https://github.com/iTwin/iTwinUI-layouts/issues).
Please read our [CONTRIBUTING.md](https://github.com/iTwin/iTwinUI-layouts/blob/main/CONTRIBUTING.md) for more information.
npm package: @itwin/itwinui-react
Description: A react component library for iTwinUI
Author: Bentley Systems
Latest version: 3.20.2

<p align="center">
  <picture>
    <source
      media='(prefers-color-scheme: dark)'
      srcset='https://itwin.github.io/iTwinUI/logo-dark.svg'
    />
    <img
      src='https://itwin.github.io/iTwinUI/logo.svg'
      alt='iTwinUI logo'
    />
  </picture>
</p>

<h1 align="center">iTwinUI-react</h1>

<div align="center">
  
  [![itwinui-react on npm](https://img.shields.io/npm/v/@itwin/itwinui-react)](https://www.npmjs.com/package/@itwin/itwinui-react)
  [![Build status](https://github.com/iTwin/iTwinUI/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/iTwin/iTwinUI/actions/workflows/build.yml?query=branch%3Amain)

</div>

## What is iTwinUI-react?

iTwinUI-react is a React component library for [iTwinUI](https://github.com/iTwin/iTwinUI).
The goal of this package is to provide React components that make it easier to use the styles from [`@itwin/itwinui-css`](https://github.com/iTwin/iTwinUI/tree/main/packages/itwinui-css). Check out the [documentation website](https://itwinui.bentley.com/) to detailed documentation and examples of all components.

🆕 Check out the [v3 migration guide](https://github.com/iTwin/iTwinUI/wiki/iTwinUI-react-v3-migration-guide) if you're upgrading from an older version.

---

## Installation

```
npm add @itwin/itwinui-react
```

---

## Setup

Wrap your application entrypoint in `ThemeProvider` and import `styles.css`.

```jsx
import { ThemeProvider } from '@itwin/itwinui-react';
import '@itwin/itwinui-react/styles.css';

export default function App() {
  return (
    <>
      <ThemeProvider>
        {/* Your components go here. */}
      </ThemeProvider>
    </>
  );
}
```

ThemeProvider has a `theme` prop which accepts one of the following values:
  - `"light"`
  - `"dark"`
  - `"os"` (respects the color scheme of the operating system)
  - `"inherit"` (default)

---

## Usage

After setting up ThemeProvider and styles, import the component you want and start using it!

```jsx
import { Button } from '@itwin/itwinui-react';

const Page = () => (
  <Button>Hello!</Button>
);
```

Check out this template for a live interactive demo:

[![Edit in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/iTwin/iTwinUI/tree/main/minimal-sandbox?file=src/App.tsx)

---

## FAQ

For a list of frequently asked questions, visit the [wiki](https://github.com/iTwin/iTwinUI/wiki/FAQ).

---

## Contributing

We welcome you to contribute and make this UI design system better. You can submit feature requests or bugs by creating an [issue](https://github.com/iTwin/iTwinUI/issues).
Please read our [CONTRIBUTING.md](https://github.com/iTwin/iTwinUI/blob/main/CONTRIBUTING.md) for more information.

---

## Changelog

Read our [CHANGELOG.md](https://github.com/iTwin/iTwinUI/blob/main/packages/itwinui-react/CHANGELOG.md) to find recent changes.
npm package: @itwin/itwinui-variables
Description: CSS variables for the iTwinUI design system
Author: Bentley Systems
Latest version: 3.3.1

# @itwin/itwinui-variables

## Installation

```console
npm install @itwin/itwinui-variables
```

## Usage

Import in CSS:

```css
@import '@itwin/itwinui-variables';
```

Or in JS (if using a bundler):

```js
import '@itwin/itwinui-variables';
```

> **Note**: If your project doesn't support export maps, then you might need to import the css file explicitly:
>
> ```css
> @import '@itwin/itwinui-variables/index.css';
> ```

Specify a theme ("light" or "dark") by adding a `data-iui-theme` attribute to the top of your app.
```html
<body data-iui-theme="light">
  <!-- your application code -->
</body>
```

Now you can start using the variables:

```css
button {
  background-color: var(--iui-color-background);
  border: var(--iui-color-border);
  color: var(--iui-color-text);
}
```

You can also specify `data-iui-contrast` to switch to a high contrast version of the current theme.

```html
<body data-iui-theme="dark" data-iui-contrast="high">
  <!-- your application code -->
</body>
```

If you want the variables to automatically respect the user preferences (`prefers-color-scheme` and `prefers-contrast`), then you need to additionally import `os.css`, and use `data-iui-theme` without a value. For example:

```css
@import '@itwin/itwinui-variables';
@import '@itwin/itwinui-variables/os.css';
```
```html
<body data-iui-theme>
  <!-- your application code -->
</body>
```
npm package: @itwin/manage-versions-react
Description: Components that allow a user to manage Named Versions and Changesets.
Author: Bentley Systems, Inc.
Latest version: 2.2.4

# @itwin/manage-versions-react

## Description

Contains a component that allows a user to manage Named Versions and Changesets.

## Install

```
npm install @itwin/manage-versions-react
```

```
yarn add @itwin/manage-versions-react
```

## Use

```jsx
import { ManageVersions } from "@itwin/manage-versions-react";

const App = () => (
  <ManageVersions
    accessToken="Bearer ..."
    imodelId="d667d711-a0ee-4843-957b-a8c3ed1caad2"
  />
);
```

## Development

When making changes to the src, run `rushx start` in the dev folder to enable source watching and rebuild, so the storybook dev-server will have access to updated code on successful code compilation.

## Changelog

See complete CHANGELOG [here](https://github.com/iTwin/admin-components-react/blob/main/packages/modules/manage-versions/CHANGELOG.md)
npm package: @itwin/map-layers
Description: Extension that adds a Map Layers Widget
Author: Bentley Systems, Inc.
Latest version: 6.2.0

# MapLayers Extension/Package

Copyright © Bentley Systems, Incorporated. All rights reserved. See LICENSE.md for license terms and full copyright notice.

An iTwin.js Extension that adds a widget for attaching and updating map attachments in a view:

This extension serves as an example of a extension that can be added to iTwin.js host applications.
See <http://itwinjs.org> for comprehensive documentation on the iTwin.js API and the various constructs used in this sample.

This package can also be installed into an application and the method MapLayersUI.initialized() called during the host IModelApps initialize processing.

## Development Setup

1. Select and prepare an iTwin.js host application. You can use the [ui-test-app] to host the extension, for example.
2. The dependencies are installed as part of "rush install" in the iTwin.js repository.
3. Build the extension as part of the "rush build" in the iTwin.js repository, or separately build using the npm build command.

> For the base imagery to appear, you will need to include a `IMJS_BING_MAPS_KEY` to your environment variables.

   ```sh
   npm run build
   ```

4. Start the host application - go to its directory and run:

   ```sh
   npm run start:servers
   ```

5. Open a web browser (e.g., Chrome), and browse to http://localhost:3000.

## Contributing

[Contributing to iTwin.js](https://github.com/iTwin/itwinjs-core/blob/master/CONTRIBUTING.md)
npm package: @itwin/mobile-sdk-core
Description: Bentley iTwin Mobile Core module
Author: Bentley Systems, Inc.
Latest version: 0.32.1

# iTwin mobile-sdk-core

Copyright © Bentley Systems, Incorporated. All rights reserved. See [LICENSE.md](./LICENSE.md) for license terms and full copyright notice.

## Warning

This is pre-release software and provided as-is.

## About this Repository

This repository contains the core npm module for creating [iTwin.js](http://www.itwinjs.org) applications on mobile devices via [iTwin/mobile-sdk-ios](https://github.com/iTwin/mobile-sdk-ios) and [iTwin/mobile-sdk-android](https://github.com/iTwin/mobile-sdk-android). See [iTwin/mobile-ui-react](https://github.com/iTwin/mobile-ui-react) for React-specific mobile functionality and [iTwin/mobile-samples](https://github.com/iTwin/mobile-samples) for sample iOS and Android apps.

Please see [VERSIONS.md](./VERSIONS.md) for instructions on determining the proper version for npm
modules with an `@itwin/` prefix.
npm package: @itwin/mobile-ui-react
Description: Bentley iTwin Mobile UI module
Author: Bentley Systems, Inc.
Latest version: 0.32.1

# MobileUI

Copyright © Bentley Systems, Incorporated. All rights reserved. See [LICENSE.md](./LICENSE.md) for license terms and full copyright notice.

## Warning

This is pre-release software and provided as-is.

## About this Repository

This repository contains React components that can be used in [iTwin.js](http://www.itwinjs.org) applications on mobile devices via [iTwin/mobile-sdk-core](https://github.com/iTwin/mobile-sdk-core).
npm package: @itwin/node-cli-authorization
Description: Node.js command-line authorization client for iTwin platform
Author: Bentley Systems, Inc.
Latest version: 3.0.3

# @itwin/node-cli-authorization

Copyright © Bentley Systems, Incorporated. All rights reserved. See LICENSE.md for license terms and full copyright notice.

## Description

The **@itwin/node-cli-authorization** package contains a Node.js command-line based client for authorization with the iTwin Platform by default and is configurable to work with any OAuth2.0 based provider.

## How it works

The node-cli-authorization client works by opening a system browser for users to supply credentials, then completes the flow by starting a local node server to facilitate the callback from the identity server.

```ts
const authClient = new NodeCliAuthorizationClient({
  /** The OAuth token issuer URL. Defaults to Bentley's auth URL if undefined. */
  readonly issuerUrl?: string;
  /**
   * Upon signing in, the client application receives a response from the Bentley IMS OIDC/OAuth2 provider at this URI
   * For this client, must start with `http://localhost:${redirectPort}`
   * Defaults to "http://localhost:3000/signin-callback" if undefined.
   */
  readonly redirectUri?: string;
  /** Client application's identifier as registered with the OIDC/OAuth2 provider. */
  readonly clientId: string;
  /** List of space separated scopes to request access to various resources. */
  readonly scope: string;
  /**
   * Time in seconds that's used as a buffer to check the token for validity/expiry.
   * The checks for authorization, and refreshing access tokens all use this buffer - i.e., the token is considered expired if the current time is within the specified
   * time of the actual expiry.
   * @note If unspecified this defaults to 10 minutes.
   */
  readonly expiryBuffer?: number;
});

await authClient.signIn();
```

## App setup

Choose "Desktop/Mobile" as your application type when [registering for use with this client](https://developer.bentley.com/register/).

Note that your registered application's redirectUri must start with `http://localhost:${redirectPort}`.

See the [AccessToken](https://www.itwinjs.org/learning/common/accesstoken/) article in the iTwin.js documentation for background on authorization in iTwin.js.

The OAuth2.0 workflow used in this package is Authorization Code + PKCE, for more information about the flow please visit the [Authorization Overview Page](https://developer.bentley.com/apis/overview/authorization/#authorizesinglepageapplicationsspaanddesktopmobileapplicationsnative).
npm package: @itwin/object-storage-azure
Description: Object storage implementation using Azure Blob Storage
Author: Bentley Systems, Inc.
Latest version: 3.0.4

# @itwin/object-storage-azure

Copyright © Bentley Systems, Incorporated. All rights reserved. See [LICENSE.md](./LICENSE.md) for license terms and full copyright notice.

## About this package

This package contains implementations for object storage interfaces exposed by `@itwin/object-storage-core` which allow to consume Azure Blob Storage service. Communication with the Blob Service is implemented using using [Azure Storage Blob client library](https://www.npmjs.com/package/@azure/storage-blob).
npm package: @itwin/object-storage-core
Description: Core generic object storage interfaces
Author: Bentley Systems, Inc.
Latest version: 3.0.4

# @itwin/object-storage-core

Copyright © Bentley Systems, Incorporated. All rights reserved. See [LICENSE.md](./LICENSE.md) for license terms and full copyright notice.

## About this package

This package defines core interfaces for object storage. It exposes two main interfaces: `ServerStorage` and `ClientStorage`. `ServerStorage` is intended to be used by services that use object storage po persist data that is later accessed by the service clients using `ClientStorage`.

Package users can choose and either use storage abstractions as normal interfaces/classes or they can register and load them into applications as dependencies (see `ServerStorageDependency`, `ClientStorageDependency`). See the `@itwin/object-storage-tests` package in this repository for an example on how to register storage interfaces and bind implementations, `StorageIntegrationTests.ts` module models minimal application startup class.
npm package: @itwin/object-storage-google
Description: Object storage implementation using Google Cloud Storage
Author: Bentley Systems, Inc.
Latest version: 3.0.4

# @itwin/object-storage-google

Copyright © Bentley Systems, Incorporated. All rights reserved. See [LICENSE.md](./LICENSE.md) for license terms and full copyright notice.

## About this package

This package contains implementations for object storage interfaces exposed by `@itwin/object-storage-core` which allow to consume Google Cloud Storage service. Communication with the Google Cloud APIs is implemented using using [Google Cloud Storage](https://www.npmjs.com/package/@google-cloud/storage) and [Google Cloud Storage Control](https://www.npmjs.com/package/@google-cloud/storage-control) libraries.
npm package: @itwin/object-storage-minio
Description: Object storage implementation using Minio
Author: Bentley Systems, Inc.
Latest version: 3.0.4

# @itwin/object-storage-minio

Copyright © Bentley Systems, Incorporated. All rights reserved. See [LICENSE.md](./LICENSE.md) for license terms and full copyright notice.

## About this package

This package contains implementations for object storage interfaces exposed by `@itwin/object-storage-core` which allow to consume [MinIO](https://min.io/) service. This package extends the `@itwin/object-storage-s3` package and adapts it for MinIO use cases using [MinIO JavaScript Library](https://www.npmjs.com/package/minio).
npm package: @itwin/object-storage-oss
Description: Object storage implementation using OSS
Author: Bentley Systems, Inc.
Latest version: 3.0.4

# @itwin/object-storage-oss

Copyright © Bentley Systems, Incorporated. All rights reserved. See [LICENSE.md](./LICENSE.md) for license terms and full copyright notice.

## About this package

This package contains implementations for object storage interfaces exposed by `@itwin/object-storage-core` which allow to consume Object Storage Service (OSS) provided by Alibaba Cloud. This package extends the `@itwin/object-storage-s3` package and adapts it for OSS use cases using [Alicloud SDK](https://www.npmjs.com/package/@alicloud/pop-core).
npm package: @itwin/object-storage-s3
Description: Object storage implementation base for S3 compatible providers
Author: Bentley Systems, Inc.
Latest version: 3.0.4

# @itwin/object-storage-s3

Copyright © Bentley Systems, Incorporated. All rights reserved. See [LICENSE.md](./LICENSE.md) for license terms and full copyright notice.

## About this package

This package contains base implementations for object storage interfaces exposed by `@itwin/object-storage-core` that allow to consume S3-compatible storage providers. Communication with S3 is implemented using using [AWS SDK](https://www.npmjs.com/package/@aws-sdk/client-s3).
npm package: @itwin/object-storage-tests-backend
Description: Tests for generic storage packages
Author: Bentley Systems, Inc.
Latest version: 0.1.0-dev.1

# @itwin/object-storage-tests

Copyright © Bentley Systems, Incorporated. All rights reserved. See [LICENSE.md](./LICENSE.md) for license terms and full copyright notice.

## About this package

This package contains tests for different object storage implementations.

**Note:** this package should not be consumed by external users.
npm package: @itwin/oidc-signin-tool
Description: OIDC Signin Helper
Author: Bentley Systems, Inc.
Latest version: 5.1.2

# @itwin/oidc-signin-tool

Copyright © Bentley Systems, Incorporated. All rights reserved. See LICENSE.md for license terms and full copyright notice.

A test utility that supports getting an access token using an interactive sign-in workflow. It is most useful for integration testing when a test user is required.

The tool automates the sign-in UI when given a user credentials for the iTwin Platform.

> Warning: This is not meant to be used in a production application. It is not a secure way to handle any sort of authentication for purposes other than testing.

## Usage

```typescript
const config = {
  clientId // string;
  redirectUri // string;
  scope // string;
  authority? // string;
  clientSecret? //  string;
}

const user {
  email // string;
  password // string;
}

const client = new TestBrowserAuthorizationClient(config, user);

const accessToken = await client.getAccessToken();

// other things you can do:

await client.signOut();

// same as client.getAccessToken, except the token is not returned
// the onAccessTokenChanged BeEvent is fired
await client.signIn()

// Getters

// Returns BeEvent
client.onAccessTokenChanged

client.isAuthorized
client.hasExpired

// same as client.isAuthorized, but user may be expired
client.hasSignedIn


```

## Mocha leaks

If you use this package with mocha, you may notice a global leak.

```js
Error: global leak(s) detected: '_playwrightInstance'
```

This is because as of 4.3.0, this package performs a late conditional import of Playwright to avoid
double-importing in some cases where the consumer may want to bring their own Playwright instance.
Double importing causes Playwright to throw an error. Playwright also leaks a global that mocha
used to ignore because it was created during the import phase. Now it is created during the late
conditional import where mocha doesn't expect it and it "leaks". **You should configure mocha to ignore
this leak.** In the future, the API requiring the dynamic import will be moved to a separate package
to avoid this situation.

You can ignore the leak like so:

```sh
mocha --check-leaks --global _playwrightInstance
```

or use `.mocharc`

```json
{
  "global": "_playwrightInstance"
}
```
npm package: @itwin/one-click-lca-react
Description: An iTwin.js 3D Viewer Widget that interfaces with the iTwin Carbon Calculation.
Author: Bentley Systems, Inc.
Latest version: 0.8.0

# @itwin/one-click-lca-react

Copyright © Bentley Systems, Incorporated. All rights reserved.

The One Click LCA widget is a UI component for iTwin Viewer applications that simplifies how users (and developers) interface with the [Carbon Calculation One Click LCA APIs](https://developer.bentley.com/apis/carbon-calculation/overview/).
The one-click-lca-react package provides a UiProvider class, `OneClickLCAProvider`, which can be passed into the `uiProviders` prop of the iTwin Viewer's `<Viewer />` component.

## Getting Started

This is not a standalone UI and requires a parent iTwin Viewer application to work as intended.
A guide on how to create a basic iTwin Viewer application can be found [here](https://www.itwinjs.org/learning/tutorials/develop-web-viewer).
This package provides a viewer _widget_. Documentation on how to add a widget to your application can be found [here](https://developer.bentley.com/tutorials/itwin-viewer-hello-world/#2-your-first-ui-widget).

## Permissions and Scopes

The SPA client used by your iTwin viewer must have the `itwin-platform` scope.

Users must have the `imodels_read` and `insights_view` [permissions](https://developer.bentley.com/apis/carbon-calculation/operations/create-oneclicklca-job/#authorization) assigned at either the Project or iModel level. Additional instruction on how to create roles and assign permissions can be found in the [iTwin Platform Projects API documentation](https://developer.bentley.com/apis/projects/tutorials/).

## Sample usage

```tsx
import { OneClickLCAProvider } from "@itwin/one-click-lca-react";

<Viewer
  ...
  uiProviders={[new OneClickLCAProvider()]}
/>
```
npm package: @itwin/pcf-cli
Description: iTwin PCF command line
Latest version: 1.0.0

# iTwin PCF cli

PCF command-line interface that can be used to work with PCF-powered iTwin.js Connector Apps. 

# Getting Started 

```console
npm install -g @itwin/pcf-cli
```

```console
pcf -h
```

# Install from source

```console
# install dependencies
npm ci
# install your version @itwin/pcf-cli globally
npm install -g .
# run pcf-cli
pcf <your command> 
# use @itwin/pcf package locally without installing it
cd <your connector project directory generated by pcf-cli>
npm link @itwin/pcf
```
npm package: @itwin/presentation-components
Description: React components based on iTwin.js Presentation library
Author: Bentley Systems, Inc.
Latest version: 5.13.3

# @itwin/presentation-components

Copyright © Bentley Systems, Incorporated. All rights reserved. See LICENSE.md for license terms and full copyright notice.

## Description

The **@itwin/presentation-components** package contains data providers and react HOCs for
certain react components delivered in **@itwin/components-react**.

## Documentation

See the [iTwin.js](https://www.itwinjs.org) documentation for more information.
npm package: @itwin/presentation-opentelemetry
Description: Utilities to enable OpenTelemetry tracing of Presentation requests
Author: Bentley Systems, Inc.
Latest version: 4.2.5

# @itwin/presentation-opentelemetry

Copyright © Bentley Systems, Incorporated. All rights reserved. See LICENSE.md for license terms and full copyright notice.

## Description

The **@itwin/presentation-opentelemetry** package contains functions for making interop between OpenTelemetry
and iTwin.js Presentation types easier.

## Documentation

See the [iTwin.js](https://www.itwinjs.org) documentation for more information.
npm package: @itwin/presentation-rules-editor-react
Description: iTwin.js Presentation Rules Editor React components
Author: Bentley Systems, Inc.
Latest version: 0.1.1

# @itwin/presentation-rules-editor-react

A set of React components used by [Presentation Rules Editor](https://presentationruleseditor.bentley.com).

## Installation

```cmd
npm install @itwin/presentation-rules-editor-react
```

## Usage

The following example demonstrates how to assemble a basic Presentation rules editor out of provided React components:

```tsx
import * as monaco from "monaco-editor";
import { useEffect, useState } from "react";
import { IModelConnection } from "@itwin/core-frontend";
import { ContentSpecificationTypes, Ruleset, RuleTypes } from "@itwin/presentation-common";
import { EditableRuleset, PropertyGrid, SoloRulesetEditor, Tree } from "@itwin/presentation-rules-editor-react";

function MyComponent(props: { iModel: IModelConnection }): React.ReactElement {
  const [editableRuleset] = useState(() => new EditableRuleset({ initialRuleset: ruleset }));
  const [rulesetEditor] = useState(
    () => new SoloRulesetEditor({ editableRuleset, monaco, contributions: { submitButton: true } }),
  );

  useEffect(
    () => {
      // Free resources when MyComponent unmounts
      return () => {
        rulesetEditor.dispose();
        editableRuleset.dispose();
      };
    },
    [editableRuleset, rulesetEditor],
  );

  return (
    <>
      <rulesetEditor.Component width={800} height={600} />
      <Tree
        width={350}
        height={400}
        iModel={props.iModel}
        editableRuleset={editableRuleset}
      />
      <PropertyGrid
        width={350}
        height={400}
        iModel={props.iModel}
        editableRuleset={editableRuleset}
      />
    </>
  );
}

const ruleset: Ruleset = {
  id: "ruleset1",
  rules: [{
    ruleType: RuleTypes.Content,
    specifications: [{
      specType: ContentSpecificationTypes.SelectedNodeInstances,
    }],
  }],
};
```
npm package: @itwin/presentation-testing
Description: Testing utilities for iTwin.js Presentation library
Author: Bentley Systems, Inc.
Latest version: 5.4.19

# @itwin/presentation-testing

Copyright © Bentley Systems, Incorporated. All rights reserved. See LICENSE.md for license terms and full copyright notice.

## Description

The **@itwin/presentation-testing** package contains helper classes and APIs that help test presentation modules.
npm package: @itwin/projects-client
Description: Projects client for the iTwin platform
Author: Bentley Systems, Inc.
Latest version: 0.7.0
Deprecated: This package has been deprecated in favor of @itwin/itwins-client

# Projects Client Library

Copyright © Bentley Systems, Incorporated. All rights reserved. See [LICENSE.md](./LICENSE.md) for license terms and full copyright notice.

[iTwin.js](http://www.itwinjs.org) is an open source platform for creating, querying, modifying, and displaying Infrastructure Digital Twins. To learn more about the iTwin Platform and its APIs, visit the [iTwin developer portal](https://developer.bentley.com/).

If you have questions, or wish to contribute to iTwin.js, see our [Contributing guide](./CONTRIBUTING.md).

## About this Repository

Contains the __@itwin/projects-client__ package that wraps sending requests to the project service. Visit the [Projects API](https://developer.bentley.com/apis/projects/) for more documentation on the project service.

## Running Tests

In order to run the integration tests, first add a `.env` file with the necessary settings, then run `npm install`, `npm run build`, and `npm run test`.
npm package: @itwin/reality-capture-common
Description: Reality Capture services common classes and interfaces
Author: Bentley Systems, Inc.
Latest version: 1.0.1

# @itwin/reality-capture-common

Copyright © Bentley Systems, Incorporated. All rights reserved. See LICENSE.md for license terms and full copyright notice.

## Description

The **@itwin/reality-capture-common** package contains Reality Capture common classes and interfaces.
npm package: @itwin/reality-capture-conversion
Description: Reality conversion sdk to run conversion jobs
Author: Bentley Systems, Inc.
Latest version: 1.1.0

# @itwin/reality-capture-conversion

Copyright © Bentley Systems, Incorporated. All rights reserved. See LICENSE.md for license terms and full copyright notice.

## Description

The **@itwin/reality-capture-conversion** package contains a sdk to send requests to the Reality Conversion API, part of the iTwin platform.

iTwin.js is an open source platform for creating, querying, modifying, and displaying Infrastructure Digital Twins. To learn more about the iTwin Platform and its APIs, visit the iTwin developer portal.

## Documentation

For more information about Reality Conversion package, see [Reality Conversion APi documentation](https://developer.bentley.com/apis/realityconversion/)

## Requirements

A registered application in the iTwin Platform is needed for using the Reality Conversion Service. Documentation for registering an application can be found [here.](https://developer.bentley.com/tutorials/register-and-modify-application/) Make sure that your application has `realityconversion:read realityconversion:modify` scopes enabled. 

To use the Reality Conversion API you will need to have an access to a project. If you don't have one already, contact one of your Organization Administrators or take some time to go through the following tutorial: Create a [Project](https://developer.bentley.com/tutorials/create-and-query-projects-guide).

To build and run the Reality Conversion service, you will need [Node.js](https://nodejs.org/en/) v22 (must be greater than 22.14.x).

## Key Types and Methods

### RealityConversionService

Serves a client wrapper to the Reality Analysis API. It contains all the necessary methods to fulfill any workflow related to create, submit and monitor Reality Analysis jobs.

- `getScopes` : returns the required scopes
- `createJob` : create a job from the given settings
- `submitJob` : submit the given job
- `cancelJob` : cancel the given job
- `deleteJob` : delete the given job
- `getJobProgress` : get the progress of the given job
- `getJobProperties` : get the properties of the given job, such as the settings, the creation date etc...
- `getJobEstimatedCost` : get the estimation cost

### RCJobType

Enumerates the current conversion types.

### RCJobSettings

Describes a job : its inputs, outputs, and other parameters.

### RCJobCostParameters

Parameters for estimating job cost before its processing.

### RCJobProperties

Contains all the provided job properties, such as name, id, settings...

## Usage example

An example is available to show how to create jobs and get its results. See [Reality Conversion example](./../../examples/code-samples/src/RealityConversion.ts)
npm package: @itwin/reality-capture-modeling
Description: Reality Modeling sdk to run modeling jobs
Author: Bentley Systems, Inc.
Latest version: 1.0.1

# @itwin/reality-capture-modeling

Copyright © Bentley Systems, Incorporated. All rights reserved. See LICENSE.md for license terms and full copyright notice.

## Description

The **@itwin/reality-capture-modeling** package contains a sdk to send requests to the Reality Modeling API, part of the iTwin platform.

iTwin.js is an open source platform for creating, querying, modifying, and displaying Infrastructure Digital Twins. To learn more about the iTwin Platform and its APIs, visit the iTwin developer portal.

## Documentation

For more information about Reality Conversion package, see [Reality Modeling APi documentation](https://developer.bentley.com/apis/contextcapture/)

## Requirements

A registered application in the iTwin Platform is needed for using the Reality Modeling Service. Documentation for registering an application can be found [here.](https://developer.bentley.com/tutorials/register-and-modify-application/) Make sure that your application has `contextcapture:read contextcapture:modify` scopes enabled. 

To use the Reality Modeling API you will need to have an access to a project. If you don't have one already, contact one of your Organization Administrators or take some time to go through the following tutorial: Create a [Project](https://developer.bentley.com/tutorials/create-and-query-projects-guide).

To build and run the Reality Modeling service, you will need [Node.js](https://nodejs.org/en/) v18 (must be greater than 18.12.x).

## Key Types and Methods

### ContextCaptureService

Serves a client wrapper to the Reality Modeling API. It contains all the necessary methods to fulfill any workflow related to create, submit and monitor Reality Analysis jobs.

- `getScopes` : returns the required scopes
- `createWorkspace` : create a workspace (required to create a Modeling job)
- `deleteWorkspace` : delete the given workspace
- `getWorkspace` : get the given workspace
- `createJob` : create a job from the given settings
- `submitJob` : submit the given job
- `cancelJob` : cancel the given job
- `deleteJob` : delete the given job
- `getJobProgress` : get the progress of the given job
- `getJobProperties` : get the properties of the given job, such as the settings, the creation date etc...
- `getJobEstimatedCost` : get the estimation cost

### CCJobType

Enumerates the current existing job types.

### CCWorkspaceProperties

Describes a workspace.

### CCCostParameters

Estimated job cost.

### CCJobProperties

Describes a job (id, name, settings, etc...)

### CCJobQuality

Generated mesh quality. Use "Draft" for testing purpose.

### CCCacheSettings

Describe how a job will use and create cache.

### CCJobSettings

Describes a job : its inputs, outputs, and other parameters.

## Usage example

An example is available to show how to create jobs and get its results. See [Reality Modeling example](./../../examples/code-samples/src/Modeling.ts)
npm package: @itwin/reality-data-transfer
Description: Utils to upload local data to context share
Author: Bentley Systems, Inc.
Latest version: 1.1.0

# @itwin/reality-data-transfer

Copyright © Bentley Systems, Incorporated. All rights reserved. See LICENSE.md for license terms and full copyright notice.

## Description

The **@itwin/reality-data-transfer** package contains a sdk to upload local data to ContextShare and download reality data. Doesn't work in a node environment.

## Requirements

A registered application in the iTwin Platform is needed for using reality data transfer package. Documentation for registering an application can be found [here.](https://developer.bentley.com/tutorials/register-and-modify-application/) Make sure that your application has `realitydata:read realitydata:modify` scopes enabled. 

To use the data transfer package, you will need to have an access to a project. If you don't have one already, contact one of your Organization Administrators or take some time to go through the following tutorial: Create a [Project](https://developer.bentley.com/tutorials/create-and-query-projects-guide).

To build and run reality data transfer, you will need [Node.js](https://nodejs.org/en/) v22 (must be greater than 22.14.x).

## Key Types and Methods

### defaultProgressHook

Sample progress hook for upload and download

### RealityDataTransferBrowser

- `setUploadHook` : Set the upload progress hook
- `setDownloadHook` : Set the download progress hook
- `getScopes` : get the required scopes to use this client.
- `downloadRealityDataBrowser` : download reality data from ProjectWise ContextShare
- `uploadRealityDataBrowser` : upload reality data to ProjectWise ContextShare

### ReferenceTableBrowser

Stores the local path and cloud id of each uploaded data. When uploading a new reality data such as context scene, it might contains local paths, which doesn't mean anything in the cloud. The reference table will check for any local path in the context scene and replace it with the corresponding cloud id.

- `save` : open a file picker and save references as txt file
- `load` : load references from selected file. Open a file picker to select the reference file
- `addReference` : add a new entry in the reference table
- `removeReference` : remove entry from the reference table
- `hasLocalPath` : check if the provided local path exists in the reference table
- `hasCloudId` : check if the provided cloud id exists in the reference table
- `getCloudIdFromLocalPath` : get a reality data id from a local path
- `getLocalPathFromCloudId` : get a local path from a reality data id

## Usage example

An example is available to show how to upload local data and download reality data. See [Reality Reality data example](./../../examples/code-samples/src/DataTransfer.ts)
npm package: @itwin/reports-config-widget-react
Description: An iTwin.js 3D Viewer Widget that interfaces with the iTwin Reporting Platform.
Author: Bentley Systems, Inc.
Latest version: 0.9.0

# @itwin/reports-config-widget-react

Copyright © Bentley Systems, Incorporated. All rights reserved.
The Reports Config widget is a UI component for iTwin Viewer applications that simplifies how users (and developers) interface with the [Reporting Platform APIs](https://developer.bentley.com/apis/insights/overview/). This widget is one piece of the Reporting story that focuses on the configuration of Reports and the extraction thereof. It complements the [Grouping & Mapping Widget](https://www.npmjs.com/package/@itwin/grouping-mapping-widget).
The reports-config-widget-react package provides a UiProvider class - `ReportsConfigProvider` - which can be passed into the `uiProviders` prop of the iTwin Viewer's `<Viewer />` component.

## Getting Started

This is not a standalone UI and requires a parent iTwin Viewer application to work as intended.
A guide on how to create a basic iTwin Viewer application can be found here: <https://www.itwinjs.org/learning/tutorials/develop-web-viewer/>.
This package provides a viewer 'widget'. Documentation on how to add a widget to your application can be found here: <https://developer.bentley.com/tutorials/itwin-viewer-hello-world/#2-your-first-ui-widget>.

## Permissions and Scopes

The SPA client used by your iTwin viewer must have the `itwin-platform` scope.

In addition, users must have the `imodels_read` and `imodels_write` [permissions](https://developer.bentley.com/apis/insights/operations/create-mapping/#authorization) assigned at either the Project or iModel level. Further instruction on how to create roles and assign permissions can be found in the [iTwin Platform Projects API documentation](https://developer.bentley.com/apis/projects/tutorials/).

## Sample usage

### Call ReportsConfigWidget.initialize() **_before_** making use of the provider

```ts
import { ReportsConfigProvider, ReportsConfigWidget } from '@itwin/reports-config-widget-react'

...

await ReportsConfigWidget.initialize(IModelApp.localization);

<Viewer
  ...
  uiProviders={[new ReportsConfigProvider()]}
/>
```
npm package: @itwin/saved-views-client
Description: ## About
Author: Bentley Systems, Inc.
Latest version: 0.6.4

# @itwin/saved-views-client

## About

This package hosts client-side code and TypeScript types for interacting with [iTwin Platform Saved Views API](https://developer.bentley.com/apis/savedviews/overview/).

## Usage

```ts
import { ITwinSavedViewsClient } from "@itwin/saved-views-client";

const client = new ITwinSavedViewsClient({
  getAccessToken: async () => "<itwin_platform_auth_token>",
});

const { savedView } = await client.getSavedViewMinimal({ savedViewId: "<saved_view_id>" });
console.log(savedView); /*
{
  id: "<saved_view_id>",
  displayName: "Saved View",
  creationTime: "2024-01-01T10:00:00.000Z",
  lastModified: "2024-01-01T10:01:00.000Z",
  groupId: undefined,
  shared: false,
  tags: [...],
  savedViewData: { itwin3dView: {...} },
  extensions: [...],
  _links: {...}
} */
```

## Contributing

 [Contributing](../../README.md#contributing).
 
---

Copyright © Bentley Systems, Incorporated. All rights reserved. See [LICENSE.md](./LICENSE.md) for license terms and full copyright notice.
npm package: @itwin/viewer-react
Description: Configurable iTwin.js viewer
Author: Bentley Systems, Inc.
Latest version: 5.0.1

# iTwin-React-Viewer

The iTwin Viewer is a configurable iTwin.js viewer that offers basic tooling and widgets out-of-the-box and can be further extended through the use of [iTwin.js UI Providers](https://www.itwinjs.org/learning/ui/augmentingui/). This package contains the base Viewer as a React component and some additional Typescript API's. In most cases, the code in this package should not be consumed directly. Rather, you should opt for the package that corresponds to your application type: [@itwin/web-viewer-react](https://www.npmjs.com/package/@itwin/web-viewer-react) or [@itwin/desktop-viewer-react](https://www.npmjs.com/package/@itwin/desktop-viewer-react).

## Development

When making changes to the src, run `npm start` in the package's root folder to enable source watching and rebuild, so the dev-server will have access to updated code on succesful code compilation.
npm package: @itwinsharelib/component-tree
Description: Build component tree simply and quickly
Author: fatalstar
Latest version: 1.0.2

# Introduction 
TODO: Give a short introduction of your project. Let this section explain the objectives or the motivation behind this project. 

# Getting Started
TODO: Guide users through getting your code up and running on their own system. In this section you can talk about:
1.	Installation process
2.	Software dependencies
3.	Latest releases
4.	API references

# Build and Test
TODO: Describe and show how to build your code and run the tests. 

# Contribute
TODO: Explain how other users and developers can contribute to make your code better. 

If you want to learn more about creating good readme files then refer the following [guidelines](https://docs.microsoft.com/en-us/azure/devops/repos/git/create-a-readme?view=azure-devops). You can also seek inspiration from the below readme files:
- [ASP.NET Core](https://github.com/aspnet/Home)
- [Visual Studio Code](https://github.com/Microsoft/vscode)
- [Chakra Core](https://github.com/Microsoft/ChakraCore)
npm package: @itwithlyam/cats
Description: Join the School of Cats.
Author: Lyam Mosnier
Latest version: 1.0.0

# Cats

**Join the school of cats!**

## Usage

```js
const Cats = require('@itwithlyam/cats')

const cat = new Cats.Cat('Name')

const dog = new Cats.Dog('Name')

console.log(cat.name)

console.log(dog.name)

dog.chase(cat)
```

### Code above returns:

Name
Name
Name is being chased by Name.

## Installation

```npm i @itwithlyam/cats```
npm package: @itwithlyam/massive
Description: Removes spaces from a string
Latest version: 3.2.2

![npm](https://img.shields.io/npm/v/@itwithlyam/massive)

# Massive

Just your normal NPM package that can do multiple things, including make a string upper or lower case, log information, and even calculate (in the future)!

## Example:

```
const massive = require('@itwithlyam/massive');

const egg = massive.big('egg is egg');

console.log(egg);

// outputs EGG IS EGG

const eggy = massive.small('EGG');

console.log(eggy);

// ouputs egg

massive.write('thing');

// outputs thing

massive.calculate(2, 3, "multiply");

// outputs 6
```

## Methods

+ massive.big("string"); - makes the string upper case (doesn't print out)
+ massive.small("string"); - makes the string lower case (doesn't print out)
+ massive.write("string"); - basically a shortcut to console.log (prints out)
+ massive.calculate(int, int, "string"); - a quick caluclator, with add, subtract, multiply and divide (prints out)

## Installation guide

```npm i --save @itwithlyam/massive```