x4js 1.4.6 → 1.4.9

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 (175) hide show
  1. package/README.md +4 -0
  2. package/build.sh +5 -0
  3. package/lib/application.d.ts +15 -11
  4. package/lib/application.js +16 -11
  5. package/lib/base64.d.ts +15 -11
  6. package/lib/base64.js +15 -11
  7. package/lib/base_component.d.ts +18 -1
  8. package/lib/base_component.js +18 -1
  9. package/lib/button.d.ts +15 -11
  10. package/lib/button.js +15 -11
  11. package/lib/calendar.d.ts +15 -11
  12. package/lib/calendar.js +15 -11
  13. package/lib/canvas.d.ts +15 -11
  14. package/lib/canvas.js +15 -11
  15. package/lib/cardview.d.ts +15 -11
  16. package/lib/cardview.js +15 -11
  17. package/lib/checkbox.d.ts +17 -12
  18. package/lib/checkbox.js +18 -11
  19. package/lib/color.d.ts +15 -11
  20. package/lib/color.js +15 -11
  21. package/lib/colorpicker.d.ts +18 -11
  22. package/lib/colorpicker.js +18 -11
  23. package/lib/combobox.d.ts +15 -11
  24. package/lib/combobox.js +16 -12
  25. package/lib/component.d.ts +18 -14
  26. package/lib/component.js +18 -14
  27. package/lib/datastore.d.ts +15 -11
  28. package/lib/datastore.js +15 -11
  29. package/lib/dialog.d.ts +15 -11
  30. package/lib/dialog.js +19 -14
  31. package/lib/dom_events.d.ts +17 -1
  32. package/lib/dom_events.js +17 -1
  33. package/lib/drag_manager.d.ts +28 -0
  34. package/lib/drawtext.d.ts +15 -11
  35. package/lib/drawtext.js +15 -11
  36. package/lib/fileupload.d.ts +15 -11
  37. package/lib/fileupload.js +15 -11
  38. package/lib/form.d.ts +15 -11
  39. package/lib/form.js +15 -11
  40. package/lib/formatters.d.ts +15 -11
  41. package/lib/formatters.js +15 -11
  42. package/lib/gridview.d.ts +15 -11
  43. package/lib/gridview.js +59 -29
  44. package/lib/i18n.d.ts +15 -11
  45. package/lib/i18n.js +15 -11
  46. package/lib/icon.d.ts +20 -12
  47. package/lib/icon.js +107 -25
  48. package/lib/image.d.ts +15 -11
  49. package/lib/image.js +15 -11
  50. package/lib/index.d.ts +28 -0
  51. package/lib/index.js +28 -0
  52. package/lib/input.d.ts +15 -11
  53. package/lib/input.js +15 -11
  54. package/lib/label.d.ts +15 -11
  55. package/lib/label.js +15 -11
  56. package/lib/layout.d.ts +21 -17
  57. package/lib/layout.js +21 -17
  58. package/lib/link.d.ts +15 -11
  59. package/lib/link.js +15 -11
  60. package/lib/listview.d.ts +15 -11
  61. package/lib/listview.js +15 -11
  62. package/lib/md5.d.ts +15 -10
  63. package/lib/md5.js +15 -10
  64. package/lib/menu.d.ts +15 -11
  65. package/lib/menu.js +19 -12
  66. package/lib/messagebox.d.ts +15 -11
  67. package/lib/messagebox.js +17 -13
  68. package/lib/panel.d.ts +15 -11
  69. package/lib/panel.js +15 -11
  70. package/lib/popup.d.ts +15 -11
  71. package/lib/popup.js +15 -11
  72. package/lib/property_editor.d.ts +15 -11
  73. package/lib/property_editor.js +15 -11
  74. package/lib/radiobtn.d.ts +15 -11
  75. package/lib/radiobtn.js +15 -11
  76. package/lib/rating.d.ts +15 -11
  77. package/lib/rating.js +15 -11
  78. package/lib/request.d.ts +15 -11
  79. package/lib/request.js +15 -11
  80. package/lib/router.d.ts +28 -0
  81. package/lib/router.js +28 -0
  82. package/lib/settings.d.ts +15 -11
  83. package/lib/settings.js +15 -11
  84. package/lib/sidebarview.d.ts +15 -11
  85. package/lib/sidebarview.js +15 -11
  86. package/lib/smartedit.d.ts +15 -11
  87. package/lib/smartedit.js +15 -11
  88. package/lib/spreadsheet.d.ts +15 -11
  89. package/lib/spreadsheet.js +15 -11
  90. package/lib/styles.d.ts +16 -12
  91. package/lib/styles.js +21 -14
  92. package/lib/svgcomponent.d.ts +15 -11
  93. package/lib/svgcomponent.js +15 -11
  94. package/lib/tabbar.d.ts +17 -2
  95. package/lib/tabbar.js +17 -2
  96. package/lib/tabview.d.ts +15 -11
  97. package/lib/tabview.js +15 -11
  98. package/lib/textarea.d.ts +15 -11
  99. package/lib/textarea.js +15 -11
  100. package/lib/textedit.d.ts +15 -11
  101. package/lib/textedit.js +15 -11
  102. package/lib/texthiliter.d.ts +15 -11
  103. package/lib/texthiliter.js +15 -11
  104. package/lib/toaster.d.ts +15 -11
  105. package/lib/toaster.js +15 -11
  106. package/lib/tools.d.ts +15 -11
  107. package/lib/tools.js +15 -11
  108. package/lib/tooltips.d.ts +15 -11
  109. package/lib/tooltips.js +15 -11
  110. package/lib/treeview.d.ts +15 -11
  111. package/lib/treeview.js +15 -11
  112. package/lib/x4.css +1572 -0
  113. package/lib/x4_events.d.ts +15 -11
  114. package/lib/x4_events.js +15 -11
  115. package/package.json +5 -1
  116. package/src/MIT-license.md +14 -0
  117. package/src/application.ts +16 -11
  118. package/src/base64.ts +15 -11
  119. package/src/base_component.ts +18 -1
  120. package/src/button.ts +15 -11
  121. package/src/calendar.ts +15 -11
  122. package/src/canvas.ts +15 -11
  123. package/src/cardview.ts +15 -11
  124. package/src/checkbox.ts +21 -12
  125. package/src/color.ts +15 -11
  126. package/src/colorpicker.ts +19 -11
  127. package/src/combobox.ts +16 -12
  128. package/src/component.ts +18 -14
  129. package/src/datastore.ts +15 -11
  130. package/src/dialog.ts +19 -14
  131. package/src/dom_events.ts +17 -1
  132. package/src/drag_manager.ts +28 -0
  133. package/src/drawtext.ts +15 -11
  134. package/src/fileupload.ts +15 -11
  135. package/src/form.ts +15 -11
  136. package/src/formatters.ts +15 -11
  137. package/src/gridview.ts +76 -30
  138. package/src/i18n.ts +15 -11
  139. package/src/icon.ts +125 -33
  140. package/src/image.ts +15 -11
  141. package/src/index.ts +29 -0
  142. package/src/input.ts +15 -11
  143. package/src/label.ts +15 -11
  144. package/src/layout.ts +21 -17
  145. package/src/link.ts +15 -11
  146. package/src/listview.ts +15 -11
  147. package/src/md5.ts +15 -10
  148. package/src/menu.ts +19 -12
  149. package/src/messagebox.ts +17 -13
  150. package/src/panel.ts +15 -11
  151. package/src/popup.ts +15 -11
  152. package/src/property_editor.ts +15 -11
  153. package/src/radiobtn.ts +15 -11
  154. package/src/rating.ts +15 -11
  155. package/src/request.ts +15 -11
  156. package/src/router.ts +28 -0
  157. package/src/settings.ts +15 -11
  158. package/src/sidebarview.ts +15 -11
  159. package/src/smartedit.ts +15 -11
  160. package/src/spreadsheet.ts +15 -11
  161. package/src/styles.ts +23 -14
  162. package/src/svgcomponent.ts +15 -11
  163. package/src/tabbar.ts +17 -2
  164. package/src/tabview.ts +15 -11
  165. package/src/textarea.ts +15 -11
  166. package/src/textedit.ts +15 -11
  167. package/src/texthiliter.ts +15 -11
  168. package/src/toaster.ts +15 -11
  169. package/src/tools.ts +15 -11
  170. package/src/tooltips.ts +15 -11
  171. package/src/treeview.ts +15 -11
  172. package/src/x4.less +232 -168
  173. package/src/x4_events.ts +15 -11
  174. package/x4.css +1572 -0
  175. package/src/README.md +0 -2
package/src/x4.less CHANGED
@@ -1,37 +1,113 @@
1
- // out: false
2
-
1
+ // out: ../x4.css
2
+
3
+ /**
4
+ * ___ ___ __
5
+ * \ \_/ / / _
6
+ * \ / /_| |_
7
+ * / _ \____ _|
8
+ * /__/ \__\ |_|
9
+ *
10
+ * @file x4.less
11
+ * @author Etienne Cochard
12
+ *
13
+ * Copyright (c) 2019-2022 R-libre ingenierie
14
+ *
15
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
16
+ * of this software and associated documentation files (the "Software"), to deal
17
+ * in the Software without restriction, including without limitation the rights
18
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
19
+ * of the Software, and to permit persons to whom the Software is furnished to do so,
20
+ * subject to the following conditions:
21
+ * The above copyright notice and this permission notice shall be included in all copies
22
+ * or substantial portions of the Software.
23
+ *
24
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
25
+ * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
26
+ * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
27
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
29
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30
+ **/
3
31
 
4
32
  :root {
5
- --background: #161717;
6
-
7
- --button-color: rgb(54,54,54);
8
- --button-border: rgb(0,0,0);
9
- --button-icon-color: rgb( 255, 255, 255);
10
-
11
- --scrollbar-width: 6px;
12
- --scrollbar-bk: white;
13
- --scrollbar-thumb: grey;
14
- }
33
+ --x4-font: "Inter";
34
+ --x4-font-size: 13px;
15
35
 
16
- * {
17
- user-select: none;
18
- box-sizing: border-box;
19
- }
20
-
21
- html {
22
- font-family: @def-font;
23
- font-size: @def-font-size;
24
- }
25
-
26
- body {
36
+ --x4-base-color: #266888;
37
+
38
+ --x4-selection-color: #2458B3;
39
+ --x4-hover-color: fadeout( #2458B3, 10% );
40
+ --x4-mask-color: fadeout( #2458B3, 40% );
41
+ --x4-focus-color: #2458B3;
42
+ --x4-error-color: #b92a09;
43
+ --x4-success-color: #0A6640;
44
+ --x4-form-color: white;
45
+ --x4-tip-background: rgba(0,0,0,0.5);
46
+
47
+ --x4-button-color: white;
48
+ --x4-button-text-color: rgb(54,54,54);
49
+
50
+ --x4-scrollbar-width: 6px;
51
+ --x4-scrollbar-background: white;
52
+ --x4-scrollbar-thumb: grey;
53
+
54
+ --x4-sizer-size: 4px;
55
+ --x4-default-border-color: rgba(0,0,0,0.1);
56
+
57
+ // todo: svg
58
+ --x4-icon-font-family: "fonteawesome";
59
+
60
+ --x4-icon-circle-exclamation: 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM232 152C232 138.8 242.8 128 256 128s24 10.75 24 24v128c0 13.25-10.75 24-24 24S232 293.3 232 280V152zM256 400c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 385.9 273.4 400 256 400z"/></svg>';
61
+ --x4-icon-chevron-right: 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M96 480c-8.188 0-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L242.8 256L73.38 86.63c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25l-192 192C112.4 476.9 104.2 480 96 480z"/></svg>';
62
+ --x4-icon-window-restore: 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="currentColor"><path d="M432 64H208C199.2 64 192 71.16 192 80V96H128V80C128 35.82 163.8 0 208 0H432C476.2 0 512 35.82 512 80V304C512 348.2 476.2 384 432 384H416V320H432C440.8 320 448 312.8 448 304V80C448 71.16 440.8 64 432 64zM0 192C0 156.7 28.65 128 64 128H320C355.3 128 384 156.7 384 192V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V192zM96 256H288C305.7 256 320 241.7 320 224C320 206.3 305.7 192 288 192H96C78.33 192 64 206.3 64 224C64 241.7 78.33 256 96 256z"/></svg>';
63
+ --x4-icon-arrow-down: 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512" fill="currentColor"><path d="M9.375 329.4c12.51-12.51 32.76-12.49 45.25 0L128 402.8V32c0-17.69 14.31-32 32-32s32 14.31 32 32v370.8l73.38-73.38c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-128 128c-12.5 12.5-32.75 12.5-45.25 0l-128-128C-3.125 362.1-3.125 341.9 9.375 329.4z"/></svg>';
64
+ --x4-icon-arrow-up: 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512" fill="currentColor"><path d="M310.6 182.6c-12.51 12.51-32.76 12.49-45.25 0L192 109.3V480c0 17.69-14.31 32-32 32s-32-14.31-32-32V109.3L54.63 182.6c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25l128-128c12.5-12.5 32.75-12.5 45.25 0l128 128C323.1 149.9 323.1 170.1 310.6 182.6z"/></svg>';
65
+ --x4-icon-exclamation: 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 512" fill="currentColor"><path d="M64 352c17.69 0 32-14.32 32-31.1V64.01c0-17.67-14.31-32.01-32-32.01S32 46.34 32 64.01v255.1C32 337.7 46.31 352 64 352zM64 400c-22.09 0-40 17.91-40 40s17.91 39.1 40 39.1s40-17.9 40-39.1S86.09 400 64 400z"/></svg>';
66
+ --x4-icon-window-minimize: 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="currentColor"><path d="M0 448C0 430.3 14.33 416 32 416H480C497.7 416 512 430.3 512 448C512 465.7 497.7 480 480 480H32C14.33 480 0 465.7 0 448z"/></svg>';
67
+ --x4-icon-window-maximize: 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="currentColor"><path d="M448 32C483.3 32 512 60.65 512 96V416C512 451.3 483.3 480 448 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H448zM96 96C78.33 96 64 110.3 64 128C64 145.7 78.33 160 96 160H416C433.7 160 448 145.7 448 128C448 110.3 433.7 96 416 96H96z"/></svg>';
68
+ --x4-icon-window-restore: 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="currentColor"><path d="M432 64H208C199.2 64 192 71.16 192 80V96H128V80C128 35.82 163.8 0 208 0H432C476.2 0 512 35.82 512 80V304C512 348.2 476.2 384 432 384H416V320H432C440.8 320 448 312.8 448 304V80C448 71.16 440.8 64 432 64zM0 192C0 156.7 28.65 128 64 128H320C355.3 128 384 156.7 384 192V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V192zM96 256H288C305.7 256 320 241.7 320 224C320 206.3 305.7 192 288 192H96C78.33 192 64 206.3 64 224C64 241.7 78.33 256 96 256z"/></svg>';
69
+ --x4-icon-rectangle-times: 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="currentColor"><path d="M448 32C483.3 32 512 60.65 512 96V416C512 451.3 483.3 480 448 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H448zM175 208.1L222.1 255.1L175 303C165.7 312.4 165.7 327.6 175 336.1C184.4 346.3 199.6 346.3 208.1 336.1L255.1 289.9L303 336.1C312.4 346.3 327.6 346.3 336.1 336.1C346.3 327.6 346.3 312.4 336.1 303L289.9 255.1L336.1 208.1C346.3 199.6 346.3 184.4 336.1 175C327.6 165.7 312.4 165.7 303 175L255.1 222.1L208.1 175C199.6 165.7 184.4 165.7 175 175C165.7 184.4 165.7 199.6 175 208.1V208.1z"/></svg>';
70
+ --x4-icon-xmark: 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512" fill="currentColor"><path d="M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3L54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z"/></svg>';
71
+ --x4-icon-angle-down: 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" fill="currentColor"><path d="M192 384c-8.188 0-16.38-3.125-22.62-9.375l-160-160c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L192 306.8l137.4-137.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-160 160C208.4 380.9 200.2 384 192 384z"/></svg>';
72
+ }
73
+
74
+ @BLACK10: rgba(0,0,0,0.1);
75
+ @BLACK20: rgba(0,0,0,0.2);
76
+ @BLACK30: rgba(0,0,0,0.3);
77
+ @BLACK40: rgba(0,0,0,0.4);
78
+ @BLACK50: rgba(0,0,0,0.5);
79
+ @BLACK60: rgba(0,0,0,0.6);
80
+ @BLACK70: rgba(0,0,0,0.7);
81
+ @BLACK80: rgba(0,0,0,0.8);
82
+ @BLACK90: rgba(0,0,0,0.9);
83
+ @BLACK: #000;
84
+
85
+ @WHITE5: rgba(255,255,255,0.05);
86
+ @WHITE10: rgba(255,255,255,0.1);
87
+ @WHITE20: rgba(255,255,255,0.2);
88
+ @WHITE25: rgba(255,255,255,0.25);
89
+ @WHITE30: rgba(255,255,255,0.3);
90
+ @WHITE40: rgba(255,255,255,0.4);
91
+ @WHITE50: rgba(255,255,255,0.5);
92
+ @WHITE60: rgba(255,255,255,0.6);
93
+ @WHITE70: rgba(255,255,255,0.7);
94
+ @WHITE80: rgba(255,255,255,0.8);
95
+ @WHITE90: rgba(255,255,255,0.9);
96
+ @WHITE: #fff;
97
+
98
+ .x4-root-element {
27
99
  padding: 0;
28
100
  margin: 0;
29
- position: fixed;
30
- left: 0;
101
+ left: 0;
31
102
  top: 0;
32
103
  right: 0;
33
104
  bottom: 0;
34
- -webkit-font-smoothing: antialiased;
105
+
106
+ -webkit-font-smoothing: subpixel-antialiased;
107
+ text-rendering: geometricprecision;
108
+
109
+ font-family: var( --x4-font );
110
+ font-size: var( --x4-font-size );
35
111
  }
36
112
 
37
113
  input,
@@ -46,11 +122,11 @@ textarea {
46
122
  border: 1px solid transparent;
47
123
 
48
124
  &:focus {
49
- border: 1px solid @selection-color;
125
+ border: 1px solid var( --x4-selection-color );
50
126
  }
51
127
 
52
128
  &::selection {
53
- background-color: @selection-color;
129
+ background-color: var( --x4-selection-color );
54
130
  color: #fff;
55
131
  }
56
132
  }
@@ -72,6 +148,8 @@ textarea {
72
148
  }
73
149
 
74
150
  .x-comp {
151
+ user-select: none;
152
+ box-sizing: border-box;
75
153
  position: relative;
76
154
  }
77
155
 
@@ -133,14 +211,12 @@ textarea {
133
211
  }
134
212
  }
135
213
 
136
- @sizer-size: 4px;
137
-
138
214
  .x-sizer-overlay {
139
215
  position: absolute;
140
216
 
141
217
  &.top {
142
218
  width: 100%;
143
- height: @sizer-size;
219
+ height: var( --x4-sizer-size );
144
220
  cursor: n-resize;
145
221
  left: 0;
146
222
  top: 0;
@@ -148,7 +224,7 @@ textarea {
148
224
 
149
225
  &.bottom {
150
226
  width: 100%;
151
- height: @sizer-size;
227
+ height: var( --x4-sizer-size );
152
228
  cursor: n-resize;
153
229
  left: 0;
154
230
  bottom: 0;
@@ -157,7 +233,7 @@ textarea {
157
233
  &.right {
158
234
  top: 0;
159
235
  right: 0;
160
- width: @sizer-size;
236
+ width: var( --x4-sizer-size );
161
237
  height: 100%;
162
238
  cursor: e-resize;
163
239
  }
@@ -165,19 +241,19 @@ textarea {
165
241
  &.left {
166
242
  top: 0;
167
243
  left: 0;
168
- width: @sizer-size;
244
+ width: var( --x4-sizer-size );
169
245
  height: 100%;
170
246
  cursor: e-resize;
171
247
  }
172
248
  }
173
249
 
174
250
  .x-sizer-bottom {
175
- padding-bottom: @sizer-size;
251
+ padding-bottom: var( --x4-sizer-size );
176
252
  }
177
253
 
178
254
  .x-icon {
179
255
  &:before {
180
- font-family: @fa-style-family;
256
+ font-family: var( --x4-icon-font-family );
181
257
  }
182
258
 
183
259
  display: inline-flex;
@@ -185,7 +261,7 @@ textarea {
185
261
  text-align: center;
186
262
  flex-direction: column;
187
263
 
188
- &.x-svg-icon {
264
+ &.x-svg-icon, svg {
189
265
  width: 1em;
190
266
  height: 1em;
191
267
  }
@@ -198,29 +274,23 @@ textarea {
198
274
  outline: none;
199
275
  cursor: pointer;
200
276
 
201
- height: 2.5em;
277
+ height: 2rem;
202
278
  padding: 8px;
203
- border: 1px solid var( --button-border );
204
279
  overflow: hidden;
205
280
 
206
- background-color: var( --button-color );
207
- color: @WHITE60;
281
+ border: 1px solid var( --x4-default-border-color );
282
+ background-color: var( --x4-button-color );
283
+ color: var( --x4-button-text-color );
208
284
 
209
285
  .x-icon {
210
286
  margin: 0 4px;
211
- //width: 1em;
212
- color: var( --button-icon-color );
287
+ color: inherit;
213
288
  }
214
289
 
215
- &:not(.x-disable) {
216
- &:focus {
217
- border-color: white;
218
- }
219
-
220
- &.x-active {
221
- color: white;
222
- background-color: @WHITE20;
223
- }
290
+ &:focus {
291
+ border-color: var( --x4-focus-color );
292
+ background-color: var( --x4-focus-color );
293
+ color: white;
224
294
  }
225
295
 
226
296
  &.x-disable {
@@ -289,15 +359,15 @@ textarea {
289
359
  }
290
360
 
291
361
  ::-webkit-scrollbar {
292
- width: var( --scrollbar-width );
293
- height: var( --scrollbar-width );
294
- background-color: var( --scrollbar-bk );
362
+ width: var( --x4-scrollbar-width );
363
+ height: var( --x4-scrollbar-width );
364
+ background-color: var( --x4-scrollbar-background );
295
365
  box-sizing: border-box;
296
366
  }
297
367
 
298
368
  ::-webkit-scrollbar-thumb {
299
- background-color: var( --scrollbar-thumb );
300
- //border-radius: calc( var( --scrollbar-width ) / 2 - 1px );
369
+ background-color: var( --x4-scrollbar-thumb );
370
+ //border-radius: calc( var( --x4-scrollbar-width ) / 2 - 1px );
301
371
  }
302
372
 
303
373
  .x-circular-chart {
@@ -378,23 +448,25 @@ textarea {
378
448
  }
379
449
 
380
450
  &::selection {
381
- background-color: @selection-color;
451
+ background-color: var( --x4-selection-color );
382
452
  color: #fff;
383
453
  }
384
- }
385
454
 
386
- &:focus {
387
- outline: none;
455
+ &:focus {
456
+ border-bottom-color: var( --x4-focus-color );
457
+ }
458
+ }
388
459
 
460
+ &:focus-within {
389
461
  &> .x-label {
390
- color: @focus-color;
462
+ color: var( --x4-focus-color );
391
463
  }
392
464
  }
393
465
 
394
466
  .x-button.gadget {
395
-
396
- font-size: @def-font-size;
397
- background-color: @BLACK10;
467
+ background-color: transparent;
468
+ font-size: var( --x4-font-size );
469
+ color: black;
398
470
  border: none;
399
471
 
400
472
  margin: 0;
@@ -402,28 +474,27 @@ textarea {
402
474
  height: 2em;
403
475
  margin-top: 1px;
404
476
 
405
- .x-icon {
406
- font-size: 85%;
407
- padding-right: 2px;
477
+ &:focus {
478
+ color: var( --x4-focus-color );
408
479
  }
409
480
  }
410
481
 
411
482
  &:focus {
412
483
  .x-button.gadget,
413
484
  input {
414
- border-color: @focus-color;
485
+ border-color: var( --x4-focus-color );
415
486
  }
416
487
 
417
488
  input {
418
- border-bottom: 1px solid @focus-color;
489
+ border-bottom: 1px solid var( --x4-focus-color );
419
490
  }
420
491
 
421
492
  .x-button.gadget {
422
- color: @focus-color;
493
+ color: var( --x4-focus-color );
423
494
  }
424
495
 
425
496
  .x-label {
426
- color: @focus-color;
497
+ color: var( --x4-focus-color );
427
498
  }
428
499
  }
429
500
 
@@ -438,15 +509,6 @@ textarea {
438
509
  position: absolute;
439
510
  top: -2px;
440
511
  z-index: 1;
441
-
442
- &:before {
443
- font-family: @fa-style-family;
444
- content: @fa-var-circle-exclamation;
445
- padding-right: 3px;
446
- position: absolute;
447
- left: 1px;
448
- top: 6px;
449
- }
450
512
  }
451
513
 
452
514
  &.x-required .label1:before {
@@ -457,7 +519,7 @@ textarea {
457
519
  &.x-error {
458
520
  input {
459
521
  border-bottom: none;
460
- border-left: 4px solid @error-color;
522
+ border-left: 4px solid var( --x4-error-color );
461
523
  }
462
524
  }
463
525
  }
@@ -488,20 +550,20 @@ textarea {
488
550
  .x-button.gadget,
489
551
  input,
490
552
  .x-fake-input {
491
- border-color: @focus-color;
553
+ border-color: var( --x4-focus-color );
492
554
  }
493
555
 
494
556
  input,
495
557
  .x-fake-input {
496
- border-bottom: 1px solid @focus-color;
558
+ border-bottom: 1px solid var( --x4-focus-color );
497
559
  }
498
560
 
499
561
  .x-button.gadget {
500
- color: @focus-color;
562
+ color: var( --x4-focus-color );
501
563
  }
502
564
 
503
565
  .x-label {
504
- color: @focus-color;
566
+ color: var( --x4-focus-color );
505
567
  }
506
568
  }
507
569
 
@@ -577,7 +639,7 @@ textarea {
577
639
 
578
640
  &:focus-within {
579
641
  text-decoration: underline;
580
- color: @selection-color;
642
+ color: var( --x4-selection-color );
581
643
  }
582
644
  }
583
645
 
@@ -623,7 +685,7 @@ textarea {
623
685
  }
624
686
 
625
687
  input:checked + .x-label:before {
626
- background-color: @selection-color;
688
+ background-color: var( --x4-selection-color );
627
689
  }
628
690
 
629
691
  input:checked + .x-label:after {
@@ -688,15 +750,6 @@ textarea {
688
750
  }
689
751
  }
690
752
 
691
-
692
- .x-popup-menu-item {
693
- &:after {
694
- content: @fa-var-chevron-right;
695
- font-family: @fa-style-family;
696
- font-size: 80%;
697
- }
698
- }
699
-
700
753
  .x-menu-separator {
701
754
  margin-top: 4px;
702
755
  border-top: 1px solid @BLACK10;
@@ -705,7 +758,7 @@ textarea {
705
758
 
706
759
  .x-link {
707
760
  padding: 4px;
708
- color: @selection-color;
761
+ color: var( --x4-selection-color );
709
762
  cursor: pointer;
710
763
  outline: none;
711
764
 
@@ -713,7 +766,7 @@ textarea {
713
766
  align-items: center;
714
767
 
715
768
  &:focus {
716
- color: @selection-color;
769
+ color: var( --x4-selection-color );
717
770
  text-decoration: underline;
718
771
  }
719
772
 
@@ -747,17 +800,13 @@ textarea {
747
800
  }
748
801
 
749
802
  .h-container {
750
- margin-right: var( --scrollbar-width );
803
+ margin-right: var( --x4-scrollbar-width );
751
804
  }
752
805
  }
753
806
 
754
807
  .x-list-view {
755
808
 
756
- border: 1px solid transparent;
757
-
758
- &:focus {
759
- outline: none;
760
- }
809
+ border: 1px solid var( --x4-default-border-color );
761
810
 
762
811
  .x-list-item {
763
812
  padding: 4px;
@@ -765,12 +814,12 @@ textarea {
765
814
  white-space: nowrap;
766
815
 
767
816
  &:hover {
768
- background-color: fadeout( @selection-color, 10% );
817
+ background-color: var( --x4-hover-color );
769
818
  color: white;
770
819
  }
771
820
 
772
821
  &.x-selected {
773
- background-color: @selection-color;
822
+ background-color: var( --x4-selection-color );
774
823
  color: white;
775
824
  }
776
825
 
@@ -779,6 +828,11 @@ textarea {
779
828
  }
780
829
  }
781
830
 
831
+ &:focus {
832
+ outline: none;
833
+ border-color: var( --x4-focus-color );
834
+ }
835
+
782
836
  .gadgets {
783
837
  border-top: 1px solid @BLACK50;
784
838
  background-color: @BLACK10;
@@ -804,7 +858,7 @@ textarea {
804
858
  width: 200vw;
805
859
  height: 200vh;
806
860
 
807
- background-color: fadeout( @selection-color, 40% );
861
+ background-color: var( --x4-mask-color );
808
862
  z-index: 999;
809
863
  }
810
864
  }
@@ -813,6 +867,9 @@ textarea {
813
867
  position: absolute;
814
868
  z-index: 1000;
815
869
 
870
+ font-family: var( --x4-font );
871
+ font-size: var( --x4-font-size );
872
+
816
873
  &:focus {
817
874
  outline: none;
818
875
  }
@@ -837,6 +894,8 @@ textarea {
837
894
  color: black;
838
895
  }
839
896
  }
897
+
898
+ border-bottom: 1px solid var( --x4-default-border-color );
840
899
  }
841
900
 
842
901
  &>.body {
@@ -846,19 +905,23 @@ textarea {
846
905
  }
847
906
 
848
907
  .x-dialog {
849
-
850
908
  border: 0.5px solid @BLACK20;
909
+
851
910
  .z-float-8;
852
911
 
853
912
  & > .title {
854
- height: 3rem;
913
+ height: 2rem;
855
914
  color: white;
856
915
  padding: 0 8px;
857
916
  display: flex;
858
917
  align-items: center;
918
+ background-color: var( --x4-selection-color );
859
919
 
860
920
  .x-icon {
861
- width: 1.7em;
921
+ width: 2em;
922
+ height: 1.9em;
923
+ padding: 4px;
924
+
862
925
  text-align: center;
863
926
  cursor: pointer;
864
927
 
@@ -867,15 +930,29 @@ textarea {
867
930
  }
868
931
  }
869
932
 
933
+ .x-icon.close-btn:hover {
934
+ background-color: var( --x4-error-color );
935
+ color: white;
936
+ }
937
+
870
938
  .x-label {
871
939
  border-bottom: none;
872
940
  padding: 0;
873
941
  }
942
+
943
+ .res-btn {
944
+ display: none;
945
+ }
874
946
  }
875
947
 
876
948
  &.maximized > .title {
877
- .max-btn:before {
878
- content: @fa-var-window-restore;
949
+ .min-btn,
950
+ .max-btn {
951
+ display: none;
952
+ }
953
+
954
+ .res-btn {
955
+ display: block;
879
956
  }
880
957
  }
881
958
 
@@ -986,7 +1063,8 @@ textarea {
986
1063
  }
987
1064
 
988
1065
  .x-form {
989
- background-color: @form-color;
1066
+ background-color: var( --x4-form-color );
1067
+ margin-block-end: 0;
990
1068
  padding: 8px;
991
1069
  min-width: 250px;
992
1070
  min-height: 50px;
@@ -1016,28 +1094,6 @@ textarea {
1016
1094
  }
1017
1095
  }
1018
1096
 
1019
- .x-panel {
1020
- &>.title {
1021
- border-bottom: 1px solid @BLACK10;
1022
- }
1023
- }
1024
-
1025
- .x-button {
1026
- background-color: @WHITE25;
1027
- border-color: transparent;
1028
- font-family: @def-font;
1029
- font-size: @def-font-size;
1030
-
1031
- .x-icon {
1032
- width: 1.5em;
1033
- }
1034
-
1035
- &:focus {
1036
- border-color: @WHITE40;
1037
- color: black;
1038
- }
1039
- }
1040
-
1041
1097
  .x-hidden {
1042
1098
  display: none ! important;
1043
1099
  }
@@ -1078,7 +1134,7 @@ textarea {
1078
1134
 
1079
1135
  &>.title {
1080
1136
  background: none;
1081
- background-color: @error-color;
1137
+ background-color: var( --x4-error-color );
1082
1138
  height: 2.5em;
1083
1139
 
1084
1140
  .x-label {
@@ -1101,7 +1157,7 @@ textarea {
1101
1157
 
1102
1158
  .icon {
1103
1159
  font-size: 48px;
1104
- color: @error-color;
1160
+ color: var( --x4-error-color );
1105
1161
  margin-right: 8px;
1106
1162
  }
1107
1163
 
@@ -1118,7 +1174,7 @@ textarea {
1118
1174
  padding-top: 8px;
1119
1175
 
1120
1176
  .x-button {
1121
- background-color: @error-color;
1177
+ background-color: var( --x4-error-color );
1122
1178
  color: white;
1123
1179
  }
1124
1180
 
@@ -1165,20 +1221,27 @@ textarea {
1165
1221
  //text-transform: capitalize;
1166
1222
  height: unset;
1167
1223
 
1168
- &.sort:before {
1169
- content: @fa-var-arrow-down-long;
1170
- font-family: @fa-style-family;
1171
- padding-right: 4px;
1224
+ &.sort {
1225
+ background-image: var( --x4-icon-arrow-down-long );
1226
+ background-repeat: no-repeat;
1227
+ background-size: 1rem 1rem;
1228
+ background-position: right 0 top 6px;
1229
+ padding-right: calc( 1rem + 4px );
1172
1230
  }
1173
1231
 
1174
- &.sort.desc:before {
1175
- content: @fa-var-arrow-up-long;
1176
- font-family: @fa-style-family;
1177
- padding-right: 4px;
1232
+ &.sort.desc {
1233
+ background-image: var( --x4-icon-arrow-up-long );
1178
1234
  }
1179
1235
  }
1180
1236
  }
1181
1237
 
1238
+ .x-header {
1239
+ .x-cell {
1240
+ display: flex;
1241
+ align-items: center;
1242
+ }
1243
+ }
1244
+
1182
1245
  .x-row {
1183
1246
  position: absolute;
1184
1247
  width: 100%;
@@ -1223,7 +1286,7 @@ textarea {
1223
1286
  }
1224
1287
 
1225
1288
  &.x-selected {
1226
- background-color: @selection-color;
1289
+ background-color: var( --x4-selection-color );
1227
1290
 
1228
1291
  .x-cell {
1229
1292
  color: white;
@@ -1257,7 +1320,7 @@ textarea {
1257
1320
 
1258
1321
  &:focus {
1259
1322
  .x-cell.x-selected {
1260
- background-color: @selection-color;
1323
+ background-color: var( --x4-selection-color );
1261
1324
  color: white;
1262
1325
  }
1263
1326
  }
@@ -1278,17 +1341,18 @@ textarea {
1278
1341
 
1279
1342
  .x-button {
1280
1343
  background-color: transparent;
1281
- color: var( --base-color );
1344
+ color: var( --x4-base-color );
1282
1345
  border: none;
1283
- border-bottom: 1px solid fadeout(@base-color,90%);
1346
+ //border-bottom: 1px solid fadeout(var( --x4-base-color ),90%);
1347
+
1284
1348
  min-height: 2em;
1285
1349
 
1286
- .x-icon {
1287
- color: fadeout( @base-color, 50% );
1288
- }
1350
+ //.x-icon {
1351
+ // color: fadeout( var( --x4-base-color ), 50% );
1352
+ //}
1289
1353
 
1290
1354
  &:hover {
1291
- background-color: fadeout(@base-color,30%);
1355
+ background-color: var( --x4-hover-color );
1292
1356
  color: white;
1293
1357
 
1294
1358
  .x-icon {
@@ -1297,7 +1361,7 @@ textarea {
1297
1361
  }
1298
1362
 
1299
1363
  &.x-active {
1300
- background-color: @base-color;
1364
+ background-color: var( --x4-base-color );
1301
1365
  color: white;
1302
1366
 
1303
1367
  .x-icon {
@@ -1306,7 +1370,7 @@ textarea {
1306
1370
  }
1307
1371
 
1308
1372
  &.x-active:hover {
1309
- background-color: fadeout(@base-color,20%);
1373
+ //background-color: fadeout(var( --x4-base-color ),20%);
1310
1374
  color: white;
1311
1375
 
1312
1376
  .x-icon {
@@ -1354,11 +1418,11 @@ textarea {
1354
1418
  position: absolute;
1355
1419
  left: 6px;
1356
1420
  top: 7px;
1357
- color: fadeout(darken(@base-color,5%),10%);
1421
+ color: var( --x4-tip-background );
1358
1422
  }
1359
1423
 
1360
1424
  .x-label {
1361
- background-color: @selection-color;
1425
+ background-color: var( --x4-selection-color );
1362
1426
  white-space: break-spaces;
1363
1427
  display: inline-block;
1364
1428
  padding: 6px;
@@ -1367,7 +1431,7 @@ textarea {
1367
1431
  }
1368
1432
 
1369
1433
  .x-search-bar {
1370
- background-color: @base-color;
1434
+ background-color: var( --x4-base-color );
1371
1435
  height: 2em;
1372
1436
  }
1373
1437
 
@@ -1466,7 +1530,7 @@ textarea {
1466
1530
  //border-bottom: 1px solid @BLACK10;
1467
1531
 
1468
1532
  &:hover {
1469
- background-color: fadeout(@selection-color,90%);
1533
+ background-color: var( --x4-hover-color );
1470
1534
  border-radius: 4px;
1471
1535
  }
1472
1536
 
@@ -1481,7 +1545,7 @@ textarea {
1481
1545
 
1482
1546
  .today {
1483
1547
  font-weight: bold;
1484
- background-color: @error-color;
1548
+ background-color: var( --x4-error-color );
1485
1549
 
1486
1550
  span {
1487
1551
  //border: 2px solid #013e69;
@@ -1506,7 +1570,7 @@ textarea {
1506
1570
  }
1507
1571
 
1508
1572
  .day:hover {
1509
- background-color: fadeout(@selection-color,50%);
1573
+ background-color: var( --x4-hover-color );
1510
1574
  color: white;
1511
1575
  }
1512
1576
  }
@@ -1790,7 +1854,7 @@ textarea {
1790
1854
 
1791
1855
  //&::before {
1792
1856
  // content: attr( icon );
1793
- // font-family: @fa-style-family;
1857
+ // font-family: var( --x4-icon-font-family );
1794
1858
  // display: inline-block;
1795
1859
  // width: 1em;
1796
1860
  // color: @BLACK40;
@@ -1835,7 +1899,7 @@ textarea {
1835
1899
  }
1836
1900
 
1837
1901
  .x-tooltip.error {
1838
- background-color: @error-color;
1902
+ background-color: var( --x4-error-color );
1839
1903
  padding: 0 6px;
1840
1904
  margin-left: 3px;
1841
1905
  position: absolute;
@@ -1872,7 +1936,7 @@ textarea {
1872
1936
 
1873
1937
  textarea {
1874
1938
  font-family: monospace;
1875
- font-size: @def-font-size;
1939
+ font-size: var( --x4-font-size );
1876
1940
  padding: 2px;
1877
1941
 
1878
1942
  resize: none;
@@ -1881,7 +1945,7 @@ textarea {
1881
1945
  width: 100%;
1882
1946
 
1883
1947
  &:focus {
1884
- border: 1px solid @selection-color
1948
+ border: 1px solid var( --x4-selection-color )
1885
1949
  }
1886
1950
 
1887
1951
  color: transparent;
@@ -1895,7 +1959,7 @@ textarea {
1895
1959
 
1896
1960
  .x-syntax-hiliter {
1897
1961
  font-family: monospace;
1898
- font-size: @def-font-size;
1962
+ font-size: var( --x4-font-size );
1899
1963
  padding: 2px;
1900
1964
  border: 1px solid transparent;
1901
1965
  overflow: hidden;