@amulet-laboratories/hex 0.3.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 (149) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +120 -0
  3. package/dist/aldricpace.css +5 -0
  4. package/dist/briarcove.css +5 -0
  5. package/dist/briarcovelib.css +5 -0
  6. package/dist/compass.css +5 -0
  7. package/dist/duskline.css +5 -0
  8. package/dist/forge.css +5 -0
  9. package/dist/garden.css +5 -0
  10. package/dist/greyline.css +5 -0
  11. package/dist/hex.css +5 -0
  12. package/dist/kbcv.css +5 -0
  13. package/dist/lanternhouse.css +5 -0
  14. package/dist/marenlys.css +5 -0
  15. package/dist/quizbit.css +5 -0
  16. package/dist/saltsignal.css +5 -0
  17. package/dist/scoped.css +1 -0
  18. package/dist/spacewizard.css +5 -0
  19. package/dist/tidemark.css +5 -0
  20. package/dist/undertow.css +5 -0
  21. package/dist/vscode.css +5 -0
  22. package/package.json +119 -0
  23. package/src/index.css +10 -0
  24. package/src/scoped/bridge.css +47 -0
  25. package/src/scoped/index.css +51 -0
  26. package/src/scoped/themes/aldricpace.css +115 -0
  27. package/src/scoped/themes/briarcove.css +123 -0
  28. package/src/scoped/themes/briarcovelib.css +111 -0
  29. package/src/scoped/themes/compass.css +111 -0
  30. package/src/scoped/themes/duskline.css +117 -0
  31. package/src/scoped/themes/forge.css +123 -0
  32. package/src/scoped/themes/garden.css +123 -0
  33. package/src/scoped/themes/greyline.css +116 -0
  34. package/src/scoped/themes/kbcv.css +111 -0
  35. package/src/scoped/themes/lanternhouse.css +111 -0
  36. package/src/scoped/themes/marenlys.css +112 -0
  37. package/src/scoped/themes/quizbit.css +101 -0
  38. package/src/scoped/themes/saltsignal.css +114 -0
  39. package/src/scoped/themes/spacewizard.css +115 -0
  40. package/src/scoped/themes/tidemark.css +119 -0
  41. package/src/scoped/themes/undertow.css +113 -0
  42. package/src/scoped/themes/vscode.css +230 -0
  43. package/src/scoped/tokens.css +21 -0
  44. package/src/shared/a11y.css +175 -0
  45. package/src/shared/components/core.css +1654 -0
  46. package/src/shared/components/data.css +418 -0
  47. package/src/shared/components/editor.css +358 -0
  48. package/src/shared/components/extras.css +897 -0
  49. package/src/shared/components/layout.css +663 -0
  50. package/src/shared/components/lists.css +278 -0
  51. package/src/shared/components/menus.css +377 -0
  52. package/src/shared/components/nav.css +943 -0
  53. package/src/shared/components/prose.css +302 -0
  54. package/src/shared/components/shell.css +528 -0
  55. package/src/shared/components/spatial.css +184 -0
  56. package/src/shared/components/temporal.css +191 -0
  57. package/src/shared/components/web.css +1689 -0
  58. package/src/shared/rig-defaults.css +121 -0
  59. package/src/shared/scroll-animations.css +176 -0
  60. package/src/shared/tokens.css +125 -0
  61. package/src/shared/utilities.css +204 -0
  62. package/src/themes/aldricpace/base.css +114 -0
  63. package/src/themes/aldricpace/components.css +22 -0
  64. package/src/themes/aldricpace/domains.css +19 -0
  65. package/src/themes/aldricpace/index.css +6 -0
  66. package/src/themes/aldricpace/tokens.css +169 -0
  67. package/src/themes/andrewpassanisi/base.css +192 -0
  68. package/src/themes/andrewpassanisi/index.css +11 -0
  69. package/src/themes/andrewpassanisi/tokens.css +136 -0
  70. package/src/themes/briarcove/base.css +170 -0
  71. package/src/themes/briarcove/components.css +27 -0
  72. package/src/themes/briarcove/domains.css +72 -0
  73. package/src/themes/briarcove/index.css +6 -0
  74. package/src/themes/briarcove/tokens.css +179 -0
  75. package/src/themes/briarcovelib/base.css +111 -0
  76. package/src/themes/briarcovelib/components.css +22 -0
  77. package/src/themes/briarcovelib/domains.css +19 -0
  78. package/src/themes/briarcovelib/index.css +6 -0
  79. package/src/themes/briarcovelib/tokens.css +167 -0
  80. package/src/themes/compass/base.css +112 -0
  81. package/src/themes/compass/components.css +22 -0
  82. package/src/themes/compass/domains.css +19 -0
  83. package/src/themes/compass/index.css +6 -0
  84. package/src/themes/compass/tokens.css +167 -0
  85. package/src/themes/duskline/base.css +167 -0
  86. package/src/themes/duskline/components.css +27 -0
  87. package/src/themes/duskline/domains.css +72 -0
  88. package/src/themes/duskline/index.css +6 -0
  89. package/src/themes/duskline/tokens.css +171 -0
  90. package/src/themes/forge/base.css +165 -0
  91. package/src/themes/forge/components.css +24 -0
  92. package/src/themes/forge/domains.css +72 -0
  93. package/src/themes/forge/index.css +6 -0
  94. package/src/themes/forge/tokens.css +178 -0
  95. package/src/themes/garden/base.css +167 -0
  96. package/src/themes/garden/components.css +27 -0
  97. package/src/themes/garden/domains.css +72 -0
  98. package/src/themes/garden/index.css +6 -0
  99. package/src/themes/garden/tokens.css +178 -0
  100. package/src/themes/greyline/base.css +165 -0
  101. package/src/themes/greyline/components.css +24 -0
  102. package/src/themes/greyline/domains.css +70 -0
  103. package/src/themes/greyline/index.css +6 -0
  104. package/src/themes/greyline/tokens.css +161 -0
  105. package/src/themes/kbcv/base.css +112 -0
  106. package/src/themes/kbcv/components.css +22 -0
  107. package/src/themes/kbcv/domains.css +19 -0
  108. package/src/themes/kbcv/index.css +6 -0
  109. package/src/themes/kbcv/tokens.css +167 -0
  110. package/src/themes/lanternhouse/base.css +170 -0
  111. package/src/themes/lanternhouse/components.css +27 -0
  112. package/src/themes/lanternhouse/domains.css +72 -0
  113. package/src/themes/lanternhouse/index.css +6 -0
  114. package/src/themes/lanternhouse/tokens.css +167 -0
  115. package/src/themes/marenlys/base.css +181 -0
  116. package/src/themes/marenlys/components.css +27 -0
  117. package/src/themes/marenlys/domains.css +72 -0
  118. package/src/themes/marenlys/index.css +6 -0
  119. package/src/themes/marenlys/tokens.css +167 -0
  120. package/src/themes/quizbit/base.css +120 -0
  121. package/src/themes/quizbit/components.css +27 -0
  122. package/src/themes/quizbit/domains.css +7 -0
  123. package/src/themes/quizbit/index.css +6 -0
  124. package/src/themes/quizbit/tokens.css +132 -0
  125. package/src/themes/saltsignal/base.css +168 -0
  126. package/src/themes/saltsignal/components.css +27 -0
  127. package/src/themes/saltsignal/domains.css +72 -0
  128. package/src/themes/saltsignal/index.css +6 -0
  129. package/src/themes/saltsignal/tokens.css +170 -0
  130. package/src/themes/spacewizard/base.css +165 -0
  131. package/src/themes/spacewizard/components.css +24 -0
  132. package/src/themes/spacewizard/domains.css +70 -0
  133. package/src/themes/spacewizard/index.css +6 -0
  134. package/src/themes/spacewizard/tokens.css +160 -0
  135. package/src/themes/tidemark/base.css +169 -0
  136. package/src/themes/tidemark/components.css +27 -0
  137. package/src/themes/tidemark/domains.css +72 -0
  138. package/src/themes/tidemark/index.css +6 -0
  139. package/src/themes/tidemark/tokens.css +175 -0
  140. package/src/themes/undertow/base.css +114 -0
  141. package/src/themes/undertow/components.css +22 -0
  142. package/src/themes/undertow/domains.css +19 -0
  143. package/src/themes/undertow/index.css +6 -0
  144. package/src/themes/undertow/tokens.css +171 -0
  145. package/src/themes/vscode/base.css +104 -0
  146. package/src/themes/vscode/components.css +24 -0
  147. package/src/themes/vscode/domains.css +132 -0
  148. package/src/themes/vscode/index.css +13 -0
  149. package/src/themes/vscode/tokens.css +346 -0
@@ -0,0 +1,528 @@
1
+ /* Hex — Shared Shell Components
2
+ * Theme styles for Rig's shell package: IdeShell, ChatPanel, SearchPanel,
3
+ * FileBrowser, ContentViewer, FormView, WelcomeView, SettingsView.
4
+ */
5
+
6
+ /* ───────── IdeShell ───────── */
7
+
8
+ [data-rig-ide-shell] {
9
+ @apply bg-background text-foreground font-mono text-sm;
10
+ }
11
+
12
+ /* ───────── ChatPanel ───────── */
13
+
14
+ [data-rig-chat-panel] {
15
+ background: var(--color-background);
16
+ }
17
+
18
+ [data-rig-chat-panel-header] {
19
+ border-bottom: 1px solid var(--rig-sidebar-border);
20
+ font-size: 12px;
21
+ font-family: var(--font-mono);
22
+ color: var(--color-foreground);
23
+ }
24
+
25
+ [data-rig-chat-panel-messages] {
26
+ display: flex;
27
+ flex-direction: column;
28
+ gap: 16px;
29
+ }
30
+
31
+ [data-rig-chat-panel-message] {
32
+ padding: 0;
33
+ }
34
+
35
+ [data-rig-chat-panel-input] {
36
+ border-top: 1px solid var(--rig-sidebar-border);
37
+ padding: 0;
38
+ }
39
+
40
+ /* ── Header ── */
41
+
42
+ [data-rig-chat-header-left] {
43
+ display: flex;
44
+ align-items: center;
45
+ gap: 6px;
46
+ }
47
+
48
+ [data-rig-chat-header-actions] {
49
+ display: flex;
50
+ align-items: center;
51
+ gap: 2px;
52
+ }
53
+
54
+ [data-rig-chat-header-btn] {
55
+ display: flex;
56
+ align-items: center;
57
+ justify-content: center;
58
+ width: 22px;
59
+ height: 22px;
60
+ border: none;
61
+ background: none;
62
+ color: var(--color-muted-foreground);
63
+ border-radius: 4px;
64
+ cursor: pointer;
65
+ transition:
66
+ background-color 0.1s,
67
+ color 0.1s;
68
+ }
69
+
70
+ [data-rig-chat-header-btn]:hover {
71
+ background: color-mix(in srgb, var(--color-foreground) 10%, transparent);
72
+ color: var(--color-foreground);
73
+ }
74
+
75
+ [data-rig-chat-icon-accent] {
76
+ color: var(--color-info);
77
+ }
78
+
79
+ /* ── Chat bubbles ── */
80
+
81
+ [data-rig-chat-bubble] {
82
+ font-size: 12px;
83
+ line-height: 1.6;
84
+ }
85
+
86
+ /* User: right-aligned pill */
87
+ [data-rig-chat-bubble][data-role='user'] {
88
+ display: flex;
89
+ flex-direction: column;
90
+ align-items: flex-end;
91
+ }
92
+
93
+ [data-rig-chat-bubble][data-role='user'] [data-rig-chat-bubble-content] {
94
+ background: color-mix(in srgb, var(--color-primary) 15%, transparent);
95
+ border: 1px solid color-mix(in srgb, var(--color-primary) 20%, transparent);
96
+ border-radius: 12px 12px 4px 12px;
97
+ padding: 8px 14px;
98
+ max-width: 88%;
99
+ color: var(--color-foreground);
100
+ white-space: pre-wrap;
101
+ word-break: break-word;
102
+ }
103
+
104
+ /* Assistant: left-aligned, full width */
105
+ [data-rig-chat-bubble][data-role='assistant'] {
106
+ display: flex;
107
+ flex-direction: column;
108
+ }
109
+
110
+ [data-rig-chat-bubble-header] {
111
+ display: flex;
112
+ align-items: center;
113
+ gap: 5px;
114
+ margin-bottom: 4px;
115
+ }
116
+
117
+ [data-rig-chat-bubble-label] {
118
+ font-size: 11px;
119
+ font-family: var(--font-mono);
120
+ color: var(--color-info);
121
+ font-weight: 500;
122
+ }
123
+
124
+ [data-rig-chat-bubble][data-role='assistant'] [data-rig-chat-bubble-content] {
125
+ color: color-mix(in srgb, var(--color-foreground) 90%, transparent);
126
+ font-size: 12px;
127
+ line-height: 1.7;
128
+ }
129
+
130
+ [data-rig-chat-bubble-time] {
131
+ font-size: 10px;
132
+ font-family: var(--font-mono);
133
+ color: var(--color-muted-foreground);
134
+ opacity: 0.5;
135
+ }
136
+
137
+ /* ── Tool calls ── */
138
+
139
+ [data-rig-chat-tools] {
140
+ display: flex;
141
+ flex-wrap: wrap;
142
+ gap: 4px;
143
+ margin-top: 8px;
144
+ }
145
+
146
+ [data-rig-chat-tool-badge] {
147
+ display: inline-flex;
148
+ align-items: center;
149
+ gap: 4px;
150
+ font-size: 10px;
151
+ font-family: var(--font-mono);
152
+ color: var(--color-muted-foreground);
153
+ background: color-mix(in srgb, var(--color-foreground) 6%, transparent);
154
+ border: 1px solid color-mix(in srgb, var(--color-foreground) 8%, transparent);
155
+ border-radius: 4px;
156
+ padding: 2px 8px;
157
+ height: 20px;
158
+ }
159
+
160
+ [data-rig-chat-tool-error] {
161
+ color: var(--color-destructive);
162
+ font-size: 9px;
163
+ text-transform: uppercase;
164
+ }
165
+
166
+ /* ── Typing indicator ── */
167
+
168
+ [data-rig-chat-typing] {
169
+ display: inline-flex;
170
+ align-items: center;
171
+ gap: 4px;
172
+ padding: 6px 0;
173
+ }
174
+
175
+ [data-rig-chat-typing-dot] {
176
+ width: 5px;
177
+ height: 5px;
178
+ border-radius: 50%;
179
+ background: var(--color-info);
180
+ opacity: 0.3;
181
+ animation: chat-typing 1.4s infinite ease-in-out;
182
+ }
183
+
184
+ [data-rig-chat-typing-dot]:nth-child(2) {
185
+ animation-delay: 0.2s;
186
+ }
187
+
188
+ [data-rig-chat-typing-dot]:nth-child(3) {
189
+ animation-delay: 0.4s;
190
+ }
191
+
192
+ @keyframes chat-typing {
193
+ 0%,
194
+ 80%,
195
+ 100% {
196
+ opacity: 0.3;
197
+ transform: scale(1);
198
+ }
199
+ 40% {
200
+ opacity: 1;
201
+ transform: scale(1.3);
202
+ }
203
+ }
204
+
205
+ /* ── Empty state ── */
206
+
207
+ [data-rig-chat-empty] {
208
+ display: flex;
209
+ flex-direction: column;
210
+ align-items: center;
211
+ justify-content: center;
212
+ height: 100%;
213
+ padding: 2rem;
214
+ text-align: center;
215
+ }
216
+
217
+ [data-rig-chat-empty-icon] {
218
+ color: var(--color-info);
219
+ opacity: 0.3;
220
+ margin-bottom: 12px;
221
+ }
222
+
223
+ [data-rig-chat-empty-title] {
224
+ font-size: 14px;
225
+ font-family: var(--font-mono);
226
+ color: var(--color-foreground);
227
+ margin-bottom: 6px;
228
+ }
229
+
230
+ [data-rig-chat-empty-desc] {
231
+ font-size: 11px;
232
+ color: var(--color-muted-foreground);
233
+ line-height: 1.5;
234
+ max-width: 220px;
235
+ }
236
+
237
+ /* ── Input area ── */
238
+
239
+ [data-rig-chat-input-area] {
240
+ display: flex;
241
+ flex-direction: column;
242
+ }
243
+
244
+ [data-rig-chat-context-bar] {
245
+ display: flex;
246
+ align-items: center;
247
+ gap: 4px;
248
+ padding: 8px 12px 0;
249
+ }
250
+
251
+ [data-rig-chat-context-chip] {
252
+ display: inline-flex;
253
+ align-items: center;
254
+ gap: 4px;
255
+ font-size: 10px;
256
+ font-family: var(--font-mono);
257
+ color: var(--color-muted-foreground);
258
+ background: color-mix(in srgb, var(--color-foreground) 5%, transparent);
259
+ border: 1px solid color-mix(in srgb, var(--color-foreground) 8%, transparent);
260
+ border-radius: 10px;
261
+ padding: 2px 8px;
262
+ height: 20px;
263
+ }
264
+
265
+ [data-rig-chat-context-dot] {
266
+ width: 6px;
267
+ height: 6px;
268
+ border-radius: 50%;
269
+ flex-shrink: 0;
270
+ }
271
+
272
+ [data-rig-chat-composer] {
273
+ display: flex;
274
+ align-items: flex-end;
275
+ gap: 6px;
276
+ padding: 8px 12px;
277
+ }
278
+
279
+ [data-rig-chat-textarea] {
280
+ flex: 1;
281
+ resize: none;
282
+ min-height: 22px;
283
+ max-height: 120px;
284
+ padding: 6px 10px;
285
+ font-size: 12px;
286
+ font-family: var(--font-sans);
287
+ line-height: 1.5;
288
+ color: var(--color-foreground);
289
+ background: color-mix(in srgb, var(--color-foreground) 4%, transparent);
290
+ border: 1px solid var(--rig-sidebar-border);
291
+ border-radius: 8px;
292
+ outline: none;
293
+ overflow-y: auto;
294
+ }
295
+
296
+ [data-rig-chat-textarea]:focus {
297
+ border-color: color-mix(in srgb, var(--color-info) 50%, var(--rig-sidebar-border));
298
+ }
299
+
300
+ [data-rig-chat-textarea]::placeholder {
301
+ color: var(--color-muted-foreground);
302
+ opacity: 0.5;
303
+ }
304
+
305
+ [data-rig-chat-textarea]:disabled {
306
+ opacity: 0.5;
307
+ }
308
+
309
+ [data-rig-chat-send] {
310
+ display: flex;
311
+ align-items: center;
312
+ justify-content: center;
313
+ width: 30px;
314
+ height: 30px;
315
+ border-radius: 8px;
316
+ border: none;
317
+ background: var(--color-info);
318
+ color: #fff;
319
+ cursor: pointer;
320
+ flex-shrink: 0;
321
+ transition:
322
+ opacity 0.15s,
323
+ transform 0.1s;
324
+ }
325
+
326
+ [data-rig-chat-send]:disabled {
327
+ opacity: 0.2;
328
+ cursor: default;
329
+ }
330
+
331
+ [data-rig-chat-send]:not(:disabled):hover {
332
+ opacity: 0.9;
333
+ transform: scale(1.04);
334
+ }
335
+
336
+ [data-rig-chat-send]:not(:disabled):active {
337
+ transform: scale(0.96);
338
+ }
339
+
340
+ /* ── Footer: model + hints ── */
341
+
342
+ [data-rig-chat-footer] {
343
+ display: flex;
344
+ align-items: center;
345
+ justify-content: space-between;
346
+ padding: 0 12px 8px;
347
+ }
348
+
349
+ [data-rig-chat-footer-hint] {
350
+ font-size: 10px;
351
+ font-family: var(--font-mono);
352
+ color: var(--color-muted-foreground);
353
+ opacity: 0.4;
354
+ }
355
+
356
+ [data-rig-chat-footer-hint] kbd {
357
+ font-family: var(--font-mono);
358
+ font-size: 10px;
359
+ padding: 0 3px;
360
+ border: 1px solid color-mix(in srgb, var(--color-foreground) 15%, transparent);
361
+ border-radius: 3px;
362
+ }
363
+
364
+ /* ── Model selector ── */
365
+
366
+ [data-rig-chat-model-selector] {
367
+ display: inline-flex;
368
+ align-items: center;
369
+ gap: 4px;
370
+ font-size: 10px;
371
+ font-family: var(--font-mono);
372
+ color: var(--color-muted-foreground);
373
+ background: none;
374
+ border: none;
375
+ cursor: pointer;
376
+ padding: 2px 6px;
377
+ border-radius: 4px;
378
+ white-space: nowrap;
379
+ transition:
380
+ background-color 0.1s,
381
+ color 0.1s;
382
+ }
383
+
384
+ [data-rig-chat-model-selector]:hover {
385
+ background: color-mix(in srgb, var(--color-foreground) 8%, transparent);
386
+ color: var(--color-foreground);
387
+ }
388
+
389
+ [data-rig-chat-model-menu] {
390
+ position: absolute;
391
+ bottom: 100%;
392
+ left: 0;
393
+ margin-bottom: 4px;
394
+ min-width: 200px;
395
+ padding: 4px 0;
396
+ background: var(--vsc-menu-bg);
397
+ border: 1px solid var(--vsc-widget-border);
398
+ border-radius: 5px;
399
+ box-shadow: 0 8px 24px rgb(0 0 0 / 50%);
400
+ z-index: 9999;
401
+ }
402
+
403
+ [data-rig-chat-model-option] {
404
+ display: flex;
405
+ align-items: center;
406
+ justify-content: space-between;
407
+ width: 100%;
408
+ height: 28px;
409
+ padding: 0 12px;
410
+ border: none;
411
+ background: none;
412
+ color: var(--color-foreground);
413
+ font-size: 12px;
414
+ font-family: var(--font-mono);
415
+ cursor: default;
416
+ text-align: left;
417
+ transition: background-color 0.1s;
418
+ }
419
+
420
+ [data-rig-chat-model-option]:hover {
421
+ background: var(--vsc-menu-selection-bg);
422
+ color: var(--vsc-list-active-fg);
423
+ }
424
+
425
+ [data-rig-chat-model-option][data-selected] {
426
+ color: var(--color-info);
427
+ }
428
+
429
+ [data-rig-chat-model-option-left] {
430
+ display: flex;
431
+ align-items: center;
432
+ gap: 6px;
433
+ }
434
+
435
+ [data-rig-chat-model-option-desc] {
436
+ font-size: 10px;
437
+ color: var(--color-muted-foreground);
438
+ }
439
+
440
+ /* ───────── SearchPanel ───────── */
441
+
442
+ [data-rig-search-panel] {
443
+ background: var(--color-background);
444
+ }
445
+
446
+ /* ───────── FileBrowser ───────── */
447
+
448
+ [data-rig-file-browser] {
449
+ background: var(--color-background);
450
+ }
451
+
452
+ [data-rig-file-browser-content] {
453
+ padding-top: 6px;
454
+ }
455
+
456
+ /* ───────── ContentViewer ───────── */
457
+
458
+ [data-rig-content-viewer] {
459
+ background: var(--color-background);
460
+ }
461
+
462
+ [data-rig-content-viewer-breadcrumbs] {
463
+ border-bottom: 1px solid var(--color-border);
464
+ }
465
+
466
+ [data-rig-content-viewer-header] {
467
+ padding: 0;
468
+ border-bottom: 1px solid var(--color-border);
469
+ }
470
+
471
+ [data-rig-content-viewer-body] {
472
+ padding: 0;
473
+ }
474
+
475
+ [data-rig-content-viewer-empty] {
476
+ display: flex;
477
+ align-items: center;
478
+ justify-content: center;
479
+ height: 8rem;
480
+ color: var(--color-muted-foreground);
481
+ font-size: 12px;
482
+ font-family: var(--font-mono);
483
+ }
484
+
485
+ /* ───────── FormView ───────── */
486
+
487
+ [data-rig-form-view] {
488
+ background: var(--color-background);
489
+ }
490
+
491
+ [data-rig-form-view-header] {
492
+ border-bottom: 1px solid var(--color-border);
493
+ }
494
+
495
+ [data-rig-form-view-actions] {
496
+ border-top: 1px solid var(--color-border);
497
+ }
498
+
499
+ /* ───────── WelcomeView ───────── */
500
+
501
+ [data-rig-welcome-view] {
502
+ background: var(--color-background);
503
+ }
504
+
505
+ [data-rig-welcome-view-title] {
506
+ font-family: var(--font-mono);
507
+ font-size: 18px;
508
+ color: var(--color-foreground);
509
+ }
510
+
511
+ [data-rig-welcome-view-description] {
512
+ font-family: var(--font-mono);
513
+ font-size: 13px;
514
+ color: var(--color-muted-foreground);
515
+ margin-top: 0.25rem;
516
+ }
517
+
518
+ /* ───────── SettingsView ───────── */
519
+
520
+ [data-rig-settings-view] {
521
+ background: var(--color-background);
522
+ }
523
+
524
+ [data-rig-settings-view-title] {
525
+ font-family: var(--font-mono);
526
+ font-size: 18px;
527
+ color: var(--color-foreground);
528
+ }
@@ -0,0 +1,184 @@
1
+ /* Hex — Shared Spatial Components
2
+ * Styles for Rig's spatial package: MapCanvas, GlobeView,
3
+ * ScatterPlot3D, GraphNetwork, PointCloud
4
+ */
5
+
6
+ /* ───────── MapCanvas ───────── */
7
+
8
+ [data-rig-map-canvas] {
9
+ @apply bg-card border border-border/50;
10
+ border-radius: var(--radius);
11
+ cursor: grab;
12
+ user-select: none;
13
+ }
14
+
15
+ [data-rig-map-canvas][data-dragging] {
16
+ cursor: grabbing;
17
+ }
18
+
19
+ [data-rig-map-canvas-viewport] {
20
+ @apply bg-card;
21
+ }
22
+
23
+ [data-rig-map-canvas-grid] {
24
+ stroke: var(--color-border);
25
+ opacity: 0.1;
26
+ }
27
+
28
+ [data-rig-map-canvas-marker] {
29
+ cursor: pointer;
30
+ transition: opacity 0.15s ease;
31
+ }
32
+
33
+ [data-rig-map-canvas-marker] circle {
34
+ fill: var(--domain-accent, var(--color-primary));
35
+ }
36
+
37
+ [data-rig-map-canvas-marker]:hover {
38
+ opacity: 0.8;
39
+ }
40
+
41
+ [data-rig-map-canvas-marker]:focus-visible {
42
+ outline: 2px solid var(--color-ring);
43
+ outline-offset: 2px;
44
+ }
45
+
46
+ [data-rig-map-canvas-marker-label] {
47
+ fill: var(--color-foreground);
48
+ @apply font-mono text-xs;
49
+ }
50
+
51
+ /* ───────── GlobeView ───────── */
52
+
53
+ [data-rig-globe-view] {
54
+ @apply bg-background;
55
+ cursor: grab;
56
+ user-select: none;
57
+ }
58
+
59
+ [data-rig-globe-view-sphere] {
60
+ stroke: var(--color-border);
61
+ opacity: 0.3;
62
+ }
63
+
64
+ [data-rig-globe-view-grid] {
65
+ stroke: var(--color-border);
66
+ opacity: 0.1;
67
+ }
68
+
69
+ [data-rig-globe-view-marker] {
70
+ cursor: pointer;
71
+ transition: opacity 0.15s ease;
72
+ }
73
+
74
+ [data-rig-globe-view-marker] circle {
75
+ fill: var(--domain-accent, var(--color-primary));
76
+ }
77
+
78
+ [data-rig-globe-view-marker]:hover {
79
+ opacity: 0.8;
80
+ }
81
+
82
+ [data-rig-globe-view-marker]:focus-visible {
83
+ outline: 2px solid var(--color-ring);
84
+ outline-offset: 2px;
85
+ }
86
+
87
+ [data-rig-globe-view-marker-label] {
88
+ fill: var(--color-foreground);
89
+ @apply font-mono text-xs;
90
+ }
91
+
92
+ /* ───────── ScatterPlot3D ───────── */
93
+
94
+ [data-rig-scatter-plot-3d] {
95
+ @apply bg-background;
96
+ }
97
+
98
+ [data-rig-scatter-plot-3d-axes] {
99
+ opacity: 0.6;
100
+ }
101
+
102
+ [data-rig-scatter-plot-3d-axis] {
103
+ stroke: var(--color-muted-foreground);
104
+ opacity: 0.3;
105
+ }
106
+
107
+ [data-rig-scatter-plot-3d-axis-label] {
108
+ fill: var(--color-muted-foreground);
109
+ @apply font-mono text-xs;
110
+ }
111
+
112
+ [data-rig-scatter-plot-3d-point] {
113
+ fill: var(--domain-accent, var(--color-primary));
114
+ transition: opacity 0.15s ease;
115
+ cursor: pointer;
116
+ }
117
+
118
+ [data-rig-scatter-plot-3d-point]:hover {
119
+ opacity: 1;
120
+ }
121
+
122
+ /* ───────── GraphNetwork ───────── */
123
+
124
+ [data-rig-graph-network] {
125
+ @apply bg-card border border-border/50;
126
+ border-radius: var(--radius);
127
+ }
128
+
129
+ [data-rig-graph-network-edge] {
130
+ stroke: var(--color-border);
131
+ opacity: 0.3;
132
+ transition: opacity 0.15s ease;
133
+ cursor: pointer;
134
+ }
135
+
136
+ [data-rig-graph-network-edge]:hover {
137
+ opacity: 0.6;
138
+ }
139
+
140
+ [data-rig-graph-network-node] {
141
+ cursor: pointer;
142
+ transition: opacity 0.15s ease;
143
+ }
144
+
145
+ [data-rig-graph-network-node]:hover {
146
+ opacity: 0.8;
147
+ }
148
+
149
+ [data-rig-graph-network-node]:focus-visible {
150
+ outline: 2px solid var(--color-ring);
151
+ outline-offset: 2px;
152
+ }
153
+
154
+ [data-rig-graph-network-node-circle] {
155
+ fill: var(--domain-accent, var(--color-primary));
156
+ stroke: var(--color-foreground);
157
+ stroke-width: 1;
158
+ }
159
+
160
+ [data-rig-graph-network-node-label] {
161
+ fill: var(--color-foreground);
162
+ @apply font-mono text-xs;
163
+ }
164
+
165
+ /* ───────── PointCloud ───────── */
166
+
167
+ [data-rig-point-cloud] {
168
+ @apply bg-background;
169
+ }
170
+
171
+ [data-rig-point-cloud-point] {
172
+ fill: var(--domain-accent, var(--color-primary));
173
+ transition: opacity 0.15s ease;
174
+ cursor: pointer;
175
+ }
176
+
177
+ [data-rig-point-cloud-point]:hover {
178
+ opacity: 1;
179
+ }
180
+
181
+ [data-rig-point-cloud-point]:focus-visible {
182
+ outline: 2px solid var(--color-ring);
183
+ outline-offset: 2px;
184
+ }