lexgui 0.6.11 → 0.7.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.
Files changed (46) hide show
  1. package/README.md +14 -9
  2. package/build/{components → extensions}/audio.js +11 -11
  3. package/build/{components → extensions}/codeeditor.js +109 -74
  4. package/build/{components → extensions}/docmaker.js +10 -3
  5. package/build/{components → extensions}/imui.js +19 -12
  6. package/build/{components → extensions}/nodegraph.js +1 -1
  7. package/build/{components → extensions}/timeline.js +150 -94
  8. package/build/{components → extensions}/videoeditor.js +1 -1
  9. package/build/lexgui-docs.css +9 -9
  10. package/build/lexgui.css +489 -223
  11. package/build/lexgui.js +1771 -777
  12. package/build/lexgui.min.css +2 -2
  13. package/build/lexgui.min.js +1 -1
  14. package/build/lexgui.module.js +1803 -809
  15. package/build/lexgui.module.min.js +1 -1
  16. package/changelog.md +90 -21
  17. package/demo.js +52 -32
  18. package/examples/{all_widgets.html → all-components.html} +22 -4
  19. package/examples/{area_tabs.html → area-tabs.html} +3 -3
  20. package/examples/{asset_view.html → asset-view.html} +3 -3
  21. package/examples/{code_editor.html → code-editor.html} +4 -4
  22. package/examples/dialogs.html +3 -3
  23. package/examples/editor.html +27 -18
  24. package/examples/{immediate_ui.html → immediate-ui.html} +3 -3
  25. package/examples/index.html +8 -8
  26. package/examples/{node_graph.html → node-graph.html} +3 -3
  27. package/examples/previews/all-components.png +0 -0
  28. package/examples/previews/area-tabs.png +0 -0
  29. package/examples/previews/asset-view.png +0 -0
  30. package/examples/previews/code-editor.png +0 -0
  31. package/examples/previews/dialogs.png +0 -0
  32. package/examples/previews/editor.png +0 -0
  33. package/examples/previews/node-graph.png +0 -0
  34. package/examples/previews/side-bar.png +0 -0
  35. package/examples/previews/timeline.png +0 -0
  36. package/examples/{side_bar.html → side-bar.html} +3 -3
  37. package/examples/timeline.html +5 -5
  38. package/examples/{video_editor.html → video-editor.html} +3 -3
  39. package/examples/{video_editor2.html → video-editor2.html} +3 -3
  40. package/package.json +2 -2
  41. package/examples/previews/all_widgets.png +0 -0
  42. package/examples/previews/area_tabs.png +0 -0
  43. package/examples/previews/asset_view.png +0 -0
  44. package/examples/previews/code_editor.png +0 -0
  45. package/examples/previews/node_graph.png +0 -0
  46. package/examples/previews/side_bar.png +0 -0
package/changelog.md CHANGED
@@ -2,7 +2,75 @@
2
2
 
3
3
  ## dev
4
4
 
5
- ## 0.6.11 (master)
5
+ ## 0.7.0 (master)
6
+
7
+ General/Utils:
8
+ - "Components" have been renamed to "Extensions".
9
+ - Every elements, widget, etc. is now a "Component".
10
+ - Added support for `LX.toCamelCase` and `LX.toTitleCase`.
11
+ - Polished CSS.
12
+ - Changed LexGUI brand icons.
13
+ - Unified code fonts. Using now CascadiaCode (https://github.com/microsoft/cascadia-code).
14
+
15
+ New Components:
16
+ - Skeleton Component (Feedback)
17
+ - Breadcrumb Component (Navigation)
18
+ - Rate Component (Data Input)
19
+
20
+ New "default" | "compact" layout spacing:
21
+ - `options.spacingMode` in LX.init
22
+ - `LX.setSpacingMode` and `LX.switchSpacing`
23
+
24
+ Component Updates:
25
+ - Badges:
26
+ - Added `options.parent` to use them as notification indicators inside an element
27
+ - Added `options.chip` to use as notification indicators alone
28
+ - Added `options.callback` option on click.
29
+ - Toast:
30
+ - Allow creation at left, center and right + top/bottom using `options.position`.
31
+ - Sidebar:
32
+ - Added subitem option `options.content` to match main items.
33
+ - Added entry option `options.skipSelection` to avoid selections even with `displaySelected`.
34
+ - Support swap icons in entries.
35
+ - Fixed subentry selection.
36
+ - Dropdowns:
37
+ - Support radio button groups.
38
+ - AssetView:
39
+ - Improved toolbar with Dropdowns. Now refreshes icons on change sort and layout modes.
40
+ - Table:
41
+ - Added support for Calendar Date filter in Table Component.
42
+ - Other Bugfixes:
43
+ - Fixed Select Component above placement on filter.
44
+ - FIxed CodeEditor 'End' horizontal scrolling.
45
+ - Fixed CodeEditor CSS harcoded Tab height.
46
+ - Fixed dropdown, popovers, etc within modal backdrop.
47
+ - Fixed minor issue with CalendarRange when selecting >1 months apart.
48
+
49
+ Improved Documentation:
50
+ - Added AssetView, CodeSnippet and other small components (badge, sheet, toast, etc.).
51
+ - Added Docmaker and Video Editor extension docs.
52
+ - Added addition version to elements in sidebar.
53
+ - Added Changelog section.
54
+
55
+ ## 0.6.12
56
+
57
+ Widgets:
58
+ - Button Widget now supports `options.mustConfirm` to confirm the trigger with custom options.
59
+ - Added support for LX.CalendarRange in DatePicker widget.
60
+
61
+ Timeline:
62
+ - Clips now have the active property to enable/disable the clip (only visuals).
63
+ - Clips now have the read-only attribute trackIdx.
64
+ - All "unselect" attribute have been renamed to "deselect".
65
+ - Keyframes/Clips Timelines moved to Timeline subitems in docs.
66
+
67
+ Previous Tour masks are now removed. Fixed Tour on resize window.
68
+ Added new `LX.PopConfirm`.
69
+ Fixed PlainText <> symbols in CodeEditor.
70
+ Fixed Calendar `options.fromToday` not including today's date.
71
+ Docs updated.
72
+
73
+ ## 0.6.11
6
74
 
7
75
  Widgets:
8
76
  - Fixed Progress Widget value clamp and callback.
@@ -104,10 +172,10 @@ Added `hover:scale` CSS selectors.
104
172
  ## 0.6.5
105
173
 
106
174
  Timeline:
107
- - Refactored undo-redo.
108
- - ClipsTimeline: added an argument on `addClip` to start search at a particular track.
109
- - Documentation updated.
110
- - Minor fixes.
175
+ - Refactored undo-redo.
176
+ - ClipsTimeline: added an argument on `addClip` to start search at a particular track.
177
+ - Documentation updated.
178
+ - Minor fixes.
111
179
 
112
180
  Use sidebar inside Sheet element on mobile.
113
181
  Removed LX.UTILS. Moved methods to global namespace `LX`.
@@ -116,11 +184,11 @@ Minor fixes in example demos.
116
184
  ## 0.6.4
117
185
 
118
186
  Timeline:
119
- - Paste refactor.
120
- - `onUpdateTrack` now expects an array of track indices as argument.
121
- - Added root.
122
- - Added documentation.
123
- - Fixed example.
187
+ - Paste refactor.
188
+ - `onUpdateTrack` now expects an array of track indices as argument.
189
+ - Added root.
190
+ - Added documentation.
191
+ - Fixed example.
124
192
 
125
193
  Widgets:
126
194
  - Centered Map2D initial position.
@@ -172,9 +240,6 @@ Improved robustness of `LX.getSupportedDOMName`.
172
240
 
173
241
  `LX.init` now has to called using `await`.
174
242
  Use Dropdowns elements in menubar.
175
- Remove legacy:
176
- - Removed `options.selected` in ComboButtons Widget.
177
- - Removed FA icons.
178
243
  Added LucideIcons as main icon provider.
179
244
  `LX.makeIcon`: Support for solid variants in supported icons (also using `iconName@variant`).
180
245
  `LX.registerIcon`: Support for classes and attributes for svg and path elements.
@@ -187,14 +252,18 @@ Added support for right sidebar.
187
252
  Restyled Number Widget units to avoid layout trashing when recomputing units span location.
188
253
 
189
254
  CodeEditor:
190
- - Remove language images and use SVG instead.
191
- - Scrolling fixes.
192
- - Fixed minor css issues.
255
+ - Remove language images and use SVG instead.
256
+ - Scrolling fixes.
257
+ - Fixed minor css issues.
258
+
259
+ Remove legacy:
260
+ - Removed `options.selected` in ComboButtons Widget.
261
+ - Removed FA icons.
193
262
 
194
263
  Docs updated:
195
- - Added interactive code examples for widgets.
196
- - Improved widget list parameters and options.
197
- - Added live examples for sidebar and menubar.
264
+ - Added interactive code examples for widgets.
265
+ - Improved widget list parameters and options.
266
+ - Added live examples for sidebar and menubar.
198
267
 
199
268
  ## 0.5.11
200
269
 
@@ -542,8 +611,8 @@ Minor bug fixes.
542
611
  Timeline: Fixed timeline signals and added callbacks
543
612
 
544
613
  Number/Vector widgets:
545
- - Support for onPress&onRelease for catching mouse events.
546
- - Added `setLimits` for min, max, step parameters.
614
+ - Support for onPress&onRelease for catching mouse events.
615
+ - Added `setLimits` for min, max, step parameters.
547
616
 
548
617
  Added Size Widget (N dimension number widget).
549
618
  Minor bug fixes.
package/demo.js CHANGED
@@ -1,53 +1,66 @@
1
1
  import { LX } from 'lexgui';
2
- import 'lexgui/components/codeeditor.js';
3
- import 'lexgui/components/timeline.js';
4
- import 'lexgui/components/audio.js';
2
+ import 'lexgui/extensions/codeeditor.js';
3
+ import 'lexgui/extensions/timeline.js';
4
+ import 'lexgui/extensions/audio.js';
5
5
 
6
6
  window.LX = LX;
7
7
 
8
8
  const area = await LX.init( { layoutMode: "document", rootClass: "wrapper" } );
9
+ const starterTheme = LX.getTheme();
9
10
 
10
11
  // Menubar
11
12
  {
12
13
  const menubar = area.addMenubar( [
13
14
  { name: "Docs", callback: () => { window.open("./docs/") } },
15
+ { name: "Components", callback: () => { window.open("./docs/?p=components") } },
14
16
  { name: "Examples", callback: () => { window.open("./examples/") } },
15
17
  ] );
16
18
 
17
- menubar.setButtonImage("lexgui.js", "images/icon.png", () => {window.open("https://jxarco.github.io/lexgui.js/")}, {float: "left"})
19
+ menubar.setButtonImage("lexgui.js", `images/icon_${ starterTheme }.png`, () => { window.open("https://jxarco.github.io/lexgui.js/") }, { float: "left"} );
20
+
21
+ LX.addSignal( "@on_new_color_scheme", ( el, value ) => {
22
+ menubar.setButtonImage("lexgui.js", `images/icon_${ value }.png` );
23
+ } );
18
24
 
19
25
  const commandButton = new LX.Button(null, `Search command...<span class="ml-auto">${ LX.makeKbd( ["Ctrl", "Space"], false, "bg-tertiary border px-1 rounded" ).innerHTML }</span>`, () => { LX.setCommandbarState( true ) }, {
20
26
  width: "256px", className: "right", buttonClass: "border fg-tertiary bg-secondary" }
21
27
  );
22
28
  menubar.root.appendChild( commandButton.root );
23
29
 
24
- const starterTheme = LX.getTheme();
25
-
26
30
  menubar.addButtons( [
27
31
  {
28
32
  title: "Github",
29
33
  icon: "Github@solid",
30
- callback: (event) => {
31
- window.open( "https://github.com/jxarco/lexgui.js/", "_blank" );
32
- }
34
+ callback: (event) => window.open( "https://github.com/jxarco/lexgui.js/", "_blank" )
33
35
  },
34
36
  {
35
37
  title: "Switch Theme",
36
38
  icon: starterTheme == "dark" ? "Moon" : "Sun",
37
39
  swap: starterTheme == "dark" ? "Sun" : "Moon",
38
40
  callback: (value, event) => { LX.switchTheme() }
41
+ },
42
+ {
43
+ title: "Switch Spacing",
44
+ icon: "AlignVerticalSpaceAround",
45
+ callback: (value, event) => { LX.switchSpacing() }
39
46
  }
40
47
  ], { float: "right" });
41
48
  }
42
49
 
43
50
  // Header
44
51
  {
45
- const header = LX.makeContainer( [ null, "auto" ], "flex flex-col border-top border-bottom gap-2 px-6 py-12", `
52
+ const header = LX.makeContainer( [ null, "auto" ], "flex flex-col border-top border-bottom gap-2 px-10 py-8", `
46
53
  <a>Get started with LexGUI.js <span class="text-sm fg-secondary">${ LX.version }</span></a>
47
54
  <h1>Build your application interface</h1>
48
- <p class="font-light" style="max-width:32rem">A set of beautifully-designed, accessible widgets and components.
55
+ <p class="font-light" style="max-width:32rem">A set of beautifully-designed, accessible components.
49
56
  No complex frameworks. Pure JavaScript and CSS. Open Source.</p>
50
57
  `, area );
58
+
59
+ const headerButtons = LX.makeContainer( [ "auto", "auto" ], "flex flex-row", ``, header );
60
+ const getStartedButton = new LX.Button( null, "Get Started", () => window.open( "./docs/", "_blank" ), { buttonClass: "contrast p-1 px-3" } );
61
+ const componentsButton = new LX.Button( null, "View Components", () => window.open( "./docs/?p=components", "_blank" ), { buttonClass: "tertiary p-1 px-3" } );
62
+ headerButtons.appendChild( getStartedButton.root );
63
+ headerButtons.appendChild( componentsButton.root );
51
64
  }
52
65
 
53
66
  // Content
@@ -107,12 +120,12 @@ const area = await LX.init( { layoutMode: "document", rootClass: "wrapper" } );
107
120
  },
108
121
  {
109
122
  title: "Side Panel",
110
- content: "This panel contains various widgets and settings for your application.",
123
+ content: "This panel contains various components and settings for your application.",
111
124
  reference: sidePanel.root,
112
125
  side: "left",
113
126
  align: "start"
114
127
  }
115
- ], { xoffset: 8, xradius: 12, xhorizontalOffset: 46, xverticalOffset: 46 });
128
+ ], { xoffset: 8, xradius: 12, xhorizontalOffset: 46, xverticalOffset: 46, xuseModal: false });
116
129
 
117
130
  exampleTour.begin();
118
131
  } },
@@ -240,7 +253,7 @@ const area = await LX.init( { layoutMode: "document", rootClass: "wrapper" } );
240
253
  }
241
254
  });
242
255
 
243
- // add widgets to panel branch
256
+ // add components to panel branch
244
257
  panel.branch("Canvas", { icon: "Palette", filter: true });
245
258
  panel.addColor("Background", "#b7a9b1", null);
246
259
  panel.addText("Text", "LexGUI.js @jxarco", null, {placeholder: "e.g. ColorPicker", icon: "Type"});
@@ -279,7 +292,14 @@ const area = await LX.init( { layoutMode: "document", rootClass: "wrapper" } );
279
292
  panel.addVector3( "Position", [0.0, 0.0, 0.0] );
280
293
  panel.addVector4( "Rotation", [0.0, 0.0, 0.0, 1.0] );
281
294
  panel.addVector3( "Scale", [1.0, 1.0, 1.0] );
282
- panel.addButton(null, "Export", null, { buttonClass: "contrast" });
295
+ panel.addButton(null, "Export", () => { console.log("Exported!") }, { buttonClass: "contrast", xmustConfirm: true,
296
+ // confirmSide: "left",
297
+ // confirmAlign: "start",
298
+ // confirmText: "Yeah",
299
+ // confirmCancelText: "Nope",
300
+ // confirmTitle: "Confirm action",
301
+ // confirmContent: "Are your sure??"
302
+ });
283
303
  panel.merge();
284
304
  }
285
305
  }
@@ -287,7 +307,7 @@ const area = await LX.init( { layoutMode: "document", rootClass: "wrapper" } );
287
307
  // Mail
288
308
  {
289
309
  const mailContainer = LX.makeContainer( [ null, "800px" ], "flex flex-col bg-primary border rounded-lg overflow-hidden" );
290
- tabs.add( "Mail", mailContainer, { xselected: true } );
310
+ tabs.add( "Mail", mailContainer, { xselected: true, badge: { content: "5", className: "xs fg-white bg-error", asChild: true } } );
291
311
 
292
312
  const mailArea = new LX.Area();
293
313
  mailContainer.appendChild( mailArea.root );
@@ -310,7 +330,7 @@ const area = await LX.init( { layoutMode: "document", rootClass: "wrapper" } );
310
330
  className: "border-right",
311
331
  headerTitle: "jxarco",
312
332
  headerSubtitle: "alexroco.30@gmail.com",
313
- headerImage: "https://raw.githubusercontent.com/jxarco/lexgui.js/refs/heads/master/images/icon.png",
333
+ headerImage: "images/favicon.png",
314
334
  skipFooter: true,
315
335
  displaySelected: true,
316
336
  onHeaderPressed: (e, element) => { }
@@ -434,7 +454,7 @@ const area = await LX.init( { layoutMode: "document", rootClass: "wrapper" } );
434
454
  const avatarContainer = LX.makeContainer( [ "40px", "40px" ], "bg-tertiary rounded-full content-center", "", mailPreviewInfo );
435
455
 
436
456
  const mailNames = mail.name.split( ' ' );
437
- const avatarIcon = LX.makeContainer( [ "auto", "auto" ], "font-medium text-lg self-center", mailNames[ 0 ][ 0 ] + mailNames[ 1 ][ 0 ], avatarContainer );
457
+ const avatarIcon = LX.makeContainer( [ "auto", "auto" ], "font-medium self-center", mailNames[ 0 ][ 0 ] + mailNames[ 1 ][ 0 ], avatarContainer );
438
458
 
439
459
  const senderData = LX.makeContainer( [ "auto", "auto" ], "flex flex-col gap-0.5", `
440
460
  <div class="text-md font-semibold">${ mail.name }</div>
@@ -477,18 +497,18 @@ const area = await LX.init( { layoutMode: "document", rootClass: "wrapper" } );
477
497
  <p class="fg-tertiary">Here's a list of your tasks for this month!</p>
478
498
  `, tasksContainer );
479
499
 
480
- const tableWidget = new LX.Table(null, {
481
- head: [ "Name", "Status", "Priority", "ID" ],
500
+ const tableComponent = new LX.Table(null, {
501
+ head: [ "Name", "Status", "Priority", "Date", "ID" ],
482
502
  body: [
483
- [ "Alice", "In Progress", "High", 1 ],
484
- [ "Bob", "Backlog", "Medium", 2 ],
485
- [ "Prince", "Canceled", "Low", 3 ],
486
- [ "Sean", "Done", "High", 4 ],
487
- [ "Carter", "In Progress", "Medium", 5 ],
488
- [ "James", "Backlog", "Low", 6 ],
489
- [ "Mickey", "Todo", "Low", 7 ],
490
- [ "Charlie", "Canceled", "Low", 8 ],
491
- [ "Potato", "Todo", "High", 9 ]
503
+ [ "Alice", "In Progress", "High", "20/06/2025", 1 ],
504
+ [ "Bob", "Backlog", "Medium", "11/04/2025", 2 ],
505
+ [ "Prince", "Canceled", "Low", "13/05/2025", 3 ],
506
+ [ "Sean", "Done", "High", "28/07/2025", 4 ],
507
+ [ "Carter", "In Progress", "Medium", "20/03/2025", 5 ],
508
+ [ "James", "Backlog", "Low", "10/02/2025", 6 ],
509
+ [ "Mickey", "Todo", "Low", "08/01/2025", 7 ],
510
+ [ "Charlie", "Canceled", "Low", "23/05/2025", 8 ],
511
+ [ "Potato", "Todo", "High", "15/07/2025", 9 ]
492
512
  ]
493
513
  }, {
494
514
  selectable: true,
@@ -499,6 +519,7 @@ const area = await LX.init( { layoutMode: "document", rootClass: "wrapper" } );
499
519
  { name: "Status", options: ["Backlog", "Todo", "In Progress", "Done", "Canceled"] },
500
520
  { name: "Priority", options: ["Low", "Medium", "High"] },
501
521
  { name: "ID", type: "range", min: 0, max: 9, step: 1, units: "hr" },
522
+ { name: "Date", type: "date", xdefault: ["23/07/2025", "29/07/2025"] },
502
523
  ],
503
524
  rowActions: [
504
525
  { icon: "Edit", title: "Edit Row" },
@@ -515,7 +536,7 @@ const area = await LX.init( { layoutMode: "document", rootClass: "wrapper" } );
515
536
  ]
516
537
  }
517
538
  });
518
- tasksContainer.appendChild( tableWidget.root );
539
+ tasksContainer.appendChild( tableComponent.root );
519
540
  }
520
541
 
521
542
  // Code
@@ -553,8 +574,7 @@ const area = await LX.init( { layoutMode: "document", rootClass: "wrapper" } );
553
574
  {
554
575
  title: "LexGUI",
555
576
  items: [
556
- { title: "Documentation", link: "https://jxarco.github.io/lexgui.js/docs/" },
557
- { title: "Source code", link: "https://github.com/jxarco/lexgui.js/" }
577
+ { title: "Source code on Github", link: "https://github.com/jxarco/lexgui.js/" }
558
578
  ]
559
579
  },
560
580
  {
@@ -6,13 +6,13 @@
6
6
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
7
7
  <title>LexGUI demo</title>
8
8
  <link rel="stylesheet" href="../build/lexgui.css">
9
- <link rel="icon" href="../images/icon.png">
9
+ <link rel="icon" href="../images/favicon.png">
10
10
 
11
11
  <script type="importmap">
12
12
  {
13
13
  "imports": {
14
14
  "lexgui": "../build/lexgui.module.js",
15
- "lexgui/components/": "../build/components/"
15
+ "lexgui/extensions/": "../build/extensions/"
16
16
  }
17
17
  }
18
18
  </script>
@@ -25,13 +25,14 @@
25
25
 
26
26
  <script type="module">
27
27
  import { LX } from 'lexgui';
28
- import 'lexgui/components/codeeditor.js';
28
+ import 'lexgui/extensions/codeeditor.js';
29
29
 
30
30
  window.LX = LX;
31
31
 
32
32
  // Init library and get main area
33
33
  let area = await LX.init();
34
34
 
35
+ const starterTheme = LX.getTheme();
35
36
  const menubar = area.addMenubar( [], { sticky: false } );
36
37
  menubar.addButtons([
37
38
  {
@@ -44,11 +45,20 @@
44
45
  icon: "Moon",
45
46
  swap: "Sun",
46
47
  callback: (swapValue) => { LX.setTheme(swapValue ? "light" : "dark") }
48
+ },
49
+ {
50
+ title: "Switch Spacing",
51
+ icon: "AlignVerticalSpaceAround",
52
+ callback: (value, event) => { LX.switchSpacing() }
47
53
  }
48
54
  ]);
49
55
 
50
56
  menubar.setButtonIcon("Github", "Github", () => { window.open("https://github.com/jxarco/lexgui.js/") })
51
- menubar.setButtonImage("lexgui.js", "../images/icon.png", () => { window.open("https://jxarco.github.io/lexgui.js/") }, { float: "left" })
57
+ menubar.setButtonImage("lexgui.js", `../images/icon_small_${ starterTheme }.png`, () => { window.open("https://jxarco.github.io/lexgui.js/") }, { float: "left" } );
58
+
59
+ LX.addSignal( "@on_new_color_scheme", ( el, value ) => {
60
+ menubar.setButtonImage( "lexgui.js", `../images/icon_small_${ value }.png` );
61
+ } );
52
62
 
53
63
  var [middle, right] = area.split({ sizes: ["70%", "30%"], minimizable: true });
54
64
  var [left, center] = middle.split({ sizes: ["50%", null], minimizable: true });
@@ -268,10 +278,18 @@
268
278
  panelB.addFile("Disabled", null, { disabled: true });
269
279
  }
270
280
 
281
+ // Rate
282
+ {
283
+ panelC.branch("Rate", { closed: closedDefault });
284
+ panelC.addRate("Basic Rate", 2, null);
285
+ panelC.addRate("Rate With Halfs", 4.5, null, { allowHalf: true });
286
+ }
287
+
271
288
  // DatePicker
272
289
  {
273
290
  panelC.branch("Date Picker", { closed: closedDefault });
274
291
  panelC.addDate("Using Default Date", "15/04/2025");
292
+ panelC.addDate("Range Date", ["15/04/2025", "19/04/2025"]);
275
293
  panelC.addDate("No Default Date", null);
276
294
  panelC.addDate("Using Today's Date", null, null, { today: true });
277
295
  panelC.addDate("Allow Until Today", null, null, { untilToday: true });
@@ -6,12 +6,12 @@
6
6
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
7
7
  <title>LexGUI Area Tabs Demo</title>
8
8
  <link rel="stylesheet" href="../build/lexgui.css">
9
- <link rel="icon" href="../images/icon.png">
9
+ <link rel="icon" href="../images/favicon.png">
10
10
  <script type="importmap">
11
11
  {
12
12
  "imports": {
13
13
  "lexgui": "../build/lexgui.module.js",
14
- "lexgui/components/": "../build/components/"
14
+ "lexgui/extensions/": "../build/extensions/"
15
15
  }
16
16
  }
17
17
  </script>
@@ -64,7 +64,7 @@
64
64
 
65
65
  var ctx = canvas.getContext("2d");
66
66
 
67
- // Get values from panel widgets (e.g. color value)
67
+ // Get values from panel components (e.g. color value)
68
68
  ctx.fillStyle = panelA.getValue('Background');
69
69
 
70
70
  ctx.fillRect(0, 0, canvas.width, canvas.height);
@@ -5,12 +5,12 @@
5
5
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
6
6
  <title>LexGUI AssetView Demo</title>
7
7
  <link rel="stylesheet" href="../build/lexgui.css">
8
- <link rel="icon" href="../images/icon.png">
8
+ <link rel="icon" href="../images/favicon.png">
9
9
  <script type="importmap">
10
10
  {
11
11
  "imports": {
12
12
  "lexgui": "../build/lexgui.module.js",
13
- "lexgui/components/": "../build/components/"
13
+ "lexgui/extensions/": "../build/extensions/"
14
14
  }
15
15
  }
16
16
  </script>
@@ -20,7 +20,7 @@
20
20
  <script type="module">
21
21
 
22
22
  import { LX } from 'lexgui';
23
- import 'lexgui/components/codeeditor.js';
23
+ import 'lexgui/extensions/codeeditor.js';
24
24
 
25
25
  // Init library and get main area
26
26
  let area = await LX.init();
@@ -5,12 +5,12 @@
5
5
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
6
6
  <title>LexGUI Code Editor Demo</title>
7
7
  <link rel="stylesheet" href="../build/lexgui.css">
8
- <link rel="icon" href="../images/icon.png">
8
+ <link rel="icon" href="../images/favicon.png">
9
9
  <script type="importmap">
10
10
  {
11
11
  "imports": {
12
12
  "lexgui": "../build/lexgui.module.js",
13
- "lexgui/components/": "../build/components/"
13
+ "lexgui/extensions/": "../build/extensions/"
14
14
  }
15
15
  }
16
16
  </script>
@@ -20,7 +20,7 @@
20
20
  <script type="module">
21
21
 
22
22
  import { LX } from 'lexgui';
23
- import 'lexgui/components/codeeditor.js';
23
+ import 'lexgui/extensions/codeeditor.js';
24
24
 
25
25
  // init library and get main area
26
26
  let area = await LX.init();
@@ -64,7 +64,7 @@
64
64
  editor.loadFile("../data/rust_sample.rs");
65
65
  editor.loadFile("../data/animation.bml", { language: "JSON" });
66
66
  editor.loadFile("../data/CMakeLists.txt", { language: "CMake" });
67
- editor.loadFile("../localhost.bat");
67
+ editor.loadFile("../data/localhost.bat");
68
68
  editor.loadFile("../index.html");
69
69
 
70
70
  if (!fileExplorer) {
@@ -5,12 +5,12 @@
5
5
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
6
6
  <title>LexGUI Dialogs Demo</title>
7
7
  <link rel="stylesheet" href="../build/lexgui.css">
8
- <link rel="icon" href="../images/icon.png">
8
+ <link rel="icon" href="../images/favicon.png">
9
9
  <script type="importmap">
10
10
  {
11
11
  "imports": {
12
12
  "lexgui": "../build/lexgui.module.js",
13
- "lexgui/components/": "../build/components/"
13
+ "lexgui/extensions/": "../build/extensions/"
14
14
  }
15
15
  }
16
16
  </script>
@@ -97,7 +97,7 @@
97
97
 
98
98
  var ctx = canvas.getContext("2d");
99
99
 
100
- // Get values from panel widgets (e.g. color value)
100
+ // Get values from panel component (e.g. color value)
101
101
  ctx.fillStyle = pocketDialog.panel.getValue('Background');
102
102
  ctx.fillRect(0, 0, canvas.width, canvas.height);
103
103