nath-angular-ui 0.0.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/README.md +64 -0
- package/package.json +36 -0
- package/styles/styles.css +285 -0
package/README.md
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# NathAngularUi
|
|
2
|
+
|
|
3
|
+
This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 22.0.0.
|
|
4
|
+
|
|
5
|
+
## Code scaffolding
|
|
6
|
+
|
|
7
|
+
Angular CLI includes powerful code scaffolding tools. To generate a new component, run:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
ng generate component component-name
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
ng generate --help
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Building
|
|
20
|
+
|
|
21
|
+
To build the library, run:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
ng build nath-angular-ui
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
This command will compile your project, and the build artifacts will be placed in the `dist/` directory.
|
|
28
|
+
|
|
29
|
+
### Publishing the Library
|
|
30
|
+
|
|
31
|
+
Once the project is built, you can publish your library by following these steps:
|
|
32
|
+
|
|
33
|
+
1. Navigate to the `dist` directory:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
cd dist/nath-angular-ui
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
2. Run the `npm publish` command to publish your library to the npm registry:
|
|
40
|
+
```bash
|
|
41
|
+
npm publish
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Running unit tests
|
|
45
|
+
|
|
46
|
+
To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
ng test
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Running end-to-end tests
|
|
53
|
+
|
|
54
|
+
For end-to-end (e2e) testing, run:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
ng e2e
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.
|
|
61
|
+
|
|
62
|
+
## Additional Resources
|
|
63
|
+
|
|
64
|
+
For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
|
package/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "nath-angular-ui",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"peerDependencies": {
|
|
5
|
+
"@angular/aria": "^22.0.0",
|
|
6
|
+
"@angular/cdk": "^22.0.0",
|
|
7
|
+
"@angular/common": "^22.0.0",
|
|
8
|
+
"@angular/core": "^22.0.0",
|
|
9
|
+
"@angular/forms": "^22.0.0",
|
|
10
|
+
"@angular/platform-browser": "^22.0.0",
|
|
11
|
+
"@lucide/angular": "^1.23.0",
|
|
12
|
+
"ngx-mask": "^22.0.0"
|
|
13
|
+
},
|
|
14
|
+
"dependencies": {
|
|
15
|
+
"tslib": "^2.3.0"
|
|
16
|
+
},
|
|
17
|
+
"sideEffects": false,
|
|
18
|
+
"files": [
|
|
19
|
+
"styles"
|
|
20
|
+
],
|
|
21
|
+
"exports": {
|
|
22
|
+
"./styles/styles.css": {
|
|
23
|
+
"style": "./styles/styles.css"
|
|
24
|
+
},
|
|
25
|
+
"./package.json": {
|
|
26
|
+
"default": "./package.json"
|
|
27
|
+
},
|
|
28
|
+
".": {
|
|
29
|
+
"types": "./types/nath-angular-ui.d.ts",
|
|
30
|
+
"default": "./fesm2022/nath-angular-ui.mjs"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"module": "fesm2022/nath-angular-ui.mjs",
|
|
34
|
+
"typings": "types/nath-angular-ui.d.ts",
|
|
35
|
+
"type": "module"
|
|
36
|
+
}
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
@import 'tailwindcss';
|
|
2
|
+
|
|
3
|
+
@custom-variant dark (&:where(.dark, .dark *));
|
|
4
|
+
|
|
5
|
+
@theme inline {
|
|
6
|
+
--breakpoint-sm: 640px;
|
|
7
|
+
--breakpoint-md: 768px;
|
|
8
|
+
--breakpoint-lg: 1024px;
|
|
9
|
+
--breakpoint-xl: 1280px;
|
|
10
|
+
--breakpoint-2xl: 1600px;
|
|
11
|
+
--color-primary-50: #f9fafb;
|
|
12
|
+
--color-primary-100: #e4e7e9;
|
|
13
|
+
--color-primary-200: #ced4d8;
|
|
14
|
+
--color-primary-300: #b9c1c7;
|
|
15
|
+
--color-primary-400: #a3aeb6;
|
|
16
|
+
--color-primary-500: #8e9ba5;
|
|
17
|
+
--color-primary-600: #79848c;
|
|
18
|
+
--color-primary-700: #636d73;
|
|
19
|
+
--color-primary-800: #4e555b;
|
|
20
|
+
--color-primary-900: #393e42;
|
|
21
|
+
--color-primary-950: #242729;
|
|
22
|
+
--color-danger-50: oklch(97.1% 0.013 17.38);
|
|
23
|
+
--color-danger-100: oklch(93.6% 0.032 17.717);
|
|
24
|
+
--color-danger-200: oklch(88.5% 0.062 18.334);
|
|
25
|
+
--color-danger-300: oklch(80.8% 0.114 19.571);
|
|
26
|
+
--color-danger-400: oklch(70.4% 0.191 22.216);
|
|
27
|
+
--color-danger-500: oklch(63.7% 0.237 25.331);
|
|
28
|
+
--color-danger-600: oklch(57.7% 0.245 27.325);
|
|
29
|
+
--color-danger-700: oklch(50.5% 0.213 27.518);
|
|
30
|
+
--color-danger-800: oklch(44.4% 0.177 26.899);
|
|
31
|
+
--color-danger-900: oklch(39.6% 0.141 25.723);
|
|
32
|
+
--color-danger-950: oklch(25.8% 0.092 26.042);
|
|
33
|
+
--color-warning-50: oklch(98% 0.016 73.684);
|
|
34
|
+
--color-warning-100: oklch(95.4% 0.038 75.164);
|
|
35
|
+
--color-warning-200: oklch(90.1% 0.076 70.697);
|
|
36
|
+
--color-warning-300: oklch(83.7% 0.128 66.29);
|
|
37
|
+
--color-warning-400: oklch(75% 0.183 55.934);
|
|
38
|
+
--color-warning-500: oklch(70.5% 0.213 47.604);
|
|
39
|
+
--color-warning-600: oklch(64.6% 0.222 41.116);
|
|
40
|
+
--color-warning-700: oklch(55.3% 0.195 38.402);
|
|
41
|
+
--color-warning-800: oklch(47% 0.157 37.304);
|
|
42
|
+
--color-warning-900: oklch(40.8% 0.123 38.172);
|
|
43
|
+
--color-warning-950: oklch(26.6% 0.079 36.259);
|
|
44
|
+
--color-success-50: oklch(98.2% 0.018 155.826);
|
|
45
|
+
--color-success-100: oklch(96.2% 0.044 156.743);
|
|
46
|
+
--color-success-200: oklch(92.5% 0.084 155.995);
|
|
47
|
+
--color-success-300: oklch(87.1% 0.15 154.449);
|
|
48
|
+
--color-success-400: oklch(79.2% 0.209 151.711);
|
|
49
|
+
--color-success-500: oklch(72.3% 0.219 149.579);
|
|
50
|
+
--color-success-600: oklch(62.7% 0.194 149.214);
|
|
51
|
+
--color-success-700: oklch(52.7% 0.154 150.069);
|
|
52
|
+
--color-success-800: oklch(44.8% 0.119 151.328);
|
|
53
|
+
--color-success-900: oklch(39.3% 0.095 152.535);
|
|
54
|
+
--color-success-950: oklch(26.6% 0.065 152.934);
|
|
55
|
+
--color-info-50: oklch(98.4% 0.019 200.873);
|
|
56
|
+
--color-info-100: oklch(95.6% 0.045 203.388);
|
|
57
|
+
--color-info-200: oklch(91.7% 0.08 205.041);
|
|
58
|
+
--color-info-300: oklch(86.5% 0.127 207.078);
|
|
59
|
+
--color-info-400: oklch(78.9% 0.154 211.53);
|
|
60
|
+
--color-info-500: oklch(71.5% 0.143 215.221);
|
|
61
|
+
--color-info-600: oklch(60.9% 0.126 221.723);
|
|
62
|
+
--color-info-700: oklch(52% 0.105 223.128);
|
|
63
|
+
--color-info-800: oklch(45% 0.085 224.283);
|
|
64
|
+
--color-info-900: oklch(39.8% 0.07 227.392);
|
|
65
|
+
--color-info-950: oklch(30.2% 0.056 229.695);
|
|
66
|
+
--color-help-50: oklch(96.9% 0.016 293.756);
|
|
67
|
+
--color-help-100: oklch(94.3% 0.029 294.588);
|
|
68
|
+
--color-help-200: oklch(89.4% 0.057 293.283);
|
|
69
|
+
--color-help-300: oklch(81.1% 0.111 293.571);
|
|
70
|
+
--color-help-400: oklch(70.2% 0.183 293.541);
|
|
71
|
+
--color-help-500: oklch(60.6% 0.25 292.717);
|
|
72
|
+
--color-help-600: oklch(54.1% 0.281 293.009);
|
|
73
|
+
--color-help-700: oklch(49.1% 0.27 292.581);
|
|
74
|
+
--color-help-800: oklch(43.2% 0.232 292.759);
|
|
75
|
+
--color-help-900: oklch(38% 0.189 293.745);
|
|
76
|
+
--color-help-950: oklch(28.3% 0.141 291.089);
|
|
77
|
+
--color-surface-50: oklch(98.5% 0 0);
|
|
78
|
+
--color-surface-100: oklch(96.7% 0.001 286.375);
|
|
79
|
+
--color-surface-200: oklch(92% 0.004 286.32);
|
|
80
|
+
--color-surface-300: oklch(87.1% 0.006 286.286);
|
|
81
|
+
--color-surface-400: oklch(70.5% 0.015 286.067);
|
|
82
|
+
--color-surface-500: oklch(55.2% 0.016 285.938);
|
|
83
|
+
--color-surface-600: oklch(44.2% 0.017 285.786);
|
|
84
|
+
--color-surface-700: oklch(37% 0.013 285.805);
|
|
85
|
+
--color-surface-800: oklch(27.4% 0.006 286.033);
|
|
86
|
+
--color-surface-900: oklch(21% 0.006 285.885);
|
|
87
|
+
--color-surface-950: oklch(14.1% 0.005 285.823);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
:root {
|
|
91
|
+
--color-zinc-950: theme('color.zinc.950');
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/* Force Tailwind v4 to evaluate hover targets using simple matching, bypassing media checks
|
|
95
|
+
to avoid "hover:" being ignored in certain browsers (like Chromium on Linux) */
|
|
96
|
+
@custom-variant hover (&:hover);
|
|
97
|
+
|
|
98
|
+
@layer base {
|
|
99
|
+
.inputgroup {
|
|
100
|
+
display: flex;
|
|
101
|
+
}
|
|
102
|
+
.inputgroup > *:last-child:not(:first-child),
|
|
103
|
+
.inputgroup > *:last-child:not(:first-child) > *,
|
|
104
|
+
.inputgroup > *:only-child > *:last-child:not(:first-child),
|
|
105
|
+
.inputgroup > * > *:last-child:not(:first-child) {
|
|
106
|
+
border-top-left-radius: 0;
|
|
107
|
+
border-bottom-left-radius: 0;
|
|
108
|
+
}
|
|
109
|
+
.inputgroup > *:first-child:not(:last-child),
|
|
110
|
+
.inputgroup > *:first-child:not(:last-child) > *,
|
|
111
|
+
.inputgroup > *:only-child > *:first-child:not(:last-child),
|
|
112
|
+
.inputgroup > * > *:first-child:not(:last-child) {
|
|
113
|
+
border-top-right-radius: 0;
|
|
114
|
+
border-bottom-right-radius: 0;
|
|
115
|
+
}
|
|
116
|
+
.inputgroup > *:not(:first-child):not(:last-child),
|
|
117
|
+
.inputgroup > *:not(:first-child):not(:last-child) > *,
|
|
118
|
+
.inputgroup > *:only-child > *:not(:first-child):not(:last-child),
|
|
119
|
+
.inputgroup > * > *:not(:first-child):not(:last-child) {
|
|
120
|
+
border-radius: 0;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.addon {
|
|
124
|
+
@apply inline-flex items-center justify-center px-3 py-2 bg-zinc-200 text-zinc-500 rounded-md shadow-sm;
|
|
125
|
+
.dark & {
|
|
126
|
+
@apply bg-slate-800 text-slate-300;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
button:not(.icon-button):not(.button-unstyled),
|
|
131
|
+
.button:not(.icon-button):not(.button-unstyled) {
|
|
132
|
+
@apply cursor-pointer
|
|
133
|
+
rounded-md box-border border border-transparent
|
|
134
|
+
focus:outline-none
|
|
135
|
+
inline-flex gap-2 items-center justify-center leading-5
|
|
136
|
+
px-2 py-2.5
|
|
137
|
+
hover:no-underline
|
|
138
|
+
transition duration-200
|
|
139
|
+
disabled:opacity-50 disabled:cursor-not-allowed;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
button:disabled,
|
|
143
|
+
.button:disabled {
|
|
144
|
+
@apply opacity-50 cursor-not-allowed;
|
|
145
|
+
|
|
146
|
+
.dark & {
|
|
147
|
+
@apply opacity-30!;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
input:not([type='checkbox']),
|
|
152
|
+
.input,
|
|
153
|
+
select,
|
|
154
|
+
textarea {
|
|
155
|
+
@apply input-style;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
input {
|
|
159
|
+
@apply px-3 py-2;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
select {
|
|
163
|
+
@apply pl-2! pr-8! py-2 has-[option.placeholder:checked]:text-zinc-400;
|
|
164
|
+
-webkit-appearance: none;
|
|
165
|
+
-moz-appearance: none;
|
|
166
|
+
appearance: none;
|
|
167
|
+
background-image: url('data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2224%22%20height=%2224%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20class=%22lucide%20lucide-chevron-down-icon%20lucide-chevron-down%22%3E%3Cpath%20d=%22m6%209%206%206%206-6%22/%3E%3C/svg%3E');
|
|
168
|
+
background-repeat: no-repeat;
|
|
169
|
+
background-position: calc(100% - 4px);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
table {
|
|
173
|
+
@apply w-full;
|
|
174
|
+
}
|
|
175
|
+
table thead {
|
|
176
|
+
@apply sticky top-0 z-2 border-b-4 border-b-zinc-300 dark:border-b-zinc-700 bg-body;
|
|
177
|
+
}
|
|
178
|
+
table tfoot {
|
|
179
|
+
@apply sticky bottom-0;
|
|
180
|
+
}
|
|
181
|
+
table tbody {
|
|
182
|
+
@apply divide-y divide-zinc-300 dark:divide-zinc-700;
|
|
183
|
+
}
|
|
184
|
+
table caption {
|
|
185
|
+
@apply text-left italic text-neutral-500;
|
|
186
|
+
}
|
|
187
|
+
table th,
|
|
188
|
+
table td {
|
|
189
|
+
@apply px-2 py-2 text-left align-top;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
@utility bg-body {
|
|
194
|
+
@apply bg-slate-200 dark:bg-zinc-950;
|
|
195
|
+
}
|
|
196
|
+
@utility text-body {
|
|
197
|
+
@apply dark:text-zinc-200 text-slate-950;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
@utility inner-input {
|
|
201
|
+
@apply py-1.5! text-sm! outline-none! border-0! focus-within:ring-0! focus-within:border-0! shadow-none!;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
@utility items-unset {
|
|
205
|
+
align-items: unset;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
@utility toolbar {
|
|
209
|
+
@apply flex items-center justify-between flex-wrap py-3 px-4 bg-white rounded-md shadow-sm;
|
|
210
|
+
.dark & {
|
|
211
|
+
@apply bg-zinc-900;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
.button-small {
|
|
216
|
+
@apply leading-2.5! py-1.5!;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.button-primary {
|
|
220
|
+
@apply shadow-sm
|
|
221
|
+
text-white bg-primary-500 not-disabled:hover:bg-primary-600;
|
|
222
|
+
.dark & {
|
|
223
|
+
@apply text-zinc-900 bg-primary-400 not-disabled:hover:bg-primary-300;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
.button-text-primary {
|
|
227
|
+
@apply text-(--color-primary-700) not-disabled:hover:text-primary-800;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
.button-secondary {
|
|
231
|
+
@apply shadow-sm text-slate-800 bg-slate-300 not-disabled:hover:bg-slate-300;
|
|
232
|
+
.dark & {
|
|
233
|
+
@apply text-slate-200 bg-slate-800 not-disabled:hover:bg-slate-700;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
.button-text-secondary {
|
|
237
|
+
@apply text-slate-800 not-disabled:hover:text-slate-900;
|
|
238
|
+
.dark & {
|
|
239
|
+
@apply text-slate-200 not-disabled:hover:text-slate-100;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
.button-success {
|
|
243
|
+
@apply shadow-sm text-white bg-(--color-success-500) not-disabled:hover:bg-(--color-success-600);
|
|
244
|
+
}
|
|
245
|
+
.button-text-success {
|
|
246
|
+
@apply text-(--color-success-500) not-disabled:hover:text-(--color-success-600);
|
|
247
|
+
}
|
|
248
|
+
.button-danger {
|
|
249
|
+
@apply shadow-sm text-white bg-(--color-danger-500) not-disabled:hover:bg-(--color-danger-600);
|
|
250
|
+
}
|
|
251
|
+
.button-text-danger {
|
|
252
|
+
@apply text-(--color-danger-500) not-disabled:hover:text-(--color-danger-600);
|
|
253
|
+
}
|
|
254
|
+
.button-warning {
|
|
255
|
+
@apply shadow-sm text-white bg-(--color-warning-500) not-disabled:hover:bg-(--color-warning-600);
|
|
256
|
+
}
|
|
257
|
+
.button-text-warning {
|
|
258
|
+
@apply text-(--color-warning-500) not-disabled:hover:text-(--color-warning-600);
|
|
259
|
+
}
|
|
260
|
+
.button-info {
|
|
261
|
+
@apply shadow-sm text-white bg-(--color-info-500) not-disabled:hover:bg-(--color-info-600);
|
|
262
|
+
}
|
|
263
|
+
.button-text-info {
|
|
264
|
+
@apply text-(--color-info-500) not-disabled:hover:text-(--color-info-600);
|
|
265
|
+
}
|
|
266
|
+
.button-help {
|
|
267
|
+
@apply shadow-sm text-white bg-(--color-help-500) not-disabled:hover:bg-(--color-help-600);
|
|
268
|
+
}
|
|
269
|
+
.button-text-help {
|
|
270
|
+
@apply text-(--color-help-500) not-disabled:hover:text-(--color-help-600);
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
@utility input-style {
|
|
274
|
+
/* 1. Base / Light Theme Styles */
|
|
275
|
+
@apply w-full flex flex-wrap items-center gap-1.5
|
|
276
|
+
border border-zinc-300 rounded-md shadow-sm
|
|
277
|
+
bg-white text-zinc-900 placeholder-zinc-400
|
|
278
|
+
focus-within:ring-1 focus-within:ring-black;
|
|
279
|
+
@apply disabled:opacity-50 disabled:cursor-not-allowed;
|
|
280
|
+
|
|
281
|
+
/* 2. Dark Theme Styles nested using the v4 @variant directive */
|
|
282
|
+
.dark & {
|
|
283
|
+
@apply border-zinc-600 bg-zinc-950 text-zinc-100 focus-within:ring-white;
|
|
284
|
+
}
|
|
285
|
+
}
|