slexkit 0.3.1 → 0.3.3
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/CHANGELOG.md +18 -0
- package/README.md +1 -1
- package/README.zh-CN.md +1 -1
- package/dist/ai/llms-full.txt +53 -21
- package/dist/ai/llms.txt +1 -1
- package/dist/ai/slexkit-ai-manifest.json +29 -29
- package/dist/base.css +0 -46
- package/dist/components/index.js +12 -10
- package/dist/components/input.css +85 -13
- package/dist/components/slider.css +56 -13
- package/dist/components/slider.js +12 -10
- package/dist/components/text-input.css +29 -0
- package/dist/runtime.cjs +46 -24
- package/dist/runtime.js +46 -24
- package/dist/slexkit.cjs +58 -34
- package/dist/slexkit.css +85 -59
- package/dist/slexkit.js +58 -34
- package/dist/types/engine/types.d.ts +1 -1
- package/dist/types/version.d.ts +2 -2
- package/dist/umd/slexkit.tooling.umd.js +57 -33
- package/dist/umd/slexkit.umd.js +58 -34
- package/package.json +1 -1
- package/src/components/svelte/input/Slider.svelte +15 -13
- package/src/styles/components/slider.css +56 -13
- package/src/styles/components/text-input.css +29 -0
- package/src/styles/layout.css +0 -46
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to SlexKit.
|
|
4
4
|
|
|
5
|
+
## v0.3.3 - Obsidian input control hardening
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
- Slider now renders its visual track outside the native range input while keeping the native input for interaction and accessibility, avoiding square thumb artifacts in Obsidian and other host themes.
|
|
9
|
+
- Input fields with trailing units now reset host input chrome with scoped selectors so unit add-ons stay aligned with the text field in Obsidian dark themes.
|
|
10
|
+
|
|
11
|
+
## v0.3.2 - Host CSS isolation and repeated layout hardening
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
- `$for` rendering now uses comment anchors and direct child insertion instead of a wrapper element that depended on `display: contents`.
|
|
15
|
+
- Site-only mobile navigation CSS moved out of the runtime base stylesheet and into the documentation site shell.
|
|
16
|
+
- Component accessors now share one reactive effect across subscribers instead of creating duplicate subscriber fan-out work.
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
- Obsidian and other Markdown hosts no longer need to rewrite `$for` wrapper CSS to avoid `display: contents`, preserving grid and row layouts for repeated items.
|
|
20
|
+
- Published runtime base CSS no longer leaks `#mobileNav` or `body[data-mobile-nav-open]` selectors into host pages.
|
|
21
|
+
- Custom renderers that return no element no longer leave invalid `$for` slots behind during diffing or cleanup.
|
|
22
|
+
|
|
5
23
|
## v0.3.1 - Host stability and control rendering hardening
|
|
6
24
|
|
|
7
25
|
### Added
|
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
<a href="README.zh-CN.md">简体中文</a>
|
|
16
16
|
</p>
|
|
17
17
|
<p>
|
|
18
|
-
<img alt="version" src="https://img.shields.io/badge/version-0.3.
|
|
18
|
+
<img alt="version" src="https://img.shields.io/badge/version-0.3.3-18181b">
|
|
19
19
|
<img alt="script" src="https://img.shields.io/badge/Slex-v0.1-18181b">
|
|
20
20
|
<img alt="TypeScript" src="https://img.shields.io/badge/runtime-TypeScript-3178c6">
|
|
21
21
|
<img alt="Svelte 5" src="https://img.shields.io/badge/components-Svelte_5-ff3e00">
|
package/README.zh-CN.md
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
<a href="README.md">English</a>
|
|
16
16
|
</p>
|
|
17
17
|
<p>
|
|
18
|
-
<img alt="version" src="https://img.shields.io/badge/version-0.3.
|
|
18
|
+
<img alt="version" src="https://img.shields.io/badge/version-0.3.3-18181b">
|
|
19
19
|
<img alt="script" src="https://img.shields.io/badge/Slex-v0.1-18181b">
|
|
20
20
|
<img alt="TypeScript" src="https://img.shields.io/badge/runtime-TypeScript-3178c6">
|
|
21
21
|
<img alt="Svelte 5" src="https://img.shields.io/badge/components-Svelte_5-ff3e00">
|
package/dist/ai/llms-full.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# SlexKit Full LLM Documentation
|
|
2
2
|
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.3
|
|
4
4
|
|
|
5
5
|
This file concatenates SlexKit's canonical English Markdown docs. `slex` fences are preserved exactly.
|
|
6
6
|
|
|
@@ -27,7 +27,7 @@ Source: README.md
|
|
|
27
27
|
<a href="README.zh-CN.md">简体中文</a>
|
|
28
28
|
</p>
|
|
29
29
|
<p>
|
|
30
|
-
<img alt="version" src="https://img.shields.io/badge/version-0.3.
|
|
30
|
+
<img alt="version" src="https://img.shields.io/badge/version-0.3.3-18181b">
|
|
31
31
|
<img alt="script" src="https://img.shields.io/badge/Slex-v0.1-18181b">
|
|
32
32
|
<img alt="TypeScript" src="https://img.shields.io/badge/runtime-TypeScript-3178c6">
|
|
33
33
|
<img alt="Svelte 5" src="https://img.shields.io/badge/components-Svelte_5-ff3e00">
|
|
@@ -1416,12 +1416,12 @@ Source: content/examples/multi-input-coordination/zh-CN.md
|
|
|
1416
1416
|
"grid:params": {
|
|
1417
1417
|
columns: 1, mdColumns: 2,
|
|
1418
1418
|
"column:w": {
|
|
1419
|
-
"input:
|
|
1420
|
-
"slider:
|
|
1419
|
+
"input:widthInput": { label: "宽度", "$value": "g.width", type: "number", unit: "px", onchange: "g.width = Number($event || 0)" },
|
|
1420
|
+
"slider:widthSlider": { label: "宽度", "$value": "g.width", min: 20, max: 300, step: 5, unit: "px", onchange: "g.width = Number($event)" }
|
|
1421
1421
|
},
|
|
1422
1422
|
"column:h": {
|
|
1423
|
-
"input:
|
|
1424
|
-
"slider:
|
|
1423
|
+
"input:heightInput": { label: "高度", "$value": "g.height", type: "number", unit: "px", onchange: "g.height = Number($event || 0)" },
|
|
1424
|
+
"slider:heightSlider": { label: "高度", "$value": "g.height", min: 20, max: 300, step: 5, unit: "px", onchange: "g.height = Number($event)" }
|
|
1425
1425
|
}
|
|
1426
1426
|
},
|
|
1427
1427
|
"grid:results": {
|
|
@@ -1556,8 +1556,8 @@ Source: content/examples/salary-calculator/zh-CN.md
|
|
|
1556
1556
|
"grid:params": {
|
|
1557
1557
|
columns: 1, mdColumns: 2,
|
|
1558
1558
|
"column:baseField": {
|
|
1559
|
-
"input:
|
|
1560
|
-
"slider:
|
|
1559
|
+
"input:baseInput": { label: "税前工资", "$value": "g.base", type: "number", unit: "元/月", onchange: "g.base = Number($event || 0)" },
|
|
1560
|
+
"slider:baseSlider": { label: "税前工资", "$value": "g.base", min: 3000, max: 50000, step: 500, unit: "元", onchange: "g.base = Number($event)" }
|
|
1561
1561
|
},
|
|
1562
1562
|
"column:cityField": {
|
|
1563
1563
|
"select:city": {
|
|
@@ -1677,12 +1677,12 @@ Source: content/examples/project-cost-estimator/zh-CN.md
|
|
|
1677
1677
|
"grid:params": {
|
|
1678
1678
|
columns: 1, mdColumns: 2,
|
|
1679
1679
|
"column:period": {
|
|
1680
|
-
"input:
|
|
1681
|
-
"slider:
|
|
1680
|
+
"input:monthsInput": { label: "开发周期", "$value": "g.months", type: "number", unit: "个月", onchange: "g.months = Number($event || 0)" },
|
|
1681
|
+
"slider:monthsSlider": { label: "开发周期", "$value": "g.months", min: 1, max: 24, step: 1, unit: "月", onchange: "g.months = Number($event)" }
|
|
1682
1682
|
},
|
|
1683
1683
|
"column:salaryField": {
|
|
1684
|
-
"input:
|
|
1685
|
-
"slider:
|
|
1684
|
+
"input:salaryInput": { label: "人均月薪", "$value": "g.salary", type: "number", unit: "元", onchange: "g.salary = Number($event || 0)" },
|
|
1685
|
+
"slider:salarySlider": { label: "人均月薪", "$value": "g.salary", min: 8000, max: 50000, step: 1000, unit: "元", onchange: "g.salary = Number($event)" }
|
|
1686
1686
|
}
|
|
1687
1687
|
},
|
|
1688
1688
|
"grid:results": {
|
|
@@ -1780,13 +1780,13 @@ Source: content/examples/voltage-divider/zh-CN.md
|
|
|
1780
1780
|
title: "分压器计算器",
|
|
1781
1781
|
"grid:params": {
|
|
1782
1782
|
columns: 1, mdColumns: 2,
|
|
1783
|
-
"column:r1Field": { "input:
|
|
1784
|
-
"column:r2Field": { "input:
|
|
1783
|
+
"column:r1Field": { "input:r1Input": { label: "R1", "$value": "std.units.si(g.r1, 'Ω', 1)", type: "engineering", unit: "Ω", placeholder: "10kΩ", onchange: "if ($event.valid && $event.number > 0) g.r1 = $event.number" }, "slider:r1Slider": { label: "R1", "$value": "g.r1", min: 100, max: 1000000, step: 100, unit: "Ω", onchange: "g.r1 = Number($event)" } },
|
|
1784
|
+
"column:r2Field": { "input:r2Input": { label: "R2", "$value": "std.units.si(g.r2, 'Ω', 1)", type: "engineering", unit: "Ω", placeholder: "10kΩ", onchange: "if ($event.valid && $event.number > 0) g.r2 = $event.number" }, "slider:r2Slider": { label: "R2", "$value": "g.r2", min: 100, max: 1000000, step: 100, unit: "Ω", onchange: "g.r2 = Number($event)" } }
|
|
1785
1785
|
},
|
|
1786
1786
|
"grid:params2": {
|
|
1787
1787
|
columns: 1, mdColumns: 2,
|
|
1788
|
-
"column:vinField": { "input:
|
|
1789
|
-
"column:rlField": { "input:
|
|
1788
|
+
"column:vinField": { "input:vinInput": { label: "输入电压 Vin", "$value": "std.units.si(g.vin, 'V', 1)", type: "engineering", unit: "V", placeholder: "5V", onchange: "if ($event.valid && $event.number > 0) g.vin = $event.number" }, "slider:vinSlider": { label: "Vin", "$value": "g.vin", min: 0.1, max: 48, step: 0.1, unit: "V", onchange: "g.vin = Number($event)" } },
|
|
1789
|
+
"column:rlField": { "input:rlInput": { label: "负载电阻 RL", "$value": "std.units.si(g.rl, 'Ω', 1)", type: "engineering", unit: "Ω", placeholder: "100kΩ", onchange: "if ($event.valid && $event.number > 0) g.rl = $event.number" }, "slider:rlSlider": { label: "RL", "$value": "g.rl", min: 1000, max: 10000000, step: 1000, unit: "Ω", onchange: "g.rl = Number($event)" } }
|
|
1790
1790
|
},
|
|
1791
1791
|
"formula:eq1": { "$tex": "'V_{out} = ' + g.vin.toFixed(1) + ' \\\\times \\\\frac{' + (g.r2/1000).toFixed(1) + '\\\\text{k}}{' + (g.r1/1000).toFixed(1) + '\\\\text{k} + ' + (g.r2/1000).toFixed(1) + '\\\\text{k}} = ' + g.vout().toFixed(3) + '\\\\text{ V}'" },
|
|
1792
1792
|
"grid:results": {
|
|
@@ -1862,9 +1862,9 @@ $$|H(f)| = \frac{1}{\sqrt{1 + (f/f_c)^2}}$$
|
|
|
1862
1862
|
title: "参数输入",
|
|
1863
1863
|
"grid:inputs": {
|
|
1864
1864
|
columns: 1, mdColumns: 2,
|
|
1865
|
-
"column:rField": { "input:
|
|
1866
|
-
"column:cField": { "input:
|
|
1867
|
-
"column:fField": { "input:
|
|
1865
|
+
"column:rField": { "input:rInput": { label: "电阻 R", "$value": "std.units.si(g.r, 'Ω', 1)", type: "engineering", unit: "Ω", placeholder: "10kΩ", onchange: "if ($event.valid && $event.number > 0) g.r = $event.number" }, "slider:rSlider": { label: "R", "$value": "g.r", min: 100, max: 100000, step: 100, unit: "Ω", onchange: "g.r = Number($event)" } },
|
|
1866
|
+
"column:cField": { "input:cInput": { label: "电容 C", "$value": "g.c + 'nF'", type: "engineering", unit: "nF", placeholder: "100nF", onchange: "if ($event.valid && $event.number > 0) g.c = $event.unit ? $event.number * 1e9 : $event.number" }, "slider:cSlider": { label: "C", "$value": "g.c", min: 1, max: 1000, step: 1, unit: "nF", onchange: "g.c = Number($event)" } },
|
|
1867
|
+
"column:fField": { "input:fInput": { label: "输入频率 f", "$value": "std.units.si(g.f, 'Hz', 1)", type: "engineering", unit: "Hz", placeholder: "1kHz", onchange: "if ($event.valid && $event.number >= 0) g.f = $event.number" }, "slider:fSlider": { label: "f", "$value": "g.f", min: 1, max: 100000, step: 1, unit: "Hz", onchange: "g.f = Number($event)" } }
|
|
1868
1868
|
},
|
|
1869
1869
|
"stat:fc": { label: "截止频率", "$value": "g.cutoff().toFixed(1)", unit: "Hz" },
|
|
1870
1870
|
"badge:regime": { "$label": "g.regimeLabel()", "$tone": "g.f < g.cutoff() * 0.1 ? 'success' : g.f > g.cutoff() * 10 ? 'danger' : 'warning'" }
|
|
@@ -2422,7 +2422,7 @@ URL: /zh-CN/examples/toolhost-demo
|
|
|
2422
2422
|
Raw Markdown: /zh-CN/examples/toolhost-demo.md
|
|
2423
2423
|
Source: content/examples/toolhost-demo/zh-CN.md
|
|
2424
2424
|
|
|
2425
|
-
|
|
2425
|
+
# ToolHost 对话演示
|
|
2426
2426
|
|
|
2427
2427
|
AI 对话中需要收集用户信息时,会调用 **ToolHost** 弹出交互式表单卡片。用户填写并提交后,表单数据以结构化的 `ToolResult` 返回给 AI,AI 继续处理。
|
|
2428
2428
|
|
|
@@ -7574,6 +7574,24 @@ slexkitRenderMode: component
|
|
|
7574
7574
|
|
|
7575
7575
|
All notable changes to SlexKit.
|
|
7576
7576
|
|
|
7577
|
+
## v0.3.3 - Obsidian input control hardening
|
|
7578
|
+
|
|
7579
|
+
### Fixed
|
|
7580
|
+
- Slider now renders its visual track outside the native range input while keeping the native input for interaction and accessibility, avoiding square thumb artifacts in Obsidian and other host themes.
|
|
7581
|
+
- Input fields with trailing units now reset host input chrome with scoped selectors so unit add-ons stay aligned with the text field in Obsidian dark themes.
|
|
7582
|
+
|
|
7583
|
+
## v0.3.2 - Host CSS isolation and repeated layout hardening
|
|
7584
|
+
|
|
7585
|
+
### Changed
|
|
7586
|
+
- `$for` rendering now uses comment anchors and direct child insertion instead of a wrapper element that depended on `display: contents`.
|
|
7587
|
+
- Site-only mobile navigation CSS moved out of the runtime base stylesheet and into the documentation site shell.
|
|
7588
|
+
- Component accessors now share one reactive effect across subscribers instead of creating duplicate subscriber fan-out work.
|
|
7589
|
+
|
|
7590
|
+
### Fixed
|
|
7591
|
+
- Obsidian and other Markdown hosts no longer need to rewrite `$for` wrapper CSS to avoid `display: contents`, preserving grid and row layouts for repeated items.
|
|
7592
|
+
- Published runtime base CSS no longer leaks `#mobileNav` or `body[data-mobile-nav-open]` selectors into host pages.
|
|
7593
|
+
- Custom renderers that return no element no longer leave invalid `$for` slots behind during diffing or cleanup.
|
|
7594
|
+
|
|
7577
7595
|
## v0.3.1 - Host stability and control rendering hardening
|
|
7578
7596
|
|
|
7579
7597
|
### Added
|
|
@@ -7599,14 +7617,19 @@ All notable changes to SlexKit.
|
|
|
7599
7617
|
- English translations for all 17 example pages
|
|
7600
7618
|
- `toolhost-demo`: real `renderToolCall` API with chat-style conversation UI
|
|
7601
7619
|
- Example rendering infrastructure: `site/routes/examples.js`, `site/pages/examples.slex.js`, `site/data/examples.js`
|
|
7620
|
+
- Content discovery: `site/data/content-discovery.js` with locale fallback and allowed-slug filtering
|
|
7621
|
+
- `site/data/content-discovery.js`: `discoverExampleMarkdown()` with per-locale discovery
|
|
7622
|
+
- SEO metadata for example pages
|
|
7623
|
+
- `examples/minimal-cdn/index.html`: zero-build CDN usage example
|
|
7602
7624
|
- Formula component (`src/components/svelte/content/Formula.svelte`) with KaTeX rendering
|
|
7603
7625
|
- `src/engine/capabilities.ts`: structured capability docs for AI agents
|
|
7604
|
-
- `src/engine/validation.ts`: SPEC contract validation
|
|
7626
|
+
- `src/engine/validation.ts`: SPEC contract validation for component specs
|
|
7605
7627
|
- `src/engine/stdlib.ts`: standard library with `math.clamp`, `math.safeDivide`, and other utilities
|
|
7606
7628
|
- `src/engine/sandbox-runner.ts`: sandbox runner for secure runtime
|
|
7607
7629
|
- Component state eval context shadowing test suite (`component-state-shadowing.test.ts`)
|
|
7608
7630
|
- Collapsible and Callout double-rendering regression tests
|
|
7609
7631
|
- Slider component name shadowing regression test
|
|
7632
|
+
- Tests for content, playground, select, tabs, slider, disclosure, feedback, policy-api
|
|
7610
7633
|
|
|
7611
7634
|
### Changed
|
|
7612
7635
|
- Examples reduced from 64 to 17 high-quality examples, organized by user story
|
|
@@ -7616,6 +7639,7 @@ All notable changes to SlexKit.
|
|
|
7616
7639
|
- Site UI: DocsShell, DocRail, router, shell improvements
|
|
7617
7640
|
- Components: Input, Select, Tabs, Table, PlaygroundMarkdown refinements
|
|
7618
7641
|
- CSS: theme-shadcn, text-input, docs-shell styling updates
|
|
7642
|
+
- MCP: enhanced with structured capability docs
|
|
7619
7643
|
|
|
7620
7644
|
### Fixed
|
|
7621
7645
|
- Eval context shadowing: component names `g` and `api` no longer overwrite reserved context keys
|
|
@@ -7624,11 +7648,19 @@ All notable changes to SlexKit.
|
|
|
7624
7648
|
- Salary calculator fallback numbers to match actual calculator output
|
|
7625
7649
|
- Tabs-and-branching: title and length conversion mismatch
|
|
7626
7650
|
- 4 pre-existing test failures (ai-docs, page-structure, theme, markdown-content)
|
|
7651
|
+
- Toolhost test: added setup import to fix `document is not defined`
|
|
7652
|
+
- Badge stretching in grid layout
|
|
7653
|
+
- Project-dashboard syntax error
|
|
7654
|
+
- Salary-calculator rate configuration
|
|
7627
7655
|
|
|
7628
7656
|
### Removed
|
|
7629
7657
|
- 47 low-quality/duplicate examples (reduced from 64 to 17)
|
|
7630
7658
|
- Dead "Fallback" copywriting from all example files
|
|
7659
|
+
- Post-slex explanatory text from example files
|
|
7631
7660
|
- Unused `DialogShell.svelte` component
|
|
7661
|
+
- Orphaned `test-if` example directory
|
|
7662
|
+
- Agent-generated `docs/compose` planning files
|
|
7663
|
+
- Temporary `screenshot-*.png` files
|
|
7632
7664
|
|
|
7633
7665
|
## v0.2.0 - First public release
|
|
7634
7666
|
|