bdsa-react-components 0.1.26 → 0.2.0
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/CURSOR_INTEGRATION.md +47 -8
- package/dist/auth/DsaAuthProvider.d.ts.map +1 -1
- package/dist/auth/DsaAuthStore.d.ts.map +1 -1
- package/dist/components/ThumbnailGrid/ThumbnailGrid.d.ts +64 -5
- package/dist/components/ThumbnailGrid/ThumbnailGrid.d.ts.map +1 -1
- package/dist/index.cjs +38 -38
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10232 -10160
- package/dist/index.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/CURSOR_INTEGRATION.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# bdsa-react-components - CURSOR Integration Guide
|
|
2
2
|
|
|
3
|
-
**Version:** 0.
|
|
3
|
+
**Version:** 0.2.0 | **Generated:** 2026-02-05T23:14:35.677Z
|
|
4
4
|
|
|
5
5
|
> This document provides everything Cursor needs to integrate and use the bdsa-react-components library.
|
|
6
6
|
> Copy this entire document into your project's .cursorrules or docs folder.
|
|
@@ -184,9 +184,9 @@ A slide viewer component that integrates OpenSeadragon with Paper.js annotations
|
|
|
184
184
|
|
|
185
185
|
### ThumbnailGrid
|
|
186
186
|
|
|
187
|
-
|
|
187
|
+
Basic thumbnail grid component that displays static thumbnail images. This is a lightweight alternative to FolderThumbnailBrowser that doesn't use OpenSeadragon.
|
|
188
188
|
|
|
189
|
-
**Example:**
|
|
189
|
+
**Example (Girder folder):**
|
|
190
190
|
|
|
191
191
|
```tsx
|
|
192
192
|
<ThumbnailGrid
|
|
@@ -200,16 +200,52 @@ Size presets for thumbnails
|
|
|
200
200
|
/>
|
|
201
201
|
```
|
|
202
202
|
|
|
203
|
+
**Example (list of image URLs – no DSA fetch):**
|
|
204
|
+
|
|
205
|
+
```tsx
|
|
206
|
+
const imageItems = [
|
|
207
|
+
{ id: '1', imageUrl: 'https://...', label: 'NFT', subtitle: 'slide_001.svs', category: 'NFT' },
|
|
208
|
+
{ id: '2', imageUrl: 'https://...', label: 'Neuritic Plaque', category: 'Neuritic Plaque' },
|
|
209
|
+
]
|
|
210
|
+
<ThumbnailGrid
|
|
211
|
+
imageItems={imageItems}
|
|
212
|
+
thumbnailSize="l"
|
|
213
|
+
itemsPerPage={12}
|
|
214
|
+
onThumbnailClick={(item) => console.log(item)}
|
|
215
|
+
/>
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
**Text under each thumbnail (caption):**
|
|
219
|
+
|
|
220
|
+
- **imageItems / roiItems:** Set `label` (primary text) and/or `subtitle` (secondary). If both are set, the grid shows `"label · subtitle"`. Omit both to show no caption.
|
|
221
|
+
- **Girder (folderId / imageIds / items):** Caption is the DSA item's `name`.
|
|
222
|
+
|
|
223
|
+
**Example (ROI documents with URL builder):**
|
|
224
|
+
|
|
225
|
+
```tsx
|
|
226
|
+
import { ThumbnailGrid, buildDsaRegionThumbnailUrl } from 'bdsa-react-components'
|
|
227
|
+
|
|
228
|
+
const roiItems = [
|
|
229
|
+
{ id: 'roi-1', sourceImageId: 'ITEM_ID', region: { left: 1000, top: 2000, width: 2000, height: 2000 }, label: 'ROI 1', category: 'Region' },
|
|
230
|
+
]
|
|
231
|
+
<ThumbnailGrid
|
|
232
|
+
apiBaseUrl="http://dsa/api/v1"
|
|
233
|
+
roiItems={roiItems}
|
|
234
|
+
getRoiThumbnailUrl={(item) => buildDsaRegionThumbnailUrl(apiBaseUrl, String(item.sourceImageId), item.region, 256)}
|
|
235
|
+
thumbnailSize="l"
|
|
236
|
+
/>
|
|
237
|
+
```
|
|
238
|
+
|
|
203
239
|
**Features:**
|
|
204
240
|
|
|
205
241
|
- Lightweight thumbnail grid (static images, no OpenSeadragon)
|
|
206
|
-
-
|
|
207
|
-
-
|
|
208
|
-
-
|
|
209
|
-
-
|
|
242
|
+
- Three data modes: `folderId`/`imageIds`/`items` (Girder fetch), `imageItems` (list of URLs), `roiItems` + `getRoiThumbnailUrl` (ROI documents)
|
|
243
|
+
- When using `imageItems` or `roiItems`, `apiBaseUrl` is optional. Caption per item via `label` and `subtitle`.
|
|
244
|
+
- Optional class/category filter dropdown when any item has `category`
|
|
245
|
+
- Automatic pagination; S/M/L/XL size controls in all modes
|
|
210
246
|
- Authentication via `apiHeaders` with optional `tokenQueryParam`
|
|
211
247
|
|
|
212
|
-
**API Endpoints:**
|
|
248
|
+
**API Endpoints (Girder mode only):**
|
|
213
249
|
|
|
214
250
|
- `GET /item?folderId={id}` - Fetch items from folder
|
|
215
251
|
- `GET /item/{id}/tiles/thumbnail?width={size}&token={token}` - Thumbnail image
|
|
@@ -242,6 +278,9 @@ import type {
|
|
|
242
278
|
FolderThumbnailBrowserProps,
|
|
243
279
|
ThumbnailViewerProps,
|
|
244
280
|
ThumbnailGridProps,
|
|
281
|
+
ThumbnailGridImageItem,
|
|
282
|
+
ThumbnailGridROIItem,
|
|
283
|
+
DsaRegionBounds,
|
|
245
284
|
Protocol,
|
|
246
285
|
ProtocolType,
|
|
247
286
|
ProtocolStorage,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DsaAuthProvider.d.ts","sourceRoot":"","sources":["../../src/auth/DsaAuthProvider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAA8E,MAAM,OAAO,CAAA;AAElG,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAEzD,MAAM,WAAW,mBAAmB;IAChC,oCAAoC;IACpC,UAAU,EAAE,aAAa,CAAA;IACzB,+DAA+D;IAC/D,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,kDAAkD;IAClD,SAAS,EAAE,OAAO,CAAA;IAClB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,mDAAmD;IACnD,IAAI,EAAE,WAAW,GAAG,IAAI,CAAA;IACxB,oCAAoC;IACpC,eAAe,EAAE,OAAO,CAAA;IACxB,iCAAiC;IACjC,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,kDAAkD;IAClD,cAAc,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/C;AAID,MAAM,WAAW,oBAAoB;IACjC,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iDAAiD;IACjD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IAC9C,yCAAyC;IACzC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IACpC,qCAAqC;IACrC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;IACtD,2EAA2E;IAC3E,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,wFAAwF;IACxF,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,uBAAuB;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC5B;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,
|
|
1
|
+
{"version":3,"file":"DsaAuthProvider.d.ts","sourceRoot":"","sources":["../../src/auth/DsaAuthProvider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAA8E,MAAM,OAAO,CAAA;AAElG,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAEzD,MAAM,WAAW,mBAAmB;IAChC,oCAAoC;IACpC,UAAU,EAAE,aAAa,CAAA;IACzB,+DAA+D;IAC/D,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,kDAAkD;IAClD,SAAS,EAAE,OAAO,CAAA;IAClB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,mDAAmD;IACnD,IAAI,EAAE,WAAW,GAAG,IAAI,CAAA;IACxB,oCAAoC;IACpC,eAAe,EAAE,OAAO,CAAA;IACxB,iCAAiC;IACjC,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,kDAAkD;IAClD,cAAc,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/C;AAID,MAAM,WAAW,oBAAoB;IACjC,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iDAAiD;IACjD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IAC9C,yCAAyC;IACzC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IACpC,qCAAqC;IACrC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;IACtD,2EAA2E;IAC3E,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,wFAAwF;IACxF,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,uBAAuB;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC5B;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAuN1D,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,UAAU,IAAI,mBAAmB,CAMhD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,IAAI,MAAM,GAAG,IAAI,CAG3C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DsaAuthStore.d.ts","sourceRoot":"","sources":["../../src/auth/DsaAuthStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAUzF,cAAM,YAAY;IAChB,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,eAAe,CAAS;;IAYhC,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI;IAKhD,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,UAAU;IA0BlB,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,sBAAsB;IAexB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,WAAW,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA0DzH,MAAM,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"DsaAuthStore.d.ts","sourceRoot":"","sources":["../../src/auth/DsaAuthStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAUzF,cAAM,YAAY;IAChB,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,eAAe,CAAS;;IAYhC,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI;IAKhD,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,UAAU;IA0BlB,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,sBAAsB;IAexB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,WAAW,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA0DzH,MAAM,IAAI,IAAI;IAgCR,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IA2BvC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAMrD,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAOnC,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAUxC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAOnC,YAAY,IAAI,OAAO;IAIvB,WAAW,IAAI,OAAO;IAItB,SAAS,IAAI,aAAa;IAe1B,SAAS,IAAI,aAAa;IAI1B,QAAQ,IAAI,MAAM;IAIlB;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,UAAU,GAAE,MAAW,GAAG,IAAI;IAqBxE,cAAc,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CA2BtF;AAGD,eAAO,MAAM,YAAY,cAAqB,CAAA;AAE9C,eAAe,YAAY,CAAA"}
|
|
@@ -2,15 +2,50 @@ import { default as React } from 'react';
|
|
|
2
2
|
import { Item } from '../../utils/itemUtils';
|
|
3
3
|
import { ApiErrorHandler } from '../../utils/apiErrorHandling';
|
|
4
4
|
|
|
5
|
+
/** Item for URL-based grid: pass image URLs directly (e.g. DSA region crops). */
|
|
6
|
+
export interface ThumbnailGridImageItem {
|
|
7
|
+
id: string;
|
|
8
|
+
imageUrl: string;
|
|
9
|
+
/** Primary text shown under the thumbnail. */
|
|
10
|
+
label?: string;
|
|
11
|
+
/** Secondary text under the thumbnail; shown after label as "label · subtitle" when both set. */
|
|
12
|
+
subtitle?: string;
|
|
13
|
+
/** Optional category for filter dropdown (e.g. "NFT", "Neuritic Plaque") */
|
|
14
|
+
category?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Region of interest (ROI) for thumbnail grid. Use with roiItems + getRoiThumbnailUrl.
|
|
18
|
+
* Your document can include any extra fields (e.g. sourceImageId, region bounds);
|
|
19
|
+
* getRoiThumbnailUrl converts each item to a thumbnail URL.
|
|
20
|
+
*/
|
|
21
|
+
export interface ThumbnailGridROIItem {
|
|
22
|
+
id: string;
|
|
23
|
+
/** Primary text shown under the thumbnail. */
|
|
24
|
+
label?: string;
|
|
25
|
+
/** Secondary text under the thumbnail; shown after label as "label · subtitle" when both set. */
|
|
26
|
+
subtitle?: string;
|
|
27
|
+
/** Optional category for filter dropdown */
|
|
28
|
+
category?: string;
|
|
29
|
+
[key: string]: unknown;
|
|
30
|
+
}
|
|
5
31
|
export interface ThumbnailGridProps {
|
|
32
|
+
/** List of image URLs to display (no fetch). When set, apiBaseUrl is optional. */
|
|
33
|
+
imageItems?: ThumbnailGridImageItem[];
|
|
34
|
+
/**
|
|
35
|
+
* List of ROI items (e.g. regions from an image). Requires getRoiThumbnailUrl to map each item to a thumbnail URL.
|
|
36
|
+
* Use when your data has a different document format (e.g. sourceImageId + region bounds).
|
|
37
|
+
*/
|
|
38
|
+
roiItems?: ThumbnailGridROIItem[];
|
|
39
|
+
/** When using roiItems, this function returns the thumbnail URL for each ROI (e.g. DSA region endpoint or your backend). */
|
|
40
|
+
getRoiThumbnailUrl?: (item: ThumbnailGridROIItem) => string;
|
|
6
41
|
/** DSA folder ID to fetch items from */
|
|
7
42
|
folderId?: string;
|
|
8
43
|
/** Array of specific image IDs to display */
|
|
9
44
|
imageIds?: string[];
|
|
10
|
-
/** Pre-loaded items array (takes precedence) */
|
|
45
|
+
/** Pre-loaded items array (takes precedence over folderId/imageIds) */
|
|
11
46
|
items?: Item[];
|
|
12
|
-
/** DSA API base URL (e.g., "http://bdsa.pathology.emory.edu:8080/api/v1") */
|
|
13
|
-
apiBaseUrl
|
|
47
|
+
/** DSA API base URL (e.g., "http://bdsa.pathology.emory.edu:8080/api/v1"). Optional when imageItems is provided. */
|
|
48
|
+
apiBaseUrl?: string;
|
|
14
49
|
/** Backend API base URL for fetching items (optional, falls back to apiBaseUrl if not provided) */
|
|
15
50
|
backendApiBaseUrl?: string;
|
|
16
51
|
/** Headers for API requests (auth, etc.) */
|
|
@@ -41,8 +76,8 @@ export interface ThumbnailGridProps {
|
|
|
41
76
|
onItemsLoaded?: (itemIds: string[]) => void;
|
|
42
77
|
/** Function to determine dataset type */
|
|
43
78
|
getDatasetType?: (itemId: string) => 'train' | 'val' | 'test' | null;
|
|
44
|
-
/** Callback when thumbnail is clicked */
|
|
45
|
-
onThumbnailClick?: (item: Item) => void;
|
|
79
|
+
/** Callback when thumbnail is clicked (Item | ThumbnailGridImageItem | ThumbnailGridROIItem depending on data source) */
|
|
80
|
+
onThumbnailClick?: (item: Item | ThumbnailGridImageItem | ThumbnailGridROIItem) => void;
|
|
46
81
|
/**
|
|
47
82
|
* Callback when an API error occurs.
|
|
48
83
|
* Provides error details and a retry function for transient failures.
|
|
@@ -77,6 +112,30 @@ export interface ThumbnailGridProps {
|
|
|
77
112
|
/** Custom CSS class */
|
|
78
113
|
className?: string;
|
|
79
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* Region of interest in pixel coordinates (e.g. for DSA region thumbnail API).
|
|
117
|
+
* Use with buildDsaRegionThumbnailUrl to build thumbnail URLs for ROI items.
|
|
118
|
+
*/
|
|
119
|
+
export interface DsaRegionBounds {
|
|
120
|
+
/** Left edge (x) in pixels */
|
|
121
|
+
left: number;
|
|
122
|
+
/** Top edge (y) in pixels */
|
|
123
|
+
top: number;
|
|
124
|
+
/** Width in pixels */
|
|
125
|
+
width: number;
|
|
126
|
+
/** Height in pixels */
|
|
127
|
+
height: number;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Build a DSA large_image region thumbnail URL for a crop of a whole-slide image.
|
|
131
|
+
* Use this as getRoiThumbnailUrl when your ROI items have sourceImageId and region.
|
|
132
|
+
*
|
|
133
|
+
* @param apiBaseUrl - DSA API base (e.g. "http://host:8080/api/v1")
|
|
134
|
+
* @param itemId - DSA item (image) id
|
|
135
|
+
* @param region - Pixel bounds of the region
|
|
136
|
+
* @param outputSize - Output thumbnail width (height follows region aspect ratio if server supports it)
|
|
137
|
+
*/
|
|
138
|
+
export declare function buildDsaRegionThumbnailUrl(apiBaseUrl: string, itemId: string, region: DsaRegionBounds, outputSize?: number): string;
|
|
80
139
|
/**
|
|
81
140
|
* Basic thumbnail grid component that displays static thumbnail images.
|
|
82
141
|
* This is a lightweight alternative to FolderThumbnailBrowser that doesn't use OpenSeadragon.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThumbnailGrid.d.ts","sourceRoot":"","sources":["../../../src/components/ThumbnailGrid/ThumbnailGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAChF,OAAO,EAAgC,KAAK,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAE/E,OAAO,EAAkB,KAAK,eAAe,EAAiB,MAAM,8BAA8B,CAAA;AAClG,OAAO,qBAAqB,CAAA;AAE5B,MAAM,WAAW,kBAAkB;IAE/B,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,
|
|
1
|
+
{"version":3,"file":"ThumbnailGrid.d.ts","sourceRoot":"","sources":["../../../src/components/ThumbnailGrid/ThumbnailGrid.tsx"],"names":[],"mappings":"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"}
|