hive-react-kit 0.10.0 → 0.10.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.
package/README.md CHANGED
@@ -69,7 +69,9 @@ import type { Video, Comment, Wallet as WalletType } from 'hive-react-kit/types'
69
69
 
70
70
  ### Composer Components
71
71
 
72
- - **PostComposer** - Rich markdown composer with live preview (@snapie/renderer), image/audio/video upload, paste & drag-drop, GIF search, emoji picker (500+, 9 categories), template picker, code blocks with copy, and @ mention. See [PostComposer docs](docs/PostComposer.md)
72
+ - **PostComposer** Rich markdown composer with live preview (@snapie/renderer), image/audio/video upload, paste & drag-drop, GIF search, emoji picker (500+, 9 categories), template picker, code blocks with copy, @ mention, locked + user tags (split on space/comma/Enter), reward routing dropdown, beneficiaries editor with auto `threespeakfund` 10% lock on video posts, and upvote-on-publish toggle. See [PostComposer docs](docs/PostComposer.md).
73
+ - **ParentPostComposer** — Full-screen blog composer with title (≤120 chars), description (≤120 chars with counter), markdown body, **side-by-side live preview always on**, the same toolbar features as PostComposer, local draft persistence to `localStorage`, and the 3Speak v2 video pipeline (`upload_id` → `/api/upload/finalize`). See [ParentPostComposer docs](docs/ParentPostComposer.md).
74
+ - **BeneficiariesEditor** — Standalone modal that powers the beneficiaries flow in both composers — per-row +/- spinners, Hive avatars, favourites strip, total/remaining indicator, mobile bottom-sheet layout, and the auto `threespeakfund` 10% lock when `hasVideo`. See [BeneficiariesEditor docs](docs/BeneficiariesEditor.md).
73
75
 
74
76
  ### Modal Components
75
77
 
package/dist/build.css CHANGED
@@ -21,6 +21,7 @@
21
21
  --color-orange-400: oklch(75% 0.183 55.934);
22
22
  --color-orange-500: oklch(70.5% 0.213 47.604);
23
23
  --color-orange-900: oklch(40.8% 0.123 38.172);
24
+ --color-amber-200: oklch(92.4% 0.12 95.746);
24
25
  --color-amber-300: oklch(87.9% 0.169 91.605);
25
26
  --color-amber-400: oklch(82.8% 0.189 84.429);
26
27
  --color-amber-500: oklch(76.9% 0.188 70.08);
@@ -42,6 +43,7 @@
42
43
  --color-emerald-300: oklch(84.5% 0.143 164.978);
43
44
  --color-emerald-400: oklch(76.5% 0.177 163.223);
44
45
  --color-emerald-500: oklch(69.6% 0.17 162.48);
46
+ --color-emerald-600: oklch(59.6% 0.145 163.225);
45
47
  --color-emerald-900: oklch(37.8% 0.077 168.94);
46
48
  --color-sky-300: oklch(82.8% 0.111 230.318);
47
49
  --color-sky-400: oklch(74.6% 0.16 232.661);
@@ -85,6 +87,7 @@
85
87
  --color-black: #000;
86
88
  --color-white: #fff;
87
89
  --spacing: 0.25rem;
90
+ --breakpoint-2xl: 96rem;
88
91
  --container-xs: 20rem;
89
92
  --container-sm: 24rem;
90
93
  --container-md: 28rem;
@@ -324,6 +327,9 @@
324
327
  .inset-x-0 {
325
328
  inset-inline: calc(var(--spacing) * 0);
326
329
  }
330
+ .inset-x-3 {
331
+ inset-inline: calc(var(--spacing) * 3);
332
+ }
327
333
  .inset-y-0 {
328
334
  inset-block: calc(var(--spacing) * 0);
329
335
  }
@@ -438,6 +444,9 @@
438
444
  .left-4 {
439
445
  left: calc(var(--spacing) * 4);
440
446
  }
447
+ .isolate {
448
+ isolation: isolate;
449
+ }
441
450
  .z-0 {
442
451
  z-index: 0;
443
452
  }
@@ -477,6 +486,9 @@
477
486
  .z-\[9999\] {
478
487
  z-index: 9999;
479
488
  }
489
+ .z-\[10000\] {
490
+ z-index: 10000;
491
+ }
480
492
  .col-span-1 {
481
493
  grid-column: span 1 / span 1;
482
494
  }
@@ -781,6 +793,9 @@
781
793
  .h-\[400px\] {
782
794
  height: 400px;
783
795
  }
796
+ .h-\[480px\] {
797
+ height: 480px;
798
+ }
784
799
  .h-\[calc\(100vh-200px\)\] {
785
800
  height: calc(100vh - 200px);
786
801
  }
@@ -823,6 +838,9 @@
823
838
  .max-h-\[90vh\] {
824
839
  max-height: 90vh;
825
840
  }
841
+ .max-h-\[92vh\] {
842
+ max-height: 92vh;
843
+ }
826
844
  .max-h-\[300px\] {
827
845
  max-height: 300px;
828
846
  }
@@ -859,6 +877,9 @@
859
877
  .min-h-screen {
860
878
  min-height: 100vh;
861
879
  }
880
+ .w-1\.5 {
881
+ width: calc(var(--spacing) * 1.5);
882
+ }
862
883
  .w-1\/2 {
863
884
  width: calc(1 / 2 * 100%);
864
885
  }
@@ -1027,6 +1048,9 @@
1027
1048
  .max-w-none {
1028
1049
  max-width: none;
1029
1050
  }
1051
+ .max-w-screen-2xl {
1052
+ max-width: var(--breakpoint-2xl);
1053
+ }
1030
1054
  .max-w-sm {
1031
1055
  max-width: var(--container-sm);
1032
1056
  }
@@ -1102,6 +1126,9 @@
1102
1126
  .resize {
1103
1127
  resize: both;
1104
1128
  }
1129
+ .resize-none {
1130
+ resize: none;
1131
+ }
1105
1132
  .resize-y {
1106
1133
  resize: vertical;
1107
1134
  }
@@ -1129,6 +1156,9 @@
1129
1156
  .flex-col {
1130
1157
  flex-direction: column;
1131
1158
  }
1159
+ .flex-col-reverse {
1160
+ flex-direction: column-reverse;
1161
+ }
1132
1162
  .flex-row {
1133
1163
  flex-direction: row;
1134
1164
  }
@@ -1358,6 +1388,10 @@
1358
1388
  .rounded-xl {
1359
1389
  border-radius: var(--radius-xl);
1360
1390
  }
1391
+ .rounded-t-2xl {
1392
+ border-top-left-radius: var(--radius-2xl);
1393
+ border-top-right-radius: var(--radius-2xl);
1394
+ }
1361
1395
  .rounded-b-lg {
1362
1396
  border-bottom-right-radius: var(--radius-lg);
1363
1397
  border-bottom-left-radius: var(--radius-lg);
@@ -1419,12 +1453,24 @@
1419
1453
  .border-\[\#e31337\] {
1420
1454
  border-color: #e31337;
1421
1455
  }
1456
+ .border-amber-500\/30 {
1457
+ border-color: color-mix(in srgb, oklch(76.9% 0.188 70.08) 30%, transparent);
1458
+ @supports (color: color-mix(in lab, red, red)) {
1459
+ border-color: color-mix(in oklab, var(--color-amber-500) 30%, transparent);
1460
+ }
1461
+ }
1422
1462
  .border-amber-700\/40 {
1423
1463
  border-color: color-mix(in srgb, oklch(55.5% 0.163 48.998) 40%, transparent);
1424
1464
  @supports (color: color-mix(in lab, red, red)) {
1425
1465
  border-color: color-mix(in oklab, var(--color-amber-700) 40%, transparent);
1426
1466
  }
1427
1467
  }
1468
+ .border-blue-300\/40 {
1469
+ border-color: color-mix(in srgb, oklch(80.9% 0.105 251.813) 40%, transparent);
1470
+ @supports (color: color-mix(in lab, red, red)) {
1471
+ border-color: color-mix(in oklab, var(--color-blue-300) 40%, transparent);
1472
+ }
1473
+ }
1428
1474
  .border-blue-400 {
1429
1475
  border-color: var(--color-blue-400);
1430
1476
  }
@@ -1482,6 +1528,12 @@
1482
1528
  .border-gray-800 {
1483
1529
  border-color: var(--color-gray-800);
1484
1530
  }
1531
+ .border-gray-800\/60 {
1532
+ border-color: color-mix(in srgb, oklch(27.8% 0.033 256.848) 60%, transparent);
1533
+ @supports (color: color-mix(in lab, red, red)) {
1534
+ border-color: color-mix(in oklab, var(--color-gray-800) 60%, transparent);
1535
+ }
1536
+ }
1485
1537
  .border-gray-900 {
1486
1538
  border-color: var(--color-gray-900);
1487
1539
  }
@@ -1551,6 +1603,12 @@
1551
1603
  background-color: rgba(255, 255, 255, 0.04);
1552
1604
  border: 1px solid rgba(255, 255, 255, 0.08);
1553
1605
  }
1606
+ .bg-\[\#0c1014\]\/95 {
1607
+ background-color: color-mix(in oklab, #0c1014 95%, transparent);
1608
+ }
1609
+ .bg-\[\#0f1216\] {
1610
+ background-color: #0f1216;
1611
+ }
1554
1612
  .bg-\[\#0f1419\] {
1555
1613
  background-color: #0f1419;
1556
1614
  }
@@ -1563,6 +1621,9 @@
1563
1621
  .bg-\[\#1a1e22\] {
1564
1622
  background-color: #1a1e22;
1565
1623
  }
1624
+ .bg-\[\#1a1e22\]\/90 {
1625
+ background-color: color-mix(in oklab, #1a1e22 90%, transparent);
1626
+ }
1566
1627
  .bg-\[\#1f2429\] {
1567
1628
  background-color: #1f2429;
1568
1629
  }
@@ -1581,6 +1642,9 @@
1581
1642
  .bg-\[\#262b30\] {
1582
1643
  background-color: #262b30;
1583
1644
  }
1645
+ .bg-\[\#15181c\] {
1646
+ background-color: #15181c;
1647
+ }
1584
1648
  .bg-\[\#212529\] {
1585
1649
  background-color: #212529;
1586
1650
  }
@@ -1596,6 +1660,12 @@
1596
1660
  .bg-\[\#e31337\]\/15 {
1597
1661
  background-color: color-mix(in oklab, #e31337 15%, transparent);
1598
1662
  }
1663
+ .bg-amber-500\/10 {
1664
+ background-color: color-mix(in srgb, oklch(76.9% 0.188 70.08) 10%, transparent);
1665
+ @supports (color: color-mix(in lab, red, red)) {
1666
+ background-color: color-mix(in oklab, var(--color-amber-500) 10%, transparent);
1667
+ }
1668
+ }
1599
1669
  .bg-amber-500\/15 {
1600
1670
  background-color: color-mix(in srgb, oklch(76.9% 0.188 70.08) 15%, transparent);
1601
1671
  @supports (color: color-mix(in lab, red, red)) {
@@ -1695,6 +1765,12 @@
1695
1765
  background-color: color-mix(in oklab, var(--color-blue-600) 20%, transparent);
1696
1766
  }
1697
1767
  }
1768
+ .bg-blue-600\/80 {
1769
+ background-color: color-mix(in srgb, oklch(54.6% 0.245 262.881) 80%, transparent);
1770
+ @supports (color: color-mix(in lab, red, red)) {
1771
+ background-color: color-mix(in oklab, var(--color-blue-600) 80%, transparent);
1772
+ }
1773
+ }
1698
1774
  .bg-blue-900 {
1699
1775
  background-color: var(--color-blue-900);
1700
1776
  }
@@ -1722,12 +1798,18 @@
1722
1798
  background-color: color-mix(in oklab, var(--color-blue-900) 50%, transparent);
1723
1799
  }
1724
1800
  }
1801
+ .bg-emerald-400 {
1802
+ background-color: var(--color-emerald-400);
1803
+ }
1725
1804
  .bg-emerald-500\/15 {
1726
1805
  background-color: color-mix(in srgb, oklch(69.6% 0.17 162.48) 15%, transparent);
1727
1806
  @supports (color: color-mix(in lab, red, red)) {
1728
1807
  background-color: color-mix(in oklab, var(--color-emerald-500) 15%, transparent);
1729
1808
  }
1730
1809
  }
1810
+ .bg-emerald-600 {
1811
+ background-color: var(--color-emerald-600);
1812
+ }
1731
1813
  .bg-emerald-900\/40 {
1732
1814
  background-color: color-mix(in srgb, oklch(37.8% 0.077 168.94) 40%, transparent);
1733
1815
  @supports (color: color-mix(in lab, red, red)) {
@@ -1806,6 +1888,12 @@
1806
1888
  background-color: color-mix(in oklab, var(--color-gray-900) 30%, transparent);
1807
1889
  }
1808
1890
  }
1891
+ .bg-gray-900\/40 {
1892
+ background-color: color-mix(in srgb, oklch(21% 0.034 264.665) 40%, transparent);
1893
+ @supports (color: color-mix(in lab, red, red)) {
1894
+ background-color: color-mix(in oklab, var(--color-gray-900) 40%, transparent);
1895
+ }
1896
+ }
1809
1897
  .bg-gray-900\/50 {
1810
1898
  background-color: color-mix(in srgb, oklch(21% 0.034 264.665) 50%, transparent);
1811
1899
  @supports (color: color-mix(in lab, red, red)) {
@@ -1944,6 +2032,9 @@
1944
2032
  .bg-slate-950 {
1945
2033
  background-color: var(--color-slate-950);
1946
2034
  }
2035
+ .bg-transparent {
2036
+ background-color: transparent;
2037
+ }
1947
2038
  .bg-white {
1948
2039
  background-color: var(--color-white);
1949
2040
  }
@@ -2200,6 +2291,12 @@
2200
2291
  .pr-1 {
2201
2292
  padding-right: calc(var(--spacing) * 1);
2202
2293
  }
2294
+ .pr-2 {
2295
+ padding-right: calc(var(--spacing) * 2);
2296
+ }
2297
+ .pr-2\.5 {
2298
+ padding-right: calc(var(--spacing) * 2.5);
2299
+ }
2203
2300
  .pr-3 {
2204
2301
  padding-right: calc(var(--spacing) * 3);
2205
2302
  }
@@ -2233,6 +2330,12 @@
2233
2330
  .pb-8 {
2234
2331
  padding-bottom: calc(var(--spacing) * 8);
2235
2332
  }
2333
+ .pl-0\.5 {
2334
+ padding-left: calc(var(--spacing) * 0.5);
2335
+ }
2336
+ .pl-1 {
2337
+ padding-left: calc(var(--spacing) * 1);
2338
+ }
2236
2339
  .pl-2 {
2237
2340
  padding-left: calc(var(--spacing) * 2);
2238
2341
  }
@@ -2397,6 +2500,9 @@
2397
2500
  .text-\[\#ff8fa3\] {
2398
2501
  color: #ff8fa3;
2399
2502
  }
2503
+ .text-amber-200 {
2504
+ color: var(--color-amber-200);
2505
+ }
2400
2506
  .text-amber-300 {
2401
2507
  color: var(--color-amber-300);
2402
2508
  }
@@ -2581,6 +2687,9 @@
2581
2687
  .underline {
2582
2688
  text-decoration-line: underline;
2583
2689
  }
2690
+ .underline-offset-2 {
2691
+ text-underline-offset: 2px;
2692
+ }
2584
2693
  .placeholder-\[\#9ca3b0\] {
2585
2694
  &::placeholder {
2586
2695
  color: #9ca3b0;
@@ -2694,6 +2803,11 @@
2694
2803
  -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,);
2695
2804
  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,);
2696
2805
  }
2806
+ .backdrop-blur-\[1px\] {
2807
+ --tw-backdrop-blur: blur(1px);
2808
+ -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,);
2809
+ 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,);
2810
+ }
2697
2811
  .backdrop-blur-md {
2698
2812
  --tw-backdrop-blur: blur(var(--blur-md));
2699
2813
  -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,);
@@ -2879,6 +2993,13 @@
2879
2993
  }
2880
2994
  }
2881
2995
  }
2996
+ .hover\:border-blue-400 {
2997
+ &:hover {
2998
+ @media (hover: hover) {
2999
+ border-color: var(--color-blue-400);
3000
+ }
3001
+ }
3002
+ }
2882
3003
  .hover\:border-blue-500 {
2883
3004
  &:hover {
2884
3005
  @media (hover: hover) {
@@ -2917,6 +3038,20 @@
2917
3038
  }
2918
3039
  }
2919
3040
  }
3041
+ .hover\:bg-\[\#10161c\] {
3042
+ &:hover {
3043
+ @media (hover: hover) {
3044
+ background-color: #10161c;
3045
+ }
3046
+ }
3047
+ }
3048
+ .hover\:bg-\[\#c51231\] {
3049
+ &:hover {
3050
+ @media (hover: hover) {
3051
+ background-color: #c51231;
3052
+ }
3053
+ }
3054
+ }
2920
3055
  .hover\:bg-black {
2921
3056
  &:hover {
2922
3057
  @media (hover: hover) {
@@ -2944,6 +3079,13 @@
2944
3079
  }
2945
3080
  }
2946
3081
  }
3082
+ .hover\:bg-blue-500 {
3083
+ &:hover {
3084
+ @media (hover: hover) {
3085
+ background-color: var(--color-blue-500);
3086
+ }
3087
+ }
3088
+ }
2947
3089
  .hover\:bg-blue-600 {
2948
3090
  &:hover {
2949
3091
  @media (hover: hover) {
@@ -2968,6 +3110,13 @@
2968
3110
  }
2969
3111
  }
2970
3112
  }
3113
+ .hover\:bg-emerald-500 {
3114
+ &:hover {
3115
+ @media (hover: hover) {
3116
+ background-color: var(--color-emerald-500);
3117
+ }
3118
+ }
3119
+ }
2971
3120
  .hover\:bg-gray-50 {
2972
3121
  &:hover {
2973
3122
  @media (hover: hover) {
@@ -3037,6 +3186,16 @@
3037
3186
  }
3038
3187
  }
3039
3188
  }
3189
+ .hover\:bg-gray-800\/40 {
3190
+ &:hover {
3191
+ @media (hover: hover) {
3192
+ background-color: color-mix(in srgb, oklch(27.8% 0.033 256.848) 40%, transparent);
3193
+ @supports (color: color-mix(in lab, red, red)) {
3194
+ background-color: color-mix(in oklab, var(--color-gray-800) 40%, transparent);
3195
+ }
3196
+ }
3197
+ }
3198
+ }
3040
3199
  .hover\:bg-gray-800\/50 {
3041
3200
  &:hover {
3042
3201
  @media (hover: hover) {
@@ -3071,6 +3230,16 @@
3071
3230
  }
3072
3231
  }
3073
3232
  }
3233
+ .hover\:bg-red-500\/10 {
3234
+ &:hover {
3235
+ @media (hover: hover) {
3236
+ background-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 10%, transparent);
3237
+ @supports (color: color-mix(in lab, red, red)) {
3238
+ background-color: color-mix(in oklab, var(--color-red-500) 10%, transparent);
3239
+ }
3240
+ }
3241
+ }
3242
+ }
3074
3243
  .hover\:bg-red-700 {
3075
3244
  &:hover {
3076
3245
  @media (hover: hover) {
@@ -3362,21 +3531,46 @@
3362
3531
  color: var(--color-gray-500);
3363
3532
  }
3364
3533
  }
3534
+ .disabled\:opacity-30 {
3535
+ &:disabled {
3536
+ opacity: 30%;
3537
+ }
3538
+ }
3539
+ .disabled\:opacity-40 {
3540
+ &:disabled {
3541
+ opacity: 40%;
3542
+ }
3543
+ }
3365
3544
  .disabled\:opacity-50 {
3366
3545
  &:disabled {
3367
3546
  opacity: 50%;
3368
3547
  }
3369
3548
  }
3549
+ .sm\:inset-x-auto {
3550
+ @media (width >= 40rem) {
3551
+ inset-inline: auto;
3552
+ }
3553
+ }
3370
3554
  .sm\:-right-2 {
3371
3555
  @media (width >= 40rem) {
3372
3556
  right: calc(var(--spacing) * -2);
3373
3557
  }
3374
3558
  }
3559
+ .sm\:right-4 {
3560
+ @media (width >= 40rem) {
3561
+ right: calc(var(--spacing) * 4);
3562
+ }
3563
+ }
3375
3564
  .sm\:-bottom-2 {
3376
3565
  @media (width >= 40rem) {
3377
3566
  bottom: calc(var(--spacing) * -2);
3378
3567
  }
3379
3568
  }
3569
+ .sm\:bottom-4 {
3570
+ @media (width >= 40rem) {
3571
+ bottom: calc(var(--spacing) * 4);
3572
+ }
3573
+ }
3380
3574
  .sm\:m-0 {
3381
3575
  @media (width >= 40rem) {
3382
3576
  margin: calc(var(--spacing) * 0);
@@ -3448,6 +3642,11 @@
3448
3642
  -webkit-line-clamp: unset;
3449
3643
  }
3450
3644
  }
3645
+ .sm\:block {
3646
+ @media (width >= 40rem) {
3647
+ display: block;
3648
+ }
3649
+ }
3451
3650
  .sm\:flex {
3452
3651
  @media (width >= 40rem) {
3453
3652
  display: flex;
@@ -3533,6 +3732,11 @@
3533
3732
  height: calc(var(--spacing) * 64);
3534
3733
  }
3535
3734
  }
3735
+ .sm\:h-\[560px\] {
3736
+ @media (width >= 40rem) {
3737
+ height: 560px;
3738
+ }
3739
+ }
3536
3740
  .sm\:h-auto {
3537
3741
  @media (width >= 40rem) {
3538
3742
  height: auto;
@@ -3568,6 +3772,11 @@
3568
3772
  width: calc(var(--spacing) * 9);
3569
3773
  }
3570
3774
  }
3775
+ .sm\:w-10 {
3776
+ @media (width >= 40rem) {
3777
+ width: calc(var(--spacing) * 10);
3778
+ }
3779
+ }
3571
3780
  .sm\:w-12 {
3572
3781
  @media (width >= 40rem) {
3573
3782
  width: calc(var(--spacing) * 12);
@@ -3598,6 +3807,11 @@
3598
3807
  width: calc(var(--spacing) * 48);
3599
3808
  }
3600
3809
  }
3810
+ .sm\:w-auto {
3811
+ @media (width >= 40rem) {
3812
+ width: auto;
3813
+ }
3814
+ }
3601
3815
  .sm\:w-full {
3602
3816
  @media (width >= 40rem) {
3603
3817
  width: 100%;
@@ -3658,6 +3872,11 @@
3658
3872
  justify-content: center;
3659
3873
  }
3660
3874
  }
3875
+ .sm\:justify-end {
3876
+ @media (width >= 40rem) {
3877
+ justify-content: flex-end;
3878
+ }
3879
+ }
3661
3880
  .sm\:gap-3 {
3662
3881
  @media (width >= 40rem) {
3663
3882
  gap: calc(var(--spacing) * 3);
@@ -3712,6 +3931,11 @@
3712
3931
  border-radius: 0;
3713
3932
  }
3714
3933
  }
3934
+ .sm\:rounded-xl {
3935
+ @media (width >= 40rem) {
3936
+ border-radius: var(--radius-xl);
3937
+ }
3938
+ }
3715
3939
  .sm\:border {
3716
3940
  @media (width >= 40rem) {
3717
3941
  border-style: var(--tw-border-style);
@@ -3785,6 +4009,11 @@
3785
4009
  padding-inline: calc(var(--spacing) * 6);
3786
4010
  }
3787
4011
  }
4012
+ .sm\:py-2 {
4013
+ @media (width >= 40rem) {
4014
+ padding-block: calc(var(--spacing) * 2);
4015
+ }
4016
+ }
3788
4017
  .sm\:py-2\.5 {
3789
4018
  @media (width >= 40rem) {
3790
4019
  padding-block: calc(var(--spacing) * 2.5);
@@ -3816,6 +4045,12 @@
3816
4045
  line-height: var(--tw-leading, var(--text-2xl--line-height));
3817
4046
  }
3818
4047
  }
4048
+ .sm\:text-3xl {
4049
+ @media (width >= 40rem) {
4050
+ font-size: var(--text-3xl);
4051
+ line-height: var(--tw-leading, var(--text-3xl--line-height));
4052
+ }
4053
+ }
3819
4054
  .sm\:text-base {
3820
4055
  @media (width >= 40rem) {
3821
4056
  font-size: var(--text-base);
@@ -4139,11 +4374,31 @@
4139
4374
  display: table-cell;
4140
4375
  }
4141
4376
  }
4377
+ .lg\:h-\[640px\] {
4378
+ @media (width >= 64rem) {
4379
+ height: 640px;
4380
+ }
4381
+ }
4382
+ .lg\:h-full {
4383
+ @media (width >= 64rem) {
4384
+ height: 100%;
4385
+ }
4386
+ }
4387
+ .lg\:min-h-0 {
4388
+ @media (width >= 64rem) {
4389
+ min-height: calc(var(--spacing) * 0);
4390
+ }
4391
+ }
4142
4392
  .lg\:w-48 {
4143
4393
  @media (width >= 64rem) {
4144
4394
  width: calc(var(--spacing) * 48);
4145
4395
  }
4146
4396
  }
4397
+ .lg\:flex-1 {
4398
+ @media (width >= 64rem) {
4399
+ flex: 1;
4400
+ }
4401
+ }
4147
4402
  .lg\:grid-cols-3 {
4148
4403
  @media (width >= 64rem) {
4149
4404
  grid-template-columns: repeat(3, minmax(0, 1fr));
@@ -4169,6 +4424,28 @@
4169
4424
  gap: calc(var(--spacing) * 8);
4170
4425
  }
4171
4426
  }
4427
+ .lg\:overflow-hidden {
4428
+ @media (width >= 64rem) {
4429
+ overflow: hidden;
4430
+ }
4431
+ }
4432
+ .lg\:overflow-y-auto {
4433
+ @media (width >= 64rem) {
4434
+ overflow-y: auto;
4435
+ }
4436
+ }
4437
+ .lg\:border-r {
4438
+ @media (width >= 64rem) {
4439
+ border-right-style: var(--tw-border-style);
4440
+ border-right-width: 1px;
4441
+ }
4442
+ }
4443
+ .lg\:border-b-0 {
4444
+ @media (width >= 64rem) {
4445
+ border-bottom-style: var(--tw-border-style);
4446
+ border-bottom-width: 0px;
4447
+ }
4448
+ }
4172
4449
  .lg\:px-8 {
4173
4450
  @media (width >= 64rem) {
4174
4451
  padding-inline: calc(var(--spacing) * 8);
@@ -10,7 +10,7 @@ export interface HiveDetailPostProps {
10
10
  * `voteWeight` is non-null when the composer's upvote-on-publish toggle is enabled
11
11
  * (1–100, step 0.25) — consumer should broadcast vote+comment atomically.
12
12
  */
13
- onSubmitComment?: (parentAuthor: string, parentPermlink: string, body: string, voteWeight?: number | null) => void | boolean | Promise<void | boolean>;
13
+ onSubmitComment?: (parentAuthor: string, parentPermlink: string, body: string, voteWeight?: number | null, beneficiaries?: import('../utils/beneficiaries').Beneficiary[]) => void | boolean | Promise<void | boolean>;
14
14
  /**
15
15
  * Show the upvote-on-publish toggle in the post's comment composer. Default false (opt-in).
16
16
  * Auto-hidden internally when the current user has already voted the post.
@@ -28,6 +28,18 @@ export interface HiveDetailPostProps {
28
28
  * Typically wired to a user setting.
29
29
  */
30
30
  defaultReward?: import('../utils/commentOptions').RewardOption;
31
+ /**
32
+ * Beneficiaries pre-populated into every comment composer on this detail
33
+ * page (top-level reply + nested sub-comment replies). Typically wired to
34
+ * the user's app-wide default beneficiaries setting.
35
+ */
36
+ defaultBeneficiaries?: import('../utils/beneficiaries').Beneficiary[];
37
+ /**
38
+ * Suggested beneficiary chips shown inside every comment composer's editor
39
+ * on this detail page — typically the user's previously-used beneficiary
40
+ * presets pulled from local history.
41
+ */
42
+ beneficiaryFavorites?: import('../utils/beneficiaries').Beneficiary[];
31
43
  /**
32
44
  * Initial percent (1–100) for the post's upvote slider AND every comment
33
45
  * composer's "upvote-on-publish" / comment-upvote slider on this page.
@@ -107,5 +119,5 @@ export interface HiveDetailPostProps {
107
119
  /** Called when user clicks "View parent post" — navigate to the parent post. */
108
120
  onNavigateToPost?: (author: string, permlink: string) => void;
109
121
  }
110
- export declare function HiveDetailPost({ author, permlink, currentUser, onUpvote, onSubmitComment, onClickCommentUpvote, onReblog, onShare, onTip, onReport, onShareComment, onTipComment, onReportComment, ecencyToken, threeSpeakApiKey, giphyApiKey, templateToken, templateApiBaseUrl, reportedAuthors, reportedPosts, hiveIconUrl, backgroundColor, onBack, onUserClick, onNavigateToPost, onVotePoll, showVoteButton, processBody, defaultReward, defaultVotePercent, voteWeightStep, allowLandscapeVideos, renderOptions, }: HiveDetailPostProps): import("react/jsx-runtime").JSX.Element;
122
+ export declare function HiveDetailPost({ author, permlink, currentUser, onUpvote, onSubmitComment, onClickCommentUpvote, onReblog, onShare, onTip, onReport, onShareComment, onTipComment, onReportComment, ecencyToken, threeSpeakApiKey, giphyApiKey, templateToken, templateApiBaseUrl, reportedAuthors, reportedPosts, hiveIconUrl, backgroundColor, onBack, onUserClick, onNavigateToPost, onVotePoll, showVoteButton, processBody, defaultReward, defaultBeneficiaries, beneficiaryFavorites, defaultVotePercent, voteWeightStep, allowLandscapeVideos, renderOptions, }: HiveDetailPostProps): import("react/jsx-runtime").JSX.Element;
111
123
  export default HiveDetailPost;
@@ -19,8 +19,10 @@ export interface PostActionButtonProps {
19
19
  /** Called when user submits a comment. Frontend handles signing/broadcast.
20
20
  * Return `false` to indicate the operation was cancelled — the composer text will be preserved.
21
21
  * `voteWeight` is non-null when the composer's upvote-on-publish toggle is enabled
22
- * (1–100, step 0.25) — consumer should broadcast vote+comment atomically. */
23
- onSubmitComment?: (parentAuthor: string, parentPermlink: string, body: string, voteWeight?: number | null) => void | boolean | Promise<void | boolean>;
22
+ * (1–100, step 0.25) — consumer should broadcast vote+comment atomically.
23
+ * `beneficiaries` is the post-lock beneficiary list selected in the composer
24
+ * (already includes threespeakfund 10% on video posts). */
25
+ onSubmitComment?: (parentAuthor: string, parentPermlink: string, body: string, voteWeight?: number | null, beneficiaries?: import('../../utils/beneficiaries').Beneficiary[]) => void | boolean | Promise<void | boolean>;
24
26
  /** Show the upvote-on-publish toggle in the comment composer.
25
27
  * Auto-hidden when the current user has already voted this post. */
26
28
  showVoteButton?: boolean;
@@ -28,6 +30,10 @@ export interface PostActionButtonProps {
28
30
  parentTags?: string[];
29
31
  /** Default reward routing seeded into the comment composer. */
30
32
  defaultReward?: import('../../utils/commentOptions').RewardOption;
33
+ /** Beneficiaries pre-populated into the comment composer. */
34
+ defaultBeneficiaries?: import('../../utils/beneficiaries').Beneficiary[];
35
+ /** Suggested beneficiary chips shown inside the composer's editor. */
36
+ beneficiaryFavorites?: import('../../utils/beneficiaries').Beneficiary[];
31
37
  /** Initial percent for the upvote slider when opened (1–100). Default 100. */
32
38
  defaultVotePercent?: number;
33
39
  /** Slider precision used by both the post upvote slider AND the comment composer's
@@ -77,5 +83,5 @@ export interface PostActionButtonProps {
77
83
  * the comment icon, so the tooltip can show what they wrote. */
78
84
  myReplyKey?: string;
79
85
  }
80
- export declare function PostActionButton({ author, permlink, currentUser: currentUserProp, hiveValue, hiveIconUrl, payoutTooltip, initialVotes, initialCommentsCount, onUpvote, onSubmitComment, onComments, onReblog, onShare, onTip, onReport, onClickCommentUpvote, ecencyToken, threeSpeakApiKey, giphyApiKey, templateToken, templateApiBaseUrl, disableCommentsModal, onClickCommentIcon, onClickCommentCount, hasCommented, myReplyKey, showVoteButton, parentTags, defaultReward, defaultVotePercent, voteWeightStep, allowLandscapeVideos, }: PostActionButtonProps): import("react/jsx-runtime").JSX.Element;
86
+ export declare function PostActionButton({ author, permlink, currentUser: currentUserProp, hiveValue, hiveIconUrl, payoutTooltip, initialVotes, initialCommentsCount, onUpvote, onSubmitComment, onComments, onReblog, onShare, onTip, onReport, onClickCommentUpvote, ecencyToken, threeSpeakApiKey, giphyApiKey, templateToken, templateApiBaseUrl, disableCommentsModal, onClickCommentIcon, onClickCommentCount, hasCommented, myReplyKey, showVoteButton, parentTags, defaultReward, defaultBeneficiaries, beneficiaryFavorites, defaultVotePercent, voteWeightStep, allowLandscapeVideos, }: PostActionButtonProps): import("react/jsx-runtime").JSX.Element;
81
87
  export default PostActionButton;