@nadicodeai/ui 12.1.51 → 12.1.53

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.
Files changed (60) hide show
  1. package/LICENSES/VGPU-MIT.txt +21 -0
  2. package/NOTICE +12 -0
  3. package/dist/assets/brand/google.svg +2 -0
  4. package/dist/assets/brand/index.json +8 -0
  5. package/dist/components/agent-card.d.ts.map +1 -1
  6. package/dist/components/agent-card.js +1 -1
  7. package/dist/components/agent-list-row.d.ts +28 -0
  8. package/dist/components/agent-list-row.d.ts.map +1 -0
  9. package/dist/components/agent-list-row.js +17 -0
  10. package/dist/components/approval-row.d.ts +21 -0
  11. package/dist/components/approval-row.d.ts.map +1 -0
  12. package/dist/components/approval-row.js +14 -0
  13. package/dist/components/brand-icons/google.d.ts +18 -0
  14. package/dist/components/brand-icons/google.d.ts.map +1 -0
  15. package/dist/components/brand-icons/google.js +22 -0
  16. package/dist/components/brand-icons.d.ts +1 -0
  17. package/dist/components/brand-icons.d.ts.map +1 -1
  18. package/dist/components/brand-icons.js +1 -0
  19. package/dist/components/channel-view.d.ts +89 -0
  20. package/dist/components/channel-view.d.ts.map +1 -0
  21. package/dist/components/channel-view.js +75 -0
  22. package/dist/components/company-card/approach.d.ts +22 -0
  23. package/dist/components/company-card/approach.d.ts.map +1 -0
  24. package/dist/components/company-card/approach.js +17 -0
  25. package/dist/components/company-card/engraving.d.ts +8 -0
  26. package/dist/components/company-card/engraving.d.ts.map +1 -0
  27. package/dist/components/company-card/engraving.js +56 -0
  28. package/dist/components/company-card/foil-colors.d.ts +4 -0
  29. package/dist/components/company-card/foil-colors.d.ts.map +1 -0
  30. package/dist/components/company-card/foil-colors.js +29 -0
  31. package/dist/components/company-card/renderer.d.ts +13 -0
  32. package/dist/components/company-card/renderer.d.ts.map +1 -0
  33. package/dist/components/company-card/renderer.js +138 -0
  34. package/dist/components/company-card/scene.d.ts +10 -0
  35. package/dist/components/company-card/scene.d.ts.map +1 -0
  36. package/dist/components/company-card/scene.js +25 -0
  37. package/dist/components/company-card/shader.d.ts +10 -0
  38. package/dist/components/company-card/shader.d.ts.map +1 -0
  39. package/dist/components/company-card/shader.js +165 -0
  40. package/dist/components/company-card/snapshot.d.ts +7 -0
  41. package/dist/components/company-card/snapshot.d.ts.map +1 -0
  42. package/dist/components/company-card/snapshot.js +37 -0
  43. package/dist/components/company-card.d.ts +31 -0
  44. package/dist/components/company-card.d.ts.map +1 -0
  45. package/dist/components/company-card.js +200 -0
  46. package/dist/components/desktop-shell.js +1 -1
  47. package/dist/components/entry-scene.d.ts +90 -0
  48. package/dist/components/entry-scene.d.ts.map +1 -0
  49. package/dist/components/entry-scene.js +41 -0
  50. package/dist/components/nadia-presence.d.ts +22 -0
  51. package/dist/components/nadia-presence.d.ts.map +1 -0
  52. package/dist/components/nadia-presence.js +45 -0
  53. package/dist/components/portal-sidebar-frame.d.ts +40 -0
  54. package/dist/components/portal-sidebar-frame.d.ts.map +1 -0
  55. package/dist/components/portal-sidebar-frame.js +14 -0
  56. package/dist/index.d.ts +10 -3
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +10 -3
  59. package/dist/styles/components.css +567 -0
  60. package/package.json +3 -2
package/dist/index.js CHANGED
@@ -4,15 +4,17 @@ export * from "./components/action-menu.js";
4
4
  export * from "./components/action-status.js";
5
5
  export * from "./components/activity-calendar.js";
6
6
  export * from "./components/agent-card.js";
7
+ export * from "./components/agent-list-row.js";
7
8
  export * from "./components/agent-orb.js";
8
9
  export * from "./components/alert.js";
9
10
  export * from "./components/alert-dialog.js";
10
11
  export * from "./components/app-mark.js";
11
12
  export * from "./components/app-mark-frame.js";
12
13
  export * from "./components/app-mark-lazy.js";
14
+ export * from "./components/approval-row.js";
13
15
  export * from "./components/aspect-ratio.js";
14
- export * from "./components/avatar.js";
15
16
  export * from "./components/automation-section.js";
17
+ export * from "./components/avatar.js";
16
18
  export * from "./components/badge.js";
17
19
  export * from "./components/brand.js";
18
20
  export * from "./components/brand-field.js";
@@ -24,10 +26,11 @@ export * from "./components/calendar.js";
24
26
  export * from "./components/card.js";
25
27
  export * from "./components/card-row.js";
26
28
  export * from "./components/carousel.js";
29
+ export * from "./components/channel-view.js";
27
30
  export * from "./components/chart.js";
28
31
  export * from "./components/chart-area-stacked.js";
29
- export * from "./components/chart-bar-multiple.js";
30
32
  export * from "./components/chart-bar-horizontal.js";
33
+ export * from "./components/chart-bar-multiple.js";
31
34
  export * from "./components/chart-bar-stacked.js";
32
35
  export * from "./components/chart-card.js";
33
36
  export * from "./components/chart-date-range.js";
@@ -40,6 +43,7 @@ export * from "./components/collection-filters.js";
40
43
  export * from "./components/collection-toolbar.js";
41
44
  export * from "./components/combobox.js";
42
45
  export * from "./components/command.js";
46
+ export * from "./components/company-card.js";
43
47
  export * from "./components/confirm-dialog.js";
44
48
  export * from "./components/context-menu.js";
45
49
  export * from "./components/dashboard-shell.js";
@@ -52,6 +56,7 @@ export * from "./components/disclosure-row.js";
52
56
  export * from "./components/drawer.js";
53
57
  export * from "./components/dropdown-menu.js";
54
58
  export * from "./components/empty.js";
59
+ export * from "./components/entry-scene.js";
55
60
  export * from "./components/expandable-block.js";
56
61
  export * from "./components/feedback-state.js";
57
62
  export * from "./components/field.js";
@@ -76,14 +81,17 @@ export * from "./components/menu-choice-row.js";
76
81
  export * from "./components/menubar.js";
77
82
  export * from "./components/model-identity.js";
78
83
  export * from "./components/model-mark.js";
84
+ export * from "./components/nadia-presence.js";
79
85
  export * from "./components/native-select.js";
80
86
  export * from "./components/navigation-menu.js";
81
87
  export * from "./components/notice-banner.js";
88
+ export * from "./components/object-workspace.js";
82
89
  export * from "./components/pagination.js";
83
90
  export * from "./components/pending-label.js";
84
91
  export * from "./components/picture-label.js";
85
92
  export * from "./components/plugin-slot-boundary.js";
86
93
  export * from "./components/popover.js";
94
+ export * from "./components/portal-sidebar-frame.js";
87
95
  export * from "./components/progress.js";
88
96
  export * from "./components/radio-group.js";
89
97
  export * from "./components/reading-column.js";
@@ -106,7 +114,6 @@ export * from "./components/switch.js";
106
114
  export * from "./components/table.js";
107
115
  export * from "./components/table-card.js";
108
116
  export * from "./components/table-value.js";
109
- export * from "./components/object-workspace.js";
110
117
  export * from "./components/tabs.js";
111
118
  export * from "./components/text-link.js";
112
119
  export * from "./components/textarea.js";
@@ -151,3 +151,570 @@
151
151
  }
152
152
  }
153
153
  }
154
+
155
+ /*
156
+ * Nadia's entry screen, contained (`components/entry-scene.tsx`,
157
+ * `components/nadia-presence.tsx`).
158
+ *
159
+ * The products paint this screen as a window-filling dialog; here it is a box
160
+ * of the window's own shape, so it can stand on a page. The box is the query
161
+ * container, so the screen answers its own width and never the viewport's.
162
+ *
163
+ * These rules name the raw tokens rather than the host's roles: the screen is
164
+ * true black in every theme, so it reads the dark ladder directly instead of
165
+ * branching on the host's mode. The room scopes `dark`, so every role it does
166
+ * not paint itself, the focus outline among them, takes its dark value too.
167
+ */
168
+
169
+ .nc-entry-scene {
170
+ container-type: size;
171
+ position: relative;
172
+ isolation: isolate;
173
+ overflow: hidden;
174
+ width: 100%;
175
+ background: var(--nc-identity-ink);
176
+ }
177
+
178
+ .nc-entry-room {
179
+ position: absolute;
180
+ inset: 0;
181
+ display: flex;
182
+ flex-direction: column;
183
+ align-items: center;
184
+ justify-content: safe center;
185
+ gap: var(--nc-md);
186
+ padding: var(--entry-pad);
187
+ overflow: hidden;
188
+ color: var(--nc-dark-ink);
189
+ font-family: var(--nc-type-body-md-font-family);
190
+
191
+ --entry-pad: var(--nc-xl);
192
+ --entry-presence-size: 160px;
193
+ --entry-picture-subject-ratio: 0.42;
194
+ /*
195
+ * The picture is as wide as the room allows: never past the source at 2x,
196
+ * never so wide that its subject reaches the message column, and never so
197
+ * tall that the figure's feet fall below the floor.
198
+ */
199
+ --entry-picture-width: min(
200
+ 836px,
201
+ calc((100cqw - 20rem - var(--entry-pad) * 2) / (var(--entry-picture-subject-ratio) * 2)),
202
+ calc(100cqh * 1672 / var(--entry-picture-feet, 906))
203
+ );
204
+ }
205
+
206
+ /* The presence ------------------------------------------------------------ */
207
+
208
+ .nc-entry-presence {
209
+ position: relative;
210
+ flex: none;
211
+ display: grid;
212
+ place-items: center;
213
+ width: var(--entry-presence-size, 160px);
214
+ aspect-ratio: 1;
215
+ transition: opacity var(--nc-duration-confirm) var(--nc-ease-emphasized);
216
+ }
217
+
218
+ .nc-entry-presence-figure {
219
+ position: relative;
220
+ z-index: 1;
221
+ display: grid;
222
+ place-items: center;
223
+ transition: opacity var(--nc-duration-confirm) var(--nc-ease-emphasized);
224
+ }
225
+
226
+ .nc-entry-presence-figure,
227
+ .nc-entry-presence-figure canvas {
228
+ width: var(--entry-presence-size, 160px);
229
+ height: var(--entry-presence-size, 160px);
230
+ }
231
+
232
+ .nc-entry-presence[data-state="error"] {
233
+ opacity: 0.62;
234
+ }
235
+
236
+ /*
237
+ * The screen ships its own visually-hidden helper: a host that takes the token
238
+ * layer and nothing else has no utility layer, and a progress value nobody can
239
+ * read is not an accessible progress value.
240
+ */
241
+ .nc-entry-sr {
242
+ position: absolute;
243
+ width: 1px;
244
+ height: 1px;
245
+ overflow: hidden;
246
+ clip-path: inset(50%);
247
+ white-space: nowrap;
248
+ }
249
+
250
+ /* The picture and the mark ------------------------------------------------ */
251
+
252
+ .nc-entry-picture {
253
+ position: absolute;
254
+ left: 0;
255
+ bottom: calc(var(--entry-picture-width) * (var(--entry-picture-feet, 906) - 941) / 1672);
256
+ z-index: 0;
257
+ width: var(--entry-picture-width);
258
+ pointer-events: none;
259
+ user-select: none;
260
+ transition: opacity var(--nc-duration-open) var(--nc-ease-emphasized);
261
+ }
262
+
263
+ .nc-entry-picture img {
264
+ display: block;
265
+ width: 100%;
266
+ height: auto;
267
+ }
268
+
269
+ /* A failure quiets the picture; it is never removed. */
270
+ .nc-entry-room[data-view="error"] .nc-entry-picture,
271
+ .nc-entry-room[data-view="refused"] .nc-entry-picture,
272
+ .nc-entry-room[data-view="failure"] .nc-entry-picture {
273
+ opacity: 0.5;
274
+ }
275
+
276
+ .nc-entry-header {
277
+ position: absolute;
278
+ top: var(--entry-pad);
279
+ left: var(--entry-pad);
280
+ z-index: 2;
281
+ color: var(--nc-identity-white);
282
+
283
+ --nc-logo-dot: var(--nc-dark-logo-dot);
284
+ }
285
+
286
+ .nc-entry-header svg {
287
+ display: block;
288
+ width: auto;
289
+ height: 24px;
290
+ }
291
+
292
+ /* The group --------------------------------------------------------------- */
293
+
294
+ .nc-entry-figure {
295
+ position: relative;
296
+ z-index: 1;
297
+ display: grid;
298
+ justify-items: center;
299
+ }
300
+
301
+ .nc-entry-body {
302
+ position: relative;
303
+ z-index: 1;
304
+ display: grid;
305
+ justify-items: center;
306
+ gap: var(--nc-md);
307
+ width: 100%;
308
+ max-width: 20rem;
309
+ text-align: center;
310
+ }
311
+
312
+ .nc-entry-body:empty {
313
+ display: none;
314
+ }
315
+
316
+ .nc-entry-message {
317
+ margin: 0;
318
+ min-height: calc(var(--nc-type-body-md-line-height) * var(--entry-message-lines, 1));
319
+ display: grid;
320
+ align-items: center;
321
+ font-family: var(--nc-type-body-md-font-family);
322
+ font-size: var(--nc-type-body-md-font-size);
323
+ font-weight: var(--nc-type-body-md-font-weight);
324
+ line-height: var(--nc-type-body-md-line-height);
325
+ letter-spacing: var(--nc-type-body-md-letter-spacing);
326
+ text-wrap: balance;
327
+ color: var(--nc-dark-ink);
328
+ }
329
+
330
+ .nc-entry-actions {
331
+ display: flex;
332
+ flex-wrap: wrap;
333
+ align-items: center;
334
+ justify-content: center;
335
+ gap: var(--nc-sm);
336
+ }
337
+
338
+ .nc-entry-action {
339
+ min-height: var(--nc-control-height);
340
+ padding: var(--nc-xs) var(--nc-md);
341
+ border-radius: var(--nc-rounded-md);
342
+ font-family: var(--nc-type-body-sm-font-family);
343
+ font-size: var(--nc-type-body-sm-font-size);
344
+ font-weight: 500;
345
+ line-height: var(--nc-type-body-sm-line-height);
346
+ background: var(--nc-dark-action);
347
+ color: var(--nc-dark-action-foreground);
348
+ transition:
349
+ background-color var(--nc-duration-control) var(--nc-ease-out-strong),
350
+ color var(--nc-duration-control) var(--nc-ease-out-strong);
351
+ }
352
+
353
+ .nc-entry-action:hover:not(:disabled) {
354
+ background: var(--nc-dark-action-hover);
355
+ color: var(--nc-dark-action-foreground);
356
+ }
357
+
358
+ .nc-entry-action:active:not(:disabled),
359
+ .nc-entry-action[data-pressed]:not(:disabled) {
360
+ background: var(--nc-dark-action-active);
361
+ color: var(--nc-dark-action-foreground);
362
+ }
363
+
364
+ .nc-entry-action:disabled {
365
+ opacity: 0.5;
366
+ }
367
+
368
+ .nc-entry-action:focus-visible {
369
+ outline: 2px solid var(--nc-dark-focus-ring);
370
+ outline-offset: 2px;
371
+ }
372
+
373
+ .nc-entry-action[data-variant="secondary"] {
374
+ background: transparent;
375
+ border: var(--nc-guide) solid var(--nc-dark-line);
376
+ color: var(--nc-dark-body);
377
+ }
378
+
379
+ .nc-entry-action[data-variant="secondary"]:hover:not(:disabled) {
380
+ background: var(--nc-dark-canvas-soft);
381
+ color: var(--nc-dark-ink);
382
+ }
383
+
384
+ /* Measured work ----------------------------------------------------------- */
385
+
386
+ .nc-entry-progress {
387
+ display: grid;
388
+ justify-items: center;
389
+ gap: var(--nc-xs);
390
+ width: 100%;
391
+ max-width: 18rem;
392
+ }
393
+
394
+ .nc-entry-progress-track {
395
+ width: 100%;
396
+ height: 2px;
397
+ overflow: hidden;
398
+ background: var(--nc-dark-line);
399
+ }
400
+
401
+ .nc-entry-progress-value {
402
+ height: 100%;
403
+ background: var(--nc-dark-ink);
404
+ transition: width var(--nc-duration-transition) var(--nc-ease-out-strong);
405
+ }
406
+
407
+ /* The value grows; the fades are paint and stay. */
408
+ @media (prefers-reduced-motion: reduce) {
409
+ .nc-entry-progress-value {
410
+ transition: none;
411
+ }
412
+ }
413
+
414
+ .nc-entry-progress-count {
415
+ font-family: var(--nc-type-label-mono-font-family);
416
+ font-size: var(--nc-type-label-mono-font-size);
417
+ line-height: var(--nc-type-label-mono-line-height);
418
+ font-variant-numeric: tabular-nums;
419
+ color: var(--nc-dark-muted);
420
+ }
421
+
422
+ /* The stages -------------------------------------------------------------- */
423
+
424
+ .nc-entry-stages {
425
+ display: grid;
426
+ gap: var(--nc-xs);
427
+ margin: 0;
428
+ padding: 0;
429
+ list-style: none;
430
+ text-align: start;
431
+ font-family: var(--nc-type-body-sm-font-family);
432
+ font-size: var(--nc-type-body-sm-font-size);
433
+ line-height: var(--nc-type-body-sm-line-height);
434
+ color: var(--nc-dark-muted);
435
+ }
436
+
437
+ .nc-entry-stages li {
438
+ display: flex;
439
+ align-items: center;
440
+ gap: var(--nc-sm);
441
+ transition: color var(--nc-duration-transition) var(--nc-ease-out-strong);
442
+ }
443
+
444
+ .nc-entry-stages li[data-mark="done"] {
445
+ color: var(--nc-dark-body);
446
+ }
447
+
448
+ .nc-entry-stages li[data-mark="current"] {
449
+ color: var(--nc-dark-ink);
450
+ font-weight: 500;
451
+ }
452
+
453
+ .nc-entry-mark {
454
+ position: relative;
455
+ flex: none;
456
+ width: 14px;
457
+ height: 14px;
458
+ border: 1.5px solid var(--nc-dark-line);
459
+ border-radius: var(--nc-rounded-full);
460
+ }
461
+
462
+ [data-mark="current"] > .nc-entry-mark {
463
+ border-color: var(--nc-dark-ink);
464
+ }
465
+
466
+ [data-mark="current"] > .nc-entry-mark::after {
467
+ content: "";
468
+ position: absolute;
469
+ inset: 2.5px;
470
+ border-radius: inherit;
471
+ background: var(--nc-dark-ink);
472
+ }
473
+
474
+ [data-mark="done"] > .nc-entry-mark {
475
+ border-color: var(--nc-dark-body);
476
+ }
477
+
478
+ [data-mark="done"] > .nc-entry-mark::after {
479
+ content: "";
480
+ position: absolute;
481
+ left: 3.5px;
482
+ top: 1px;
483
+ width: 3.5px;
484
+ height: 7px;
485
+ border: solid var(--nc-dark-body);
486
+ border-width: 0 1.5px 1.5px 0;
487
+ transform: rotate(45deg);
488
+ }
489
+
490
+ /*
491
+ * A narrow box is the product's small window: the ribbon halves and the
492
+ * picture gives the message column the room it needs.
493
+ */
494
+ @container (max-width: 639px) {
495
+ .nc-entry-room {
496
+ --entry-pad: var(--nc-md);
497
+ --entry-presence-size: 96px;
498
+ --entry-picture-width: min(56cqw, calc(100cqh * 1672 / var(--entry-picture-feet, 906)));
499
+ }
500
+
501
+ .nc-entry-body {
502
+ max-width: 100%;
503
+ }
504
+ }
505
+
506
+ /*
507
+ * The company card, contained (`components/company-card.tsx`;
508
+ * design-system DESIGN.md, "Company card").
509
+ *
510
+ * The card is one object of the ID-1 proportion, dark by nature in every
511
+ * theme, so these rules name the raw dark tokens rather than the host's roles;
512
+ * the card element scopes `dark` so every role it does not paint itself takes
513
+ * its dark value too. The scene is the query container, so every measure on
514
+ * the card is a share of its own width and the card reads the same at any size.
515
+ *
516
+ * The component sets `--tilt-x`, `--tilt-y`, `--light-x`, `--light-y` and
517
+ * `--foil` on the card frame by frame, and `data-tracking` while it does, so
518
+ * the transitions below get out of the way of the pointer.
519
+ */
520
+
521
+ .nc-company-card-scene {
522
+ container-type: inline-size;
523
+ width: 100%;
524
+ perspective: 900px;
525
+ }
526
+
527
+ .nc-company-card {
528
+ --tilt-x: 0deg;
529
+ --tilt-y: 0deg;
530
+ --light-x: 30%;
531
+ --light-y: 20%;
532
+ --foil: 0;
533
+
534
+ position: relative;
535
+ aspect-ratio: 856 / 540;
536
+ overflow: hidden;
537
+ border-radius: 3.7cqi;
538
+ background: var(--nc-dark-material-floating);
539
+ color: var(--nc-identity-white);
540
+ transform: rotateX(var(--tilt-x)) rotateY(var(--tilt-y));
541
+ transition: transform var(--nc-duration-transition) var(--nc-ease-out-strong);
542
+ }
543
+
544
+ .nc-company-card-gpu {
545
+ position: absolute;
546
+ inset: 0;
547
+ width: 100%;
548
+ height: 100%;
549
+ opacity: 0;
550
+ }
551
+
552
+ .nc-company-card[data-foil="gpu"] .nc-company-card-gpu {
553
+ opacity: 1;
554
+ }
555
+
556
+ .nc-company-card[data-foil="gpu"] .nc-company-card-foil,
557
+ .nc-company-card[data-foil="gpu"] .nc-company-card-glare,
558
+ .nc-company-card[data-foil="gpu"] .nc-company-card-waves {
559
+ display: none;
560
+ }
561
+
562
+ /* vgpu's renderer eases the turn itself, frame by frame. */
563
+ .nc-company-card[data-foil="gpu"] {
564
+ transition: none;
565
+ }
566
+
567
+ .nc-company-card-engraving {
568
+ position: absolute;
569
+ inset: 0;
570
+ width: 100%;
571
+ height: 100%;
572
+ color: var(--nc-identity-white);
573
+ }
574
+
575
+ .nc-company-card-lines {
576
+ opacity: 0.1;
577
+ }
578
+
579
+ .nc-company-card-foil,
580
+ .nc-company-card-glare {
581
+ opacity: var(--foil);
582
+ transition: opacity var(--nc-duration-transition) var(--nc-ease-out-strong);
583
+ }
584
+
585
+ .nc-company-card-glare {
586
+ position: absolute;
587
+ inset: 0;
588
+ pointer-events: none;
589
+ background: radial-gradient(
590
+ circle at var(--light-x) var(--light-y),
591
+ color-mix(in srgb, var(--nc-identity-white) 12%, transparent) 0 8%,
592
+ transparent 46%
593
+ );
594
+ mix-blend-mode: plus-lighter;
595
+ }
596
+
597
+ .nc-company-card[data-tracking="true"],
598
+ .nc-company-card[data-tracking="true"] .nc-company-card-foil,
599
+ .nc-company-card[data-tracking="true"] .nc-company-card-glare {
600
+ transition: none;
601
+ }
602
+
603
+ .nc-company-card-face {
604
+ position: absolute;
605
+ inset: 0;
606
+ display: grid;
607
+ grid-template-rows: auto 1fr auto;
608
+ padding: 6.4cqi 7cqi;
609
+ }
610
+
611
+ .nc-company-card-top {
612
+ display: flex;
613
+ align-items: center;
614
+ justify-content: space-between;
615
+ gap: 4cqi;
616
+ }
617
+
618
+ .nc-company-card-marks {
619
+ display: flex;
620
+ align-items: center;
621
+ gap: 2.6cqi;
622
+ min-width: 0;
623
+ }
624
+
625
+ .nc-company-card-rule {
626
+ flex-shrink: 0;
627
+ width: 0.25cqi;
628
+ height: 5.6cqi;
629
+ background: color-mix(in srgb, var(--nc-identity-white) 35%, transparent);
630
+ }
631
+
632
+ /* The logo is stored as one ink in white, so it sits on the graphite as the wordmark does. */
633
+ .nc-company-card-logo {
634
+ display: block;
635
+ width: auto;
636
+ max-width: 26cqi;
637
+ height: 5.6cqi;
638
+ object-fit: contain;
639
+ object-position: left center;
640
+ }
641
+
642
+ .nc-company-card-edition,
643
+ .nc-company-card-since {
644
+ font-family: var(--nc-type-label-mono-font-family);
645
+ font-size: 2.6cqi;
646
+ letter-spacing: 0.1em;
647
+ text-transform: uppercase;
648
+ opacity: 0.72;
649
+ }
650
+
651
+ .nc-company-card-bottom {
652
+ display: flex;
653
+ align-items: flex-end;
654
+ justify-content: space-between;
655
+ gap: 4cqi;
656
+ min-width: 0;
657
+ }
658
+
659
+ .nc-company-card-holder {
660
+ display: grid;
661
+ gap: 1.2cqi;
662
+ min-width: 0;
663
+ }
664
+
665
+ .nc-company-card-name {
666
+ font-size: 5.4cqi;
667
+ font-weight: 500;
668
+ line-height: 1.15;
669
+ letter-spacing: -0.01em;
670
+ overflow: hidden;
671
+ text-overflow: ellipsis;
672
+ white-space: nowrap;
673
+ }
674
+
675
+ .nc-company-card-domain {
676
+ font-size: 3.2cqi;
677
+ opacity: 0.72;
678
+ overflow: hidden;
679
+ text-overflow: ellipsis;
680
+ white-space: nowrap;
681
+ }
682
+
683
+ .nc-company-card-placeholder {
684
+ opacity: 0.38;
685
+ }
686
+
687
+ .nc-company-card-since {
688
+ flex-shrink: 0;
689
+ }
690
+
691
+ @keyframes nc-company-card-issue {
692
+ from {
693
+ transform: translateY(3cqi) scale(0.97);
694
+ }
695
+ }
696
+
697
+ @keyframes nc-company-card-catch-light {
698
+ 45% {
699
+ opacity: 0.8;
700
+ }
701
+ }
702
+
703
+ .nc-company-card[data-issued="true"] {
704
+ animation: nc-company-card-issue var(--nc-duration-transition) var(--nc-ease-out-strong);
705
+ }
706
+
707
+ .nc-company-card[data-issued="true"] .nc-company-card-foil,
708
+ .nc-company-card[data-issued="true"] .nc-company-card-glare {
709
+ animation: nc-company-card-catch-light var(--nc-duration-transition) var(--nc-ease-out-strong);
710
+ }
711
+
712
+ @media (prefers-reduced-motion: reduce) {
713
+ .nc-company-card {
714
+ transform: none;
715
+ }
716
+
717
+ .nc-company-card[data-issued="true"] {
718
+ animation: none;
719
+ }
720
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nadicodeai/ui",
3
- "version": "12.1.51",
3
+ "version": "12.1.53",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -77,7 +77,7 @@
77
77
  "@assistant-ui/react": "0.15.22",
78
78
  "@assistant-ui/react-markdown": "0.14.17",
79
79
  "@base-ui/react": "^1.8.0",
80
- "@nadicodeai/design-system": "12.1.51",
80
+ "@nadicodeai/design-system": "12.1.53",
81
81
  "class-variance-authority": "^0.7.1",
82
82
  "clsx": "^2.1.1",
83
83
  "cmdk": "^1.1.1",
@@ -96,6 +96,7 @@
96
96
  "tailwind-merge": "^3.7.0",
97
97
  "thinking-orbs": "0.3.2",
98
98
  "tw-animate-css": "^1.4.0",
99
+ "vgpu": "0.5.0",
99
100
  "zustand": "^5.0.14"
100
101
  },
101
102
  "peerDependencies": {