<p align="center">
  <a href="https://ui.angular-material.dev">
    <!-- <picture>
      <img src="https://github.com/user-attachments/assets/f1c70c20-3a4c-4d36-a21e-4d87cdf4f203">
    </picture> -->
    <h1 align="center">@ngm-dev/cli</h1>
  </a>
</p>

```bash
npm install @ngm-dev/cli@latest -g
```

CLI for [ui.angular-material.dev](https://ui.angular-material.dev). Used to download code from [ui.angular-material.dev](https://ui.angular-material.dev). Report bugs at [Angular-Material-Dev/community](https://github.com/Angular-Material-Dev/community/issues)

## Commands

### add

Add blocks to your project.

#### Usage

```bash
@ngm-dev/cli add [options] <blocks...>
```

#### Options

- `-E`, `--expand`: Expands the diff so you see the entire file.
- `--max-unchanged [number]`: Maximum unchanged lines that will show without being collapsed. (default: 3)
- `-A`, `--allow`: Allow @ngm-dev/cli to download code from the provided repo.
- `-y`, `--yes`: Skip confirmation prompt.
- `--verbose`: Include debug logs.
- `--cwd [path]`: The current working directory. (default: `./`)
- `--skip-asking-for-dependencies`: Skip asking for dependency installation.
- `--skip-installing-dependencies`: Skip installing dependencies.
- `--angular-version [version]`: Angular version to be used for the block generation. If not provided, it will be inferred from the project. Supported versions are: 19, 20, 21.
- `--paths <category=path,category=path>`: The paths where categories should be added to your project.
- `--token [token]`: Token to override stored authentication.
- `--username [username]`: Username to override stored authentication.

### auth

Provide a token to access https://ui.angular-material.dev

#### Usage

```bash
@ngm-dev/cli auth [options] [service]
```

#### Options

- `--logout`: Execute the logout flow.
- `--force`: Force the logout flow. Removes all the tokens for http. Useful when you create a new token or facing issues with the current token.
- `--token [token]`: The token to use for authenticating to this service. Get one from https://ui.angular-material.dev/account/tokens
- `--username [username]`: The username (or email) to use for authenticating to this service.
- `--cwd [path]`: The current working directory. (default: `./`)
- `--verbose`: Verbose output.

### exec

Execute a block as a script.

#### Usage

```bash
@ngm-dev/cli exec [options] [script]
```

#### Options

- `-A`, `--allow`: Allow @ngm-dev/cli to download code from the provided repo.
- `--verbose`: Include debug logs.
- `--cwd [path]`: The current working directory. (default: `./`)
- `--angular-version [version]`: Angular version to be used for the block generation. If not provided, it will be inferred from the project. Supported versions are: 19, 20, 21.

### init

Initializes your project with a configuration file. This command will also run `setup` command to complete the setup of your project.

#### Usage

```bash
@ngm-dev/cli init [options]
```

#### Options

- `--no-watermark`: Will not add a watermark to each file upon adding it to your project.
- `--tests`: Will include tests with the blocks.
- `--formatter <formatter>`: What formatter to use when adding or updating blocks.
- `-P`, `--project`: Takes you through the steps to initialize a project. (default: true)
- `-E`, `--expand`: Expands the diff so you see the entire file.
- `--max-unchanged [number]`: Maximum unchanged lines that will show without being collapsed. (default: 3)
- `-y`, `--yes`: Skip confirmation prompt.
- `--path [path]`: The path to install the blocks to.
- `--cwd [path]`: The current working directory. (default: `./`)
- `--verbose`: Verbose output.
- `--angular-version [version]`: Angular version to be used for the block generation. If not provided, it will be inferred from the project. Supported versions are: 19, 20, 21.

### update

Update blocks to the code in the remote repository.

#### Usage

```bash
@ngm-dev/cli update [options] [blocks...]
```

#### Options

- `--all`: Update all installed components.
- `-E`, `--expand`: Expands the diff so you see the entire file.
- `--max-unchanged [number]`: Maximum unchanged lines that will show without being collapsed. (default: 3)
- `-n`, `--no`: Do update any blocks.
- `-A`, `--allow`: Allow @ngm-dev/cli to download code from the provided repo.
- `-y`, `--yes`: Skip confirmation prompt.
- `--verbose`: Include debug logs.
- `--cwd [path]`: The current working directory. (default: `./`)
- `--skip-asking-for-dependencies`: Skip asking for dependency installation.
- `--skip-installing-dependencies`: Skip installing dependencies.
- `--angular-version [version]`: Angular version to be used for the block generation. If not provided, it will be inferred from the project. Supported versions are: 19, 20, 21.
- `--token [token]`: Token to override stored authentication.
- `--username [username]`: Username to override stored authentication.

### setup

Setup your project to be ready to use blocks from https://ui.angular-material.dev. This command will do following:

- Creates `postcssrc.json`
- Installs `tailwindcss` and `@angular/material`
- Adds needed styles in `angular.json`
- Configures Material Symbols

#### Usage

```bash
@ngm-dev/cli setup [options]
```

#### Options

- `--verbose`: Include debug logs.
- `--yes`: Skip prompts and use default options.
- `--cwd [path]`: The current working directory. (default: `./`)
- `--angular-version [version]`: Angular version to be used for the block generation. If not provided, it will be inferred from the project. Supported versions are: 19, 20, 21.


