custom-electron-titlebar 4.2.8 → 4.4.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 (77) hide show
  1. package/README.md +35 -11
  2. package/index.d.mts +684 -0
  3. package/index.d.ts +684 -3
  4. package/index.js +5225 -175
  5. package/index.js.map +1 -0
  6. package/index.mjs +5227 -0
  7. package/index.mjs.map +1 -0
  8. package/main/index.d.mts +21 -0
  9. package/main/index.d.ts +21 -3
  10. package/main/index.js +793 -175
  11. package/main/index.js.map +1 -0
  12. package/main/index.mjs +785 -0
  13. package/main/index.mjs.map +1 -0
  14. package/package.json +55 -32
  15. package/theme/base.css +425 -0
  16. package/theme/mac.css +0 -0
  17. package/theme/win.css +0 -0
  18. package/base/browser/browser.d.ts +0 -26
  19. package/base/browser/browser.js +0 -317
  20. package/base/browser/event.d.ts +0 -12
  21. package/base/browser/event.js +0 -215
  22. package/base/browser/keyboardEvent.d.ts +0 -38
  23. package/base/browser/keyboardEvent.js +0 -462
  24. package/base/browser/mouseEvent.d.ts +0 -61
  25. package/base/browser/mouseEvent.js +0 -327
  26. package/base/browser/touch.d.ts +0 -39
  27. package/base/browser/touch.js +0 -454
  28. package/base/common/arrays.d.ts +0 -10
  29. package/base/common/arrays.js +0 -210
  30. package/base/common/async.d.ts +0 -35
  31. package/base/common/async.js +0 -280
  32. package/base/common/charCode.d.ts +0 -405
  33. package/base/common/charCode.js +0 -9
  34. package/base/common/color.d.ts +0 -159
  35. package/base/common/color.js +0 -708
  36. package/base/common/decorators.d.ts +0 -6
  37. package/base/common/decorators.js +0 -300
  38. package/base/common/dom.d.ts +0 -221
  39. package/base/common/dom.js +0 -1476
  40. package/base/common/event.d.ts +0 -213
  41. package/base/common/event.js +0 -804
  42. package/base/common/iterator.d.ts +0 -69
  43. package/base/common/iterator.js +0 -380
  44. package/base/common/keyCodes.d.ts +0 -478
  45. package/base/common/keyCodes.js +0 -477
  46. package/base/common/lifecycle.d.ts +0 -17
  47. package/base/common/lifecycle.js +0 -258
  48. package/base/common/linkedList.d.ts +0 -17
  49. package/base/common/linkedList.js +0 -319
  50. package/base/common/platform.d.ts +0 -36
  51. package/base/common/platform.js +0 -314
  52. package/base/common/strings.d.ts +0 -23
  53. package/base/common/strings.js +0 -273
  54. package/consts.d.ts +0 -58
  55. package/consts.js +0 -317
  56. package/main/attach-titlebar-to-window.d.ts +0 -3
  57. package/main/attach-titlebar-to-window.js +0 -210
  58. package/main/setup-titlebar.d.ts +0 -2
  59. package/main/setup-titlebar.js +0 -255
  60. package/menubar/index.d.ts +0 -86
  61. package/menubar/index.js +0 -1119
  62. package/menubar/menu/index.d.ts +0 -46
  63. package/menubar/menu/index.js +0 -565
  64. package/menubar/menu/item.d.ts +0 -67
  65. package/menubar/menu/item.js +0 -575
  66. package/menubar/menu/separator.d.ts +0 -11
  67. package/menubar/menu/separator.js +0 -213
  68. package/menubar/menu/submenu.d.ts +0 -32
  69. package/menubar/menu/submenu.js +0 -372
  70. package/menubar/menubar-options.d.ts +0 -47
  71. package/menubar/menubar-options.js +0 -9
  72. package/titlebar/index.d.ts +0 -105
  73. package/titlebar/index.js +0 -703
  74. package/titlebar/options.d.ts +0 -89
  75. package/titlebar/options.js +0 -9
  76. package/titlebar/themebar.d.ts +0 -20
  77. package/titlebar/themebar.js +0 -267
package/README.md CHANGED
@@ -7,6 +7,11 @@ This project is a typescript library for electron that allows you to configure a
7
7
  [![NPM](https://badgen.net/npm/v/custom-electron-titlebar?label=NPM)](https://npmjs.org/package/custom-electron-titlebar)
8
8
  [![Install size](https://badgen.net/packagephobia/install/custom-electron-titlebar?label=Install%20size)](https://packagephobia.com/result?p=custom-electron-titlebar)
9
9
 
10
+ > [!IMPORTANT]
11
+ > This project will no longer be maintained, because I am the only one working on it and I have no free time left to review the issues and incorporate new features or update the dependencies to the latest versions.
12
+ >
13
+ > **Thanks to all the contributors and dependents of this library.**
14
+
10
15
  [📄 Documentation](https://github.com/AlexTorresDev/custom-electron-titlebar/wiki)
11
16
 
12
17
  ### Standard Title Bar
@@ -42,10 +47,7 @@ The implementation is done as follows:
42
47
 
43
48
  In the main application file (main.js or .ts)
44
49
  ```js
45
- import { setupTitlebar, attachTitlebarToWindow } from "custom-electron-titlebar/main";
46
-
47
- // setup the titlebar main process
48
- setupTitlebar();
50
+ import { setupTitlebarAndAttachToWindow } from "custom-electron-titlebar/main";
49
51
 
50
52
  function createWindow() {
51
53
  // Create the browser window.
@@ -64,20 +66,42 @@ function createWindow() {
64
66
 
65
67
  ...
66
68
 
67
- // attach fullScreen(f11 and not 'maximized') && focus listeners
68
- attachTitlebarToWindow(mainWindow);
69
+ // Setup main IPC + attach window listeners + load theme config
70
+ setupTitlebarAndAttachToWindow(mainWindow, {
71
+ themeConfigPath: path.join(__dirname, "titlebar.theme.json")
72
+ });
69
73
  }
70
74
  ```
71
75
 
72
76
  In the preload file (preload.js or .ts)
73
77
  ```js
74
- import { Titlebar } from "custom-electron-titlebar";
78
+ import { createTitlebarOnDOMContentLoaded } from "custom-electron-titlebar";
75
79
 
76
- window.addEventListener('DOMContentLoaded', () => {
77
- // Title bar implementation
78
- new Titlebar();
79
- });
80
+ // Theme configuration is automatically loaded from main process
81
+ createTitlebarOnDOMContentLoaded();
80
82
  ```
83
+
84
+ **Theme Configuration:**
85
+
86
+ Themes are loaded in the main process and delivered to the renderer via IPC. Specify the theme file path in `setupTitlebarAndAttachToWindow()` options:
87
+
88
+ Theme JSON schema (v1):
89
+ ```json
90
+ {
91
+ "version": 1,
92
+ "fontFamily": "Segoe UI, Arial, sans-serif",
93
+ "fontSize": 13,
94
+ "colors": {
95
+ "titlebar": "#1f2430",
96
+ "titlebarForeground": "#f3f4f6",
97
+ "menuBar": "#181c25",
98
+ "menuItemSelection": "#2f3a4f",
99
+ "menuSeparator": "#4b5563",
100
+ "svg": "#e5e7eb"
101
+ }
102
+ }
103
+ ```
104
+
81
105
  To see the options you can include in the Title Bar constructor, such as color of elements, icons, menu position, and much more, and the methods you can use, go to the [wiki](https://github.com/AlexTorresDev/custom-electron-titlebar/wiki)
82
106
 
83
107
  ## 💰 Support