├── 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