tabby-tabbyspaces 0.0.1 → 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/.claude/settings.local.json +29 -2
- package/.github/workflows/ci.yml +26 -0
- package/.github/workflows/claude-code-review.yml +44 -0
- package/.github/workflows/claude.yml +81 -0
- package/.github/workflows/release.yml +30 -0
- package/CHANGELOG.md +92 -20
- package/CLAUDE.md +196 -15
- package/CONTRIBUTING.md +3 -1
- package/README.md +80 -61
- package/RELEASE.md +91 -0
- package/TODO.md +77 -0
- package/dist/build-config.d.ts +3 -3
- package/dist/components/deleteConfirmModal.component.d.ts +7 -0
- package/dist/components/deleteConfirmModal.component.d.ts.map +1 -0
- package/dist/components/paneEditor.component.d.ts +9 -13
- package/dist/components/paneEditor.component.d.ts.map +1 -1
- package/dist/components/splitPreview.component.d.ts +50 -35
- package/dist/components/splitPreview.component.d.ts.map +1 -1
- package/dist/components/workspaceEditor.component.d.ts +61 -28
- package/dist/components/workspaceEditor.component.d.ts.map +1 -1
- package/dist/components/workspaceList.component.d.ts +56 -27
- package/dist/components/workspaceList.component.d.ts.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.LICENSE.txt +1 -1
- package/dist/index.js.map +1 -1
- package/dist/models/workspace.model.d.ts +118 -76
- package/dist/models/workspace.model.d.ts.map +1 -1
- package/dist/package.json +26 -0
- package/dist/providers/config.provider.d.ts +8 -8
- package/dist/providers/settings.provider.d.ts +7 -7
- package/dist/providers/settings.provider.d.ts.map +1 -1
- package/dist/providers/toolbar.provider.d.ts +23 -12
- package/dist/providers/toolbar.provider.d.ts.map +1 -1
- package/dist/services/startupCommand.service.d.ts +28 -0
- package/dist/services/startupCommand.service.d.ts.map +1 -0
- package/dist/services/workspaceBackground.service.d.ts +38 -0
- package/dist/services/workspaceBackground.service.d.ts.map +1 -0
- package/dist/services/workspaceEditor.service.d.ts +46 -24
- package/dist/services/workspaceEditor.service.d.ts.map +1 -1
- package/docs/DESIGN.md +57 -0
- package/docs/SESSION-2026-01-14-S1-DESIGN.md +134 -0
- package/docs/marketing_status.md +92 -0
- package/mockups/index.html +162 -0
- package/mockups/s1-tight-sharp.html +522 -0
- package/mockups/shared/base.css +216 -0
- package/mockups/v06-tabbed.html +643 -0
- package/package.json +3 -7
- package/screenshots/editor.png +0 -0
- package/screenshots/pane-edit.png +0 -0
- package/scripts/build-dev.js +2 -1
- package/scripts/build-prod.js +40 -0
- package/src/components/deleteConfirmModal.component.ts +23 -0
- package/src/components/paneEditor.component.pug +27 -43
- package/src/components/paneEditor.component.scss +37 -85
- package/src/components/paneEditor.component.ts +6 -16
- package/src/components/splitPreview.component.pug +36 -5
- package/src/components/splitPreview.component.scss +78 -45
- package/src/components/splitPreview.component.ts +83 -18
- package/src/components/workspaceEditor.component.pug +162 -74
- package/src/components/workspaceEditor.component.scss +261 -108
- package/src/components/workspaceEditor.component.ts +294 -31
- package/src/components/workspaceList.component.pug +32 -41
- package/src/components/workspaceList.component.scss +89 -74
- package/src/components/workspaceList.component.ts +181 -44
- package/src/index.ts +6 -0
- package/src/models/workspace.model.ts +113 -8
- package/src/providers/settings.provider.ts +2 -2
- package/src/providers/toolbar.provider.ts +113 -13
- package/src/services/startupCommand.service.ts +140 -0
- package/src/services/workspaceBackground.service.ts +167 -0
- package/src/services/workspaceEditor.service.ts +134 -65
- package/src/styles/_index.scss +3 -0
- package/src/styles/_mixins.scss +180 -0
- package/src/styles/_variables.scss +67 -0
- package/RELEASE_PLAN.md +0 -161
- package/screenshots/workspace-edit.png +0 -0
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
/* TabbySpaces Design Mockups - Base Styles */
|
|
2
|
+
/* Simulates Tabby's dark theme environment */
|
|
3
|
+
|
|
4
|
+
:root {
|
|
5
|
+
/* Tabby-like dark theme variables */
|
|
6
|
+
--theme-bg: #1e1e1e;
|
|
7
|
+
--theme-bg-more: #252526;
|
|
8
|
+
--theme-bg-more-more: #2d2d30;
|
|
9
|
+
--theme-fg: #cccccc;
|
|
10
|
+
--theme-fg-more: #ffffff;
|
|
11
|
+
--theme-fg-less: #808080;
|
|
12
|
+
--theme-border: #3c3c3c;
|
|
13
|
+
--theme-primary: #0078d4;
|
|
14
|
+
--theme-success: #10b981;
|
|
15
|
+
--theme-danger: #ef4444;
|
|
16
|
+
--theme-warning: #f59e0b;
|
|
17
|
+
|
|
18
|
+
/* Spacing scale */
|
|
19
|
+
--space-xs: 2px;
|
|
20
|
+
--space-sm: 4px;
|
|
21
|
+
--space-md: 8px;
|
|
22
|
+
--space-lg: 12px;
|
|
23
|
+
--space-xl: 16px;
|
|
24
|
+
--space-2xl: 20px;
|
|
25
|
+
--space-3xl: 24px;
|
|
26
|
+
--space-4xl: 32px;
|
|
27
|
+
|
|
28
|
+
/* Border radius */
|
|
29
|
+
--radius-sm: 4px;
|
|
30
|
+
--radius-md: 6px;
|
|
31
|
+
--radius-lg: 8px;
|
|
32
|
+
--radius-xl: 12px;
|
|
33
|
+
|
|
34
|
+
/* Typography */
|
|
35
|
+
--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
|
36
|
+
--font-mono: "Cascadia Code", "Fira Code", Consolas, monospace;
|
|
37
|
+
--font-size-xs: 0.75rem;
|
|
38
|
+
--font-size-sm: 0.85rem;
|
|
39
|
+
--font-size-md: 1rem;
|
|
40
|
+
--font-size-lg: 1.25rem;
|
|
41
|
+
--font-size-xl: 1.5rem;
|
|
42
|
+
|
|
43
|
+
/* Shadows */
|
|
44
|
+
--shadow-sm: 0 1px 2px rgba(0,0,0,0.3);
|
|
45
|
+
--shadow-md: 0 4px 6px rgba(0,0,0,0.4);
|
|
46
|
+
--shadow-lg: 0 10px 15px rgba(0,0,0,0.5);
|
|
47
|
+
|
|
48
|
+
/* Transitions */
|
|
49
|
+
--transition-fast: 150ms ease;
|
|
50
|
+
--transition-normal: 250ms ease;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/* Reset */
|
|
54
|
+
*, *::before, *::after {
|
|
55
|
+
box-sizing: border-box;
|
|
56
|
+
margin: 0;
|
|
57
|
+
padding: 0;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
body {
|
|
61
|
+
font-family: var(--font-family);
|
|
62
|
+
font-size: var(--font-size-md);
|
|
63
|
+
color: var(--theme-fg);
|
|
64
|
+
background: var(--theme-bg);
|
|
65
|
+
line-height: 1.5;
|
|
66
|
+
min-height: 100vh;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/* Container - simulates Tabby settings panel */
|
|
70
|
+
.mockup-container {
|
|
71
|
+
max-width: 876px;
|
|
72
|
+
margin: 0 auto;
|
|
73
|
+
padding: var(--space-xl);
|
|
74
|
+
background: var(--theme-bg);
|
|
75
|
+
min-height: 100vh;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/* Typography utilities */
|
|
79
|
+
.text-muted { color: var(--theme-fg-less); }
|
|
80
|
+
.text-primary { color: var(--theme-primary); }
|
|
81
|
+
.text-success { color: var(--theme-success); }
|
|
82
|
+
.text-danger { color: var(--theme-danger); }
|
|
83
|
+
.text-sm { font-size: var(--font-size-sm); }
|
|
84
|
+
.text-xs { font-size: var(--font-size-xs); }
|
|
85
|
+
.text-lg { font-size: var(--font-size-lg); }
|
|
86
|
+
.text-xl { font-size: var(--font-size-xl); }
|
|
87
|
+
.font-mono { font-family: var(--font-mono); }
|
|
88
|
+
.font-bold { font-weight: 600; }
|
|
89
|
+
|
|
90
|
+
/* Common form elements */
|
|
91
|
+
input[type="text"],
|
|
92
|
+
input[type="color"],
|
|
93
|
+
select {
|
|
94
|
+
background: var(--theme-bg);
|
|
95
|
+
border: 1px solid var(--theme-border);
|
|
96
|
+
border-radius: var(--radius-md);
|
|
97
|
+
color: var(--theme-fg);
|
|
98
|
+
padding: var(--space-md) var(--space-lg);
|
|
99
|
+
font-size: var(--font-size-sm);
|
|
100
|
+
transition: border-color var(--transition-fast);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
input[type="text"]:focus,
|
|
104
|
+
select:focus {
|
|
105
|
+
outline: none;
|
|
106
|
+
border-color: var(--theme-primary);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/* Button base */
|
|
110
|
+
.btn {
|
|
111
|
+
display: inline-flex;
|
|
112
|
+
align-items: center;
|
|
113
|
+
gap: var(--space-md);
|
|
114
|
+
padding: var(--space-md) var(--space-lg);
|
|
115
|
+
border: none;
|
|
116
|
+
border-radius: var(--radius-sm);
|
|
117
|
+
font-size: var(--font-size-sm);
|
|
118
|
+
cursor: pointer;
|
|
119
|
+
transition: all var(--transition-fast);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.btn-primary {
|
|
123
|
+
background: var(--theme-primary);
|
|
124
|
+
color: white;
|
|
125
|
+
}
|
|
126
|
+
.btn-primary:hover {
|
|
127
|
+
filter: brightness(1.1);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.btn-success {
|
|
131
|
+
background: var(--theme-success);
|
|
132
|
+
color: white;
|
|
133
|
+
}
|
|
134
|
+
.btn-success:hover {
|
|
135
|
+
filter: brightness(1.1);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.btn-danger {
|
|
139
|
+
background: var(--theme-danger);
|
|
140
|
+
color: white;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.btn-ghost {
|
|
144
|
+
background: transparent;
|
|
145
|
+
color: var(--theme-fg);
|
|
146
|
+
}
|
|
147
|
+
.btn-ghost:hover {
|
|
148
|
+
background: var(--theme-bg-more);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/* Card base */
|
|
152
|
+
.card {
|
|
153
|
+
background: var(--theme-bg-more);
|
|
154
|
+
border: 1px solid var(--theme-border);
|
|
155
|
+
border-radius: var(--radius-lg);
|
|
156
|
+
padding: var(--space-xl);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.card-hover:hover {
|
|
160
|
+
border-color: var(--theme-primary);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/* Flex utilities */
|
|
164
|
+
.flex { display: flex; }
|
|
165
|
+
.flex-col { flex-direction: column; }
|
|
166
|
+
.items-center { align-items: center; }
|
|
167
|
+
.justify-between { justify-content: space-between; }
|
|
168
|
+
.gap-xs { gap: var(--space-xs); }
|
|
169
|
+
.gap-sm { gap: var(--space-sm); }
|
|
170
|
+
.gap-md { gap: var(--space-md); }
|
|
171
|
+
.gap-lg { gap: var(--space-lg); }
|
|
172
|
+
.gap-xl { gap: var(--space-xl); }
|
|
173
|
+
|
|
174
|
+
/* Grid utilities */
|
|
175
|
+
.grid { display: grid; }
|
|
176
|
+
.grid-cols-2 { grid-template-columns: repeat(2, 1fr); }
|
|
177
|
+
|
|
178
|
+
/* Spacing utilities */
|
|
179
|
+
.p-md { padding: var(--space-md); }
|
|
180
|
+
.p-lg { padding: var(--space-lg); }
|
|
181
|
+
.p-xl { padding: var(--space-xl); }
|
|
182
|
+
.mt-md { margin-top: var(--space-md); }
|
|
183
|
+
.mt-lg { margin-top: var(--space-lg); }
|
|
184
|
+
.mt-xl { margin-top: var(--space-xl); }
|
|
185
|
+
.mb-md { margin-bottom: var(--space-md); }
|
|
186
|
+
.mb-lg { margin-bottom: var(--space-lg); }
|
|
187
|
+
|
|
188
|
+
/* Design notes (visible as overlay) */
|
|
189
|
+
.design-notes {
|
|
190
|
+
position: fixed;
|
|
191
|
+
top: var(--space-lg);
|
|
192
|
+
right: var(--space-lg);
|
|
193
|
+
background: rgba(0,0,0,0.9);
|
|
194
|
+
border: 1px solid var(--theme-border);
|
|
195
|
+
border-radius: var(--radius-lg);
|
|
196
|
+
padding: var(--space-lg);
|
|
197
|
+
max-width: 300px;
|
|
198
|
+
font-size: var(--font-size-xs);
|
|
199
|
+
color: var(--theme-fg-less);
|
|
200
|
+
z-index: 1000;
|
|
201
|
+
}
|
|
202
|
+
.design-notes h4 {
|
|
203
|
+
color: var(--theme-primary);
|
|
204
|
+
margin-bottom: var(--space-md);
|
|
205
|
+
}
|
|
206
|
+
.design-notes ul {
|
|
207
|
+
list-style: none;
|
|
208
|
+
padding-left: 0;
|
|
209
|
+
}
|
|
210
|
+
.design-notes li {
|
|
211
|
+
margin-bottom: var(--space-sm);
|
|
212
|
+
}
|
|
213
|
+
.design-notes li::before {
|
|
214
|
+
content: "• ";
|
|
215
|
+
color: var(--theme-primary);
|
|
216
|
+
}
|