finsignal-feed-explore 1.9.9 → 2.0.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 +11 -0
- package/dist/components/icons.d.ts +4 -3
- package/dist/components/icons.d.ts.map +1 -1
- package/dist/components/icons.js +10 -14
- package/dist/components/icons.js.map +1 -1
- package/dist/snippets/NewsSnippet.css +74 -155
- package/dist/snippets/NewsSnippet.d.ts.map +1 -1
- package/dist/snippets/NewsSnippet.js +19 -30
- package/dist/snippets/NewsSnippet.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
News feed explorer components for React web applications. A comprehensive library for displaying and interacting with financial news feeds.
|
|
4
4
|
|
|
5
|
+
## Version 2.0.0 - Major Design Update 🎨
|
|
6
|
+
|
|
7
|
+
This version includes a complete redesign to match the native app UI:
|
|
8
|
+
- ✨ Larger, bolder titles (20px, 700 weight) for better readability
|
|
9
|
+
- 🎯 Improved source display with circular logos positioned after title
|
|
10
|
+
- 📐 Better content hierarchy and spacing matching native design
|
|
11
|
+
- 🎭 Professional action bar with left/right icon grouping
|
|
12
|
+
- 🔍 Larger icons (24px) with proper colors and opacity
|
|
13
|
+
- 💡 AI Insight styling with gradient background and sparkle icon
|
|
14
|
+
- 🖱️ Enhanced drag'n'drop visual feedback
|
|
15
|
+
|
|
5
16
|
## Installation
|
|
6
17
|
|
|
7
18
|
```bash
|
|
@@ -7,16 +7,17 @@ export interface IconProps {
|
|
|
7
7
|
export declare const ShareIcon: React.FC<IconProps>;
|
|
8
8
|
export declare const BookmarkIcon: React.FC<IconProps & {
|
|
9
9
|
filled?: boolean;
|
|
10
|
+
fill?: string;
|
|
10
11
|
}>;
|
|
11
12
|
export declare const LikeIcon: React.FC<IconProps & {
|
|
12
13
|
filled?: boolean;
|
|
14
|
+
fill?: string;
|
|
13
15
|
}>;
|
|
14
16
|
export declare const DislikeIcon: React.FC<IconProps & {
|
|
15
17
|
filled?: boolean;
|
|
18
|
+
fill?: string;
|
|
16
19
|
}>;
|
|
17
|
-
export declare const AIStarIcon: React.FC<IconProps
|
|
18
|
-
filled?: boolean;
|
|
19
|
-
}>;
|
|
20
|
+
export declare const AIStarIcon: React.FC<IconProps>;
|
|
20
21
|
export declare const FilterIcon: React.FC<IconProps>;
|
|
21
22
|
export declare const CloseIcon: React.FC<IconProps>;
|
|
22
23
|
export declare const PlusIcon: React.FC<IconProps>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/components/icons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/components/icons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CASzC,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,GAAG;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAgBlF,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,GAAG;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAgB9E,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,GAAG;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAgBjF,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAc1C,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAI1C,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAIzC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAIxC,CAAC"}
|
package/dist/components/icons.js
CHANGED
|
@@ -1,18 +1,14 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
export const ShareIcon = ({ size =
|
|
3
|
-
React.createElement("path", { d: "
|
|
4
|
-
|
|
5
|
-
React.createElement("path", { d: "
|
|
6
|
-
|
|
7
|
-
React.createElement("path", { d: "
|
|
8
|
-
export const
|
|
9
|
-
React.createElement("path", { d: "
|
|
10
|
-
export const
|
|
11
|
-
React.createElement("path", { d: "
|
|
12
|
-
export const DislikeIcon = ({ size = 20, color = 'currentColor', filled = false, className = '' }) => (React.createElement("svg", { width: size, height: size, viewBox: "0 0 20 20", fill: filled ? color : "none", className: className },
|
|
13
|
-
React.createElement("path", { d: "M14.1667 1.66667H15.8333C16.2754 1.66667 16.6993 1.84226 17.0118 2.15482C17.3244 2.46738 17.5 2.89131 17.5 3.33333V9.16667C17.5 9.60869 17.3244 10.0326 17.0118 10.3452C16.6993 10.6577 16.2754 10.8333 15.8333 10.8333H14.1667M8.33333 12.5V15.8333C8.33333 16.4964 8.59672 17.1323 9.06556 17.6011C9.5344 18.0699 10.1703 18.3333 10.8333 18.3333L14.1667 10.8333V1.66667H4.94167C4.54573 1.66205 4.16059 1.79738 3.85296 2.05007C3.54532 2.30276 3.33395 2.65691 3.25833 3.05L2.00833 9.55C1.9591 9.80574 1.96612 10.0692 2.02874 10.3219C2.09137 10.5745 2.20817 10.8101 2.37059 11.0128C2.53301 11.2156 2.73696 11.3807 2.96852 11.4965C3.20008 11.6123 3.45352 11.6761 3.71167 11.6833H8.33333Z", stroke: color, strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })));
|
|
14
|
-
export const AIStarIcon = ({ size = 20, color = 'currentColor', filled = false, className = '' }) => (React.createElement("svg", { width: size, height: size, viewBox: "0 0 20 20", fill: filled ? color : "none", className: className },
|
|
15
|
-
React.createElement("path", { d: "M10 2.5L12.5 7.5L17.5 8.25L13.75 12L14.5 17L10 14.5L5.5 17L6.25 12L2.5 8.25L7.5 7.5L10 2.5Z", stroke: color, strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })));
|
|
2
|
+
export const ShareIcon = ({ size = 24, color = 'rgba(4, 4, 5, 0.56)', className = '' }) => (React.createElement("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", className: className },
|
|
3
|
+
React.createElement("path", { d: "M13.5 7.5V4L22 11L13.5 18.5V14.5C6.5 14.5 2.00003 21 2.00003 21C2.00003 21 1.00003 14.5 5.00003 11C9.00003 7.5 13.5 7.5 13.5 7.5Z", stroke: color, strokeWidth: "2", strokeLinejoin: "round" })));
|
|
4
|
+
export const BookmarkIcon = ({ size = 24, color = 'rgba(4, 4, 5, 0.56)', fill = 'none', className = '' }) => (React.createElement("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", className: className },
|
|
5
|
+
React.createElement("path", { d: "M20.25 6.44444V22L12.3365 17.5556L4.25 22V6.44444C4.25 5.2657 4.71502 4.13524 5.54278 3.30175C6.37053 2.46825 7.4932 2 8.66381 2L15.8362 2C17.0068 2 18.1295 2.46825 18.9572 3.30175C19.785 4.13524 20.25 5.2657 20.25 6.44444Z", stroke: color, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", fill: fill })));
|
|
6
|
+
export const LikeIcon = ({ size = 24, color = 'rgba(4, 4, 5, 0.56)', fill = 'none', className = '' }) => (React.createElement("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", className: className },
|
|
7
|
+
React.createElement("path", { d: "M6.97059 10.8726V19.8699C6.97059 20.1682 6.85284 20.4543 6.64324 20.6652C6.43364 20.8761 6.14936 20.9946 5.85294 20.9946H3.61765C3.32123 20.9946 3.03695 20.8761 2.82735 20.6652C2.61775 20.4543 2.5 20.1682 2.5 19.8699V11.9973C2.5 11.699 2.61775 11.413 2.82735 11.202C3.03695 10.9911 3.32123 10.8726 3.61765 10.8726H6.97059ZM6.97059 10.8726C8.15626 10.8726 9.29337 10.3987 10.1318 9.55501C10.9702 8.71135 11.4412 7.5671 11.4412 6.37398V5.24932C11.4412 4.65277 11.6767 4.08064 12.0959 3.65881C12.5151 3.23698 13.0836 3 13.6765 3C14.2693 3 14.8379 3.23698 15.2571 3.65881C15.6763 4.08064 15.9118 4.65277 15.9118 5.24932V10.8726H19.2647C19.8575 10.8726 20.4261 11.1096 20.8453 11.5314C21.2645 11.9533 21.5 12.5254 21.5 13.122L20.3824 18.7453C20.2216 19.4352 19.9167 20.0276 19.5136 20.4333C19.1104 20.839 18.6308 21.036 18.1471 20.9946H10.3235C9.43427 20.9946 8.58144 20.6391 7.95264 20.0064C7.32384 19.3736 6.97059 18.5154 6.97059 17.6206", stroke: color, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", fill: fill })));
|
|
8
|
+
export const DislikeIcon = ({ size = 24, color = 'rgba(4, 4, 5, 0.56)', fill = 'none', className = '' }) => (React.createElement("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", className: className },
|
|
9
|
+
React.createElement("path", { d: "M6.97059 13.1274V4.13008C6.97059 3.8318 6.85284 3.54574 6.64324 3.33482C6.43364 3.12391 6.14936 3.00542 5.85294 3.00542H3.61765C3.32123 3.00542 3.03695 3.12391 2.82735 3.33482C2.61775 3.54574 2.5 3.8318 2.5 4.13008V12.0027C2.5 12.301 2.61775 12.587 2.82735 12.798C3.03695 13.0089 3.32123 13.1274 3.61765 13.1274H6.97059ZM6.97059 13.1274C8.15626 13.1274 9.29337 13.6013 10.1318 14.445C10.9702 15.2887 11.4412 16.4329 11.4412 17.626V18.7507C11.4412 19.3472 11.6767 19.9194 12.0959 20.3412C12.5151 20.763 13.0836 21 13.6765 21C14.2693 21 14.8379 20.763 15.2571 20.3412C15.6763 19.9194 15.9118 19.3472 15.9118 18.7507V13.1274H19.2647C19.8575 13.1274 20.4261 12.8904 20.8453 12.4686C21.2645 12.0467 21.5 11.4746 21.5 10.878L20.3824 5.25474C20.2216 4.56479 19.9167 3.97235 19.5136 3.56666C19.1104 3.16097 18.6308 2.964 18.1471 3.00542H10.3235C9.43427 3.00542 8.58144 3.36089 7.95264 3.99363C7.32384 4.62638 6.97059 5.48456 6.97059 6.3794", stroke: color, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", fill: fill })));
|
|
10
|
+
export const AIStarIcon = ({ size = 24, color = 'rgba(4, 4, 5, 0.56)', className = '' }) => (React.createElement("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", className: className },
|
|
11
|
+
React.createElement("path", { d: "M17.411 19.262C18.0488 19.262 18.6604 19.517 19.1114 19.971C19.5624 20.4249 19.8158 21.0406 19.8158 21.6826C19.8158 21.0406 20.0692 20.4249 20.5201 19.971C20.9711 19.517 21.5828 19.262 22.2206 19.262C21.5828 19.262 20.9711 19.0069 20.5201 18.553C20.0692 18.099 19.8158 17.4833 19.8158 16.8413C19.8158 17.4833 19.5624 18.099 19.1114 18.553C18.6604 19.0069 18.0488 19.262 17.411 19.262ZM17.411 4.73804C18.0488 4.73804 18.6604 4.99307 19.1114 5.44703C19.5624 5.90099 19.8158 6.51669 19.8158 7.15869C19.8158 6.51669 20.0692 5.90099 20.5201 5.44703C20.9711 4.99307 21.5828 4.73804 22.2206 4.73804C21.5828 4.73804 20.9711 4.483 20.5201 4.02904C20.0692 3.57508 19.8158 2.95938 19.8158 2.31738C19.8158 2.95938 19.5624 3.57508 19.1114 4.02904C18.6604 4.483 18.0488 4.73804 17.411 4.73804ZM8.99404 19.262C8.99404 17.336 9.75414 15.4889 11.1071 14.127C12.4601 12.7651 14.2951 12 16.2085 12C14.2951 12 12.4601 11.2349 11.1071 9.87302C9.75414 8.51114 8.99404 6.66403 8.99404 4.73804C8.99404 6.66403 8.23394 8.51114 6.88096 9.87302C5.52798 11.2349 3.69294 12 1.77954 12C3.69294 12 5.52798 12.7651 6.88096 14.127C8.23394 15.4889 8.99404 17.336 8.99404 19.262Z", stroke: color, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" })));
|
|
16
12
|
export const FilterIcon = ({ size = 20, color = 'currentColor', className = '' }) => (React.createElement("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", className: className },
|
|
17
13
|
React.createElement("path", { d: "M21 4C21 3.44771 20.5523 3 20 3L4 3C3.44772 3 3 3.44772 3 4L3.00001 6.227L3.00801 6.45C3.05782 7.11772 3.32957 7.74959 3.78001 8.245L6.95948 11.7417C7.62901 12.478 8.00001 13.4375 8.00001 14.4327V21C7.99997 21.1585 8.03758 21.3146 8.10975 21.4557C8.18192 21.5968 8.28658 21.7187 8.4151 21.8113C8.54362 21.904 8.69233 21.9648 8.84896 21.9888C9.0056 22.0127 9.16567 21.9991 9.31601 21.949L15.316 19.949L15.424 19.906C15.5962 19.8254 15.7419 19.6973 15.8439 19.5369C15.9459 19.3764 16.0001 19.1902 16 19V14.0711C16 13.0101 16.4216 11.9925 17.1719 11.2424L20.121 8.294C20.3998 8.01525 20.621 7.68427 20.7718 7.31999C20.9226 6.95571 21.0002 6.56527 21 6.171V4Z", fill: color })));
|
|
18
14
|
export const CloseIcon = ({ size = 16, color = 'currentColor', className = '' }) => (React.createElement("svg", { width: size, height: size, viewBox: "0 0 16 16", fill: "none", className: className },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/components/icons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,MAAM,CAAC,MAAM,SAAS,GAAwB,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/components/icons.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
.news-snippet {
|
|
2
2
|
background-color: #ffffff;
|
|
3
3
|
border-radius: 24px;
|
|
4
|
-
padding: 12px
|
|
4
|
+
padding-top: 12px;
|
|
5
|
+
padding-bottom: 8px;
|
|
5
6
|
margin-bottom: 12px;
|
|
6
7
|
box-shadow: 0 1px 4px rgba(4, 4, 5, 0.06);
|
|
7
8
|
cursor: pointer;
|
|
8
|
-
transition:
|
|
9
|
+
transition: opacity 0.2s ease;
|
|
9
10
|
}
|
|
10
11
|
|
|
11
12
|
.news-snippet:hover {
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
opacity: 0.95;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.news-snippet[draggable="true"]:active {
|
|
17
|
+
opacity: 0.5;
|
|
18
|
+
cursor: grabbing;
|
|
14
19
|
}
|
|
15
20
|
|
|
16
21
|
.news-snippet__content {
|
|
@@ -55,166 +60,35 @@
|
|
|
55
60
|
}
|
|
56
61
|
|
|
57
62
|
.news-snippet__title {
|
|
58
|
-
font-size:
|
|
59
|
-
font-weight:
|
|
60
|
-
line-height:
|
|
63
|
+
font-size: 20px;
|
|
64
|
+
font-weight: 700;
|
|
65
|
+
line-height: 24px;
|
|
61
66
|
color: #040405;
|
|
62
67
|
margin: 0;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
font-size: 15px;
|
|
67
|
-
font-weight: 400;
|
|
68
|
-
line-height: 20px;
|
|
69
|
-
color: rgba(4, 4, 5, 0.56);
|
|
70
|
-
margin: 0;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
.news-snippet__cover {
|
|
74
|
-
width: 100%;
|
|
75
|
-
border-radius: 12px;
|
|
68
|
+
display: -webkit-box;
|
|
69
|
+
-webkit-line-clamp: 3;
|
|
70
|
+
-webkit-box-orient: vertical;
|
|
76
71
|
overflow: hidden;
|
|
77
|
-
margin-top: 4px;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
.news-snippet__cover img {
|
|
81
|
-
width: 100%;
|
|
82
|
-
height: auto;
|
|
83
|
-
display: block;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
.news-snippet__recommendation {
|
|
87
|
-
background: rgba(4, 4, 5, 0.04);
|
|
88
|
-
border-radius: 12px;
|
|
89
|
-
padding: 12px;
|
|
90
|
-
display: flex;
|
|
91
|
-
flex-direction: column;
|
|
92
|
-
gap: 4px;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
.news-snippet__recommendation-label {
|
|
96
|
-
font-size: 12px;
|
|
97
|
-
font-weight: 600;
|
|
98
|
-
line-height: 16px;
|
|
99
|
-
color: rgba(4, 4, 5, 0.56);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
.news-snippet__recommendation-text {
|
|
103
|
-
font-size: 15px;
|
|
104
|
-
font-weight: 500;
|
|
105
|
-
line-height: 20px;
|
|
106
|
-
color: #040405;
|
|
107
|
-
margin: 0;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
.news-snippet__recommendation-price {
|
|
111
|
-
font-size: 14px;
|
|
112
|
-
font-weight: 500;
|
|
113
|
-
line-height: 18px;
|
|
114
|
-
color: #7863f6;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
.news-snippet__stocks {
|
|
118
|
-
display: flex;
|
|
119
|
-
flex-direction: column;
|
|
120
|
-
gap: 8px;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
.news-snippet__stock {
|
|
124
|
-
display: flex;
|
|
125
|
-
align-items: center;
|
|
126
|
-
gap: 8px;
|
|
127
|
-
padding: 8px;
|
|
128
|
-
background: rgba(4, 4, 5, 0.04);
|
|
129
|
-
border-radius: 8px;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
.news-snippet__stock-logo {
|
|
133
|
-
width: 24px;
|
|
134
|
-
height: 24px;
|
|
135
|
-
border-radius: 50%;
|
|
136
|
-
object-fit: cover;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
.news-snippet__stock-info {
|
|
140
|
-
flex: 1;
|
|
141
|
-
display: flex;
|
|
142
|
-
flex-direction: column;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
.news-snippet__stock-symbol {
|
|
146
|
-
font-size: 14px;
|
|
147
|
-
font-weight: 600;
|
|
148
|
-
line-height: 18px;
|
|
149
|
-
color: #040405;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
.news-snippet__stock-price {
|
|
153
|
-
font-size: 12px;
|
|
154
|
-
font-weight: 500;
|
|
155
|
-
line-height: 16px;
|
|
156
|
-
color: rgba(4, 4, 5, 0.56);
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
.news-snippet__stock-change {
|
|
160
|
-
font-size: 14px;
|
|
161
|
-
font-weight: 600;
|
|
162
|
-
line-height: 18px;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
.news-snippet__stock-change--positive {
|
|
166
|
-
color: #22c55e;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
.news-snippet__stock-change--negative {
|
|
170
|
-
color: #ef4444;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
.news-snippet__tags {
|
|
174
|
-
display: flex;
|
|
175
|
-
flex-wrap: wrap;
|
|
176
|
-
gap: 6px;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
.news-snippet__tag {
|
|
180
|
-
padding: 4px 10px;
|
|
181
|
-
background: rgba(4, 4, 5, 0.06);
|
|
182
|
-
border-radius: 6px;
|
|
183
|
-
font-size: 12px;
|
|
184
|
-
font-weight: 500;
|
|
185
|
-
line-height: 16px;
|
|
186
|
-
color: #040405;
|
|
187
72
|
}
|
|
188
73
|
|
|
74
|
+
/* Sources - now appear after title */
|
|
189
75
|
.news-snippet__sources {
|
|
190
76
|
display: flex;
|
|
191
77
|
align-items: center;
|
|
192
|
-
gap:
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
.news-snippet__sources-label {
|
|
196
|
-
font-size: 12px;
|
|
197
|
-
font-weight: 500;
|
|
198
|
-
line-height: 16px;
|
|
199
|
-
color: rgba(4, 4, 5, 0.56);
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
.news-snippet__sources-list {
|
|
203
|
-
display: flex;
|
|
204
|
-
gap: 8px;
|
|
78
|
+
gap: 16px;
|
|
205
79
|
flex-wrap: wrap;
|
|
206
80
|
}
|
|
207
81
|
|
|
208
82
|
.news-snippet__source {
|
|
209
83
|
display: flex;
|
|
210
84
|
align-items: center;
|
|
211
|
-
gap:
|
|
85
|
+
gap: 6px;
|
|
212
86
|
}
|
|
213
87
|
|
|
214
88
|
.news-snippet__source-logo {
|
|
215
89
|
width: 16px;
|
|
216
90
|
height: 16px;
|
|
217
|
-
border-radius:
|
|
91
|
+
border-radius: 10.67px;
|
|
218
92
|
border: 0.67px solid rgba(4, 4, 5, 0.08);
|
|
219
93
|
object-fit: cover;
|
|
220
94
|
}
|
|
@@ -230,30 +104,75 @@
|
|
|
230
104
|
}
|
|
231
105
|
|
|
232
106
|
.news-snippet__source-name {
|
|
233
|
-
font-size:
|
|
107
|
+
font-size: 14px;
|
|
234
108
|
font-weight: 500;
|
|
235
109
|
line-height: 16px;
|
|
236
|
-
|
|
110
|
+
letter-spacing: -0.14px;
|
|
111
|
+
color: #040405;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/* Content text */
|
|
115
|
+
.news-snippet__content-text {
|
|
116
|
+
font-size: 14px;
|
|
117
|
+
font-weight: 400;
|
|
118
|
+
line-height: 20px;
|
|
119
|
+
color: rgba(4, 4, 5, 0.72);
|
|
120
|
+
margin: 0;
|
|
121
|
+
display: -webkit-box;
|
|
122
|
+
-webkit-line-clamp: 4;
|
|
123
|
+
-webkit-box-orient: vertical;
|
|
124
|
+
overflow: hidden;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/* AI Insight (replaces summary) */
|
|
128
|
+
.news-snippet__ai-insight {
|
|
129
|
+
display: flex;
|
|
130
|
+
gap: 8px;
|
|
131
|
+
padding: 12px;
|
|
132
|
+
background: linear-gradient(135deg, rgba(120, 99, 246, 0.08) 0%, rgba(120, 99, 246, 0.04) 100%);
|
|
133
|
+
border: 1px solid rgba(120, 99, 246, 0.12);
|
|
134
|
+
border-radius: 12px;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.news-snippet__ai-insight-icon {
|
|
138
|
+
font-size: 16px;
|
|
139
|
+
flex-shrink: 0;
|
|
140
|
+
line-height: 20px;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.news-snippet__ai-insight-text {
|
|
144
|
+
font-size: 14px;
|
|
145
|
+
font-weight: 400;
|
|
146
|
+
line-height: 20px;
|
|
147
|
+
color: rgba(4, 4, 5, 0.88);
|
|
148
|
+
margin: 0;
|
|
237
149
|
}
|
|
238
150
|
|
|
151
|
+
/* Action Bar */
|
|
239
152
|
.news-snippet__actions {
|
|
240
153
|
display: flex;
|
|
241
154
|
align-items: center;
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
155
|
+
justify-content: space-between;
|
|
156
|
+
height: 40px;
|
|
157
|
+
padding: 0 8px;
|
|
245
158
|
margin-top: 8px;
|
|
246
159
|
}
|
|
247
160
|
|
|
161
|
+
.news-snippet__actions-left,
|
|
162
|
+
.news-snippet__actions-right {
|
|
163
|
+
display: flex;
|
|
164
|
+
align-items: center;
|
|
165
|
+
gap: 8px;
|
|
166
|
+
}
|
|
167
|
+
|
|
248
168
|
.news-snippet__action-btn {
|
|
249
169
|
display: flex;
|
|
250
170
|
align-items: center;
|
|
251
171
|
justify-content: center;
|
|
252
|
-
|
|
253
|
-
height: 36px;
|
|
172
|
+
padding: 8px;
|
|
254
173
|
border: none;
|
|
255
174
|
background: transparent;
|
|
256
|
-
border-radius:
|
|
175
|
+
border-radius: 40px;
|
|
257
176
|
cursor: pointer;
|
|
258
177
|
transition: background-color 0.2s ease;
|
|
259
178
|
}
|
|
@@ -262,7 +181,7 @@
|
|
|
262
181
|
background: rgba(4, 4, 5, 0.06);
|
|
263
182
|
}
|
|
264
183
|
|
|
265
|
-
.news-snippet__action-btn
|
|
266
|
-
|
|
184
|
+
.news-snippet__action-btn:active {
|
|
185
|
+
transform: scale(0.95);
|
|
267
186
|
}
|
|
268
187
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NewsSnippet.d.ts","sourceRoot":"","sources":["../../src/snippets/NewsSnippet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"NewsSnippet.d.ts","sourceRoot":"","sources":["../../src/snippets/NewsSnippet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGpC,OAAO,mBAAmB,CAAC;AAE3B,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;IAElB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;CAC1C;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA2JlD,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ShareIcon, BookmarkIcon, LikeIcon, DislikeIcon, AIStarIcon } from '../components/icons';
|
|
3
3
|
import { formatTimestamp } from '../utils/formatTimestamp';
|
|
4
|
-
import { theme } from '../utils/theme';
|
|
5
4
|
import './NewsSnippet.css';
|
|
6
5
|
export const NewsSnippet = ({ news, onPress, onShare, onBookmark, onLike, onDislike, onAI, showShareIcon = true, showBookmarkIcon = true, showLikeIcon = true, showDislikeIcon = true, showAIIcon = true, isLiked = false, isDisliked = false, isBookmarked = false, draggable = false, onDragStart, onDragEnd }) => {
|
|
7
6
|
const { date, time } = formatTimestamp(news.timestamp);
|
|
@@ -19,35 +18,25 @@ export const NewsSnippet = ({ news, onPress, onShare, onBookmark, onLike, onDisl
|
|
|
19
18
|
date && time && React.createElement("span", { className: "news-snippet__divider" }, "\u2022"),
|
|
20
19
|
time && React.createElement("span", { className: "news-snippet__time" }, time)))),
|
|
21
20
|
React.createElement("h3", { className: "news-snippet__title" }, news.title),
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
React.createElement("
|
|
25
|
-
news.
|
|
26
|
-
|
|
27
|
-
React.createElement("
|
|
28
|
-
|
|
29
|
-
news.stocks && news.stocks.length > 0 && (React.createElement("div", { className: "news-snippet__stocks" }, news.stocks.map((stock, index) => (React.createElement("div", { key: index, className: "news-snippet__stock" },
|
|
30
|
-
stock.logo && (React.createElement("img", { src: stock.logo, alt: stock.symbol, className: "news-snippet__stock-logo" })),
|
|
31
|
-
React.createElement("div", { className: "news-snippet__stock-info" },
|
|
32
|
-
React.createElement("span", { className: "news-snippet__stock-symbol" }, stock.symbol),
|
|
33
|
-
React.createElement("span", { className: "news-snippet__stock-price" }, stock.price)),
|
|
34
|
-
React.createElement("span", { className: `news-snippet__stock-change news-snippet__stock-change--${stock.changeType}` }, stock.change)))))),
|
|
35
|
-
news.tags && news.tags.length > 0 && (React.createElement("div", { className: "news-snippet__tags" }, news.tags.map((tag, index) => (React.createElement("span", { key: index, className: "news-snippet__tag" }, tag))))),
|
|
36
|
-
displaySources.length > 0 && (React.createElement("div", { className: "news-snippet__sources" },
|
|
37
|
-
React.createElement("span", { className: "news-snippet__sources-label" }, "Sources:"),
|
|
38
|
-
React.createElement("div", { className: "news-snippet__sources-list" }, displaySources.map((source, index) => (React.createElement("div", { key: index, className: "news-snippet__source" },
|
|
39
|
-
source.logo ? (React.createElement("img", { src: source.logo, alt: source.name, className: "news-snippet__source-logo" })) : (React.createElement("div", { className: "news-snippet__source-logo news-snippet__source-logo--fallback" }, source.name.charAt(0).toUpperCase())),
|
|
40
|
-
React.createElement("span", { className: "news-snippet__source-name" }, source.name)))))))),
|
|
21
|
+
displaySources.length > 0 && (React.createElement("div", { className: "news-snippet__sources" }, displaySources.map((source, index) => (React.createElement("div", { key: index, className: "news-snippet__source" },
|
|
22
|
+
source.logo ? (React.createElement("img", { src: source.logo, alt: source.name, className: "news-snippet__source-logo" })) : (React.createElement("div", { className: "news-snippet__source-logo news-snippet__source-logo--fallback" }, source.name.charAt(0).toUpperCase())),
|
|
23
|
+
React.createElement("span", { className: "news-snippet__source-name" }, source.name)))))),
|
|
24
|
+
news.content && (React.createElement("p", { className: "news-snippet__content-text" }, news.content)),
|
|
25
|
+
news.summary && (React.createElement("div", { className: "news-snippet__ai-insight" },
|
|
26
|
+
React.createElement("div", { className: "news-snippet__ai-insight-icon" }, "\u2728"),
|
|
27
|
+
React.createElement("p", { className: "news-snippet__ai-insight-text" }, news.summary)))),
|
|
41
28
|
React.createElement("div", { className: "news-snippet__actions" },
|
|
42
|
-
|
|
43
|
-
React.createElement(
|
|
44
|
-
|
|
45
|
-
React.createElement(
|
|
46
|
-
|
|
47
|
-
React.createElement(
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
29
|
+
React.createElement("div", { className: "news-snippet__actions-left" },
|
|
30
|
+
showShareIcon && (React.createElement("button", { className: "news-snippet__action-btn", onClick: (e) => { e.stopPropagation(); onShare?.(); }, "aria-label": "Share" },
|
|
31
|
+
React.createElement(ShareIcon, { size: 24, color: "rgba(4, 4, 5, 0.56)" }))),
|
|
32
|
+
showBookmarkIcon && (React.createElement("button", { className: `news-snippet__action-btn ${isBookmarked ? 'news-snippet__action-btn--active' : ''}`, onClick: (e) => { e.stopPropagation(); onBookmark?.(); }, "aria-label": "Bookmark" },
|
|
33
|
+
React.createElement(BookmarkIcon, { size: 24, color: isBookmarked ? '#7863f6' : 'rgba(4, 4, 5, 0.56)', fill: isBookmarked ? '#7863f6' : 'none' }))),
|
|
34
|
+
showAIIcon && (React.createElement("button", { className: "news-snippet__action-btn", onClick: (e) => { e.stopPropagation(); onAI?.(); }, "aria-label": "AI Insights" },
|
|
35
|
+
React.createElement(AIStarIcon, { size: 24, color: "rgba(4, 4, 5, 0.56)" })))),
|
|
36
|
+
React.createElement("div", { className: "news-snippet__actions-right" },
|
|
37
|
+
showDislikeIcon && (React.createElement("button", { className: `news-snippet__action-btn ${isDisliked ? 'news-snippet__action-btn--active' : ''}`, onClick: (e) => { e.stopPropagation(); onDislike?.(); }, "aria-label": "Dislike" },
|
|
38
|
+
React.createElement(DislikeIcon, { size: 24, color: isDisliked ? '#ef4444' : 'rgba(4, 4, 5, 0.56)', fill: isDisliked ? '#ef4444' : 'none' }))),
|
|
39
|
+
showLikeIcon && (React.createElement("button", { className: `news-snippet__action-btn ${isLiked ? 'news-snippet__action-btn--active' : ''}`, onClick: (e) => { e.stopPropagation(); onLike?.(); }, "aria-label": "Like" },
|
|
40
|
+
React.createElement(LikeIcon, { size: 24, color: isLiked ? '#22c55e' : 'rgba(4, 4, 5, 0.56)', fill: isLiked ? '#22c55e' : 'none' })))))));
|
|
52
41
|
};
|
|
53
42
|
//# sourceMappingURL=NewsSnippet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NewsSnippet.js","sourceRoot":"","sources":["../../src/snippets/NewsSnippet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,
|
|
1
|
+
{"version":3,"file":"NewsSnippet.js","sourceRoot":"","sources":["../../src/snippets/NewsSnippet.tsx"],"names":[],"mappings":"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"}
|