hive-react-kit 0.5.0 → 0.5.3
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 +15 -1
- package/dist/build.css +175 -37
- package/dist/components/actionButtons/PostActionButton.d.ts +11 -1
- package/dist/components/comments/AddCommentInput.d.ts +39 -3
- package/dist/components/comments/CommentsModal.d.ts +11 -1
- package/dist/components/comments/ReplyModal.d.ts +6 -1
- package/dist/components/composer/AudioUploader.d.ts +12 -0
- package/dist/components/composer/EmojiPicker.d.ts +8 -0
- package/dist/components/composer/GiphyPicker.d.ts +10 -0
- package/dist/components/composer/ImageUploader.d.ts +10 -0
- package/dist/components/composer/TemplatePicker.d.ts +12 -0
- package/dist/components/composer/VideoUploader.d.ts +14 -0
- package/dist/components/composer/index.d.ts +12 -0
- package/dist/components/user/UserDetailProfile.d.ts +10 -0
- package/dist/index.cjs.js +164 -112
- package/dist/index.d.ts +5 -0
- package/dist/index.esm.js +14368 -11591
- package/dist/pages/PostComposerPage.d.ts +2 -0
- package/dist/services/templateService.d.ts +12 -0
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -65,6 +65,10 @@ import type { Video, Comment, Wallet as WalletType } from 'hive-react-kit/types'
|
|
|
65
65
|
- **CommunityMembers** - Community members list
|
|
66
66
|
- **CommunityTeam** - Community team members
|
|
67
67
|
|
|
68
|
+
### Composer Components
|
|
69
|
+
|
|
70
|
+
- **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)
|
|
71
|
+
|
|
68
72
|
### Modal Components
|
|
69
73
|
|
|
70
74
|
- **CommentsModal** - Comments display modal
|
|
@@ -86,11 +90,16 @@ import type { Video, Comment, Wallet as WalletType } from 'hive-react-kit/types'
|
|
|
86
90
|
```tsx
|
|
87
91
|
import { UserDetailProfile } from 'hive-react-kit';
|
|
88
92
|
|
|
89
|
-
// All tabs, default order
|
|
93
|
+
// All tabs, default order, with rich comment composer
|
|
90
94
|
<UserDetailProfile
|
|
91
95
|
username="sagarkothari88"
|
|
92
96
|
currentUsername="myaccount"
|
|
93
97
|
showBackButton
|
|
98
|
+
ecencyToken="your-ecency-token"
|
|
99
|
+
threeSpeakApiKey="your-3speak-api-key"
|
|
100
|
+
giphyApiKey="your-giphy-api-key"
|
|
101
|
+
templateToken="your-jwt-token"
|
|
102
|
+
templateApiBaseUrl="https://your-api.com/data/templates"
|
|
94
103
|
onBack={() => navigate(-1)}
|
|
95
104
|
onFollow={(user) => console.log("Follow:", user)}
|
|
96
105
|
onUnfollow={(user) => console.log("Unfollow:", user)}
|
|
@@ -115,6 +124,11 @@ import { UserDetailProfile } from 'hive-react-kit';
|
|
|
115
124
|
| `showBackButton` | `boolean` | `false` | Show back arrow in header |
|
|
116
125
|
| `onBack` | `() => void` | - | Callback when back button is clicked |
|
|
117
126
|
| `tabShown` | `TabType[]` | all tabs | Controls which tabs are visible and their order. Only listed tabs are shown. First tab is the default active tab. If omitted, all 12 tabs are shown in default order |
|
|
127
|
+
| `ecencyToken` | `string` | `undefined` | Ecency image hosting token. Enables image upload, video thumbnail upload, and paste/drag-drop image upload. Hidden when not provided |
|
|
128
|
+
| `threeSpeakApiKey` | `string` | `undefined` | 3Speak API key. Enables audio recording/upload and video upload (TUS protocol). Hidden when not provided |
|
|
129
|
+
| `giphyApiKey` | `string` | `undefined` | GIPHY API key. Enables GIF search. Hidden when not provided |
|
|
130
|
+
| `templateToken` | `string` | `undefined` | HReplier API JWT token. Enables template picker. Hidden when not provided |
|
|
131
|
+
| `templateApiBaseUrl` | `string` | `https://hreplier-api...` | Custom template API endpoint. Override when self-hosting |
|
|
118
132
|
|
|
119
133
|
**Social Action Callbacks**
|
|
120
134
|
|
package/dist/build.css
CHANGED
|
@@ -82,6 +82,7 @@
|
|
|
82
82
|
--color-gray-700: oklch(37.3% 0.034 259.733);
|
|
83
83
|
--color-gray-800: oklch(27.8% 0.033 256.848);
|
|
84
84
|
--color-gray-900: oklch(21% 0.034 264.665);
|
|
85
|
+
--color-gray-950: oklch(13% 0.028 261.692);
|
|
85
86
|
--color-black: #000;
|
|
86
87
|
--color-white: #fff;
|
|
87
88
|
--spacing: 0.25rem;
|
|
@@ -386,6 +387,9 @@
|
|
|
386
387
|
.left-2 {
|
|
387
388
|
left: calc(var(--spacing) * 2);
|
|
388
389
|
}
|
|
390
|
+
.left-2\.5 {
|
|
391
|
+
left: calc(var(--spacing) * 2.5);
|
|
392
|
+
}
|
|
389
393
|
.left-3 {
|
|
390
394
|
left: calc(var(--spacing) * 3);
|
|
391
395
|
}
|
|
@@ -449,6 +453,9 @@
|
|
|
449
453
|
.m-2 {
|
|
450
454
|
margin: calc(var(--spacing) * 2);
|
|
451
455
|
}
|
|
456
|
+
.mx-1 {
|
|
457
|
+
margin-inline: calc(var(--spacing) * 1);
|
|
458
|
+
}
|
|
452
459
|
.mx-2 {
|
|
453
460
|
margin-inline: calc(var(--spacing) * 2);
|
|
454
461
|
}
|
|
@@ -590,6 +597,9 @@
|
|
|
590
597
|
.h-1 {
|
|
591
598
|
height: calc(var(--spacing) * 1);
|
|
592
599
|
}
|
|
600
|
+
.h-1\.5 {
|
|
601
|
+
height: calc(var(--spacing) * 1.5);
|
|
602
|
+
}
|
|
593
603
|
.h-2 {
|
|
594
604
|
height: calc(var(--spacing) * 2);
|
|
595
605
|
}
|
|
@@ -641,6 +651,9 @@
|
|
|
641
651
|
.h-32 {
|
|
642
652
|
height: calc(var(--spacing) * 32);
|
|
643
653
|
}
|
|
654
|
+
.h-36 {
|
|
655
|
+
height: calc(var(--spacing) * 36);
|
|
656
|
+
}
|
|
644
657
|
.h-48 {
|
|
645
658
|
height: calc(var(--spacing) * 48);
|
|
646
659
|
}
|
|
@@ -650,6 +663,9 @@
|
|
|
650
663
|
.h-\[90vh\] {
|
|
651
664
|
height: 90vh;
|
|
652
665
|
}
|
|
666
|
+
.h-\[400px\] {
|
|
667
|
+
height: 400px;
|
|
668
|
+
}
|
|
653
669
|
.h-auto {
|
|
654
670
|
height: auto;
|
|
655
671
|
}
|
|
@@ -665,6 +681,9 @@
|
|
|
665
681
|
.max-h-20 {
|
|
666
682
|
max-height: calc(var(--spacing) * 20);
|
|
667
683
|
}
|
|
684
|
+
.max-h-64 {
|
|
685
|
+
max-height: calc(var(--spacing) * 64);
|
|
686
|
+
}
|
|
668
687
|
.max-h-96 {
|
|
669
688
|
max-height: calc(var(--spacing) * 96);
|
|
670
689
|
}
|
|
@@ -695,6 +714,9 @@
|
|
|
695
714
|
.max-h-screen {
|
|
696
715
|
max-height: 100vh;
|
|
697
716
|
}
|
|
717
|
+
.min-h-0 {
|
|
718
|
+
min-height: calc(var(--spacing) * 0);
|
|
719
|
+
}
|
|
698
720
|
.min-h-\[60px\] {
|
|
699
721
|
min-height: 60px;
|
|
700
722
|
}
|
|
@@ -779,6 +801,9 @@
|
|
|
779
801
|
.w-32 {
|
|
780
802
|
width: calc(var(--spacing) * 32);
|
|
781
803
|
}
|
|
804
|
+
.w-36 {
|
|
805
|
+
width: calc(var(--spacing) * 36);
|
|
806
|
+
}
|
|
782
807
|
.w-40 {
|
|
783
808
|
width: calc(var(--spacing) * 40);
|
|
784
809
|
}
|
|
@@ -797,6 +822,9 @@
|
|
|
797
822
|
.w-full {
|
|
798
823
|
width: 100%;
|
|
799
824
|
}
|
|
825
|
+
.w-px {
|
|
826
|
+
width: 1px;
|
|
827
|
+
}
|
|
800
828
|
.max-w-2xl {
|
|
801
829
|
max-width: var(--container-2xl);
|
|
802
830
|
}
|
|
@@ -905,8 +933,8 @@
|
|
|
905
933
|
.resize {
|
|
906
934
|
resize: both;
|
|
907
935
|
}
|
|
908
|
-
.resize-
|
|
909
|
-
resize:
|
|
936
|
+
.resize-y {
|
|
937
|
+
resize: vertical;
|
|
910
938
|
}
|
|
911
939
|
.appearance-none {
|
|
912
940
|
appearance: none;
|
|
@@ -926,6 +954,9 @@
|
|
|
926
954
|
.grid-cols-5 {
|
|
927
955
|
grid-template-columns: repeat(5, minmax(0, 1fr));
|
|
928
956
|
}
|
|
957
|
+
.grid-cols-8 {
|
|
958
|
+
grid-template-columns: repeat(8, minmax(0, 1fr));
|
|
959
|
+
}
|
|
929
960
|
.flex-col {
|
|
930
961
|
flex-direction: column;
|
|
931
962
|
}
|
|
@@ -1119,6 +1150,10 @@
|
|
|
1119
1150
|
border-style: var(--tw-border-style);
|
|
1120
1151
|
border-width: 1px;
|
|
1121
1152
|
}
|
|
1153
|
+
.border-0 {
|
|
1154
|
+
border-style: var(--tw-border-style);
|
|
1155
|
+
border-width: 0px;
|
|
1156
|
+
}
|
|
1122
1157
|
.border-2 {
|
|
1123
1158
|
border-style: var(--tw-border-style);
|
|
1124
1159
|
border-width: 2px;
|
|
@@ -1151,6 +1186,10 @@
|
|
|
1151
1186
|
border-left-style: var(--tw-border-style);
|
|
1152
1187
|
border-left-width: 4px;
|
|
1153
1188
|
}
|
|
1189
|
+
.border-dashed {
|
|
1190
|
+
--tw-border-style: dashed;
|
|
1191
|
+
border-style: dashed;
|
|
1192
|
+
}
|
|
1154
1193
|
.border-amber-700\/40 {
|
|
1155
1194
|
border-color: color-mix(in srgb, oklch(55.5% 0.163 48.998) 40%, transparent);
|
|
1156
1195
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -1289,6 +1328,12 @@
|
|
|
1289
1328
|
background-color: color-mix(in oklab, var(--color-black) 80%, transparent);
|
|
1290
1329
|
}
|
|
1291
1330
|
}
|
|
1331
|
+
.bg-black\/90 {
|
|
1332
|
+
background-color: color-mix(in srgb, #000 90%, transparent);
|
|
1333
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1334
|
+
background-color: color-mix(in oklab, var(--color-black) 90%, transparent);
|
|
1335
|
+
}
|
|
1336
|
+
}
|
|
1292
1337
|
.bg-blue-100 {
|
|
1293
1338
|
background-color: var(--color-blue-100);
|
|
1294
1339
|
}
|
|
@@ -1307,15 +1352,33 @@
|
|
|
1307
1352
|
.bg-blue-600 {
|
|
1308
1353
|
background-color: var(--color-blue-600);
|
|
1309
1354
|
}
|
|
1355
|
+
.bg-blue-600\/20 {
|
|
1356
|
+
background-color: color-mix(in srgb, oklch(54.6% 0.245 262.881) 20%, transparent);
|
|
1357
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1358
|
+
background-color: color-mix(in oklab, var(--color-blue-600) 20%, transparent);
|
|
1359
|
+
}
|
|
1360
|
+
}
|
|
1310
1361
|
.bg-blue-900 {
|
|
1311
1362
|
background-color: var(--color-blue-900);
|
|
1312
1363
|
}
|
|
1364
|
+
.bg-blue-900\/10 {
|
|
1365
|
+
background-color: color-mix(in srgb, oklch(37.9% 0.146 265.522) 10%, transparent);
|
|
1366
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1367
|
+
background-color: color-mix(in oklab, var(--color-blue-900) 10%, transparent);
|
|
1368
|
+
}
|
|
1369
|
+
}
|
|
1313
1370
|
.bg-blue-900\/20 {
|
|
1314
1371
|
background-color: color-mix(in srgb, oklch(37.9% 0.146 265.522) 20%, transparent);
|
|
1315
1372
|
@supports (color: color-mix(in lab, red, red)) {
|
|
1316
1373
|
background-color: color-mix(in oklab, var(--color-blue-900) 20%, transparent);
|
|
1317
1374
|
}
|
|
1318
1375
|
}
|
|
1376
|
+
.bg-blue-900\/30 {
|
|
1377
|
+
background-color: color-mix(in srgb, oklch(37.9% 0.146 265.522) 30%, transparent);
|
|
1378
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1379
|
+
background-color: color-mix(in oklab, var(--color-blue-900) 30%, transparent);
|
|
1380
|
+
}
|
|
1381
|
+
}
|
|
1319
1382
|
.bg-blue-900\/40 {
|
|
1320
1383
|
background-color: color-mix(in srgb, oklch(37.9% 0.146 265.522) 40%, transparent);
|
|
1321
1384
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -1364,6 +1427,12 @@
|
|
|
1364
1427
|
.bg-gray-800 {
|
|
1365
1428
|
background-color: var(--color-gray-800);
|
|
1366
1429
|
}
|
|
1430
|
+
.bg-gray-800\/50 {
|
|
1431
|
+
background-color: color-mix(in srgb, oklch(27.8% 0.033 256.848) 50%, transparent);
|
|
1432
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1433
|
+
background-color: color-mix(in oklab, var(--color-gray-800) 50%, transparent);
|
|
1434
|
+
}
|
|
1435
|
+
}
|
|
1367
1436
|
.bg-gray-800\/95 {
|
|
1368
1437
|
background-color: color-mix(in srgb, oklch(27.8% 0.033 256.848) 95%, transparent);
|
|
1369
1438
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -1385,6 +1454,9 @@
|
|
|
1385
1454
|
background-color: color-mix(in oklab, var(--color-gray-900) 80%, transparent);
|
|
1386
1455
|
}
|
|
1387
1456
|
}
|
|
1457
|
+
.bg-gray-950 {
|
|
1458
|
+
background-color: var(--color-gray-950);
|
|
1459
|
+
}
|
|
1388
1460
|
.bg-green-100 {
|
|
1389
1461
|
background-color: var(--color-green-100);
|
|
1390
1462
|
}
|
|
@@ -1436,6 +1508,9 @@
|
|
|
1436
1508
|
.bg-red-100 {
|
|
1437
1509
|
background-color: var(--color-red-100);
|
|
1438
1510
|
}
|
|
1511
|
+
.bg-red-500 {
|
|
1512
|
+
background-color: var(--color-red-500);
|
|
1513
|
+
}
|
|
1439
1514
|
.bg-red-500\/10 {
|
|
1440
1515
|
background-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 10%, transparent);
|
|
1441
1516
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -1687,6 +1762,12 @@
|
|
|
1687
1762
|
.pr-10 {
|
|
1688
1763
|
padding-right: calc(var(--spacing) * 10);
|
|
1689
1764
|
}
|
|
1765
|
+
.pb-1 {
|
|
1766
|
+
padding-bottom: calc(var(--spacing) * 1);
|
|
1767
|
+
}
|
|
1768
|
+
.pb-2 {
|
|
1769
|
+
padding-bottom: calc(var(--spacing) * 2);
|
|
1770
|
+
}
|
|
1690
1771
|
.pb-3 {
|
|
1691
1772
|
padding-bottom: calc(var(--spacing) * 3);
|
|
1692
1773
|
}
|
|
@@ -1708,6 +1789,9 @@
|
|
|
1708
1789
|
.pl-6 {
|
|
1709
1790
|
padding-left: calc(var(--spacing) * 6);
|
|
1710
1791
|
}
|
|
1792
|
+
.pl-8 {
|
|
1793
|
+
padding-left: calc(var(--spacing) * 8);
|
|
1794
|
+
}
|
|
1711
1795
|
.pl-10 {
|
|
1712
1796
|
padding-left: calc(var(--spacing) * 10);
|
|
1713
1797
|
}
|
|
@@ -1968,6 +2052,9 @@
|
|
|
1968
2052
|
.capitalize {
|
|
1969
2053
|
text-transform: capitalize;
|
|
1970
2054
|
}
|
|
2055
|
+
.normal-case {
|
|
2056
|
+
text-transform: none;
|
|
2057
|
+
}
|
|
1971
2058
|
.uppercase {
|
|
1972
2059
|
text-transform: uppercase;
|
|
1973
2060
|
}
|
|
@@ -2023,6 +2110,10 @@
|
|
|
2023
2110
|
--tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
|
|
2024
2111
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
2025
2112
|
}
|
|
2113
|
+
.ring-1 {
|
|
2114
|
+
--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
|
|
2115
|
+
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
2116
|
+
}
|
|
2026
2117
|
.ring-2 {
|
|
2027
2118
|
--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
|
|
2028
2119
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
@@ -2033,6 +2124,9 @@
|
|
|
2033
2124
|
--tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-blue-500) 10%, transparent) var(--tw-shadow-alpha), transparent);
|
|
2034
2125
|
}
|
|
2035
2126
|
}
|
|
2127
|
+
.ring-blue-500 {
|
|
2128
|
+
--tw-ring-color: var(--color-blue-500);
|
|
2129
|
+
}
|
|
2036
2130
|
.ring-gray-200 {
|
|
2037
2131
|
--tw-ring-color: var(--color-gray-200);
|
|
2038
2132
|
}
|
|
@@ -2091,6 +2185,10 @@
|
|
|
2091
2185
|
--tw-duration: 300ms;
|
|
2092
2186
|
transition-duration: 300ms;
|
|
2093
2187
|
}
|
|
2188
|
+
.duration-1000 {
|
|
2189
|
+
--tw-duration: 1000ms;
|
|
2190
|
+
transition-duration: 1000ms;
|
|
2191
|
+
}
|
|
2094
2192
|
.ease-in-out {
|
|
2095
2193
|
--tw-ease: var(--ease-in-out);
|
|
2096
2194
|
transition-timing-function: var(--ease-in-out);
|
|
@@ -2129,6 +2227,13 @@
|
|
|
2129
2227
|
}
|
|
2130
2228
|
}
|
|
2131
2229
|
}
|
|
2230
|
+
.group-hover\:text-blue-400 {
|
|
2231
|
+
&:is(:where(.group):hover *) {
|
|
2232
|
+
@media (hover: hover) {
|
|
2233
|
+
color: var(--color-blue-400);
|
|
2234
|
+
}
|
|
2235
|
+
}
|
|
2236
|
+
}
|
|
2132
2237
|
.group-hover\:opacity-30 {
|
|
2133
2238
|
&:is(:where(.group):hover *) {
|
|
2134
2239
|
@media (hover: hover) {
|
|
@@ -2202,6 +2307,16 @@
|
|
|
2202
2307
|
}
|
|
2203
2308
|
}
|
|
2204
2309
|
}
|
|
2310
|
+
.hover\:border-blue-500\/40 {
|
|
2311
|
+
&:hover {
|
|
2312
|
+
@media (hover: hover) {
|
|
2313
|
+
border-color: color-mix(in srgb, oklch(62.3% 0.214 259.815) 40%, transparent);
|
|
2314
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
2315
|
+
border-color: color-mix(in oklab, var(--color-blue-500) 40%, transparent);
|
|
2316
|
+
}
|
|
2317
|
+
}
|
|
2318
|
+
}
|
|
2319
|
+
}
|
|
2205
2320
|
.hover\:border-gray-600 {
|
|
2206
2321
|
&:hover {
|
|
2207
2322
|
@media (hover: hover) {
|
|
@@ -2306,6 +2421,16 @@
|
|
|
2306
2421
|
}
|
|
2307
2422
|
}
|
|
2308
2423
|
}
|
|
2424
|
+
.hover\:bg-gray-800\/80 {
|
|
2425
|
+
&:hover {
|
|
2426
|
+
@media (hover: hover) {
|
|
2427
|
+
background-color: color-mix(in srgb, oklch(27.8% 0.033 256.848) 80%, transparent);
|
|
2428
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
2429
|
+
background-color: color-mix(in oklab, var(--color-gray-800) 80%, transparent);
|
|
2430
|
+
}
|
|
2431
|
+
}
|
|
2432
|
+
}
|
|
2433
|
+
}
|
|
2309
2434
|
.hover\:bg-green-700 {
|
|
2310
2435
|
&:hover {
|
|
2311
2436
|
@media (hover: hover) {
|
|
@@ -2453,13 +2578,6 @@
|
|
|
2453
2578
|
}
|
|
2454
2579
|
}
|
|
2455
2580
|
}
|
|
2456
|
-
.hover\:text-gray-800 {
|
|
2457
|
-
&:hover {
|
|
2458
|
-
@media (hover: hover) {
|
|
2459
|
-
color: var(--color-gray-800);
|
|
2460
|
-
}
|
|
2461
|
-
}
|
|
2462
|
-
}
|
|
2463
2581
|
.hover\:text-gray-900 {
|
|
2464
2582
|
&:hover {
|
|
2465
2583
|
@media (hover: hover) {
|
|
@@ -2481,6 +2599,13 @@
|
|
|
2481
2599
|
}
|
|
2482
2600
|
}
|
|
2483
2601
|
}
|
|
2602
|
+
.hover\:text-red-400 {
|
|
2603
|
+
&:hover {
|
|
2604
|
+
@media (hover: hover) {
|
|
2605
|
+
color: var(--color-red-400);
|
|
2606
|
+
}
|
|
2607
|
+
}
|
|
2608
|
+
}
|
|
2484
2609
|
.hover\:text-red-600 {
|
|
2485
2610
|
&:hover {
|
|
2486
2611
|
@media (hover: hover) {
|
|
@@ -2525,11 +2650,32 @@
|
|
|
2525
2650
|
}
|
|
2526
2651
|
}
|
|
2527
2652
|
}
|
|
2653
|
+
.hover\:ring-2 {
|
|
2654
|
+
&:hover {
|
|
2655
|
+
@media (hover: hover) {
|
|
2656
|
+
--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
|
|
2657
|
+
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
2658
|
+
}
|
|
2659
|
+
}
|
|
2660
|
+
}
|
|
2661
|
+
.hover\:ring-blue-500 {
|
|
2662
|
+
&:hover {
|
|
2663
|
+
@media (hover: hover) {
|
|
2664
|
+
--tw-ring-color: var(--color-blue-500);
|
|
2665
|
+
}
|
|
2666
|
+
}
|
|
2667
|
+
}
|
|
2528
2668
|
.focus\:border-blue-500 {
|
|
2529
2669
|
&:focus {
|
|
2530
2670
|
border-color: var(--color-blue-500);
|
|
2531
2671
|
}
|
|
2532
2672
|
}
|
|
2673
|
+
.focus\:ring-1 {
|
|
2674
|
+
&:focus {
|
|
2675
|
+
--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
|
|
2676
|
+
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
2677
|
+
}
|
|
2678
|
+
}
|
|
2533
2679
|
.focus\:ring-2 {
|
|
2534
2680
|
&:focus {
|
|
2535
2681
|
--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
|
|
@@ -2555,14 +2701,17 @@
|
|
|
2555
2701
|
outline-style: none;
|
|
2556
2702
|
}
|
|
2557
2703
|
}
|
|
2558
|
-
.
|
|
2559
|
-
&:
|
|
2560
|
-
|
|
2704
|
+
.active\:scale-95 {
|
|
2705
|
+
&:active {
|
|
2706
|
+
--tw-scale-x: 95%;
|
|
2707
|
+
--tw-scale-y: 95%;
|
|
2708
|
+
--tw-scale-z: 95%;
|
|
2709
|
+
scale: var(--tw-scale-x) var(--tw-scale-y);
|
|
2561
2710
|
}
|
|
2562
2711
|
}
|
|
2563
|
-
.disabled\:
|
|
2712
|
+
.disabled\:pointer-events-none {
|
|
2564
2713
|
&:disabled {
|
|
2565
|
-
|
|
2714
|
+
pointer-events: none;
|
|
2566
2715
|
}
|
|
2567
2716
|
}
|
|
2568
2717
|
.disabled\:cursor-not-allowed {
|
|
@@ -2575,9 +2724,9 @@
|
|
|
2575
2724
|
background-color: var(--color-blue-400);
|
|
2576
2725
|
}
|
|
2577
2726
|
}
|
|
2578
|
-
.disabled\:bg-gray-
|
|
2727
|
+
.disabled\:bg-gray-700 {
|
|
2579
2728
|
&:disabled {
|
|
2580
|
-
background-color: var(--color-gray-
|
|
2729
|
+
background-color: var(--color-gray-700);
|
|
2581
2730
|
}
|
|
2582
2731
|
}
|
|
2583
2732
|
.disabled\:opacity-50 {
|
|
@@ -2668,6 +2817,11 @@
|
|
|
2668
2817
|
height: calc(var(--spacing) * 32);
|
|
2669
2818
|
}
|
|
2670
2819
|
}
|
|
2820
|
+
.sm\:h-44 {
|
|
2821
|
+
@media (width >= 40rem) {
|
|
2822
|
+
height: calc(var(--spacing) * 44);
|
|
2823
|
+
}
|
|
2824
|
+
}
|
|
2671
2825
|
.sm\:w-4 {
|
|
2672
2826
|
@media (width >= 40rem) {
|
|
2673
2827
|
width: calc(var(--spacing) * 4);
|
|
@@ -2948,6 +3102,11 @@
|
|
|
2948
3102
|
padding: calc(var(--spacing) * 6);
|
|
2949
3103
|
}
|
|
2950
3104
|
}
|
|
3105
|
+
.md\:p-8 {
|
|
3106
|
+
@media (width >= 48rem) {
|
|
3107
|
+
padding: calc(var(--spacing) * 8);
|
|
3108
|
+
}
|
|
3109
|
+
}
|
|
2951
3110
|
.md\:px-6 {
|
|
2952
3111
|
@media (width >= 48rem) {
|
|
2953
3112
|
padding-inline: calc(var(--spacing) * 6);
|
|
@@ -3119,11 +3278,6 @@
|
|
|
3119
3278
|
}
|
|
3120
3279
|
}
|
|
3121
3280
|
}
|
|
3122
|
-
.dark\:bg-gray-600 {
|
|
3123
|
-
@media (prefers-color-scheme: dark) {
|
|
3124
|
-
background-color: var(--color-gray-600);
|
|
3125
|
-
}
|
|
3126
|
-
}
|
|
3127
3281
|
.dark\:bg-gray-700 {
|
|
3128
3282
|
@media (prefers-color-scheme: dark) {
|
|
3129
3283
|
background-color: var(--color-gray-700);
|
|
@@ -3362,15 +3516,6 @@
|
|
|
3362
3516
|
}
|
|
3363
3517
|
}
|
|
3364
3518
|
}
|
|
3365
|
-
.dark\:hover\:text-gray-200 {
|
|
3366
|
-
@media (prefers-color-scheme: dark) {
|
|
3367
|
-
&:hover {
|
|
3368
|
-
@media (hover: hover) {
|
|
3369
|
-
color: var(--color-gray-200);
|
|
3370
|
-
}
|
|
3371
|
-
}
|
|
3372
|
-
}
|
|
3373
|
-
}
|
|
3374
3519
|
.dark\:hover\:text-gray-300 {
|
|
3375
3520
|
@media (prefers-color-scheme: dark) {
|
|
3376
3521
|
&:hover {
|
|
@@ -3416,13 +3561,6 @@
|
|
|
3416
3561
|
}
|
|
3417
3562
|
}
|
|
3418
3563
|
}
|
|
3419
|
-
.dark\:disabled\:bg-gray-600 {
|
|
3420
|
-
@media (prefers-color-scheme: dark) {
|
|
3421
|
-
&:disabled {
|
|
3422
|
-
background-color: var(--color-gray-600);
|
|
3423
|
-
}
|
|
3424
|
-
}
|
|
3425
|
-
}
|
|
3426
3564
|
.\[\&\:\:-moz-range-progress\]\:rounded-lg {
|
|
3427
3565
|
&::-moz-range-progress {
|
|
3428
3566
|
border-radius: var(--radius-lg);
|
|
@@ -30,6 +30,16 @@ export interface PostActionButtonProps {
|
|
|
30
30
|
onReport?: () => void;
|
|
31
31
|
/** Called when user confirms comment upvote with (author, permlink, percent). Frontend handles signing. Voted comments show icon in blue. */
|
|
32
32
|
onClickCommentUpvote?: (author: string, permlink: string, percent: number) => void | Promise<void>;
|
|
33
|
+
/** Ecency image hosting token — enables image upload in comment composer */
|
|
34
|
+
ecencyToken?: string;
|
|
35
|
+
/** 3Speak API key — enables audio/video upload in comment composer */
|
|
36
|
+
threeSpeakApiKey?: string;
|
|
37
|
+
/** GIPHY API key — enables GIF search in comment composer */
|
|
38
|
+
giphyApiKey?: string;
|
|
39
|
+
/** HReplier API token — enables template picker in comment composer */
|
|
40
|
+
templateToken?: string;
|
|
41
|
+
/** Custom template API endpoint */
|
|
42
|
+
templateApiBaseUrl?: string;
|
|
33
43
|
}
|
|
34
|
-
export declare function PostActionButton({ author, permlink, currentUser: currentUserProp, hiveValue, hiveIconUrl, payoutTooltip, initialVotes, initialCommentsCount, onUpvote, onSubmitComment, onComments, onReblog, onShare, onTip, onReport, onClickCommentUpvote, }: PostActionButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
44
|
+
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, }: PostActionButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
35
45
|
export default PostActionButton;
|
|
@@ -1,10 +1,46 @@
|
|
|
1
|
-
interface
|
|
1
|
+
export interface PostComposerProps {
|
|
2
2
|
onSubmit: (body: string) => void;
|
|
3
|
-
onCancel
|
|
3
|
+
onCancel?: () => void;
|
|
4
4
|
currentUser?: string;
|
|
5
5
|
placeholder?: string;
|
|
6
6
|
parentAuthor?: string;
|
|
7
7
|
parentPermlink?: string;
|
|
8
|
+
/** Ecency image hosting token — enables image/video thumbnail upload and paste/drag upload */
|
|
9
|
+
ecencyToken?: string;
|
|
10
|
+
/** 3Speak API key — enables audio and video upload */
|
|
11
|
+
threeSpeakApiKey?: string;
|
|
12
|
+
/** GIPHY API key — enables GIF search */
|
|
13
|
+
giphyApiKey?: string;
|
|
14
|
+
/** HReplier API token — enables template picker */
|
|
15
|
+
templateToken?: string;
|
|
16
|
+
/** Custom template API endpoint (defaults to https://hreplier-api.sagarkothari88.one/data/templates) */
|
|
17
|
+
templateApiBaseUrl?: string;
|
|
18
|
+
/** Hide individual toolbar features */
|
|
19
|
+
hideBold?: boolean;
|
|
20
|
+
hideItalic?: boolean;
|
|
21
|
+
hideLink?: boolean;
|
|
22
|
+
hideImage?: boolean;
|
|
23
|
+
hideAudio?: boolean;
|
|
24
|
+
hideVideo?: boolean;
|
|
25
|
+
hideEmoji?: boolean;
|
|
26
|
+
hideGif?: boolean;
|
|
27
|
+
hideCode?: boolean;
|
|
28
|
+
hideMention?: boolean;
|
|
29
|
+
hideTemplate?: boolean;
|
|
30
|
+
hidePreview?: boolean;
|
|
31
|
+
/** Show cancel button (default true) */
|
|
32
|
+
showCancel?: boolean;
|
|
33
|
+
/** Submit button label (default "Post") */
|
|
34
|
+
submitLabel?: string;
|
|
35
|
+
/** Title text above composer (optional) */
|
|
36
|
+
title?: string;
|
|
37
|
+
/** Enable preview by default (default false) */
|
|
38
|
+
defaultPreviewOn?: boolean;
|
|
8
39
|
}
|
|
9
|
-
|
|
40
|
+
/** @deprecated Use PostComposerProps instead */
|
|
41
|
+
export type AddCommentInputProps = PostComposerProps;
|
|
42
|
+
declare const PostComposer: ({ onSubmit, onCancel, currentUser, placeholder, parentAuthor, parentPermlink, ecencyToken, threeSpeakApiKey, giphyApiKey, templateToken, templateApiBaseUrl, hideBold, hideItalic, hideLink, hideImage, hideAudio, hideVideo, hideEmoji, hideGif, hideCode, hideMention, hideTemplate, hidePreview, showCancel, submitLabel, title, defaultPreviewOn, }: PostComposerProps) => import("react/jsx-runtime").JSX.Element;
|
|
43
|
+
/** @deprecated Use PostComposer instead */
|
|
44
|
+
declare const AddCommentInput: ({ onSubmit, onCancel, currentUser, placeholder, parentAuthor, parentPermlink, ecencyToken, threeSpeakApiKey, giphyApiKey, templateToken, templateApiBaseUrl, hideBold, hideItalic, hideLink, hideImage, hideAudio, hideVideo, hideEmoji, hideGif, hideCode, hideMention, hideTemplate, hidePreview, showCancel, submitLabel, title, defaultPreviewOn, }: PostComposerProps) => import("react/jsx-runtime").JSX.Element;
|
|
45
|
+
export { PostComposer };
|
|
10
46
|
export default AddCommentInput;
|
|
@@ -11,6 +11,16 @@ interface CommentsModalProps {
|
|
|
11
11
|
onClickUpvoteButton?: (currentUser?: string, token?: string) => void;
|
|
12
12
|
/** When provided, used instead of apiService.handleComment (e.g. for aioha wallet) */
|
|
13
13
|
onSubmitComment?: (parentAuthor: string, parentPermlink: string, body: string) => Promise<void>;
|
|
14
|
+
/** Ecency image hosting token — enables image upload in comment composer */
|
|
15
|
+
ecencyToken?: string;
|
|
16
|
+
/** 3Speak API key — enables audio/video upload in comment composer */
|
|
17
|
+
threeSpeakApiKey?: string;
|
|
18
|
+
/** GIPHY API key — enables GIF search in comment composer */
|
|
19
|
+
giphyApiKey?: string;
|
|
20
|
+
/** HReplier API token — enables template picker in comment composer */
|
|
21
|
+
templateToken?: string;
|
|
22
|
+
/** Custom template API endpoint */
|
|
23
|
+
templateApiBaseUrl?: string;
|
|
14
24
|
}
|
|
15
|
-
declare const CommentsModal: ({ author, permlink, onClose, currentUser, token, onClickCommentUpvote, onClickCommentReply, onClickUpvoteButton, onSubmitComment }: CommentsModalProps) => import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
declare const CommentsModal: ({ author, permlink, onClose, currentUser, token, onClickCommentUpvote, onClickCommentReply, onClickUpvoteButton, onSubmitComment, ecencyToken, threeSpeakApiKey, giphyApiKey, templateToken, templateApiBaseUrl }: CommentsModalProps) => import("react/jsx-runtime").JSX.Element;
|
|
16
26
|
export default CommentsModal;
|
|
@@ -4,6 +4,11 @@ interface ReplyModalProps {
|
|
|
4
4
|
onClose: () => void;
|
|
5
5
|
onCommentSubmitted: (parentAuthor: string, parentPermlink: string, body: string) => Promise<void>;
|
|
6
6
|
currentUser?: string;
|
|
7
|
+
ecencyToken?: string;
|
|
8
|
+
threeSpeakApiKey?: string;
|
|
9
|
+
giphyApiKey?: string;
|
|
10
|
+
templateToken?: string;
|
|
11
|
+
templateApiBaseUrl?: string;
|
|
7
12
|
}
|
|
8
|
-
declare const ReplyModal: ({ parentAuthor, parentPermlink, onClose, onCommentSubmitted, currentUser }: ReplyModalProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
declare const ReplyModal: ({ parentAuthor, parentPermlink, onClose, onCommentSubmitted, currentUser, ecencyToken, threeSpeakApiKey, giphyApiKey, templateToken, templateApiBaseUrl, }: ReplyModalProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
14
|
export default ReplyModal;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface AudioUploaderProps {
|
|
3
|
+
/** Called with the audio embed URL and duration in seconds */
|
|
4
|
+
onAudioUploaded: (audioUrl: string, durationSeconds: number) => void;
|
|
5
|
+
/** Hive username for the upload */
|
|
6
|
+
username?: string;
|
|
7
|
+
/** 3Speak API key. Falls back to demo key if not provided. */
|
|
8
|
+
threeSpeakApiKey?: string;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
}
|
|
11
|
+
declare const AudioUploader: React.FC<AudioUploaderProps>;
|
|
12
|
+
export default AudioUploader;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface GiphyPickerProps {
|
|
3
|
+
isOpen: boolean;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
onSelectGif: (gifUrl: string) => void;
|
|
6
|
+
/** GIPHY API key. Required for search functionality. */
|
|
7
|
+
giphyApiKey?: string;
|
|
8
|
+
}
|
|
9
|
+
declare const GiphyPicker: React.FC<GiphyPickerProps>;
|
|
10
|
+
export default GiphyPicker;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export interface ImageUploaderProps {
|
|
3
|
+
/** Called with the uploaded image URL */
|
|
4
|
+
onImageUploaded: (imageUrl: string) => void;
|
|
5
|
+
/** Ecency image hosting token for upload authentication */
|
|
6
|
+
ecencyToken?: string;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
}
|
|
9
|
+
declare const ImageUploader: React.FC<ImageUploaderProps>;
|
|
10
|
+
export default ImageUploader;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { TemplateModel } from '../../services/templateService';
|
|
3
|
+
export interface TemplatePickerProps {
|
|
4
|
+
isOpen: boolean;
|
|
5
|
+
onClose: () => void;
|
|
6
|
+
onSelectTemplate: (template: string) => void;
|
|
7
|
+
templates: TemplateModel[];
|
|
8
|
+
/** If provided, {{author}} in templates is replaced with this value */
|
|
9
|
+
authorFromUrl?: string;
|
|
10
|
+
}
|
|
11
|
+
declare const TemplatePicker: React.FC<TemplatePickerProps>;
|
|
12
|
+
export default TemplatePicker;
|