hive-react-kit 1.7.8 → 1.7.13

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/dist/build.css CHANGED
@@ -1625,6 +1625,9 @@
1625
1625
  .border-\[rgba\(255\,255\,255\,0\.08\)\] {
1626
1626
  border-color: rgba(255,255,255,0.08);
1627
1627
  }
1628
+ .border-\[var\(--hrk-bg-surface\)\] {
1629
+ border-color: var(--hrk-bg-surface);
1630
+ }
1628
1631
  .border-\[var\(--hrk-border-default\)\] {
1629
1632
  border-color: var(--hrk-border-default);
1630
1633
  }
@@ -2210,6 +2213,12 @@
2210
2213
  .bg-blue-900 {
2211
2214
  background-color: var(--color-blue-900);
2212
2215
  }
2216
+ .bg-blue-900\/30 {
2217
+ background-color: color-mix(in srgb, oklch(37.9% 0.146 265.522) 30%, transparent);
2218
+ @supports (color: color-mix(in lab, red, red)) {
2219
+ background-color: color-mix(in oklab, var(--color-blue-900) 30%, transparent);
2220
+ }
2221
+ }
2213
2222
  .bg-blue-900\/40 {
2214
2223
  background-color: color-mix(in srgb, oklch(37.9% 0.146 265.522) 40%, transparent);
2215
2224
  @supports (color: color-mix(in lab, red, red)) {
@@ -2264,6 +2273,9 @@
2264
2273
  .bg-gray-500 {
2265
2274
  background-color: var(--color-gray-500);
2266
2275
  }
2276
+ .bg-gray-600 {
2277
+ background-color: var(--color-gray-600);
2278
+ }
2267
2279
  .bg-gray-700 {
2268
2280
  background-color: var(--color-gray-700);
2269
2281
  }
@@ -2345,6 +2357,12 @@
2345
2357
  background-color: color-mix(in oklab, var(--color-green-900) 10%, transparent);
2346
2358
  }
2347
2359
  }
2360
+ .bg-green-900\/30 {
2361
+ background-color: color-mix(in srgb, oklch(39.3% 0.095 152.535) 30%, transparent);
2362
+ @supports (color: color-mix(in lab, red, red)) {
2363
+ background-color: color-mix(in oklab, var(--color-green-900) 30%, transparent);
2364
+ }
2365
+ }
2348
2366
  .bg-green-900\/50 {
2349
2367
  background-color: color-mix(in srgb, oklch(39.3% 0.095 152.535) 50%, transparent);
2350
2368
  @supports (color: color-mix(in lab, red, red)) {
@@ -2381,6 +2399,12 @@
2381
2399
  .bg-purple-600 {
2382
2400
  background-color: var(--color-purple-600);
2383
2401
  }
2402
+ .bg-purple-900\/20 {
2403
+ background-color: color-mix(in srgb, oklch(38.1% 0.176 304.987) 20%, transparent);
2404
+ @supports (color: color-mix(in lab, red, red)) {
2405
+ background-color: color-mix(in oklab, var(--color-purple-900) 20%, transparent);
2406
+ }
2407
+ }
2384
2408
  .bg-purple-900\/60 {
2385
2409
  background-color: color-mix(in srgb, oklch(38.1% 0.176 304.987) 60%, transparent);
2386
2410
  @supports (color: color-mix(in lab, red, red)) {
@@ -2618,6 +2642,9 @@
2618
2642
  .fill-white {
2619
2643
  fill: var(--color-white);
2620
2644
  }
2645
+ .stroke-\[3px\] {
2646
+ stroke-width: 3px;
2647
+ }
2621
2648
  .object-contain {
2622
2649
  object-fit: contain;
2623
2650
  }
@@ -3066,9 +3093,6 @@
3066
3093
  .text-blue-600 {
3067
3094
  color: var(--color-blue-600);
3068
3095
  }
3069
- .text-blue-700 {
3070
- color: var(--color-blue-700);
3071
- }
3072
3096
  .text-blue-800 {
3073
3097
  color: var(--color-blue-800);
3074
3098
  }
@@ -3351,9 +3375,6 @@
3351
3375
  .ring-blue-500 {
3352
3376
  --tw-ring-color: var(--color-blue-500);
3353
3377
  }
3354
- .ring-gray-200 {
3355
- --tw-ring-color: var(--color-gray-200);
3356
- }
3357
3378
  .ring-gray-700 {
3358
3379
  --tw-ring-color: var(--color-gray-700);
3359
3380
  }
@@ -5001,6 +5022,11 @@
5001
5022
  border-color: var(--hrk-border-default);
5002
5023
  }
5003
5024
  }
5025
+ .sm\:border-\[var\(--hrk-border-subtle\)\] {
5026
+ @media (width >= 40rem) {
5027
+ border-color: var(--hrk-border-subtle);
5028
+ }
5029
+ }
5004
5030
  .sm\:bg-transparent {
5005
5031
  @media (width >= 40rem) {
5006
5032
  background-color: transparent;
@@ -5569,16 +5595,6 @@
5569
5595
  line-height: var(--tw-leading, var(--text-base--line-height));
5570
5596
  }
5571
5597
  }
5572
- .dark\:border-\[var\(--hrk-border-default\)\] {
5573
- @media (prefers-color-scheme: dark) {
5574
- border-color: var(--hrk-border-default);
5575
- }
5576
- }
5577
- .dark\:border-\[var\(--hrk-border-subtle\)\] {
5578
- @media (prefers-color-scheme: dark) {
5579
- border-color: var(--hrk-border-subtle);
5580
- }
5581
- }
5582
5598
  .dark\:border-gray-600 {
5583
5599
  @media (prefers-color-scheme: dark) {
5584
5600
  border-color: var(--color-gray-600);
@@ -5604,24 +5620,11 @@
5604
5620
  background-color: var(--hrk-bg-app);
5605
5621
  }
5606
5622
  }
5607
- .dark\:bg-\[var\(--hrk-bg-surface\)\] {
5608
- @media (prefers-color-scheme: dark) {
5609
- background-color: var(--hrk-bg-surface);
5610
- }
5611
- }
5612
5623
  .dark\:bg-\[var\(--hrk-bg-surface-raised\)\] {
5613
5624
  @media (prefers-color-scheme: dark) {
5614
5625
  background-color: var(--hrk-bg-surface-raised);
5615
5626
  }
5616
5627
  }
5617
- .dark\:bg-\[var\(--hrk-bg-surface-raised\)\]\/50 {
5618
- @media (prefers-color-scheme: dark) {
5619
- background-color: var(--hrk-bg-surface-raised);
5620
- @supports (color: color-mix(in lab, red, red)) {
5621
- background-color: color-mix(in oklab, var(--hrk-bg-surface-raised) 50%, transparent);
5622
- }
5623
- }
5624
- }
5625
5628
  .dark\:bg-blue-500 {
5626
5629
  @media (prefers-color-scheme: dark) {
5627
5630
  background-color: var(--color-blue-500);
@@ -5640,14 +5643,6 @@
5640
5643
  }
5641
5644
  }
5642
5645
  }
5643
- .dark\:bg-blue-900\/30 {
5644
- @media (prefers-color-scheme: dark) {
5645
- background-color: color-mix(in srgb, oklch(37.9% 0.146 265.522) 30%, transparent);
5646
- @supports (color: color-mix(in lab, red, red)) {
5647
- background-color: color-mix(in oklab, var(--color-blue-900) 30%, transparent);
5648
- }
5649
- }
5650
- }
5651
5646
  .dark\:bg-gray-700 {
5652
5647
  @media (prefers-color-scheme: dark) {
5653
5648
  background-color: var(--color-gray-700);
@@ -5671,14 +5666,6 @@
5671
5666
  }
5672
5667
  }
5673
5668
  }
5674
- .dark\:bg-green-900\/30 {
5675
- @media (prefers-color-scheme: dark) {
5676
- background-color: color-mix(in srgb, oklch(39.3% 0.095 152.535) 30%, transparent);
5677
- @supports (color: color-mix(in lab, red, red)) {
5678
- background-color: color-mix(in oklab, var(--color-green-900) 30%, transparent);
5679
- }
5680
- }
5681
- }
5682
5669
  .dark\:bg-purple-900 {
5683
5670
  @media (prefers-color-scheme: dark) {
5684
5671
  background-color: var(--color-purple-900);
@@ -5809,29 +5796,6 @@
5809
5796
  }
5810
5797
  }
5811
5798
  }
5812
- .dark\:ring-\[var\(--hrk-border-subtle\)\] {
5813
- @media (prefers-color-scheme: dark) {
5814
- --tw-ring-color: var(--hrk-border-subtle);
5815
- }
5816
- }
5817
- .dark\:hover\:border-\[var\(--hrk-border-default\)\] {
5818
- @media (prefers-color-scheme: dark) {
5819
- &:hover {
5820
- @media (hover: hover) {
5821
- border-color: var(--hrk-border-default);
5822
- }
5823
- }
5824
- }
5825
- }
5826
- .dark\:hover\:bg-\[var\(--hrk-bg-surface\)\] {
5827
- @media (prefers-color-scheme: dark) {
5828
- &:hover {
5829
- @media (hover: hover) {
5830
- background-color: var(--hrk-bg-surface);
5831
- }
5832
- }
5833
- }
5834
- }
5835
5799
  .dark\:hover\:bg-\[var\(--hrk-bg-surface-raised\)\] {
5836
5800
  @media (prefers-color-scheme: dark) {
5837
5801
  &:hover {
@@ -27,8 +27,12 @@ interface UpvoteListModalProps {
27
27
  /** Unit suffix for each voter's `value` (e.g. "MHP"). Shown after the
28
28
  * number in voters-only mode; no Hive reward icon is rendered. */
29
29
  valueUnit?: string;
30
- /** Header title override. Defaults to "Votes (Hive Rewards)". */
30
+ /** Header title override. Defaults to "Votes (Hive Rewards)" or
31
+ * "Downvotes" when `voteFilter` is `"downvotes"`. */
31
32
  title?: string;
33
+ /** When `"downvotes"`, only negative votes are listed (opened from
34
+ * the broken-heart indicator). Default `"upvotes"`. */
35
+ voteFilter?: 'upvotes' | 'downvotes';
32
36
  /** Makes each voter row navigate to the account's profile. Mainly
33
37
  * used in voters-only mode. */
34
38
  onUserClick?: (username: string) => void;
@@ -43,5 +47,5 @@ export interface VoterRow {
43
47
  value?: number;
44
48
  }
45
49
  export declare function formatTimeAgo(date: string | Date): string;
46
- declare const UpvoteListModal: ({ author, permlink, onClose, currentUser, token, onClickUpvoteButton, hiveIconUrl, voters, fetchVoters, valueUnit, title, onUserClick, getUserUrl, }: UpvoteListModalProps) => import("react/jsx-runtime").JSX.Element;
50
+ declare const UpvoteListModal: ({ author, permlink, onClose, currentUser, token, onClickUpvoteButton, hiveIconUrl, voters, fetchVoters, valueUnit, title, voteFilter, onUserClick, getUserUrl, }: UpvoteListModalProps) => import("react/jsx-runtime").JSX.Element;
47
51
  export default UpvoteListModal;
@@ -27,6 +27,10 @@ export interface PostActionButtonProps {
27
27
  * popular posts. Pass this when you have the canonical total so
28
28
  * the chip reads "1.2k" instead of being capped at 1000. */
29
29
  initialVoteCount?: number;
30
+ /** Hive `stats.flag_weight` — non-zero means the post has downvotes.
31
+ * Pair with `initialVotes` so the broken-heart indicator is reliable
32
+ * even when the capped `active_votes` array omits flag voters. */
33
+ initialFlagWeight?: number;
30
34
  /** Optional: Pre-loaded comments count from the Post object (item.children). Skips the API call when provided. */
31
35
  initialCommentsCount?: number;
32
36
  /** Called when user confirms vote with percent (1–100). Frontend handles signing/broadcast. */
@@ -150,5 +154,5 @@ export interface PostActionButtonProps {
150
154
  * polls, community detail) where there isn't room for four icons. */
151
155
  actionsAsMenu?: boolean;
152
156
  }
153
- export declare function PostActionButton({ author, permlink, currentUser: currentUserProp, hiveValue, hiveIconUrl, payoutTooltip, payoutDetails, initialVotes, initialVoteCount, initialCommentsCount, onUpvote, onSubmitComment, onComments, onEdit, onReblog, onReSnap, onShare, onTip, onReport, onToggleBookmark, isBookmarked, onDelete, onPin, onUnpin, onClickCommentUpvote, onUserClick, getUserUrl, ecencyToken, threeSpeakApiKey, giphyApiKey, templateToken, templateApiBaseUrl, disableCommentsModal, onClickCommentIcon, onClickCommentCount, hasCommented, myReplyKey, showVoteButton, parentTags, defaultReward, defaultBeneficiaries, beneficiaryFavorites, defaultVotePercent, voteWeightStep, allowLandscapeVideos, actionsAsMenu, awaitingWalletApproval, postCreatedAt, size, }: PostActionButtonProps): import("react/jsx-runtime").JSX.Element;
157
+ export declare function PostActionButton({ author, permlink, currentUser: currentUserProp, hiveValue, hiveIconUrl, payoutTooltip, payoutDetails, initialVotes, initialVoteCount, initialFlagWeight, initialCommentsCount, onUpvote, onSubmitComment, onComments, onEdit, onReblog, onReSnap, onShare, onTip, onReport, onToggleBookmark, isBookmarked, onDelete, onPin, onUnpin, onClickCommentUpvote, onUserClick, getUserUrl, ecencyToken, threeSpeakApiKey, giphyApiKey, templateToken, templateApiBaseUrl, disableCommentsModal, onClickCommentIcon, onClickCommentCount, hasCommented, myReplyKey, showVoteButton, parentTags, defaultReward, defaultBeneficiaries, beneficiaryFavorites, defaultVotePercent, voteWeightStep, allowLandscapeVideos, actionsAsMenu, awaitingWalletApproval, postCreatedAt, size, }: PostActionButtonProps): import("react/jsx-runtime").JSX.Element;
154
158
  export default PostActionButton;
@@ -228,6 +228,6 @@ export interface UserDetailProfileProps {
228
228
  * `addAccountAuthority` / `removeAccountAuthority`). */
229
229
  onPostingAuthority?: () => void;
230
230
  }
231
- type TabType = "blogs" | "posts" | "snaps" | "polls" | "comments" | "replies" | "activities" | "authorRewards" | "curationRewards" | "followers" | "following" | "wallet" | "votingPower" | "badges" | "witnessVotes" | "growth";
231
+ type TabType = "blogs" | "posts" | "snaps" | "polls" | "comments" | "replies" | "activities" | "authorRewards" | "curationRewards" | "followers" | "following" | "wallet" | "votingPower" | "badges" | "witnessVotes" | "growth" | "curation";
232
232
  declare const UserDetailProfile: React.FC<UserDetailProfileProps>;
233
233
  export default UserDetailProfile;
@@ -15,7 +15,7 @@
15
15
  * Missing keys for a non-English language fall back to the English entry,
16
16
  * which is the source of truth for every label.
17
17
  */
18
- export type KitMessageKey = "tab.blogs" | "tab.posts" | "tab.snaps" | "tab.polls" | "tab.comments" | "tab.replies" | "tab.activities" | "tab.authorRewards" | "tab.curationRewards" | "tab.growth" | "tab.followers" | "tab.following" | "tab.wallet" | "tab.engineTokens" | "tab.votingPower" | "tab.badges" | "tab.witnessVotes" | "meta.followers" | "meta.following" | "meta.posts" | "action.follow" | "action.unfollow" | "action.ignoreAuthor" | "action.mute" | "action.unmute" | "action.reportUser" | "action.shareProfile" | "action.cancel" | "action.confirmIgnore" | "action.processing" | "modal.ignoreAuthorTitle" | "modal.ignoreAuthorBody" | "empty.noBlogs" | "empty.noPosts" | "empty.noSnaps" | "empty.noPolls" | "empty.noComments" | "empty.noReplies" | "empty.noFollowers" | "empty.notFollowing" | "empty.noBadges" | "empty.noWitnessVotes" | "empty.noPendingAuthor" | "empty.noPendingCuration" | "empty.curationHint" | "empty.votingPowerUnavailable" | "empty.userNotFound" | "status.active" | "status.ended" | "poll.selectAnOption" | "poll.selectUpTo" | "poll.changeYourVote" | "poll.selected" | "poll.submitVote" | "poll.submitVotes" | "poll.changeVote" | "poll.submitting" | "poll.voted" | "poll.voteChangesAllowed" | "poll.voter" | "poll.voters" | "poll.option" | "poll.options" | "poll.endsIn" | "common.translating" | "common.processing" | "common.fullyCharged" | "reward.pendingAuthor" | "reward.pendingCuration" | "reward.posts" | "reward.comments" | "reward.totalHbd" | "reward.totalHp" | "reward.avgEfficiency" | "reward.post" | "reward.comment" | "vp.upvotePower" | "vp.downvotePower" | "vp.resourceCredits";
18
+ export type KitMessageKey = "tab.blogs" | "tab.posts" | "tab.snaps" | "tab.polls" | "tab.comments" | "tab.replies" | "tab.activities" | "tab.authorRewards" | "tab.curationRewards" | "tab.growth" | "tab.followers" | "tab.following" | "tab.wallet" | "tab.engineTokens" | "tab.votingPower" | "tab.badges" | "tab.witnessVotes" | "tab.curation" | "meta.followers" | "meta.following" | "meta.posts" | "action.follow" | "action.unfollow" | "action.ignoreAuthor" | "action.mute" | "action.unmute" | "action.reportUser" | "action.shareProfile" | "action.cancel" | "action.confirmIgnore" | "action.processing" | "modal.ignoreAuthorTitle" | "modal.ignoreAuthorBody" | "empty.noBlogs" | "empty.noPosts" | "empty.noSnaps" | "empty.noPolls" | "empty.noComments" | "empty.noReplies" | "empty.noFollowers" | "empty.notFollowing" | "empty.noBadges" | "empty.noWitnessVotes" | "empty.noPendingAuthor" | "empty.noPendingCuration" | "empty.curationHint" | "empty.votingPowerUnavailable" | "empty.userNotFound" | "empty.noCuration" | "status.active" | "status.ended" | "poll.selectAnOption" | "poll.selectUpTo" | "poll.changeYourVote" | "poll.selected" | "poll.submitVote" | "poll.submitVotes" | "poll.changeVote" | "poll.submitting" | "poll.voted" | "poll.voteChangesAllowed" | "poll.voter" | "poll.voters" | "poll.option" | "poll.options" | "poll.endsIn" | "common.translating" | "common.processing" | "common.fullyCharged" | "reward.pendingAuthor" | "reward.pendingCuration" | "reward.posts" | "reward.comments" | "reward.totalHbd" | "reward.totalHp" | "reward.avgEfficiency" | "reward.post" | "reward.comment" | "vp.upvotePower" | "vp.downvotePower" | "vp.resourceCredits";
19
19
  export type KitMessages = Partial<Record<KitMessageKey, string>>;
20
20
  export declare const BUILTIN_MESSAGES: Record<string, Record<string, string>>;
21
21
  /**