@lesterarte/sefin-ui 0.0.1 → 0.0.3-dev.0
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 +41 -9
- package/fesm2022/lesterarte-sefin-ui.mjs +808 -0
- package/fesm2022/lesterarte-sefin-ui.mjs.map +1 -0
- package/package.json +12 -14
- package/types/lesterarte-sefin-ui.d.ts +605 -0
|
@@ -0,0 +1,605 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { EventEmitter } from '@angular/core';
|
|
3
|
+
import { ControlValueAccessor } from '@angular/forms';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Color design tokens as TypeScript constants
|
|
7
|
+
* Based on Secretaría de Finanzas brand guidelines
|
|
8
|
+
* These values are the source of truth for all color tokens
|
|
9
|
+
*/
|
|
10
|
+
declare const COLOR_TOKENS: {
|
|
11
|
+
readonly primary: {
|
|
12
|
+
readonly 50: "#e6f7fb";
|
|
13
|
+
readonly 100: "#b3e5f0";
|
|
14
|
+
readonly 200: "#80d3e5";
|
|
15
|
+
readonly 300: "#4dc1da";
|
|
16
|
+
readonly 400: "#2ab0cf";
|
|
17
|
+
readonly 500: "#55C3D8";
|
|
18
|
+
readonly 600: "#4aafc4";
|
|
19
|
+
readonly 700: "#3f9bb0";
|
|
20
|
+
readonly 800: "#34879c";
|
|
21
|
+
readonly 900: "#297388";
|
|
22
|
+
};
|
|
23
|
+
readonly secondary: {
|
|
24
|
+
readonly 50: "#f5f5f5";
|
|
25
|
+
readonly 100: "#e8e8e8";
|
|
26
|
+
readonly 200: "#cecece";
|
|
27
|
+
readonly 300: "#b5b5b5";
|
|
28
|
+
readonly 400: "#9b9b9b";
|
|
29
|
+
readonly 500: "#828282";
|
|
30
|
+
readonly 600: "#686868";
|
|
31
|
+
readonly 700: "#4f4f4f";
|
|
32
|
+
readonly 800: "#383838";
|
|
33
|
+
readonly 900: "#2a2a2a";
|
|
34
|
+
};
|
|
35
|
+
readonly neutral: {
|
|
36
|
+
readonly 50: "#ffffff";
|
|
37
|
+
readonly 100: "#f5f5f5";
|
|
38
|
+
readonly 200: "#cecece";
|
|
39
|
+
readonly 300: "#b5b5b5";
|
|
40
|
+
readonly 400: "#9b9b9b";
|
|
41
|
+
readonly 500: "#828282";
|
|
42
|
+
readonly 600: "#686868";
|
|
43
|
+
readonly 700: "#4f4f4f";
|
|
44
|
+
readonly 800: "#383838";
|
|
45
|
+
readonly 900: "#2a2a2a";
|
|
46
|
+
};
|
|
47
|
+
readonly success: {
|
|
48
|
+
readonly 50: "#e8f5e9";
|
|
49
|
+
readonly 100: "#c8e6c9";
|
|
50
|
+
readonly 200: "#a5d6a7";
|
|
51
|
+
readonly 300: "#81c784";
|
|
52
|
+
readonly 400: "#66bb6a";
|
|
53
|
+
readonly 500: "#4caf50";
|
|
54
|
+
readonly 600: "#43a047";
|
|
55
|
+
readonly 700: "#388e3c";
|
|
56
|
+
readonly 800: "#2e7d32";
|
|
57
|
+
readonly 900: "#1b5e20";
|
|
58
|
+
};
|
|
59
|
+
readonly warning: {
|
|
60
|
+
readonly 50: "#fff3e0";
|
|
61
|
+
readonly 100: "#ffe0b2";
|
|
62
|
+
readonly 200: "#ffcc80";
|
|
63
|
+
readonly 300: "#ffb74d";
|
|
64
|
+
readonly 400: "#ffa726";
|
|
65
|
+
readonly 500: "#ff9800";
|
|
66
|
+
readonly 600: "#fb8c00";
|
|
67
|
+
readonly 700: "#f57c00";
|
|
68
|
+
readonly 800: "#ef6c00";
|
|
69
|
+
readonly 900: "#e65100";
|
|
70
|
+
};
|
|
71
|
+
readonly error: {
|
|
72
|
+
readonly 50: "#ffebee";
|
|
73
|
+
readonly 100: "#ffcdd2";
|
|
74
|
+
readonly 200: "#ef9a9a";
|
|
75
|
+
readonly 300: "#e57373";
|
|
76
|
+
readonly 400: "#ef5350";
|
|
77
|
+
readonly 500: "#f44336";
|
|
78
|
+
readonly 600: "#e53935";
|
|
79
|
+
readonly 700: "#d32f2f";
|
|
80
|
+
readonly 800: "#c62828";
|
|
81
|
+
readonly 900: "#b71c1c";
|
|
82
|
+
};
|
|
83
|
+
readonly info: {
|
|
84
|
+
readonly 50: "#e0f2f1";
|
|
85
|
+
readonly 100: "#b2dfdb";
|
|
86
|
+
readonly 200: "#80cbc4";
|
|
87
|
+
readonly 300: "#4db6ac";
|
|
88
|
+
readonly 400: "#26a69a";
|
|
89
|
+
readonly 500: "#009688";
|
|
90
|
+
readonly 600: "#00897b";
|
|
91
|
+
readonly 700: "#00796b";
|
|
92
|
+
readonly 800: "#00695c";
|
|
93
|
+
readonly 900: "#004d40";
|
|
94
|
+
};
|
|
95
|
+
readonly brand: {
|
|
96
|
+
readonly darkGray: "#383838";
|
|
97
|
+
readonly lightGray: "#cecece";
|
|
98
|
+
readonly lightBlue: "#55C3D8";
|
|
99
|
+
readonly white: "#ffffff";
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Color token names for CSS variable generation
|
|
104
|
+
*/
|
|
105
|
+
type ColorTokenName = 'primary' | 'secondary' | 'neutral' | 'success' | 'warning' | 'error' | 'info' | 'brand';
|
|
106
|
+
type ColorShade = 50 | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900;
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Spacing design tokens
|
|
110
|
+
* Based on 8px grid system
|
|
111
|
+
*/
|
|
112
|
+
declare const SPACING_TOKENS: {
|
|
113
|
+
readonly xs: "4px";
|
|
114
|
+
readonly sm: "8px";
|
|
115
|
+
readonly md: "16px";
|
|
116
|
+
readonly lg: "24px";
|
|
117
|
+
readonly xl: "32px";
|
|
118
|
+
readonly '2xl': "48px";
|
|
119
|
+
readonly '3xl': "64px";
|
|
120
|
+
readonly '4xl': "96px";
|
|
121
|
+
readonly '5xl': "128px";
|
|
122
|
+
};
|
|
123
|
+
type SpacingToken = keyof typeof SPACING_TOKENS;
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Typography design tokens
|
|
127
|
+
* Based on Secretaría de Finanzas brand guidelines - Pluto typeface
|
|
128
|
+
*/
|
|
129
|
+
declare const TYPOGRAPHY_TOKENS: {
|
|
130
|
+
readonly fontFamily: {
|
|
131
|
+
readonly base: "'Pluto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif";
|
|
132
|
+
readonly mono: "'Fira Code', 'Courier New', monospace";
|
|
133
|
+
};
|
|
134
|
+
readonly fontSize: {
|
|
135
|
+
readonly xs: "0.75rem";
|
|
136
|
+
readonly sm: "0.875rem";
|
|
137
|
+
readonly base: "1rem";
|
|
138
|
+
readonly lg: "1.125rem";
|
|
139
|
+
readonly xl: "1.25rem";
|
|
140
|
+
readonly '2xl': "1.5rem";
|
|
141
|
+
readonly '3xl': "1.875rem";
|
|
142
|
+
readonly '4xl': "2.25rem";
|
|
143
|
+
readonly '5xl': "3rem";
|
|
144
|
+
};
|
|
145
|
+
readonly fontWeight: {
|
|
146
|
+
readonly light: 300;
|
|
147
|
+
readonly normal: 400;
|
|
148
|
+
readonly medium: 500;
|
|
149
|
+
readonly semibold: 600;
|
|
150
|
+
readonly bold: 700;
|
|
151
|
+
};
|
|
152
|
+
readonly lineHeight: {
|
|
153
|
+
readonly tight: 1.25;
|
|
154
|
+
readonly normal: 1.5;
|
|
155
|
+
readonly relaxed: 1.75;
|
|
156
|
+
};
|
|
157
|
+
};
|
|
158
|
+
type TypographyToken = keyof typeof TYPOGRAPHY_TOKENS;
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Border radius design tokens
|
|
162
|
+
*/
|
|
163
|
+
declare const BORDER_RADIUS_TOKENS: {
|
|
164
|
+
readonly none: "0";
|
|
165
|
+
readonly sm: "4px";
|
|
166
|
+
readonly md: "8px";
|
|
167
|
+
readonly lg: "12px";
|
|
168
|
+
readonly xl: "16px";
|
|
169
|
+
readonly '2xl': "24px";
|
|
170
|
+
readonly full: "9999px";
|
|
171
|
+
};
|
|
172
|
+
type BorderRadiusToken = keyof typeof BORDER_RADIUS_TOKENS;
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Shadow design tokens
|
|
176
|
+
*/
|
|
177
|
+
declare const SHADOW_TOKENS: {
|
|
178
|
+
readonly none: "none";
|
|
179
|
+
readonly sm: "0 1px 2px 0 rgba(0, 0, 0, 0.05)";
|
|
180
|
+
readonly md: "0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)";
|
|
181
|
+
readonly lg: "0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)";
|
|
182
|
+
readonly xl: "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)";
|
|
183
|
+
readonly '2xl': "0 25px 50px -12px rgba(0, 0, 0, 0.25)";
|
|
184
|
+
};
|
|
185
|
+
type ShadowToken = keyof typeof SHADOW_TOKENS;
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Design tokens index
|
|
189
|
+
* Central export for all design tokens
|
|
190
|
+
*/
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* All design tokens combined
|
|
194
|
+
*/
|
|
195
|
+
declare const DESIGN_TOKENS: {
|
|
196
|
+
colors: () => Promise<{
|
|
197
|
+
readonly primary: {
|
|
198
|
+
readonly 50: "#e6f7fb";
|
|
199
|
+
readonly 100: "#b3e5f0";
|
|
200
|
+
readonly 200: "#80d3e5";
|
|
201
|
+
readonly 300: "#4dc1da";
|
|
202
|
+
readonly 400: "#2ab0cf";
|
|
203
|
+
readonly 500: "#55C3D8";
|
|
204
|
+
readonly 600: "#4aafc4";
|
|
205
|
+
readonly 700: "#3f9bb0";
|
|
206
|
+
readonly 800: "#34879c";
|
|
207
|
+
readonly 900: "#297388";
|
|
208
|
+
};
|
|
209
|
+
readonly secondary: {
|
|
210
|
+
readonly 50: "#f5f5f5";
|
|
211
|
+
readonly 100: "#e8e8e8";
|
|
212
|
+
readonly 200: "#cecece";
|
|
213
|
+
readonly 300: "#b5b5b5";
|
|
214
|
+
readonly 400: "#9b9b9b";
|
|
215
|
+
readonly 500: "#828282";
|
|
216
|
+
readonly 600: "#686868";
|
|
217
|
+
readonly 700: "#4f4f4f";
|
|
218
|
+
readonly 800: "#383838";
|
|
219
|
+
readonly 900: "#2a2a2a";
|
|
220
|
+
};
|
|
221
|
+
readonly neutral: {
|
|
222
|
+
readonly 50: "#ffffff";
|
|
223
|
+
readonly 100: "#f5f5f5";
|
|
224
|
+
readonly 200: "#cecece";
|
|
225
|
+
readonly 300: "#b5b5b5";
|
|
226
|
+
readonly 400: "#9b9b9b";
|
|
227
|
+
readonly 500: "#828282";
|
|
228
|
+
readonly 600: "#686868";
|
|
229
|
+
readonly 700: "#4f4f4f";
|
|
230
|
+
readonly 800: "#383838";
|
|
231
|
+
readonly 900: "#2a2a2a";
|
|
232
|
+
};
|
|
233
|
+
readonly success: {
|
|
234
|
+
readonly 50: "#e8f5e9";
|
|
235
|
+
readonly 100: "#c8e6c9";
|
|
236
|
+
readonly 200: "#a5d6a7";
|
|
237
|
+
readonly 300: "#81c784";
|
|
238
|
+
readonly 400: "#66bb6a";
|
|
239
|
+
readonly 500: "#4caf50";
|
|
240
|
+
readonly 600: "#43a047";
|
|
241
|
+
readonly 700: "#388e3c";
|
|
242
|
+
readonly 800: "#2e7d32";
|
|
243
|
+
readonly 900: "#1b5e20";
|
|
244
|
+
};
|
|
245
|
+
readonly warning: {
|
|
246
|
+
readonly 50: "#fff3e0";
|
|
247
|
+
readonly 100: "#ffe0b2";
|
|
248
|
+
readonly 200: "#ffcc80";
|
|
249
|
+
readonly 300: "#ffb74d";
|
|
250
|
+
readonly 400: "#ffa726";
|
|
251
|
+
readonly 500: "#ff9800";
|
|
252
|
+
readonly 600: "#fb8c00";
|
|
253
|
+
readonly 700: "#f57c00";
|
|
254
|
+
readonly 800: "#ef6c00";
|
|
255
|
+
readonly 900: "#e65100";
|
|
256
|
+
};
|
|
257
|
+
readonly error: {
|
|
258
|
+
readonly 50: "#ffebee";
|
|
259
|
+
readonly 100: "#ffcdd2";
|
|
260
|
+
readonly 200: "#ef9a9a";
|
|
261
|
+
readonly 300: "#e57373";
|
|
262
|
+
readonly 400: "#ef5350";
|
|
263
|
+
readonly 500: "#f44336";
|
|
264
|
+
readonly 600: "#e53935";
|
|
265
|
+
readonly 700: "#d32f2f";
|
|
266
|
+
readonly 800: "#c62828";
|
|
267
|
+
readonly 900: "#b71c1c";
|
|
268
|
+
};
|
|
269
|
+
readonly info: {
|
|
270
|
+
readonly 50: "#e0f2f1";
|
|
271
|
+
readonly 100: "#b2dfdb";
|
|
272
|
+
readonly 200: "#80cbc4";
|
|
273
|
+
readonly 300: "#4db6ac";
|
|
274
|
+
readonly 400: "#26a69a";
|
|
275
|
+
readonly 500: "#009688";
|
|
276
|
+
readonly 600: "#00897b";
|
|
277
|
+
readonly 700: "#00796b";
|
|
278
|
+
readonly 800: "#00695c";
|
|
279
|
+
readonly 900: "#004d40";
|
|
280
|
+
};
|
|
281
|
+
readonly brand: {
|
|
282
|
+
readonly darkGray: "#383838";
|
|
283
|
+
readonly lightGray: "#cecece";
|
|
284
|
+
readonly lightBlue: "#55C3D8";
|
|
285
|
+
readonly white: "#ffffff";
|
|
286
|
+
};
|
|
287
|
+
}>;
|
|
288
|
+
spacing: () => Promise<{
|
|
289
|
+
readonly xs: "4px";
|
|
290
|
+
readonly sm: "8px";
|
|
291
|
+
readonly md: "16px";
|
|
292
|
+
readonly lg: "24px";
|
|
293
|
+
readonly xl: "32px";
|
|
294
|
+
readonly '2xl': "48px";
|
|
295
|
+
readonly '3xl': "64px";
|
|
296
|
+
readonly '4xl': "96px";
|
|
297
|
+
readonly '5xl': "128px";
|
|
298
|
+
}>;
|
|
299
|
+
typography: () => Promise<{
|
|
300
|
+
readonly fontFamily: {
|
|
301
|
+
readonly base: "'Pluto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif";
|
|
302
|
+
readonly mono: "'Fira Code', 'Courier New', monospace";
|
|
303
|
+
};
|
|
304
|
+
readonly fontSize: {
|
|
305
|
+
readonly xs: "0.75rem";
|
|
306
|
+
readonly sm: "0.875rem";
|
|
307
|
+
readonly base: "1rem";
|
|
308
|
+
readonly lg: "1.125rem";
|
|
309
|
+
readonly xl: "1.25rem";
|
|
310
|
+
readonly '2xl': "1.5rem";
|
|
311
|
+
readonly '3xl': "1.875rem";
|
|
312
|
+
readonly '4xl': "2.25rem";
|
|
313
|
+
readonly '5xl': "3rem";
|
|
314
|
+
};
|
|
315
|
+
readonly fontWeight: {
|
|
316
|
+
readonly light: 300;
|
|
317
|
+
readonly normal: 400;
|
|
318
|
+
readonly medium: 500;
|
|
319
|
+
readonly semibold: 600;
|
|
320
|
+
readonly bold: 700;
|
|
321
|
+
};
|
|
322
|
+
readonly lineHeight: {
|
|
323
|
+
readonly tight: 1.25;
|
|
324
|
+
readonly normal: 1.5;
|
|
325
|
+
readonly relaxed: 1.75;
|
|
326
|
+
};
|
|
327
|
+
}>;
|
|
328
|
+
borderRadius: () => Promise<{
|
|
329
|
+
readonly none: "0";
|
|
330
|
+
readonly sm: "4px";
|
|
331
|
+
readonly md: "8px";
|
|
332
|
+
readonly lg: "12px";
|
|
333
|
+
readonly xl: "16px";
|
|
334
|
+
readonly '2xl': "24px";
|
|
335
|
+
readonly full: "9999px";
|
|
336
|
+
}>;
|
|
337
|
+
shadow: () => Promise<{
|
|
338
|
+
readonly none: "none";
|
|
339
|
+
readonly sm: "0 1px 2px 0 rgba(0, 0, 0, 0.05)";
|
|
340
|
+
readonly md: "0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)";
|
|
341
|
+
readonly lg: "0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)";
|
|
342
|
+
readonly xl: "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)";
|
|
343
|
+
readonly '2xl': "0 25px 50px -12px rgba(0, 0, 0, 0.25)";
|
|
344
|
+
}>;
|
|
345
|
+
};
|
|
346
|
+
|
|
347
|
+
/**
|
|
348
|
+
* Light theme configuration
|
|
349
|
+
* Based on Secretaría de Finanzas brand colors
|
|
350
|
+
*/
|
|
351
|
+
declare const LIGHT_THEME: {
|
|
352
|
+
readonly name: "light";
|
|
353
|
+
readonly colors: {
|
|
354
|
+
readonly primary: "#55C3D8";
|
|
355
|
+
readonly 'primary-dark': "#3f9bb0";
|
|
356
|
+
readonly 'primary-light': "#4dc1da";
|
|
357
|
+
readonly secondary: "#383838";
|
|
358
|
+
readonly 'secondary-dark': "#2a2a2a";
|
|
359
|
+
readonly 'secondary-light': "#686868";
|
|
360
|
+
readonly background: "#ffffff";
|
|
361
|
+
readonly 'background-elevated': "#ffffff";
|
|
362
|
+
readonly surface: "#ffffff";
|
|
363
|
+
readonly 'surface-hover': "#cecece";
|
|
364
|
+
readonly text: "#383838";
|
|
365
|
+
readonly 'text-secondary': "#686868";
|
|
366
|
+
readonly 'text-disabled': "#9b9b9b";
|
|
367
|
+
readonly border: "#cecece";
|
|
368
|
+
readonly 'border-focus': "#55C3D8";
|
|
369
|
+
readonly success: "#4caf50";
|
|
370
|
+
readonly warning: "#ff9800";
|
|
371
|
+
readonly error: "#f44336";
|
|
372
|
+
readonly info: "#009688";
|
|
373
|
+
};
|
|
374
|
+
};
|
|
375
|
+
|
|
376
|
+
/**
|
|
377
|
+
* Dark theme configuration
|
|
378
|
+
* Based on Secretaría de Finanzas brand colors (inverted)
|
|
379
|
+
*/
|
|
380
|
+
declare const DARK_THEME: {
|
|
381
|
+
readonly name: "dark";
|
|
382
|
+
readonly colors: {
|
|
383
|
+
readonly primary: "#55C3D8";
|
|
384
|
+
readonly 'primary-dark': "#4dc1da";
|
|
385
|
+
readonly 'primary-light': "#3f9bb0";
|
|
386
|
+
readonly secondary: "#cecece";
|
|
387
|
+
readonly 'secondary-dark': "#9b9b9b";
|
|
388
|
+
readonly 'secondary-light': "#cecece";
|
|
389
|
+
readonly background: "#383838";
|
|
390
|
+
readonly 'background-elevated': "#4f4f4f";
|
|
391
|
+
readonly surface: "#4f4f4f";
|
|
392
|
+
readonly 'surface-hover': "#686868";
|
|
393
|
+
readonly text: "#ffffff";
|
|
394
|
+
readonly 'text-secondary': "#cecece";
|
|
395
|
+
readonly 'text-disabled': "#828282";
|
|
396
|
+
readonly border: "#686868";
|
|
397
|
+
readonly 'border-focus': "#55C3D8";
|
|
398
|
+
readonly success: "#66bb6a";
|
|
399
|
+
readonly warning: "#ffa726";
|
|
400
|
+
readonly error: "#ef5350";
|
|
401
|
+
readonly info: "#26a69a";
|
|
402
|
+
};
|
|
403
|
+
};
|
|
404
|
+
|
|
405
|
+
/**
|
|
406
|
+
* Brand theme configuration
|
|
407
|
+
* Exact colors from Secretaría de Finanzas brand guidelines
|
|
408
|
+
*/
|
|
409
|
+
declare const BRAND_THEME: {
|
|
410
|
+
readonly name: "brand";
|
|
411
|
+
readonly colors: {
|
|
412
|
+
readonly primary: "#55C3D8";
|
|
413
|
+
readonly 'primary-dark': "#3f9bb0";
|
|
414
|
+
readonly 'primary-light': "#4dc1da";
|
|
415
|
+
readonly secondary: "#383838";
|
|
416
|
+
readonly 'secondary-dark': "#2a2a2a";
|
|
417
|
+
readonly 'secondary-light': "#686868";
|
|
418
|
+
readonly background: "#ffffff";
|
|
419
|
+
readonly 'background-elevated': "#ffffff";
|
|
420
|
+
readonly surface: "#ffffff";
|
|
421
|
+
readonly 'surface-hover': "#cecece";
|
|
422
|
+
readonly text: "#383838";
|
|
423
|
+
readonly 'text-secondary': "#686868";
|
|
424
|
+
readonly 'text-disabled': "#9b9b9b";
|
|
425
|
+
readonly border: "#cecece";
|
|
426
|
+
readonly 'border-focus': "#55C3D8";
|
|
427
|
+
readonly success: "#4caf50";
|
|
428
|
+
readonly warning: "#ff9800";
|
|
429
|
+
readonly error: "#f44336";
|
|
430
|
+
readonly info: "#009688";
|
|
431
|
+
};
|
|
432
|
+
};
|
|
433
|
+
|
|
434
|
+
/**
|
|
435
|
+
* Themes index
|
|
436
|
+
*/
|
|
437
|
+
|
|
438
|
+
type Theme = 'light' | 'dark' | 'brand';
|
|
439
|
+
|
|
440
|
+
/**
|
|
441
|
+
* Theme loader utility
|
|
442
|
+
* Generates CSS variables from design tokens
|
|
443
|
+
*/
|
|
444
|
+
declare class ThemeLoader {
|
|
445
|
+
/**
|
|
446
|
+
* Load a theme and apply it to the document root
|
|
447
|
+
*/
|
|
448
|
+
static loadTheme(themeName?: Theme): void;
|
|
449
|
+
/**
|
|
450
|
+
* Get theme configuration by name
|
|
451
|
+
*/
|
|
452
|
+
private static getTheme;
|
|
453
|
+
/**
|
|
454
|
+
* Get all CSS variables as a string (useful for SSR or static generation)
|
|
455
|
+
*/
|
|
456
|
+
static getThemeCSS(themeName?: Theme): string;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
/**
|
|
460
|
+
* Shared types and interfaces
|
|
461
|
+
*/
|
|
462
|
+
type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost' | 'danger';
|
|
463
|
+
type ButtonSize = 'sm' | 'md' | 'lg';
|
|
464
|
+
type InputSize = 'sm' | 'md' | 'lg';
|
|
465
|
+
type CardVariant = 'default' | 'elevated' | 'outlined';
|
|
466
|
+
interface BaseComponent {
|
|
467
|
+
disabled?: boolean;
|
|
468
|
+
class?: string;
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
declare class ButtonComponent {
|
|
472
|
+
variant: ButtonVariant;
|
|
473
|
+
size: ButtonSize;
|
|
474
|
+
disabled: boolean;
|
|
475
|
+
type: 'button' | 'submit' | 'reset';
|
|
476
|
+
class: string;
|
|
477
|
+
clicked: EventEmitter<MouseEvent>;
|
|
478
|
+
onClick(event: MouseEvent): void;
|
|
479
|
+
get buttonClasses(): string;
|
|
480
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
|
|
481
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "sefin-button", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "type": { "alias": "type"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "clicked": "clicked"; }, never, ["*"], true, never>;
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
declare class IconComponent {
|
|
485
|
+
name: string;
|
|
486
|
+
size: 'sm' | 'md' | 'lg';
|
|
487
|
+
class: string;
|
|
488
|
+
get iconClasses(): string;
|
|
489
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IconComponent, never>;
|
|
490
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IconComponent, "sefin-icon", never, { "name": { "alias": "name"; "required": false; }; "size": { "alias": "size"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
declare class InputComponent implements ControlValueAccessor {
|
|
494
|
+
type: 'text' | 'email' | 'password' | 'number' | 'tel' | 'url';
|
|
495
|
+
placeholder: string;
|
|
496
|
+
size: InputSize;
|
|
497
|
+
disabled: boolean;
|
|
498
|
+
required: boolean;
|
|
499
|
+
readonly: boolean;
|
|
500
|
+
class: string;
|
|
501
|
+
id: string;
|
|
502
|
+
blur: EventEmitter<FocusEvent>;
|
|
503
|
+
focus: EventEmitter<FocusEvent>;
|
|
504
|
+
value: string;
|
|
505
|
+
private onChange;
|
|
506
|
+
private onTouched;
|
|
507
|
+
onInput(event: Event): void;
|
|
508
|
+
onBlur(event: FocusEvent): void;
|
|
509
|
+
onFocus(event: FocusEvent): void;
|
|
510
|
+
writeValue(value: string): void;
|
|
511
|
+
registerOnChange(fn: (value: string) => void): void;
|
|
512
|
+
registerOnTouched(fn: () => void): void;
|
|
513
|
+
setDisabledState(isDisabled: boolean): void;
|
|
514
|
+
get inputClasses(): string;
|
|
515
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<InputComponent, never>;
|
|
516
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<InputComponent, "sefin-input", never, { "type": { "alias": "type"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "class": { "alias": "class"; "required": false; }; "id": { "alias": "id"; "required": false; }; }, { "blur": "blur"; "focus": "focus"; }, never, never, true, never>;
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
declare class FormFieldComponent {
|
|
520
|
+
label: string;
|
|
521
|
+
hint: string;
|
|
522
|
+
error: string;
|
|
523
|
+
required: boolean;
|
|
524
|
+
disabled: boolean;
|
|
525
|
+
inputId: string;
|
|
526
|
+
inputType: 'text' | 'email' | 'password' | 'number' | 'tel' | 'url';
|
|
527
|
+
placeholder: string;
|
|
528
|
+
size: 'sm' | 'md' | 'lg';
|
|
529
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FormFieldComponent, never>;
|
|
530
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FormFieldComponent, "sefin-form-field", never, { "label": { "alias": "label"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "error": { "alias": "error"; "required": false; }; "required": { "alias": "required"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; "inputType": { "alias": "inputType"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
interface DropdownOption {
|
|
534
|
+
label: string;
|
|
535
|
+
value: any;
|
|
536
|
+
disabled?: boolean;
|
|
537
|
+
}
|
|
538
|
+
declare class DropdownComponent {
|
|
539
|
+
options: DropdownOption[];
|
|
540
|
+
placeholder: string;
|
|
541
|
+
disabled: boolean;
|
|
542
|
+
size: 'sm' | 'md' | 'lg';
|
|
543
|
+
selectionChange: EventEmitter<any>;
|
|
544
|
+
isOpen: boolean;
|
|
545
|
+
selectedOption: DropdownOption | null;
|
|
546
|
+
toggle(): void;
|
|
547
|
+
selectOption(option: DropdownOption): void;
|
|
548
|
+
get displayText(): string;
|
|
549
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DropdownComponent, never>;
|
|
550
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DropdownComponent, "sefin-dropdown", never, { "options": { "alias": "options"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "selectionChange": "selectionChange"; }, never, never, true, never>;
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
declare class CardComponent {
|
|
554
|
+
variant: CardVariant;
|
|
555
|
+
class: string;
|
|
556
|
+
get cardClasses(): string;
|
|
557
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CardComponent, never>;
|
|
558
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CardComponent, "sefin-card", never, { "variant": { "alias": "variant"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
declare class HeaderComponent {
|
|
562
|
+
title: string;
|
|
563
|
+
logo: string;
|
|
564
|
+
showUserMenu: boolean;
|
|
565
|
+
userName: string;
|
|
566
|
+
logoClick: EventEmitter<void>;
|
|
567
|
+
menuClick: EventEmitter<void>;
|
|
568
|
+
userMenuClick: EventEmitter<void>;
|
|
569
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<HeaderComponent, never>;
|
|
570
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<HeaderComponent, "sefin-header", never, { "title": { "alias": "title"; "required": false; }; "logo": { "alias": "logo"; "required": false; }; "showUserMenu": { "alias": "showUserMenu"; "required": false; }; "userName": { "alias": "userName"; "required": false; }; }, { "logoClick": "logoClick"; "menuClick": "menuClick"; "userMenuClick": "userMenuClick"; }, never, never, true, never>;
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
interface LoginCredentials {
|
|
574
|
+
email: string;
|
|
575
|
+
password: string;
|
|
576
|
+
}
|
|
577
|
+
declare class LoginFormComponent {
|
|
578
|
+
email: string;
|
|
579
|
+
password: string;
|
|
580
|
+
error: string;
|
|
581
|
+
submit: EventEmitter<LoginCredentials>;
|
|
582
|
+
onSubmit(): void;
|
|
583
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LoginFormComponent, never>;
|
|
584
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LoginFormComponent, "sefin-login-form", never, {}, { "submit": "submit"; }, never, never, true, never>;
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
interface ToolbarAction {
|
|
588
|
+
label: string;
|
|
589
|
+
icon?: string;
|
|
590
|
+
variant?: 'primary' | 'secondary' | 'outline' | 'ghost' | 'danger';
|
|
591
|
+
action: () => void;
|
|
592
|
+
}
|
|
593
|
+
declare class ToolbarComponent {
|
|
594
|
+
title: string;
|
|
595
|
+
actions: ToolbarAction[];
|
|
596
|
+
actionClick: EventEmitter<ToolbarAction>;
|
|
597
|
+
onActionClick(action: ToolbarAction): void;
|
|
598
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ToolbarComponent, never>;
|
|
599
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ToolbarComponent, "sefin-toolbar", never, { "title": { "alias": "title"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; }, { "actionClick": "actionClick"; }, never, never, true, never>;
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
declare const STYLES_PATH = "./styles/index.scss";
|
|
603
|
+
|
|
604
|
+
export { BORDER_RADIUS_TOKENS, BRAND_THEME, ButtonComponent, COLOR_TOKENS, CardComponent, DARK_THEME, DESIGN_TOKENS, DropdownComponent, FormFieldComponent, HeaderComponent, IconComponent, InputComponent, LIGHT_THEME, LoginFormComponent, SHADOW_TOKENS, SPACING_TOKENS, STYLES_PATH, TYPOGRAPHY_TOKENS, ThemeLoader, ToolbarComponent };
|
|
605
|
+
export type { BaseComponent, BorderRadiusToken, ButtonSize, ButtonVariant, CardVariant, ColorShade, ColorTokenName, DropdownOption, InputSize, LoginCredentials, ShadowToken, SpacingToken, Theme, ToolbarAction, TypographyToken };
|