lastriko 0.1.2 → 0.1.7
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/README.md +1 -1
- package/dist/__tests__/integration/ws-flow.integration.test.js +38 -140
- package/dist/__tests__/integration/ws-flow.integration.test.js.map +1 -1
- package/dist/client/events.js +169 -49
- package/dist/client/events.js.map +1 -1
- package/dist/client/swap.d.ts +14 -1
- package/dist/client/swap.js +185 -7
- package/dist/client/swap.js.map +1 -1
- package/dist/client/ws.d.ts +1 -0
- package/dist/client/ws.js +214 -35
- package/dist/client/ws.js.map +1 -1
- package/dist/client/ws.test.js +6 -146
- package/dist/client/ws.test.js.map +1 -1
- package/dist/components/context.d.ts +14 -2
- package/dist/components/context.js +330 -5
- package/dist/components/context.js.map +1 -1
- package/dist/components/context.test.js +74 -56
- package/dist/components/context.test.js.map +1 -1
- package/dist/components/registry.d.ts +2 -2
- package/dist/components/registry.js +52 -4
- package/dist/components/registry.js.map +1 -1
- package/dist/components/types.d.ts +180 -4
- 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 +16 -0
- package/dist/engine/executor.js.map +1 -1
- package/dist/engine/executor.test.js +33 -4
- package/dist/engine/executor.test.js.map +1 -1
- package/dist/engine/messages.d.ts +9 -1
- package/dist/engine/messages.js.map +1 -1
- package/dist/engine/messages.test.d.ts +1 -0
- package/dist/engine/messages.test.js +39 -0
- package/dist/engine/messages.test.js.map +1 -0
- package/dist/engine/renderer.js +241 -14
- package/dist/engine/renderer.js.map +1 -1
- package/dist/engine/renderer.test.js +230 -202
- package/dist/engine/renderer.test.js.map +1 -1
- package/dist/engine/server.d.ts +2 -0
- package/dist/engine/server.js +57 -6
- package/dist/engine/server.js.map +1 -1
- package/dist/engine/server.test.js +105 -4
- package/dist/engine/server.test.js.map +1 -1
- package/dist/engine/watcher.d.ts +17 -1
- package/dist/engine/watcher.js +42 -5
- package/dist/engine/watcher.js.map +1 -1
- package/dist/engine/watcher.test.d.ts +1 -0
- package/dist/engine/watcher.test.js +62 -0
- package/dist/engine/watcher.test.js.map +1 -0
- package/dist/engine/websocket.d.ts +2 -0
- package/dist/engine/websocket.hub.test.js +24 -0
- package/dist/engine/websocket.hub.test.js.map +1 -1
- package/dist/engine/websocket.js +6 -1
- package/dist/engine/websocket.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/style.css +150 -0
- package/dist/theme/lastriko.css +150 -0
- package/package.json +5 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/engine/websocket.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAY/D,MAAM,OAAO,YAAY;
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/engine/websocket.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,10 +4,12 @@ import type { AppCallback } from './components/types';
|
|
|
4
4
|
export interface AppConfig extends RuntimeConfig {
|
|
5
5
|
plugins?: LastrikoPlugin[];
|
|
6
6
|
toolbar?: boolean;
|
|
7
|
+
hotReloadPreserve?: boolean;
|
|
7
8
|
}
|
|
8
9
|
export interface AppOptions {
|
|
9
10
|
plugins?: LastrikoPlugin[];
|
|
10
11
|
server?: RuntimeConfig;
|
|
12
|
+
hotReloadPreserve?: boolean;
|
|
11
13
|
}
|
|
12
14
|
export interface RunningApp {
|
|
13
15
|
stop: () => Promise<void>;
|
|
@@ -15,7 +17,7 @@ export interface RunningApp {
|
|
|
15
17
|
}
|
|
16
18
|
export declare function defineConfig(config: AppConfig): AppConfig;
|
|
17
19
|
export declare function app(title: string, callback: AppCallback, opts?: AppOptions): Promise<RunningApp>;
|
|
18
|
-
export type { ConnectionScope as Connection, ComponentHandle, ButtonHandle, ButtonCallbackHandle, InputHandle, TextHandle, TextInputHandle, NumberInputHandle, SliderHandle, ToggleHandle, SelectHandle, FileUploadHandle, UploadedFile, SelectOption, ButtonOpts, TextInputOpts, NumberInputOpts, SliderOpts, ToggleOpts, SelectOpts, FileUploadOpts, TableHandle, TableRow, TableRowHandle as RowHandle, MetricHandle, MetricOpts, ProgressHandle, ProgressOpts, StreamHandle, StreamTextOpts, ChatHandle, ChatUIOptions, PromptEditorHandle, PromptEditorOpts, ShellRegions, ShellOpts, GridOpts, TabsOpts, TabDef, ToastOpts, AlertOpts, LoadingOpts, UIContext, AppCallback, } from './components/types';
|
|
20
|
+
export type { ConnectionScope as Connection, ComponentHandle, ButtonHandle, ButtonCallbackHandle, InputHandle, TextHandle, TextInputHandle, NumberInputHandle, SliderHandle, ToggleHandle, SelectHandle, MultiSelectHandle, ColorPickerHandle, DateInputHandle, FileUploadHandle, UploadedFile, SelectOption, ButtonOpts, TextInputOpts, NumberInputOpts, SliderOpts, ToggleOpts, SelectOpts, MultiSelectOpts, ColorPickerOpts, DateInputOpts, FileUploadOpts, VideoProps, AudioProps, DiffProps, AccordionSection, AccordionOpts, FullscreenHandle, FullscreenOpts, TableHandle, TableRow, TableRowHandle as RowHandle, MetricHandle, MetricOpts, ProgressHandle, ProgressOpts, StreamHandle, StreamTextOpts, ChatHandle, ChatUIOptions, PromptEditorHandle, PromptEditorOpts, ModelSpec, ModelCompareOpts, ModelCompareResults, ModelCompareHandle, ParameterDef, ParameterSchema, ParameterPanelOpts, ParameterPanelHandle, FilmStripItem, FilmStripOpts, BeforeAfterOpts, ShellRegions, ShellOpts, GridOpts, TabsOpts, TabDef, ToastOpts, AlertOpts, LoadingOpts, UIContext, AppCallback, } from './components/types';
|
|
19
21
|
export type { LastrikoPlugin } from './plugins/types';
|
|
20
22
|
export { createWebSocketHub } from './engine/websocket';
|
|
21
23
|
export { createWatcher, startWatcher } from './engine/watcher';
|
package/dist/index.js
CHANGED
|
@@ -10,6 +10,7 @@ export async function app(title, callback, opts = {}) {
|
|
|
10
10
|
plugins,
|
|
11
11
|
app: callback,
|
|
12
12
|
...(opts.server ?? {}),
|
|
13
|
+
hotReloadPreserve: opts.hotReloadPreserve ?? true,
|
|
13
14
|
});
|
|
14
15
|
if (process.env.NODE_ENV !== 'test') {
|
|
15
16
|
console.info(`[lastriko] Ready at http://${server.host}:${server.port}`);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,YAAY,EAA0C,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,YAAY,EAA0C,MAAM,iBAAiB,CAAC;AAoBvF,MAAM,UAAU,YAAY,CAAC,MAAiB;IAC5C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,KAAa,EAAE,QAAqB,EAAE,OAAmB,EAAE;IACnF,MAAM,OAAO,GAAG,IAAI,CAAC,OAA6E,CAAC;IACnG,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;QAChC,KAAK;QACL,OAAO;QACP,GAAG,EAAE,QAAQ;QACb,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QACtB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,IAAI,IAAI;KAClD,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,8BAA8B,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO;QACL,MAAM;QACN,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;KACF,CAAC;AACJ,CAAC;AAyED,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/style.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/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.7",
|
|
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,13 @@
|
|
|
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",
|
|
56
|
+
"chokidar": "^5.0.0",
|
|
54
57
|
"marked": "^18.0.0",
|
|
55
58
|
"nanostores": "^1.1.0",
|
|
56
59
|
"sanitize-html": "^2.17.2",
|
|
60
|
+
"shiki": "^4.0.2",
|
|
57
61
|
"ws": "^8.20.0"
|
|
58
62
|
},
|
|
59
63
|
"devDependencies": {
|