lastriko 0.1.2 → 0.1.4
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/dist/client/events.js +94 -2
- package/dist/client/events.js.map +1 -1
- package/dist/client/ws.js +94 -2
- package/dist/client/ws.js.map +1 -1
- package/dist/client/ws.test.js +169 -5
- package/dist/client/ws.test.js.map +1 -1
- package/dist/components/context.d.ts +2 -2
- package/dist/components/context.js +18 -4
- package/dist/components/context.js.map +1 -1
- package/dist/components/context.test.js +61 -0
- package/dist/components/context.test.js.map +1 -1
- package/dist/components/types.d.ts +6 -2
- package/dist/engine/code-highlight.d.ts +1 -0
- package/dist/engine/code-highlight.js +64 -0
- package/dist/engine/code-highlight.js.map +1 -0
- package/dist/engine/code-highlight.test.d.ts +1 -0
- package/dist/engine/code-highlight.test.js +15 -0
- package/dist/engine/code-highlight.test.js.map +1 -0
- package/dist/engine/executor.js +5 -0
- package/dist/engine/executor.js.map +1 -1
- package/dist/engine/executor.test.js +20 -0
- package/dist/engine/executor.test.js.map +1 -1
- package/dist/engine/renderer.js +30 -7
- package/dist/engine/renderer.js.map +1 -1
- package/dist/engine/renderer.test.js +44 -0
- package/dist/engine/renderer.test.js.map +1 -1
- package/dist/engine/server.d.ts +1 -0
- package/dist/engine/server.js +16 -1
- package/dist/engine/server.js.map +1 -1
- package/dist/engine/server.test.js +43 -0
- package/dist/engine/server.test.js.map +1 -1
- package/dist/engine/websocket.d.ts +2 -0
- package/dist/engine/websocket.js +6 -0
- package/dist/engine/websocket.js.map +1 -1
- package/dist/style.css +150 -0
- package/dist/theme/lastriko.css +150 -0
- package/package.json +4 -1
package/dist/theme/lastriko.css
CHANGED
|
@@ -147,6 +147,50 @@ body {
|
|
|
147
147
|
align-items: start;
|
|
148
148
|
}
|
|
149
149
|
|
|
150
|
+
.lk-shell-mobile-toggle {
|
|
151
|
+
position: absolute;
|
|
152
|
+
width: 1px;
|
|
153
|
+
height: 1px;
|
|
154
|
+
margin: -1px;
|
|
155
|
+
padding: 0;
|
|
156
|
+
border: 0;
|
|
157
|
+
overflow: hidden;
|
|
158
|
+
clip: rect(0 0 0 0);
|
|
159
|
+
clip-path: inset(50%);
|
|
160
|
+
white-space: nowrap;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.lk-shell-mobile-button {
|
|
164
|
+
display: none;
|
|
165
|
+
align-items: center;
|
|
166
|
+
justify-content: center;
|
|
167
|
+
width: 2.25rem;
|
|
168
|
+
height: 2.25rem;
|
|
169
|
+
border: 1px solid var(--lk-border);
|
|
170
|
+
border-radius: 999px;
|
|
171
|
+
background: var(--lk-surface);
|
|
172
|
+
color: var(--lk-text);
|
|
173
|
+
cursor: pointer;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.lk-shell-mobile-button::before {
|
|
177
|
+
content: '☰';
|
|
178
|
+
font-size: 1rem;
|
|
179
|
+
line-height: 1;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.lk-shell-mobile-button--floating {
|
|
183
|
+
position: fixed;
|
|
184
|
+
left: 1rem;
|
|
185
|
+
top: 4.25rem;
|
|
186
|
+
z-index: 46;
|
|
187
|
+
box-shadow: var(--lk-shadow);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.lk-shell-backdrop {
|
|
191
|
+
display: none;
|
|
192
|
+
}
|
|
193
|
+
|
|
150
194
|
.lk-shell--sidebar-right {
|
|
151
195
|
grid-template-columns: minmax(0, 1fr) var(--lk-sidebar-width, 260px);
|
|
152
196
|
grid-template-areas:
|
|
@@ -228,6 +272,62 @@ body {
|
|
|
228
272
|
}
|
|
229
273
|
}
|
|
230
274
|
|
|
275
|
+
@media (max-width: 767px) {
|
|
276
|
+
.lk-shell {
|
|
277
|
+
position: relative;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
.lk-shell-mobile-button {
|
|
281
|
+
display: inline-flex;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
.lk-shell-header .lk-shell-mobile-button {
|
|
285
|
+
margin-right: 0.25rem;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
.lk-shell-sidebar {
|
|
289
|
+
position: fixed;
|
|
290
|
+
top: 0;
|
|
291
|
+
bottom: 0;
|
|
292
|
+
left: 0;
|
|
293
|
+
width: min(86vw, var(--lk-sidebar-width, 280px));
|
|
294
|
+
max-height: none;
|
|
295
|
+
margin: 0;
|
|
296
|
+
padding: 1rem 0.9rem 1.2rem;
|
|
297
|
+
border-right: 1px solid var(--lk-border);
|
|
298
|
+
border-left: none;
|
|
299
|
+
border-bottom: none;
|
|
300
|
+
border-radius: 0;
|
|
301
|
+
transform: translateX(-105%);
|
|
302
|
+
transition: transform 0.2s ease;
|
|
303
|
+
z-index: 45;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
.lk-shell--sidebar-right .lk-shell-sidebar {
|
|
307
|
+
left: auto;
|
|
308
|
+
right: 0;
|
|
309
|
+
border-left: 1px solid var(--lk-border);
|
|
310
|
+
border-right: none;
|
|
311
|
+
transform: translateX(105%);
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
.lk-shell-mobile-toggle:checked ~ .lk-shell-sidebar {
|
|
315
|
+
transform: translateX(0);
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
.lk-shell-backdrop {
|
|
319
|
+
display: none;
|
|
320
|
+
position: fixed;
|
|
321
|
+
inset: 0;
|
|
322
|
+
z-index: 44;
|
|
323
|
+
background: rgba(2, 6, 23, 0.35);
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
.lk-shell-mobile-toggle:checked ~ .lk-shell-backdrop {
|
|
327
|
+
display: block;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
|
|
231
331
|
.lk-grid {
|
|
232
332
|
width: 100%;
|
|
233
333
|
}
|
|
@@ -409,6 +509,33 @@ body {
|
|
|
409
509
|
font-size: 0.875rem;
|
|
410
510
|
}
|
|
411
511
|
|
|
512
|
+
.lk-code-wrap {
|
|
513
|
+
display: flex;
|
|
514
|
+
flex-direction: column;
|
|
515
|
+
gap: 0.35rem;
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
.lk-code-copy {
|
|
519
|
+
align-self: flex-end;
|
|
520
|
+
border: 1px solid var(--lk-border);
|
|
521
|
+
border-radius: 8px;
|
|
522
|
+
padding: 0.3rem 0.6rem;
|
|
523
|
+
font: inherit;
|
|
524
|
+
font-size: 0.75rem;
|
|
525
|
+
color: var(--lk-text);
|
|
526
|
+
background: var(--lk-surface);
|
|
527
|
+
cursor: pointer;
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
.lk-code-copy.is-copied {
|
|
531
|
+
background: color-mix(in srgb, var(--lk-primary) 20%, var(--lk-surface));
|
|
532
|
+
border-color: var(--lk-primary);
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
.lk-code-source {
|
|
536
|
+
display: none;
|
|
537
|
+
}
|
|
538
|
+
|
|
412
539
|
.lk-json {
|
|
413
540
|
border: 1px solid var(--lk-border);
|
|
414
541
|
border-radius: var(--lk-radius);
|
|
@@ -429,6 +556,29 @@ body {
|
|
|
429
556
|
overflow: auto;
|
|
430
557
|
}
|
|
431
558
|
|
|
559
|
+
.lk-json details {
|
|
560
|
+
border: 1px solid var(--lk-border);
|
|
561
|
+
border-radius: 8px;
|
|
562
|
+
background: var(--lk-surface-2);
|
|
563
|
+
padding: 0.4rem 0.5rem;
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
.lk-json summary {
|
|
567
|
+
cursor: pointer;
|
|
568
|
+
font-size: 0.75rem;
|
|
569
|
+
font-weight: 700;
|
|
570
|
+
color: var(--lk-muted);
|
|
571
|
+
list-style: none;
|
|
572
|
+
}
|
|
573
|
+
|
|
574
|
+
.lk-json summary::before {
|
|
575
|
+
content: '▸ ';
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
.lk-json details[open] > summary::before {
|
|
579
|
+
content: '▾ ';
|
|
580
|
+
}
|
|
581
|
+
|
|
432
582
|
/* —— Table —— */
|
|
433
583
|
.lk-table-wrap {
|
|
434
584
|
border: 1px solid var(--lk-border);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lastriko",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "TypeScript UI toolkit for AI demos and rapid prototyping (server-rendered HTML + WebSocket).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -51,9 +51,12 @@
|
|
|
51
51
|
"check:bundle": "node ../../scripts/check-client-size.mjs"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
+
"@shikijs/langs": "^4.0.2",
|
|
55
|
+
"@shikijs/themes": "^4.0.2",
|
|
54
56
|
"marked": "^18.0.0",
|
|
55
57
|
"nanostores": "^1.1.0",
|
|
56
58
|
"sanitize-html": "^2.17.2",
|
|
59
|
+
"shiki": "^4.0.2",
|
|
57
60
|
"ws": "^8.20.0"
|
|
58
61
|
},
|
|
59
62
|
"devDependencies": {
|