@kurot/cli 2.0.1 → 3.0.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.
- package/CHANGELOG.md +35 -1
- package/README.md +23 -10
- package/dist/core/dev-server.d.ts.map +1 -1
- package/dist/core/dev-server.js +50 -16
- package/dist/core/dev-server.js.map +1 -1
- package/dist/core/kui/codegen.d.ts.map +1 -1
- package/dist/core/kui/codegen.js +26 -6
- package/dist/core/kui/codegen.js.map +1 -1
- package/dist/core/kui/index.d.ts +4 -5
- package/dist/core/kui/index.d.ts.map +1 -1
- package/dist/core/kui/index.js +4 -4
- package/dist/core/kui/index.js.map +1 -1
- package/dist/core/kui/kui-parser.d.ts +2 -1
- package/dist/core/kui/kui-parser.d.ts.map +1 -1
- package/dist/core/kui/kui-parser.js +24 -18
- package/dist/core/kui/kui-parser.js.map +1 -1
- package/dist/core/kui/skin-module-builder.d.ts.map +1 -1
- package/dist/core/kui/skin-module-builder.js +14 -3
- package/dist/core/kui/skin-module-builder.js.map +1 -1
- package/package.json +2 -2
- package/templates/game/resource/ui/skins/ButtonSkin.kui.xml +4 -6
- package/templates/game/resource/ui/skins/CheckBoxSkin.kui.xml +6 -8
- package/templates/game/resource/ui/skins/ComboBoxSkin.kui.xml +7 -9
- package/templates/game/resource/ui/skins/GroupSkin.kui.xml +1 -3
- package/templates/game/resource/ui/skins/HScrollBarSkin.kui.xml +2 -4
- package/templates/game/resource/ui/skins/HSliderSkin.kui.xml +3 -5
- package/templates/game/resource/ui/skins/ImageSkin.kui.xml +1 -3
- package/templates/game/resource/ui/skins/ItemRendererSkin.kui.xml +3 -5
- package/templates/game/resource/ui/skins/LabelSkin.kui.xml +1 -3
- package/templates/game/resource/ui/skins/ListSkin.kui.xml +5 -7
- package/templates/game/resource/ui/skins/PanelSkin.kui.xml +6 -8
- package/templates/game/resource/ui/skins/ProgressBarSkin.kui.xml +4 -6
- package/templates/game/resource/ui/skins/RadioButtonSkin.kui.xml +6 -8
- package/templates/game/resource/ui/skins/ScrollerSkin.kui.xml +3 -5
- package/templates/game/resource/ui/skins/TabBarSkin.kui.xml +3 -5
- package/templates/game/resource/ui/skins/TextInputSkin.kui.xml +4 -6
- package/templates/game/resource/ui/skins/ToggleButtonSkin.kui.xml +3 -5
- package/templates/game/resource/ui/skins/ToggleSwitchSkin.kui.xml +2 -4
- package/templates/game/resource/ui/skins/VScrollBarSkin.kui.xml +2 -4
- package/templates/game/resource/ui/skins/VSliderSkin.kui.xml +3 -5
- package/templates/game/resource/ui/skins/ViewStackSkin.kui.xml +1 -3
package/CHANGELOG.md
CHANGED
|
@@ -5,7 +5,41 @@ All notable changes to `@kurot/cli` are documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
##
|
|
8
|
+
## 3.0.0 — 2026-10-03
|
|
9
|
+
|
|
10
|
+
### Breaking Changes
|
|
11
|
+
|
|
12
|
+
- KUI builds reject resource manifests with comma-separated sheet `subkeys`.
|
|
13
|
+
Refresh each sheet in the Editor to produce an object-valued frame map before
|
|
14
|
+
building with this CLI.
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- Resolve resource nine-slice defaults into disposable Skin compilation copies.
|
|
19
|
+
Explicit XML grids and `false` opt-outs take precedence; source states clear
|
|
20
|
+
or replace inherited grids without changing authored XML.
|
|
21
|
+
- Development mode watches `resource/default.res.json`, serializes resource
|
|
22
|
+
and component rebuilds, and retains the last good Skin bundle when manifest
|
|
23
|
+
validation fails.
|
|
24
|
+
|
|
25
|
+
### Changed
|
|
26
|
+
|
|
27
|
+
- Require `@kurot/ui-document@^0.7.0` for the shared resource parser and
|
|
28
|
+
default resolver.
|
|
29
|
+
|
|
30
|
+
### Tests
|
|
31
|
+
|
|
32
|
+
- Added parser, generated Skin, and development rebuild regressions.
|
|
33
|
+
|
|
34
|
+
## 2.0.2 — 2026-09-22
|
|
35
|
+
|
|
36
|
+
### Changed
|
|
37
|
+
|
|
38
|
+
- Raised the `@kurot/ui-document` requirement to `^0.6.2`.
|
|
39
|
+
- KUI compilation now treats `<Skin>` as the visual root container: Skin
|
|
40
|
+
properties and layouts apply directly to the runtime Skin, and direct XML
|
|
41
|
+
children become `skin.elementsContent` without generating an extra Group.
|
|
42
|
+
- Updated all bundled default skins to remove their redundant root Group.
|
|
9
43
|
|
|
10
44
|
## 2.0.1 — 2026-09-21
|
|
11
45
|
|
package/README.md
CHANGED
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
Build tooling for the Kurot UI Editor workflow. It uses esbuild, emits ES2022
|
|
4
4
|
ESM, and compiles canonical KUI XML skins into runtime theme modules.
|
|
5
5
|
|
|
6
|
-
> **
|
|
6
|
+
> **Prepared release: 3.0.0.** Node.js 20 or later is required.
|
|
7
7
|
|
|
8
|
-
> **Release scope:** The
|
|
8
|
+
> **Release scope:** The 3.x line is dedicated to Kurot Editor integration.
|
|
9
9
|
> Existing game projects that use EXML, including CrashMaster, should remain on
|
|
10
|
-
> `@kurot/cli@1.3.x`.
|
|
10
|
+
> `@kurot/cli@1.3.x`. The KUI toolchain is not an in-place project upgrade and does
|
|
11
11
|
> not require those projects to change their configuration or UI assets.
|
|
12
12
|
|
|
13
13
|
See [CHANGELOG.md](CHANGELOG.md) for release history.
|
|
@@ -115,15 +115,16 @@ The HTML template must contain these placeholders:
|
|
|
115
115
|
## KUI XML compilation
|
|
116
116
|
|
|
117
117
|
KUI XML is the authored Skin format. A Skin root declares its generated class
|
|
118
|
-
name and, when needed, its state names
|
|
118
|
+
name and, when needed, its state names. The Skin itself is the visual root
|
|
119
|
+
container, so size and layout properties belong on `<Skin>` and visual nodes
|
|
120
|
+
are direct children:
|
|
119
121
|
|
|
120
122
|
```xml
|
|
121
123
|
<?xml version="1.0" encoding="utf-8"?>
|
|
122
|
-
<Skin xmlns="https://kurot.dev/ui/1" class="skins.ButtonSkin" states="up,down,disabled"
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
</Group>
|
|
124
|
+
<Skin xmlns="https://kurot.dev/ui/1" class="skins.ButtonSkin" states="up,down,disabled"
|
|
125
|
+
minWidth="100" minHeight="50">
|
|
126
|
+
<Rect fillColor="#315A9D" fillColor.down="#244474" alpha.disabled="0.5" />
|
|
127
|
+
<Label id="labelDisplay" horizontalCenter="0" verticalCenter="0" />
|
|
127
128
|
</Skin>
|
|
128
129
|
```
|
|
129
130
|
|
|
@@ -145,7 +146,7 @@ mappings are errors. Unknown tags are warnings in normal development and errors
|
|
|
145
146
|
under strict or release builds.
|
|
146
147
|
|
|
147
148
|
Successful compilation also writes `.kurot/skin-parts.d.ts`. Every identified
|
|
148
|
-
node
|
|
149
|
+
node inside the Skin is inferred as a skin part; its `id` is the part
|
|
149
150
|
name. The declaration augments the UI runtime with those exact names and types.
|
|
150
151
|
This file is editor-only, ignored by git, and never enters browser bundles.
|
|
151
152
|
|
|
@@ -185,3 +186,15 @@ my-game/
|
|
|
185
186
|
│ └── Main.ts
|
|
186
187
|
└── template/web/index.html
|
|
187
188
|
```
|
|
189
|
+
|
|
190
|
+
## Resource defaults in 3.0.0
|
|
191
|
+
|
|
192
|
+
KUI builds validate `resource/default.res.json` and inherit image or sheet-frame
|
|
193
|
+
`scale9grid` values into compiled `Image.scale9Grid` when XML does not set one.
|
|
194
|
+
Local grids and `scale9Grid="false"` take priority. Development mode rebuilds
|
|
195
|
+
skins after manifest edits; a malformed manifest leaves the last good Skin
|
|
196
|
+
bundle in place. This release requires `@kurot/ui-document@^0.7.0`.
|
|
197
|
+
|
|
198
|
+
Sheet `subkeys` must be an object-valued frame map. Refresh old sheets in the
|
|
199
|
+
Editor before upgrading a KUI project; string-valued subkeys now fail the build.
|
|
200
|
+
See the [resource nine-slice contract](../ui-document/docs/resource-nine-slice.md).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-server.d.ts","sourceRoot":"","sources":["../../src/core/dev-server.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,WAAW,gBAAgB;IAChC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;CAC7C;AAwBD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"dev-server.d.ts","sourceRoot":"","sources":["../../src/core/dev-server.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,WAAW,gBAAgB;IAChC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;CAC7C;AAwBD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiC/F"}
|
package/dist/core/dev-server.js
CHANGED
|
@@ -58,8 +58,9 @@ export async function startDevServer(project, options) {
|
|
|
58
58
|
options.onEvent?.({ type: 'build-complete', success: false, durationMs: Date.now() - startedAt });
|
|
59
59
|
throw error;
|
|
60
60
|
}
|
|
61
|
-
const
|
|
62
|
-
|
|
61
|
+
const enqueue = createResourceBuildQueue(ctx);
|
|
62
|
+
const componentSkinsWatched = watchComponents(project, ctx, options, enqueue);
|
|
63
|
+
watchResources(project, ctx, options, componentSkinsWatched, enqueue);
|
|
63
64
|
const server = startHttpServer(project, options);
|
|
64
65
|
process.on('SIGINT', async () => {
|
|
65
66
|
logger.info('Stopping dev server...');
|
|
@@ -69,24 +70,24 @@ export async function startDevServer(project, options) {
|
|
|
69
70
|
});
|
|
70
71
|
}
|
|
71
72
|
/**
|
|
72
|
-
* Recompiles KUI
|
|
73
|
+
* Recompiles KUI when authored skins or their resource default configuration change.
|
|
73
74
|
*/
|
|
74
|
-
function watchResources(project, ctx, options, componentSkinsWatched) {
|
|
75
|
+
function watchResources(project, ctx, options, componentSkinsWatched, enqueue) {
|
|
75
76
|
if (!project.config.ui)
|
|
76
77
|
return;
|
|
77
78
|
let debounce;
|
|
78
79
|
let watcher;
|
|
79
80
|
try {
|
|
80
81
|
watcher = fsSync.watch(project.resourceDir, { recursive: true }, (_event, filename) => {
|
|
81
|
-
if (!filename || !filename.endsWith('.kui.xml'))
|
|
82
|
+
if (!filename || (!filename.endsWith('.kui.xml') && filename !== 'default.res.json'))
|
|
82
83
|
return;
|
|
83
|
-
if (componentSkinsWatched && project.componentConvention) {
|
|
84
|
+
if (filename.endsWith('.kui.xml') && componentSkinsWatched && project.componentConvention) {
|
|
84
85
|
const changed = path.resolve(project.resourceDir, filename);
|
|
85
86
|
if (isWithin(project.componentConvention.skinDir, changed))
|
|
86
87
|
return;
|
|
87
88
|
}
|
|
88
89
|
clearTimeout(debounce);
|
|
89
|
-
debounce = setTimeout(async () => {
|
|
90
|
+
debounce = setTimeout(() => enqueue(async () => {
|
|
90
91
|
const startedAt = Date.now();
|
|
91
92
|
options.onEvent?.({ type: 'build-start', reason: 'kui-change' });
|
|
92
93
|
logger.info(`KUI changed: ${path.basename(filename)}, recompiling...`);
|
|
@@ -94,27 +95,38 @@ function watchResources(project, ctx, options, componentSkinsWatched) {
|
|
|
94
95
|
await compileKUI().apply(ctx);
|
|
95
96
|
await copyAssets().apply(ctx);
|
|
96
97
|
emitDiagnostics(ctx, options);
|
|
97
|
-
options.onEvent?.({
|
|
98
|
+
options.onEvent?.({
|
|
99
|
+
type: 'build-complete',
|
|
100
|
+
success: true,
|
|
101
|
+
durationMs: Date.now() - startedAt,
|
|
102
|
+
});
|
|
98
103
|
}
|
|
99
104
|
catch (err) {
|
|
100
105
|
emitDiagnostics(ctx, options);
|
|
101
|
-
options.onEvent?.({
|
|
106
|
+
options.onEvent?.({
|
|
107
|
+
type: 'build-complete',
|
|
108
|
+
success: false,
|
|
109
|
+
durationMs: Date.now() - startedAt,
|
|
110
|
+
});
|
|
102
111
|
logger.error(`KUI recompile failed: ${err instanceof Error ? err.message : err}`);
|
|
103
112
|
}
|
|
104
|
-
}, 100);
|
|
113
|
+
}), 100);
|
|
105
114
|
});
|
|
106
115
|
}
|
|
107
116
|
catch {
|
|
108
117
|
logger.warn('KUI watcher unavailable (recursive fs.watch unsupported on this platform).');
|
|
109
118
|
return;
|
|
110
119
|
}
|
|
111
|
-
ctx.disposers.push(() =>
|
|
120
|
+
ctx.disposers.push(() => {
|
|
121
|
+
clearTimeout(debounce);
|
|
122
|
+
watcher.close();
|
|
123
|
+
});
|
|
112
124
|
}
|
|
113
125
|
/**
|
|
114
126
|
* Refreshes the component model and dependent artifacts when a reusable
|
|
115
127
|
* component source or skin changes.
|
|
116
128
|
*/
|
|
117
|
-
function watchComponents(project, ctx, options) {
|
|
129
|
+
function watchComponents(project, ctx, options, enqueue) {
|
|
118
130
|
const convention = project.componentConvention;
|
|
119
131
|
if (!convention)
|
|
120
132
|
return false;
|
|
@@ -123,7 +135,7 @@ function watchComponents(project, ctx, options) {
|
|
|
123
135
|
let skinWatcherActive = false;
|
|
124
136
|
const schedule = () => {
|
|
125
137
|
clearTimeout(debounce);
|
|
126
|
-
debounce = setTimeout(async () => {
|
|
138
|
+
debounce = setTimeout(() => enqueue(async () => {
|
|
127
139
|
const startedAt = Date.now();
|
|
128
140
|
options.onEvent?.({ type: 'build-start', reason: 'source-change' });
|
|
129
141
|
try {
|
|
@@ -133,14 +145,22 @@ function watchComponents(project, ctx, options) {
|
|
|
133
145
|
await writeComponentCatalog().apply(ctx);
|
|
134
146
|
await copyAssets().apply(ctx);
|
|
135
147
|
emitDiagnostics(ctx, options);
|
|
136
|
-
options.onEvent?.({
|
|
148
|
+
options.onEvent?.({
|
|
149
|
+
type: 'build-complete',
|
|
150
|
+
success: true,
|
|
151
|
+
durationMs: Date.now() - startedAt,
|
|
152
|
+
});
|
|
137
153
|
}
|
|
138
154
|
catch (error) {
|
|
139
155
|
emitDiagnostics(ctx, options);
|
|
140
|
-
options.onEvent?.({
|
|
156
|
+
options.onEvent?.({
|
|
157
|
+
type: 'build-complete',
|
|
158
|
+
success: false,
|
|
159
|
+
durationMs: Date.now() - startedAt,
|
|
160
|
+
});
|
|
141
161
|
logger.error(`Component refresh failed: ${error instanceof Error ? error.message : error}`);
|
|
142
162
|
}
|
|
143
|
-
}, 100);
|
|
163
|
+
}), 100);
|
|
144
164
|
};
|
|
145
165
|
for (const [directory, kind, accepts] of [
|
|
146
166
|
[convention.sourceDir, 'source', (file) => file.endsWith('.ts')],
|
|
@@ -169,6 +189,20 @@ function watchComponents(project, ctx, options) {
|
|
|
169
189
|
});
|
|
170
190
|
return skinWatcherActive;
|
|
171
191
|
}
|
|
192
|
+
function createResourceBuildQueue(ctx) {
|
|
193
|
+
let pending = Promise.resolve();
|
|
194
|
+
let disposed = false;
|
|
195
|
+
ctx.disposers.push(() => {
|
|
196
|
+
disposed = true;
|
|
197
|
+
});
|
|
198
|
+
return action => {
|
|
199
|
+
pending = pending.then(async () => {
|
|
200
|
+
if (!disposed) {
|
|
201
|
+
await action();
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
};
|
|
205
|
+
}
|
|
172
206
|
function isWithin(directory, file) {
|
|
173
207
|
const relative = path.relative(directory, file);
|
|
174
208
|
return relative === '' || (!relative.startsWith('..') && !path.isAbsolute(relative));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-server.js","sourceRoot":"","sources":["../../src/core/dev-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,MAAM,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EACN,UAAU,EACV,aAAa,EACb,uBAAuB,EACvB,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,UAAU,GACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gCAAgC,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAwB5C,MAAM,UAAU,GAA2B;IAC1C,OAAO,EAAE,0BAA0B;IACnC,KAAK,EAAE,wBAAwB;IAC/B,MAAM,EAAE,wBAAwB;IAChC,MAAM,EAAE,kBAAkB;IAC1B,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,kBAAkB;IAC3B,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,eAAe;IACvB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,YAAY;IACtB,MAAM,EAAE,UAAU;CAClB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAgB,EAAE,OAAyB;IAC/E,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1G,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAC9D,IAAI,CAAC;QACJ,MAAM,WAAW,CAAC,GAAG,EAAE;YACtB,UAAU,EAAE;YACZ,aAAa,EAAE;YACf,uBAAuB,EAAE;YACzB,qBAAqB,EAAE;YACvB,aAAa,EAAE;YACf,YAAY,EAAE;YACd,UAAU,EAAE;SACZ,CAAC,CAAC;QACH,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;IAClG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;QAClG,MAAM,KAAK,CAAC;IACb,CAAC;IAED,MAAM,qBAAqB,GAAG,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"dev-server.js","sourceRoot":"","sources":["../../src/core/dev-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../../src/core/kui/codegen.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../../src/core/kui/codegen.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAA8C,MAAM,EAAqC,MAAM,UAAU,CAAC;AAKtH,MAAM,WAAW,cAAc;IAC9B;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,CAE1E"}
|
package/dist/core/kui/codegen.js
CHANGED
|
@@ -46,8 +46,7 @@ class CodeGenerator {
|
|
|
46
46
|
}
|
|
47
47
|
moduleImports.get(modulePath).add(className);
|
|
48
48
|
}
|
|
49
|
-
//
|
|
50
|
-
// comma-separated form used by the runtime compiler.
|
|
49
|
+
// Resource defaults and authored rectangles share the same runtime constructor.
|
|
51
50
|
if (this.hasPropertyInTree('scale9Grid')) {
|
|
52
51
|
if (!moduleImports.has('@kurot/core')) {
|
|
53
52
|
moduleImports.set('@kurot/core', new Set());
|
|
@@ -85,6 +84,7 @@ class CodeGenerator {
|
|
|
85
84
|
for (const prop of this._ir.properties) {
|
|
86
85
|
this.emitPropertyAssignment('skin', prop.name, prop.value);
|
|
87
86
|
}
|
|
87
|
+
this.emitPropertyChildren('skin', this._ir.propertyChildren);
|
|
88
88
|
this.emitNodeDeclarations(this._ir.children);
|
|
89
89
|
if (this._ir.children.length > 0) {
|
|
90
90
|
const childVars = this._ir.children.map(n => n.varName).join(', ');
|
|
@@ -145,11 +145,14 @@ class CodeGenerator {
|
|
|
145
145
|
this.line(`${target}.${prop} = ${this.propertyValueToJS(prop, value)};`);
|
|
146
146
|
}
|
|
147
147
|
emitNodePropertyChildren(node) {
|
|
148
|
-
|
|
148
|
+
this.emitPropertyChildren(node.varName, node.propertyChildren);
|
|
149
|
+
}
|
|
150
|
+
emitPropertyChildren(target, propertyChildren) {
|
|
151
|
+
for (const pc of propertyChildren) {
|
|
149
152
|
for (const child of pc.nodes) {
|
|
150
153
|
this.emitNodeCreation(child);
|
|
151
154
|
this.emitNodeProperties(child);
|
|
152
|
-
this.line(`${
|
|
155
|
+
this.line(`${target}.${pc.propertyName} = ${child.varName};`);
|
|
153
156
|
}
|
|
154
157
|
}
|
|
155
158
|
}
|
|
@@ -181,6 +184,22 @@ class CodeGenerator {
|
|
|
181
184
|
}
|
|
182
185
|
}
|
|
183
186
|
propertyValueToJS(prop, value) {
|
|
187
|
+
if (prop === 'scale9Grid' && value.type === 'literal' && value.value === false) {
|
|
188
|
+
return 'undefined';
|
|
189
|
+
}
|
|
190
|
+
if (prop === 'scale9Grid' &&
|
|
191
|
+
value.type === 'literal' &&
|
|
192
|
+
value.value &&
|
|
193
|
+
typeof value.value === 'object' &&
|
|
194
|
+
'x' in value.value &&
|
|
195
|
+
'y' in value.value &&
|
|
196
|
+
'width' in value.value &&
|
|
197
|
+
'height' in value.value) {
|
|
198
|
+
const { x, y, width, height } = value.value;
|
|
199
|
+
if ([x, y, width, height].every(part => typeof part === 'number' && Number.isFinite(part))) {
|
|
200
|
+
return `new Rectangle(${[x, y, width, height].join(', ')})`;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
184
203
|
if (prop === 'scale9Grid' && value.type === 'literal' && typeof value.value === 'string') {
|
|
185
204
|
const parts = value.value.split(',').map(part => Number(part.trim()));
|
|
186
205
|
if (parts.length === 4 && parts.every(Number.isFinite)) {
|
|
@@ -205,13 +224,14 @@ class CodeGenerator {
|
|
|
205
224
|
return `create${base}`;
|
|
206
225
|
}
|
|
207
226
|
hasPropertyInTree(propertyName) {
|
|
208
|
-
if (this._ir.properties.some(prop => prop.name === propertyName)
|
|
227
|
+
if (this._ir.properties.some(prop => prop.name === propertyName) ||
|
|
228
|
+
this._ir.states.some(state => state.overrides.some(override => override.name === propertyName)))
|
|
209
229
|
return true;
|
|
210
230
|
const visit = (nodes) => {
|
|
211
231
|
for (const node of nodes) {
|
|
212
232
|
if (node.properties.some(prop => prop.name === propertyName))
|
|
213
233
|
return true;
|
|
214
|
-
if (visit(node.children))
|
|
234
|
+
if (visit(node.children) || node.propertyChildren.some(child => visit(child.nodes)))
|
|
215
235
|
return true;
|
|
216
236
|
}
|
|
217
237
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../../src/core/kui/codegen.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../../src/core/kui/codegen.ts"],"names":[],"mappings":"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"}
|
package/dist/core/kui/index.d.ts
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
* KUI Skin parser and ESM factory generator.
|
|
3
|
-
*/
|
|
1
|
+
import type { UIResourceConfigEntry } from '@kurot/ui-document';
|
|
4
2
|
import type { SkinIR } from './ast.js';
|
|
5
3
|
import type { CodeGenOptions } from './codegen.js';
|
|
6
4
|
import type { NamespaceModule } from './registry.js';
|
|
7
5
|
export { SourceLocator, createSourceLocator } from './source-location.js';
|
|
8
6
|
export type { SourcePosition } from './source-location.js';
|
|
9
7
|
export type { SkinIR, SkinNode, PropertyAssignment, PropertyValue, PropertyChild, LiteralValue, PercentValue, StateDef, StateOverride, StateSetProperty, UnresolvedTag, } from './ast.js';
|
|
10
|
-
export { lookupComponent, localName, suggestComponentTag
|
|
8
|
+
export { lookupComponent, localName, suggestComponentTag } from './registry.js';
|
|
11
9
|
export type { ComponentInfo, NamespaceModule } from './registry.js';
|
|
12
10
|
export { parseKUISkin } from './kui-parser.js';
|
|
13
11
|
export { generateCode } from './codegen.js';
|
|
@@ -17,6 +15,7 @@ export interface CompileKUIOptions extends CodeGenOptions {
|
|
|
17
15
|
* Project-defined KUI component namespaces.
|
|
18
16
|
*/
|
|
19
17
|
readonly customNamespaces?: readonly NamespaceModule[];
|
|
18
|
+
readonly resources?: readonly UIResourceConfigEntry[];
|
|
20
19
|
}
|
|
21
20
|
/**
|
|
22
21
|
* Compiles one KUI Skin source string to an ESM factory module.
|
|
@@ -25,5 +24,5 @@ export declare function compileKUI(source: string, className?: string, options?:
|
|
|
25
24
|
/**
|
|
26
25
|
* Parses one KUI Skin source string into the compiler IR.
|
|
27
26
|
*/
|
|
28
|
-
export declare function parseToIR(source: string, className?: string, customNamespaces?: readonly NamespaceModule[]): SkinIR;
|
|
27
|
+
export declare function parseToIR(source: string, className?: string, customNamespaces?: readonly NamespaceModule[], resources?: readonly UIResourceConfigEntry[]): SkinIR;
|
|
29
28
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/kui/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/kui/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAOhE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,YAAY,EACX,MAAM,EACN,QAAQ,EACR,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,aAAa,GACb,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAChF,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACxD;;OAEG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACvD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACtD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAGlG;AAED;;GAEG;AACH,wBAAgB,SAAS,CACxB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,gBAAgB,GAAE,SAAS,eAAe,EAAO,EACjD,SAAS,GAAE,SAAS,qBAAqB,EAAO,GAC9C,MAAM,CAER"}
|
package/dist/core/kui/index.js
CHANGED
|
@@ -4,20 +4,20 @@
|
|
|
4
4
|
import { generateCode } from './codegen.js';
|
|
5
5
|
import { parseKUISkin } from './kui-parser.js';
|
|
6
6
|
export { SourceLocator, createSourceLocator } from './source-location.js';
|
|
7
|
-
export { lookupComponent, localName, suggestComponentTag
|
|
7
|
+
export { lookupComponent, localName, suggestComponentTag } from './registry.js';
|
|
8
8
|
export { parseKUISkin } from './kui-parser.js';
|
|
9
9
|
export { generateCode } from './codegen.js';
|
|
10
10
|
/**
|
|
11
11
|
* Compiles one KUI Skin source string to an ESM factory module.
|
|
12
12
|
*/
|
|
13
13
|
export function compileKUI(source, className, options) {
|
|
14
|
-
const ir = parseKUISkin(source, className, options?.customNamespaces ?? []);
|
|
14
|
+
const ir = parseKUISkin(source, className, options?.customNamespaces ?? [], options?.resources ?? []);
|
|
15
15
|
return generateCode(ir, options);
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* Parses one KUI Skin source string into the compiler IR.
|
|
19
19
|
*/
|
|
20
|
-
export function parseToIR(source, className, customNamespaces = []) {
|
|
21
|
-
return parseKUISkin(source, className, customNamespaces);
|
|
20
|
+
export function parseToIR(source, className, customNamespaces = [], resources = []) {
|
|
21
|
+
return parseKUISkin(source, className, customNamespaces, resources);
|
|
22
22
|
}
|
|
23
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/kui/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/kui/index.ts"],"names":[],"mappings":"AACA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAK/C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAiB1E,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGhF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAW5C;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc,EAAE,SAAkB,EAAE,OAA2B;IACzF,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;IACtG,OAAO,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CACxB,MAAc,EACd,SAAkB,EAClB,mBAA+C,EAAE,EACjD,YAA8C,EAAE;IAEhD,OAAO,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;AACrE,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import type { UIResourceConfigEntry } from '@kurot/ui-document';
|
|
1
2
|
import type { SkinIR } from './ast.js';
|
|
2
3
|
import type { NamespaceModule } from './registry.js';
|
|
3
4
|
/**
|
|
4
5
|
* Parses a KUI Skin document into the existing skin code-generation IR.
|
|
5
6
|
*/
|
|
6
|
-
export declare function parseKUISkin(source: string, className
|
|
7
|
+
export declare function parseKUISkin(source: string, className?: string, customNamespaces?: readonly NamespaceModule[], resources?: readonly UIResourceConfigEntry[]): SkinIR;
|
|
7
8
|
//# sourceMappingURL=kui-parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kui-parser.d.ts","sourceRoot":"","sources":["../../../src/core/kui/kui-parser.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAIX,MAAM,EAIN,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD;;GAEG;AACH,wBAAgB,YAAY,CAC3B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"kui-parser.d.ts","sourceRoot":"","sources":["../../../src/core/kui/kui-parser.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAuC,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACrG,OAAO,KAAK,EAIX,MAAM,EAIN,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD;;GAEG;AACH,wBAAgB,YAAY,CAC3B,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,gBAAgB,GAAE,SAAS,eAAe,EAAO,EACjD,SAAS,GAAE,SAAS,qBAAqB,EAAO,GAC9C,MAAM,CAGR"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { isUIAssetReference, isUIDesignTokenReference, isUIResourceReference, isSyntheticNodeId, parseUIDocument, } from '@kurot/ui-document';
|
|
1
|
+
import { isUIAssetReference, isUIDesignTokenReference, isUIResourceReference, isSyntheticNodeId, parseUIDocument, resolveUIResourceDefaults, } from '@kurot/ui-document';
|
|
2
2
|
import { localName, lookupComponent } from './registry.js';
|
|
3
3
|
/**
|
|
4
4
|
* Parses a KUI Skin document into the existing skin code-generation IR.
|
|
5
5
|
*/
|
|
6
|
-
export function parseKUISkin(source, className, customNamespaces = []) {
|
|
7
|
-
const document = parseUIDocument(source);
|
|
6
|
+
export function parseKUISkin(source, className, customNamespaces = [], resources = []) {
|
|
7
|
+
const document = resolveUIResourceDefaults(parseUIDocument(source), resources);
|
|
8
8
|
return new KUIParseContext(source, document, className ?? document.id, customNamespaces).parse();
|
|
9
9
|
}
|
|
10
10
|
class KUIParseContext {
|
|
@@ -29,16 +29,16 @@ class KUIParseContext {
|
|
|
29
29
|
}
|
|
30
30
|
const width = numericProperty(root.properties.width);
|
|
31
31
|
const height = numericProperty(root.properties.height);
|
|
32
|
-
const
|
|
32
|
+
const rootProperties = this._properties(root, new Set(['height', 'width']));
|
|
33
33
|
return {
|
|
34
34
|
className: this._className,
|
|
35
35
|
...(width === undefined ? {} : { width }),
|
|
36
36
|
...(height === undefined ? {} : { height }),
|
|
37
|
-
properties:
|
|
37
|
+
properties: rootProperties.properties,
|
|
38
38
|
imports: this._imports,
|
|
39
39
|
skinParts: this._skinParts,
|
|
40
|
-
children:
|
|
41
|
-
propertyChildren:
|
|
40
|
+
children: root.children.map(child => this._node(child)).filter(isSkinNode),
|
|
41
|
+
propertyChildren: rootProperties.propertyChildren,
|
|
42
42
|
states: this._states(),
|
|
43
43
|
declarations: [],
|
|
44
44
|
unresolvedTags: this._unresolvedTags,
|
|
@@ -59,9 +59,23 @@ class KUIParseContext {
|
|
|
59
59
|
if (exposeAsPart && !isSyntheticNodeId(node.id)) {
|
|
60
60
|
this._skinParts.push(node.id);
|
|
61
61
|
}
|
|
62
|
-
const propertyChildren =
|
|
62
|
+
const { properties, propertyChildren } = this._properties(node);
|
|
63
|
+
return {
|
|
64
|
+
className,
|
|
65
|
+
module: info.module,
|
|
66
|
+
varName: safeVariable(node.id, className, ++this._variable),
|
|
67
|
+
id: node.id,
|
|
68
|
+
properties,
|
|
69
|
+
children: node.children.map(child => this._node(child)).filter(isSkinNode),
|
|
70
|
+
propertyChildren,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
_properties(node, excluded = new Set()) {
|
|
63
74
|
const properties = [];
|
|
75
|
+
const propertyChildren = [];
|
|
64
76
|
for (const [name, value] of Object.entries(node.properties)) {
|
|
77
|
+
if (excluded.has(name))
|
|
78
|
+
continue;
|
|
65
79
|
const semanticChild = this._semanticChild(name, value);
|
|
66
80
|
if (semanticChild) {
|
|
67
81
|
propertyChildren.push(semanticChild);
|
|
@@ -70,15 +84,7 @@ class KUIParseContext {
|
|
|
70
84
|
properties.push({ name, value: propertyValue(value) });
|
|
71
85
|
}
|
|
72
86
|
}
|
|
73
|
-
return {
|
|
74
|
-
className,
|
|
75
|
-
module: info.module,
|
|
76
|
-
varName: safeVariable(node.id, className, ++this._variable),
|
|
77
|
-
id: node.id,
|
|
78
|
-
properties,
|
|
79
|
-
children: node.children.map(child => this._node(child)).filter(isSkinNode),
|
|
80
|
-
propertyChildren,
|
|
81
|
-
};
|
|
87
|
+
return { properties, propertyChildren };
|
|
82
88
|
}
|
|
83
89
|
_semanticChild(name, value) {
|
|
84
90
|
if (!isPlainObject(value) || typeof value.type !== 'string')
|
|
@@ -101,7 +107,7 @@ class KUIParseContext {
|
|
|
101
107
|
}
|
|
102
108
|
return {
|
|
103
109
|
type: 'SetProperty',
|
|
104
|
-
targetId: override.targetId,
|
|
110
|
+
targetId: override.targetId === this._document.root.id ? '' : override.targetId,
|
|
105
111
|
name: override.property,
|
|
106
112
|
value: propertyValue(override.value),
|
|
107
113
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kui-parser.js","sourceRoot":"","sources":["../../../src/core/kui/kui-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,
|
|
1
|
+
{"version":3,"file":"kui-parser.js","sourceRoot":"","sources":["../../../src/core/kui/kui-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skin-module-builder.d.ts","sourceRoot":"","sources":["../../../src/core/kui/skin-module-builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"skin-module-builder.d.ts","sourceRoot":"","sources":["../../../src/core/kui/skin-module-builder.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,OAAO;IACvB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAuCnH"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { parseUIResourceConfigEntries } from '@kurot/ui-document';
|
|
1
2
|
import * as esbuild from 'esbuild';
|
|
2
3
|
import * as fs from 'node:fs/promises';
|
|
3
4
|
import * as os from 'node:os';
|
|
@@ -16,7 +17,17 @@ import { generateCode, parseToIR } from './index.js';
|
|
|
16
17
|
export async function buildSkinsModule(ctx, skins) {
|
|
17
18
|
const temporaryRoot = await fs.mkdtemp(path.join(os.tmpdir(), 'kurot-skins-'));
|
|
18
19
|
try {
|
|
19
|
-
const
|
|
20
|
+
const manifestPath = path.join(ctx.project.resourceDir, 'default.res.json');
|
|
21
|
+
let resources = [];
|
|
22
|
+
try {
|
|
23
|
+
resources = parseUIResourceConfigEntries(JSON.parse(await fs.readFile(manifestPath, 'utf8')));
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
if (error.code !== 'ENOENT') {
|
|
27
|
+
throw new BuildError(`Resource configuration failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
const modules = await Promise.all(skins.map(skin => generateSkinModule(ctx, skin, resources)));
|
|
20
31
|
if (modules.some(module => module === undefined) || ctx.diagnostics.hasErrors()) {
|
|
21
32
|
throw new BuildError('KUI compilation failed.');
|
|
22
33
|
}
|
|
@@ -37,14 +48,14 @@ export async function buildSkinsModule(ctx, skins) {
|
|
|
37
48
|
await fs.rm(temporaryRoot, { recursive: true, force: true });
|
|
38
49
|
}
|
|
39
50
|
}
|
|
40
|
-
async function generateSkinModule(ctx, skin) {
|
|
51
|
+
async function generateSkinModule(ctx, skin, resources) {
|
|
41
52
|
try {
|
|
42
53
|
const namespaces = ctx.project.customNamespaces.map(ns => ({
|
|
43
54
|
prefix: ns.prefix,
|
|
44
55
|
specifier: ns.specifier,
|
|
45
56
|
...(ns.components ? { componentNames: new Set(ns.components.map(component => component.name)) } : {}),
|
|
46
57
|
}));
|
|
47
|
-
const ir = parseToIR(skin.file.contents, skin.className, namespaces);
|
|
58
|
+
const ir = parseToIR(skin.file.contents, skin.className, namespaces, resources);
|
|
48
59
|
const diagnostics = createUnresolvedTagDiagnostics(skin.file.relPath, skin.file.contents, ir.unresolvedTags, namespaces);
|
|
49
60
|
for (const diagnostic of diagnostics) {
|
|
50
61
|
ctx.diagnostics.report(diagnostic);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skin-module-builder.js","sourceRoot":"","sources":["../../../src/core/kui/skin-module-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA0CrD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAiB,EAAE,KAA8B;IACvF,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IAC/E,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"skin-module-builder.js","sourceRoot":"","sources":["../../../src/core/kui/skin-module-builder.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kurot/cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "Kurot CLI - build tool for Kurot Editor KUI XML workflows",
|
|
5
5
|
"author": "Kelvin <kyia.x52@gmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"kurot": "tsx src/index.ts"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@kurot/ui-document": "^0.
|
|
30
|
+
"@kurot/ui-document": "^0.7.0",
|
|
31
31
|
"commander": "^13.0.0",
|
|
32
32
|
"esbuild": "^0.25.0"
|
|
33
33
|
},
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<Skin xmlns="https://kurot.dev/ui/1" class="skins.ButtonSkin" states="disabled,down,up">
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
<Image id="iconDisplay" horizontalCenter="0" verticalCenter="0" />
|
|
7
|
-
</Group>
|
|
2
|
+
<Skin xmlns="https://kurot.dev/ui/1" class="skins.ButtonSkin" states="disabled,down,up" minHeight="50" minWidth="100">
|
|
3
|
+
<Image height="100%" scale9Grid="1,3,8,8" source="button_up_png" width="100%" alpha.disabled="0.5" source.down="button_down_png" />
|
|
4
|
+
<Label id="labelDisplay" bottom="8" left="8" right="8" size="20" textAlign="center" textColor="#FFFFFF" top="8" verticalAlign="middle" />
|
|
5
|
+
<Image id="iconDisplay" horizontalCenter="0" verticalCenter="0" />
|
|
8
6
|
</Skin>
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
|
2
2
|
<Skin xmlns="https://kurot.dev/ui/1" class="skins.CheckBoxSkin" states="disabled,disabledAndSelected,down,downAndSelected,up,upAndSelected">
|
|
3
|
-
<Group
|
|
4
|
-
<
|
|
5
|
-
<
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
<Label id="labelDisplay" fontFamily="Tahoma" size="20" textAlign="center" textColor="#707070" verticalAlign="middle" />
|
|
10
|
-
</Group>
|
|
3
|
+
<Group height="100%" width="100%">
|
|
4
|
+
<layout>
|
|
5
|
+
<HorizontalLayout verticalAlign="middle" />
|
|
6
|
+
</layout>
|
|
7
|
+
<Image alpha="1" fillMode="scale" source="checkbox_unselect_png" alpha.disabled="0.5" source.disabledAndSelected="checkbox_select_disabled_png" alpha.down="0.7" source.downAndSelected="checkbox_select_down_png" source.upAndSelected="checkbox_select_up_png" />
|
|
8
|
+
<Label id="labelDisplay" fontFamily="Tahoma" size="20" textAlign="center" textColor="#707070" verticalAlign="middle" />
|
|
11
9
|
</Group>
|
|
12
10
|
</Skin>
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<Skin xmlns="https://kurot.dev/ui/1" class="skins.ComboBoxSkin" states="disabled,normal,open">
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
<
|
|
8
|
-
|
|
9
|
-
</Scroller>
|
|
10
|
-
</Group>
|
|
2
|
+
<Skin xmlns="https://kurot.dev/ui/1" class="skins.ComboBoxSkin" states="disabled,normal,open" minHeight="36" minWidth="100">
|
|
3
|
+
<Rect fillColor="#1A1A2E" height="36" strokeColor="#0F3460" strokeWeight="1" width="100%" fillColor.disabled="#16213E" strokeColor.disabled="#4A5459" fillColor.open="#16213E" strokeColor.open="#6C5CE7" />
|
|
4
|
+
<Label id="labelDisplay" height="36" left="10" right="36" size="14" textColor="#DFE6E9" top="0" verticalAlign="middle" textColor.disabled="#636E72" />
|
|
5
|
+
<Label height="36" right="4" size="10" text="▼" textAlign="center" textColor="#636E72" top="0" verticalAlign="middle" width="24" textColor.open="#6C5CE7" />
|
|
6
|
+
<Scroller id="dropDown" height="180" left="0" right="0" top="36" visible="false">
|
|
7
|
+
<List id="list" height="180" width="100%" />
|
|
8
|
+
</Scroller>
|
|
11
9
|
</Skin>
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<Skin xmlns="https://kurot.dev/ui/1" class="skins.HScrollBarSkin">
|
|
3
|
-
<
|
|
4
|
-
<Image id="thumb" height="8" scale9Grid="3,3,2,2" source="roundthumb_png" verticalCenter="0" width="30" />
|
|
5
|
-
</Group>
|
|
2
|
+
<Skin xmlns="https://kurot.dev/ui/1" class="skins.HScrollBarSkin" minHeight="8" minWidth="20">
|
|
3
|
+
<Image id="thumb" height="8" scale9Grid="3,3,2,2" source="roundthumb_png" verticalCenter="0" width="30" />
|
|
6
4
|
</Skin>
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<Skin xmlns="https://kurot.dev/ui/1" class="skins.HSliderSkin">
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
<Image id="thumb" source="thumb_png" verticalCenter="0" />
|
|
6
|
-
</Group>
|
|
2
|
+
<Skin xmlns="https://kurot.dev/ui/1" class="skins.HSliderSkin" minHeight="8" minWidth="20">
|
|
3
|
+
<Image id="track" height="6" scale9Grid="1,1,4,4" source="track_sb_png" verticalCenter="0" width="100%" />
|
|
4
|
+
<Image id="thumb" source="thumb_png" verticalCenter="0" />
|
|
7
5
|
</Skin>
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<Skin xmlns="https://kurot.dev/ui/1" class="skins.ItemRendererSkin" states="disabled,down,up">
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
<Label id="labelDisplay" bottom="8" fontFamily="Tahoma" left="8" right="8" size="20" textAlign="center" textColor="#FFFFFF" top="8" verticalAlign="middle" />
|
|
6
|
-
</Group>
|
|
2
|
+
<Skin xmlns="https://kurot.dev/ui/1" class="skins.ItemRendererSkin" states="disabled,down,up" minHeight="50" minWidth="100">
|
|
3
|
+
<Image height="100%" scale9Grid="1,3,8,8" source="button_up_png" width="100%" alpha.disabled="0.5" source.down="button_down_png" />
|
|
4
|
+
<Label id="labelDisplay" bottom="8" fontFamily="Tahoma" left="8" right="8" size="20" textAlign="center" textColor="#FFFFFF" top="8" verticalAlign="middle" />
|
|
7
5
|
</Skin>
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
|
2
2
|
<Skin xmlns="https://kurot.dev/ui/1" class="skins.LabelSkin">
|
|
3
|
-
<
|
|
4
|
-
<Label id="labelDisplay" height="100%" size="14" textColor="#DFE6E9" width="100%" />
|
|
5
|
-
</Group>
|
|
3
|
+
<Label id="labelDisplay" height="100%" size="14" textColor="#DFE6E9" width="100%" />
|
|
6
4
|
</Skin>
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<Skin xmlns="https://kurot.dev/ui/1" class="skins.ListSkin">
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
<
|
|
6
|
-
|
|
7
|
-
</Scroller>
|
|
8
|
-
</Group>
|
|
2
|
+
<Skin xmlns="https://kurot.dev/ui/1" class="skins.ListSkin" minHeight="20" minWidth="20">
|
|
3
|
+
<Rect fillColor="#1A1A2E" height="100%" strokeColor="#0F3460" strokeWeight="1" width="100%" />
|
|
4
|
+
<Scroller id="scroller" height="100%" width="100%">
|
|
5
|
+
<DataGroup id="dataGroup" height="100%" width="100%" />
|
|
6
|
+
</Scroller>
|
|
9
7
|
</Skin>
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<Skin xmlns="https://kurot.dev/ui/1" class="skins.PanelSkin">
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
<
|
|
6
|
-
|
|
7
|
-
<Label id="titleDisplay" fontFamily="Tahoma" left="15" right="5" size="20" textColor="#FFFFFF" verticalCenter="0" wordWrap="false" />
|
|
8
|
-
</Group>
|
|
9
|
-
<Button id="closeButton" bottom="5" horizontalCenter="0" label="close" />
|
|
2
|
+
<Skin xmlns="https://kurot.dev/ui/1" class="skins.PanelSkin" minHeight="230" minWidth="450">
|
|
3
|
+
<Image bottom="0" left="0" right="0" scale9Grid="2,2,12,12" source="border_png" top="0" />
|
|
4
|
+
<Group id="moveArea" height="45" left="0" right="0" top="0">
|
|
5
|
+
<Image bottom="0" left="0" right="0" scale9Grid="2,2,12,12" source="header_png" top="0" />
|
|
6
|
+
<Label id="titleDisplay" fontFamily="Tahoma" left="15" right="5" size="20" textColor="#FFFFFF" verticalCenter="0" wordWrap="false" />
|
|
10
7
|
</Group>
|
|
8
|
+
<Button id="closeButton" bottom="5" horizontalCenter="0" label="close" />
|
|
11
9
|
</Skin>
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<Skin xmlns="https://kurot.dev/ui/1" class="skins.ProgressBarSkin">
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
<Label id="labelDisplay" fontFamily="Tahoma" horizontalCenter="0" size="15" textAlign="center" textColor="#707070" verticalAlign="middle" verticalCenter="0" />
|
|
7
|
-
</Group>
|
|
2
|
+
<Skin xmlns="https://kurot.dev/ui/1" class="skins.ProgressBarSkin" minHeight="18" minWidth="30">
|
|
3
|
+
<Image height="100%" scale9Grid="1,1,4,4" source="track_pb_png" verticalCenter="0" width="100%" />
|
|
4
|
+
<Image id="thumb" height="100%" scale9Grid="1,1,4,4" source="thumb_pb_png" width="100%" />
|
|
5
|
+
<Label id="labelDisplay" fontFamily="Tahoma" horizontalCenter="0" size="15" textAlign="center" textColor="#707070" verticalAlign="middle" verticalCenter="0" />
|
|
8
6
|
</Skin>
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
|
2
2
|
<Skin xmlns="https://kurot.dev/ui/1" class="skins.RadioButtonSkin" states="disabled,disabledAndSelected,down,downAndSelected,up,upAndSelected">
|
|
3
|
-
<Group
|
|
4
|
-
<
|
|
5
|
-
<
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
<Label id="labelDisplay" fontFamily="Tahoma" size="20" textAlign="center" textColor="#707070" verticalAlign="middle" />
|
|
10
|
-
</Group>
|
|
3
|
+
<Group height="100%" width="100%">
|
|
4
|
+
<layout>
|
|
5
|
+
<HorizontalLayout verticalAlign="middle" />
|
|
6
|
+
</layout>
|
|
7
|
+
<Image alpha="1" fillMode="scale" source="radiobutton_unselect_png" alpha.disabled="0.5" source.disabledAndSelected="radiobutton_select_disabled_png" alpha.down="0.7" source.downAndSelected="radiobutton_select_down_png" source.upAndSelected="radiobutton_select_up_png" />
|
|
8
|
+
<Label id="labelDisplay" fontFamily="Tahoma" size="20" textAlign="center" textColor="#707070" verticalAlign="middle" />
|
|
11
9
|
</Group>
|
|
12
10
|
</Skin>
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<Skin xmlns="https://kurot.dev/ui/1" class="skins.ScrollerSkin">
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
<VScrollBar id="verticalScrollBar" autoVisibility="false" bottom="12" right="0" top="0" visible="false" width="12" />
|
|
6
|
-
</Group>
|
|
2
|
+
<Skin xmlns="https://kurot.dev/ui/1" class="skins.ScrollerSkin" minHeight="20" minWidth="20">
|
|
3
|
+
<HScrollBar id="horizontalScrollBar" autoVisibility="false" bottom="0" height="12" left="0" right="12" visible="false" />
|
|
4
|
+
<VScrollBar id="verticalScrollBar" autoVisibility="false" bottom="12" right="0" top="0" visible="false" width="12" />
|
|
7
5
|
</Skin>
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<Skin xmlns="https://kurot.dev/ui/1" class="skins.TabBarSkin">
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
<DataGroup id="dataGroup" height="100%" width="100%" />
|
|
6
|
-
</Group>
|
|
2
|
+
<Skin xmlns="https://kurot.dev/ui/1" class="skins.TabBarSkin" minHeight="40" minWidth="100">
|
|
3
|
+
<Rect fillColor="#16213E" height="100%" width="100%" />
|
|
4
|
+
<DataGroup id="dataGroup" height="100%" width="100%" />
|
|
7
5
|
</Skin>
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<Skin xmlns="https://kurot.dev/ui/1" class="skins.TextInputSkin" states="disabled,disabledWithPrompt,normal,normalWithPrompt">
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
<Label id="promptDisplay" height="24" left="10" multiline="false" right="10" size="20" textColor="#A9A9A9" touchEnabled="false" verticalAlign="middle" verticalCenter="0" visible="false" wordWrap="false" visible.disabledWithPrompt="true" visible.normalWithPrompt="true" />
|
|
7
|
-
</Group>
|
|
2
|
+
<Skin xmlns="https://kurot.dev/ui/1" class="skins.TextInputSkin" states="disabled,disabledWithPrompt,normal,normalWithPrompt" minHeight="40" minWidth="300">
|
|
3
|
+
<Rect fillColor="#FFFFFF" height="100%" width="100%" alpha.disabled="0.5" />
|
|
4
|
+
<EditableText id="textDisplay" height="24" left="10" right="10" size="20" textColor="#000000" verticalAlign="middle" verticalCenter="0" textColor.disabled="#FF0000" />
|
|
5
|
+
<Label id="promptDisplay" height="24" left="10" multiline="false" right="10" size="20" textColor="#A9A9A9" touchEnabled="false" verticalAlign="middle" verticalCenter="0" visible="false" wordWrap="false" visible.disabledWithPrompt="true" visible.normalWithPrompt="true" />
|
|
8
6
|
</Skin>
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<Skin xmlns="https://kurot.dev/ui/1" class="skins.ToggleButtonSkin" states="disabled,disabledAndSelected,down,downAndSelected,up,upAndSelected">
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
<Label id="labelDisplay" bottom="8" left="8" right="8" size="16" textAlign="center" textColor="#DFE6E9" top="8" verticalAlign="middle" textColor.disabled="#636E72" textColor.upAndSelected="#FFFFFF" />
|
|
6
|
-
</Group>
|
|
2
|
+
<Skin xmlns="https://kurot.dev/ui/1" class="skins.ToggleButtonSkin" states="disabled,disabledAndSelected,down,downAndSelected,up,upAndSelected" minHeight="50" minWidth="100">
|
|
3
|
+
<Rect fillColor="#636E72" height="100%" strokeColor="#4A5459" strokeWeight="1" width="100%" fillColor.disabled="#2D3436" fillColor.disabledAndSelected="#2D3436" fillColor.down="#4A5459" fillColor.downAndSelected="#5A4BD1" fillColor.upAndSelected="#6C5CE7" />
|
|
4
|
+
<Label id="labelDisplay" bottom="8" left="8" right="8" size="16" textAlign="center" textColor="#DFE6E9" top="8" verticalAlign="middle" textColor.disabled="#636E72" textColor.upAndSelected="#FFFFFF" />
|
|
7
5
|
</Skin>
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
|
2
2
|
<Skin xmlns="https://kurot.dev/ui/1" class="skins.ToggleSwitchSkin" states="disabled,disabledAndSelected,down,downAndSelected,up,upAndSelected">
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
<Image horizontalCenter="-18" source="handle_png" verticalCenter="0" horizontalCenter.disabledAndSelected="18" horizontalCenter.downAndSelected="18" horizontalCenter.upAndSelected="18" />
|
|
6
|
-
</Group>
|
|
3
|
+
<Image source="on_png" source.disabled="off_png" source.down="off_png" source.up="off_png" />
|
|
4
|
+
<Image horizontalCenter="-18" source="handle_png" verticalCenter="0" horizontalCenter.disabledAndSelected="18" horizontalCenter.downAndSelected="18" horizontalCenter.upAndSelected="18" />
|
|
7
5
|
</Skin>
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<Skin xmlns="https://kurot.dev/ui/1" class="skins.VScrollBarSkin">
|
|
3
|
-
<
|
|
4
|
-
<Image id="thumb" height="30" horizontalCenter="0" scale9Grid="3,3,2,2" source="roundthumb_png" width="8" />
|
|
5
|
-
</Group>
|
|
2
|
+
<Skin xmlns="https://kurot.dev/ui/1" class="skins.VScrollBarSkin" minHeight="20" minWidth="8">
|
|
3
|
+
<Image id="thumb" height="30" horizontalCenter="0" scale9Grid="3,3,2,2" source="roundthumb_png" width="8" />
|
|
6
4
|
</Skin>
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<Skin xmlns="https://kurot.dev/ui/1" class="skins.VSliderSkin">
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
<Image id="thumb" horizontalCenter="0" source="thumb_png" />
|
|
6
|
-
</Group>
|
|
2
|
+
<Skin xmlns="https://kurot.dev/ui/1" class="skins.VSliderSkin" minHeight="30" minWidth="25">
|
|
3
|
+
<Image id="track" height="100%" horizontalCenter="0" scale9Grid="1,1,4,4" source="track_png" width="7" />
|
|
4
|
+
<Image id="thumb" horizontalCenter="0" source="thumb_png" />
|
|
7
5
|
</Skin>
|