@authdog/react-elements 0.0.40 → 0.0.43

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 (72) hide show
  1. package/.eslintrc.js +1 -1
  2. package/.storybook/main.ts +21 -0
  3. package/.storybook/preview.ts +17 -0
  4. package/.storybook/vitest.setup.ts +7 -0
  5. package/.turbo/turbo-build.log +48 -44
  6. package/CHANGELOG.md +19 -0
  7. package/dist/components/ui/alert.js.map +1 -1
  8. package/dist/components/ui/alert.mjs.map +1 -1
  9. package/dist/components/ui/avatar.js.map +1 -1
  10. package/dist/components/ui/avatar.mjs.map +1 -1
  11. package/dist/components/ui/badge.js.map +1 -1
  12. package/dist/components/ui/badge.mjs.map +1 -1
  13. package/dist/components/ui/card.js.map +1 -1
  14. package/dist/components/ui/card.mjs.map +1 -1
  15. package/dist/components/ui/dropdown-menu.js +1 -1
  16. package/dist/components/ui/dropdown-menu.js.map +1 -1
  17. package/dist/components/ui/dropdown-menu.mjs +1 -1
  18. package/dist/components/ui/dropdown-menu.mjs.map +1 -1
  19. package/dist/components/ui/input.js.map +1 -1
  20. package/dist/components/ui/input.mjs.map +1 -1
  21. package/dist/components/ui/label.js.map +1 -1
  22. package/dist/components/ui/label.mjs.map +1 -1
  23. package/dist/components/ui/separator.js.map +1 -1
  24. package/dist/components/ui/separator.mjs.map +1 -1
  25. package/dist/components/ui/sheet.js.map +1 -1
  26. package/dist/components/ui/sheet.mjs.map +1 -1
  27. package/dist/components/ui/theme-toggle.js +3 -0
  28. package/dist/components/ui/theme-toggle.js.map +1 -0
  29. package/dist/components/ui/theme-toggle.mjs +3 -0
  30. package/dist/components/ui/theme-toggle.mjs.map +1 -0
  31. package/dist/index.d.mts +5 -2
  32. package/dist/index.d.ts +5 -2
  33. package/dist/index.js +1 -1
  34. package/dist/index.js.map +1 -1
  35. package/dist/index.mjs +1 -1
  36. package/dist/index.mjs.map +1 -1
  37. package/dist/styles.css +314 -20
  38. package/package.json +23 -12
  39. package/src/components/core/navbar.tsx +145 -112
  40. package/src/components/core/user-dropdown.tsx +22 -4
  41. package/src/components/icons.tsx +6 -12
  42. package/src/components/ui/alert.tsx +1 -1
  43. package/src/components/ui/avatar.tsx +1 -1
  44. package/src/components/ui/badge.tsx +1 -1
  45. package/src/components/ui/card.tsx +1 -1
  46. package/src/components/ui/dropdown-menu.tsx +198 -197
  47. package/src/components/ui/input.tsx +1 -1
  48. package/src/components/ui/label.tsx +1 -1
  49. package/src/components/ui/separator.tsx +1 -1
  50. package/src/components/ui/sheet.tsx +1 -1
  51. package/src/components/ui/theme-toggle.tsx +55 -0
  52. package/src/stories/core/Navbar.stories.tsx +45 -0
  53. package/src/stories/core/PlaceholderAlert.stories.tsx +23 -0
  54. package/src/stories/core/UserDropdown.stories.tsx +56 -0
  55. package/src/stories/core/UserProfile.stories.tsx +47 -0
  56. package/src/stories/flow/LoginForm.stories.tsx +20 -0
  57. package/src/stories/flow/TotpValidator.stories.tsx +23 -0
  58. package/src/stories/showcase/Landing.stories.tsx +376 -0
  59. package/src/stories/ui/Button.stories.tsx +45 -0
  60. package/vitest.config.ts +39 -0
  61. package/vitest.shims.d.ts +1 -0
  62. package/wrangler.prod.toml +4 -0
  63. package/ladle.config.mjs +0 -21
  64. package/src/main.tsx +0 -9
  65. package/src/preview.tsx +0 -7
  66. package/src/stories/Button._stories.tsx +0 -28
  67. package/src/stories/LoginForm.stories.tsx +0 -29
  68. package/src/stories/Navbar._stories.tsx +0 -66
  69. package/src/stories/PlaceholderAlert._stories.tsx +0 -13
  70. package/src/stories/TotpValidator.stories.tsx +0 -16
  71. package/src/stories/UserDropdown.stories.tsx +0 -34
  72. package/src/stories/UserProfile.stories.tsx +0 -46
package/dist/styles.css CHANGED
@@ -531,6 +531,39 @@ video {
531
531
 
532
532
  --radius: 0.5rem;
533
533
  }
534
+
535
+ .dark {
536
+ --background: 224 71% 4%;
537
+ --foreground: 213 31% 91%;
538
+
539
+ --muted: 223 47% 11%;
540
+ --muted-foreground: 215.4 16.3% 56.9%;
541
+
542
+ --popover: 224 71% 4%;
543
+ --popover-foreground: 215 20.2% 65.1%;
544
+
545
+ --card: 224 71% 4%;
546
+ --card-foreground: 213 31% 91%;
547
+
548
+ --border: 216 34% 17%;
549
+ --input: 216 34% 17%;
550
+
551
+ --primary: 210 40% 98%;
552
+ --primary-foreground: 222.2 47.4% 1.2%;
553
+
554
+ --secondary: 222.2 47.4% 11.2%;
555
+ --secondary-foreground: 210 40% 98%;
556
+
557
+ --accent: 216 34% 17%;
558
+ --accent-foreground: 210 40% 98%;
559
+
560
+ --destructive: 0 63% 31%;
561
+ --destructive-foreground: 210 40% 98%;
562
+
563
+ --ring: 216 34% 17%;
564
+
565
+ --radius: 0.5rem;
566
+ }
534
567
  * {
535
568
  border-color: hsl(var(--border));
536
569
  }
@@ -539,19 +572,6 @@ video {
539
572
  color: hsl(var(--foreground));
540
573
  font-feature-settings: "rlig" 1, "calt" 1;
541
574
  }
542
- .container {
543
- width: 100%;
544
- margin-right: auto;
545
- margin-left: auto;
546
- padding-right: 2rem;
547
- padding-left: 2rem;
548
- }
549
- @media (min-width: 1400px) {
550
-
551
- .container {
552
- max-width: 1400px;
553
- }
554
- }
555
575
  .sr-only {
556
576
  position: absolute;
557
577
  width: 1px;
@@ -575,6 +595,9 @@ video {
575
595
  .relative {
576
596
  position: relative;
577
597
  }
598
+ .sticky {
599
+ position: sticky;
600
+ }
578
601
  .inset-0 {
579
602
  inset: 0px;
580
603
  }
@@ -610,6 +633,9 @@ video {
610
633
  .top-4 {
611
634
  top: 1rem;
612
635
  }
636
+ .z-40 {
637
+ z-index: 40;
638
+ }
613
639
  .z-50 {
614
640
  z-index: 50;
615
641
  }
@@ -665,9 +691,24 @@ video {
665
691
  .mt-1 {
666
692
  margin-top: 0.25rem;
667
693
  }
694
+ .mt-10 {
695
+ margin-top: 2.5rem;
696
+ }
668
697
  .mt-2 {
669
698
  margin-top: 0.5rem;
670
699
  }
700
+ .mt-3 {
701
+ margin-top: 0.75rem;
702
+ }
703
+ .mt-4 {
704
+ margin-top: 1rem;
705
+ }
706
+ .mt-6 {
707
+ margin-top: 1.5rem;
708
+ }
709
+ .mt-8 {
710
+ margin-top: 2rem;
711
+ }
671
712
  .mt-auto {
672
713
  margin-top: auto;
673
714
  }
@@ -680,6 +721,9 @@ video {
680
721
  .inline-block {
681
722
  display: inline-block;
682
723
  }
724
+ .inline {
725
+ display: inline;
726
+ }
683
727
  .flex {
684
728
  display: flex;
685
729
  }
@@ -796,6 +840,9 @@ video {
796
840
  .w-6 {
797
841
  width: 1.5rem;
798
842
  }
843
+ .w-7 {
844
+ width: 1.75rem;
845
+ }
799
846
  .w-72 {
800
847
  width: 18rem;
801
848
  }
@@ -818,6 +865,12 @@ video {
818
865
  .min-w-\[8rem\] {
819
866
  min-width: 8rem;
820
867
  }
868
+ .max-w-3xl {
869
+ max-width: 48rem;
870
+ }
871
+ .max-w-6xl {
872
+ max-width: 72rem;
873
+ }
821
874
  .max-w-md {
822
875
  max-width: 28rem;
823
876
  }
@@ -868,12 +921,18 @@ video {
868
921
  .flex-col {
869
922
  flex-direction: column;
870
923
  }
924
+ .flex-wrap {
925
+ flex-wrap: wrap;
926
+ }
871
927
  .items-start {
872
928
  align-items: flex-start;
873
929
  }
874
930
  .items-center {
875
931
  align-items: center;
876
932
  }
933
+ .justify-start {
934
+ justify-content: flex-start;
935
+ }
877
936
  .justify-end {
878
937
  justify-content: flex-end;
879
938
  }
@@ -892,6 +951,12 @@ video {
892
951
  .gap-1\.5 {
893
952
  gap: 0.375rem;
894
953
  }
954
+ .gap-12 {
955
+ gap: 3rem;
956
+ }
957
+ .gap-16 {
958
+ gap: 4rem;
959
+ }
895
960
  .gap-2 {
896
961
  gap: 0.5rem;
897
962
  }
@@ -904,6 +969,9 @@ video {
904
969
  .gap-6 {
905
970
  gap: 1.5rem;
906
971
  }
972
+ .gap-8 {
973
+ gap: 2rem;
974
+ }
907
975
  .gap-y-0\.5 {
908
976
  row-gap: 0.125rem;
909
977
  }
@@ -942,6 +1010,11 @@ video {
942
1010
  margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
943
1011
  margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
944
1012
  }
1013
+ .space-y-8 > :not([hidden]) ~ :not([hidden]) {
1014
+ --tw-space-y-reverse: 0;
1015
+ margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));
1016
+ margin-bottom: calc(2rem * var(--tw-space-y-reverse));
1017
+ }
945
1018
  .self-start {
946
1019
  align-self: flex-start;
947
1020
  }
@@ -968,6 +1041,18 @@ video {
968
1041
  .rounded {
969
1042
  border-radius: 0.25rem;
970
1043
  }
1044
+ .rounded-2xl {
1045
+ border-radius: 1rem;
1046
+ }
1047
+ .rounded-3xl {
1048
+ border-radius: 1.5rem;
1049
+ }
1050
+ .rounded-\[28px\] {
1051
+ border-radius: 28px;
1052
+ }
1053
+ .rounded-\[32px\] {
1054
+ border-radius: 32px;
1055
+ }
971
1056
  .rounded-full {
972
1057
  border-radius: 9999px;
973
1058
  }
@@ -986,6 +1071,9 @@ video {
986
1071
  .border {
987
1072
  border-width: 1px;
988
1073
  }
1074
+ .border-0 {
1075
+ border-width: 0px;
1076
+ }
989
1077
  .border-2 {
990
1078
  border-width: 2px;
991
1079
  }
@@ -1011,6 +1099,9 @@ video {
1011
1099
  .border-border {
1012
1100
  border-color: hsl(var(--border));
1013
1101
  }
1102
+ .border-emerald-400\/30 {
1103
+ border-color: rgb(52 211 153 / 0.3);
1104
+ }
1014
1105
  .border-green-200 {
1015
1106
  --tw-border-opacity: 1;
1016
1107
  border-color: rgb(187 247 208 / var(--tw-border-opacity, 1));
@@ -1025,6 +1116,15 @@ video {
1025
1116
  .border-transparent {
1026
1117
  border-color: transparent;
1027
1118
  }
1119
+ .border-white\/10 {
1120
+ border-color: rgb(255 255 255 / 0.1);
1121
+ }
1122
+ .border-white\/15 {
1123
+ border-color: rgb(255 255 255 / 0.15);
1124
+ }
1125
+ .border-white\/20 {
1126
+ border-color: rgb(255 255 255 / 0.2);
1127
+ }
1028
1128
  .bg-amber-100 {
1029
1129
  --tw-bg-opacity: 1;
1030
1130
  background-color: rgb(254 243 199 / var(--tw-bg-opacity, 1));
@@ -1032,6 +1132,9 @@ video {
1032
1132
  .bg-background {
1033
1133
  background-color: hsl(var(--background));
1034
1134
  }
1135
+ .bg-background\/80 {
1136
+ background-color: hsl(var(--background) / 0.8);
1137
+ }
1035
1138
  .bg-black\/50 {
1036
1139
  background-color: rgb(0 0 0 / 0.5);
1037
1140
  }
@@ -1048,6 +1151,12 @@ video {
1048
1151
  .bg-destructive {
1049
1152
  background-color: hsl(var(--destructive));
1050
1153
  }
1154
+ .bg-emerald-500\/10 {
1155
+ background-color: rgb(16 185 129 / 0.1);
1156
+ }
1157
+ .bg-emerald-500\/20 {
1158
+ background-color: rgb(16 185 129 / 0.2);
1159
+ }
1051
1160
  .bg-gray-100 {
1052
1161
  --tw-bg-opacity: 1;
1053
1162
  background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
@@ -1071,6 +1180,9 @@ video {
1071
1180
  .bg-muted {
1072
1181
  background-color: hsl(var(--muted));
1073
1182
  }
1183
+ .bg-muted\/80 {
1184
+ background-color: hsl(var(--muted) / 0.8);
1185
+ }
1074
1186
  .bg-popover {
1075
1187
  background-color: hsl(var(--popover));
1076
1188
  }
@@ -1080,6 +1192,13 @@ video {
1080
1192
  .bg-secondary {
1081
1193
  background-color: hsl(var(--secondary));
1082
1194
  }
1195
+ .bg-slate-900\/70 {
1196
+ background-color: rgb(15 23 42 / 0.7);
1197
+ }
1198
+ .bg-slate-950 {
1199
+ --tw-bg-opacity: 1;
1200
+ background-color: rgb(2 6 23 / var(--tw-bg-opacity, 1));
1201
+ }
1083
1202
  .bg-transparent {
1084
1203
  background-color: transparent;
1085
1204
  }
@@ -1087,20 +1206,30 @@ video {
1087
1206
  --tw-bg-opacity: 1;
1088
1207
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
1089
1208
  }
1090
- .bg-gradient-to-r {
1091
- background-image: linear-gradient(to right, var(--tw-gradient-stops));
1209
+ .bg-white\/10 {
1210
+ background-color: rgb(255 255 255 / 0.1);
1211
+ }
1212
+ .bg-white\/5 {
1213
+ background-color: rgb(255 255 255 / 0.05);
1092
1214
  }
1093
- .from-blue-500 {
1094
- --tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);
1095
- --tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);
1215
+ .bg-gradient-to-br {
1216
+ background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
1217
+ }
1218
+ .from-slate-900\/60 {
1219
+ --tw-gradient-from: rgb(15 23 42 / 0.6) var(--tw-gradient-from-position);
1220
+ --tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position);
1096
1221
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
1097
1222
  }
1098
- .to-purple-500 {
1099
- --tw-gradient-to: #a855f7 var(--tw-gradient-to-position);
1223
+ .to-slate-900\/20 {
1224
+ --tw-gradient-to: rgb(15 23 42 / 0.2) var(--tw-gradient-to-position);
1100
1225
  }
1101
1226
  .fill-current {
1102
1227
  fill: currentColor;
1103
1228
  }
1229
+ .object-contain {
1230
+ -o-object-fit: contain;
1231
+ object-fit: contain;
1232
+ }
1104
1233
  .p-0 {
1105
1234
  padding: 0px;
1106
1235
  }
@@ -1119,9 +1248,19 @@ video {
1119
1248
  .p-4 {
1120
1249
  padding: 1rem;
1121
1250
  }
1251
+ .p-5 {
1252
+ padding: 1.25rem;
1253
+ }
1122
1254
  .p-6 {
1123
1255
  padding: 1.5rem;
1124
1256
  }
1257
+ .p-8 {
1258
+ padding: 2rem;
1259
+ }
1260
+ .px-1 {
1261
+ padding-left: 0.25rem;
1262
+ padding-right: 0.25rem;
1263
+ }
1125
1264
  .px-2 {
1126
1265
  padding-left: 0.5rem;
1127
1266
  padding-right: 0.5rem;
@@ -1162,6 +1301,10 @@ video {
1162
1301
  padding-top: 3rem;
1163
1302
  padding-bottom: 3rem;
1164
1303
  }
1304
+ .py-16 {
1305
+ padding-top: 4rem;
1306
+ padding-bottom: 4rem;
1307
+ }
1165
1308
  .py-2 {
1166
1309
  padding-top: 0.5rem;
1167
1310
  padding-bottom: 0.5rem;
@@ -1192,13 +1335,27 @@ video {
1192
1335
  .pt-6 {
1193
1336
  padding-top: 1.5rem;
1194
1337
  }
1338
+ .text-left {
1339
+ text-align: left;
1340
+ }
1195
1341
  .text-center {
1196
1342
  text-align: center;
1197
1343
  }
1344
+ .font-mono {
1345
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
1346
+ }
1198
1347
  .text-2xl {
1199
1348
  font-size: 1.5rem;
1200
1349
  line-height: 2rem;
1201
1350
  }
1351
+ .text-3xl {
1352
+ font-size: 1.875rem;
1353
+ line-height: 2.25rem;
1354
+ }
1355
+ .text-4xl {
1356
+ font-size: 2.25rem;
1357
+ line-height: 2.5rem;
1358
+ }
1202
1359
  .text-base {
1203
1360
  font-size: 1rem;
1204
1361
  line-height: 1.5rem;
@@ -1231,12 +1388,27 @@ video {
1231
1388
  .font-semibold {
1232
1389
  font-weight: 600;
1233
1390
  }
1391
+ .uppercase {
1392
+ text-transform: uppercase;
1393
+ }
1234
1394
  .leading-none {
1235
1395
  line-height: 1;
1236
1396
  }
1397
+ .leading-relaxed {
1398
+ line-height: 1.625;
1399
+ }
1400
+ .leading-tight {
1401
+ line-height: 1.25;
1402
+ }
1403
+ .tracking-\[0\.3em\] {
1404
+ letter-spacing: 0.3em;
1405
+ }
1237
1406
  .tracking-tight {
1238
1407
  letter-spacing: -0.025em;
1239
1408
  }
1409
+ .tracking-wide {
1410
+ letter-spacing: 0.025em;
1411
+ }
1240
1412
  .tracking-widest {
1241
1413
  letter-spacing: 0.1em;
1242
1414
  }
@@ -1257,6 +1429,14 @@ video {
1257
1429
  .text-destructive-foreground {
1258
1430
  color: hsl(var(--destructive-foreground));
1259
1431
  }
1432
+ .text-emerald-100 {
1433
+ --tw-text-opacity: 1;
1434
+ color: rgb(209 250 229 / var(--tw-text-opacity, 1));
1435
+ }
1436
+ .text-emerald-200 {
1437
+ --tw-text-opacity: 1;
1438
+ color: rgb(167 243 208 / var(--tw-text-opacity, 1));
1439
+ }
1260
1440
  .text-foreground {
1261
1441
  color: hsl(var(--foreground));
1262
1442
  }
@@ -1315,10 +1495,27 @@ video {
1315
1495
  .text-secondary-foreground {
1316
1496
  color: hsl(var(--secondary-foreground));
1317
1497
  }
1498
+ .text-slate-300 {
1499
+ --tw-text-opacity: 1;
1500
+ color: rgb(203 213 225 / var(--tw-text-opacity, 1));
1501
+ }
1502
+ .text-slate-900 {
1503
+ --tw-text-opacity: 1;
1504
+ color: rgb(15 23 42 / var(--tw-text-opacity, 1));
1505
+ }
1318
1506
  .text-white {
1319
1507
  --tw-text-opacity: 1;
1320
1508
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
1321
1509
  }
1510
+ .text-white\/60 {
1511
+ color: rgb(255 255 255 / 0.6);
1512
+ }
1513
+ .text-white\/70 {
1514
+ color: rgb(255 255 255 / 0.7);
1515
+ }
1516
+ .text-white\/80 {
1517
+ color: rgb(255 255 255 / 0.8);
1518
+ }
1322
1519
  .underline-offset-4 {
1323
1520
  text-underline-offset: 4px;
1324
1521
  }
@@ -1333,6 +1530,26 @@ video {
1333
1530
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
1334
1531
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1335
1532
  }
1533
+ .shadow-2xl {
1534
+ --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
1535
+ --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
1536
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1537
+ }
1538
+ .shadow-\[0_20px_80px_rgba\(15\2c 23\2c 42\2c 0\.4\)\] {
1539
+ --tw-shadow: 0 20px 80px rgba(15,23,42,0.4);
1540
+ --tw-shadow-colored: 0 20px 80px var(--tw-shadow-color);
1541
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1542
+ }
1543
+ .shadow-\[0_40px_120px_rgba\(15\2c 23\2c 42\2c 0\.35\)\] {
1544
+ --tw-shadow: 0 40px 120px rgba(15,23,42,0.35);
1545
+ --tw-shadow-colored: 0 40px 120px var(--tw-shadow-color);
1546
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1547
+ }
1548
+ .shadow-inner {
1549
+ --tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);
1550
+ --tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);
1551
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1552
+ }
1336
1553
  .shadow-lg {
1337
1554
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
1338
1555
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
@@ -1360,9 +1577,26 @@ video {
1360
1577
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
1361
1578
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
1362
1579
  }
1580
+ .ring-1 {
1581
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
1582
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
1583
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
1584
+ }
1585
+ .ring-border {
1586
+ --tw-ring-color: hsl(var(--border));
1587
+ }
1363
1588
  .ring-offset-background {
1364
1589
  --tw-ring-offset-color: hsl(var(--background));
1365
1590
  }
1591
+ .backdrop-blur {
1592
+ --tw-backdrop-blur: blur(8px);
1593
+ -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
1594
+ backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
1595
+ }
1596
+ .backdrop-filter {
1597
+ -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
1598
+ backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
1599
+ }
1366
1600
  .transition {
1367
1601
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
1368
1602
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
@@ -1467,6 +1701,9 @@ video {
1467
1701
  .hover\:bg-destructive\/90:hover {
1468
1702
  background-color: hsl(var(--destructive) / 0.9);
1469
1703
  }
1704
+ .hover\:bg-emerald-500\/30:hover {
1705
+ background-color: rgb(16 185 129 / 0.3);
1706
+ }
1470
1707
  .hover\:bg-gray-100:hover {
1471
1708
  --tw-bg-opacity: 1;
1472
1709
  background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
@@ -1487,6 +1724,9 @@ video {
1487
1724
  .hover\:bg-secondary\/80:hover {
1488
1725
  background-color: hsl(var(--secondary) / 0.8);
1489
1726
  }
1727
+ .hover\:bg-white\/90:hover {
1728
+ background-color: rgb(255 255 255 / 0.9);
1729
+ }
1490
1730
  .hover\:text-accent-foreground:hover {
1491
1731
  color: hsl(var(--accent-foreground));
1492
1732
  }
@@ -1564,6 +1804,9 @@ video {
1564
1804
  .focus-visible\:ring-offset-2:focus-visible {
1565
1805
  --tw-ring-offset-width: 2px;
1566
1806
  }
1807
+ .focus-visible\:ring-offset-background:focus-visible {
1808
+ --tw-ring-offset-color: hsl(var(--background));
1809
+ }
1567
1810
  .disabled\:pointer-events-none:disabled {
1568
1811
  pointer-events: none;
1569
1812
  }
@@ -1573,6 +1816,9 @@ video {
1573
1816
  .disabled\:opacity-50:disabled {
1574
1817
  opacity: 0.5;
1575
1818
  }
1819
+ .group:hover .group-hover\:text-primary {
1820
+ color: hsl(var(--primary));
1821
+ }
1576
1822
  .peer:disabled ~ .peer-disabled\:cursor-not-allowed {
1577
1823
  cursor: not-allowed;
1578
1824
  }
@@ -1712,6 +1958,12 @@ video {
1712
1958
  .group[data-disabled="true"] .group-data-\[disabled\=true\]\:opacity-50 {
1713
1959
  opacity: 0.5;
1714
1960
  }
1961
+ @supports ((-webkit-backdrop-filter: var(--tw)) or (backdrop-filter: var(--tw))) {
1962
+
1963
+ .supports-\[backdrop-filter\]\:bg-background\/60 {
1964
+ background-color: hsl(var(--background) / 0.6);
1965
+ }
1966
+ }
1715
1967
  .dark\:border-amber-400\/40:is(.dark *) {
1716
1968
  border-color: rgb(251 191 36 / 0.4);
1717
1969
  }
@@ -1790,10 +2042,19 @@ video {
1790
2042
  max-width: 24rem;
1791
2043
  }
1792
2044
 
2045
+ .sm\:grid-cols-3 {
2046
+ grid-template-columns: repeat(3, minmax(0, 1fr));
2047
+ }
2048
+
1793
2049
  .sm\:px-6 {
1794
2050
  padding-left: 1.5rem;
1795
2051
  padding-right: 1.5rem;
1796
2052
  }
2053
+
2054
+ .sm\:text-5xl {
2055
+ font-size: 3rem;
2056
+ line-height: 1;
2057
+ }
1797
2058
  }
1798
2059
  @media (min-width: 768px) {
1799
2060
 
@@ -1809,6 +2070,22 @@ video {
1809
2070
  display: none;
1810
2071
  }
1811
2072
 
2073
+ .md\:grid-cols-2 {
2074
+ grid-template-columns: repeat(2, minmax(0, 1fr));
2075
+ }
2076
+
2077
+ .md\:grid-cols-3 {
2078
+ grid-template-columns: repeat(3, minmax(0, 1fr));
2079
+ }
2080
+
2081
+ .md\:gap-3 {
2082
+ gap: 0.75rem;
2083
+ }
2084
+
2085
+ .md\:gap-4 {
2086
+ gap: 1rem;
2087
+ }
2088
+
1812
2089
  .md\:space-y-6 > :not([hidden]) ~ :not([hidden]) {
1813
2090
  --tw-space-y-reverse: 0;
1814
2091
  margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
@@ -1828,6 +2105,11 @@ video {
1828
2105
  padding-right: 1.5rem;
1829
2106
  }
1830
2107
 
2108
+ .md\:text-lg {
2109
+ font-size: 1.125rem;
2110
+ line-height: 1.75rem;
2111
+ }
2112
+
1831
2113
  .md\:text-sm {
1832
2114
  font-size: 0.875rem;
1833
2115
  line-height: 1.25rem;
@@ -1835,6 +2117,18 @@ video {
1835
2117
  }
1836
2118
  @media (min-width: 1024px) {
1837
2119
 
2120
+ .lg\:max-w-\[80vw\] {
2121
+ max-width: 80vw;
2122
+ }
2123
+
2124
+ .lg\:grid-cols-4 {
2125
+ grid-template-columns: repeat(4, minmax(0, 1fr));
2126
+ }
2127
+
2128
+ .lg\:grid-cols-\[1\.2fr_minmax\(0\2c 1fr\)\] {
2129
+ grid-template-columns: 1.2fr minmax(0,1fr);
2130
+ }
2131
+
1838
2132
  .lg\:px-8 {
1839
2133
  padding-left: 2rem;
1840
2134
  padding-right: 2rem;
package/package.json CHANGED
@@ -1,32 +1,42 @@
1
1
  {
2
2
  "name": "@authdog/react-elements",
3
- "version": "0.0.40",
3
+ "version": "0.0.43",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.mjs",
6
6
  "types": "./dist/index.d.mts",
7
7
  "peerDependencies": {
8
- "react": "^19.1.0",
9
- "react-dom": "^19.1.0"
8
+ "react": "19.0.0",
9
+ "react-dom": "19.0.0"
10
10
  },
11
11
  "devDependencies": {
12
- "@ladle/react": "^2.0.0",
13
- "@types/node": "^20",
14
- "@types/react": "^19.1.0",
15
- "@types/react-dom": "^19.1.0",
12
+ "@storybook/addon-a11y": "^10.1.3",
13
+ "@storybook/addon-docs": "10.1.3",
14
+ "@storybook/addon-links": "^10.1.3",
15
+ "@storybook/react-vite": "^10.1.3",
16
+ "@types/node": "22.10.10",
17
+ "@types/react": "19.1.8",
18
+ "@types/react-dom": "19.1.8",
16
19
  "@vitejs/plugin-react": "^4.4.1",
17
20
  "autoprefixer": "^10",
18
21
  "css-loader": "^6.8.1",
22
+ "eslint-plugin-storybook": "^10.1.3",
23
+ "next": "15.1.6",
19
24
  "postcss": "^8",
20
25
  "postcss-cli": "^11.0.1",
21
26
  "postcss-import": "^16.1.0",
22
27
  "postcss-load-config": "^6",
28
+ "react": "19.0.0",
29
+ "react-dom": "19.0.0",
30
+ "react-tweet": "^3.2.1",
31
+ "storybook": "^10.1.3",
23
32
  "style-loader": "^3.3.3",
24
33
  "tailwindcss": "3.4.18",
25
34
  "ts-loader": "^9.5.1",
26
- "typescript": "^5.6.3",
35
+ "typescript": "5.7.3",
36
+ "vite": "^5.0.0",
27
37
  "webpack": "^5.89.0",
28
- "@authdog/eslint-config": "0.0.0",
29
- "@authdog/typescript-config": "0.0.0"
38
+ "@authdog/typescript-config": "0.0.0",
39
+ "@authdog/eslint-config": "0.0.0"
30
40
  },
31
41
  "dependencies": {
32
42
  "@radix-ui/react-avatar": "^1.1.9",
@@ -72,7 +82,8 @@
72
82
  "lint": "eslint .",
73
83
  "build:styles": "postcss src/global.css -o dist/styles.css",
74
84
  "build": "pnpm tsup && pnpm build:styles",
75
- "ladle": "ladle serve",
76
- "ladle:build": "ladle build"
85
+ "storybook": "storybook dev -p 7007",
86
+ "build-storybook": "storybook build",
87
+ "deploy-docs": "pnpm build-storybook && cp wrangler.prod.toml wrangler.toml && wrangler pages deploy"
77
88
  }
78
89
  }