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.
Files changed (78) hide show
  1. package/.claude/settings.local.json +29 -2
  2. package/.github/workflows/ci.yml +26 -0
  3. package/.github/workflows/claude-code-review.yml +44 -0
  4. package/.github/workflows/claude.yml +81 -0
  5. package/.github/workflows/release.yml +30 -0
  6. package/CHANGELOG.md +92 -20
  7. package/CLAUDE.md +196 -15
  8. package/CONTRIBUTING.md +3 -1
  9. package/README.md +80 -61
  10. package/RELEASE.md +91 -0
  11. package/TODO.md +77 -0
  12. package/dist/build-config.d.ts +3 -3
  13. package/dist/components/deleteConfirmModal.component.d.ts +7 -0
  14. package/dist/components/deleteConfirmModal.component.d.ts.map +1 -0
  15. package/dist/components/paneEditor.component.d.ts +9 -13
  16. package/dist/components/paneEditor.component.d.ts.map +1 -1
  17. package/dist/components/splitPreview.component.d.ts +50 -35
  18. package/dist/components/splitPreview.component.d.ts.map +1 -1
  19. package/dist/components/workspaceEditor.component.d.ts +61 -28
  20. package/dist/components/workspaceEditor.component.d.ts.map +1 -1
  21. package/dist/components/workspaceList.component.d.ts +56 -27
  22. package/dist/components/workspaceList.component.d.ts.map +1 -1
  23. package/dist/index.d.ts +6 -6
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +1 -1
  26. package/dist/index.js.LICENSE.txt +1 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/models/workspace.model.d.ts +118 -76
  29. package/dist/models/workspace.model.d.ts.map +1 -1
  30. package/dist/package.json +26 -0
  31. package/dist/providers/config.provider.d.ts +8 -8
  32. package/dist/providers/settings.provider.d.ts +7 -7
  33. package/dist/providers/settings.provider.d.ts.map +1 -1
  34. package/dist/providers/toolbar.provider.d.ts +23 -12
  35. package/dist/providers/toolbar.provider.d.ts.map +1 -1
  36. package/dist/services/startupCommand.service.d.ts +28 -0
  37. package/dist/services/startupCommand.service.d.ts.map +1 -0
  38. package/dist/services/workspaceBackground.service.d.ts +38 -0
  39. package/dist/services/workspaceBackground.service.d.ts.map +1 -0
  40. package/dist/services/workspaceEditor.service.d.ts +46 -24
  41. package/dist/services/workspaceEditor.service.d.ts.map +1 -1
  42. package/docs/DESIGN.md +57 -0
  43. package/docs/SESSION-2026-01-14-S1-DESIGN.md +134 -0
  44. package/docs/marketing_status.md +92 -0
  45. package/mockups/index.html +162 -0
  46. package/mockups/s1-tight-sharp.html +522 -0
  47. package/mockups/shared/base.css +216 -0
  48. package/mockups/v06-tabbed.html +643 -0
  49. package/package.json +3 -7
  50. package/screenshots/editor.png +0 -0
  51. package/screenshots/pane-edit.png +0 -0
  52. package/scripts/build-dev.js +2 -1
  53. package/scripts/build-prod.js +40 -0
  54. package/src/components/deleteConfirmModal.component.ts +23 -0
  55. package/src/components/paneEditor.component.pug +27 -43
  56. package/src/components/paneEditor.component.scss +37 -85
  57. package/src/components/paneEditor.component.ts +6 -16
  58. package/src/components/splitPreview.component.pug +36 -5
  59. package/src/components/splitPreview.component.scss +78 -45
  60. package/src/components/splitPreview.component.ts +83 -18
  61. package/src/components/workspaceEditor.component.pug +162 -74
  62. package/src/components/workspaceEditor.component.scss +261 -108
  63. package/src/components/workspaceEditor.component.ts +294 -31
  64. package/src/components/workspaceList.component.pug +32 -41
  65. package/src/components/workspaceList.component.scss +89 -74
  66. package/src/components/workspaceList.component.ts +181 -44
  67. package/src/index.ts +6 -0
  68. package/src/models/workspace.model.ts +113 -8
  69. package/src/providers/settings.provider.ts +2 -2
  70. package/src/providers/toolbar.provider.ts +113 -13
  71. package/src/services/startupCommand.service.ts +140 -0
  72. package/src/services/workspaceBackground.service.ts +167 -0
  73. package/src/services/workspaceEditor.service.ts +134 -65
  74. package/src/styles/_index.scss +3 -0
  75. package/src/styles/_mixins.scss +180 -0
  76. package/src/styles/_variables.scss +67 -0
  77. package/RELEASE_PLAN.md +0 -161
  78. 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
+ }