lexgui 8.0.0 → 8.1.1
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 +3 -3
- package/build/components/AlertDialog.d.ts +7 -0
- package/build/components/Counter.d.ts +1 -0
- package/build/components/Dialog.d.ts +1 -1
- package/build/components/Footer.d.ts +1 -1
- package/build/components/Menubar.d.ts +2 -2
- package/build/core/Area.d.ts +22 -22
- package/build/core/Namespace.js +34 -34
- package/build/core/Namespace.js.map +1 -1
- package/build/core/Panel.d.ts +2 -3
- package/build/extensions/AssetView.d.ts +136 -134
- package/build/extensions/AssetView.js +1367 -1320
- package/build/extensions/AssetView.js.map +1 -1
- package/build/extensions/Audio.js +19 -19
- package/build/extensions/Audio.js.map +1 -1
- package/build/extensions/CodeEditor.js +867 -647
- package/build/extensions/CodeEditor.js.map +1 -1
- package/build/extensions/DocMaker.d.ts +1 -1
- package/build/extensions/DocMaker.js +73 -61
- package/build/extensions/DocMaker.js.map +1 -1
- package/build/extensions/GraphEditor.js +406 -305
- package/build/extensions/GraphEditor.js.map +1 -1
- package/build/extensions/ImUi.js +21 -20
- package/build/extensions/ImUi.js.map +1 -1
- package/build/extensions/Timeline.d.ts +29 -36
- package/build/extensions/Timeline.js +421 -424
- package/build/extensions/Timeline.js.map +1 -1
- package/build/extensions/VideoEditor.js +101 -97
- package/build/extensions/VideoEditor.js.map +1 -1
- package/build/extensions/index.d.ts +8 -8
- package/build/extensions/index.js +1 -1
- package/build/index.all.d.ts +2 -2
- package/build/index.css.d.ts +1 -1
- package/build/index.d.ts +56 -55
- package/build/lexgui.all.js +28488 -27640
- package/build/lexgui.all.js.map +1 -1
- package/build/lexgui.all.min.js +1 -1
- package/build/lexgui.all.module.js +28412 -27565
- package/build/lexgui.all.module.js.map +1 -1
- package/build/lexgui.all.module.min.js +1 -1
- package/build/lexgui.css +176 -69
- package/build/lexgui.js +13796 -13330
- package/build/lexgui.js.map +1 -1
- package/build/lexgui.min.css +1 -1
- package/build/lexgui.min.js +1 -1
- package/build/lexgui.module.js +13733 -13268
- package/build/lexgui.module.js.map +1 -1
- package/build/lexgui.module.min.js +1 -1
- package/changelog.md +22 -1
- package/demo.js +6 -5
- package/examples/all-components.html +3 -0
- package/examples/asset-view.html +52 -6
- package/examples/dialogs.html +3 -3
- package/examples/editor.html +1 -1
- package/examples/index.html +1 -1
- package/package.json +4 -1
package/changelog.md
CHANGED
|
@@ -2,9 +2,30 @@
|
|
|
2
2
|
|
|
3
3
|
## dev
|
|
4
4
|
|
|
5
|
-
## 8.
|
|
5
|
+
## 8.1.1 (master)
|
|
6
|
+
|
|
7
|
+
Fixed Table Component bug when there's a filter but no custom filters.
|
|
8
|
+
Fixed AssetView `onEnterFolder` not allowing async callbacks.
|
|
9
|
+
|
|
10
|
+
## 8.1.0
|
|
11
|
+
|
|
12
|
+
AssetView:
|
|
13
|
+
- Added CreateFolder implementation to the MoveItem dialog button.
|
|
14
|
+
- Added more event attributes, added also to docs.
|
|
15
|
+
- `enterFolder` event can now modify data.
|
|
16
|
+
- Passing user parameters through `resolve` call is now allowed.
|
|
17
|
+
|
|
18
|
+
New Component: Alert Dialog.
|
|
19
|
+
Use `dprint` to auto-format code.
|
|
20
|
+
Style improvements for Sheet, Number slider, Counter, and Range Components.
|
|
21
|
+
Improved Icons page using Pagination Component & moved to main page Menubar.
|
|
22
|
+
Added Counter Component docs.
|
|
23
|
+
Minor mobile version fixes.
|
|
24
|
+
|
|
25
|
+
## 8.0.0
|
|
6
26
|
|
|
7
27
|
From 8.0 (changed versioning to set `8` as the major version), the full library is written in TypeScript to facilitate integrations in newer frameworks (Builds are still available as a JS module with its extensions).
|
|
28
|
+
Replaced Skypack for jsDelivr CDN.
|
|
8
29
|
Aded new Spinner and Pagination Components.
|
|
9
30
|
Added support for `options.submit` in Form entries.
|
|
10
31
|
Added new utils: `LX.stripTags`, `LX.escapeRegExp`, and `LX.wildcardToRegExp`.
|
package/demo.js
CHANGED
|
@@ -9,9 +9,10 @@ const mobile = navigator && /Android|iPhone/i.test( navigator.userAgent );
|
|
|
9
9
|
const localHost = window.location.protocol !== "https:";
|
|
10
10
|
const menubarButtons = [
|
|
11
11
|
{ name: "Docs", callback: () => { window.open("./docs/") } },
|
|
12
|
-
{ name: "Components", callback: () => { window.open("./docs/?p=components") } },
|
|
13
12
|
{ name: "Examples", callback: () => { window.open("./examples/") } },
|
|
14
|
-
{ name: "
|
|
13
|
+
{ name: "Components", callback: () => { window.open("./docs/?p=components") } },
|
|
14
|
+
{ name: "Colors", callback: () => { window.open("./colors/", "_self") } },
|
|
15
|
+
{ name: "Icons", callback: () => { window.open("./icons/", "_self") } },
|
|
15
16
|
];
|
|
16
17
|
let menubar = null, sheetArea = null;
|
|
17
18
|
|
|
@@ -32,7 +33,7 @@ if( mobile )
|
|
|
32
33
|
}, {
|
|
33
34
|
headerTitle: `lexgui.js`,
|
|
34
35
|
headerSubtitle: `v${ LX.version }`,
|
|
35
|
-
headerImage: "
|
|
36
|
+
headerImage: "./images/favicon.png",
|
|
36
37
|
footerTitle: "jxarco",
|
|
37
38
|
footerSubtitle: "alexroco.30@gmail.com",
|
|
38
39
|
footerImage: "https://avatars.githubusercontent.com/u/25059187?s=400&u=ad8907b748c13e4e1a7cdd3882826acb6a2928b5&v=4",
|
|
@@ -92,8 +93,8 @@ if( mobile )
|
|
|
92
93
|
const header = LX.makeContainer( [ null, "auto" ], "flex flex-col gap-4 pt-8 pb-4 items-center", `
|
|
93
94
|
<a href="docs?p=changelog" class="flex flex-row gap-1 items-center text-sm p-1 px-4 rounded-full fg-primary decoration-none hover:bg-secondary cursor-pointer"><span class="flex bg-accent w-2 h-2 rounded-full"></span>
|
|
94
95
|
New Components: Spinner, Pagination and more${ LX.makeIcon( "ArrowRight", { svgClass: "sm" } ).innerHTML }</a>
|
|
95
|
-
<p class="fg-primary font-medium tracking-tight leading-none text-center text-balance
|
|
96
|
-
<p class="fg-primary font-light text-xl text-center text-balance
|
|
96
|
+
<p class="fg-primary font-medium tracking-tight leading-none text-center text-balance text-5xl xs:text-4xl">Build your Application Interface</p>
|
|
97
|
+
<p class="fg-primary font-light text-xl xs:text-lg text-center text-balance leading-normal max-w-3xl">A modern-style UI kit, inspired by shadcn, built for the web. Pure JavaScript, CSS, zero dependencies. Fully Open Source.</p>
|
|
97
98
|
`, area );
|
|
98
99
|
|
|
99
100
|
const headerButtons = LX.makeContainer( [ "auto", "auto" ], "flex flex-row mt-2", ``, header );
|
|
@@ -263,6 +263,9 @@
|
|
|
263
263
|
panelB.addNumber("With Units", 12, null, { units: "px" });
|
|
264
264
|
panelB.addNumber("With Slider", 0, null, { min: 1, max: 48, step: 1 });
|
|
265
265
|
panelB.addNumber("Disabled Slider", 0, null, { min: 1, max: 48, step: 1, disabled: true });
|
|
266
|
+
panelB.branch("Counter Inputs", { closed: closedDefault });
|
|
267
|
+
panelB.addCounter("Classic", 0, null, { min: 1, max: 48, step: 1 });
|
|
268
|
+
panelB.addCounter("Disabled", 0, null, { min: 1, max: 48, step: 1, disabled: true });
|
|
266
269
|
panelB.branch("Vector Inputs", { closed: closedDefault });
|
|
267
270
|
panelB.addVector2("Classic Vec2", [0, 0], null);
|
|
268
271
|
panelB.addVector3("Disabled Vec3", [0, 0, 0], null, { disabled: true });
|
package/examples/asset-view.html
CHANGED
|
@@ -201,6 +201,19 @@
|
|
|
201
201
|
}
|
|
202
202
|
];
|
|
203
203
|
|
|
204
|
+
const fakeServerRequest = function( payload, delay = 800 ) {
|
|
205
|
+
return new Promise(resolve => {
|
|
206
|
+
setTimeout(() => {
|
|
207
|
+
// 70% chance to allow the action
|
|
208
|
+
const ok = Math.random() > 0.3;
|
|
209
|
+
resolve({
|
|
210
|
+
ok,
|
|
211
|
+
reason: ok ? undefined : "Server rejected the operation"
|
|
212
|
+
});
|
|
213
|
+
}, delay);
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
|
|
204
217
|
// Click events
|
|
205
218
|
{
|
|
206
219
|
assetView.on( "select", ( event, resolve ) => {
|
|
@@ -214,9 +227,42 @@
|
|
|
214
227
|
|
|
215
228
|
// Folder events
|
|
216
229
|
{
|
|
217
|
-
assetView.on( "enterFolder", ( event ) => {
|
|
230
|
+
assetView.on( "enterFolder", async ( event ) => {
|
|
218
231
|
console.log(`Entered ${ event.to.id } folder` );
|
|
219
|
-
|
|
232
|
+
|
|
233
|
+
// const r = await (() => { return new Promise(resolve => {
|
|
234
|
+
// setTimeout(() => {
|
|
235
|
+
// resolve({
|
|
236
|
+
// ok: true
|
|
237
|
+
// });
|
|
238
|
+
// }, 2000);
|
|
239
|
+
// }) })();
|
|
240
|
+
|
|
241
|
+
// if( r?.ok )
|
|
242
|
+
// {
|
|
243
|
+
// event.to.children = [
|
|
244
|
+
// {
|
|
245
|
+
// id: "brow_lowerer.png",
|
|
246
|
+
// type: "clip",
|
|
247
|
+
// src: "../data/brow_lowerer.png",
|
|
248
|
+
// metadata: {
|
|
249
|
+
// lastModified: 1740181312813
|
|
250
|
+
// }
|
|
251
|
+
// },
|
|
252
|
+
// {
|
|
253
|
+
// id: "brow_lowerer.png",
|
|
254
|
+
// type: "clip",
|
|
255
|
+
// src: "../data/brow_lowerer.png",
|
|
256
|
+
// metadata: {
|
|
257
|
+
// lastModified: 1740181312813
|
|
258
|
+
// }
|
|
259
|
+
// }
|
|
260
|
+
// ]
|
|
261
|
+
// }
|
|
262
|
+
|
|
263
|
+
// return true;
|
|
264
|
+
|
|
265
|
+
});
|
|
220
266
|
|
|
221
267
|
assetView.on( "beforeCreateFolder", ( event, resolve ) => {
|
|
222
268
|
LX.prompt("Perform CreateFolder Action?", "Server Message", () => {
|
|
@@ -258,13 +304,13 @@
|
|
|
258
304
|
// Clone events
|
|
259
305
|
{
|
|
260
306
|
assetView.on( "beforeClone", ( event, resolve ) => {
|
|
261
|
-
LX.prompt("Perform Clone Action?", "Server Message", () => {
|
|
262
|
-
resolve();
|
|
307
|
+
LX.prompt("Perform Clone Action?", "Server Message", (value) => {
|
|
308
|
+
resolve( value );
|
|
263
309
|
})
|
|
264
310
|
} );
|
|
265
311
|
|
|
266
|
-
assetView.on( "clone", ( event ) => {
|
|
267
|
-
console.log(event.items[ 0 ].id + " cloned");
|
|
312
|
+
assetView.on( "clone", ( event, arg1, arg2 ) => {
|
|
313
|
+
console.log(event.items[ 0 ].id + " cloned", arg1, arg2);
|
|
268
314
|
} );
|
|
269
315
|
}
|
|
270
316
|
|
package/examples/dialogs.html
CHANGED
|
@@ -47,7 +47,6 @@
|
|
|
47
47
|
}, { float: 'lt' });
|
|
48
48
|
|
|
49
49
|
const dialogClosable = new LX.Dialog("Closable Dialog", p => {
|
|
50
|
-
p.branch("Canvas");
|
|
51
50
|
p.addColor("Background", "#b7a9b1");
|
|
52
51
|
p.addText("Text", "Dialog Lexgui.js @jxarco", null, { placeholder: "e.g. ColorPicker", icon: "Type" });
|
|
53
52
|
p.addColor("Font Color", { r: 1, g: 0.1, b: 0.6 }, (value, event) => {
|
|
@@ -62,8 +61,7 @@
|
|
|
62
61
|
p.addSelect("Best Tool", ["@Engines", "Godot", "Unity", "Unreal Engine", "@Apps", "Visual Studio", "Visual Studio Code"], "Unity", (value, event) => {
|
|
63
62
|
console.log(value);
|
|
64
63
|
}, {filter: true, emptyMsg: "No engines found.", placeholder: "Search engines..."});
|
|
65
|
-
|
|
66
|
-
}, { size: ["350px", null], closable: true });
|
|
64
|
+
}, { size: ["350px", null], position: ["100px", "500px"], closable: true });
|
|
67
65
|
|
|
68
66
|
const draggablePocketDialog = new LX.PocketDialog("Draggable PocketDialog", p => {
|
|
69
67
|
p.branch("Canvas");
|
|
@@ -84,6 +82,8 @@
|
|
|
84
82
|
p.merge();
|
|
85
83
|
}, { size: ["350px", null], draggable: true });
|
|
86
84
|
|
|
85
|
+
const alertDialog = new LX.AlertDialog( "Are you absolutely sure?", "This action cannot be undone. This will permanently delete your account and remove your data from our servers." );
|
|
86
|
+
|
|
87
87
|
// add canvas to left upper part
|
|
88
88
|
let canvas = document.createElement('canvas');
|
|
89
89
|
canvas.id = "mycanvas";
|
package/examples/editor.html
CHANGED
|
@@ -707,7 +707,7 @@
|
|
|
707
707
|
|
|
708
708
|
panel.branch("Preferences", { icon: "Settings" });
|
|
709
709
|
panel.addButton(null, "Show Notifications" + LX.badge("+99", "accent sm"));
|
|
710
|
-
panel.addCounter("Calories Counter ", 350, (v) => { console.log(v + " calories!") }, {
|
|
710
|
+
panel.addCounter("Calories Counter / day ", 350, (v) => { console.log(v + " calories!") }, { max: 500 });
|
|
711
711
|
panel.addButton("Colored Tiny Button", "Click here!", () => { }, { buttonClass: "primary xs" });
|
|
712
712
|
panel.addButton("Small Outlined Button", "Click here!", () => { }, { buttonClass: "accent sm outline" });
|
|
713
713
|
panel.addButton("A Classic Button", "Click here!", () => { }, { buttonClass: "md" });
|
package/examples/index.html
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
5
5
|
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
|
6
|
-
<title>Examples - LexGUI
|
|
6
|
+
<title>Examples - LexGUI</title>
|
|
7
7
|
<link rel="stylesheet" href="../build/lexgui.css">
|
|
8
8
|
<link rel="icon" href="../images/favicon.png">
|
|
9
9
|
<style>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lexgui",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.1.1",
|
|
4
4
|
"description": "JS library to create web graphical user interfaces",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./build/lexgui.js",
|
|
@@ -39,6 +39,8 @@
|
|
|
39
39
|
"url": "https://github.com/jxarco/lexgui.js/issues"
|
|
40
40
|
},
|
|
41
41
|
"scripts": {
|
|
42
|
+
"format": "dprint fmt",
|
|
43
|
+
"format:check": "dprint check",
|
|
42
44
|
"colors": "node generate-colors.js",
|
|
43
45
|
"clean:css": "rimraf build/lexgui.css && rimraf build/lexgui.min.css",
|
|
44
46
|
"clean": "rimraf build",
|
|
@@ -51,6 +53,7 @@
|
|
|
51
53
|
"@rollup/plugin-alias": "^6.0.0",
|
|
52
54
|
"@rollup/plugin-terser": "^0.4.4",
|
|
53
55
|
"cssnano": "^7.1.2",
|
|
56
|
+
"dprint": "^0.50.2",
|
|
54
57
|
"postcss": "^8.5.6",
|
|
55
58
|
"rimraf": "^5.0.10",
|
|
56
59
|
"rollup": "^4.53.2",
|