@papernote/ui 1.1.0 → 1.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/LICENSE +21 -21
- package/README.md +455 -455
- package/dist/components/CurrencyInput.d.ts +52 -0
- package/dist/components/CurrencyInput.d.ts.map +1 -0
- package/dist/components/DataTable.d.ts +3 -1
- package/dist/components/DataTable.d.ts.map +1 -1
- package/dist/components/Modal.d.ts.map +1 -1
- package/dist/components/Page.d.ts +2 -0
- package/dist/components/Page.d.ts.map +1 -1
- package/dist/components/PageLayout.d.ts +5 -1
- package/dist/components/PageLayout.d.ts.map +1 -1
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/index.d.ts +204 -4
- package/dist/index.esm.js +415 -88
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +413 -82
- package/dist/index.js.map +1 -1
- package/dist/styles.css +2877 -2675
- package/dist/utils/excelExport.d.ts +143 -0
- package/dist/utils/excelExport.d.ts.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/AdminModal.css +49 -49
- package/src/components/CurrencyInput.stories.tsx +290 -0
- package/src/components/CurrencyInput.tsx +193 -0
- package/src/components/DataTable.tsx +78 -14
- package/src/components/Modal.stories.tsx +64 -0
- package/src/components/Modal.tsx +15 -2
- package/src/components/Page.stories.tsx +76 -0
- package/src/components/Page.tsx +35 -3
- package/src/components/PageLayout.stories.tsx +75 -0
- package/src/components/PageLayout.tsx +28 -9
- package/src/components/RoleManager.css +10 -10
- package/src/components/Spreadsheet.css +216 -216
- package/src/components/Spreadsheet.stories.tsx +362 -362
- package/src/components/Spreadsheet.tsx +351 -351
- package/src/components/SpreadsheetSimple.stories.tsx +27 -27
- package/src/components/Tabs.tsx +152 -152
- package/src/components/index.ts +5 -0
- package/src/styles/index.css +41 -4
- package/src/utils/excelExport.stories.tsx +535 -0
- package/src/utils/excelExport.ts +225 -0
- package/src/utils/index.ts +3 -0
- package/tailwind.config.js +253 -253
- package/dist/components/Button.stories.d.ts +0 -51
- package/dist/components/Button.stories.d.ts.map +0 -1
- package/dist/components/ChartVisualizationUI.d.ts +0 -21
- package/dist/components/ChartVisualizationUI.d.ts.map +0 -1
- package/dist/components/ChatUI.d.ts +0 -23
- package/dist/components/ChatUI.d.ts.map +0 -1
- package/dist/components/CommissionDashboardUI.d.ts +0 -25
- package/dist/components/CommissionDashboardUI.d.ts.map +0 -1
- package/dist/components/DataTable.stories.d.ts +0 -23
- package/dist/components/DataTable.stories.d.ts.map +0 -1
- package/dist/components/FormField.d.ts +0 -35
- package/dist/components/FormField.d.ts.map +0 -1
- package/dist/components/Input.stories.d.ts +0 -366
- package/dist/components/Input.stories.d.ts.map +0 -1
- package/dist/components/InsightsPanelUI.d.ts +0 -21
- package/dist/components/InsightsPanelUI.d.ts.map +0 -1
- package/dist/components/PaymentHistoryTimeline.d.ts +0 -34
- package/dist/components/PaymentHistoryTimeline.d.ts.map +0 -1
- package/dist/components/RelationshipManagerUI.d.ts +0 -60
- package/dist/components/RelationshipManagerUI.d.ts.map +0 -1
- package/dist/components/RoleManager.d.ts +0 -19
- package/dist/components/RoleManager.d.ts.map +0 -1
- package/dist/components/SplitCommissionBadge.d.ts +0 -18
- package/dist/components/SplitCommissionBadge.d.ts.map +0 -1
- package/dist/components/Spreadsheet.css +0 -216
- package/dist/components/__tests__/Button.test.d.ts +0 -2
- package/dist/components/__tests__/Button.test.d.ts.map +0 -1
- package/dist/components/__tests__/Input.test.d.ts +0 -2
- package/dist/components/__tests__/Input.test.d.ts.map +0 -1
|
@@ -12,6 +12,10 @@ export interface PageLayoutProps {
|
|
|
12
12
|
className?: string;
|
|
13
13
|
/** Optional content to render before the title (e.g., breadcrumbs, alerts, control bars) */
|
|
14
14
|
headerContent?: ReactNode;
|
|
15
|
+
/** Maximum width constraint for the page content (default: '7xl' = 1400px) */
|
|
16
|
+
maxWidth?: '4xl' | '5xl' | '6xl' | '7xl' | 'full';
|
|
17
|
+
/** Fix all margins/padding instead of responsive (default: false) */
|
|
18
|
+
fixed?: boolean;
|
|
15
19
|
}
|
|
16
20
|
|
|
17
21
|
/**
|
|
@@ -51,19 +55,34 @@ export interface PageLayoutProps {
|
|
|
51
55
|
* </Layout>
|
|
52
56
|
* ```
|
|
53
57
|
*/
|
|
54
|
-
export function PageLayout({
|
|
55
|
-
title,
|
|
56
|
-
description,
|
|
57
|
-
children,
|
|
58
|
+
export function PageLayout({
|
|
59
|
+
title,
|
|
60
|
+
description,
|
|
61
|
+
children,
|
|
58
62
|
className = '',
|
|
59
|
-
headerContent
|
|
63
|
+
headerContent,
|
|
64
|
+
maxWidth = '7xl',
|
|
65
|
+
fixed = false
|
|
60
66
|
}: PageLayoutProps) {
|
|
67
|
+
// Responsive padding classes - fixed left/top, responsive right/bottom
|
|
68
|
+
const paddingClasses = fixed
|
|
69
|
+
? 'p-6 pb-20'
|
|
70
|
+
: 'pt-6 pl-6 pr-2 pb-8 sm:pr-4 md:pr-6 sm:pb-12 md:pb-16 lg:pb-20';
|
|
71
|
+
|
|
72
|
+
const maxWidthClasses = {
|
|
73
|
+
'4xl': 'max-w-4xl',
|
|
74
|
+
'5xl': 'max-w-5xl',
|
|
75
|
+
'6xl': 'max-w-6xl',
|
|
76
|
+
'7xl': 'max-w-7xl',
|
|
77
|
+
'full': 'max-w-full',
|
|
78
|
+
};
|
|
79
|
+
|
|
61
80
|
return (
|
|
62
|
-
<Page>
|
|
81
|
+
<Page padding="none" maxWidth={maxWidth} fixed={fixed}>
|
|
63
82
|
{/* Content before title (e.g., ControlBar) */}
|
|
64
83
|
{headerContent}
|
|
65
|
-
|
|
66
|
-
<div className={
|
|
84
|
+
|
|
85
|
+
<div className={`${paddingClasses} ${maxWidthClasses[maxWidth]} mx-auto ${className}`}>
|
|
67
86
|
{/* Header */}
|
|
68
87
|
<div className="mb-8">
|
|
69
88
|
<h1 className="text-3xl font-bold text-ink-900 mb-2">{title}</h1>
|
|
@@ -71,7 +90,7 @@ export function PageLayout({
|
|
|
71
90
|
<p className="text-ink-600">{description}</p>
|
|
72
91
|
)}
|
|
73
92
|
</div>
|
|
74
|
-
|
|
93
|
+
|
|
75
94
|
{children}
|
|
76
95
|
</div>
|
|
77
96
|
</Page>
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
/* RoleManager.css - Styles for RoleManager component */
|
|
2
|
-
|
|
3
|
-
.role-manager-permission-grid {
|
|
4
|
-
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
.role-manager-list {
|
|
8
|
-
height: var(--role-manager-height, 400px);
|
|
9
|
-
min-height: 200px;
|
|
10
|
-
}
|
|
1
|
+
/* RoleManager.css - Styles for RoleManager component */
|
|
2
|
+
|
|
3
|
+
.role-manager-permission-grid {
|
|
4
|
+
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.role-manager-list {
|
|
8
|
+
height: var(--role-manager-height, 400px);
|
|
9
|
+
min-height: 200px;
|
|
10
|
+
}
|
|
@@ -1,216 +1,216 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Spreadsheet Component Styles
|
|
3
|
-
*
|
|
4
|
-
* Custom styling for react-spreadsheet to match notebook-ui's paper aesthetic
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
/* Container */
|
|
8
|
-
.spreadsheet-container {
|
|
9
|
-
width: 100%;
|
|
10
|
-
overflow: auto;
|
|
11
|
-
background-color: #fafaf9; /* paper-50 */
|
|
12
|
-
border-radius: 0.5rem;
|
|
13
|
-
border: 1px solid #e7e5e4; /* stone-200 */
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/* Spreadsheet base */
|
|
17
|
-
.notebook-spreadsheet {
|
|
18
|
-
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
19
|
-
font-size: 0.875rem;
|
|
20
|
-
color: #1c1917; /* ink-900 */
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/* Table styling */
|
|
24
|
-
.notebook-spreadsheet table {
|
|
25
|
-
border-collapse: separate;
|
|
26
|
-
border-spacing: 0;
|
|
27
|
-
background-color: #ffffff;
|
|
28
|
-
width: 100%;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/* Cell styling */
|
|
32
|
-
.notebook-spreadsheet td {
|
|
33
|
-
border: 1px solid #e7e5e4; /* stone-200 */
|
|
34
|
-
padding: 0;
|
|
35
|
-
background-color: #ffffff;
|
|
36
|
-
transition: background-color 0.15s ease;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/* Cell hover */
|
|
40
|
-
.notebook-spreadsheet td:hover {
|
|
41
|
-
background-color: #fafaf9; /* paper-50 */
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/* Selected cell */
|
|
45
|
-
.notebook-spreadsheet td.Spreadsheet__active-cell {
|
|
46
|
-
border: 2px solid #334155; /* primary-700 */
|
|
47
|
-
box-shadow: 0 0 0 1px #334155;
|
|
48
|
-
background-color: #ffffff;
|
|
49
|
-
z-index: 10;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/* Header cells (row/column labels) */
|
|
53
|
-
.notebook-spreadsheet th {
|
|
54
|
-
background-color: #f5f5f4; /* stone-100 */
|
|
55
|
-
color: #57534e; /* ink-600 */
|
|
56
|
-
border: 1px solid #e7e5e4; /* stone-200 */
|
|
57
|
-
padding: 0.5rem;
|
|
58
|
-
font-weight: 600;
|
|
59
|
-
font-size: 0.75rem;
|
|
60
|
-
text-align: center;
|
|
61
|
-
position: sticky;
|
|
62
|
-
z-index: 5;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/* Column headers */
|
|
66
|
-
.notebook-spreadsheet thead th {
|
|
67
|
-
top: 0;
|
|
68
|
-
z-index: 10;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/* Row headers */
|
|
72
|
-
.notebook-spreadsheet tbody th {
|
|
73
|
-
left: 0;
|
|
74
|
-
z-index: 5;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/* Corner header (top-left cell) */
|
|
78
|
-
.notebook-spreadsheet thead th:first-child {
|
|
79
|
-
left: 0;
|
|
80
|
-
z-index: 15;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/* Cell input */
|
|
84
|
-
.notebook-spreadsheet .Spreadsheet__data-editor {
|
|
85
|
-
width: 100%;
|
|
86
|
-
height: 100%;
|
|
87
|
-
border: none;
|
|
88
|
-
outline: none;
|
|
89
|
-
padding: 0.5rem;
|
|
90
|
-
font-family: inherit;
|
|
91
|
-
font-size: inherit;
|
|
92
|
-
color: inherit;
|
|
93
|
-
background-color: #ffffff;
|
|
94
|
-
box-sizing: border-box;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
.notebook-spreadsheet .Spreadsheet__data-editor:focus {
|
|
98
|
-
background-color: #ffffff;
|
|
99
|
-
border: 2px solid #334155; /* primary-700 */
|
|
100
|
-
padding: calc(0.5rem - 1px);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/* Cell with formula indicator */
|
|
104
|
-
.notebook-spreadsheet .Spreadsheet__cell--formula {
|
|
105
|
-
font-style: italic;
|
|
106
|
-
background-color: #f0fdf4; /* success-50 */
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
/* Read-only cells */
|
|
110
|
-
.notebook-spreadsheet .Spreadsheet__cell--readonly {
|
|
111
|
-
background-color: #f5f5f4; /* stone-100 */
|
|
112
|
-
color: #78716c; /* ink-500 */
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
/* Selection highlight */
|
|
116
|
-
.notebook-spreadsheet .Spreadsheet__cell--selected {
|
|
117
|
-
background-color: #e0f2fe; /* primary-100 */
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/* Cell error state */
|
|
121
|
-
.notebook-spreadsheet .Spreadsheet__cell--error {
|
|
122
|
-
background-color: #fef2f2; /* error-50 */
|
|
123
|
-
color: #991b1b; /* error-800 */
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
/* Cell value display */
|
|
127
|
-
.notebook-spreadsheet .Spreadsheet__value {
|
|
128
|
-
padding: 0.5rem;
|
|
129
|
-
min-height: 2rem;
|
|
130
|
-
display: flex;
|
|
131
|
-
align-items: center;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
/* Number cells - align right */
|
|
135
|
-
.notebook-spreadsheet .Spreadsheet__cell--number .Spreadsheet__value {
|
|
136
|
-
justify-content: flex-end;
|
|
137
|
-
font-variant-numeric: tabular-nums;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
/* Empty cells */
|
|
141
|
-
.notebook-spreadsheet .Spreadsheet__cell--empty .Spreadsheet__value {
|
|
142
|
-
color: #a8a29e; /* ink-400 */
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
/* Copy/paste indicator */
|
|
146
|
-
.notebook-spreadsheet .Spreadsheet__floating-rect {
|
|
147
|
-
border: 2px dashed #334155; /* primary-700 */
|
|
148
|
-
background-color: rgba(51, 65, 85, 0.1);
|
|
149
|
-
pointer-events: none;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
/* Scrollbar styling for webkit browsers */
|
|
153
|
-
.spreadsheet-container::-webkit-scrollbar {
|
|
154
|
-
width: 12px;
|
|
155
|
-
height: 12px;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
.spreadsheet-container::-webkit-scrollbar-track {
|
|
159
|
-
background-color: #fafaf9; /* paper-50 */
|
|
160
|
-
border-radius: 0.5rem;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
.spreadsheet-container::-webkit-scrollbar-thumb {
|
|
164
|
-
background-color: #d6d3d1; /* stone-300 */
|
|
165
|
-
border-radius: 0.5rem;
|
|
166
|
-
border: 2px solid #fafaf9;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
.spreadsheet-container::-webkit-scrollbar-thumb:hover {
|
|
170
|
-
background-color: #a8a29e; /* ink-400 */
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
/* Loading state */
|
|
174
|
-
.spreadsheet-container.loading {
|
|
175
|
-
opacity: 0.6;
|
|
176
|
-
pointer-events: none;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
/* Responsive adjustments */
|
|
180
|
-
@media (max-width: 768px) {
|
|
181
|
-
.notebook-spreadsheet {
|
|
182
|
-
font-size: 0.75rem;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
.notebook-spreadsheet .Spreadsheet__value {
|
|
186
|
-
padding: 0.375rem;
|
|
187
|
-
min-height: 1.75rem;
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
.notebook-spreadsheet .Spreadsheet__data-editor {
|
|
191
|
-
padding: 0.375rem;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
.notebook-spreadsheet th {
|
|
195
|
-
padding: 0.375rem;
|
|
196
|
-
font-size: 0.6875rem;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
/* Print styles */
|
|
201
|
-
@media print {
|
|
202
|
-
.spreadsheet-container {
|
|
203
|
-
border: none;
|
|
204
|
-
overflow: visible;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
.notebook-spreadsheet td,
|
|
208
|
-
.notebook-spreadsheet th {
|
|
209
|
-
border-color: #000;
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
.notebook-spreadsheet .Spreadsheet__active-cell {
|
|
213
|
-
border: 1px solid #000;
|
|
214
|
-
box-shadow: none;
|
|
215
|
-
}
|
|
216
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Spreadsheet Component Styles
|
|
3
|
+
*
|
|
4
|
+
* Custom styling for react-spreadsheet to match notebook-ui's paper aesthetic
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/* Container */
|
|
8
|
+
.spreadsheet-container {
|
|
9
|
+
width: 100%;
|
|
10
|
+
overflow: auto;
|
|
11
|
+
background-color: #fafaf9; /* paper-50 */
|
|
12
|
+
border-radius: 0.5rem;
|
|
13
|
+
border: 1px solid #e7e5e4; /* stone-200 */
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/* Spreadsheet base */
|
|
17
|
+
.notebook-spreadsheet {
|
|
18
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
19
|
+
font-size: 0.875rem;
|
|
20
|
+
color: #1c1917; /* ink-900 */
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/* Table styling */
|
|
24
|
+
.notebook-spreadsheet table {
|
|
25
|
+
border-collapse: separate;
|
|
26
|
+
border-spacing: 0;
|
|
27
|
+
background-color: #ffffff;
|
|
28
|
+
width: 100%;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/* Cell styling */
|
|
32
|
+
.notebook-spreadsheet td {
|
|
33
|
+
border: 1px solid #e7e5e4; /* stone-200 */
|
|
34
|
+
padding: 0;
|
|
35
|
+
background-color: #ffffff;
|
|
36
|
+
transition: background-color 0.15s ease;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* Cell hover */
|
|
40
|
+
.notebook-spreadsheet td:hover {
|
|
41
|
+
background-color: #fafaf9; /* paper-50 */
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* Selected cell */
|
|
45
|
+
.notebook-spreadsheet td.Spreadsheet__active-cell {
|
|
46
|
+
border: 2px solid #334155; /* primary-700 */
|
|
47
|
+
box-shadow: 0 0 0 1px #334155;
|
|
48
|
+
background-color: #ffffff;
|
|
49
|
+
z-index: 10;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* Header cells (row/column labels) */
|
|
53
|
+
.notebook-spreadsheet th {
|
|
54
|
+
background-color: #f5f5f4; /* stone-100 */
|
|
55
|
+
color: #57534e; /* ink-600 */
|
|
56
|
+
border: 1px solid #e7e5e4; /* stone-200 */
|
|
57
|
+
padding: 0.5rem;
|
|
58
|
+
font-weight: 600;
|
|
59
|
+
font-size: 0.75rem;
|
|
60
|
+
text-align: center;
|
|
61
|
+
position: sticky;
|
|
62
|
+
z-index: 5;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* Column headers */
|
|
66
|
+
.notebook-spreadsheet thead th {
|
|
67
|
+
top: 0;
|
|
68
|
+
z-index: 10;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/* Row headers */
|
|
72
|
+
.notebook-spreadsheet tbody th {
|
|
73
|
+
left: 0;
|
|
74
|
+
z-index: 5;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/* Corner header (top-left cell) */
|
|
78
|
+
.notebook-spreadsheet thead th:first-child {
|
|
79
|
+
left: 0;
|
|
80
|
+
z-index: 15;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/* Cell input */
|
|
84
|
+
.notebook-spreadsheet .Spreadsheet__data-editor {
|
|
85
|
+
width: 100%;
|
|
86
|
+
height: 100%;
|
|
87
|
+
border: none;
|
|
88
|
+
outline: none;
|
|
89
|
+
padding: 0.5rem;
|
|
90
|
+
font-family: inherit;
|
|
91
|
+
font-size: inherit;
|
|
92
|
+
color: inherit;
|
|
93
|
+
background-color: #ffffff;
|
|
94
|
+
box-sizing: border-box;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.notebook-spreadsheet .Spreadsheet__data-editor:focus {
|
|
98
|
+
background-color: #ffffff;
|
|
99
|
+
border: 2px solid #334155; /* primary-700 */
|
|
100
|
+
padding: calc(0.5rem - 1px);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/* Cell with formula indicator */
|
|
104
|
+
.notebook-spreadsheet .Spreadsheet__cell--formula {
|
|
105
|
+
font-style: italic;
|
|
106
|
+
background-color: #f0fdf4; /* success-50 */
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/* Read-only cells */
|
|
110
|
+
.notebook-spreadsheet .Spreadsheet__cell--readonly {
|
|
111
|
+
background-color: #f5f5f4; /* stone-100 */
|
|
112
|
+
color: #78716c; /* ink-500 */
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/* Selection highlight */
|
|
116
|
+
.notebook-spreadsheet .Spreadsheet__cell--selected {
|
|
117
|
+
background-color: #e0f2fe; /* primary-100 */
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/* Cell error state */
|
|
121
|
+
.notebook-spreadsheet .Spreadsheet__cell--error {
|
|
122
|
+
background-color: #fef2f2; /* error-50 */
|
|
123
|
+
color: #991b1b; /* error-800 */
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/* Cell value display */
|
|
127
|
+
.notebook-spreadsheet .Spreadsheet__value {
|
|
128
|
+
padding: 0.5rem;
|
|
129
|
+
min-height: 2rem;
|
|
130
|
+
display: flex;
|
|
131
|
+
align-items: center;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/* Number cells - align right */
|
|
135
|
+
.notebook-spreadsheet .Spreadsheet__cell--number .Spreadsheet__value {
|
|
136
|
+
justify-content: flex-end;
|
|
137
|
+
font-variant-numeric: tabular-nums;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/* Empty cells */
|
|
141
|
+
.notebook-spreadsheet .Spreadsheet__cell--empty .Spreadsheet__value {
|
|
142
|
+
color: #a8a29e; /* ink-400 */
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/* Copy/paste indicator */
|
|
146
|
+
.notebook-spreadsheet .Spreadsheet__floating-rect {
|
|
147
|
+
border: 2px dashed #334155; /* primary-700 */
|
|
148
|
+
background-color: rgba(51, 65, 85, 0.1);
|
|
149
|
+
pointer-events: none;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/* Scrollbar styling for webkit browsers */
|
|
153
|
+
.spreadsheet-container::-webkit-scrollbar {
|
|
154
|
+
width: 12px;
|
|
155
|
+
height: 12px;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.spreadsheet-container::-webkit-scrollbar-track {
|
|
159
|
+
background-color: #fafaf9; /* paper-50 */
|
|
160
|
+
border-radius: 0.5rem;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.spreadsheet-container::-webkit-scrollbar-thumb {
|
|
164
|
+
background-color: #d6d3d1; /* stone-300 */
|
|
165
|
+
border-radius: 0.5rem;
|
|
166
|
+
border: 2px solid #fafaf9;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.spreadsheet-container::-webkit-scrollbar-thumb:hover {
|
|
170
|
+
background-color: #a8a29e; /* ink-400 */
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/* Loading state */
|
|
174
|
+
.spreadsheet-container.loading {
|
|
175
|
+
opacity: 0.6;
|
|
176
|
+
pointer-events: none;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/* Responsive adjustments */
|
|
180
|
+
@media (max-width: 768px) {
|
|
181
|
+
.notebook-spreadsheet {
|
|
182
|
+
font-size: 0.75rem;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
.notebook-spreadsheet .Spreadsheet__value {
|
|
186
|
+
padding: 0.375rem;
|
|
187
|
+
min-height: 1.75rem;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.notebook-spreadsheet .Spreadsheet__data-editor {
|
|
191
|
+
padding: 0.375rem;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.notebook-spreadsheet th {
|
|
195
|
+
padding: 0.375rem;
|
|
196
|
+
font-size: 0.6875rem;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/* Print styles */
|
|
201
|
+
@media print {
|
|
202
|
+
.spreadsheet-container {
|
|
203
|
+
border: none;
|
|
204
|
+
overflow: visible;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
.notebook-spreadsheet td,
|
|
208
|
+
.notebook-spreadsheet th {
|
|
209
|
+
border-color: #000;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
.notebook-spreadsheet .Spreadsheet__active-cell {
|
|
213
|
+
border: 1px solid #000;
|
|
214
|
+
box-shadow: none;
|
|
215
|
+
}
|
|
216
|
+
}
|