@yuva-devlab/ui 1.3.2 → 1.4.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.
@@ -471,7 +471,7 @@
471
471
  }
472
472
  .dl-btn--ghost {
473
473
  background-color: transparent;
474
- color: var(--foreground);
474
+ color: inherit;
475
475
  }
476
476
  .dl-btn--ghost:hover {
477
477
  background-color: var(--accent);
@@ -804,6 +804,40 @@
804
804
  animation: dl-fade-out 100ms ease;
805
805
  }
806
806
 
807
+ /* ── copy-button ── */
808
+ .dl-copy-button {
809
+ display: inline-flex;
810
+ align-items: center;
811
+ justify-content: center;
812
+ gap: 0.375rem;
813
+ font-size: 0.75rem;
814
+ font-weight: 500;
815
+ border-radius: var(--radius, 0.375rem);
816
+ border: 1px solid var(--border);
817
+ background: var(--card);
818
+ color: var(--foreground);
819
+ padding: 0.25rem 0.625rem;
820
+ cursor: pointer;
821
+ transition: all 0.15s ease;
822
+ user-select: none;
823
+ }
824
+
825
+ .dl-copy-button:hover {
826
+ background: var(--secondary);
827
+ border-color: var(--muted-foreground);
828
+ }
829
+
830
+ .dl-copy-button--copied {
831
+ border-color: var(--success);
832
+ color: var(--success);
833
+ }
834
+
835
+ .dl-copy-button__icon {
836
+ width: 0.875rem;
837
+ height: 0.875rem;
838
+ flex-shrink: 0;
839
+ }
840
+
807
841
  /* ── date-picker ── */
808
842
  .dl-date-picker-trigger {
809
843
  width: 100%;
@@ -860,6 +894,7 @@
860
894
  flex-direction: column;
861
895
  width: calc(100% - 2rem);
862
896
  max-width: var(--dl-dialog-max-width, 32rem);
897
+ height: auto;
863
898
  max-height: calc(100dvh - 3rem);
864
899
  border: 1px solid var(--border);
865
900
  background-color: var(--background);
@@ -887,25 +922,25 @@
887
922
  .dl-dialog--lg {
888
923
  width: 90vw;
889
924
  max-width: 44rem;
890
- height: 80vh;
925
+ height: auto;
891
926
  max-height: 80vh;
892
927
  }
893
928
  .dl-dialog--xl {
894
929
  width: 92vw;
895
930
  max-width: 56rem;
896
- height: 85vh;
931
+ height: auto;
897
932
  max-height: 85vh;
898
933
  }
899
934
  .dl-dialog--2xl {
900
935
  width: 94vw;
901
936
  max-width: 72rem;
902
- height: 85vh;
937
+ height: auto;
903
938
  max-height: 85vh;
904
939
  }
905
940
  .dl-dialog--full {
906
941
  width: calc(100vw - 2rem);
907
942
  max-width: calc(100vw - 2rem);
908
- height: calc(100dvh - 2rem);
943
+ height: auto;
909
944
  max-height: calc(100dvh - 2rem);
910
945
  }
911
946
 
@@ -1218,7 +1253,7 @@
1218
1253
  background-color: transparent;
1219
1254
  padding-block: 0.25rem;
1220
1255
  padding-inline: 0.75rem;
1221
- font-size: 0.875rem;
1256
+ font-size: 0.75rem;
1222
1257
  line-height: 1.25rem;
1223
1258
  font-family: inherit;
1224
1259
  color: var(--foreground);
@@ -1256,7 +1291,7 @@
1256
1291
  .dl-input::file-selector-button {
1257
1292
  border: 0;
1258
1293
  background: transparent;
1259
- font-size: 0.875rem;
1294
+ font-size: 0.75rem;
1260
1295
  font-weight: 500;
1261
1296
  color: var(--foreground);
1262
1297
  cursor: pointer;
@@ -1342,7 +1377,7 @@
1342
1377
 
1343
1378
  /* ── label ── */
1344
1379
  .dl-label {
1345
- font-size: 0.875rem;
1380
+ font-size: 0.75rem;
1346
1381
  font-weight: 500;
1347
1382
  line-height: 1;
1348
1383
  color: var(--foreground);
@@ -1350,6 +1385,10 @@
1350
1385
  .dl-label--error {
1351
1386
  color: var(--destructive);
1352
1387
  }
1388
+ .dl-label-required {
1389
+ color: var(--destructive);
1390
+ margin-inline-start: 0.25rem;
1391
+ }
1353
1392
 
1354
1393
  /* ── loading-state ── */
1355
1394
  .dl-loading {
@@ -1417,6 +1456,76 @@
1417
1456
  color: var(--accent-foreground);
1418
1457
  }
1419
1458
 
1459
+ /* ── metric-card ── */
1460
+ .dl-metrics-grid {
1461
+ display: grid;
1462
+ grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
1463
+ border: 1px solid var(--border);
1464
+ border-radius: var(--radius, 0.5rem);
1465
+ background: var(--card);
1466
+ overflow: hidden;
1467
+ }
1468
+
1469
+ .dl-metric-card {
1470
+ display: flex;
1471
+ flex-direction: column;
1472
+ padding: 1.25rem;
1473
+ border-right: 1px solid var(--border);
1474
+ position: relative;
1475
+ transition: background-color 0.15s ease;
1476
+ }
1477
+
1478
+ .dl-metric-card:last-child {
1479
+ border-right: none;
1480
+ }
1481
+
1482
+ .dl-metric-card__header {
1483
+ display: flex;
1484
+ align-items: center;
1485
+ justify-content: space-between;
1486
+ margin-bottom: 0.5rem;
1487
+ }
1488
+
1489
+ .dl-metric-card__label {
1490
+ font-size: 0.6875rem;
1491
+ font-weight: 500;
1492
+ text-transform: uppercase;
1493
+ letter-spacing: 0.05em;
1494
+ color: var(--muted-foreground);
1495
+ }
1496
+
1497
+ .dl-metric-card__icon {
1498
+ color: var(--muted-foreground);
1499
+ display: inline-flex;
1500
+ }
1501
+
1502
+ .dl-metric-card__value-row {
1503
+ display: flex;
1504
+ align-items: baseline;
1505
+ gap: 0.5rem;
1506
+ }
1507
+
1508
+ .dl-metric-card__value {
1509
+ font-size: 1.75rem;
1510
+ font-weight: 600;
1511
+ line-height: 1.2;
1512
+ color: var(--foreground);
1513
+ }
1514
+
1515
+ .dl-metric-card__note {
1516
+ margin-top: 0.375rem;
1517
+ font-size: 0.6875rem;
1518
+ color: var(--muted-foreground);
1519
+ }
1520
+
1521
+ .dl-metric-card__note--positive {
1522
+ color: var(--success);
1523
+ }
1524
+
1525
+ .dl-metric-card__note--negative {
1526
+ color: var(--destructive);
1527
+ }
1528
+
1420
1529
  /* ── navigation-menu ── */
1421
1530
  .dl-navigation-menu {
1422
1531
  position: relative;
@@ -1935,6 +2044,45 @@
1935
2044
  background-color: color-mix(in oklch, var(--primary) 10%, transparent);
1936
2045
  }
1937
2046
 
2047
+ /* ── secret-reveal-card ── */
2048
+ .dl-secret-reveal {
2049
+ border-radius: var(--radius, 0.5rem);
2050
+ border: 1px solid var(--border);
2051
+ background: var(--card);
2052
+ padding: 1rem;
2053
+ display: flex;
2054
+ flex-direction: column;
2055
+ gap: 0.75rem;
2056
+ }
2057
+
2058
+ .dl-secret-reveal__warning {
2059
+ display: flex;
2060
+ align-items: center;
2061
+ gap: 0.5rem;
2062
+ font-size: 0.75rem;
2063
+ color: var(--warning);
2064
+ line-height: 1.4;
2065
+ }
2066
+
2067
+ .dl-secret-reveal__code-wrap {
2068
+ display: flex;
2069
+ align-items: center;
2070
+ justify-content: space-between;
2071
+ gap: 0.75rem;
2072
+ background: var(--background);
2073
+ border: 1px solid var(--border);
2074
+ border-radius: calc(var(--radius, 0.5rem) - 2px);
2075
+ padding: 0.5rem 0.75rem;
2076
+ }
2077
+
2078
+ .dl-secret-reveal__code {
2079
+ font-family: var(--font-mono, ui-monospace, monospace);
2080
+ font-size: 0.8125rem;
2081
+ color: var(--primary);
2082
+ word-break: break-all;
2083
+ user-select: all;
2084
+ }
2085
+
1938
2086
  /* ── select ── */
1939
2087
  .dl-select-trigger {
1940
2088
  display: inline-flex;
@@ -2204,30 +2352,59 @@
2204
2352
  /* ── sonner ── */
2205
2353
  .dl-toaster {
2206
2354
  font-family: inherit;
2355
+ --normal-bg: var(--card, var(--background));
2356
+ --normal-text: var(--card-foreground, var(--foreground));
2357
+ --normal-border: var(--border);
2358
+ }
2359
+
2360
+ [data-sonner-toaster][data-sonner-theme="dark"],
2361
+ .dark [data-sonner-toaster],
2362
+ [data-theme*="dark"] [data-sonner-toaster] {
2363
+ --normal-bg: var(--card, var(--background));
2364
+ --normal-text: var(--card-foreground, var(--foreground));
2365
+ --normal-border: var(--border);
2207
2366
  }
2208
2367
 
2209
- .dl-toast {
2368
+ [data-sonner-toaster][data-sonner-theme="light"],
2369
+ .light [data-sonner-toaster],
2370
+ [data-theme*="light"] [data-sonner-toaster] {
2371
+ --normal-bg: var(--card, var(--background));
2372
+ --normal-text: var(--card-foreground, var(--foreground));
2373
+ --normal-border: var(--border);
2374
+ }
2375
+
2376
+ .dl-toaster .dl-toast,
2377
+ [data-sonner-toaster] [data-sonner-toast][data-styled="true"] {
2210
2378
  border-radius: var(--radius-md, 0.375rem);
2211
2379
  border: 1px solid var(--border);
2212
- background-color: var(--background);
2213
- color: var(--foreground);
2380
+ background-color: var(--card, var(--background));
2381
+ color: var(--card-foreground, var(--foreground));
2214
2382
  box-shadow: 0 8px 32px rgb(0 0 0 / 0.15);
2215
2383
  }
2216
2384
 
2217
- .dl-toast__desc {
2385
+ .dl-toaster .dl-toast__desc,
2386
+ [data-sonner-toaster] [data-sonner-toast] [data-description] {
2218
2387
  color: var(--muted-foreground);
2219
2388
  }
2220
2389
 
2221
- .dl-toast__action {
2390
+ .dl-toaster .dl-toast__action,
2391
+ [data-sonner-toaster] [data-sonner-toast] [data-button] {
2222
2392
  background-color: var(--primary);
2223
2393
  color: var(--primary-foreground);
2224
2394
  }
2225
2395
 
2226
- .dl-toast__cancel {
2396
+ .dl-toaster .dl-toast__cancel,
2397
+ [data-sonner-toaster] [data-sonner-toast] [data-cancel] {
2227
2398
  background-color: var(--muted);
2228
2399
  color: var(--muted-foreground);
2229
2400
  }
2230
2401
 
2402
+ [data-sonner-toaster] [data-sonner-toast] [data-close-button] {
2403
+ background-color: var(--card, var(--background));
2404
+ border-color: var(--border);
2405
+ color: var(--card-foreground, var(--foreground));
2406
+ }
2407
+
2231
2408
  /* ── status-badge ── */
2232
2409
  .dl-status-badge {
2233
2410
  display: inline-flex;
@@ -2482,7 +2659,7 @@
2482
2659
  background-color: transparent;
2483
2660
  padding-block: 0.5rem;
2484
2661
  padding-inline: 0.75rem;
2485
- font-size: 0.875rem;
2662
+ font-size: 0.75rem;
2486
2663
  font-family: inherit;
2487
2664
  color: var(--foreground);
2488
2665
  box-shadow: 0 1px 2px rgb(0 0 0/0.05);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yuva-devlab/ui",
3
- "version": "1.3.2",
3
+ "version": "1.4.1",
4
4
  "type": "module",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.js",
@@ -72,7 +72,7 @@
72
72
  "tailwind-merge": "^3.5.0",
73
73
  "vaul": "^1.1.2",
74
74
  "zod": "^3.25.76",
75
- "@yuva-devlab/tokens": "1.1.1"
75
+ "@yuva-devlab/tokens": "1.3.0"
76
76
  },
77
77
  "devDependencies": {
78
78
  "@storybook/react": "^8.6.14",
@@ -88,6 +88,9 @@
88
88
  "react-dom": "^19.0.0",
89
89
  "sonner": "^2.0.0"
90
90
  },
91
+ "publishConfig": {
92
+ "access": "public"
93
+ },
91
94
  "scripts": {
92
95
  "build": "tsup",
93
96
  "dev": "tsup --watch",