finsignal-feed-explore 2.3.3 → 2.3.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 +54 -0
- package/dist/FeedList.css +3 -0
- package/dist/components/FilterButton.css +57 -0
- package/dist/components/FilterButton.d.ts +14 -0
- package/dist/components/FilterButton.d.ts.map +1 -0
- package/dist/components/FilterButton.js +23 -0
- package/dist/components/FilterButton.js.map +1 -0
- package/dist/hooks/useFeedData.d.ts.map +1 -1
- package/dist/hooks/useFeedData.js +11 -1
- package/dist/hooks/useFeedData.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/newsfeed.css +3 -0
- package/dist/snippets/NewsSnippet.css +0 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -90,6 +90,60 @@ import { FiltersOverlay } from 'finsignal-feed-explore';
|
|
|
90
90
|
/>
|
|
91
91
|
```
|
|
92
92
|
|
|
93
|
+
### FilterButton
|
|
94
|
+
|
|
95
|
+
Self-contained filter button with three visual states that works seamlessly with `FeedList`.
|
|
96
|
+
|
|
97
|
+
```tsx
|
|
98
|
+
import { FeedList, FilterButton } from 'finsignal-feed-explore';
|
|
99
|
+
import { useState } from 'react';
|
|
100
|
+
|
|
101
|
+
function NewsSidebar() {
|
|
102
|
+
const [isFiltersOpen, setIsFiltersOpen] = useState(false);
|
|
103
|
+
const [filterCount, setFilterCount] = useState(0);
|
|
104
|
+
|
|
105
|
+
return (
|
|
106
|
+
<div>
|
|
107
|
+
{/* Header with FilterButton */}
|
|
108
|
+
<header>
|
|
109
|
+
<FilterButton
|
|
110
|
+
isFiltersOpen={isFiltersOpen}
|
|
111
|
+
filterCount={filterCount}
|
|
112
|
+
onClick={() => setIsFiltersOpen(!isFiltersOpen)}
|
|
113
|
+
/>
|
|
114
|
+
<h2>Explore</h2>
|
|
115
|
+
</header>
|
|
116
|
+
|
|
117
|
+
{/* FeedList synced with FilterButton */}
|
|
118
|
+
<FeedList
|
|
119
|
+
isFiltersOpen={isFiltersOpen}
|
|
120
|
+
onFiltersOpenChange={setIsFiltersOpen}
|
|
121
|
+
onFiltersChange={(data) => setFilterCount(data.count)}
|
|
122
|
+
onNewsClick={(news) => console.log('Clicked:', news)}
|
|
123
|
+
/>
|
|
124
|
+
</div>
|
|
125
|
+
);
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**Visual States:**
|
|
130
|
+
1. **Normal** - Filter icon (no active filters)
|
|
131
|
+
2. **With Badge** - Filter icon + count badge (has active filters)
|
|
132
|
+
3. **Close** - X icon (filters overlay is open)
|
|
133
|
+
|
|
134
|
+
**Props:**
|
|
135
|
+
|
|
136
|
+
| Prop | Type | Required | Description |
|
|
137
|
+
|------|------|----------|-------------|
|
|
138
|
+
| `isFiltersOpen` | `boolean` | Yes | Whether filters overlay is open |
|
|
139
|
+
| `filterCount` | `number` | Yes | Number of active filters to show in badge |
|
|
140
|
+
| `onClick` | `() => void` | Yes | Click handler |
|
|
141
|
+
| `className` | `string` | No | Additional CSS class |
|
|
142
|
+
| `closeIconColor` | `string` | No | Color for close icon (default: `#7863F6`) |
|
|
143
|
+
| `filterIconColor` | `string` | No | Color for filter icon (default: `#242429`) |
|
|
144
|
+
| `badgeBackgroundColor` | `string` | No | Badge background color (default: `#2d3339`) |
|
|
145
|
+
| `badgeTextColor` | `string` | No | Badge text color (default: `#ffffff`) |
|
|
146
|
+
|
|
93
147
|
## Features
|
|
94
148
|
|
|
95
149
|
- ✅ Beautiful news snippets based on modern design system
|
package/dist/FeedList.css
CHANGED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
.filter-button {
|
|
2
|
+
width: 20px;
|
|
3
|
+
height: 20px;
|
|
4
|
+
display: flex;
|
|
5
|
+
align-items: center;
|
|
6
|
+
justify-content: center;
|
|
7
|
+
background: none;
|
|
8
|
+
border: none;
|
|
9
|
+
padding: 0;
|
|
10
|
+
cursor: pointer;
|
|
11
|
+
position: relative;
|
|
12
|
+
transition: opacity 0.2s ease;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.filter-button:hover {
|
|
16
|
+
opacity: 0.7;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.filter-button:active {
|
|
20
|
+
opacity: 0.5;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.filter-button:focus {
|
|
24
|
+
outline: none;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.filter-button:focus-visible {
|
|
28
|
+
outline: 2px solid #7863F6;
|
|
29
|
+
outline-offset: 2px;
|
|
30
|
+
border-radius: 4px;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/* Badge styles */
|
|
34
|
+
.filter-button--with-badge {
|
|
35
|
+
position: relative;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.filter-button__badge {
|
|
39
|
+
position: absolute;
|
|
40
|
+
top: -2px;
|
|
41
|
+
right: -2px;
|
|
42
|
+
border-radius: 12px;
|
|
43
|
+
min-width: 12px;
|
|
44
|
+
height: 12px;
|
|
45
|
+
display: flex;
|
|
46
|
+
align-items: center;
|
|
47
|
+
justify-content: center;
|
|
48
|
+
padding: 0 3px;
|
|
49
|
+
pointer-events: none;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.filter-button__badge-text {
|
|
53
|
+
font-size: 8px;
|
|
54
|
+
font-weight: 600;
|
|
55
|
+
line-height: 12px;
|
|
56
|
+
letter-spacing: -0.2px;
|
|
57
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './FilterButton.css';
|
|
3
|
+
export interface FilterButtonProps {
|
|
4
|
+
isFiltersOpen: boolean;
|
|
5
|
+
filterCount: number;
|
|
6
|
+
onClick: () => void;
|
|
7
|
+
className?: string;
|
|
8
|
+
closeIconColor?: string;
|
|
9
|
+
filterIconColor?: string;
|
|
10
|
+
badgeBackgroundColor?: string;
|
|
11
|
+
badgeTextColor?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare const FilterButton: React.FC<FilterButtonProps>;
|
|
14
|
+
//# sourceMappingURL=FilterButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterButton.d.ts","sourceRoot":"","sources":["../../src/components/FilterButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,oBAAoB,CAAC;AAE5B,MAAM,WAAW,iBAAiB;IAIhC,aAAa,EAAE,OAAO,CAAC;IAKvB,WAAW,EAAE,MAAM,CAAC;IAKpB,OAAO,EAAE,MAAM,IAAI,CAAC;IAKpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAMnB,cAAc,CAAC,EAAE,MAAM,CAAC;IAMxB,eAAe,CAAC,EAAE,MAAM,CAAC;IAMzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAM9B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AA4BD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAiFpD,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './FilterButton.css';
|
|
3
|
+
export const FilterButton = ({ isFiltersOpen, filterCount, onClick, className = '', closeIconColor = '#7863F6', filterIconColor = '#242429', badgeBackgroundColor = '#2d3339', badgeTextColor = '#ffffff' }) => {
|
|
4
|
+
if (isFiltersOpen) {
|
|
5
|
+
return (React.createElement("button", { onClick: onClick, className: `filter-button ${className}`, "aria-label": "Close filters" },
|
|
6
|
+
React.createElement("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
|
|
7
|
+
React.createElement("path", { d: "M15 5L5 15M5 5L15 15", stroke: closeIconColor, strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }))));
|
|
8
|
+
}
|
|
9
|
+
if (filterCount > 0) {
|
|
10
|
+
return (React.createElement("button", { onClick: onClick, className: `filter-button filter-button--with-badge ${className}`, "aria-label": `Open filters (${filterCount} applied)` },
|
|
11
|
+
React.createElement("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
|
|
12
|
+
React.createElement("path", { d: "M2.5 5H17.5M5 10H15M7.5 15H12.5", stroke: filterIconColor, strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })),
|
|
13
|
+
React.createElement("div", { className: "filter-button__badge", style: {
|
|
14
|
+
backgroundColor: badgeBackgroundColor,
|
|
15
|
+
color: badgeTextColor
|
|
16
|
+
} },
|
|
17
|
+
React.createElement("span", { className: "filter-button__badge-text" }, filterCount))));
|
|
18
|
+
}
|
|
19
|
+
return (React.createElement("button", { onClick: onClick, className: `filter-button ${className}`, "aria-label": "Open filters" },
|
|
20
|
+
React.createElement("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
|
|
21
|
+
React.createElement("path", { d: "M2.5 5H17.5M5 10H15M7.5 15H12.5", stroke: filterIconColor, strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }))));
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=FilterButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterButton.js","sourceRoot":"","sources":["../../src/components/FilterButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,oBAAoB,CAAC;AA0E5B,MAAM,CAAC,MAAM,YAAY,GAAgC,CAAC,EACxD,aAAa,EACb,WAAW,EACX,OAAO,EACP,SAAS,GAAG,EAAE,EACd,cAAc,GAAG,SAAS,EAC1B,eAAe,GAAG,SAAS,EAC3B,oBAAoB,GAAG,SAAS,EAChC,cAAc,GAAG,SAAS,EAC3B,EAAE,EAAE;IAEH,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CACL,gCACE,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,iBAAiB,SAAS,EAAE,gBAC5B,eAAe;YAE1B,6BAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B;gBAC5F,8BACE,CAAC,EAAC,sBAAsB,EACxB,MAAM,EAAE,cAAc,EACtB,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,GACtB,CACE,CACC,CACV,CAAC;IACJ,CAAC;IAGD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,CACL,gCACE,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,2CAA2C,SAAS,EAAE,gBACrD,iBAAiB,WAAW,WAAW;YAEnD,6BAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B;gBAC5F,8BACE,CAAC,EAAC,iCAAiC,EACnC,MAAM,EAAE,eAAe,EACvB,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,GACtB,CACE;YACN,6BACE,SAAS,EAAC,sBAAsB,EAChC,KAAK,EAAE;oBACL,eAAe,EAAE,oBAAoB;oBACrC,KAAK,EAAE,cAAc;iBACtB;gBAED,8BAAM,SAAS,EAAC,2BAA2B,IACxC,WAAW,CACP,CACH,CACC,CACV,CAAC;IACJ,CAAC;IAGD,OAAO,CACL,gCACE,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,iBAAiB,SAAS,EAAE,gBAC5B,cAAc;QAEzB,6BAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B;YAC5F,8BACE,CAAC,EAAC,iCAAiC,EACnC,MAAM,EAAE,eAAe,EACvB,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,GACtB,CACE,CACC,CACV,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFeedData.d.ts","sourceRoot":"","sources":["../../src/hooks/useFeedData.ts"],"names":[],"mappings":"AACA,OAAO,EAA6B,QAAQ,EAAE,MAAM,UAAU,CAAC;AAG/D,UAAU,kBAAkB;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,iBAAiB;IACzB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,wBAAgB,WAAW,CAAC,EAC1B,MAAwB,EACxB,OAAY,EACZ,KAAK,EACL,KAAU,EACX,EAAE,kBAAkB,GAAG,iBAAiB,
|
|
1
|
+
{"version":3,"file":"useFeedData.d.ts","sourceRoot":"","sources":["../../src/hooks/useFeedData.ts"],"names":[],"mappings":"AACA,OAAO,EAA6B,QAAQ,EAAE,MAAM,UAAU,CAAC;AAG/D,UAAU,kBAAkB;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,iBAAiB;IACzB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,wBAAgB,WAAW,CAAC,EAC1B,MAAwB,EACxB,OAAY,EACZ,KAAK,EACL,KAAU,EACX,EAAE,kBAAkB,GAAG,iBAAiB,CAwHxC"}
|
|
@@ -29,14 +29,24 @@ export function useFeedData({ apiUrl = DEFAULT_API_URL, filters = [], query, lim
|
|
|
29
29
|
throw new Error(`HTTP error! status: ${response.status}`);
|
|
30
30
|
}
|
|
31
31
|
const data = await response.json();
|
|
32
|
+
const isRegularSearch = !!query;
|
|
33
|
+
const isFilterSearch = !query && filters.length > 0;
|
|
32
34
|
const mappedItems = (data.items || []).map(item => {
|
|
33
35
|
const rawItem = item;
|
|
36
|
+
let summary;
|
|
37
|
+
if (isRegularSearch) {
|
|
38
|
+
summary = rawItem.metadata?.preprocessing?.results?.ai_annotation?.annotations?.summary;
|
|
39
|
+
}
|
|
40
|
+
else if (isFilterSearch) {
|
|
41
|
+
summary = rawItem.preprocessing?.ai_annotation?.annotations?.summary;
|
|
42
|
+
}
|
|
43
|
+
summary = summary || rawItem.newsData?.summary || rawItem.metadata?.newsData?.summary || item.summary;
|
|
34
44
|
return {
|
|
35
45
|
...item,
|
|
36
46
|
id: item.id || rawItem.content_id,
|
|
37
47
|
content: item.content || rawItem.body || '',
|
|
38
48
|
sourceName: rawItem.newsData?.sourceName || rawItem.metadata?.newsData?.sourceName || rawItem.source?.sourceName || rawItem.sourceName,
|
|
39
|
-
summary
|
|
49
|
+
summary,
|
|
40
50
|
timestamp: rawItem.createdAt || item.timestamp || rawItem.created_at || rawItem.publishedAt
|
|
41
51
|
};
|
|
42
52
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFeedData.js","sourceRoot":"","sources":["../../src/hooks/useFeedData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAkBnD,MAAM,UAAU,WAAW,CAAC,EAC1B,MAAM,GAAG,eAAe,EACxB,OAAO,GAAG,EAAE,EACZ,KAAK,EACL,KAAK,GAAG,EAAE,EACS;IACnB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAa,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAExC,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,EAAE,QAAiB,KAAK,EAAE,EAAE;QAC7D,IAAI,SAAS;YAAE,OAAO;QAEtB,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YACrC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YACtC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEtD,IAAI,KAAK;gBAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACtC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;YACpE,CAAC;YAGD,MAAM,QAAQ,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC5C,CAAC,CAAC,wBAAwB;gBAC1B,CAAC,CAAC,uBAAuB,CAAC;YAE5B,MAAM,GAAG,GAAG,GAAG,MAAM,GAAG,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;YAExD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAElC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,IAAI,GAAiB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAGjD,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAChD,MAAM,OAAO,GAAG,IAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"useFeedData.js","sourceRoot":"","sources":["../../src/hooks/useFeedData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAkBnD,MAAM,UAAU,WAAW,CAAC,EAC1B,MAAM,GAAG,eAAe,EACxB,OAAO,GAAG,EAAE,EACZ,KAAK,EACL,KAAK,GAAG,EAAE,EACS;IACnB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAa,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAExC,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,EAAE,QAAiB,KAAK,EAAE,EAAE;QAC7D,IAAI,SAAS;YAAE,OAAO;QAEtB,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YACrC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YACtC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEtD,IAAI,KAAK;gBAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACtC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;YACpE,CAAC;YAGD,MAAM,QAAQ,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC5C,CAAC,CAAC,wBAAwB;gBAC1B,CAAC,CAAC,uBAAuB,CAAC;YAE5B,MAAM,GAAG,GAAG,GAAG,MAAM,GAAG,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;YAExD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAElC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,IAAI,GAAiB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAGjD,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC;YAChC,MAAM,cAAc,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAGpD,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAChD,MAAM,OAAO,GAAG,IAAW,CAAC;gBAG5B,IAAI,OAA2B,CAAC;gBAChC,IAAI,eAAe,EAAE,CAAC;oBAEpB,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,CAAC;gBAC1F,CAAC;qBAAM,IAAI,cAAc,EAAE,CAAC;oBAE1B,OAAO,GAAG,OAAO,CAAC,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,CAAC;gBACvE,CAAC;gBAGD,OAAO,GAAG,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;gBAEtG,OAAO;oBACL,GAAG,IAAI;oBACP,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,OAAO,CAAC,UAAU;oBACjC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,IAAI,EAAE;oBAC3C,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,UAAU,IAAI,OAAO,CAAC,UAAU;oBACtI,OAAO;oBACP,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,WAAW;iBAC5F,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,IAAI,KAAK,EAAE,CAAC;gBACV,QAAQ,CAAC,WAAW,CAAC,CAAC;gBACtB,SAAS,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC;gBAC5C,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;YAClC,CAAC;YAGD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACnC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACjC,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACjE,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,WAAW,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;YAC3C,CAAC;QAEH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;YAClE,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAGvD,SAAS,CAAC,GAAG,EAAE;QACb,SAAS,CAAC,CAAC,CAAC,CAAC;QACb,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,SAAS,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAEvC,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACtC,IAAI,CAAC,OAAO,IAAI,SAAS;YAAE,OAAO;QAClC,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAEpC,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACrC,SAAS,CAAC,CAAC,CAAC,CAAC;QACb,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,OAAO;QACL,KAAK;QACL,SAAS;QACT,OAAO;QACP,KAAK;QACL,QAAQ;QACR,OAAO;KACR,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,5 +14,7 @@ export { formatTimestamp } from './utils/formatTimestamp';
|
|
|
14
14
|
export { theme } from './utils/theme';
|
|
15
15
|
export { Chip } from './components/Chip';
|
|
16
16
|
export type { ChipProps } from './components/Chip';
|
|
17
|
+
export { FilterButton } from './components/FilterButton';
|
|
18
|
+
export type { FilterButtonProps } from './components/FilterButton';
|
|
17
19
|
export * from './components/icons';
|
|
18
20
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGpE,YAAY,EACV,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,uBAAuB,EACxB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGtC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGpE,YAAY,EACV,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,uBAAuB,EACxB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGtC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGnE,cAAc,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -9,5 +9,6 @@ export { DEFAULT_API_URL } from './constants/api';
|
|
|
9
9
|
export { formatTimestamp } from './utils/formatTimestamp';
|
|
10
10
|
export { theme } from './utils/theme';
|
|
11
11
|
export { Chip } from './components/Chip';
|
|
12
|
+
export { FilterButton } from './components/FilterButton';
|
|
12
13
|
export * from './components/icons';
|
|
13
14
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAc1D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGtC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAc1D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGtC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAGzC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAIzD,cAAc,oBAAoB,CAAC"}
|
package/dist/newsfeed.css
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "finsignal-feed-explore",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.4",
|
|
4
4
|
"description": "News feed explorer components for React web applications",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"README.md"
|
|
11
11
|
],
|
|
12
12
|
"scripts": {
|
|
13
|
-
"build": "tsc && cp src/FeedList.css dist/FeedList.css && cp src/FeedList.css dist/newsfeed.css && cp src/components/Chip.css dist/components/Chip.css && cp src/filters/FiltersOverlay.css dist/filters/FiltersOverlay.css && cp src/snippets/NewsSnippet.css dist/snippets/NewsSnippet.css",
|
|
13
|
+
"build": "tsc && cp src/FeedList.css dist/FeedList.css && cp src/FeedList.css dist/newsfeed.css && cp src/components/Chip.css dist/components/Chip.css && cp src/components/FilterButton.css dist/components/FilterButton.css && cp src/filters/FiltersOverlay.css dist/filters/FiltersOverlay.css && cp src/snippets/NewsSnippet.css dist/snippets/NewsSnippet.css",
|
|
14
14
|
"prepublishOnly": "npm run build"
|
|
15
15
|
},
|
|
16
16
|
"keywords": [
|