hive-react-kit 0.6.3 → 0.6.4
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 +13 -0
- package/dist/build.css +47 -0
- package/dist/components/HiveDetailPost.d.ts +8 -1
- package/dist/index.cjs.js +94 -94
- package/dist/index.esm.js +7348 -7231
- package/dist/types/post.d.ts +11 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -279,6 +279,19 @@ import { HiveDetailPost } from 'hive-react-kit';
|
|
|
279
279
|
| `onShare` | `() => void` | Called when share is clicked. Falls back to Web Share API / clipboard |
|
|
280
280
|
| `onTip` | `() => void` | Called when tip is clicked |
|
|
281
281
|
| `onReport` | `() => void` | Called when report is clicked |
|
|
282
|
+
| `onVotePoll` | `(author: string, permlink: string, choiceNums: number[]) => void \| Promise<void>` | Called when user votes on a poll. `choiceNums` is an array of 1-based choice numbers |
|
|
283
|
+
|
|
284
|
+
**Poll Voting Behaviour**
|
|
285
|
+
|
|
286
|
+
When a post has `json_metadata.content_type === "poll"` the component renders a built-in poll widget:
|
|
287
|
+
|
|
288
|
+
| Scenario | Behaviour |
|
|
289
|
+
|----------|-----------|
|
|
290
|
+
| Single-choice poll (`max_choices_voted === 1`) | Clicking a choice immediately calls `onVotePoll` |
|
|
291
|
+
| Multi-choice poll (`max_choices_voted > 1`) | Checkboxes shown; selection capped at `max_choices_voted`; **Submit Vote** button appears once ≥ 1 option is selected |
|
|
292
|
+
| Poll ended | Choices shown read-only with vote percentages; voting UI hidden |
|
|
293
|
+
| Already voted (current session or via API) | Voted choices highlighted in green; "✓ Voted" shown in footer; voting UI hidden |
|
|
294
|
+
| `onVotePoll` not provided | Poll results rendered read-only regardless of poll status |
|
|
282
295
|
|
|
283
296
|
**Comment Composer Tokens**
|
|
284
297
|
|
package/dist/build.css
CHANGED
|
@@ -1225,6 +1225,12 @@
|
|
|
1225
1225
|
border-color: color-mix(in oklab, var(--color-blue-500) 30%, transparent);
|
|
1226
1226
|
}
|
|
1227
1227
|
}
|
|
1228
|
+
.border-blue-500\/60 {
|
|
1229
|
+
border-color: color-mix(in srgb, oklch(62.3% 0.214 259.815) 60%, transparent);
|
|
1230
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1231
|
+
border-color: color-mix(in oklab, var(--color-blue-500) 60%, transparent);
|
|
1232
|
+
}
|
|
1233
|
+
}
|
|
1228
1234
|
.border-blue-600 {
|
|
1229
1235
|
border-color: var(--color-blue-600);
|
|
1230
1236
|
}
|
|
@@ -1258,6 +1264,12 @@
|
|
|
1258
1264
|
.border-gray-800 {
|
|
1259
1265
|
border-color: var(--color-gray-800);
|
|
1260
1266
|
}
|
|
1267
|
+
.border-green-600\/60 {
|
|
1268
|
+
border-color: color-mix(in srgb, oklch(62.7% 0.194 149.214) 60%, transparent);
|
|
1269
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1270
|
+
border-color: color-mix(in oklab, var(--color-green-600) 60%, transparent);
|
|
1271
|
+
}
|
|
1272
|
+
}
|
|
1261
1273
|
.border-red-200 {
|
|
1262
1274
|
border-color: var(--color-red-200);
|
|
1263
1275
|
}
|
|
@@ -1444,6 +1456,12 @@
|
|
|
1444
1456
|
.bg-gray-700 {
|
|
1445
1457
|
background-color: var(--color-gray-700);
|
|
1446
1458
|
}
|
|
1459
|
+
.bg-gray-700\/50 {
|
|
1460
|
+
background-color: color-mix(in srgb, oklch(37.3% 0.034 259.733) 50%, transparent);
|
|
1461
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1462
|
+
background-color: color-mix(in oklab, var(--color-gray-700) 50%, transparent);
|
|
1463
|
+
}
|
|
1464
|
+
}
|
|
1447
1465
|
.bg-gray-700\/60 {
|
|
1448
1466
|
background-color: color-mix(in srgb, oklch(37.3% 0.034 259.733) 60%, transparent);
|
|
1449
1467
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -1459,6 +1477,12 @@
|
|
|
1459
1477
|
background-color: color-mix(in oklab, var(--color-gray-800) 50%, transparent);
|
|
1460
1478
|
}
|
|
1461
1479
|
}
|
|
1480
|
+
.bg-gray-800\/60 {
|
|
1481
|
+
background-color: color-mix(in srgb, oklch(27.8% 0.033 256.848) 60%, transparent);
|
|
1482
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1483
|
+
background-color: color-mix(in oklab, var(--color-gray-800) 60%, transparent);
|
|
1484
|
+
}
|
|
1485
|
+
}
|
|
1462
1486
|
.bg-gray-800\/95 {
|
|
1463
1487
|
background-color: color-mix(in srgb, oklch(27.8% 0.033 256.848) 95%, transparent);
|
|
1464
1488
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -1504,6 +1528,18 @@
|
|
|
1504
1528
|
.bg-green-600 {
|
|
1505
1529
|
background-color: var(--color-green-600);
|
|
1506
1530
|
}
|
|
1531
|
+
.bg-green-600\/20 {
|
|
1532
|
+
background-color: color-mix(in srgb, oklch(62.7% 0.194 149.214) 20%, transparent);
|
|
1533
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1534
|
+
background-color: color-mix(in oklab, var(--color-green-600) 20%, transparent);
|
|
1535
|
+
}
|
|
1536
|
+
}
|
|
1537
|
+
.bg-green-900\/50 {
|
|
1538
|
+
background-color: color-mix(in srgb, oklch(39.3% 0.095 152.535) 50%, transparent);
|
|
1539
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1540
|
+
background-color: color-mix(in oklab, var(--color-green-900) 50%, transparent);
|
|
1541
|
+
}
|
|
1542
|
+
}
|
|
1507
1543
|
.bg-indigo-600 {
|
|
1508
1544
|
background-color: var(--color-indigo-600);
|
|
1509
1545
|
}
|
|
@@ -2027,6 +2063,9 @@
|
|
|
2027
2063
|
.text-gray-900 {
|
|
2028
2064
|
color: var(--color-gray-900);
|
|
2029
2065
|
}
|
|
2066
|
+
.text-green-300 {
|
|
2067
|
+
color: var(--color-green-300);
|
|
2068
|
+
}
|
|
2030
2069
|
.text-green-400 {
|
|
2031
2070
|
color: var(--color-green-400);
|
|
2032
2071
|
}
|
|
@@ -2143,6 +2182,9 @@
|
|
|
2143
2182
|
.opacity-30 {
|
|
2144
2183
|
opacity: 30%;
|
|
2145
2184
|
}
|
|
2185
|
+
.opacity-50 {
|
|
2186
|
+
opacity: 50%;
|
|
2187
|
+
}
|
|
2146
2188
|
.opacity-100 {
|
|
2147
2189
|
opacity: 100%;
|
|
2148
2190
|
}
|
|
@@ -2775,6 +2817,11 @@
|
|
|
2775
2817
|
background-color: var(--color-gray-700);
|
|
2776
2818
|
}
|
|
2777
2819
|
}
|
|
2820
|
+
.disabled\:text-gray-500 {
|
|
2821
|
+
&:disabled {
|
|
2822
|
+
color: var(--color-gray-500);
|
|
2823
|
+
}
|
|
2824
|
+
}
|
|
2778
2825
|
.disabled\:opacity-50 {
|
|
2779
2826
|
&:disabled {
|
|
2780
2827
|
opacity: 50%;
|
|
@@ -9,6 +9,13 @@ export interface HiveDetailPostProps {
|
|
|
9
9
|
onShare?: () => void;
|
|
10
10
|
onTip?: () => void;
|
|
11
11
|
onReport?: () => void;
|
|
12
|
+
/**
|
|
13
|
+
* Called when the user submits a poll vote.
|
|
14
|
+
* @param author - post author
|
|
15
|
+
* @param permlink - post permlink
|
|
16
|
+
* @param choiceNums - 1-based choice numbers selected by the user
|
|
17
|
+
*/
|
|
18
|
+
onVotePoll?: (author: string, permlink: string, choiceNums: number[]) => void | Promise<void>;
|
|
12
19
|
ecencyToken?: string;
|
|
13
20
|
threeSpeakApiKey?: string;
|
|
14
21
|
giphyApiKey?: string;
|
|
@@ -21,5 +28,5 @@ export interface HiveDetailPostProps {
|
|
|
21
28
|
onBack?: () => void;
|
|
22
29
|
onUserClick?: (username: string) => void;
|
|
23
30
|
}
|
|
24
|
-
export declare function HiveDetailPost({ author, permlink, currentUser, onUpvote, onSubmitComment, onClickCommentUpvote, onReblog, onShare, onTip, onReport, ecencyToken, threeSpeakApiKey, giphyApiKey, templateToken, templateApiBaseUrl, hiveIconUrl, backgroundColor, onBack, onUserClick, }: HiveDetailPostProps): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
export declare function HiveDetailPost({ author, permlink, currentUser, onUpvote, onSubmitComment, onClickCommentUpvote, onReblog, onShare, onTip, onReport, ecencyToken, threeSpeakApiKey, giphyApiKey, templateToken, templateApiBaseUrl, hiveIconUrl, backgroundColor, onBack, onUserClick, onVotePoll, }: HiveDetailPostProps): import("react/jsx-runtime").JSX.Element;
|
|
25
32
|
export default HiveDetailPost;
|