@ng-zen/cli 20.3.0-next.3 β 20.4.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +41 -0
- package/README.md +2 -1
- package/package.json +36 -9
- package/schematics/components/files/alert/alert.scss +39 -0
- package/schematics/components/files/alert/alert.spec.ts +22 -0
- package/schematics/components/files/alert/alert.stories.ts +67 -0
- package/schematics/components/files/alert/alert.ts +47 -0
- package/schematics/components/files/alert/index.ts +1 -0
- package/schematics/components/schema.js.map +1 -1
- package/schematics/components/schema.json +2 -1
- package/schematics/components/schema.ts +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,44 @@
|
|
|
1
|
+
## [20.4.0-next.1](https://github.com/kstepien3/ng-zen/compare/v20.3.0...v20.4.0-next.1) (2025-10-03)
|
|
2
|
+
|
|
3
|
+
### π New Features
|
|
4
|
+
|
|
5
|
+
* **alert:** add component ([#337](https://github.com/kstepien3/ng-zen/issues/337)) ([bc59953](https://github.com/kstepien3/ng-zen/commit/bc59953dc263561b0a8fb4e3fd0e753c1c14df77))
|
|
6
|
+
|
|
7
|
+
### π Bug Fixes
|
|
8
|
+
|
|
9
|
+
* **alert:** update icon selector ([#338](https://github.com/kstepien3/ng-zen/issues/338)) ([99b9d63](https://github.com/kstepien3/ng-zen/commit/99b9d63e0bbd9ef4dc61672b2b1b393ecd26c406))
|
|
10
|
+
|
|
11
|
+
### π Documentation
|
|
12
|
+
|
|
13
|
+
* **seo:** add seo features ([#332](https://github.com/kstepien3/ng-zen/issues/332)) ([3afc125](https://github.com/kstepien3/ng-zen/commit/3afc12595d39ae8ffad8223e787862d143ec9b6a))
|
|
14
|
+
|
|
15
|
+
## [20.3.0](https://github.com/kstepien3/ng-zen/compare/v20.2.1...v20.3.0) (2025-09-21)
|
|
16
|
+
|
|
17
|
+
### π New Features
|
|
18
|
+
|
|
19
|
+
* **switch:** add animations ([#303](https://github.com/kstepien3/ng-zen/issues/303)) ([6b48d4f](https://github.com/kstepien3/ng-zen/commit/6b48d4f39db1e5bfe22920fa749b652ac65e4432))
|
|
20
|
+
|
|
21
|
+
### π Bug Fixes
|
|
22
|
+
|
|
23
|
+
* **avatar:** improve css variables ([#323](https://github.com/kstepien3/ng-zen/issues/323)) ([eef614a](https://github.com/kstepien3/ng-zen/commit/eef614a0e2060fe32f72e00809b66009ae24832f))
|
|
24
|
+
* **input:** resolve problem with wrong variables ([#322](https://github.com/kstepien3/ng-zen/issues/322)) ([30f5d10](https://github.com/kstepien3/ng-zen/commit/30f5d10c4c559f01ed3445b77e174340b4f2fb6f))
|
|
25
|
+
|
|
26
|
+
### π οΈ Code Refactor
|
|
27
|
+
|
|
28
|
+
* **button:** improve css variables ([#321](https://github.com/kstepien3/ng-zen/issues/321)) ([4ed1310](https://github.com/kstepien3/ng-zen/commit/4ed1310450dde749164c419ec6b5da0a4fbb98bc))
|
|
29
|
+
* **checkbox:** improve css variables ([#317](https://github.com/kstepien3/ng-zen/issues/317)) ([bbe1437](https://github.com/kstepien3/ng-zen/commit/bbe143704163394a9c9ce446aa9d749a57f9c62c))
|
|
30
|
+
* **divider:** improve css variables ([#316](https://github.com/kstepien3/ng-zen/issues/316)) ([7a19ce7](https://github.com/kstepien3/ng-zen/commit/7a19ce72db58e8d23a4786aae2787db6bcfdbf6d))
|
|
31
|
+
* **input:** improve css variables ([#314](https://github.com/kstepien3/ng-zen/issues/314)) ([58cdbb3](https://github.com/kstepien3/ng-zen/commit/58cdbb3bafb9c10057b75d73c7234247e519c97e))
|
|
32
|
+
* **skeleton:** improve css variables ([#313](https://github.com/kstepien3/ng-zen/issues/313)) ([9f0c8fd](https://github.com/kstepien3/ng-zen/commit/9f0c8fd1b23172fa5bb9bf9f42b6739c7b232876))
|
|
33
|
+
* **switch:** improve styles, css variables ([#304](https://github.com/kstepien3/ng-zen/issues/304)) ([3c04b87](https://github.com/kstepien3/ng-zen/commit/3c04b8754cd25af8cfc0c0ffa89ac8633de33145))
|
|
34
|
+
* **textarea:** improve css variables ([#305](https://github.com/kstepien3/ng-zen/issues/305)) ([a9b412c](https://github.com/kstepien3/ng-zen/commit/a9b412c8ab1f77ba3d602384c963aade62308e6b))
|
|
35
|
+
|
|
36
|
+
### π Documentation
|
|
37
|
+
|
|
38
|
+
* **README.md:** fix links ([#302](https://github.com/kstepien3/ng-zen/issues/302)) ([089587c](https://github.com/kstepien3/ng-zen/commit/089587c2ecbb8c27492bc34abd4896e7842e7d04))
|
|
39
|
+
* **storybook:** add brand theme ([#325](https://github.com/kstepien3/ng-zen/issues/325)) ([97458f8](https://github.com/kstepien3/ng-zen/commit/97458f89de18896595a30f2a33ae93bb5ef75ac5))
|
|
40
|
+
* **textarea:** update jsdoc about css variables ([#311](https://github.com/kstepien3/ng-zen/issues/311)) ([6ceabb5](https://github.com/kstepien3/ng-zen/commit/6ceabb58e6549e87bdbbe3b3b2f6e2e0928ab49b))
|
|
41
|
+
|
|
1
42
|
## [20.3.0-next.3](https://github.com/kstepien3/ng-zen/compare/v20.3.0-next.2...v20.3.0-next.3) (2025-09-15)
|
|
2
43
|
|
|
3
44
|
### π Bug Fixes
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
<a href="https://kstepien3.github.io/ng-zen/">
|
|
3
|
-
<img src="https://raw.githubusercontent.com/kstepien3/ng-zen/master/
|
|
3
|
+
<img src="https://raw.githubusercontent.com/kstepien3/ng-zen/master/assets/logo.png" alt="@ng-zen/cli Logo" width="256" />
|
|
4
4
|
</a>
|
|
5
5
|
|
|
6
6
|
<h1>@ng-zen/cli</h1>
|
|
@@ -117,6 +117,7 @@ pnpm add -D @ng-zen/cli@next
|
|
|
117
117
|
| Component | Description | Features |
|
|
118
118
|
| ---------------- | -------------------------------- | -------------------------------------------------- |
|
|
119
119
|
| **Avatar** | User profile images and initials | Image fallback, size variants, rounded styles |
|
|
120
|
+
| **Alert** | Informational messages | Customizable styles, dismissible options |
|
|
120
121
|
| **Button** | Interactive buttons | Primary/secondary variants, loading states, icons |
|
|
121
122
|
| **Checkbox** | Form checkboxes | Indeterminate state, custom styling, validation |
|
|
122
123
|
| **Divider** | Visual separators | Horizontal/vertical, with labels, custom thickness |
|
package/package.json
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ng-zen/cli",
|
|
3
|
-
"version": "20.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "20.4.0-next.1",
|
|
4
|
+
"description": "Angular UI components generator β Zen UI Kit CLI for schematics-based creation of customizable components like avatar, button, checkbox, divider, form-control, icon, input, skeleton, switch, textarea with Storybook demos.",
|
|
5
5
|
"license": "BSD-2-Clause",
|
|
6
6
|
"private": false,
|
|
7
7
|
"repository": {
|
|
8
|
+
"type": "git",
|
|
8
9
|
"url": "git+https://github.com/kstepien3/ng-zen.git"
|
|
9
10
|
},
|
|
10
11
|
"bugs": {
|
|
@@ -18,16 +19,42 @@
|
|
|
18
19
|
"homepage": "https://kstepien3.github.io/ng-zen/",
|
|
19
20
|
"keywords": [
|
|
20
21
|
"angular",
|
|
22
|
+
"angular-ui",
|
|
23
|
+
"ui-kit",
|
|
24
|
+
"angular-components",
|
|
21
25
|
"schematics",
|
|
22
|
-
"
|
|
23
|
-
"angular
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
+
"ng-cli",
|
|
27
|
+
"storybook angular",
|
|
28
|
+
"customizable ui",
|
|
29
|
+
"angular library",
|
|
26
30
|
"avatar",
|
|
27
31
|
"button",
|
|
28
32
|
"checkbox",
|
|
29
33
|
"input",
|
|
30
|
-
"textarea"
|
|
34
|
+
"textarea",
|
|
35
|
+
"switch",
|
|
36
|
+
"skeleton",
|
|
37
|
+
"divider",
|
|
38
|
+
"form-control",
|
|
39
|
+
"icon",
|
|
40
|
+
"angular ui",
|
|
41
|
+
"angular components",
|
|
42
|
+
"ui library",
|
|
43
|
+
"zen ui",
|
|
44
|
+
"storybook",
|
|
45
|
+
"component generator",
|
|
46
|
+
"ng add",
|
|
47
|
+
"angular kit",
|
|
48
|
+
"open source",
|
|
49
|
+
"modern angular",
|
|
50
|
+
"angular custom elements",
|
|
51
|
+
"storybook angular",
|
|
52
|
+
"form controls",
|
|
53
|
+
"material alternative",
|
|
54
|
+
"accessibility",
|
|
55
|
+
"theming",
|
|
56
|
+
"angular schematics generator",
|
|
57
|
+
"ui components cli"
|
|
31
58
|
],
|
|
32
59
|
"ng-add": {
|
|
33
60
|
"save": "devDependencies"
|
|
@@ -39,8 +66,8 @@
|
|
|
39
66
|
"@angular/core": ">=20.0.0"
|
|
40
67
|
},
|
|
41
68
|
"dependencies": {
|
|
42
|
-
"@angular-devkit/core": "^20.
|
|
43
|
-
"@angular-devkit/schematics": "^20.
|
|
69
|
+
"@angular-devkit/core": "^20.3.2",
|
|
70
|
+
"@angular-devkit/schematics": "^20.3.2",
|
|
44
71
|
"tslib": "^2.8.1"
|
|
45
72
|
}
|
|
46
73
|
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// Globals
|
|
2
|
+
$transition-duration: var(--zen-transition-duration, 0.4s);
|
|
3
|
+
$outline: var(--zen-outline, 2px solid hsl(200deg 100% 50% / 50%));
|
|
4
|
+
|
|
5
|
+
:host {
|
|
6
|
+
--zen-alert-padding: 1rem;
|
|
7
|
+
--zen-alert-bg-color: hsl(0deg 0% 100%);
|
|
8
|
+
--zen-alert-color: hsl(0deg 0% 0%);
|
|
9
|
+
--zen-alert-border: 1px solid hsl(0deg 0% 80%);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/* stylelint-disable-next-line no-duplicate-selectors -- separate variables and styles */
|
|
13
|
+
:host {
|
|
14
|
+
padding: var(--zen-alert-padding);
|
|
15
|
+
background-color: var(--zen-alert-bg-color);
|
|
16
|
+
color: var(--zen-alert-color);
|
|
17
|
+
border: var(--zen-alert-border);
|
|
18
|
+
border-radius: 0.625rem;
|
|
19
|
+
font-size: 14px;
|
|
20
|
+
transition-property: background-color, opacity;
|
|
21
|
+
transition-duration: $transition-duration;
|
|
22
|
+
transition-timing-function: ease;
|
|
23
|
+
display: flex;
|
|
24
|
+
align-items: flex-start;
|
|
25
|
+
gap: 0.25rem;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.content {
|
|
29
|
+
display: flex;
|
|
30
|
+
flex-direction: column;
|
|
31
|
+
flex: 1;
|
|
32
|
+
gap: 0.5rem;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/* Title styles */
|
|
36
|
+
::ng-deep [alert-title] {
|
|
37
|
+
padding: 0;
|
|
38
|
+
margin: 0;
|
|
39
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
|
2
|
+
|
|
3
|
+
import { ZenAlert } from './alert';
|
|
4
|
+
|
|
5
|
+
describe('ZenAlert', () => {
|
|
6
|
+
let component: ZenAlert;
|
|
7
|
+
let fixture: ComponentFixture<ZenAlert>;
|
|
8
|
+
|
|
9
|
+
beforeEach(async () => {
|
|
10
|
+
await TestBed.configureTestingModule({
|
|
11
|
+
imports: [ZenAlert],
|
|
12
|
+
}).compileComponents();
|
|
13
|
+
|
|
14
|
+
fixture = TestBed.createComponent(ZenAlert);
|
|
15
|
+
component = fixture.componentInstance;
|
|
16
|
+
fixture.detectChanges();
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
it('should create', () => {
|
|
20
|
+
expect(component).toBeTruthy();
|
|
21
|
+
});
|
|
22
|
+
});
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import * as icons from '@hugeicons/core-free-icons';
|
|
2
|
+
import { Meta, moduleMetadata, StoryObj } from '@storybook/angular';
|
|
3
|
+
|
|
4
|
+
import { ZenIcon } from '../icon';
|
|
5
|
+
import { ZenAlert } from './alert';
|
|
6
|
+
|
|
7
|
+
interface StoryParams {
|
|
8
|
+
content: string;
|
|
9
|
+
icon: string;
|
|
10
|
+
title: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
type Options = ZenAlert & StoryParams;
|
|
14
|
+
|
|
15
|
+
export default {
|
|
16
|
+
title: 'Components/Alert',
|
|
17
|
+
component: ZenAlert,
|
|
18
|
+
decorators: [moduleMetadata({ imports: [ZenIcon] })],
|
|
19
|
+
args: {
|
|
20
|
+
icon: 'Notification02Icon',
|
|
21
|
+
title: 'Alert Title',
|
|
22
|
+
content: 'This is an alert message',
|
|
23
|
+
},
|
|
24
|
+
argTypes: {
|
|
25
|
+
content: {
|
|
26
|
+
control: 'text',
|
|
27
|
+
table: {
|
|
28
|
+
category: 'story parameters',
|
|
29
|
+
type: {
|
|
30
|
+
summary: 'ng-content',
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
icon: {
|
|
35
|
+
control: 'select',
|
|
36
|
+
options: Object.keys(icons),
|
|
37
|
+
table: {
|
|
38
|
+
category: 'story parameters',
|
|
39
|
+
type: {
|
|
40
|
+
summary: 'string',
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
title: {
|
|
45
|
+
control: 'text',
|
|
46
|
+
table: {
|
|
47
|
+
category: 'story parameters',
|
|
48
|
+
type: {
|
|
49
|
+
summary: 'string',
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
render: ({ content, icon, title }) => ({
|
|
55
|
+
props: {},
|
|
56
|
+
template: `
|
|
57
|
+
<zen-alert>
|
|
58
|
+
${icon ? '<zen-icon alert-icon icon="' + icon + '" />' : ''}
|
|
59
|
+
<h3 alert-title>${title}</h3>
|
|
60
|
+
${content}
|
|
61
|
+
</zen-alert>`,
|
|
62
|
+
}),
|
|
63
|
+
} satisfies Meta<Options>;
|
|
64
|
+
|
|
65
|
+
type Story = StoryObj<Options>;
|
|
66
|
+
|
|
67
|
+
export const Default: Story = {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* ZenAlert is a reusable alert component designed to provide
|
|
5
|
+
* a consistent and customizable alert style across the application.
|
|
6
|
+
* It can be used to display messages with different severity levels.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
*
|
|
10
|
+
* ```html
|
|
11
|
+
* <zen-alert>
|
|
12
|
+
* <zen-icon alert-icon icon="Notification02Icon" />
|
|
13
|
+
* <h3 alert-title>Title</h3>
|
|
14
|
+
* content
|
|
15
|
+
* </zen-alert>
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* ### CSS Custom Properties
|
|
19
|
+
*
|
|
20
|
+
* You can customize the component using CSS custom properties:
|
|
21
|
+
*
|
|
22
|
+
* ```css
|
|
23
|
+
* :root {
|
|
24
|
+
* --zen-alert-padding: 1rem;
|
|
25
|
+
* --zen-alert-bg-color: hsl(0deg 0% 100%);
|
|
26
|
+
* --zen-alert-color: hsl(0deg 0% 0%);
|
|
27
|
+
* --zen-alert-border: 1px solid hsl(0deg 0% 80%);
|
|
28
|
+
* }
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* @author Konrad StΔpieΕ
|
|
32
|
+
* @license {@link https://github.com/kstepien3/ng-zen/blob/master/LICENSE|BSD-2-Clause}
|
|
33
|
+
* @see [GitHub](https://github.com/kstepien3/ng-zen)
|
|
34
|
+
*/
|
|
35
|
+
@Component({
|
|
36
|
+
selector: 'zen-alert',
|
|
37
|
+
template: `
|
|
38
|
+
<ng-content select="[alert-icon]" />
|
|
39
|
+
<div class="content">
|
|
40
|
+
<ng-content select="[alert-title]" />
|
|
41
|
+
<ng-content />
|
|
42
|
+
</div>
|
|
43
|
+
`,
|
|
44
|
+
styleUrl: './alert.scss',
|
|
45
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
46
|
+
})
|
|
47
|
+
export class ZenAlert {}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './alert';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../../src/schematics/components/schema.ts"],"names":[],"mappings":"","sourcesContent":["import { GeneratorSchemaBase } from '../../types';\n\nexport type ComponentType =\n | 'avatar'\n | 'button'\n | 'checkbox'\n | 'divider'\n | 'form-control'\n | 'icon'\n | 'input'\n | 'skeleton'\n | 'switch'\n | 'textarea';\n\nexport interface Schema extends GeneratorSchemaBase {\n components: ComponentType[];\n}\n"]}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../../src/schematics/components/schema.ts"],"names":[],"mappings":"","sourcesContent":["import { GeneratorSchemaBase } from '../../types';\n\nexport type ComponentType =\n | 'avatar'\n | 'button'\n | 'checkbox'\n | 'divider'\n | 'form-control'\n | 'icon'\n | 'input'\n | 'skeleton'\n | 'switch'\n | 'textarea'\n | 'alert';\n\nexport interface Schema extends GeneratorSchemaBase {\n components: ComponentType[];\n}\n"]}
|