bdsa-react-components 0.1.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/CHANGELOG.md +23 -0
- package/CURSOR_INTEGRATION.md +290 -0
- package/INTEGRATION.md +189 -0
- package/README.md +370 -0
- package/dist/components/AnnotationManager/AnnotationManager.d.ts +56 -0
- package/dist/components/AnnotationManager/AnnotationManager.d.ts.map +1 -0
- package/dist/components/Button/Button.d.ts +25 -0
- package/dist/components/Button/Button.d.ts.map +1 -0
- package/dist/components/Card/Card.d.ts +33 -0
- package/dist/components/Card/Card.d.ts.map +1 -0
- package/dist/components/FolderBrowser/FolderBrowser.d.ts +73 -0
- package/dist/components/FolderBrowser/FolderBrowser.d.ts.map +1 -0
- package/dist/components/SlideViewer/SlideViewer.d.ts +132 -0
- package/dist/components/SlideViewer/SlideViewer.d.ts.map +1 -0
- package/dist/index.cjs +1709 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23940 -0
- package/dist/index.js.map +1 -0
- package/dist/style.css +1 -0
- package/package.json +95 -0
package/dist/style.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.bdsa-button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:inherit;font-weight:500;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease;position:relative}.bdsa-button:focus-visible{outline:2px solid #0066cc;outline-offset:2px}.bdsa-button:disabled{cursor:not-allowed;opacity:.6}.bdsa-button--small{padding:.375rem .75rem;font-size:.875rem;line-height:1.25rem}.bdsa-button--medium{padding:.5rem 1rem;font-size:1rem;line-height:1.5rem}.bdsa-button--large{padding:.75rem 1.5rem;font-size:1.125rem;line-height:1.75rem}.bdsa-button--primary{background-color:#06c;color:#fff}.bdsa-button--primary:hover:not(:disabled){background-color:#0052a3}.bdsa-button--primary:active:not(:disabled){background-color:#003d7a}.bdsa-button--secondary{background-color:#6c757d;color:#fff}.bdsa-button--secondary:hover:not(:disabled){background-color:#5a6268}.bdsa-button--secondary:active:not(:disabled){background-color:#4e555b}.bdsa-button--danger{background-color:#dc3545;color:#fff}.bdsa-button--danger:hover:not(:disabled){background-color:#c82333}.bdsa-button--danger:active:not(:disabled){background-color:#bd2130}.bdsa-button--success{background-color:#28a745;color:#fff}.bdsa-button--success:hover:not(:disabled){background-color:#218838}.bdsa-button--success:active:not(:disabled){background-color:#1e7e34}.bdsa-button--full-width{width:100%}.bdsa-button--loading{position:relative}.bdsa-button__spinner{width:1em;height:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:bdsa-button-spin .6s linear infinite}.bdsa-button__text{opacity:.7}@keyframes bdsa-button-spin{to{transform:rotate(360deg)}}.bdsa-card{background-color:#fff;border-radius:8px;overflow:hidden;transition:all .2s ease}.bdsa-card--bordered{border:1px solid #e0e0e0}.bdsa-card--shadow-none{box-shadow:none}.bdsa-card--shadow-small{box-shadow:0 1px 3px #0000001a}.bdsa-card--shadow-medium{box-shadow:0 4px 6px #0000001a}.bdsa-card--shadow-large{box-shadow:0 10px 15px #0000001a}.bdsa-card--hoverable{cursor:pointer}.bdsa-card--hoverable:hover{transform:translateY(-2px);box-shadow:0 8px 12px #00000026}.bdsa-card__header{padding:1rem 1.5rem;border-bottom:1px solid #e0e0e0;font-weight:600;font-size:1.125rem}.bdsa-card__content{color:#333}.bdsa-card__content--padding-none{padding:0}.bdsa-card__content--padding-small{padding:.75rem}.bdsa-card__content--padding-medium{padding:1.5rem}.bdsa-card__content--padding-large{padding:2rem}.bdsa-card__footer{padding:1rem 1.5rem;border-top:1px solid #e0e0e0;background-color:#f8f9fa;color:#666;font-size:.875rem}.bdsa-slide-viewer{width:100%;height:100%;min-height:400px;display:flex;flex-direction:row;position:relative;background-color:#000}.bdsa-slide-viewer__container{flex:1;height:100%;min-height:400px;min-width:0}.bdsa-slide-viewer__sidebar{width:300px;min-width:250px;max-width:400px;height:100%;background-color:#fff;border-left:1px solid #ddd;display:flex;flex-direction:column;overflow-y:auto}.bdsa-slide-viewer .openseadragon-container{width:100%;height:100%}.bdsa-slide-viewer__annotation-info{flex:1;padding:16px;font-size:12px;overflow-y:auto}.bdsa-slide-viewer__annotation-info-header{margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid #ddd;font-size:14px}.bdsa-slide-viewer__annotation-info-section{margin-bottom:12px}.bdsa-slide-viewer__annotation-info-section:last-child{margin-bottom:0}.bdsa-slide-viewer__annotation-info-title{font-weight:600;margin-bottom:4px;color:#333}.bdsa-slide-viewer__annotation-info-item{margin-left:8px;margin-bottom:6px;padding:4px;background:#f8f9fa;border-radius:2px;font-size:11px;color:#666}.bdsa-slide-viewer__annotation-info-item:last-child{margin-bottom:0}.bdsa-slide-viewer__annotation-info-item>div{margin:2px 0}.bdsa-slide-viewer__controls{padding:16px;border-bottom:1px solid #ddd;background-color:#f8f9fa}.bdsa-slide-viewer__controls-header{margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #ddd;font-size:14px;font-weight:600;color:#333}.bdsa-slide-viewer__controls-section{margin-bottom:12px}.bdsa-slide-viewer__controls-section:last-child{margin-bottom:0}.bdsa-slide-viewer__controls-label{margin-bottom:8px;font-size:12px;font-weight:500;color:#666}.bdsa-slide-viewer__opacity-slider{width:100%;height:6px;border-radius:3px;background:#ddd;outline:none;-webkit-appearance:none}.bdsa-slide-viewer__opacity-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#007bff;cursor:pointer}.bdsa-slide-viewer__opacity-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#007bff;cursor:pointer;border:none}.bdsa-annotation-manager{width:100%;height:100%;position:relative}.bdsa-annotation-manager__debug-panel{position:fixed;bottom:20px;right:20px;width:500px;max-height:400px;background-color:#1e1e1e;border:2px solid #007bff;border-radius:8px;box-shadow:0 4px 12px #0000004d;z-index:9999;display:flex;flex-direction:column;overflow:hidden}.bdsa-annotation-manager__debug-panel-header{padding:12px 16px;background-color:#007bff;color:#fff;font-size:14px;font-weight:600;border-bottom:1px solid rgba(255,255,255,.1)}.bdsa-annotation-manager__debug-panel-content{flex:1;padding:16px;margin:0;overflow:auto;background-color:#252526;color:#d4d4d4;font-family:Courier New,Monaco,Menlo,monospace;font-size:12px;line-height:1.5;white-space:pre-wrap;word-wrap:break-word}.bdsa-annotation-manager__list{display:flex;flex-direction:column;gap:8px;padding:16px}.bdsa-annotation-manager__list-header{margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid #e0e0e0}.bdsa-annotation-manager__list-header h3{margin:0;font-size:18px;font-weight:600;color:#333}.bdsa-annotation-manager__list-header p{margin:4px 0 0;font-size:14px;color:#666}.bdsa-annotation-manager__annotation-card{background-color:#fff;border:1px solid #ddd;border-radius:8px;padding:12px 16px;transition:all .2s ease;cursor:pointer}.bdsa-annotation-manager__annotation-card:hover{border-color:#007bff;box-shadow:0 2px 8px #007bff26}.bdsa-annotation-manager__annotation-card--selected{border-color:#007bff;background-color:#f0f7ff}.bdsa-annotation-manager__annotation-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.bdsa-annotation-manager__annotation-card-title{font-size:15px;font-weight:600;color:#333;margin:0;flex:1}.bdsa-annotation-manager__annotation-card-meta{display:flex;gap:8px;align-items:center;font-size:12px;color:#999}.bdsa-annotation-manager__annotation-card-badge{padding:2px 8px;border-radius:12px;font-size:11px;font-weight:500}.bdsa-annotation-manager__annotation-card-badge--public{background-color:#e8f5e9;color:#2e7d32}.bdsa-annotation-manager__annotation-card-badge--private{background-color:#fff3e0;color:#e65100}.bdsa-annotation-manager__annotation-card-details{display:flex;gap:16px;font-size:12px;color:#666;margin-top:8px}.bdsa-annotation-manager__annotation-card-detail{display:flex;align-items:center;gap:4px}.bdsa-annotation-manager__annotation-card-controls{display:flex;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid #eee}.bdsa-annotation-manager__annotation-card-control{padding:4px 8px;font-size:11px;border:1px solid #ddd;border-radius:4px;background-color:#f8f9fa;cursor:pointer;transition:all .2s ease}.bdsa-annotation-manager__annotation-card-control:hover{background-color:#e9ecef;border-color:#adb5bd}.bdsa-annotation-manager__empty-state{padding:40px 16px;text-align:center;color:#999}.bdsa-annotation-manager__empty-state p{margin:8px 0;font-size:14px}.bdsa-folder-browser{width:100%;min-height:200px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.bdsa-folder-browser__loading,.bdsa-folder-browser__error,.bdsa-folder-browser__empty{display:flex;align-items:center;justify-content:center;padding:40px;color:#666}.bdsa-folder-browser__error{flex-direction:column;gap:10px}.bdsa-folder-browser__error button{background-color:#007bff;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .2s ease}.bdsa-folder-browser__error button:hover{background-color:#0056b3}.bdsa-folder-browser__collections{display:flex;flex-direction:column;gap:8px}.bdsa-folder-browser__collection,.bdsa-folder-browser__folder{border:1px solid #e0e0e0;border-radius:4px;background:#fff}.bdsa-folder-browser__folder-header{display:flex;align-items:center;padding:12px 16px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s ease,border-left .2s ease;border-bottom:1px solid #f0f0f0;border-left:3px solid transparent}.bdsa-folder-browser__folder-header:hover{background-color:#f8f9fa}.bdsa-folder-browser__folder-header.selected{background-color:#bbdefb;border-left-color:#2196f3}.bdsa-folder-browser__folder-icon{margin-right:8px;font-size:16px;transition:transform .2s ease}.bdsa-folder-browser__folder-icon.expanded{transform:rotate(0)}.bdsa-folder-browser__folder-name{flex:1;font-weight:500;color:#333}.bdsa-folder-browser__folder-type{font-size:12px;color:#666;background-color:#e9ecef;padding:2px 8px;border-radius:12px;margin-left:8px}.bdsa-folder-browser__folder-contents{padding:8px 0;background-color:#fafafa}.bdsa-folder-browser__resource-item{display:flex;align-items:center;padding:8px 16px;cursor:pointer;transition:background-color .2s ease;border-left:3px solid transparent}.bdsa-folder-browser__resource-item:hover{background-color:#e3f2fd}.bdsa-folder-browser__resource-item.selected{background-color:#bbdefb;border-left-color:#2196f3}.bdsa-folder-browser__resource-icon{margin-right:8px;font-size:14px}.bdsa-folder-browser__resource-name{flex:1;color:#333}.bdsa-folder-browser__resource-type{font-size:11px;color:#666;background-color:#e3f2fd;padding:2px 6px;border-radius:10px;margin-left:8px}.bdsa-folder-browser__load-more{padding:8px 16px;text-align:center}.bdsa-folder-browser__load-more-btn{background-color:#007bff;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .2s ease}.bdsa-folder-browser__load-more-btn:hover:not(:disabled){background-color:#0056b3}.bdsa-folder-browser__load-more-btn:disabled{background-color:#6c757d;cursor:not-allowed;opacity:.6}@media (max-width: 768px){.bdsa-folder-browser__folder-header{padding:10px 12px}.bdsa-folder-browser__resource-item{padding:6px 12px}}
|
package/package.json
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "bdsa-react-components",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Reusable React components for the Digital Slide Archive project",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.cjs",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": "./dist/index.js",
|
|
12
|
+
"require": "./dist/index.cjs",
|
|
13
|
+
"types": "./dist/index.d.ts"
|
|
14
|
+
},
|
|
15
|
+
"./styles.css": "./dist/style.css"
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"dist",
|
|
19
|
+
"README.md",
|
|
20
|
+
"CHANGELOG.md",
|
|
21
|
+
"INTEGRATION.md",
|
|
22
|
+
"CURSOR_INTEGRATION.md"
|
|
23
|
+
],
|
|
24
|
+
"scripts": {
|
|
25
|
+
"dev": "vite",
|
|
26
|
+
"build": "npm run generate:cursor-doc && tsc && vite build",
|
|
27
|
+
"prepublishOnly": "npm run build",
|
|
28
|
+
"preview": "vite preview",
|
|
29
|
+
"test": "vitest",
|
|
30
|
+
"test:ui": "vitest --ui",
|
|
31
|
+
"test:coverage": "vitest --coverage",
|
|
32
|
+
"storybook": "storybook dev -p 6006",
|
|
33
|
+
"build-storybook": "storybook build",
|
|
34
|
+
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
|
|
35
|
+
"generate:cursor-doc": "node scripts/generate-cursor-doc.js",
|
|
36
|
+
"version": "npm run build && git add dist",
|
|
37
|
+
"postversion": "git push && git push --tags"
|
|
38
|
+
},
|
|
39
|
+
"peerDependencies": {
|
|
40
|
+
"react": "^18.0.0",
|
|
41
|
+
"react-dom": "^18.0.0"
|
|
42
|
+
},
|
|
43
|
+
"dependencies": {
|
|
44
|
+
"openseadragon": "^5.0.1",
|
|
45
|
+
"osd-paperjs-annotation": "github:pearcetm/osd-paperjs-annotation",
|
|
46
|
+
"paper": "^0.12.18"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@types/geojson": "^7946.0.13",
|
|
50
|
+
"@storybook/addon-essentials": "^7.6.0",
|
|
51
|
+
"@storybook/addon-interactions": "^7.6.0",
|
|
52
|
+
"@storybook/addon-links": "^7.6.0",
|
|
53
|
+
"@storybook/blocks": "^7.6.0",
|
|
54
|
+
"@storybook/react": "^7.6.0",
|
|
55
|
+
"@storybook/react-vite": "^7.6.0",
|
|
56
|
+
"@storybook/testing-library": "^0.2.2",
|
|
57
|
+
"@testing-library/react": "^14.1.2",
|
|
58
|
+
"@testing-library/jest-dom": "^6.1.5",
|
|
59
|
+
"@testing-library/user-event": "^14.5.1",
|
|
60
|
+
"@types/react": "^18.2.43",
|
|
61
|
+
"@types/react-dom": "^18.2.17",
|
|
62
|
+
"@typescript-eslint/eslint-plugin": "^6.14.0",
|
|
63
|
+
"@typescript-eslint/parser": "^6.14.0",
|
|
64
|
+
"@vitejs/plugin-react": "^4.2.1",
|
|
65
|
+
"@vitest/ui": "^1.0.4",
|
|
66
|
+
"eslint": "^8.55.0",
|
|
67
|
+
"eslint-plugin-react-hooks": "^4.6.0",
|
|
68
|
+
"eslint-plugin-react-refresh": "^0.4.5",
|
|
69
|
+
"eslint-plugin-storybook": "^0.6.15",
|
|
70
|
+
"jsdom": "^23.0.1",
|
|
71
|
+
"react": "^18.2.0",
|
|
72
|
+
"react-dom": "^18.2.0",
|
|
73
|
+
"storybook": "^7.6.0",
|
|
74
|
+
"typescript": "^5.3.3",
|
|
75
|
+
"vite": "^5.0.8",
|
|
76
|
+
"vite-plugin-dts": "^3.7.0",
|
|
77
|
+
"vitest": "^1.0.4"
|
|
78
|
+
},
|
|
79
|
+
"keywords": [
|
|
80
|
+
"react",
|
|
81
|
+
"components",
|
|
82
|
+
"digital-slide-archive",
|
|
83
|
+
"bdsa",
|
|
84
|
+
"ui-library"
|
|
85
|
+
],
|
|
86
|
+
"author": "",
|
|
87
|
+
"license": "Apache-2.0",
|
|
88
|
+
"repository": {
|
|
89
|
+
"type": "git",
|
|
90
|
+
"url": "https://github.com/Gutman-Lab/bdsa-react-components.git"
|
|
91
|
+
},
|
|
92
|
+
"publishConfig": {
|
|
93
|
+
"access": "public"
|
|
94
|
+
}
|
|
95
|
+
}
|