├── projects
├── docs
│ ├── src
│ │ ├── app
│ │ │ ├── app.html
│ │ │ ├── shared
│ │ │ │ ├── components
│ │ │ │ │ ├── tab
│ │ │ │ │ │ ├── tab.html
│ │ │ │ │ │ ├── tab.ts
│ │ │ │ │ │ └── tab.spec.ts
│ │ │ │ │ ├── footer
│ │ │ │ │ │ ├── footer.ts
│ │ │ │ │ │ ├── footer.spec.ts
│ │ │ │ │ │ └── footer.html
│ │ │ │ │ ├── tabs
│ │ │ │ │ │ ├── tabs.spec.ts
│ │ │ │ │ │ ├── tabs.ts
│ │ │ │ │ │ └── tabs.html
│ │ │ │ │ ├── header
│ │ │ │ │ │ ├── header.spec.ts
│ │ │ │ │ │ ├── header.ts
│ │ │ │ │ │ └── header.html
│ │ │ │ │ ├── sidebar
│ │ │ │ │ │ ├── sidebar.spec.ts
│ │ │ │ │ │ ├── sidebar.html
│ │ │ │ │ │ └── sidebar.ts
│ │ │ │ │ ├── quick-links
│ │ │ │ │ │ ├── quick-links.spec.ts
│ │ │ │ │ │ ├── quick-links.html
│ │ │ │ │ │ └── quick-links.ts
│ │ │ │ │ ├── component-preview
│ │ │ │ │ │ ├── component-preview.spec.ts
│ │ │ │ │ │ └── component-preview.ts
│ │ │ │ │ └── code-block
│ │ │ │ │ │ └── code-block.ts
│ │ │ │ ├── pipes
│ │ │ │ │ ├── safe-html-pipe.spec.ts
│ │ │ │ │ └── safe-html-pipe.ts
│ │ │ │ └── services
│ │ │ │ │ ├── docs-helper.service.ts
│ │ │ │ │ └── highlight-theme.service.ts
│ │ │ ├── app.routes.server.ts
│ │ │ ├── app.routes.ts
│ │ │ ├── pages
│ │ │ │ ├── docs
│ │ │ │ │ ├── dark-mode
│ │ │ │ │ │ ├── dark-mode.ts
│ │ │ │ │ │ └── dark-mode.spec.ts
│ │ │ │ │ ├── components-json
│ │ │ │ │ │ ├── components-json.ts
│ │ │ │ │ │ └── components-json.spec.ts
│ │ │ │ │ ├── cli
│ │ │ │ │ │ ├── cli.ts
│ │ │ │ │ │ ├── cli.spec.ts
│ │ │ │ │ │ └── cli.html
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── card
│ │ │ │ │ │ │ └── card.ts
│ │ │ │ │ │ ├── alert
│ │ │ │ │ │ │ ├── alert.ts
│ │ │ │ │ │ │ └── alert.spec.ts
│ │ │ │ │ │ ├── input
│ │ │ │ │ │ │ └── input.ts
│ │ │ │ │ │ ├── sheet
│ │ │ │ │ │ │ └── sheet.ts
│ │ │ │ │ │ ├── badge
│ │ │ │ │ │ │ ├── badge.ts
│ │ │ │ │ │ │ └── badge.variants.ts
│ │ │ │ │ │ ├── tabs
│ │ │ │ │ │ │ └── tabs.ts
│ │ │ │ │ │ ├── button
│ │ │ │ │ │ │ ├── button.ts
│ │ │ │ │ │ │ └── button.spec.ts
│ │ │ │ │ │ ├── switch
│ │ │ │ │ │ │ └── switch.ts
│ │ │ │ │ │ ├── toggle
│ │ │ │ │ │ │ └── toggle.ts
│ │ │ │ │ │ ├── avatar
│ │ │ │ │ │ │ ├── avatar.ts
│ │ │ │ │ │ │ └── avatar.variants.ts
│ │ │ │ │ │ ├── dialog
│ │ │ │ │ │ │ ├── dialog.ts
│ │ │ │ │ │ │ └── dialog.variants.ts
│ │ │ │ │ │ ├── label
│ │ │ │ │ │ │ └── label.ts
│ │ │ │ │ │ ├── table
│ │ │ │ │ │ │ └── table.ts
│ │ │ │ │ │ ├── popover
│ │ │ │ │ │ │ ├── popover.ts
│ │ │ │ │ │ │ └── popover.variants.ts
│ │ │ │ │ │ ├── tooltip
│ │ │ │ │ │ │ ├── tooltip.ts
│ │ │ │ │ │ │ └── tooltip.variants.ts
│ │ │ │ │ │ ├── skeleton
│ │ │ │ │ │ │ └── skeleton.ts
│ │ │ │ │ │ ├── accordion
│ │ │ │ │ │ │ └── accordion.ts
│ │ │ │ │ │ ├── progress
│ │ │ │ │ │ │ ├── progress.ts
│ │ │ │ │ │ │ └── progress.variants.ts
│ │ │ │ │ │ ├── separator
│ │ │ │ │ │ │ ├── separator.ts
│ │ │ │ │ │ │ └── separator.variants.ts
│ │ │ │ │ │ ├── checkbox
│ │ │ │ │ │ │ └── checkbox.ts
│ │ │ │ │ │ ├── textarea
│ │ │ │ │ │ │ └── textarea.ts
│ │ │ │ │ │ ├── alert-dialog
│ │ │ │ │ │ │ └── alert-dialog.ts
│ │ │ │ │ │ ├── toggle-group
│ │ │ │ │ │ │ └── toggle-group.ts
│ │ │ │ │ │ ├── breadcrumb
│ │ │ │ │ │ │ └── breadcrumb.ts
│ │ │ │ │ │ ├── radio-group
│ │ │ │ │ │ │ └── radio-group.ts
│ │ │ │ │ │ └── dropdown-menu
│ │ │ │ │ │ │ └── dropdown-menu.ts
│ │ │ │ │ ├── docs.spec.ts
│ │ │ │ │ ├── theming
│ │ │ │ │ │ └── theming.spec.ts
│ │ │ │ │ ├── docs.html
│ │ │ │ │ ├── installation
│ │ │ │ │ │ ├── installation.spec.ts
│ │ │ │ │ │ └── installation.ts
│ │ │ │ │ ├── introduction
│ │ │ │ │ │ ├── introduction.spec.ts
│ │ │ │ │ │ └── introduction.ts
│ │ │ │ │ ├── docs.routes.ts
│ │ │ │ │ └── docs.ts
│ │ │ │ ├── pages.routes.ts
│ │ │ │ └── landing
│ │ │ │ │ ├── landing.spec.ts
│ │ │ │ │ └── landing.ts
│ │ │ ├── app.ts
│ │ │ ├── app.config.server.ts
│ │ │ ├── app.spec.ts
│ │ │ └── app.config.ts
│ │ ├── main.ts
│ │ ├── main.server.ts
│ │ ├── server.ts
│ │ └── assets
│ │ │ └── styles
│ │ │ └── highlight-themes
│ │ │ ├── github.css
│ │ │ └── github-dark.css
│ ├── public
│ │ ├── favicon.ico
│ │ ├── assets
│ │ │ ├── avatar.png
│ │ │ └── og-image.png
│ │ ├── favicon-16x16.png
│ │ ├── favicon-32x32.png
│ │ ├── apple-touch-icon.png
│ │ ├── android-chrome-192x192.png
│ │ ├── android-chrome-512x512.png
│ │ ├── robots.txt
│ │ ├── sitemap.xml
│ │ └── manifest.json
│ ├── tsconfig.spec.json
│ └── tsconfig.app.json
├── cli
│ ├── schematics
│ │ ├── add
│ │ │ ├── rules
│ │ │ │ └── index.ts
│ │ │ ├── schema.ts
│ │ │ ├── schema.json
│ │ │ └── index.ts
│ │ ├── init
│ │ │ ├── schema.ts
│ │ │ ├── rules
│ │ │ │ ├── index.ts
│ │ │ │ ├── install-dependencies.ts
│ │ │ │ ├── validate-base-color.ts
│ │ │ │ ├── validate-project.ts
│ │ │ │ ├── setup-import-aliases.ts
│ │ │ │ └── setup-tailwind.ts
│ │ │ ├── index.ts
│ │ │ └── schema.json
│ │ └── collection.json
│ ├── src
│ │ ├── public-api.ts
│ │ └── lib
│ │ │ ├── cli.ts
│ │ │ └── cli.spec.ts
│ ├── ng-package.json
│ ├── tsconfig.lib.prod.json
│ ├── tsconfig.spec.json
│ ├── tsconfig.lib.json
│ ├── tsconfig.schematics.json
│ ├── package.json
│ └── README.md
└── ui
│ ├── ng-package.json
│ ├── package.json
│ ├── tsconfig.lib.prod.json
│ ├── tsconfig.spec.json
│ ├── tsconfig.lib.json
│ ├── src
│ ├── directives
│ │ ├── skeleton.ts
│ │ ├── label.ts
│ │ ├── separator.ts
│ │ ├── textarea.ts
│ │ ├── input.ts
│ │ ├── progress.ts
│ │ ├── badge.ts
│ │ ├── avatar.ts
│ │ ├── switch.ts
│ │ ├── form-field.ts
│ │ ├── checkbox.ts
│ │ ├── alert.ts
│ │ ├── toggle.ts
│ │ ├── button.ts
│ │ ├── popover.ts
│ │ ├── radio-group.ts
│ │ ├── tooltip.ts
│ │ ├── accordion.ts
│ │ ├── tabs.ts
│ │ ├── table.ts
│ │ ├── card.ts
│ │ └── breadcrumb.ts
│ └── public-api.ts
│ └── README.md
├── .postcssrc.json
├── .vscode
├── extensions.json
├── launch.json
└── tasks.json
├── .editorconfig
├── .gitignore
├── LICENSE
├── tsconfig.json
├── .github
└── workflows
│ └── deploy.yml
├── package.json
└── README.md
/projects/docs/src/app/app.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/projects/cli/schematics/add/rules/index.ts:
--------------------------------------------------------------------------------
1 | export * from './add-registry-item';
--------------------------------------------------------------------------------
/.postcssrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "plugins": {
3 | "@tailwindcss/postcss": {}
4 | }
5 | }
--------------------------------------------------------------------------------
/projects/cli/src/public-api.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * Public API Surface of cli
3 | */
4 |
5 | export * from './lib/cli';
6 |
--------------------------------------------------------------------------------
/projects/docs/src/app/shared/components/tab/tab.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/projects/docs/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angularcafe/slateui/HEAD/projects/docs/public/favicon.ico
--------------------------------------------------------------------------------
/projects/cli/schematics/add/schema.ts:
--------------------------------------------------------------------------------
1 | export interface AddRegistryItemSchema {
2 | itemName?: string;
3 | all?: boolean;
4 | }
--------------------------------------------------------------------------------
/projects/docs/public/assets/avatar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angularcafe/slateui/HEAD/projects/docs/public/assets/avatar.png
--------------------------------------------------------------------------------
/projects/docs/public/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angularcafe/slateui/HEAD/projects/docs/public/favicon-16x16.png
--------------------------------------------------------------------------------
/projects/docs/public/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angularcafe/slateui/HEAD/projects/docs/public/favicon-32x32.png
--------------------------------------------------------------------------------
/projects/docs/public/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angularcafe/slateui/HEAD/projects/docs/public/apple-touch-icon.png
--------------------------------------------------------------------------------
/projects/docs/public/assets/og-image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angularcafe/slateui/HEAD/projects/docs/public/assets/og-image.png
--------------------------------------------------------------------------------
/projects/docs/public/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angularcafe/slateui/HEAD/projects/docs/public/android-chrome-192x192.png
--------------------------------------------------------------------------------
/projects/docs/public/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angularcafe/slateui/HEAD/projects/docs/public/android-chrome-512x512.png
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846
3 | "recommendations": ["angular.ng-template"]
4 | }
5 |
--------------------------------------------------------------------------------
/projects/cli/schematics/init/schema.ts:
--------------------------------------------------------------------------------
1 | export interface Schema {
2 | baseColor: 'neutral' | 'slate' | 'zinc' | 'stone' | 'gray';
3 | project?: string;
4 | confirmOverwrite?: string;
5 | }
--------------------------------------------------------------------------------
/projects/ui/ng-package.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
3 | "dest": "../../dist/ui",
4 | "lib": {
5 | "entryFile": "src/public-api.ts"
6 | }
7 | }
--------------------------------------------------------------------------------
/projects/cli/ng-package.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
3 | "dest": "../../dist/cli",
4 | "lib": {
5 | "entryFile": "src/public-api.ts"
6 | }
7 | }
--------------------------------------------------------------------------------
/projects/docs/src/app/app.routes.server.ts:
--------------------------------------------------------------------------------
1 | import { RenderMode, ServerRoute } from '@angular/ssr';
2 |
3 | export const serverRoutes: ServerRoute[] = [
4 | {
5 | path: '**',
6 | renderMode: RenderMode.Prerender
7 | }
8 | ];
9 |
--------------------------------------------------------------------------------
/projects/cli/schematics/init/rules/index.ts:
--------------------------------------------------------------------------------
1 | export * from './validate-project';
2 | export * from './validate-base-color';
3 | export * from './install-dependencies';
4 | export * from './setup-tailwind';
5 | export * from './setup-import-aliases';
--------------------------------------------------------------------------------
/projects/docs/src/app/app.routes.ts:
--------------------------------------------------------------------------------
1 | import { Routes } from '@angular/router';
2 |
3 | export const routes: Routes = [
4 | {
5 | path: '',
6 | loadChildren: () => import('./pages/pages.routes').then(m => m.routes)
7 | }
8 | ];
9 |
--------------------------------------------------------------------------------
/projects/docs/src/app/shared/components/footer/footer.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'docs-footer',
5 | imports: [],
6 | templateUrl: './footer.html'
7 | })
8 | export class Footer {
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/projects/docs/src/main.ts:
--------------------------------------------------------------------------------
1 | import { bootstrapApplication } from '@angular/platform-browser';
2 | import { appConfig } from './app/app.config';
3 | import { App } from './app/app';
4 |
5 | bootstrapApplication(App, appConfig)
6 | .catch((err) => console.error(err));
7 |
--------------------------------------------------------------------------------
/projects/docs/src/app/shared/pipes/safe-html-pipe.spec.ts:
--------------------------------------------------------------------------------
1 | import { SafeHtmlPipe } from './safe-html-pipe';
2 |
3 | describe('SafeHtmlPipe', () => {
4 | it('create an instance', () => {
5 | const pipe = new SafeHtmlPipe();
6 | expect(pipe).toBeTruthy();
7 | });
8 | });
9 |
--------------------------------------------------------------------------------
/projects/cli/src/lib/cli.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'lib-cli',
5 | imports: [],
6 | template: `
7 |
8 | cli works!
9 |
10 | `,
11 | styles: ``
12 | })
13 | export class Cli {
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/projects/ui/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ui",
3 | "version": "0.0.1",
4 | "peerDependencies": {
5 | "@angular/common": "^20.1.0",
6 | "@angular/core": "^20.1.0"
7 | },
8 | "dependencies": {
9 | "tslib": "^2.3.0"
10 | },
11 | "sideEffects": false
12 | }
13 |
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/dark-mode/dark-mode.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'docs-dark-mode',
5 | standalone: true,
6 | imports: [],
7 | templateUrl: './dark-mode.html'
8 | })
9 | export class DarkMode {
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/projects/docs/src/main.server.ts:
--------------------------------------------------------------------------------
1 | import { bootstrapApplication } from '@angular/platform-browser';
2 | import { App } from './app/app';
3 | import { config } from './app/app.config.server';
4 |
5 | const bootstrap = () => bootstrapApplication(App, config);
6 |
7 | export default bootstrap;
8 |
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/components-json/components-json.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'docs-components-json',
5 | standalone: true,
6 | imports: [],
7 | templateUrl: './components-json.html'
8 | })
9 | export class ComponentsJson {
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/cli/cli.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 | import { CodeBlock } from '../../../shared/components/code-block/code-block';
3 |
4 | @Component({
5 | selector: 'docs-cli',
6 | standalone: true,
7 | imports: [CodeBlock],
8 | templateUrl: './cli.html'
9 | })
10 | export class Cli {
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/projects/docs/public/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Allow: /
3 |
4 | # Sitemap
5 | Sitemap: https://slateui.dev/sitemap.xml
6 |
7 | # Disallow admin or private areas (if any)
8 | Disallow: /admin/
9 | Disallow: /private/
10 |
11 | # Allow important directories
12 | Allow: /docs/
13 | Allow: /components/
14 | Allow: /assets/
15 |
16 | # Crawl delay (optional)
17 | Crawl-delay: 1
18 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | # Editor configuration, see https://editorconfig.org
2 | root = true
3 |
4 | [*]
5 | charset = utf-8
6 | indent_style = space
7 | indent_size = 2
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
11 | [*.ts]
12 | quote_type = single
13 | ij_typescript_use_double_quotes = false
14 |
15 | [*.md]
16 | max_line_length = off
17 | trim_trailing_whitespace = false
18 |
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/pages.routes.ts:
--------------------------------------------------------------------------------
1 | import { Routes } from '@angular/router';
2 |
3 | export const routes: Routes = [
4 | {
5 | path: '',
6 | loadComponent: () => import('./landing/landing').then(m => m.Landing)
7 | },
8 | {
9 | path: 'docs',
10 | loadChildren: () => import('./docs/docs.routes').then(m => m.routes)
11 | },
12 | {
13 | path: '**',
14 | redirectTo: ''
15 | }
16 | ];
17 |
--------------------------------------------------------------------------------
/projects/cli/tsconfig.lib.prod.json:
--------------------------------------------------------------------------------
1 | /* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
2 | /* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
3 | {
4 | "extends": "./tsconfig.lib.json",
5 | "compilerOptions": {
6 | "declarationMap": false
7 | },
8 | "angularCompilerOptions": {
9 | "compilationMode": "partial"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/projects/docs/src/app/shared/pipes/safe-html-pipe.ts:
--------------------------------------------------------------------------------
1 | import { inject, Pipe, PipeTransform } from '@angular/core';
2 | import { DomSanitizer } from '@angular/platform-browser';
3 |
4 | @Pipe({
5 | name: 'safeHtml'
6 | })
7 | export class SafeHtmlPipe implements PipeTransform {
8 | private sanitizer = inject(DomSanitizer);
9 | transform(value: string, ...args: unknown[]): unknown {
10 | return this.sanitizer.bypassSecurityTrustHtml(value);;
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/projects/ui/tsconfig.lib.prod.json:
--------------------------------------------------------------------------------
1 | /* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
2 | /* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
3 | {
4 | "extends": "./tsconfig.lib.json",
5 | "compilerOptions": {
6 | "declarationMap": false
7 | },
8 | "angularCompilerOptions": {
9 | "compilationMode": "partial"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/projects/cli/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | /* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
2 | /* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
3 | {
4 | "extends": "../../tsconfig.json",
5 | "compilerOptions": {
6 | "outDir": "../../out-tsc/spec",
7 | "types": [
8 | "jasmine"
9 | ]
10 | },
11 | "include": [
12 | "src/**/*.ts"
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------
/projects/docs/src/app/app.ts:
--------------------------------------------------------------------------------
1 | import { Component, signal, inject } from '@angular/core';
2 | import { RouterOutlet } from '@angular/router';
3 | import { HighlightThemeService } from './shared/services/highlight-theme.service';
4 |
5 | @Component({
6 | selector: 'app-root',
7 | imports: [RouterOutlet],
8 | templateUrl: './app.html'
9 | })
10 | export class App {
11 | // Inject the service to ensure it's initialized
12 | private highlightThemeService = inject(HighlightThemeService);
13 | }
14 |
--------------------------------------------------------------------------------
/projects/ui/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | /* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
2 | /* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
3 | {
4 | "extends": "../../tsconfig.json",
5 | "compilerOptions": {
6 | "outDir": "../../out-tsc/spec",
7 | "types": [
8 | "jasmine"
9 | ]
10 | },
11 | "include": [
12 | "src/**/*.ts"
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------
/projects/docs/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | /* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
2 | /* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
3 | {
4 | "extends": "../../tsconfig.json",
5 | "compilerOptions": {
6 | "outDir": "../../out-tsc/spec",
7 | "types": [
8 | "jasmine"
9 | ]
10 | },
11 | "include": [
12 | "src/**/*.ts"
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------
/projects/docs/src/app/app.config.server.ts:
--------------------------------------------------------------------------------
1 | import { mergeApplicationConfig, ApplicationConfig } from '@angular/core';
2 | import { provideServerRendering, withRoutes } from '@angular/ssr';
3 | import { appConfig } from './app.config';
4 | import { serverRoutes } from './app.routes.server';
5 |
6 | const serverConfig: ApplicationConfig = {
7 | providers: [
8 | provideServerRendering(withRoutes(serverRoutes))
9 | ]
10 | };
11 |
12 | export const config = mergeApplicationConfig(appConfig, serverConfig);
13 |
--------------------------------------------------------------------------------
/projects/docs/tsconfig.app.json:
--------------------------------------------------------------------------------
1 | /* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
2 | /* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
3 | {
4 | "extends": "../../tsconfig.json",
5 | "compilerOptions": {
6 | "outDir": "../../out-tsc/app",
7 | "types": [
8 | "node"
9 | ]
10 | },
11 | "include": [
12 | "src/**/*.ts"
13 | ],
14 | "exclude": [
15 | "src/**/*.spec.ts"
16 | ]
17 | }
18 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
3 | "version": "0.2.0",
4 | "configurations": [
5 | {
6 | "name": "ng serve",
7 | "type": "chrome",
8 | "request": "launch",
9 | "preLaunchTask": "npm: start",
10 | "url": "http://localhost:4200/"
11 | },
12 | {
13 | "name": "ng test",
14 | "type": "chrome",
15 | "request": "launch",
16 | "preLaunchTask": "npm: test",
17 | "url": "http://localhost:9876/debug.html"
18 | }
19 | ]
20 | }
21 |
--------------------------------------------------------------------------------
/projects/cli/schematics/collection.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json",
3 | "schematics": {
4 | "init": {
5 | "description": "Initialize SlateUI in your Angular project with base color selection.",
6 | "factory": "./init/index#init",
7 | "schema": "./init/schema.json"
8 | },
9 | "add": {
10 | "description": "Add SlateUI directives from the official registry. Use --all to add all directives.",
11 | "factory": "./add/index#add",
12 | "schema": "./add/schema.json"
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/projects/cli/schematics/init/rules/install-dependencies.ts:
--------------------------------------------------------------------------------
1 | import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics';
2 | import { NodePackageInstallTask } from '@angular-devkit/schematics/tasks';
3 |
4 | export function installDependencies(): Rule {
5 | return async (tree: Tree, context: SchematicContext) => {
6 | context.addTask(new NodePackageInstallTask({
7 | packageName: '@angular/cdk @floating-ui/dom ng-primitives tailwind-variants tailwind-merge tw-animate-css tailwindcss @tailwindcss/postcss postcss'
8 | }));
9 |
10 | return tree;
11 | };
12 | }
--------------------------------------------------------------------------------
/projects/docs/src/app/shared/components/tab/tab.ts:
--------------------------------------------------------------------------------
1 | import { Component, input, TemplateRef, viewChild } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'docs-tab',
5 | imports: [],
6 | templateUrl: './tab.html'
7 | })
8 | export class Tab {
9 | /**
10 | * The value of the tab.
11 | */
12 | readonly value = input();
13 |
14 | /**
15 | * The label of the tab.
16 | */
17 | readonly label = input();
18 |
19 | /**
20 | * The content of the tab.
21 | */
22 | readonly content = viewChild.required>('content');
23 | }
24 |
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/components/card/card.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 | import { ComponentPreview } from '@components/component-preview/component-preview';
3 | import { cardVariants, cardMeta } from './card.variants';
4 |
5 | @Component({
6 | selector: 'docs-card',
7 | imports: [ComponentPreview],
8 | template: `
9 |
12 |
13 | `
14 | })
15 | export class Card {
16 | cardMeta = cardMeta;
17 | cardVariants = cardVariants;
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/components/alert/alert.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 | import { ComponentPreview } from '@components/component-preview/component-preview';
3 | import { alertVariants, alertMeta } from './alert.variants';
4 |
5 | @Component({
6 | selector: 'docs-alert',
7 | imports: [ComponentPreview],
8 | template: `
9 |
12 |
13 | `
14 | })
15 | export class Alert {
16 | alertMeta = alertMeta;
17 | alertVariants = alertVariants;
18 | }
19 |
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/components/input/input.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 | import { ComponentPreview } from '@components/component-preview/component-preview';
3 | import { inputVariants, inputMeta } from './input.variants';
4 |
5 | @Component({
6 | selector: 'docs-input',
7 | imports: [ComponentPreview],
8 | template: `
9 |
12 |
13 | `
14 | })
15 | export class Input {
16 | inputMeta = inputMeta;
17 | inputVariants = inputVariants;
18 | }
19 |
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/components/sheet/sheet.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 | import { ComponentPreview } from '@components/component-preview/component-preview';
3 | import { sheetVariants, sheetMeta } from './sheet.variants';
4 |
5 | @Component({
6 | selector: 'docs-sheet',
7 | imports: [ComponentPreview],
8 | template: `
9 |
12 |
13 | `
14 | })
15 | export class Sheet {
16 | sheetMeta = sheetMeta;
17 | sheetVariants = sheetVariants;
18 | }
19 |
--------------------------------------------------------------------------------
/projects/ui/tsconfig.lib.json:
--------------------------------------------------------------------------------
1 | /* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
2 | /* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
3 | {
4 | "extends": "../../tsconfig.json",
5 | "compilerOptions": {
6 | "outDir": "../../out-tsc/lib",
7 | "declaration": true,
8 | "declarationMap": true,
9 | "inlineSources": true,
10 | "types": []
11 | },
12 | "include": [
13 | "src/**/*.ts"
14 | ],
15 | "exclude": [
16 | "**/*.spec.ts"
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/projects/cli/tsconfig.lib.json:
--------------------------------------------------------------------------------
1 | /* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
2 | /* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
3 | {
4 | "extends": "../../tsconfig.json",
5 | "compilerOptions": {
6 | "outDir": "../../out-tsc/lib",
7 | "declaration": true,
8 | "declarationMap": true,
9 | "inlineSources": true,
10 | "types": []
11 | },
12 | "include": [
13 | "src/**/*.ts"
14 | ],
15 | "exclude": [
16 | "**/*.spec.ts"
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/components/badge/badge.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 | import { ComponentPreview } from '@components/component-preview/component-preview';
3 | import { badgeVariants, badgeMeta } from './badge.variants';
4 |
5 | @Component({
6 | selector: 'docs-badge',
7 | imports: [ComponentPreview],
8 | template: `
9 |
12 |
13 | `
14 | })
15 | export class Badge {
16 | badgeMeta = badgeMeta;
17 | badgeVariants = badgeVariants;
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/components/tabs/tabs.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 | import { ComponentPreview } from '@components/component-preview/component-preview';
3 | import { tabsVariants, tabsMeta } from './tabs.variants';
4 |
5 | @Component({
6 | selector: 'docs-tabs',
7 | standalone: true,
8 | imports: [ComponentPreview],
9 | template: `
10 |
13 |
14 | `
15 | })
16 | export class Tabs {
17 | tabsMeta = tabsMeta;
18 | tabsVariants = tabsVariants;
19 | }
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/components/button/button.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 | import { ComponentPreview } from '@components/component-preview/component-preview';
3 | import { buttonVariants, buttonMeta } from './button.variants';
4 |
5 | @Component({
6 | selector: 'docs-button',
7 | imports: [ComponentPreview],
8 | template: `
9 |
12 |
13 | `
14 | })
15 | export class Button {
16 | buttonMeta = buttonMeta;
17 | buttonVariants = buttonVariants;
18 | }
19 |
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/components/switch/switch.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 | import { ComponentPreview } from '@components/component-preview/component-preview';
3 | import { switchVariants, switchMeta } from './switch.variants';
4 |
5 | @Component({
6 | selector: 'docs-switch',
7 | imports: [ComponentPreview],
8 | template: `
9 |
12 |
13 | `
14 | })
15 | export class Switch {
16 | switchMeta = switchMeta;
17 | switchVariants = switchVariants;
18 | }
19 |
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/components/toggle/toggle.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 | import { ComponentPreview } from '@components/component-preview/component-preview';
3 | import { toggleVariants, toggleMeta } from './toggle.variants';
4 |
5 | @Component({
6 | selector: 'docs-toggle',
7 | imports: [ComponentPreview],
8 | template: `
9 |
12 |
13 | `
14 | })
15 | export class Toggle {
16 | toggleMeta = toggleMeta;
17 | toggleVariants = toggleVariants;
18 | }
19 |
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/components/avatar/avatar.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 | import { ComponentPreview } from '@components/component-preview/component-preview';
3 | import { avatarVariants, avatarMeta } from './avatar.variants';
4 |
5 | @Component({
6 | selector: 'docs-avatar',
7 | imports: [ComponentPreview],
8 | template: `
9 |
12 |
13 | `
14 | })
15 | export class Avatar {
16 | avatarMeta = avatarMeta;
17 | avatarVariants = avatarVariants;
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/components/dialog/dialog.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 | import { ComponentPreview } from '@components/component-preview/component-preview';
3 | import { dialogVariants, dialogMeta } from './dialog.variants';
4 |
5 | @Component({
6 | selector: 'docs-dialog',
7 | imports: [ComponentPreview],
8 | template: `
9 |
12 |
13 | `
14 | })
15 | export class Dialog {
16 | dialogMeta = dialogMeta;
17 | dialogVariants = dialogVariants;
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/components/label/label.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 | import { ComponentPreview } from '@components/component-preview/component-preview';
3 | import { labelVariants, labelMeta } from './label.variants';
4 |
5 | @Component({
6 | selector: 'docs-label',
7 | standalone: true,
8 | imports: [ComponentPreview],
9 | template: `
10 |
13 |
14 | `
15 | })
16 | export class Label {
17 | labelMeta = labelMeta;
18 | labelVariants = labelVariants;
19 | }
--------------------------------------------------------------------------------
/projects/cli/src/lib/cli.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { Cli } from './cli';
4 |
5 | describe('Cli', () => {
6 | let component: Cli;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | imports: [Cli]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(Cli);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/components/table/table.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 | import { ComponentPreview } from '@components/component-preview/component-preview';
3 | import { tableVariants, tableMeta } from './table.variants';
4 |
5 | @Component({
6 | selector: 'docs-table',
7 | standalone: true,
8 | imports: [ComponentPreview],
9 | template: `
10 |
13 |
14 | `
15 | })
16 | export class Table {
17 | tableMeta = tableMeta;
18 | tableVariants = tableVariants;
19 | }
20 |
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/components/popover/popover.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 | import { ComponentPreview } from '@components/component-preview/component-preview';
3 | import { popoverVariants, popoverMeta } from './popover.variants';
4 |
5 | @Component({
6 | selector: 'docs-popover',
7 | imports: [ComponentPreview],
8 | template: `
9 |
12 |
13 | `
14 | })
15 | export class Popover {
16 | popoverMeta = popoverMeta;
17 | popoverVariants = popoverVariants;
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/components/tooltip/tooltip.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 | import { ComponentPreview } from '@components/component-preview/component-preview';
3 | import { tooltipVariants, tooltipMeta } from './tooltip.variants';
4 |
5 | @Component({
6 | selector: 'docs-tooltip',
7 | imports: [ComponentPreview],
8 | template: `
9 |
12 |
13 | `
14 | })
15 | export class Tooltip {
16 | tooltipMeta = tooltipMeta;
17 | tooltipVariants = tooltipVariants;
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/components/skeleton/skeleton.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 | import { ComponentPreview } from '@components/component-preview/component-preview';
3 | import { skeletonVariants, skeletonMeta } from './skeleton.variants';
4 |
5 | @Component({
6 | selector: 'docs-skeleton',
7 | imports: [ComponentPreview],
8 | template: `
9 |
12 |
13 | `
14 | })
15 | export class Skeleton {
16 | skeletonMeta = skeletonMeta;
17 | skeletonVariants = skeletonVariants;
18 | }
19 |
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/cli/cli.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { Cli } from './cli';
4 |
5 | describe('Cli', () => {
6 | let component: Cli;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | imports: [Cli]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(Cli);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/projects/cli/schematics/add/schema.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "http://json-schema.org/schema",
3 | "$id": "AddRegistryItem",
4 | "title": "Add Registry Item Options Schema",
5 | "type": "object",
6 | "properties": {
7 | "itemName": {
8 | "type": "string",
9 | "description": "The name of the SlateUI directive to add (e.g., button, badge, accordion).",
10 | "$default": {
11 | "$source": "argv",
12 | "index": 0
13 | }
14 | },
15 | "all": {
16 | "type": "boolean",
17 | "description": "Add all available SlateUI directives from the registry.",
18 | "default": false
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/docs.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { Docs } from './docs';
4 |
5 | describe('Docs', () => {
6 | let component: Docs;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | imports: [Docs]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(Docs);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/projects/docs/src/app/shared/components/tab/tab.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { Tab } from './tab';
4 |
5 | describe('Tab', () => {
6 | let component: Tab;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | imports: [Tab]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(Tab);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/components/accordion/accordion.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 | import { ComponentPreview } from '@components/component-preview/component-preview';
3 | import { accordionVariants, accordionMeta } from './accordion.variants';
4 |
5 | @Component({
6 | selector: 'docs-accordion',
7 | imports: [ComponentPreview],
8 | template: `
9 |
12 |
13 | `
14 | })
15 | export class Accordion {
16 | accordionMeta = accordionMeta;
17 | accordionVariants = accordionVariants;
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/components/progress/progress.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 | import { ComponentPreview } from '@components/component-preview/component-preview';
3 | import { progressVariants, progressMeta } from './progress.variants';
4 |
5 | @Component({
6 | selector: 'docs-progress',
7 | standalone: true,
8 | imports: [ComponentPreview],
9 | template: `
10 |
13 |
14 | `
15 | })
16 | export class Progress {
17 | progressMeta = progressMeta;
18 | progressVariants = progressVariants;
19 | }
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/components/separator/separator.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 | import { ComponentPreview } from '@components/component-preview/component-preview';
3 | import { separatorVariants, separatorMeta } from './separator.variants';
4 |
5 | @Component({
6 | selector: 'docs-separator',
7 | imports: [ComponentPreview],
8 | template: `
9 |
12 |
13 | `
14 | })
15 | export class Separator {
16 | separatorMeta = separatorMeta;
17 | separatorVariants = separatorVariants;
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/projects/docs/src/app/shared/components/tabs/tabs.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { Tabs } from './tabs';
4 |
5 | describe('Tabs', () => {
6 | let component: Tabs;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | imports: [Tabs]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(Tabs);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/projects/ui/src/directives/skeleton.ts:
--------------------------------------------------------------------------------
1 | import { computed, Directive, input } from "@angular/core";
2 | import { tv } from "tailwind-variants";
3 |
4 | const skeletonVariants = tv({
5 | slots: {
6 | skeleton: 'bg-accent animate-pulse rounded-md'
7 | }
8 | });
9 |
10 | const { skeleton } = skeletonVariants();
11 |
12 | @Directive({
13 | selector: '[uiSkeleton]',
14 | exportAs: 'uiSkeleton',
15 | host: {
16 | '[class]': 'computedClass()'
17 | }
18 | })
19 | export class UiSkeleton {
20 | inputClass = input('', { alias: 'class' });
21 | computedClass = computed(() => skeleton({ class: this.inputClass() }));
22 | }
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/components/checkbox/checkbox.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 | import { ComponentPreview } from '@components/component-preview/component-preview';
3 | import { checkboxVariants, checkboxMeta } from './checkbox.variants';
4 |
5 | @Component({
6 | selector: 'docs-checkbox',
7 | standalone: true,
8 | imports: [ComponentPreview],
9 | template: `
10 |
13 |
14 | `
15 | })
16 | export class Checkbox {
17 | checkboxMeta = checkboxMeta;
18 | checkboxVariants = checkboxVariants;
19 | }
20 |
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/components/textarea/textarea.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 | import { ComponentPreview } from '@components/component-preview/component-preview';
3 | import { textareaVariants, textareaMeta } from './textarea.variants';
4 |
5 | @Component({
6 | selector: 'docs-textarea',
7 | standalone: true,
8 | imports: [ComponentPreview],
9 | template: `
10 |
13 |
14 | `
15 | })
16 | export class Textarea {
17 | textareaMeta = textareaMeta;
18 | textareaVariants = textareaVariants;
19 | }
20 |
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/components/alert/alert.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { Alert } from './alert';
4 |
5 | describe('Alert', () => {
6 | let component: Alert;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | imports: [Alert]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(Alert);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/landing/landing.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { Landing } from './landing';
4 |
5 | describe('Landing', () => {
6 | let component: Landing;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | imports: [Landing]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(Landing);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/projects/docs/src/app/pages/docs/theming/theming.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { Theming } from './theming';
4 |
5 | describe('Theming', () => {
6 | let component: Theming;
7 | let fixture: ComponentFixture;
8 |
9 | beforeEach(async () => {
10 | await TestBed.configureTestingModule({
11 | imports: [Theming]
12 | })
13 | .compileComponents();
14 |
15 | fixture = TestBed.createComponent(Theming);
16 | component = fixture.componentInstance;
17 | fixture.detectChanges();
18 | });
19 |
20 | it('should create', () => {
21 | expect(component).toBeTruthy();
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/projects/docs/src/app/shared/components/footer/footer.spec.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture, TestBed } from '@angular/core/testing';
2 |
3 | import { Footer } from './footer';
4 |
5 | describe('Footer', () => {
6 | let component: Footer;
7 | let fixture: ComponentFixture