@hypertools/sdk 0.3.3 → 0.4.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.
@@ -0,0 +1,379 @@
1
+ /* Landing Page with Experience Background */
2
+
3
+ * {
4
+ margin: 0;
5
+ padding: 0;
6
+ box-sizing: border-box;
7
+ }
8
+
9
+ .landing-page {
10
+ position: relative;
11
+ width: 100vw;
12
+ min-height: 100vh;
13
+ overflow-x: hidden;
14
+ }
15
+
16
+ /* Background Experience - full screen, behind everything */
17
+ .experience-background {
18
+ position: fixed;
19
+ top: 0;
20
+ left: 0;
21
+ width: 100%;
22
+ height: 100%;
23
+ z-index: 0;
24
+ }
25
+
26
+ .experience-background boids-flocking-project {
27
+ display: block;
28
+ width: 100%;
29
+ height: 100%;
30
+ }
31
+
32
+ /* Foreground Content - fixed at bottom center */
33
+ .landing-content {
34
+ position: fixed;
35
+ bottom: 2rem;
36
+ left: 50%;
37
+ transform: translateX(-50%);
38
+ z-index: 10;
39
+ display: flex;
40
+ flex-direction: column;
41
+ align-items: center;
42
+ color: white;
43
+ text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
44
+ }
45
+
46
+ /* Hero Section */
47
+ .hero {
48
+ text-align: center;
49
+ padding: 4rem 2rem;
50
+ max-width: 800px;
51
+ }
52
+
53
+ .hero h1 {
54
+ font-size: clamp(2rem, 5vw, 4rem);
55
+ margin-bottom: 1rem;
56
+ font-weight: 700;
57
+ }
58
+
59
+ .tagline {
60
+ font-size: clamp(1rem, 2vw, 1.5rem);
61
+ opacity: 0.9;
62
+ }
63
+
64
+ /* Control Panel - for demo purposes */
65
+ .control-panel {
66
+ background: rgba(0, 0, 0, 0.7);
67
+ backdrop-filter: blur(10px);
68
+ border-radius: 16px;
69
+ padding: 2rem;
70
+ max-width: 400px;
71
+ width: 100%;
72
+ }
73
+
74
+ .panel-header {
75
+ display: flex;
76
+ justify-content: space-between;
77
+ align-items: center;
78
+ margin-bottom: 0.5rem;
79
+ }
80
+
81
+ .panel-header h2 {
82
+ font-size: 1.25rem;
83
+ margin: 0;
84
+ }
85
+
86
+ .help-button {
87
+ width: 24px;
88
+ height: 24px;
89
+ border-radius: 50%;
90
+ border: 1px solid rgba(255, 255, 255, 0.3);
91
+ background: transparent;
92
+ color: white;
93
+ font-size: 0.8rem;
94
+ cursor: pointer;
95
+ opacity: 0.6;
96
+ transition: opacity 0.2s;
97
+ }
98
+
99
+ .help-button:hover {
100
+ opacity: 1;
101
+ }
102
+
103
+ .sdk-info {
104
+ font-size: 0.75rem;
105
+ opacity: 0.6;
106
+ text-align: center;
107
+ margin-bottom: 1rem;
108
+ font-family: monospace;
109
+ }
110
+
111
+ /* Preset buttons */
112
+ .preset-group {
113
+ display: flex;
114
+ flex-wrap: wrap;
115
+ gap: 0.5rem;
116
+ margin-bottom: 1rem;
117
+ }
118
+
119
+ .preset-button {
120
+ flex: 1;
121
+ min-width: 60px;
122
+ padding: 0.5rem 0.75rem;
123
+ border: 1px solid rgba(255, 255, 255, 0.2);
124
+ border-radius: 6px;
125
+ background: rgba(255, 255, 255, 0.05);
126
+ color: white;
127
+ font-size: 0.75rem;
128
+ text-transform: capitalize;
129
+ cursor: pointer;
130
+ transition: all 0.2s;
131
+ }
132
+
133
+ .preset-button:hover {
134
+ background: rgba(255, 255, 255, 0.1);
135
+ border-color: rgba(255, 255, 255, 0.3);
136
+ }
137
+
138
+ .preset-button.selected {
139
+ background: rgba(102, 126, 234, 0.4);
140
+ border-color: rgba(102, 126, 234, 0.8);
141
+ box-shadow: 0 0 8px rgba(102, 126, 234, 0.4);
142
+ }
143
+
144
+ .custom-config-hint {
145
+ font-size: 0.7rem;
146
+ opacity: 0.5;
147
+ text-align: center;
148
+ margin: -0.5rem 0 1rem;
149
+ font-style: italic;
150
+ }
151
+
152
+ .idle-indicator {
153
+ font-size: 0.7rem;
154
+ text-align: center;
155
+ margin-top: 0.5rem;
156
+ padding: 0.25rem 0.5rem;
157
+ background: rgba(102, 126, 234, 0.3);
158
+ border-radius: 4px;
159
+ animation: pulse 2s infinite;
160
+ }
161
+
162
+ @keyframes pulse {
163
+ 0%, 100% { opacity: 0.6; }
164
+ 50% { opacity: 1; }
165
+ }
166
+
167
+ .control-group {
168
+ margin-bottom: 1.25rem;
169
+ }
170
+
171
+ .control-group label {
172
+ display: flex;
173
+ flex-direction: column;
174
+ gap: 0.5rem;
175
+ font-size: 0.9rem;
176
+ }
177
+
178
+ .control-group input[type="range"] {
179
+ width: 100%;
180
+ height: 6px;
181
+ border-radius: 3px;
182
+ background: rgba(255, 255, 255, 0.2);
183
+ cursor: pointer;
184
+ }
185
+
186
+ .control-group input[type="text"] {
187
+ padding: 0.5rem;
188
+ border-radius: 8px;
189
+ border: 1px solid rgba(255, 255, 255, 0.3);
190
+ background: rgba(255, 255, 255, 0.1);
191
+ color: white;
192
+ font-size: 1rem;
193
+ }
194
+
195
+ .control-group input[type="checkbox"] {
196
+ width: 18px;
197
+ height: 18px;
198
+ margin-right: 0.5rem;
199
+ }
200
+
201
+ .control-group label:has(input[type="checkbox"]) {
202
+ flex-direction: row;
203
+ align-items: center;
204
+ }
205
+
206
+ .button-group {
207
+ display: flex;
208
+ gap: 0.5rem;
209
+ }
210
+
211
+ .action-button,
212
+ .reset-button {
213
+ flex: 1;
214
+ padding: 0.75rem;
215
+ border: 1px solid rgba(255, 255, 255, 0.3);
216
+ border-radius: 8px;
217
+ background: transparent;
218
+ color: white;
219
+ cursor: pointer;
220
+ transition: background 0.2s;
221
+ }
222
+
223
+ .action-button {
224
+ background: rgba(102, 126, 234, 0.3);
225
+ border-color: rgba(102, 126, 234, 0.5);
226
+ }
227
+
228
+ .action-button:hover {
229
+ background: rgba(102, 126, 234, 0.5);
230
+ }
231
+
232
+ .action-button.active {
233
+ background: rgba(102, 126, 234, 0.6);
234
+ border-color: rgba(102, 126, 234, 0.8);
235
+ box-shadow: 0 0 8px rgba(102, 126, 234, 0.4);
236
+ }
237
+
238
+ .reset-button:hover {
239
+ background: rgba(255, 255, 255, 0.1);
240
+ }
241
+
242
+ /* Shortcuts overlay */
243
+ .shortcuts-overlay {
244
+ position: fixed;
245
+ inset: 0;
246
+ background: rgba(0, 0, 0, 0.8);
247
+ display: flex;
248
+ align-items: center;
249
+ justify-content: center;
250
+ z-index: 100;
251
+ }
252
+
253
+ .shortcuts-panel {
254
+ background: rgba(30, 30, 40, 0.95);
255
+ backdrop-filter: blur(10px);
256
+ border-radius: 16px;
257
+ padding: 2rem;
258
+ max-width: 400px;
259
+ color: white;
260
+ }
261
+
262
+ .shortcuts-panel h3 {
263
+ font-size: 1.25rem;
264
+ margin-bottom: 0.5rem;
265
+ }
266
+
267
+ .shortcuts-subtitle {
268
+ font-size: 0.75rem;
269
+ opacity: 0.6;
270
+ margin-bottom: 1.5rem;
271
+ }
272
+
273
+ .shortcuts-panel ul {
274
+ list-style: none;
275
+ padding: 0;
276
+ margin: 0 0 1.5rem;
277
+ }
278
+
279
+ .shortcuts-panel li {
280
+ display: flex;
281
+ align-items: center;
282
+ gap: 1rem;
283
+ padding: 0.5rem 0;
284
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
285
+ }
286
+
287
+ .shortcuts-panel kbd {
288
+ background: rgba(255, 255, 255, 0.1);
289
+ padding: 0.25rem 0.5rem;
290
+ border-radius: 4px;
291
+ font-family: monospace;
292
+ font-size: 0.8rem;
293
+ min-width: 40px;
294
+ text-align: center;
295
+ }
296
+
297
+ .close-button {
298
+ width: 100%;
299
+ padding: 0.75rem;
300
+ border: none;
301
+ border-radius: 8px;
302
+ background: rgba(102, 126, 234, 0.5);
303
+ color: white;
304
+ cursor: pointer;
305
+ transition: background 0.2s;
306
+ }
307
+
308
+ .close-button:hover {
309
+ background: rgba(102, 126, 234, 0.7);
310
+ }
311
+
312
+ /* Features Section */
313
+ .features {
314
+ display: grid;
315
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
316
+ gap: 2rem;
317
+ padding: 3rem 0;
318
+ max-width: 900px;
319
+ width: 100%;
320
+ }
321
+
322
+ .feature {
323
+ background: rgba(0, 0, 0, 0.5);
324
+ backdrop-filter: blur(10px);
325
+ border-radius: 12px;
326
+ padding: 1.5rem;
327
+ text-align: center;
328
+ }
329
+
330
+ .feature h3 {
331
+ font-size: 1.25rem;
332
+ margin-bottom: 0.5rem;
333
+ }
334
+
335
+ .feature p {
336
+ opacity: 0.8;
337
+ font-size: 0.9rem;
338
+ }
339
+
340
+ /* CTA Section */
341
+ .cta {
342
+ display: flex;
343
+ gap: 1rem;
344
+ padding: 2rem 0;
345
+ flex-wrap: wrap;
346
+ justify-content: center;
347
+ }
348
+
349
+ .primary-button,
350
+ .secondary-button {
351
+ padding: 1rem 2rem;
352
+ border-radius: 8px;
353
+ font-size: 1rem;
354
+ font-weight: 600;
355
+ cursor: pointer;
356
+ transition: transform 0.2s, box-shadow 0.2s;
357
+ }
358
+
359
+ .primary-button {
360
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
361
+ border: none;
362
+ color: white;
363
+ }
364
+
365
+ .primary-button:hover {
366
+ transform: translateY(-2px);
367
+ box-shadow: 0 10px 20px rgba(102, 126, 234, 0.4);
368
+ }
369
+
370
+ .secondary-button {
371
+ background: transparent;
372
+ border: 2px solid white;
373
+ color: white;
374
+ }
375
+
376
+ .secondary-button:hover {
377
+ background: rgba(255, 255, 255, 0.1);
378
+ transform: translateY(-2px);
379
+ }