Initial commit: notification-elements-demo app

Interactive Angular 19 demo for @sda/notification-elements-ui with
6 sections: Bell & Feed, Notification Center, Inbox, Comments &
Threads, Mention Input, and Full-Featured layout. Includes mock
data, dark mode toggle, and real-time event log.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Giuliano Silvestro
2026-02-13 21:49:19 +10:00
commit 5d0c9ec7eb
36473 changed files with 3778146 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
import { TestBed } from '@angular/core/testing';
import { <%= classify(name) %>Resolver } from './<%= dasherize(name) %>.resolver';
describe('<%= classify(name) %>Resolver', () => {
let resolver: <%= classify(name) %>Resolver;
beforeEach(() => {
TestBed.configureTestingModule({});
resolver = TestBed.inject(<%= classify(name) %>Resolver);
});
it('should be created', () => {
expect(resolver).toBeTruthy();
});
});

View File

@@ -0,0 +1,16 @@
import { Injectable } from '@angular/core';
import {
Router, Resolve,
RouterStateSnapshot,
ActivatedRouteSnapshot
} from '@angular/router';
import { Observable, of } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class <%= classify(name) %>Resolver implements Resolve<boolean> {
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {
return of(true);
}
}

View File

@@ -0,0 +1,17 @@
import { TestBed } from '@angular/core/testing';
import { ResolveFn } from '@angular/router';
import { <%= camelize(name) %>Resolver } from './<%= dasherize(name) %>.resolver';
describe('<%= camelize(name) %>Resolver', () => {
const executeResolver: ResolveFn<boolean> = (...resolverParameters) =>
TestBed.runInInjectionContext(() => <%= camelize(name) %>Resolver(...resolverParameters));
beforeEach(() => {
TestBed.configureTestingModule({});
});
it('should be created', () => {
expect(executeResolver).toBeTruthy();
});
});

View File

@@ -0,0 +1,5 @@
import { ResolveFn } from '@angular/router';
export const <%= camelize(name) %>Resolver: ResolveFn<boolean> = (route, state) => {
return true;
};

10
node_modules/@schematics/angular/resolver/index.d.ts generated vendored Executable file
View File

@@ -0,0 +1,10 @@
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.dev/license
*/
import { Rule } from '@angular-devkit/schematics';
import { Schema } from './schema';
export default function (options: Schema): Rule;

16
node_modules/@schematics/angular/resolver/index.js generated vendored Executable file
View File

@@ -0,0 +1,16 @@
"use strict";
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.dev/license
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = default_1;
const generate_from_files_1 = require("../utility/generate-from-files");
function default_1(options) {
return options.functional
? (0, generate_from_files_1.generateFromFiles)({ ...options, templateFilesDirectory: './functional-files' })
: (0, generate_from_files_1.generateFromFiles)({ ...options, templateFilesDirectory: './class-files' });
}

37
node_modules/@schematics/angular/resolver/schema.d.ts generated vendored Executable file
View File

@@ -0,0 +1,37 @@
/**
* Creates a new resolver in your project. Resolvers are used to pre-fetch data before a
* route is activated, ensuring that the necessary data is available before the component is
* displayed. This can improve the user experience by preventing delays and loading states.
* This schematic generates a new resolver with the specified name and options.
*/
export type Schema = {
/**
* Creates the new resolver files at the top level of the current project. If set to false,
* a new folder with the resolver's name will be created to contain the files.
*/
flat?: boolean;
/**
* Creates the resolver as a function `ResolveFn` instead of a class. Functional resolvers
* can be simpler for basic scenarios.
*/
functional?: boolean;
/**
* The name for the new resolver. This will be used to create the resolver's class and spec
* files (e.g., `my-resolver.resolver.ts` and `my-resolver.resolver.spec.ts`).
*/
name: string;
/**
* The path where the resolver files should be created, relative to the current workspace.
* If not provided, the resolver will be created in the current directory.
*/
path?: string;
/**
* The name of the project where the resolver should be created. If not specified, the CLI
* will determine the project from the current directory.
*/
project: string;
/**
* Skip the generation of a unit test file `spec.ts` for the new resolver.
*/
skipTests?: boolean;
};

4
node_modules/@schematics/angular/resolver/schema.js generated vendored Executable file
View File

@@ -0,0 +1,4 @@
"use strict";
// THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
// CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
Object.defineProperty(exports, "__esModule", { value: true });

51
node_modules/@schematics/angular/resolver/schema.json generated vendored Executable file
View File

@@ -0,0 +1,51 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"$id": "SchematicsAngularResolver",
"title": "Angular Resolver Options Schema",
"type": "object",
"additionalProperties": false,
"description": "Creates a new resolver in your project. Resolvers are used to pre-fetch data before a route is activated, ensuring that the necessary data is available before the component is displayed. This can improve the user experience by preventing delays and loading states. This schematic generates a new resolver with the specified name and options.",
"properties": {
"name": {
"type": "string",
"description": "The name for the new resolver. This will be used to create the resolver's class and spec files (e.g., `my-resolver.resolver.ts` and `my-resolver.resolver.spec.ts`).",
"$default": {
"$source": "argv",
"index": 0
},
"x-prompt": "What name would you like to use for the resolver?"
},
"skipTests": {
"type": "boolean",
"description": "Skip the generation of a unit test file `spec.ts` for the new resolver.",
"default": false
},
"flat": {
"type": "boolean",
"description": "Creates the new resolver files at the top level of the current project. If set to false, a new folder with the resolver's name will be created to contain the files.",
"default": true
},
"functional": {
"type": "boolean",
"description": "Creates the resolver as a function `ResolveFn` instead of a class. Functional resolvers can be simpler for basic scenarios.",
"default": true
},
"path": {
"type": "string",
"format": "path",
"$default": {
"$source": "workingDirectory"
},
"description": "The path where the resolver files should be created, relative to the current workspace. If not provided, the resolver will be created in the current directory.",
"visible": false
},
"project": {
"type": "string",
"description": "The name of the project where the resolver should be created. If not specified, the CLI will determine the project from the current directory.",
"$default": {
"$source": "projectName"
}
}
},
"required": ["name", "project"]
}