@nucleus-suite-pe/core 0.6.1 → 1.0.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nucleus-suite-pe/core",
3
- "version": "0.6.1",
3
+ "version": "1.0.0",
4
4
  "description": "Capa compartida de la suite Nucleus: sesión única, permisos, tema y marco de aplicación para Angular.",
5
5
  "keywords": [
6
6
  "angular",
package/styles/tokens.css CHANGED
@@ -8,11 +8,106 @@
8
8
  --ac-accent: #7c6cf5;
9
9
  --ac-on-accent: #ffffff;
10
10
 
11
+ --ns-frame-bg: #16132b;
12
+ --ns-frame-raised: #241f42;
13
+ --ns-frame-ink: #ece9fb;
14
+ --ns-frame-muted: #9d95c6;
15
+ --ns-frame-line: #302a54;
16
+ --ns-frame-glow: #8c7ff0;
17
+ --ns-frame-on-glow: #101014;
18
+
19
+ --ns-shadow-1: 0 1px 2px rgb(0 0 0 / 28%);
20
+ --ns-shadow-2: 0 10px 34px rgb(0 0 0 / 45%);
21
+ --ns-accent-wash: #1d1a2b;
22
+ --ns-accent-wash-strong: #2a2444;
23
+ --ns-header-bg: #262433;
24
+ --ns-header-ink: #c2c0ce;
25
+ --ns-header-line: #3a3745;
26
+ --ns-scroll-thumb: color-mix(in srgb, var(--ac-text) 20%, transparent);
27
+ --ns-scroll-thumb-hover: color-mix(in srgb, var(--ac-text) 38%, transparent);
28
+
29
+ --ns-density: 1;
30
+ --ns-cell-y: calc(14px * var(--ns-density));
31
+ --ns-head-y: calc(13px * var(--ns-density));
32
+ --ns-nav-y: calc(9px * var(--ns-density));
33
+ --ns-form-gap-y: calc(18px * var(--ns-density));
34
+ --ns-control-y: calc(0.55rem * var(--ns-density));
35
+
11
36
  --ac-font: 'Space Grotesk', sans-serif;
12
37
  --ac-radius-pill: 999px;
13
38
  --ac-radius-box: 4px;
14
39
  }
15
40
 
41
+ .ns-frame {
42
+ --ac-bg: var(--ns-frame-bg);
43
+ --ac-surface: var(--ns-frame-raised);
44
+ --ac-surface-alt: var(--ns-frame-raised);
45
+ --ac-text: var(--ns-frame-ink);
46
+ --ac-text-muted: var(--ns-frame-muted);
47
+ --ac-border: var(--ns-frame-line);
48
+ --ac-accent: var(--ns-frame-glow);
49
+ --ac-on-accent: var(--ns-frame-on-glow);
50
+ --ns-scroll-thumb: color-mix(in srgb, var(--ns-frame-ink) 22%, transparent);
51
+ --ns-scroll-thumb-hover: color-mix(in srgb, var(--ns-frame-ink) 42%, transparent);
52
+
53
+ background: var(--ns-frame-bg);
54
+ color: var(--ns-frame-ink);
55
+ }
56
+
57
+ .ns-frame .p-button-text.p-button-secondary {
58
+ color: var(--ns-frame-muted);
59
+ }
60
+
61
+ .ns-frame .p-button-text.p-button-secondary:not(:disabled):hover {
62
+ background: var(--ns-frame-raised);
63
+ color: var(--ns-frame-ink);
64
+ }
65
+
66
+ .ns-frame .p-select {
67
+ background: var(--ns-frame-raised);
68
+ border-color: var(--ns-frame-line);
69
+ color: var(--ns-frame-ink);
70
+ }
71
+
72
+ .ns-frame .p-select:not(.p-disabled):hover {
73
+ border-color: var(--ns-frame-glow);
74
+ }
75
+
76
+ .ns-frame .p-select-label {
77
+ color: var(--ns-frame-ink);
78
+ }
79
+
80
+ .ns-frame .p-select-label.p-placeholder,
81
+ .ns-frame .p-select-dropdown {
82
+ color: var(--ns-frame-muted);
83
+ }
84
+
85
+ .ns-frame .p-avatar {
86
+ background: var(--ns-frame-raised);
87
+ color: var(--ns-frame-ink);
88
+ }
89
+
90
+ .ns-frame .p-skeleton {
91
+ background: color-mix(in srgb, var(--ns-frame-ink) 12%, transparent);
92
+ }
93
+
94
+ .p-drawer-mask:has(.ns-settings-drawer) {
95
+ background: transparent;
96
+ backdrop-filter: none;
97
+ pointer-events: none;
98
+ }
99
+
100
+ .ns-flush-popover.p-popover .p-popover-content {
101
+ overflow: hidden;
102
+ padding: 0;
103
+ border-radius: inherit;
104
+ }
105
+
106
+ .ns-settings-drawer.p-drawer {
107
+ border-left: 1px solid var(--ac-border);
108
+ pointer-events: auto;
109
+ }
110
+
16
111
  html,
17
112
  body {
18
113
  margin: 0;
@@ -31,6 +126,33 @@ input {
31
126
  font-family: inherit;
32
127
  }
33
128
 
129
+ * {
130
+ scrollbar-width: thin;
131
+ scrollbar-color: var(--ns-scroll-thumb) transparent;
132
+ }
133
+
134
+ *::-webkit-scrollbar {
135
+ width: 11px;
136
+ height: 11px;
137
+ }
138
+
139
+ *::-webkit-scrollbar-track,
140
+ *::-webkit-scrollbar-corner {
141
+ background: transparent;
142
+ }
143
+
144
+ *::-webkit-scrollbar-thumb {
145
+ border: 3px solid transparent;
146
+ border-radius: 999px;
147
+ background: var(--ns-scroll-thumb);
148
+ background-clip: padding-box;
149
+ }
150
+
151
+ *::-webkit-scrollbar-thumb:hover {
152
+ background: var(--ns-scroll-thumb-hover);
153
+ background-clip: padding-box;
154
+ }
155
+
34
156
  ::selection {
35
157
  background: var(--ac-accent);
36
158
  color: var(--ac-on-accent);
@@ -55,19 +177,21 @@ input {
55
177
  border: 1px solid var(--ac-border);
56
178
  border-radius: 12px;
57
179
  overflow: hidden;
58
- background: color-mix(in srgb, var(--ac-surface) 70%, transparent);
180
+ background: var(--ac-surface);
181
+ box-shadow: var(--ns-shadow-1);
59
182
  }
60
183
 
61
184
  .ns-table .p-datatable-table-container {
185
+ overflow-x: auto;
62
186
  border-radius: 12px;
63
187
  }
64
188
 
65
189
  .ns-table .p-datatable-thead > tr > th {
66
- padding: 13px 18px;
190
+ padding: var(--ns-head-y) 18px;
67
191
  border: 0;
68
- border-bottom: 1px solid var(--ac-border);
69
- background: color-mix(in srgb, var(--ac-surface-alt) 60%, transparent);
70
- color: var(--ac-text-muted);
192
+ border-bottom: 2px solid var(--ns-header-line);
193
+ background: var(--ns-header-bg);
194
+ color: var(--ns-header-ink);
71
195
  font-size: 11px;
72
196
  font-weight: 600;
73
197
  letter-spacing: 0.07em;
@@ -80,9 +204,9 @@ input {
80
204
  }
81
205
 
82
206
  .ns-table .p-datatable-tbody > tr > td {
83
- padding: 14px 18px;
207
+ padding: var(--ns-cell-y) 18px;
84
208
  border: 0;
85
- border-bottom: 1px solid color-mix(in srgb, var(--ac-border) 45%, transparent);
209
+ border-bottom: 1px solid var(--ac-border);
86
210
  font-size: 13px;
87
211
  }
88
212
 
@@ -91,7 +215,15 @@ input {
91
215
  }
92
216
 
93
217
  .ns-table .p-datatable-tbody > tr:hover > td {
94
- background: color-mix(in srgb, var(--ac-accent) 7%, transparent);
218
+ background: var(--ns-accent-wash);
219
+ }
220
+
221
+ .ns-table .p-datatable-tbody > tr:hover > td:first-child {
222
+ box-shadow: inset 2px 0 0 var(--ac-accent);
223
+ }
224
+
225
+ .ns-table .p-datatable-tbody > tr:hover .actions .p-button-secondary:not(:disabled) {
226
+ color: var(--ac-accent);
95
227
  }
96
228
 
97
229
  .ns-table .p-datatable-tbody > tr.is-inactive > td {
@@ -116,9 +248,207 @@ input {
116
248
 
117
249
  .ns-crumbs .p-breadcrumb-item:last-child .p-breadcrumb-item-label {
118
250
  color: var(--ac-text);
251
+ font-size: 15px;
119
252
  font-weight: 600;
120
253
  }
121
254
 
122
255
  .ns-crumbs .p-breadcrumb-separator {
123
256
  color: color-mix(in srgb, var(--ac-text-muted) 60%, transparent);
124
257
  }
258
+
259
+ .ns-form-grid {
260
+ display: grid;
261
+ grid-template-columns: 1fr;
262
+ gap: var(--ns-form-gap-y) 20px;
263
+ }
264
+
265
+ .ns-form-grid .ns-field {
266
+ display: flex;
267
+ min-width: 0;
268
+ flex-direction: column;
269
+ gap: 6px;
270
+ }
271
+
272
+ .ns-form-grid .ns-field > label {
273
+ color: var(--ac-text-muted);
274
+ font-size: 12px;
275
+ letter-spacing: 0.04em;
276
+ text-transform: uppercase;
277
+ }
278
+
279
+ .ns-form-grid .ns-hint {
280
+ margin: 0;
281
+ max-width: 52ch;
282
+ color: var(--ac-text-muted);
283
+ font-size: 12px;
284
+ line-height: 1.45;
285
+ }
286
+
287
+ .ns-form-grid .ns-inline {
288
+ display: flex;
289
+ min-height: 38px;
290
+ align-items: center;
291
+ gap: 10px;
292
+ }
293
+
294
+ .ns-form-grid .ns-inline-label {
295
+ color: var(--ac-text);
296
+ font-size: 13px;
297
+ letter-spacing: normal;
298
+ text-transform: none;
299
+ }
300
+
301
+ .ns-form-grid .is-size-xs
302
+ :is(input, textarea, .p-select, .p-inputtext, nucleus-icon-picker):not(.p-select-filter) {
303
+ max-width: 6rem;
304
+ }
305
+
306
+ .ns-form-grid .is-size-sm
307
+ :is(input, textarea, .p-select, .p-inputtext, nucleus-icon-picker):not(.p-select-filter) {
308
+ max-width: 11rem;
309
+ }
310
+
311
+ .ns-form-grid .is-size-md
312
+ :is(input, textarea, .p-select, .p-inputtext, nucleus-icon-picker):not(.p-select-filter) {
313
+ max-width: 17rem;
314
+ }
315
+
316
+ .ns-form-grid .is-size-lg
317
+ :is(input, textarea, .p-select, .p-inputtext, nucleus-icon-picker):not(.p-select-filter) {
318
+ max-width: 26rem;
319
+ }
320
+
321
+ .ns-form-grid .is-span-full {
322
+ grid-column: 1 / -1;
323
+ }
324
+
325
+ @media (min-width: 640px) {
326
+ .ns-form-grid {
327
+ grid-template-columns: repeat(2, minmax(0, 1fr));
328
+ }
329
+
330
+ .ns-form-grid .is-span-2,
331
+ .ns-form-grid .is-span-3,
332
+ .ns-form-grid .is-span-4 {
333
+ grid-column: span 2;
334
+ }
335
+ }
336
+
337
+ @media (min-width: 1080px) {
338
+ .ns-form-grid:not(.is-cap-1):not(.is-cap-2) {
339
+ grid-template-columns: repeat(3, minmax(0, 1fr));
340
+ }
341
+
342
+ .ns-form-grid:not(.is-cap-1):not(.is-cap-2) .is-span-2 {
343
+ grid-column: span 2;
344
+ }
345
+
346
+ .ns-form-grid:not(.is-cap-1):not(.is-cap-2) :is(.is-span-3, .is-span-4) {
347
+ grid-column: span 3;
348
+ }
349
+ }
350
+
351
+ @media (min-width: 1500px) {
352
+ .ns-form-grid:not(.is-cap-1):not(.is-cap-2):not(.is-cap-3) {
353
+ grid-template-columns: repeat(4, minmax(0, 1fr));
354
+ }
355
+
356
+ .ns-form-grid:not(.is-cap-1):not(.is-cap-2):not(.is-cap-3) .is-span-3 {
357
+ grid-column: span 3;
358
+ }
359
+
360
+ .ns-form-grid:not(.is-cap-1):not(.is-cap-2):not(.is-cap-3) .is-span-4 {
361
+ grid-column: span 4;
362
+ }
363
+ }
364
+
365
+ .ns-form-grid.is-cap-1 {
366
+ grid-template-columns: 1fr;
367
+ }
368
+
369
+ .ns-form-grid.is-cap-1 .ns-field {
370
+ grid-column: 1 / -1;
371
+ }
372
+
373
+ .p-select-overlay .p-select-header {
374
+ padding: 10px 10px 6px;
375
+ }
376
+
377
+ .p-select-overlay .p-select-header .p-iconfield {
378
+ position: relative;
379
+ display: block;
380
+ width: 100%;
381
+ }
382
+
383
+ .p-select-overlay .p-select-filter {
384
+ width: 100%;
385
+ padding-right: 38px;
386
+ }
387
+
388
+ .p-select-overlay .p-select-header .p-inputicon {
389
+ position: absolute;
390
+ top: 50%;
391
+ right: 13px;
392
+ display: inline-flex;
393
+ align-items: center;
394
+ margin: 0;
395
+ color: var(--ac-text-muted);
396
+ pointer-events: none;
397
+ transform: translateY(-50%);
398
+ }
399
+
400
+ .p-select-overlay .p-select-header .p-inputicon svg {
401
+ width: 15px;
402
+ height: 15px;
403
+ }
404
+
405
+ .ns-context .p-select {
406
+ border-radius: var(--ac-radius-pill);
407
+ }
408
+
409
+ .ns-context .p-select-label {
410
+ padding: 6px 4px 6px 12px;
411
+ font-size: 12px;
412
+ }
413
+
414
+ .ns-context .p-select-dropdown {
415
+ width: 28px;
416
+ }
417
+
418
+ .p-skeleton {
419
+ background: color-mix(in srgb, var(--ac-text) 10%, transparent);
420
+ }
421
+
422
+ .ns-table .is-skeleton > td {
423
+ padding-block: 16px;
424
+ }
425
+
426
+ .ns-tree-toggle {
427
+ display: inline-flex;
428
+ flex: none;
429
+ align-items: center;
430
+ justify-content: center;
431
+ width: 18px;
432
+ height: 18px;
433
+ padding: 0;
434
+ border: 0;
435
+ border-radius: 4px;
436
+ background: transparent;
437
+ color: var(--ac-text-muted);
438
+ cursor: pointer;
439
+ }
440
+
441
+ .ns-tree-toggle:hover {
442
+ background: color-mix(in srgb, var(--ac-text) 10%, transparent);
443
+ color: var(--ac-text);
444
+ }
445
+
446
+ .ns-tree-toggle i {
447
+ font-size: 11px;
448
+ }
449
+
450
+ .ns-tree-spacer {
451
+ display: inline-block;
452
+ flex: none;
453
+ width: 18px;
454
+ }