@ng-zen/cli 21.2.0-next.1 β 21.3.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 +6 -448
- package/README.md +7 -1
- package/package.json +5 -8
- package/schematics/ui/files/button/button.scss +160 -24
- package/schematics/ui/files/button/button.spec.ts +69 -0
- package/schematics/ui/files/button/button.stories.ts +119 -13
- package/schematics/ui/files/button/button.ts +22 -7
- package/schematics/ui/files/dialog/dialog.service.stories.ts +2 -2
- package/schematics/ui/files/dialog/dialog.stories.ts +1 -1
- package/schematics/ui/files/popover/host/popover-host.scss +12 -6
- package/schematics/ui/files/popover/index.ts +1 -0
- package/schematics/ui/files/popover/popover.stories.ts +18 -1
- package/schematics/ui/files/popover/popover.ts +36 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,455 +1,13 @@
|
|
|
1
|
-
## [21.
|
|
1
|
+
## [21.3.0-next.1](https://github.com/kstepien3/ng-zen/compare/v21.2.0...v21.3.0-next.1) (2026-06-12)
|
|
2
2
|
|
|
3
3
|
### π New Features
|
|
4
4
|
|
|
5
|
-
* **
|
|
5
|
+
* **button:** enhance component's sizes, variants, and styling updates ([#407](https://github.com/kstepien3/ng-zen/issues/407)) ([f32aad3](https://github.com/kstepien3/ng-zen/commit/f32aad35d5853f832f2eea0d8157884ca7f5cc3e))
|
|
6
|
+
* **button:** migrate to dynamic CSS variables and refactor styles ([#411](https://github.com/kstepien3/ng-zen/issues/411)) ([e4464f7](https://github.com/kstepien3/ng-zen/commit/e4464f7580c91f0de30d9139177655915430fd43))
|
|
7
|
+
* **popover:** improve popover styles, stories, docs ([#404](https://github.com/kstepien3/ng-zen/issues/404)) ([6515443](https://github.com/kstepien3/ng-zen/commit/65154436cde09f77909638ef84e2213b04f2862c))
|
|
6
8
|
|
|
7
9
|
### π Documentation
|
|
8
10
|
|
|
9
|
-
* **README:**
|
|
11
|
+
* **README:** add DeepWiki link ([#409](https://github.com/kstepien3/ng-zen/issues/409)) ([7875347](https://github.com/kstepien3/ng-zen/commit/78753471c6e56036788c6371ce0f063ab06b524b))
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
### π Bug Fixes
|
|
14
|
-
|
|
15
|
-
* **icon:** support all SVG shapes and normalize attribute naming ([#380](https://github.com/kstepien3/ng-zen/issues/380)) ([56cf31f](https://github.com/kstepien3/ng-zen/commit/56cf31ffbd59ca427ddb2f284f264a110d63ad4e))
|
|
16
|
-
|
|
17
|
-
### π οΈ Code Refactor
|
|
18
|
-
|
|
19
|
-
* **ng-add:** improve icon library installation ([#384](https://github.com/kstepien3/ng-zen/issues/384)) ([a0145de](https://github.com/kstepien3/ng-zen/commit/a0145deed42eb009a78f2dbef3873710a316215f))
|
|
20
|
-
|
|
21
|
-
### π Documentation
|
|
22
|
-
|
|
23
|
-
* **alert:** update example ([#382](https://github.com/kstepien3/ng-zen/issues/382)) ([3d29acb](https://github.com/kstepien3/ng-zen/commit/3d29acbd575d2a3eb3e5028f1abb9d0118918cc2))
|
|
24
|
-
* **icon:** update component description and usage guidance ([#385](https://github.com/kstepien3/ng-zen/issues/385)) ([eb329bd](https://github.com/kstepien3/ng-zen/commit/eb329bdcf7e383bf7a2a54a39f75be7257c4377f))
|
|
25
|
-
|
|
26
|
-
## [21.1.1-next.2](https://github.com/kstepien3/ng-zen/compare/v21.1.1-next.1...v21.1.1-next.2) (2026-02-24)
|
|
27
|
-
|
|
28
|
-
### π οΈ Code Refactor
|
|
29
|
-
|
|
30
|
-
* **ng-add:** improve icon library installation ([#384](https://github.com/kstepien3/ng-zen/issues/384)) ([a0145de](https://github.com/kstepien3/ng-zen/commit/a0145deed42eb009a78f2dbef3873710a316215f))
|
|
31
|
-
|
|
32
|
-
### π Documentation
|
|
33
|
-
|
|
34
|
-
* **icon:** update component description and usage guidance ([#385](https://github.com/kstepien3/ng-zen/issues/385)) ([eb329bd](https://github.com/kstepien3/ng-zen/commit/eb329bdcf7e383bf7a2a54a39f75be7257c4377f))
|
|
35
|
-
|
|
36
|
-
## [21.1.1-next.1](https://github.com/kstepien3/ng-zen/compare/v21.1.0...v21.1.1-next.1) (2026-02-23)
|
|
37
|
-
|
|
38
|
-
### π Bug Fixes
|
|
39
|
-
|
|
40
|
-
* **icon:** support all SVG shapes and normalize attribute naming ([#380](https://github.com/kstepien3/ng-zen/issues/380)) ([56cf31f](https://github.com/kstepien3/ng-zen/commit/56cf31ffbd59ca427ddb2f284f264a110d63ad4e))
|
|
41
|
-
|
|
42
|
-
### π Documentation
|
|
43
|
-
|
|
44
|
-
* **alert:** update example ([#382](https://github.com/kstepien3/ng-zen/issues/382)) ([3d29acb](https://github.com/kstepien3/ng-zen/commit/3d29acbd575d2a3eb3e5028f1abb9d0118918cc2))
|
|
45
|
-
|
|
46
|
-
## [21.1.0](https://github.com/kstepien3/ng-zen/compare/v21.0.0...v21.1.0) (2026-02-17)
|
|
47
|
-
|
|
48
|
-
### π New Features
|
|
49
|
-
|
|
50
|
-
* **components:** improve path component generation ([#362](https://github.com/kstepien3/ng-zen/issues/362)) ([8503565](https://github.com/kstepien3/ng-zen/commit/8503565076e2189a36c18b8555639cf86adb2fcc))
|
|
51
|
-
* **popover:** add new component ([#374](https://github.com/kstepien3/ng-zen/issues/374)) ([c67daea](https://github.com/kstepien3/ng-zen/commit/c67daea23027ecfdd868b96ff29b65903059ac20))
|
|
52
|
-
|
|
53
|
-
### π οΈ Code Refactor
|
|
54
|
-
|
|
55
|
-
* **ui:** rename `components` to `ui` across schematics ([#376](https://github.com/kstepien3/ng-zen/issues/376)) ([6b1bc9f](https://github.com/kstepien3/ng-zen/commit/6b1bc9fc6197fefa85d3eb0d2d9947ef44547533))
|
|
56
|
-
|
|
57
|
-
## [21.1.0-next.1](https://github.com/kstepien3/ng-zen/compare/v21.0.0...v21.1.0-next.1) (2026-02-15)
|
|
58
|
-
|
|
59
|
-
### π New Features
|
|
60
|
-
|
|
61
|
-
* **components:** improve path component generation ([#362](https://github.com/kstepien3/ng-zen/issues/362)) ([8503565](https://github.com/kstepien3/ng-zen/commit/8503565076e2189a36c18b8555639cf86adb2fcc))
|
|
62
|
-
* **popover:** add new component ([#374](https://github.com/kstepien3/ng-zen/issues/374)) ([c67daea](https://github.com/kstepien3/ng-zen/commit/c67daea23027ecfdd868b96ff29b65903059ac20))
|
|
63
|
-
|
|
64
|
-
### π οΈ Code Refactor
|
|
65
|
-
|
|
66
|
-
* **ui:** rename `components` to `ui` across schematics ([#376](https://github.com/kstepien3/ng-zen/issues/376)) ([6b1bc9f](https://github.com/kstepien3/ng-zen/commit/6b1bc9fc6197fefa85d3eb0d2d9947ef44547533))
|
|
67
|
-
|
|
68
|
-
## [21.0.0](https://github.com/kstepien3/ng-zen/compare/v20.5.0...v21.0.0) (2025-12-18)
|
|
69
|
-
|
|
70
|
-
### β BREAKING CHANGES
|
|
71
|
-
|
|
72
|
-
* upgrade Angular v21 + Storybook v10, add vitest (#363)
|
|
73
|
-
|
|
74
|
-
### chore
|
|
75
|
-
|
|
76
|
-
* upgrade Angular v21 + Storybook v10, add vitest ([#363](https://github.com/kstepien3/ng-zen/issues/363)) ([13bd57e](https://github.com/kstepien3/ng-zen/commit/13bd57ebd5b5fd26721947645dace5da97defa45))
|
|
77
|
-
|
|
78
|
-
### π Documentation
|
|
79
|
-
|
|
80
|
-
* **readme:** update info about testing framework ([#371](https://github.com/kstepien3/ng-zen/issues/371)) ([9fe8e7f](https://github.com/kstepien3/ng-zen/commit/9fe8e7f28911731c5c6482d7b69463e72a4c4232))
|
|
81
|
-
|
|
82
|
-
## [21.0.0-next.1](https://github.com/kstepien3/ng-zen/compare/v20.5.0...v21.0.0-next.1) (2025-12-16)
|
|
83
|
-
|
|
84
|
-
### β BREAKING CHANGES
|
|
85
|
-
|
|
86
|
-
* upgrade Angular v21 + Storybook v10, add vitest (#363)
|
|
87
|
-
|
|
88
|
-
### chore
|
|
89
|
-
|
|
90
|
-
* upgrade Angular v21 + Storybook v10, add vitest ([#363](https://github.com/kstepien3/ng-zen/issues/363)) ([13bd57e](https://github.com/kstepien3/ng-zen/commit/13bd57ebd5b5fd26721947645dace5da97defa45))
|
|
91
|
-
|
|
92
|
-
### π Documentation
|
|
93
|
-
|
|
94
|
-
* **readme:** update info about testing framework ([#371](https://github.com/kstepien3/ng-zen/issues/371)) ([9fe8e7f](https://github.com/kstepien3/ng-zen/commit/9fe8e7f28911731c5c6482d7b69463e72a4c4232))
|
|
95
|
-
|
|
96
|
-
## [20.5.0](https://github.com/kstepien3/ng-zen/compare/v20.4.0...v20.5.0) (2025-11-30)
|
|
97
|
-
|
|
98
|
-
### π New Features
|
|
99
|
-
|
|
100
|
-
* **radio:** add component ([#358](https://github.com/kstepien3/ng-zen/issues/358)) ([a2f170e](https://github.com/kstepien3/ng-zen/commit/a2f170e0b18eadfc43c39a1d36597192d0f90c73))
|
|
101
|
-
|
|
102
|
-
### π Documentation
|
|
103
|
-
|
|
104
|
-
* **assets:** optimize logos ([#354](https://github.com/kstepien3/ng-zen/issues/354)) ([66fd5ba](https://github.com/kstepien3/ng-zen/commit/66fd5ba61e005b407c036dd34dcfa996e8884e8b))
|
|
105
|
-
* **development:** fix verdaccio installation command in guide ([#359](https://github.com/kstepien3/ng-zen/issues/359)) ([6945e65](https://github.com/kstepien3/ng-zen/commit/6945e65f648362ec096e17de6a2118be3340cbee))
|
|
106
|
-
|
|
107
|
-
## [20.5.0-next.1](https://github.com/kstepien3/ng-zen/compare/v20.4.0...v20.5.0-next.1) (2025-11-28)
|
|
108
|
-
|
|
109
|
-
### π New Features
|
|
110
|
-
|
|
111
|
-
* **radio:** add component ([#358](https://github.com/kstepien3/ng-zen/issues/358)) ([a2f170e](https://github.com/kstepien3/ng-zen/commit/a2f170e0b18eadfc43c39a1d36597192d0f90c73))
|
|
112
|
-
|
|
113
|
-
### π Documentation
|
|
114
|
-
|
|
115
|
-
* **assets:** optimize logos ([#354](https://github.com/kstepien3/ng-zen/issues/354)) ([66fd5ba](https://github.com/kstepien3/ng-zen/commit/66fd5ba61e005b407c036dd34dcfa996e8884e8b))
|
|
116
|
-
* **development:** fix verdaccio installation command in guide ([#359](https://github.com/kstepien3/ng-zen/issues/359)) ([6945e65](https://github.com/kstepien3/ng-zen/commit/6945e65f648362ec096e17de6a2118be3340cbee))
|
|
117
|
-
|
|
118
|
-
## [20.4.0](https://github.com/kstepien3/ng-zen/compare/v20.3.0...v20.4.0) (2025-10-05)
|
|
119
|
-
|
|
120
|
-
### π New Features
|
|
121
|
-
|
|
122
|
-
* **alert:** add component ([#337](https://github.com/kstepien3/ng-zen/issues/337)) ([bc59953](https://github.com/kstepien3/ng-zen/commit/bc59953dc263561b0a8fb4e3fd0e753c1c14df77))
|
|
123
|
-
|
|
124
|
-
### π Bug Fixes
|
|
125
|
-
|
|
126
|
-
* **alert:** update icon selector ([#338](https://github.com/kstepien3/ng-zen/issues/338)) ([99b9d63](https://github.com/kstepien3/ng-zen/commit/99b9d63e0bbd9ef4dc61672b2b1b393ecd26c406))
|
|
127
|
-
|
|
128
|
-
### π Documentation
|
|
129
|
-
|
|
130
|
-
* **seo:** add seo features ([#332](https://github.com/kstepien3/ng-zen/issues/332)) ([3afc125](https://github.com/kstepien3/ng-zen/commit/3afc12595d39ae8ffad8223e787862d143ec9b6a))
|
|
131
|
-
* **seo:** replace og image ([#341](https://github.com/kstepien3/ng-zen/issues/341)) ([6edb078](https://github.com/kstepien3/ng-zen/commit/6edb078a1c990952e854616fda4865c1fedb5515))
|
|
132
|
-
|
|
133
|
-
## [20.4.0-next.1](https://github.com/kstepien3/ng-zen/compare/v20.3.0...v20.4.0-next.1) (2025-10-03)
|
|
134
|
-
|
|
135
|
-
### π New Features
|
|
136
|
-
|
|
137
|
-
* **alert:** add component ([#337](https://github.com/kstepien3/ng-zen/issues/337)) ([bc59953](https://github.com/kstepien3/ng-zen/commit/bc59953dc263561b0a8fb4e3fd0e753c1c14df77))
|
|
138
|
-
|
|
139
|
-
### π Bug Fixes
|
|
140
|
-
|
|
141
|
-
* **alert:** update icon selector ([#338](https://github.com/kstepien3/ng-zen/issues/338)) ([99b9d63](https://github.com/kstepien3/ng-zen/commit/99b9d63e0bbd9ef4dc61672b2b1b393ecd26c406))
|
|
142
|
-
|
|
143
|
-
### π Documentation
|
|
144
|
-
|
|
145
|
-
* **seo:** add seo features ([#332](https://github.com/kstepien3/ng-zen/issues/332)) ([3afc125](https://github.com/kstepien3/ng-zen/commit/3afc12595d39ae8ffad8223e787862d143ec9b6a))
|
|
146
|
-
|
|
147
|
-
## [20.3.0](https://github.com/kstepien3/ng-zen/compare/v20.2.1...v20.3.0) (2025-09-21)
|
|
148
|
-
|
|
149
|
-
### π New Features
|
|
150
|
-
|
|
151
|
-
* **switch:** add animations ([#303](https://github.com/kstepien3/ng-zen/issues/303)) ([6b48d4f](https://github.com/kstepien3/ng-zen/commit/6b48d4f39db1e5bfe22920fa749b652ac65e4432))
|
|
152
|
-
|
|
153
|
-
### π Bug Fixes
|
|
154
|
-
|
|
155
|
-
* **avatar:** improve css variables ([#323](https://github.com/kstepien3/ng-zen/issues/323)) ([eef614a](https://github.com/kstepien3/ng-zen/commit/eef614a0e2060fe32f72e00809b66009ae24832f))
|
|
156
|
-
* **input:** resolve problem with wrong variables ([#322](https://github.com/kstepien3/ng-zen/issues/322)) ([30f5d10](https://github.com/kstepien3/ng-zen/commit/30f5d10c4c559f01ed3445b77e174340b4f2fb6f))
|
|
157
|
-
|
|
158
|
-
### π οΈ Code Refactor
|
|
159
|
-
|
|
160
|
-
* **button:** improve css variables ([#321](https://github.com/kstepien3/ng-zen/issues/321)) ([4ed1310](https://github.com/kstepien3/ng-zen/commit/4ed1310450dde749164c419ec6b5da0a4fbb98bc))
|
|
161
|
-
* **checkbox:** improve css variables ([#317](https://github.com/kstepien3/ng-zen/issues/317)) ([bbe1437](https://github.com/kstepien3/ng-zen/commit/bbe143704163394a9c9ce446aa9d749a57f9c62c))
|
|
162
|
-
* **divider:** improve css variables ([#316](https://github.com/kstepien3/ng-zen/issues/316)) ([7a19ce7](https://github.com/kstepien3/ng-zen/commit/7a19ce72db58e8d23a4786aae2787db6bcfdbf6d))
|
|
163
|
-
* **input:** improve css variables ([#314](https://github.com/kstepien3/ng-zen/issues/314)) ([58cdbb3](https://github.com/kstepien3/ng-zen/commit/58cdbb3bafb9c10057b75d73c7234247e519c97e))
|
|
164
|
-
* **skeleton:** improve css variables ([#313](https://github.com/kstepien3/ng-zen/issues/313)) ([9f0c8fd](https://github.com/kstepien3/ng-zen/commit/9f0c8fd1b23172fa5bb9bf9f42b6739c7b232876))
|
|
165
|
-
* **switch:** improve styles, css variables ([#304](https://github.com/kstepien3/ng-zen/issues/304)) ([3c04b87](https://github.com/kstepien3/ng-zen/commit/3c04b8754cd25af8cfc0c0ffa89ac8633de33145))
|
|
166
|
-
* **textarea:** improve css variables ([#305](https://github.com/kstepien3/ng-zen/issues/305)) ([a9b412c](https://github.com/kstepien3/ng-zen/commit/a9b412c8ab1f77ba3d602384c963aade62308e6b))
|
|
167
|
-
|
|
168
|
-
### π Documentation
|
|
169
|
-
|
|
170
|
-
* **README.md:** fix links ([#302](https://github.com/kstepien3/ng-zen/issues/302)) ([089587c](https://github.com/kstepien3/ng-zen/commit/089587c2ecbb8c27492bc34abd4896e7842e7d04))
|
|
171
|
-
* **storybook:** add brand theme ([#325](https://github.com/kstepien3/ng-zen/issues/325)) ([97458f8](https://github.com/kstepien3/ng-zen/commit/97458f89de18896595a30f2a33ae93bb5ef75ac5))
|
|
172
|
-
* **textarea:** update jsdoc about css variables ([#311](https://github.com/kstepien3/ng-zen/issues/311)) ([6ceabb5](https://github.com/kstepien3/ng-zen/commit/6ceabb58e6549e87bdbbe3b3b2f6e2e0928ab49b))
|
|
173
|
-
|
|
174
|
-
## [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)
|
|
175
|
-
|
|
176
|
-
### π Bug Fixes
|
|
177
|
-
|
|
178
|
-
* **avatar:** improve css variables ([#323](https://github.com/kstepien3/ng-zen/issues/323)) ([eef614a](https://github.com/kstepien3/ng-zen/commit/eef614a0e2060fe32f72e00809b66009ae24832f))
|
|
179
|
-
* **input:** resolve problem with wrong variables ([#322](https://github.com/kstepien3/ng-zen/issues/322)) ([30f5d10](https://github.com/kstepien3/ng-zen/commit/30f5d10c4c559f01ed3445b77e174340b4f2fb6f))
|
|
180
|
-
|
|
181
|
-
### π οΈ Code Refactor
|
|
182
|
-
|
|
183
|
-
* **button:** improve css variables ([#321](https://github.com/kstepien3/ng-zen/issues/321)) ([4ed1310](https://github.com/kstepien3/ng-zen/commit/4ed1310450dde749164c419ec6b5da0a4fbb98bc))
|
|
184
|
-
* **checkbox:** improve css variables ([#317](https://github.com/kstepien3/ng-zen/issues/317)) ([bbe1437](https://github.com/kstepien3/ng-zen/commit/bbe143704163394a9c9ce446aa9d749a57f9c62c))
|
|
185
|
-
* **divider:** improve css variables ([#316](https://github.com/kstepien3/ng-zen/issues/316)) ([7a19ce7](https://github.com/kstepien3/ng-zen/commit/7a19ce72db58e8d23a4786aae2787db6bcfdbf6d))
|
|
186
|
-
|
|
187
|
-
## [20.3.0-next.2](https://github.com/kstepien3/ng-zen/compare/v20.3.0-next.1...v20.3.0-next.2) (2025-09-11)
|
|
188
|
-
|
|
189
|
-
### π οΈ Code Refactor
|
|
190
|
-
|
|
191
|
-
* **input:** improve css variables ([#314](https://github.com/kstepien3/ng-zen/issues/314)) ([58cdbb3](https://github.com/kstepien3/ng-zen/commit/58cdbb3bafb9c10057b75d73c7234247e519c97e))
|
|
192
|
-
* **skeleton:** improve css variables ([#313](https://github.com/kstepien3/ng-zen/issues/313)) ([9f0c8fd](https://github.com/kstepien3/ng-zen/commit/9f0c8fd1b23172fa5bb9bf9f42b6739c7b232876))
|
|
193
|
-
|
|
194
|
-
### π Documentation
|
|
195
|
-
|
|
196
|
-
* **textarea:** update jsdoc about css variables ([#311](https://github.com/kstepien3/ng-zen/issues/311)) ([6ceabb5](https://github.com/kstepien3/ng-zen/commit/6ceabb58e6549e87bdbbe3b3b2f6e2e0928ab49b))
|
|
197
|
-
|
|
198
|
-
## [20.3.0-next.1](https://github.com/kstepien3/ng-zen/compare/v20.2.1...v20.3.0-next.1) (2025-09-09)
|
|
199
|
-
|
|
200
|
-
### π New Features
|
|
201
|
-
|
|
202
|
-
* **switch:** add animations ([#303](https://github.com/kstepien3/ng-zen/issues/303)) ([6b48d4f](https://github.com/kstepien3/ng-zen/commit/6b48d4f39db1e5bfe22920fa749b652ac65e4432))
|
|
203
|
-
|
|
204
|
-
### π οΈ Code Refactor
|
|
205
|
-
|
|
206
|
-
* **switch:** improve styles, css variables ([#304](https://github.com/kstepien3/ng-zen/issues/304)) ([3c04b87](https://github.com/kstepien3/ng-zen/commit/3c04b8754cd25af8cfc0c0ffa89ac8633de33145))
|
|
207
|
-
* **textarea:** improve css variables ([#305](https://github.com/kstepien3/ng-zen/issues/305)) ([a9b412c](https://github.com/kstepien3/ng-zen/commit/a9b412c8ab1f77ba3d602384c963aade62308e6b))
|
|
208
|
-
|
|
209
|
-
### π Documentation
|
|
210
|
-
|
|
211
|
-
* **README.md:** fix links ([#302](https://github.com/kstepien3/ng-zen/issues/302)) ([089587c](https://github.com/kstepien3/ng-zen/commit/089587c2ecbb8c27492bc34abd4896e7842e7d04))
|
|
212
|
-
|
|
213
|
-
## [20.2.1](https://github.com/kstepien3/ng-zen/compare/v20.2.0...v20.2.1) (2025-09-01)
|
|
214
|
-
|
|
215
|
-
### π Bug Fixes
|
|
216
|
-
|
|
217
|
-
* **button:** improve styles to detect disabled states ([#283](https://github.com/kstepien3/ng-zen/issues/283)) ([757108f](https://github.com/kstepien3/ng-zen/commit/757108f9b455d699f416d893c027209d3fa9cbc0))
|
|
218
|
-
* **form-control:** move placeholder into the input component ([#277](https://github.com/kstepien3/ng-zen/issues/277)) ([aec69b4](https://github.com/kstepien3/ng-zen/commit/aec69b43575556b29d6256f1b3fbd61ae7eae515))
|
|
219
|
-
|
|
220
|
-
### π οΈ Code Refactor
|
|
221
|
-
|
|
222
|
-
* remove unnecessary standalone property ([#290](https://github.com/kstepien3/ng-zen/issues/290)) ([d984f17](https://github.com/kstepien3/ng-zen/commit/d984f174ed7e25febaf3c908cb14573f3eaf7dee))
|
|
223
|
-
|
|
224
|
-
### π Documentation
|
|
225
|
-
|
|
226
|
-
* **readme:** add logo and improve the file ([#289](https://github.com/kstepien3/ng-zen/issues/289)) ([2e8da82](https://github.com/kstepien3/ng-zen/commit/2e8da82c42817eb251a5957a2bd9862e07f2390b))
|
|
227
|
-
* **storybook:** add docs about the suggested storybook configuration ([#288](https://github.com/kstepien3/ng-zen/issues/288)) ([f9e0bc5](https://github.com/kstepien3/ng-zen/commit/f9e0bc555e3d1349dfa9f532ba883fe03baf0dec))
|
|
228
|
-
* **storybook:** improve documentations and stories code ([#287](https://github.com/kstepien3/ng-zen/issues/287)) ([c0312e9](https://github.com/kstepien3/ng-zen/commit/c0312e9de51e949527ec81abf70bb968ee2a84c4))
|
|
229
|
-
|
|
230
|
-
## [20.2.1-next.1](https://github.com/kstepien3/ng-zen/compare/v20.2.0...v20.2.1-next.1) (2025-09-01)
|
|
231
|
-
|
|
232
|
-
### π Bug Fixes
|
|
233
|
-
|
|
234
|
-
* **button:** improve styles to detect disabled states ([#283](https://github.com/kstepien3/ng-zen/issues/283)) ([757108f](https://github.com/kstepien3/ng-zen/commit/757108f9b455d699f416d893c027209d3fa9cbc0))
|
|
235
|
-
* **form-control:** move placeholder into the input component ([#277](https://github.com/kstepien3/ng-zen/issues/277)) ([aec69b4](https://github.com/kstepien3/ng-zen/commit/aec69b43575556b29d6256f1b3fbd61ae7eae515))
|
|
236
|
-
|
|
237
|
-
### π οΈ Code Refactor
|
|
238
|
-
|
|
239
|
-
* remove unnecessary standalone property ([#290](https://github.com/kstepien3/ng-zen/issues/290)) ([d984f17](https://github.com/kstepien3/ng-zen/commit/d984f174ed7e25febaf3c908cb14573f3eaf7dee))
|
|
240
|
-
|
|
241
|
-
### π Documentation
|
|
242
|
-
|
|
243
|
-
* **readme:** add logo and improve the file ([#289](https://github.com/kstepien3/ng-zen/issues/289)) ([2e8da82](https://github.com/kstepien3/ng-zen/commit/2e8da82c42817eb251a5957a2bd9862e07f2390b))
|
|
244
|
-
* **storybook:** add docs about the suggested storybook configuration ([#288](https://github.com/kstepien3/ng-zen/issues/288)) ([f9e0bc5](https://github.com/kstepien3/ng-zen/commit/f9e0bc555e3d1349dfa9f532ba883fe03baf0dec))
|
|
245
|
-
* **storybook:** improve documentations and stories code ([#287](https://github.com/kstepien3/ng-zen/issues/287)) ([c0312e9](https://github.com/kstepien3/ng-zen/commit/c0312e9de51e949527ec81abf70bb968ee2a84c4))
|
|
246
|
-
|
|
247
|
-
## [20.2.1-next.1](https://github.com/kstepien3/ng-zen/compare/v20.2.0...v20.2.1-next.1) (2025-08-29)
|
|
248
|
-
|
|
249
|
-
### π Bug Fixes
|
|
250
|
-
|
|
251
|
-
* **button:** improve styles to detect disabled states ([#283](https://github.com/kstepien3/ng-zen/issues/283)) ([757108f](https://github.com/kstepien3/ng-zen/commit/757108f9b455d699f416d893c027209d3fa9cbc0))
|
|
252
|
-
* **form-control:** move placeholder into the input component ([#277](https://github.com/kstepien3/ng-zen/issues/277)) ([aec69b4](https://github.com/kstepien3/ng-zen/commit/aec69b43575556b29d6256f1b3fbd61ae7eae515))
|
|
253
|
-
|
|
254
|
-
### π οΈ Code Refactor
|
|
255
|
-
|
|
256
|
-
* remove unnecessary standalone property ([#290](https://github.com/kstepien3/ng-zen/issues/290)) ([d984f17](https://github.com/kstepien3/ng-zen/commit/d984f174ed7e25febaf3c908cb14573f3eaf7dee))
|
|
257
|
-
|
|
258
|
-
## [20.2.0](https://github.com/kstepien3/ng-zen/compare/v20.1.0...v20.2.0) (2025-08-18)
|
|
259
|
-
|
|
260
|
-
### π New Features
|
|
261
|
-
|
|
262
|
-
* **components:** generate code in workingDirectory ([#270](https://github.com/kstepien3/ng-zen/issues/270)) ([2f2060f](https://github.com/kstepien3/ng-zen/commit/2f2060fd26b5cd45ce004daf5a651aa3030556f0))
|
|
263
|
-
|
|
264
|
-
## [20.2.0-next.1](https://github.com/kstepien3/ng-zen/compare/v20.1.0...v20.2.0-next.1) (2025-08-13)
|
|
265
|
-
|
|
266
|
-
### π New Features
|
|
267
|
-
|
|
268
|
-
* **components:** generate code in workingDirectory ([#270](https://github.com/kstepien3/ng-zen/issues/270)) ([2f2060f](https://github.com/kstepien3/ng-zen/commit/2f2060fd26b5cd45ce004daf5a651aa3030556f0))
|
|
269
|
-
|
|
270
|
-
## [20.1.0](https://github.com/kstepien3/ng-zen/compare/v20.0.0...v20.1.0) (2025-08-04)
|
|
271
|
-
|
|
272
|
-
### π New Features
|
|
273
|
-
|
|
274
|
-
* **checkbox:** add indeterminate state if value is null ([#260](https://github.com/kstepien3/ng-zen/issues/260)) ([d13c241](https://github.com/kstepien3/ng-zen/commit/d13c2416984df1de188082760aadfe280c7ed315))
|
|
275
|
-
* **form-control:** add abstract logic for form control components ([#252](https://github.com/kstepien3/ng-zen/issues/252)) ([10e66b4](https://github.com/kstepien3/ng-zen/commit/10e66b4b0606a05d02ba527de42407129e085cbe))
|
|
276
|
-
|
|
277
|
-
## [20.1.0-next.1](https://github.com/kstepien3/ng-zen/compare/v20.0.0...v20.1.0-next.1) (2025-07-30)
|
|
278
|
-
|
|
279
|
-
### π New Features
|
|
280
|
-
|
|
281
|
-
* **checkbox:** add indeterminate state if value is null ([#260](https://github.com/kstepien3/ng-zen/issues/260)) ([d13c241](https://github.com/kstepien3/ng-zen/commit/d13c2416984df1de188082760aadfe280c7ed315))
|
|
282
|
-
* **form-control:** add abstract logic for form control components ([#252](https://github.com/kstepien3/ng-zen/issues/252)) ([10e66b4](https://github.com/kstepien3/ng-zen/commit/10e66b4b0606a05d02ba527de42407129e085cbe))
|
|
283
|
-
|
|
284
|
-
## [20.0.0](https://github.com/kstepien3/ng-zen/compare/v19.4.0...v20.0.0) (2025-07-22)
|
|
285
|
-
|
|
286
|
-
### β BREAKING CHANGES
|
|
287
|
-
|
|
288
|
-
* **angular:** upgrade to v20 (#241)
|
|
289
|
-
|
|
290
|
-
### π New Features
|
|
291
|
-
|
|
292
|
-
* **icon:** remove @hugeicons/angular package & improvements ([#248](https://github.com/kstepien3/ng-zen/issues/248)) ([cceabb0](https://github.com/kstepien3/ng-zen/commit/cceabb036f092170da66724d29ffca8ccd702983))
|
|
293
|
-
|
|
294
|
-
### π οΈ Code Refactor
|
|
295
|
-
|
|
296
|
-
* remove suffix from files for Angular v20 compatibility ([#243](https://github.com/kstepien3/ng-zen/issues/243)) ([d26e2f2](https://github.com/kstepien3/ng-zen/commit/d26e2f2faeb052b8f984f82a59e7d95248b2964b))
|
|
297
|
-
|
|
298
|
-
### ποΈ Build Changes
|
|
299
|
-
|
|
300
|
-
* **angular:** upgrade to v20 ([#241](https://github.com/kstepien3/ng-zen/issues/241)) ([a97126c](https://github.com/kstepien3/ng-zen/commit/a97126cbe780cb6fca9fe6c7944aa70cb86b5273))
|
|
301
|
-
|
|
302
|
-
## [20.0.0-next.3](https://github.com/kstepien3/ng-zen/compare/v20.0.0-next.2...v20.0.0-next.3) (2025-07-21)
|
|
303
|
-
|
|
304
|
-
### π New Features
|
|
305
|
-
|
|
306
|
-
* **icon:** remove @hugeicons/angular package & improvements ([#248](https://github.com/kstepien3/ng-zen/issues/248)) ([cceabb0](https://github.com/kstepien3/ng-zen/commit/cceabb036f092170da66724d29ffca8ccd702983))
|
|
307
|
-
|
|
308
|
-
## [20.0.0-next.2](https://github.com/kstepien3/ng-zen/compare/v20.0.0-next.1...v20.0.0-next.2) (2025-07-16)
|
|
309
|
-
|
|
310
|
-
### π οΈ Code Refactor
|
|
311
|
-
|
|
312
|
-
* remove suffix from files for Angular v20 compatibility ([#243](https://github.com/kstepien3/ng-zen/issues/243)) ([d26e2f2](https://github.com/kstepien3/ng-zen/commit/d26e2f2faeb052b8f984f82a59e7d95248b2964b))
|
|
313
|
-
|
|
314
|
-
## [20.0.0-next.1](https://github.com/kstepien3/ng-zen/compare/v19.4.0...v20.0.0-next.1) (2025-07-15)
|
|
315
|
-
|
|
316
|
-
### β BREAKING CHANGES
|
|
317
|
-
|
|
318
|
-
* **angular:** upgrade to v20 (#241)
|
|
319
|
-
|
|
320
|
-
### ποΈ Build Changes
|
|
321
|
-
|
|
322
|
-
* **angular:** upgrade to v20 ([#241](https://github.com/kstepien3/ng-zen/issues/241)) ([a97126c](https://github.com/kstepien3/ng-zen/commit/a97126cbe780cb6fca9fe6c7944aa70cb86b5273))
|
|
323
|
-
|
|
324
|
-
## [19.4.0](https://github.com/kstepien3/ng-zen/compare/v19.3.0...v19.4.0) (2025-07-05)
|
|
325
|
-
|
|
326
|
-
### π New Features
|
|
327
|
-
|
|
328
|
-
* **dependency-manager:** add prompt for necessary dependencies ([#221](https://github.com/kstepien3/ng-zen/issues/221)) ([4fd4984](https://github.com/kstepien3/ng-zen/commit/4fd4984cfc52f96b5f915bbc4550185125792c50))
|
|
329
|
-
* **icon:** add component ([#215](https://github.com/kstepien3/ng-zen/issues/215)) ([61d93ad](https://github.com/kstepien3/ng-zen/commit/61d93ad67022f465e77e71c4dcf465aaf5ab0648))
|
|
330
|
-
|
|
331
|
-
## [19.4.0-next.1](https://github.com/kstepien3/ng-zen/compare/v19.3.0...v19.4.0-next.1) (2025-06-22)
|
|
332
|
-
|
|
333
|
-
### π New Features
|
|
334
|
-
|
|
335
|
-
* **dependency-manager:** add prompt for necessary dependencies ([#221](https://github.com/kstepien3/ng-zen/issues/221)) ([4fd4984](https://github.com/kstepien3/ng-zen/commit/4fd4984cfc52f96b5f915bbc4550185125792c50))
|
|
336
|
-
* **icon:** add component ([#215](https://github.com/kstepien3/ng-zen/issues/215)) ([61d93ad](https://github.com/kstepien3/ng-zen/commit/61d93ad67022f465e77e71c4dcf465aaf5ab0648))
|
|
337
|
-
|
|
338
|
-
## [19.3.0](https://github.com/kstepien3/ng-zen/compare/v19.2.0...v19.3.0) (2025-06-12)
|
|
339
|
-
|
|
340
|
-
### π New Features
|
|
341
|
-
|
|
342
|
-
* **skeleton:** add component ([#205](https://github.com/kstepien3/ng-zen/issues/205)) ([fa21c9a](https://github.com/kstepien3/ng-zen/commit/fa21c9a440ce918d521c12cd9e9eec17cade60cd))
|
|
343
|
-
|
|
344
|
-
### π Bug Fixes
|
|
345
|
-
|
|
346
|
-
* **storybook/components:** format and documentation ([#211](https://github.com/kstepien3/ng-zen/issues/211)) ([a0fb6f5](https://github.com/kstepien3/ng-zen/commit/a0fb6f576e1c47509ba2aed4cd4314dace894366))
|
|
347
|
-
* **styles:** improve format of hls colors ([#207](https://github.com/kstepien3/ng-zen/issues/207)) ([354d698](https://github.com/kstepien3/ng-zen/commit/354d6989507ba86397268012f6a53002c2e02297))
|
|
348
|
-
|
|
349
|
-
## [19.3.0-next.2](https://github.com/kstepien3/ng-zen/compare/v19.3.0-next.1...v19.3.0-next.2) (2025-06-11)
|
|
350
|
-
|
|
351
|
-
### π Bug Fixes
|
|
352
|
-
|
|
353
|
-
* **storybook/components:** format and documentation ([#211](https://github.com/kstepien3/ng-zen/issues/211)) ([a0fb6f5](https://github.com/kstepien3/ng-zen/commit/a0fb6f576e1c47509ba2aed4cd4314dace894366))
|
|
354
|
-
* **styles:** improve format of hls colors ([#207](https://github.com/kstepien3/ng-zen/issues/207)) ([354d698](https://github.com/kstepien3/ng-zen/commit/354d6989507ba86397268012f6a53002c2e02297))
|
|
355
|
-
|
|
356
|
-
### π Documentation
|
|
357
|
-
|
|
358
|
-
* **DEVELOPMENT:** add release information ([#209](https://github.com/kstepien3/ng-zen/issues/209)) ([f9aad1b](https://github.com/kstepien3/ng-zen/commit/f9aad1b8be3d7d633c41ad9cff4bf3c6b93ad0f4))
|
|
359
|
-
* resolve a problem with missing documentation ([#208](https://github.com/kstepien3/ng-zen/issues/208)) ([85e7969](https://github.com/kstepien3/ng-zen/commit/85e7969c23b6b7bd2039e9cfdc336dc8da6edcc1))
|
|
360
|
-
|
|
361
|
-
## [19.3.0-next.1](https://github.com/kstepien3/ng-zen/compare/v19.2.0...v19.3.0-next.1) (2025-06-10)
|
|
362
|
-
|
|
363
|
-
### π New Features
|
|
364
|
-
|
|
365
|
-
* **skeleton:** add component ([#205](https://github.com/kstepien3/ng-zen/issues/205)) ([fa21c9a](https://github.com/kstepien3/ng-zen/commit/fa21c9a440ce918d521c12cd9e9eec17cade60cd))
|
|
366
|
-
|
|
367
|
-
## [19.2.0](https://github.com/kstepien3/ng-zen/compare/v19.1.0...v19.2.0) (2025-05-25)
|
|
368
|
-
|
|
369
|
-
### π New Features
|
|
370
|
-
|
|
371
|
-
* **button:** add css variables for styling ([#191](https://github.com/kstepien3/ng-zen/issues/191)) ([7278585](https://github.com/kstepien3/ng-zen/commit/7278585c642a01468c2ef85dc39f3e767287ccf7))
|
|
372
|
-
* **button:** update selector to support is() pseudo-class ([#195](https://github.com/kstepien3/ng-zen/issues/195)) ([e85135e](https://github.com/kstepien3/ng-zen/commit/e85135ef45c7a38b5597624254c7b0adae6e4db4))
|
|
373
|
-
* **divider:** add zen-divider component ([#186](https://github.com/kstepien3/ng-zen/issues/186)) ([c021773](https://github.com/kstepien3/ng-zen/commit/c0217732a99efd1a68d23ed5e44d8da9e5344fdb))
|
|
374
|
-
|
|
375
|
-
### π Bug Fixes
|
|
376
|
-
|
|
377
|
-
* **schematics/ng-add:** run other schematics after installation ([#177](https://github.com/kstepien3/ng-zen/issues/177)) ([5cb1be4](https://github.com/kstepien3/ng-zen/commit/5cb1be4ce4cbeb7e5341baf937db135c16caad18))
|
|
378
|
-
|
|
379
|
-
### π Documentation
|
|
380
|
-
|
|
381
|
-
* **readme:** remove the "next" build npm badges ([#194](https://github.com/kstepien3/ng-zen/issues/194)) ([48740d3](https://github.com/kstepien3/ng-zen/commit/48740d3c9ff3f3619e6f56baba8b933ba31498b3))
|
|
382
|
-
* **releaserc:** update release note generator config ([#196](https://github.com/kstepien3/ng-zen/issues/196)) ([ca37df3](https://github.com/kstepien3/ng-zen/commit/ca37df375bf566476ec16c4cf10121f0d59c5c70))
|
|
383
|
-
|
|
384
|
-
# [19.2.0-next.3](https://github.com/kstepien3/ng-zen/compare/v19.2.0-next.2...v19.2.0-next.3) (2025-05-24)
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
### Features
|
|
388
|
-
|
|
389
|
-
* **button:** update selector to support is() pseudo-class ([#195](https://github.com/kstepien3/ng-zen/issues/195)) ([e85135e](https://github.com/kstepien3/ng-zen/commit/e85135ef45c7a38b5597624254c7b0adae6e4db4))
|
|
390
|
-
|
|
391
|
-
## [19.2.0-next.2](https://github.com/kstepien3/ng-zen/compare/v19.2.0-next.1...v19.2.0-next.2) (2025-05-24)
|
|
392
|
-
|
|
393
|
-
### π New Features
|
|
394
|
-
|
|
395
|
-
* **button:** add css variables for styling ([#191](https://github.com/kstepien3/ng-zen/issues/191)) ([7278585](https://github.com/kstepien3/ng-zen/commit/7278585c642a01468c2ef85dc39f3e767287ccf7))
|
|
396
|
-
|
|
397
|
-
### π§Ή Chore
|
|
398
|
-
|
|
399
|
-
* **build:** update output directory and release configuration ([#190](https://github.com/kstepien3/ng-zen/issues/190)) ([bae868c](https://github.com/kstepien3/ng-zen/commit/bae868cf00481a685fc02ee73a34ab4b787e9e67))
|
|
400
|
-
* **dependencies:** restore conventional-changelog-conventionalcommits ([#189](https://github.com/kstepien3/ng-zen/issues/189)) ([5afabcb](https://github.com/kstepien3/ng-zen/commit/5afabcb1050da49404ed89a83fee57af1872b729))
|
|
401
|
-
|
|
402
|
-
## 19.2.0-next.1 (2025-05-23)
|
|
403
|
-
|
|
404
|
-
* chore(dependencies): update dependencies (#187) ([7028a9e](https://github.com/kstepien3/ng-zen/commit/7028a9e)), closes [#187](https://github.com/kstepien3/ng-zen/issues/187)
|
|
405
|
-
* chore(dependencies): update ngx-schematic-builder to v0.2.0 (#183) ([5ea0cea](https://github.com/kstepien3/ng-zen/commit/5ea0cea)), closes [#183](https://github.com/kstepien3/ng-zen/issues/183)
|
|
406
|
-
* chore(workflow): update deploy workflow for tag-based triggering (#166) ([0fea522](https://github.com/kstepien3/ng-zen/commit/0fea522)), closes [#166](https://github.com/kstepien3/ng-zen/issues/166) [#165](https://github.com/kstepien3/ng-zen/issues/165)
|
|
407
|
-
* chore(workflows): disable persist-credentials in release workflow (#188) ([b784e47](https://github.com/kstepien3/ng-zen/commit/b784e47)), closes [#188](https://github.com/kstepien3/ng-zen/issues/188)
|
|
408
|
-
* feat(divider): add zen-divider component (#186) ([c021773](https://github.com/kstepien3/ng-zen/commit/c021773)), closes [#186](https://github.com/kstepien3/ng-zen/issues/186)
|
|
409
|
-
* style(components): update outline styles (#184) ([5737a15](https://github.com/kstepien3/ng-zen/commit/5737a15)), closes [#184](https://github.com/kstepien3/ng-zen/issues/184)
|
|
410
|
-
* fix(schematics/ng-add): run other schematics after installation (#177) ([5cb1be4](https://github.com/kstepien3/ng-zen/commit/5cb1be4)), closes [#177](https://github.com/kstepien3/ng-zen/issues/177)
|
|
411
|
-
* ci(eslint): fix plugins and configure linting rules (#176) ([5e93a09](https://github.com/kstepien3/ng-zen/commit/5e93a09)), closes [#176](https://github.com/kstepien3/ng-zen/issues/176)
|
|
412
|
-
* build(deps-dev): bump typescript from 5.7.3 to 5.8.3 (#154) ([3ebe49f](https://github.com/kstepien3/ng-zen/commit/3ebe49f)), closes [#154](https://github.com/kstepien3/ng-zen/issues/154)
|
|
413
|
-
* build(ngx-schematic-builder): migrate the custom builder (#175) ([c7d19eb](https://github.com/kstepien3/ng-zen/commit/c7d19eb)), closes [#175](https://github.com/kstepien3/ng-zen/issues/175)
|
|
414
|
-
* Merge remote-tracking branch 'origin/next' into develop ([f581d01](https://github.com/kstepien3/ng-zen/commit/f581d01))
|
|
415
|
-
|
|
416
|
-
## [19.1.0](https://github.com/kstepien3/ng-zen/compare/v19.0.0...v19.1.0) (2025-04-27)
|
|
417
|
-
|
|
418
|
-
### π New Features
|
|
419
|
-
|
|
420
|
-
* **switch:** add missing css variables ([0481ac7](https://github.com/kstepien3/ng-zen/commit/0481ac7d735eba4ee47fbc6a69cdee643f5b9b4c))
|
|
421
|
-
|
|
422
|
-
### ποΈ Build Changes
|
|
423
|
-
|
|
424
|
-
* **deps-dev:** bump @angular-devkit/architect from 0.1902.6 to 0.1902.9 ([#160](https://github.com/kstepien3/ng-zen/issues/160)) ([e8fa092](https://github.com/kstepien3/ng-zen/commit/e8fa092e8aefcd15f4fb5755e150b2834d359fb4))
|
|
425
|
-
* **deps-dev:** bump angular-eslint from 19.0.2 to 19.3.0 ([#136](https://github.com/kstepien3/ng-zen/issues/136)) ([ccad1a9](https://github.com/kstepien3/ng-zen/commit/ccad1a903bbd8edf37571f764dded81ea5fe29aa))
|
|
426
|
-
* **deps-dev:** bump eslint-plugin-storybook from 0.11.6 to 0.12.0 ([#137](https://github.com/kstepien3/ng-zen/issues/137)) ([e8d63f3](https://github.com/kstepien3/ng-zen/commit/e8d63f3ec9d7f0af1a4cb7e2ceb3ff2843af43ad))
|
|
427
|
-
* **deps-dev:** bump typescript-eslint from 8.24.0 to 8.29.0 ([#135](https://github.com/kstepien3/ng-zen/issues/135)) ([89d371f](https://github.com/kstepien3/ng-zen/commit/89d371f73f711848c548c32e8c1d5201f80c3073))
|
|
428
|
-
|
|
429
|
-
### π§Ή Chore
|
|
430
|
-
|
|
431
|
-
* add conventional-changelog-conventionalcommits dependency ([c6d2342](https://github.com/kstepien3/ng-zen/commit/c6d23422c5866645b520f55dc3c10700fc268d06))
|
|
432
|
-
* change version alpha -> next ([aa5482c](https://github.com/kstepien3/ng-zen/commit/aa5482cd504a89e60eae07f6a3ea343ca8886e57))
|
|
433
|
-
* change version to v19.0.0-next.0 [skip ci] ([7ee3dbd](https://github.com/kstepien3/ng-zen/commit/7ee3dbd6d22a3d24c85fba0978c127f28c9248d4))
|
|
434
|
-
* fix problems with release ([a54af7a](https://github.com/kstepien3/ng-zen/commit/a54af7aa33259bb904df707f8450b39a1f8e00c9))
|
|
435
|
-
* **release:** 19.1.0-next.1 [skip ci] ([7ca3b5c](https://github.com/kstepien3/ng-zen/commit/7ca3b5c989121b41c95c261236b5c89409c83210))
|
|
436
|
-
|
|
437
|
-
### π Documentation
|
|
438
|
-
|
|
439
|
-
* **readme.md:** update links in badges ([#146](https://github.com/kstepien3/ng-zen/issues/146)) ([667f71c](https://github.com/kstepien3/ng-zen/commit/667f71c3891764f12d7b025e4b0c7e9ea872d00b))
|
|
440
|
-
* **README:** improve documentation ([#149](https://github.com/kstepien3/ng-zen/issues/149)) ([bbbfd4e](https://github.com/kstepien3/ng-zen/commit/bbbfd4e592907c6c544e9004d104842df5475fab))
|
|
441
|
-
* **storybook:** load CHANGELOG.md ([#145](https://github.com/kstepien3/ng-zen/issues/145)) ([f7df739](https://github.com/kstepien3/ng-zen/commit/f7df739ba88d4ffc1a63dea6bdec2bb3112933d0))
|
|
442
|
-
* update development information ([#148](https://github.com/kstepien3/ng-zen/issues/148)) ([981a998](https://github.com/kstepien3/ng-zen/commit/981a9981385d22d763fe63bfcf075970bec4495d))
|
|
443
|
-
|
|
444
|
-
## [19.1.0-next.1](https://github.com/kstepien3/ng-zen/compare/v19.0.0...v19.1.0-next.1) (2025-04-06)
|
|
445
|
-
|
|
446
|
-
### π New Features
|
|
447
|
-
|
|
448
|
-
* **switch:** add missing css variables ([0481ac7](https://github.com/kstepien3/ng-zen/commit/0481ac7d735eba4ee47fbc6a69cdee643f5b9b4c))
|
|
449
|
-
|
|
450
|
-
### π§Ή Chore
|
|
451
|
-
|
|
452
|
-
* add conventional-changelog-conventionalcommits dependency ([c6d2342](https://github.com/kstepien3/ng-zen/commit/c6d23422c5866645b520f55dc3c10700fc268d06))
|
|
453
|
-
* change version alpha -> next ([aa5482c](https://github.com/kstepien3/ng-zen/commit/aa5482cd504a89e60eae07f6a3ea343ca8886e57))
|
|
454
|
-
* change version to v19.0.0-next.0 [skip ci] ([7ee3dbd](https://github.com/kstepien3/ng-zen/commit/7ee3dbd6d22a3d24c85fba0978c127f28c9248d4))
|
|
455
|
-
* fix problems with release ([a54af7a](https://github.com/kstepien3/ng-zen/commit/a54af7aa33259bb904df707f8450b39a1f8e00c9))
|
|
13
|
+
Development mode - changelog will be generated during build.
|
package/README.md
CHANGED
|
@@ -22,7 +22,13 @@
|
|
|
22
22
|
<img src="https://img.shields.io/badge/-Repository-181818?style=flat&logo=github&logoColor=white" alt="Repository" />
|
|
23
23
|
</a>
|
|
24
24
|
<a href="https://kstepien3.github.io/ng-zen/">
|
|
25
|
-
<img src="https://img.shields.io/badge/-Storybook
|
|
25
|
+
<img src="https://img.shields.io/badge/-Storybook-FF4785?style=flat&logo=storybook&logoColor=white" alt="Storybook" />
|
|
26
|
+
</a>
|
|
27
|
+
</p>
|
|
28
|
+
|
|
29
|
+
<p>
|
|
30
|
+
<a href="https://deepwiki.com/kstepien3/ng-zen">
|
|
31
|
+
<img src="https://deepwiki.com/badge.svg" alt="DeepWiki" />
|
|
26
32
|
</a>
|
|
27
33
|
</p>
|
|
28
34
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ng-zen/cli",
|
|
3
|
-
"version": "21.
|
|
3
|
+
"version": "21.3.0-next.1",
|
|
4
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,
|
|
@@ -65,14 +65,11 @@
|
|
|
65
65
|
},
|
|
66
66
|
"schematics": "./schematics/collection.json",
|
|
67
67
|
"packageManager": "pnpm@10.24.0",
|
|
68
|
-
"peerDependencies": {
|
|
69
|
-
"@angular/common": ">=20.0.0",
|
|
70
|
-
"@angular/core": ">=20.0.0"
|
|
71
|
-
},
|
|
68
|
+
"peerDependencies": {},
|
|
72
69
|
"dependencies": {
|
|
73
|
-
"@angular-devkit/core": "^
|
|
74
|
-
"@angular-devkit/schematics": "^
|
|
75
|
-
"@angular/build": "
|
|
70
|
+
"@angular-devkit/core": "^22.0.1",
|
|
71
|
+
"@angular-devkit/schematics": "^22.0.1",
|
|
72
|
+
"@angular/build": "22.0.1",
|
|
76
73
|
"tslib": "^2.8.1"
|
|
77
74
|
}
|
|
78
75
|
}
|
|
@@ -1,49 +1,185 @@
|
|
|
1
|
+
@use 'sass:map';
|
|
2
|
+
|
|
1
3
|
// Globals
|
|
2
|
-
$transition-duration: var(--zen-transition-duration, 0.
|
|
4
|
+
$transition-duration: var(--zen-transition-duration, 0.2s);
|
|
3
5
|
$outline: var(--zen-outline, 2px solid hsl(200deg 100% 50% / 50%));
|
|
4
6
|
|
|
5
7
|
:host {
|
|
6
|
-
--zen-button-padding: 0.5rem 1rem;
|
|
7
|
-
--zen-button-bg-color: hsl(0deg 0% 0%);
|
|
8
|
-
--zen-button-bg-color-hover: hsl(0deg 0% 20%);
|
|
9
|
-
--zen-button-color: hsl(0deg 0% 100%);
|
|
10
8
|
--zen-button-shadow: 0 2px 4px hsl(0deg 0% 0% / 10%);
|
|
9
|
+
--zen-button-neutral: var(--zen-neutral, hsl(30deg 5% 10%));
|
|
10
|
+
--zen-button-primary: var(--zen-primary, hsl(193deg 58% 34%));
|
|
11
|
+
--zen-button-success: var(--zen-success, hsl(142deg 38% 36%));
|
|
12
|
+
--zen-button-warning: var(--zen-warning, hsl(36deg 72% 46%));
|
|
13
|
+
--zen-button-danger: var(--zen-danger, hsl(348deg 52% 42%));
|
|
14
|
+
--zen-button-info: var(--zen-info, hsl(214deg 34% 46%));
|
|
11
15
|
}
|
|
12
16
|
|
|
17
|
+
$sizes: (
|
|
18
|
+
sm: (
|
|
19
|
+
padding: 0.35rem 0.625rem,
|
|
20
|
+
font-size: 0.75rem,
|
|
21
|
+
gap: 0.375rem,
|
|
22
|
+
),
|
|
23
|
+
md: (
|
|
24
|
+
padding: 0.5rem 0.875rem,
|
|
25
|
+
font-size: 0.875rem,
|
|
26
|
+
gap: 0.5rem,
|
|
27
|
+
),
|
|
28
|
+
lg: (
|
|
29
|
+
padding: 0.625rem 1rem,
|
|
30
|
+
font-size: 1rem,
|
|
31
|
+
gap: 0.5rem,
|
|
32
|
+
),
|
|
33
|
+
);
|
|
34
|
+
$colors: (
|
|
35
|
+
primary: var(--zen-button-primary),
|
|
36
|
+
success: var(--zen-button-success),
|
|
37
|
+
warning: var(--zen-button-warning),
|
|
38
|
+
danger: var(--zen-button-danger),
|
|
39
|
+
info: var(--zen-button-info),
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
// Color mix percentages for filled variant states
|
|
43
|
+
$filled-base-opacity: 8%;
|
|
44
|
+
$filled-hover-opacity: 15%;
|
|
45
|
+
$filled-active-opacity: 25%;
|
|
46
|
+
|
|
47
|
+
// Ghost/Link variant opacity levels
|
|
48
|
+
$ghost-hover-opacity: 10%;
|
|
49
|
+
$ghost-active-opacity: 20%;
|
|
50
|
+
|
|
51
|
+
// Outline variant opacity levels
|
|
52
|
+
$outline-hover-opacity: 70%;
|
|
53
|
+
$outline-active-bg-opacity: 20%;
|
|
54
|
+
|
|
55
|
+
// Disabled state
|
|
56
|
+
$disabled-opacity: 0.6;
|
|
57
|
+
|
|
58
|
+
// Default state hover/active mixing ratios (oklch)
|
|
59
|
+
$default-hover-mix: 85%;
|
|
60
|
+
$default-active-mix: 75%;
|
|
61
|
+
|
|
13
62
|
/* stylelint-disable-next-line no-duplicate-selectors -- separate variables and styles */
|
|
14
63
|
:host {
|
|
15
|
-
|
|
64
|
+
--zen-button-bg-color: var(--zen-button-neutral); // default
|
|
65
|
+
|
|
16
66
|
background-color: var(--zen-button-bg-color);
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
67
|
+
display: inline-flex;
|
|
68
|
+
align-items: center;
|
|
69
|
+
justify-content: center;
|
|
70
|
+
line-height: 1;
|
|
21
71
|
font-weight: bold;
|
|
22
72
|
text-align: center;
|
|
73
|
+
text-decoration: none;
|
|
74
|
+
white-space: nowrap;
|
|
75
|
+
user-select: none;
|
|
23
76
|
cursor: pointer;
|
|
24
77
|
border: none;
|
|
25
|
-
border-radius:
|
|
26
|
-
|
|
27
|
-
transition
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
78
|
+
border-radius: 0.625rem;
|
|
79
|
+
box-shadow: var(--zen-button-shadow);
|
|
80
|
+
transition:
|
|
81
|
+
background-color $transition-duration ease,
|
|
82
|
+
transform $transition-duration ease,
|
|
83
|
+
color $transition-duration ease,
|
|
84
|
+
border-color $transition-duration ease;
|
|
85
|
+
color: var(--zen-button-color, contrast-color(var(--zen-button-bg-color)));
|
|
32
86
|
}
|
|
33
87
|
|
|
34
|
-
/* Hover state */
|
|
35
88
|
:host:hover {
|
|
36
|
-
background-color: var(--zen-button-bg-color-hover);
|
|
89
|
+
background-color: color-mix(in oklch, var(--zen-button-bg-color) $default-hover-mix, var(--zen-button-color, white));
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
:host:active {
|
|
93
|
+
background-color: color-mix(in oklch, var(--zen-button-bg-color) $default-active-mix, var(--zen-button-color, white));
|
|
94
|
+
transform: translateY(1px);
|
|
37
95
|
}
|
|
38
96
|
|
|
39
|
-
/* Focus state */
|
|
40
97
|
:host:focus-visible {
|
|
41
98
|
outline: $outline;
|
|
99
|
+
outline-offset: 2px;
|
|
42
100
|
}
|
|
43
101
|
|
|
44
|
-
|
|
45
|
-
:host[aria-disabled]:not([aria-disabled='false']),
|
|
46
|
-
:host[disabled]:not([disabled='false']) {
|
|
102
|
+
:host([disabled]) {
|
|
47
103
|
cursor: not-allowed;
|
|
48
|
-
opacity:
|
|
104
|
+
opacity: $disabled-opacity;
|
|
105
|
+
pointer-events: none;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// --- SIZES ---
|
|
109
|
+
@each $name, $config in $sizes {
|
|
110
|
+
:host([data-size='#{$name}']) {
|
|
111
|
+
padding: map.get($config, padding);
|
|
112
|
+
font-size: map.get($config, font-size);
|
|
113
|
+
gap: map.get($config, gap);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// --- COLORS ---
|
|
118
|
+
@each $name, $bg-color in $colors {
|
|
119
|
+
:host([data-color='#{$name}']) {
|
|
120
|
+
--zen-button-bg-color: #{$bg-color};
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// --- VARIANTS ---
|
|
125
|
+
|
|
126
|
+
/* Outline variant */
|
|
127
|
+
:host([data-variant='outline']) {
|
|
128
|
+
background-color: transparent;
|
|
129
|
+
color: var(--zen-button-bg-color);
|
|
130
|
+
border-width: 1px;
|
|
131
|
+
border-style: solid;
|
|
132
|
+
border-color: var(--zen-button-bg-color);
|
|
133
|
+
box-shadow: none;
|
|
134
|
+
|
|
135
|
+
&:hover {
|
|
136
|
+
color: color-mix(in oklch, var(--zen-button-bg-color) $outline-hover-opacity, transparent);
|
|
137
|
+
border-color: color-mix(in oklch, var(--zen-button-bg-color) $outline-hover-opacity, transparent);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
&:active {
|
|
141
|
+
background-color: color-mix(in oklch, var(--zen-button-bg-color) $outline-active-bg-opacity, transparent);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/* Filled variant */
|
|
146
|
+
:host([data-variant='filled']) {
|
|
147
|
+
background-color: color-mix(in oklch, var(--zen-button-bg-color) $filled-base-opacity, transparent);
|
|
148
|
+
color: var(--zen-button-bg-color);
|
|
149
|
+
box-shadow: none;
|
|
150
|
+
|
|
151
|
+
&:hover {
|
|
152
|
+
background-color: color-mix(in oklch, var(--zen-button-bg-color) $filled-hover-opacity, transparent);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
&:active {
|
|
156
|
+
background-color: color-mix(in oklch, var(--zen-button-bg-color) $filled-active-opacity, transparent);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/* Ghost and Link variants */
|
|
161
|
+
:host([data-variant='ghost']),
|
|
162
|
+
:host([data-variant='link']) {
|
|
163
|
+
background-color: transparent;
|
|
164
|
+
color: var(--zen-button-bg-color);
|
|
165
|
+
box-shadow: none;
|
|
166
|
+
|
|
167
|
+
&:hover {
|
|
168
|
+
background-color: color-mix(in oklch, var(--zen-button-bg-color) $ghost-hover-opacity, transparent);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
&:active {
|
|
172
|
+
background-color: color-mix(in oklch, var(--zen-button-bg-color) $ghost-active-opacity, transparent);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/* Link variant only */
|
|
177
|
+
:host([data-variant='link']) {
|
|
178
|
+
text-decoration: underline;
|
|
179
|
+
text-underline-offset: 0.2em;
|
|
180
|
+
text-decoration-thickness: 1px;
|
|
181
|
+
|
|
182
|
+
&:hover {
|
|
183
|
+
text-decoration-thickness: 2px;
|
|
184
|
+
}
|
|
49
185
|
}
|
|
@@ -17,4 +17,73 @@ describe('ZenButton', () => {
|
|
|
17
17
|
const component = fixture.componentInstance;
|
|
18
18
|
expect(component).toBeTruthy();
|
|
19
19
|
});
|
|
20
|
+
|
|
21
|
+
it('should have default size md', () => {
|
|
22
|
+
const fixture = TestBed.createComponent(ZenButton);
|
|
23
|
+
fixture.detectChanges();
|
|
24
|
+
const button = fixture.nativeElement as HTMLButtonElement;
|
|
25
|
+
expect(button.getAttribute('data-size')).toBe('md');
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it('should have default color neutral', () => {
|
|
29
|
+
const fixture = TestBed.createComponent(ZenButton);
|
|
30
|
+
fixture.detectChanges();
|
|
31
|
+
const button = fixture.nativeElement as HTMLButtonElement;
|
|
32
|
+
expect(button.getAttribute('data-color')).toBe('neutral');
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
it('should have default variant solid', () => {
|
|
36
|
+
const fixture = TestBed.createComponent(ZenButton);
|
|
37
|
+
fixture.detectChanges();
|
|
38
|
+
const button = fixture.nativeElement as HTMLButtonElement;
|
|
39
|
+
expect(button.getAttribute('data-variant')).toBe('solid');
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it('should apply size sm', () => {
|
|
43
|
+
const fixture = TestBed.createComponent(ZenButton);
|
|
44
|
+
fixture.componentRef.setInput('size', 'sm');
|
|
45
|
+
fixture.detectChanges();
|
|
46
|
+
const button = fixture.nativeElement as HTMLButtonElement;
|
|
47
|
+
expect(button.getAttribute('data-size')).toBe('sm');
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
it('should apply size lg', () => {
|
|
51
|
+
const fixture = TestBed.createComponent(ZenButton);
|
|
52
|
+
fixture.componentRef.setInput('size', 'lg');
|
|
53
|
+
fixture.detectChanges();
|
|
54
|
+
const button = fixture.nativeElement as HTMLButtonElement;
|
|
55
|
+
expect(button.getAttribute('data-size')).toBe('lg');
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
it('should apply color primary', () => {
|
|
59
|
+
const fixture = TestBed.createComponent(ZenButton);
|
|
60
|
+
fixture.componentRef.setInput('color', 'primary');
|
|
61
|
+
fixture.detectChanges();
|
|
62
|
+
const button = fixture.nativeElement as HTMLButtonElement;
|
|
63
|
+
expect(button.getAttribute('data-color')).toBe('primary');
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it('should apply variant outline', () => {
|
|
67
|
+
const fixture = TestBed.createComponent(ZenButton);
|
|
68
|
+
fixture.componentRef.setInput('variant', 'outline');
|
|
69
|
+
fixture.detectChanges();
|
|
70
|
+
const button = fixture.nativeElement as HTMLButtonElement;
|
|
71
|
+
expect(button.getAttribute('data-variant')).toBe('outline');
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
it('should apply variant ghost', () => {
|
|
75
|
+
const fixture = TestBed.createComponent(ZenButton);
|
|
76
|
+
fixture.componentRef.setInput('variant', 'ghost');
|
|
77
|
+
fixture.detectChanges();
|
|
78
|
+
const button = fixture.nativeElement as HTMLButtonElement;
|
|
79
|
+
expect(button.getAttribute('data-variant')).toBe('ghost');
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
it('should apply variant link', () => {
|
|
83
|
+
const fixture = TestBed.createComponent(ZenButton);
|
|
84
|
+
fixture.componentRef.setInput('variant', 'link');
|
|
85
|
+
fixture.detectChanges();
|
|
86
|
+
const button = fixture.nativeElement as HTMLButtonElement;
|
|
87
|
+
expect(button.getAttribute('data-variant')).toBe('link');
|
|
88
|
+
});
|
|
20
89
|
});
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FavouriteIcon } from '@hugeicons/core-free-icons';
|
|
2
|
+
import { argsToTemplate, Meta, moduleMetadata, StoryObj } from '@storybook/angular';
|
|
2
3
|
|
|
4
|
+
import { ZenIcon } from '../icon';
|
|
3
5
|
import { ZenButton } from './button';
|
|
4
6
|
|
|
5
7
|
interface StoryParams {
|
|
6
|
-
|
|
8
|
+
color: 'neutral' | 'primary' | 'success' | 'warning' | 'danger' | 'info';
|
|
9
|
+
variant: 'solid' | 'filled' | 'outline' | 'ghost' | 'link';
|
|
7
10
|
disabled: boolean;
|
|
8
11
|
}
|
|
9
12
|
|
|
@@ -13,18 +16,23 @@ export default {
|
|
|
13
16
|
title: 'Ui/Button',
|
|
14
17
|
component: ZenButton,
|
|
15
18
|
args: {
|
|
16
|
-
content: 'Test',
|
|
17
19
|
disabled: false,
|
|
20
|
+
size: 'md',
|
|
21
|
+
color: 'neutral',
|
|
22
|
+
variant: 'solid',
|
|
18
23
|
},
|
|
19
24
|
argTypes: {
|
|
20
|
-
|
|
21
|
-
control: '
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
size: {
|
|
26
|
+
control: 'select',
|
|
27
|
+
options: ['sm', 'md', 'lg'],
|
|
28
|
+
},
|
|
29
|
+
color: {
|
|
30
|
+
control: 'select',
|
|
31
|
+
options: ['neutral', 'primary', 'success', 'warning', 'danger', 'info'],
|
|
32
|
+
},
|
|
33
|
+
variant: {
|
|
34
|
+
control: 'select',
|
|
35
|
+
options: ['solid', 'filled', 'outline', 'ghost', 'link'],
|
|
28
36
|
},
|
|
29
37
|
disabled: {
|
|
30
38
|
control: 'boolean',
|
|
@@ -36,12 +44,110 @@ export default {
|
|
|
36
44
|
},
|
|
37
45
|
},
|
|
38
46
|
},
|
|
39
|
-
render: ({
|
|
47
|
+
render: ({ ...args }) => ({
|
|
40
48
|
props: args,
|
|
41
|
-
template: `<button zen-btn ${args
|
|
49
|
+
template: `<button zen-btn ${argsToTemplate(args)}>Button</button>`,
|
|
42
50
|
}),
|
|
43
51
|
} satisfies Meta<Options>;
|
|
44
52
|
|
|
45
53
|
type Story = StoryObj<Options>;
|
|
46
54
|
|
|
47
55
|
export const Default: Story = {};
|
|
56
|
+
|
|
57
|
+
export const IconButton: Story = {
|
|
58
|
+
decorators: [moduleMetadata({ imports: [ZenIcon] })],
|
|
59
|
+
render: args => ({
|
|
60
|
+
props: { FavouriteIcon, ...args },
|
|
61
|
+
template: `<button zen-btn variant="ghost" ${argsToTemplate(args, { exclude: ['variant'] })}>
|
|
62
|
+
<zen-icon [icon]="FavouriteIcon" [size]="16" [strokeWidth]="3" />
|
|
63
|
+
</button>`,
|
|
64
|
+
}),
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
export const AllVariants: Story = {
|
|
68
|
+
render: () => ({
|
|
69
|
+
template: `
|
|
70
|
+
<div style="display: flex; gap: 0.5rem">
|
|
71
|
+
<button zen-button variant="solid">Solid</button>
|
|
72
|
+
<button zen-button variant="filled">Filled</button>
|
|
73
|
+
<button zen-button variant="outline">Outline</button>
|
|
74
|
+
<button zen-button variant="ghost">Ghost</button>
|
|
75
|
+
<button zen-button variant="link">Link</button>
|
|
76
|
+
</div>
|
|
77
|
+
`,
|
|
78
|
+
}),
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const AllSizes: Story = {
|
|
82
|
+
render: () => ({
|
|
83
|
+
template: `
|
|
84
|
+
<div style="display: flex; align-items: center; gap: 0.5rem">
|
|
85
|
+
<button zen-button size="sm">Small</button>
|
|
86
|
+
<button zen-button size="md">Medium</button>
|
|
87
|
+
<button zen-button size="lg">Large</button>
|
|
88
|
+
</div>
|
|
89
|
+
`,
|
|
90
|
+
}),
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
export const AllColorVariants: Story = {
|
|
94
|
+
render: () => ({
|
|
95
|
+
template: `
|
|
96
|
+
<div style="display: flex; flex-direction: column; gap: 1rem;">
|
|
97
|
+
<!-- Default (No color attribute) -->
|
|
98
|
+
<div style="display: flex; gap: 0.5rem;">
|
|
99
|
+
<button zen-button variant="solid">Solid</button>
|
|
100
|
+
<button zen-button variant="filled">Filled</button>
|
|
101
|
+
<button zen-button variant="outline">Outline</button>
|
|
102
|
+
<button zen-button variant="ghost">Ghost</button>
|
|
103
|
+
<button zen-button variant="link">Link</button>
|
|
104
|
+
</div>
|
|
105
|
+
|
|
106
|
+
<!-- Primary -->
|
|
107
|
+
<div style="display: flex; gap: 0.5rem;">
|
|
108
|
+
<button zen-button color="primary" variant="solid">Solid</button>
|
|
109
|
+
<button zen-button color="primary" variant="filled">Filled</button>
|
|
110
|
+
<button zen-button color="primary" variant="outline">Outline</button>
|
|
111
|
+
<button zen-button color="primary" variant="ghost">Ghost</button>
|
|
112
|
+
<button zen-button color="primary" variant="link">Link</button>
|
|
113
|
+
</div>
|
|
114
|
+
|
|
115
|
+
<!-- Success -->
|
|
116
|
+
<div style="display: flex; gap: 0.5rem;">
|
|
117
|
+
<button zen-button color="success" variant="solid">Solid</button>
|
|
118
|
+
<button zen-button color="success" variant="filled">Filled</button>
|
|
119
|
+
<button zen-button color="success" variant="outline">Outline</button>
|
|
120
|
+
<button zen-button color="success" variant="ghost">Ghost</button>
|
|
121
|
+
<button zen-button color="success" variant="link">Link</button>
|
|
122
|
+
</div>
|
|
123
|
+
|
|
124
|
+
<!-- Warning -->
|
|
125
|
+
<div style="display: flex; gap: 0.5rem;">
|
|
126
|
+
<button zen-button color="warning" variant="solid">Solid</button>
|
|
127
|
+
<button zen-button color="warning" variant="filled">Filled</button>
|
|
128
|
+
<button zen-button color="warning" variant="outline">Outline</button>
|
|
129
|
+
<button zen-button color="warning" variant="ghost">Ghost</button>
|
|
130
|
+
<button zen-button color="warning" variant="link">Link</button>
|
|
131
|
+
</div>
|
|
132
|
+
|
|
133
|
+
<!-- Danger -->
|
|
134
|
+
<div style="display: flex; gap: 0.5rem;">
|
|
135
|
+
<button zen-button color="danger" variant="solid">Solid</button>
|
|
136
|
+
<button zen-button color="danger" variant="filled">Filled</button>
|
|
137
|
+
<button zen-button color="danger" variant="outline">Outline</button>
|
|
138
|
+
<button zen-button color="danger" variant="ghost">Ghost</button>
|
|
139
|
+
<button zen-button color="danger" variant="link">Link</button>
|
|
140
|
+
</div>
|
|
141
|
+
|
|
142
|
+
<!-- Info -->
|
|
143
|
+
<div style="display: flex; gap: 0.5rem;">
|
|
144
|
+
<button zen-button color="info" variant="solid">Solid</button>
|
|
145
|
+
<button zen-button color="info" variant="filled">Filled</button>
|
|
146
|
+
<button zen-button color="info" variant="outline">Outline</button>
|
|
147
|
+
<button zen-button color="info" variant="ghost">Ghost</button>
|
|
148
|
+
<button zen-button color="info" variant="link">Link</button>
|
|
149
|
+
</div>
|
|
150
|
+
</div>
|
|
151
|
+
`,
|
|
152
|
+
}),
|
|
153
|
+
};
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* ZenButton is a reusable button component designed to provide
|
|
5
5
|
* a consistent and customizable button style across the application.
|
|
6
6
|
* It can be used with both `<button>` and `<a>` HTML elements by applying
|
|
7
|
-
* the `zen-button` attribute.
|
|
7
|
+
* the `zen-button` or `zen-btn` attribute.
|
|
8
8
|
*
|
|
9
9
|
* @example
|
|
10
|
+
* <button zen-button> ... </button>
|
|
10
11
|
* <button zen-btn> ... </button>
|
|
12
|
+
* <a zen-button href="..."> ... </a>
|
|
11
13
|
*
|
|
12
14
|
* ### CSS Custom Properties
|
|
13
15
|
*
|
|
@@ -15,11 +17,14 @@ import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
|
15
17
|
*
|
|
16
18
|
* ```css
|
|
17
19
|
* :root {
|
|
18
|
-
* --zen-button-
|
|
19
|
-
* --zen-button-bg-color: grey;
|
|
20
|
-
* --zen-button-color: white;
|
|
21
|
-
* --zen-button-padding: 0.5rem 2rem;
|
|
20
|
+
* --zen-button-radius: 0.625rem;
|
|
22
21
|
* --zen-button-shadow: 0 2px 4px hsl(0deg 0% 0% / 10%);
|
|
22
|
+
* --zen-button-neutral: hsl(30deg 5% 10%);
|
|
23
|
+
* --zen-button-primary: hsl(95deg 15% 50%);
|
|
24
|
+
* --zen-button-success: hsl(105deg 20% 35%);
|
|
25
|
+
* --zen-button-warning: hsl(40deg 45% 60%);
|
|
26
|
+
* --zen-button-danger: hsl(5deg 50% 45%);
|
|
27
|
+
* --zen-button-info: hsl(205deg 30% 40%);
|
|
23
28
|
* }
|
|
24
29
|
* ```
|
|
25
30
|
*
|
|
@@ -35,5 +40,15 @@ import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
|
35
40
|
`,
|
|
36
41
|
styleUrl: './button.scss',
|
|
37
42
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
43
|
+
host: {
|
|
44
|
+
'[attr.type]': '"button"',
|
|
45
|
+
'[attr.data-size]': 'size()',
|
|
46
|
+
'[attr.data-variant]': 'variant()',
|
|
47
|
+
'[attr.data-color]': 'color()',
|
|
48
|
+
},
|
|
38
49
|
})
|
|
39
|
-
export class ZenButton {
|
|
50
|
+
export class ZenButton {
|
|
51
|
+
readonly size = input<'sm' | 'md' | 'lg'>('md');
|
|
52
|
+
readonly color = input<'neutral' | 'primary' | 'success' | 'warning' | 'danger' | 'info'>('neutral');
|
|
53
|
+
readonly variant = input<'solid' | 'outline' | 'filled' | 'ghost' | 'link'>('solid');
|
|
54
|
+
}
|
|
@@ -66,9 +66,9 @@ See [GitHub](https://github.com/kstepien3/ng-zen), [MDN Dialog Element](https://
|
|
|
66
66
|
@Component({
|
|
67
67
|
template: `
|
|
68
68
|
<p>{{ message() }}</p>
|
|
69
|
-
<div style="display: flex; gap: 0.5rem; margin-top: 1rem;">
|
|
69
|
+
<div style="display: flex; gap: 0.5rem; margin-top: 1rem; justify-content: end">
|
|
70
|
+
<button (click)="cancel()" color="danger" variant="filled" zen-btn>Cancel</button>
|
|
70
71
|
<button (click)="confirmClick.emit('confirmed!')" zen-btn>Confirm</button>
|
|
71
|
-
<button (click)="cancel()" zen-btn>Cancel</button>
|
|
72
72
|
</div>
|
|
73
73
|
`,
|
|
74
74
|
standalone: true,
|
|
@@ -56,7 +56,7 @@ export const Default: Story = {
|
|
|
56
56
|
|
|
57
57
|
<dialog zen-dialog [(open)]="open" ${argsToTemplate(args)}>
|
|
58
58
|
<p>This is the dialog content. You can put any content here.</p>
|
|
59
|
-
<button zen-btn (click)="open.set(false)">Close</button>
|
|
59
|
+
<button zen-btn (click)="open.set(false)" variant="filled" color="danger">Close</button>
|
|
60
60
|
</dialog>
|
|
61
61
|
`,
|
|
62
62
|
};
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
:host {
|
|
2
2
|
--zen-popover-offset: 0.5rem;
|
|
3
|
+
--zen-popover-bg: white;
|
|
4
|
+
--zen-popover-border: 1px solid #ccc;
|
|
5
|
+
--zen-popover-border-radius: 8px;
|
|
6
|
+
--zen-popover-padding: 0.5rem;
|
|
7
|
+
--zen-popover-shadow: 0 4px 12px rgb(0 0 0 / 15%);
|
|
8
|
+
--zen-popover-max-width: 300px;
|
|
3
9
|
}
|
|
4
10
|
|
|
5
11
|
/* stylelint-disable-next-line no-duplicate-selectors -- separate variables and styles */
|
|
@@ -8,12 +14,12 @@
|
|
|
8
14
|
inset: auto;
|
|
9
15
|
margin: var(--zen-popover-offset);
|
|
10
16
|
width: max-content;
|
|
11
|
-
max-width:
|
|
12
|
-
background:
|
|
13
|
-
border:
|
|
14
|
-
border-radius:
|
|
15
|
-
padding:
|
|
16
|
-
box-shadow:
|
|
17
|
+
max-width: var(--zen-popover-max-width);
|
|
18
|
+
background: var(--zen-popover-bg);
|
|
19
|
+
border: var(--zen-popover-border);
|
|
20
|
+
border-radius: var(--zen-popover-border-radius);
|
|
21
|
+
padding: var(--zen-popover-padding);
|
|
22
|
+
box-shadow: var(--zen-popover-shadow);
|
|
17
23
|
overflow: visible;
|
|
18
24
|
|
|
19
25
|
// Auto-reposition if the popover would overflow
|
|
@@ -43,7 +43,7 @@ const meta = {
|
|
|
43
43
|
},
|
|
44
44
|
},
|
|
45
45
|
id: { control: 'text', table: { defaultValue: { summary: 'zen-popover-*X*' } } },
|
|
46
|
-
content: { name: 'zenPopover', control: 'text' },
|
|
46
|
+
content: { name: 'zenPopover', control: 'text', table: { defaultValue: { summary: '' } } },
|
|
47
47
|
},
|
|
48
48
|
args: {
|
|
49
49
|
placement: 'top',
|
|
@@ -64,3 +64,20 @@ export const Default: Story = {
|
|
|
64
64
|
`,
|
|
65
65
|
}),
|
|
66
66
|
};
|
|
67
|
+
|
|
68
|
+
export const WithTemplate: Story = {
|
|
69
|
+
render: ({ placement, content }) => ({
|
|
70
|
+
template: `
|
|
71
|
+
<ng-template #popoverContent>
|
|
72
|
+
<i>${content}</i>
|
|
73
|
+
</ng-template>
|
|
74
|
+
<button zen-btn [zenPopover]="popoverContent" [zenPopoverPlacement]="'${placement}'">
|
|
75
|
+
Template
|
|
76
|
+
</button>
|
|
77
|
+
`,
|
|
78
|
+
}),
|
|
79
|
+
args: {
|
|
80
|
+
id: 'zen-popover-template-story',
|
|
81
|
+
placement: 'top',
|
|
82
|
+
},
|
|
83
|
+
};
|
|
@@ -14,6 +14,8 @@ import {
|
|
|
14
14
|
import { ZenPopoverHost } from './host/popover-host';
|
|
15
15
|
import { PopoverPlacement } from './popover-positions.type';
|
|
16
16
|
|
|
17
|
+
type HostProperties = keyof ZenPopoverHost;
|
|
18
|
+
|
|
17
19
|
/**
|
|
18
20
|
* ZenPopover is a reusable popover directive built on the native Popover API.
|
|
19
21
|
* It provides a consistent, themeable popover surface with CSS-based positioning,
|
|
@@ -21,25 +23,51 @@ import { PopoverPlacement } from './popover-positions.type';
|
|
|
21
23
|
*
|
|
22
24
|
* ### Limitations (arrow)
|
|
23
25
|
* ZenPopover may use CSS fallback positioning (e.g. via `position-try-fallbacks`) to keep the
|
|
24
|
-
* popover inside the viewport. Today CSS doesn
|
|
25
|
-
* which fallback placement was ultimately chosen, so an
|
|
26
|
-
* can
|
|
26
|
+
* popover inside the viewport. Today CSS doesn't provide a stable, cross-browser way to detect
|
|
27
|
+
* which fallback placement was ultimately chosen, so an "arrow" implemented with `::before/::after`
|
|
28
|
+
* can't be reliably synchronized with the final placement without extra JavaScript.
|
|
27
29
|
* A CSS-only solution becomes possible with Anchored Container Queries (e.g. `container-type: anchored`
|
|
28
30
|
* and `@container anchored(fallback: ...)`) where supported.
|
|
29
31
|
*
|
|
30
|
-
* @see https://developer.chrome.com/blog/anchored-container-queries
|
|
32
|
+
* @see [Detect fallback positions with anchored container queries](https://developer.chrome.com/blog/anchored-container-queries)
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
*
|
|
36
|
+
* ```html
|
|
37
|
+
* <!-- String content -->
|
|
38
|
+
* <button [zenPopover]="'Hello World'" [zenPopoverPlacement]="'bottom'">
|
|
39
|
+
* Trigger
|
|
40
|
+
* </button>
|
|
41
|
+
*
|
|
42
|
+
* <!-- TemplateRef content -->
|
|
43
|
+
* <button [zenPopover]="popoverContent" zenPopoverPlacement="right">
|
|
44
|
+
* Trigger
|
|
45
|
+
* </button>
|
|
46
|
+
* <ng-template #popoverContent>
|
|
47
|
+
* <div>Custom content</div>
|
|
48
|
+
* </ng-template>
|
|
49
|
+
* ```
|
|
31
50
|
*
|
|
32
51
|
* ### CSS Custom Properties
|
|
33
|
-
*
|
|
52
|
+
*
|
|
53
|
+
* You can customize the component using CSS custom properties:
|
|
54
|
+
* ```css
|
|
55
|
+
* :root {
|
|
56
|
+
* --zen-popover-offset: 0.5rem;
|
|
57
|
+
* --zen-popover-bg: white;
|
|
58
|
+
* --zen-popover-border: 1px solid #ccc;
|
|
59
|
+
* --zen-popover-border-radius: 8px;
|
|
60
|
+
* --zen-popover-padding: 0.5rem;
|
|
61
|
+
* --zen-popover-shadow: 0 4px 12px rgb(0 0 0 / 15%);
|
|
62
|
+
* --zen-popover-max-width: 300px;
|
|
63
|
+
* }
|
|
64
|
+
* ```
|
|
34
65
|
*
|
|
35
66
|
* @author Konrad StΔpieΕ
|
|
36
67
|
* @license {@link https://github.com/kstepien3/ng-zen/blob/master/LICENSE|BSD-2-Clause}
|
|
37
68
|
* @see [GitHub](https://github.com/kstepien3/ng-zen)
|
|
38
69
|
* @see [MDN Popover API](https://developer.mozilla.org/en-US/docs/Web/API/Popover_API)
|
|
39
70
|
*/
|
|
40
|
-
|
|
41
|
-
type HostProperties = keyof ZenPopoverHost;
|
|
42
|
-
|
|
43
71
|
@Directive({
|
|
44
72
|
selector: '[zenPopover]',
|
|
45
73
|
standalone: true,
|