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,136 @@
/**
* @license Angular v19.2.18
* (c) 2010-2025 Google LLC. https://angular.io/
* License: MIT
*/
import * as i0 from '@angular/core';
import { Version, ViewEncapsulation, Injector, Compiler, Injectable, createPlatformFactory, COMPILER_OPTIONS, CompilerFactory } from '@angular/core';
import { CompilerConfig, ResourceLoader } from '@angular/compiler';
import { platformBrowser } from '@angular/platform-browser';
/**
* @module
* @description
* Entry point for all public APIs of the platform-browser-dynamic package.
*/
/**
* @publicApi
*/
const VERSION = new Version('19.2.18');
const COMPILER_PROVIDERS = [
{ provide: Compiler, useFactory: () => new Compiler() },
];
/**
* @publicApi
*
* @deprecated
* Ivy JIT mode doesn't require accessing this symbol.
*/
class JitCompilerFactory {
_defaultOptions;
/** @internal */
constructor(defaultOptions) {
const compilerOptions = {
defaultEncapsulation: ViewEncapsulation.Emulated,
};
this._defaultOptions = [compilerOptions, ...defaultOptions];
}
createCompiler(options = []) {
const opts = _mergeOptions(this._defaultOptions.concat(options));
const injector = Injector.create({
providers: [
COMPILER_PROVIDERS,
{
provide: CompilerConfig,
useFactory: () => {
return new CompilerConfig({
defaultEncapsulation: opts.defaultEncapsulation,
preserveWhitespaces: opts.preserveWhitespaces,
});
},
deps: [],
},
opts.providers,
],
});
return injector.get(Compiler);
}
}
function _mergeOptions(optionsArr) {
return {
defaultEncapsulation: _lastDefined(optionsArr.map((options) => options.defaultEncapsulation)),
providers: _mergeArrays(optionsArr.map((options) => options.providers)),
preserveWhitespaces: _lastDefined(optionsArr.map((options) => options.preserveWhitespaces)),
};
}
function _lastDefined(args) {
for (let i = args.length - 1; i >= 0; i--) {
if (args[i] !== undefined) {
return args[i];
}
}
return undefined;
}
function _mergeArrays(parts) {
const result = [];
parts.forEach((part) => part && result.push(...part));
return result;
}
class ResourceLoaderImpl extends ResourceLoader {
get(url) {
let resolve;
let reject;
const promise = new Promise((res, rej) => {
resolve = res;
reject = rej;
});
const xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'text';
xhr.onload = function () {
const response = xhr.response;
let status = xhr.status;
// fix status code when it is 0 (0 status is undocumented).
// Occurs when accessing file resources or on Android 4.1 stock browser
// while retrieving files from application cache.
if (status === 0) {
status = response ? 200 : 0;
}
if (200 <= status && status <= 300) {
resolve(response);
}
else {
reject(`Failed to load ${url}`);
}
};
xhr.onerror = function () {
reject(`Failed to load ${url}`);
};
xhr.send();
return promise;
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ResourceLoaderImpl, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ResourceLoaderImpl });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ResourceLoaderImpl, decorators: [{
type: Injectable
}] });
const INTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS = [
{
provide: COMPILER_OPTIONS,
useValue: { providers: [{ provide: ResourceLoader, useClass: ResourceLoaderImpl, deps: [] }] },
multi: true,
},
{ provide: CompilerFactory, useClass: JitCompilerFactory, deps: [COMPILER_OPTIONS] },
];
/**
* @publicApi
*/
const platformBrowserDynamic = createPlatformFactory(platformBrowser, 'browserDynamic', INTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS);
export { JitCompilerFactory, VERSION, platformBrowserDynamic, INTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS as ɵINTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS };
//# sourceMappingURL=platform-browser-dynamic.mjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,36 @@
/**
* @license Angular v19.2.18
* (c) 2010-2025 Google LLC. https://angular.io/
* License: MIT
*/
import * as i0 from '@angular/core';
import { createPlatformFactory, NgModule } from '@angular/core';
import { platformBrowserDynamic } from './platform-browser-dynamic.mjs';
import { BrowserTestingModule } from '@angular/platform-browser/testing';
import '@angular/compiler';
import '@angular/platform-browser';
/**
* @publicApi
*/
const platformBrowserDynamicTesting = createPlatformFactory(platformBrowserDynamic, 'browserDynamicTesting');
/**
* NgModule for testing.
*
* @publicApi
*/
class BrowserDynamicTestingModule {
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: BrowserDynamicTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: BrowserDynamicTestingModule, exports: [BrowserTestingModule] });
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: BrowserDynamicTestingModule, imports: [BrowserTestingModule] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: BrowserDynamicTestingModule, decorators: [{
type: NgModule,
args: [{
exports: [BrowserTestingModule],
}]
}] });
export { BrowserDynamicTestingModule, platformBrowserDynamicTesting };
//# sourceMappingURL=testing.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"testing.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-2d99d9656325/bin/packages/platform-browser-dynamic/testing/src/testing.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {createPlatformFactory, NgModule, PlatformRef, StaticProvider} from '@angular/core';\nimport {platformBrowserDynamic} from '../../index';\nimport {BrowserTestingModule} from '@angular/platform-browser/testing';\n\n/**\n * @publicApi\n */\nexport const platformBrowserDynamicTesting: (extraProviders?: StaticProvider[]) => PlatformRef =\n createPlatformFactory(platformBrowserDynamic, 'browserDynamicTesting');\n\n/**\n * NgModule for testing.\n *\n * @publicApi\n */\n@NgModule({\n exports: [BrowserTestingModule],\n})\nexport class BrowserDynamicTestingModule {}\n"],"names":[],"mappings":";;;;;;;;;;;;;AAYA;;AAEG;AACU,MAAA,6BAA6B,GACxC,qBAAqB,CAAC,sBAAsB,EAAE,uBAAuB;AAEvE;;;;AAIG;MAIU,2BAA2B,CAAA;kHAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,YAF5B,oBAAoB,CAAA,EAAA,CAAA;AAEnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,YAF5B,oBAAoB,CAAA,EAAA,CAAA;;sGAEnB,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAChC,iBAAA;;;;;"}