x4js 1.4.8 → 1.4.11

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 (173) hide show
  1. package/build.sh +5 -0
  2. package/lib/application.d.ts +15 -11
  3. package/lib/application.js +15 -11
  4. package/lib/base64.d.ts +15 -11
  5. package/lib/base64.js +15 -11
  6. package/lib/base_component.d.ts +18 -1
  7. package/lib/base_component.js +18 -1
  8. package/lib/button.d.ts +15 -11
  9. package/lib/button.js +15 -11
  10. package/lib/calendar.d.ts +15 -11
  11. package/lib/calendar.js +29 -22
  12. package/lib/canvas.d.ts +15 -11
  13. package/lib/canvas.js +15 -11
  14. package/lib/cardview.d.ts +15 -11
  15. package/lib/cardview.js +15 -11
  16. package/lib/checkbox.d.ts +17 -12
  17. package/lib/checkbox.js +18 -11
  18. package/lib/color.d.ts +15 -11
  19. package/lib/color.js +15 -11
  20. package/lib/colorpicker.d.ts +18 -11
  21. package/lib/colorpicker.js +18 -11
  22. package/lib/combobox.d.ts +15 -11
  23. package/lib/combobox.js +16 -12
  24. package/lib/component.d.ts +19 -15
  25. package/lib/component.js +19 -15
  26. package/lib/datastore.d.ts +15 -11
  27. package/lib/datastore.js +16 -12
  28. package/lib/dialog.d.ts +15 -11
  29. package/lib/dialog.js +19 -14
  30. package/lib/dom_events.d.ts +17 -1
  31. package/lib/dom_events.js +17 -1
  32. package/lib/drag_manager.d.ts +28 -0
  33. package/lib/drawtext.d.ts +15 -11
  34. package/lib/drawtext.js +15 -11
  35. package/lib/fileupload.d.ts +15 -11
  36. package/lib/fileupload.js +15 -11
  37. package/lib/form.d.ts +15 -11
  38. package/lib/form.js +15 -11
  39. package/lib/formatters.d.ts +15 -11
  40. package/lib/formatters.js +16 -11
  41. package/lib/gridview.d.ts +15 -11
  42. package/lib/gridview.js +59 -29
  43. package/lib/i18n.d.ts +15 -11
  44. package/lib/i18n.js +15 -11
  45. package/lib/icon.d.ts +20 -12
  46. package/lib/icon.js +107 -25
  47. package/lib/image.d.ts +15 -11
  48. package/lib/image.js +15 -11
  49. package/lib/index.d.ts +28 -0
  50. package/lib/index.js +28 -0
  51. package/lib/input.d.ts +15 -11
  52. package/lib/input.js +15 -11
  53. package/lib/label.d.ts +15 -11
  54. package/lib/label.js +15 -11
  55. package/lib/layout.d.ts +27 -17
  56. package/lib/layout.js +61 -18
  57. package/lib/link.d.ts +15 -11
  58. package/lib/link.js +15 -11
  59. package/lib/listview.d.ts +18 -14
  60. package/lib/listview.js +16 -23
  61. package/lib/md5.d.ts +16 -11
  62. package/lib/md5.js +16 -10
  63. package/lib/menu.d.ts +15 -11
  64. package/lib/menu.js +19 -12
  65. package/lib/messagebox.d.ts +15 -11
  66. package/lib/messagebox.js +17 -13
  67. package/lib/panel.d.ts +15 -11
  68. package/lib/panel.js +15 -11
  69. package/lib/popup.d.ts +15 -11
  70. package/lib/popup.js +20 -18
  71. package/lib/property_editor.d.ts +15 -11
  72. package/lib/property_editor.js +15 -11
  73. package/lib/radiobtn.d.ts +15 -11
  74. package/lib/radiobtn.js +15 -11
  75. package/lib/rating.d.ts +15 -11
  76. package/lib/rating.js +15 -11
  77. package/lib/request.d.ts +15 -11
  78. package/lib/request.js +16 -12
  79. package/lib/router.d.ts +28 -0
  80. package/lib/router.js +28 -0
  81. package/lib/settings.d.ts +15 -11
  82. package/lib/settings.js +15 -11
  83. package/lib/sidebarview.d.ts +15 -11
  84. package/lib/sidebarview.js +15 -11
  85. package/lib/smartedit.d.ts +15 -11
  86. package/lib/smartedit.js +15 -11
  87. package/lib/spreadsheet.d.ts +15 -11
  88. package/lib/spreadsheet.js +15 -11
  89. package/lib/styles.d.ts +16 -12
  90. package/lib/styles.js +21 -14
  91. package/lib/svgcomponent.d.ts +15 -11
  92. package/lib/svgcomponent.js +15 -11
  93. package/lib/tabbar.d.ts +17 -2
  94. package/lib/tabbar.js +17 -2
  95. package/lib/tabview.d.ts +15 -11
  96. package/lib/tabview.js +15 -11
  97. package/lib/textarea.d.ts +15 -11
  98. package/lib/textarea.js +15 -11
  99. package/lib/textedit.d.ts +15 -11
  100. package/lib/textedit.js +16 -12
  101. package/lib/texthiliter.d.ts +15 -11
  102. package/lib/texthiliter.js +15 -11
  103. package/lib/toaster.d.ts +15 -11
  104. package/lib/toaster.js +15 -11
  105. package/lib/tools.d.ts +15 -11
  106. package/lib/tools.js +17 -12
  107. package/lib/tooltips.d.ts +15 -11
  108. package/lib/tooltips.js +16 -12
  109. package/lib/treeview.d.ts +15 -11
  110. package/lib/treeview.js +15 -11
  111. package/{x4.css → lib/x4.css} +269 -106
  112. package/lib/x4_events.d.ts +17 -12
  113. package/lib/x4_events.js +24 -14
  114. package/package.json +5 -1
  115. package/src/MIT-license.md +14 -0
  116. package/src/application.ts +15 -11
  117. package/src/base64.ts +15 -11
  118. package/src/base_component.ts +18 -1
  119. package/src/button.ts +15 -11
  120. package/src/calendar.ts +30 -22
  121. package/src/canvas.ts +22 -18
  122. package/src/cardview.ts +15 -11
  123. package/src/checkbox.ts +21 -12
  124. package/src/color.ts +15 -11
  125. package/src/colorpicker.ts +19 -11
  126. package/src/combobox.ts +16 -12
  127. package/src/component.ts +21 -16
  128. package/src/datastore.ts +16 -12
  129. package/src/dialog.ts +19 -14
  130. package/src/dom_events.ts +17 -1
  131. package/src/drag_manager.ts +28 -0
  132. package/src/drawtext.ts +15 -11
  133. package/src/fileupload.ts +15 -11
  134. package/src/form.ts +15 -11
  135. package/src/formatters.ts +19 -12
  136. package/src/gridview.ts +76 -30
  137. package/src/i18n.ts +15 -11
  138. package/src/icon.ts +125 -33
  139. package/src/image.ts +15 -11
  140. package/src/index.ts +29 -0
  141. package/src/input.ts +15 -11
  142. package/src/label.ts +15 -11
  143. package/src/layout.ts +75 -20
  144. package/src/link.ts +15 -11
  145. package/src/listview.ts +18 -14
  146. package/src/md5.ts +16 -10
  147. package/src/menu.ts +19 -12
  148. package/src/messagebox.ts +17 -13
  149. package/src/panel.ts +15 -11
  150. package/src/popup.ts +20 -19
  151. package/src/property_editor.ts +15 -11
  152. package/src/radiobtn.ts +15 -11
  153. package/src/rating.ts +15 -11
  154. package/src/request.ts +16 -12
  155. package/src/router.ts +28 -0
  156. package/src/settings.ts +15 -11
  157. package/src/sidebarview.ts +15 -11
  158. package/src/smartedit.ts +15 -11
  159. package/src/spreadsheet.ts +15 -11
  160. package/src/styles.ts +23 -14
  161. package/src/svgcomponent.ts +15 -11
  162. package/src/tabbar.ts +17 -2
  163. package/src/tabview.ts +15 -11
  164. package/src/textarea.ts +15 -11
  165. package/src/textedit.ts +17 -13
  166. package/src/texthiliter.ts +15 -11
  167. package/src/toaster.ts +15 -11
  168. package/src/tools.ts +18 -12
  169. package/src/tooltips.ts +16 -12
  170. package/src/treeview.ts +15 -11
  171. package/src/x4.less +289 -120
  172. package/src/x4_events.ts +27 -16
  173. package/tsconfig.json +1 -1
@@ -1,6 +1,34 @@
1
+ /**
2
+ * ___ ___ __
3
+ * \ \_/ / / _
4
+ * \ / /_| |_
5
+ * / _ \____ _|
6
+ * /__/ \__\ |_|
7
+ *
8
+ * @file x4.less
9
+ * @author Etienne Cochard
10
+ *
11
+ * Copyright (c) 2019-2022 R-libre ingenierie
12
+ *
13
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
14
+ * of this software and associated documentation files (the "Software"), to deal
15
+ * in the Software without restriction, including without limitation the rights
16
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
17
+ * of the Software, and to permit persons to whom the Software is furnished to do so,
18
+ * subject to the following conditions:
19
+ * The above copyright notice and this permission notice shall be included in all copies
20
+ * or substantial portions of the Software.
21
+ *
22
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
23
+ * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
24
+ * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
25
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
27
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28
+ **/
1
29
  :root {
2
- --x4-font: "sans serif";
3
- --x4-font-size: "13px";
30
+ --x4-font: "Inter";
31
+ --x4-font-size: 13px;
4
32
  --x4-base-color: #266888;
5
33
  --x4-selection-color: #2458B3;
6
34
  --x4-hover-color: rgba(36, 88, 179, 0.9);
@@ -10,19 +38,122 @@
10
38
  --x4-success-color: #0A6640;
11
39
  --x4-form-color: white;
12
40
  --x4-tip-background: rgba(0, 0, 0, 0.5);
13
- --x4-button-color: #363636;
14
- --x4-button-border-color: #000000;
41
+ --x4-button-color: white;
42
+ --x4-button-text-color: #363636;
15
43
  --x4-scrollbar-width: 6px;
16
44
  --x4-scrollbar-background: white;
17
45
  --x4-scrollbar-thumb: grey;
18
46
  --x4-sizer-size: 4px;
19
- --x4-panel-border-color: rgba(0, 0, 0, 0.1);
20
- --x4-icon-font-family: var("fonteawesome");
21
- --x4-icon-circle-exclamation: "\f06a";
22
- --x4-icon-chevron-right: "\f054";
23
- --x4-icon-window-restore: "\f2d2";
24
- --x4-icon-arrow-down-long: "\f175";
25
- --x4-icon-arrow-up-long: "\f176";
47
+ --x4-default-border-color: rgba(0, 0, 0, 0.1);
48
+ --x4-icon-font-family: "fonteawesome";
49
+ --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>';
50
+ --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>';
51
+ --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>';
52
+ --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>';
53
+ --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>';
54
+ --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>';
55
+ --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>';
56
+ --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>';
57
+ --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>';
58
+ --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>';
59
+ --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>';
60
+ --x4-icon-calendar-days: 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" fill="currentColor"><path d="M160 32V64H288V32C288 14.33 302.3 0 320 0C337.7 0 352 14.33 352 32V64H400C426.5 64 448 85.49 448 112V160H0V112C0 85.49 21.49 64 48 64H96V32C96 14.33 110.3 0 128 0C145.7 0 160 14.33 160 32zM0 192H448V464C448 490.5 426.5 512 400 512H48C21.49 512 0 490.5 0 464V192zM64 304C64 312.8 71.16 320 80 320H112C120.8 320 128 312.8 128 304V272C128 263.2 120.8 256 112 256H80C71.16 256 64 263.2 64 272V304zM192 304C192 312.8 199.2 320 208 320H240C248.8 320 256 312.8 256 304V272C256 263.2 248.8 256 240 256H208C199.2 256 192 263.2 192 272V304zM336 256C327.2 256 320 263.2 320 272V304C320 312.8 327.2 320 336 320H368C376.8 320 384 312.8 384 304V272C384 263.2 376.8 256 368 256H336zM64 432C64 440.8 71.16 448 80 448H112C120.8 448 128 440.8 128 432V400C128 391.2 120.8 384 112 384H80C71.16 384 64 391.2 64 400V432zM208 384C199.2 384 192 391.2 192 400V432C192 440.8 199.2 448 208 448H240C248.8 448 256 440.8 256 432V400C256 391.2 248.8 384 240 384H208zM320 432C320 440.8 327.2 448 336 448H368C376.8 448 384 440.8 384 432V400C384 391.2 376.8 384 368 384H336C327.2 384 320 391.2 320 400V432z"/></svg>';
61
+ --x4-icon-tip: 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="currentColor"><path d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464zM296 336h-16V248C280 234.8 269.3 224 256 224H224C210.8 224 200 234.8 200 248S210.8 272 224 272h8v64h-16C202.8 336 192 346.8 192 360S202.8 384 216 384h80c13.25 0 24-10.75 24-24S309.3 336 296 336zM256 192c17.67 0 32-14.33 32-32c0-17.67-14.33-32-32-32S224 142.3 224 160C224 177.7 238.3 192 256 192z"/></svg>';
62
+ }
63
+ /* source: https://tailwindcss.com/docs/customizing-colors/#default-color-palette */
64
+ :root {
65
+ --black: #000000;
66
+ --white: #ffffff;
67
+ --gray-100: #f7fafc;
68
+ --gray-200: #edf2f7;
69
+ --gray-300: #e2e8f0;
70
+ --gray-400: #cbd5e0;
71
+ --gray-500: #a0aec0;
72
+ --gray-600: #718096;
73
+ --gray-700: #4a5568;
74
+ --gray-800: #2d3748;
75
+ --gray-900: #1a202c;
76
+ --red-100: #fff5f5;
77
+ --red-200: #fed7d7;
78
+ --red-300: #feb2b2;
79
+ --red-400: #fc8181;
80
+ --red-500: #f56565;
81
+ --red-600: #e53e3e;
82
+ --red-700: #c53030;
83
+ --red-800: #9b2c2c;
84
+ --red-900: #742a2a;
85
+ --orange-100: #fffaf0;
86
+ --orange-200: #feebc8;
87
+ --orange-300: #fbd38d;
88
+ --orange-400: #f6ad55;
89
+ --orange-500: #ed8936;
90
+ --orange-600: #dd6b20;
91
+ --orange-700: #c05621;
92
+ --orange-800: #9c4221;
93
+ --orange-900: #7b341e;
94
+ --yellow-100: #fffff0;
95
+ --yellow-200: #fefcbf;
96
+ --yellow-300: #faf089;
97
+ --yellow-400: #f6e05e;
98
+ --yellow-500: #ecc94b;
99
+ --yellow-600: #d69e2e;
100
+ --yellow-700: #b7791f;
101
+ --yellow-800: #975a16;
102
+ --yellow-900: #744210;
103
+ --green-100: #f0fff4;
104
+ --green-200: #c6f6d5;
105
+ --green-300: #9ae6b4;
106
+ --green-400: #68d391;
107
+ --green-500: #48bb78;
108
+ --green-600: #38a169;
109
+ --green-700: #2f855a;
110
+ --green-800: #276749;
111
+ --green-900: #22543d;
112
+ --teal-100: #e6fffa;
113
+ --teal-200: #b2f5ea;
114
+ --teal-300: #81e6d9;
115
+ --teal-400: #4fd1c5;
116
+ --teal-500: #38b2ac;
117
+ --teal-600: #319795;
118
+ --teal-700: #2c7a7b;
119
+ --teal-800: #285e61;
120
+ --teal-900: #234e52;
121
+ --blue-100: #ebf8ff;
122
+ --blue-200: #bee3f8;
123
+ --blue-300: #90cdf4;
124
+ --blue-400: #63b3ed;
125
+ --blue-500: #4299e1;
126
+ --blue-600: #3182ce;
127
+ --blue-700: #2b6cb0;
128
+ --blue-800: #2c5282;
129
+ --blue-900: #2a4365;
130
+ --indigo-100: #ebf4ff;
131
+ --indigo-200: #c3dafe;
132
+ --indigo-300: #a3bffa;
133
+ --indigo-400: #7f9cf5;
134
+ --indigo-500: #667eea;
135
+ --indigo-600: #5a67d8;
136
+ --indigo-700: #4c51bf;
137
+ --indigo-800: #434190;
138
+ --indigo-900: #3c366b;
139
+ --purple-100: #faf5ff;
140
+ --purple-200: #e9d8fd;
141
+ --purple-300: #d6bcfa;
142
+ --purple-400: #b794f4;
143
+ --purple-500: #9f7aea;
144
+ --purple-600: #805ad5;
145
+ --purple-700: #6b46c1;
146
+ --purple-800: #553c9a;
147
+ --purple-900: #44337a;
148
+ --pink-100: #fff5f7;
149
+ --pink-200: #fed7e2;
150
+ --pink-300: #fbb6ce;
151
+ --pink-400: #f687b3;
152
+ --pink-500: #ed64a6;
153
+ --pink-600: #d53f8c;
154
+ --pink-700: #b83280;
155
+ --pink-800: #97266d;
156
+ --pink-900: #702459;
26
157
  }
27
158
  .x4-root-element {
28
159
  padding: 0;
@@ -162,8 +293,12 @@ textarea::selection {
162
293
  font-family: var(--x4-icon-font-family);
163
294
  }
164
295
  .x-icon.x-svg-icon {
165
- width: 1em;
166
- height: 1em;
296
+ width: 1rem;
297
+ height: 1rem;
298
+ }
299
+ .x-icon.x-svg-icon > svg {
300
+ width: 100%;
301
+ height: 100%;
167
302
  }
168
303
  .x-base-button {
169
304
  display: flex;
@@ -171,23 +306,21 @@ textarea::selection {
171
306
  align-items: center;
172
307
  outline: none;
173
308
  cursor: pointer;
174
- height: 2.5em;
309
+ height: 2rem;
175
310
  padding: 8px;
176
- border: 1px solid var(--x4-button-border-color);
177
311
  overflow: hidden;
312
+ border: 1px solid var(--x4-default-border-color);
178
313
  background-color: var(--x4-button-color);
179
- color: rgba(255, 255, 255, 0.6);
314
+ color: var(--x4-button-text-color);
180
315
  }
181
316
  .x-base-button .x-icon {
182
317
  margin: 0 4px;
183
318
  color: inherit;
184
319
  }
185
- .x-base-button:not(.x-disable):focus {
186
- border-color: white;
187
- }
188
- .x-base-button:not(.x-disable).x-active {
320
+ .x-base-button:focus {
321
+ border-color: var(--x4-focus-color);
322
+ background-color: var(--x4-focus-color);
189
323
  color: white;
190
- background-color: rgba(255, 255, 255, 0.2);
191
324
  }
192
325
  .x-base-button.x-disable {
193
326
  color: gray;
@@ -293,7 +426,7 @@ textarea::selection {
293
426
  .x-text-edit > .x-label,
294
427
  .x-combo-box > .x-label {
295
428
  padding: 4px;
296
- color: rgba(0, 0, 0, 0.8);
429
+ color: var(--gray-900);
297
430
  margin-top: 1px;
298
431
  line-height: 1.3em;
299
432
  min-height: 2em;
@@ -311,8 +444,7 @@ textarea::selection {
311
444
  outline: none;
312
445
  border: none;
313
446
  padding: 4px;
314
- color: rgba(0, 0, 0, 0.9);
315
- background-color: rgba(255, 255, 255, 0.25);
447
+ color: var(--gray-900);
316
448
  border-bottom: 1px solid transparent;
317
449
  margin-top: 1px;
318
450
  line-height: 1.3em;
@@ -321,7 +453,7 @@ textarea::selection {
321
453
  .x-combo-box input::placeholder,
322
454
  .x-text-edit .x-fake-input::placeholder,
323
455
  .x-combo-box .x-fake-input::placeholder {
324
- color: rgba(255, 255, 255, 0.5);
456
+ color: var(--gray-800);
325
457
  }
326
458
  .x-text-edit input::selection,
327
459
  .x-combo-box input::selection,
@@ -330,28 +462,34 @@ textarea::selection {
330
462
  background-color: var(--x4-selection-color);
331
463
  color: #fff;
332
464
  }
333
- .x-text-edit:focus,
334
- .x-combo-box:focus {
335
- outline: none;
465
+ .x-text-edit input:focus,
466
+ .x-combo-box input:focus,
467
+ .x-text-edit .x-fake-input:focus,
468
+ .x-combo-box .x-fake-input:focus {
469
+ border-bottom-color: var(--x4-focus-color);
336
470
  }
337
- .x-text-edit:focus > .x-label,
338
- .x-combo-box:focus > .x-label {
471
+ .x-text-edit:focus-within > .x-label,
472
+ .x-combo-box:focus-within > .x-label {
339
473
  color: var(--x4-focus-color);
340
474
  }
341
475
  .x-text-edit .x-button.gadget,
342
476
  .x-combo-box .x-button.gadget {
477
+ background-color: transparent;
343
478
  font-size: var(--x4-font-size);
344
- background-color: rgba(0, 0, 0, 0.1);
479
+ color: var(--gray-900);
345
480
  border: none;
346
481
  margin: 0;
347
482
  padding: 0;
348
483
  height: 2em;
349
484
  margin-top: 1px;
350
485
  }
351
- .x-text-edit .x-button.gadget .x-icon,
352
- .x-combo-box .x-button.gadget .x-icon {
353
- font-size: 85%;
354
- padding-right: 2px;
486
+ .x-text-edit .x-button.gadget:hover,
487
+ .x-combo-box .x-button.gadget:hover {
488
+ background-color: transparent;
489
+ }
490
+ .x-text-edit .x-button.gadget:focus,
491
+ .x-combo-box .x-button.gadget:focus {
492
+ color: var(--x4-focus-color);
355
493
  }
356
494
  .x-text-edit:focus .x-button.gadget,
357
495
  .x-combo-box:focus .x-button.gadget,
@@ -384,15 +522,6 @@ textarea::selection {
384
522
  top: -2px;
385
523
  z-index: 1;
386
524
  }
387
- .x-text-edit .error-info:before,
388
- .x-combo-box .error-info:before {
389
- font-family: var(--x4-icon-font-family);
390
- content: var(--x4-icon-circle-exclamation);
391
- padding-right: 3px;
392
- position: absolute;
393
- left: 1px;
394
- top: 6px;
395
- }
396
525
  .x-text-edit.x-required .label1:before,
397
526
  .x-combo-box.x-required .label1:before {
398
527
  content: '*';
@@ -403,6 +532,10 @@ textarea::selection {
403
532
  border-bottom: none;
404
533
  border-left: 4px solid var(--x4-error-color);
405
534
  }
535
+ .x-text-edit .x-button.gadget {
536
+ margin-left: 1 px;
537
+ margin-right: 1 px;
538
+ }
406
539
  .x-combo-box > .x-label {
407
540
  border-top: 1px solid transparent;
408
541
  }
@@ -460,20 +593,24 @@ textarea::selection {
460
593
  .x-text-edit:focus .label1 {
461
594
  color: black;
462
595
  }
596
+ .x-radio-btn,
463
597
  .x-check-box {
464
598
  align-items: center;
465
- color: rgba(0, 0, 0, 0.8);
599
+ color: var(--gray-900);
466
600
  outline: none;
467
601
  padding: 4px 0;
468
602
  }
603
+ .x-radio-btn input,
469
604
  .x-check-box input {
470
605
  outline: none;
471
606
  margin: 4px;
472
607
  padding: 0;
473
608
  }
609
+ .x-radio-btn .x-label,
474
610
  .x-check-box .x-label {
475
611
  padding: 4px;
476
612
  }
613
+ .x-radio-btn:focus-within,
477
614
  .x-check-box:focus-within {
478
615
  text-decoration: underline;
479
616
  color: var(--x4-selection-color);
@@ -544,7 +681,7 @@ textarea::selection {
544
681
  align-items: center;
545
682
  outline: none;
546
683
  background-color: transparent;
547
- color: rgba(0, 0, 0, 0.8);
684
+ color: var(--gray-900);
548
685
  padding: 0px 8px;
549
686
  min-width: 120px;
550
687
  border: none;
@@ -552,22 +689,17 @@ textarea::selection {
552
689
  .x-menu-item .x-icon {
553
690
  width: 1em;
554
691
  margin-right: 8px;
555
- color: rgba(0, 0, 0, 0.3);
692
+ color: var(--gray-700);
556
693
  }
557
694
  .x-menu-item .x-label {
558
695
  padding: 4px;
559
696
  }
560
697
  .x-menu-item:hover {
561
698
  background-color: #c6d3d9;
562
- color: black;
699
+ color: var(--gray-900);
563
700
  }
564
701
  .x-menu-item:hover .x-icon {
565
- color: black;
566
- }
567
- .x-popup-menu-item:after {
568
- content: var(--x4-icon-chevron-right);
569
- font-family: var(--x4-icon-font-family);
570
- font-size: 80%;
702
+ color: var(--gray-900);
571
703
  }
572
704
  .x-menu-separator {
573
705
  margin-top: 4px;
@@ -611,10 +743,7 @@ textarea::selection {
611
743
  margin-right: var(--x4-scrollbar-width);
612
744
  }
613
745
  .x-list-view {
614
- border: 1px solid transparent;
615
- }
616
- .x-list-view:focus {
617
- outline: none;
746
+ border: 1px solid var(--x4-default-border-color);
618
747
  }
619
748
  .x-list-view .x-list-item {
620
749
  padding: 4px;
@@ -632,6 +761,10 @@ textarea::selection {
632
761
  .x-list-view .x-list-item:focus {
633
762
  outline: none;
634
763
  }
764
+ .x-list-view:focus {
765
+ outline: none;
766
+ border-color: var(--x4-focus-color);
767
+ }
635
768
  .x-list-view .gadgets {
636
769
  border-top: 1px solid rgba(0, 0, 0, 0.5);
637
770
  background-color: rgba(0, 0, 0, 0.1);
@@ -658,6 +791,8 @@ textarea::selection {
658
791
  .x-popup {
659
792
  position: absolute;
660
793
  z-index: 1000;
794
+ font-family: var(--x4-font);
795
+ font-size: var(--x4-font-size);
661
796
  }
662
797
  .x-popup:focus {
663
798
  outline: none;
@@ -666,7 +801,7 @@ textarea::selection {
666
801
  align-items: center;
667
802
  line-height: 1.5em;
668
803
  padding: 4px;
669
- border-bottom: 1px solid var(--x4-panel-border-color);
804
+ border-bottom: 1px solid var(--x4-default-border-color);
670
805
  }
671
806
  .x-panel > .title > .x-label {
672
807
  flex: 1;
@@ -678,7 +813,7 @@ textarea::selection {
678
813
  box-shadow: none;
679
814
  }
680
815
  .x-panel > .title > .x-button:focus {
681
- color: black;
816
+ color: var(--gray-900);
682
817
  }
683
818
  .x-panel > .body {
684
819
  padding: 8px;
@@ -691,26 +826,40 @@ textarea::selection {
691
826
  min-height: 100px;
692
827
  }
693
828
  .x-dialog > .title {
694
- height: 3rem;
829
+ height: 2rem;
695
830
  color: white;
696
831
  padding: 0 8px;
697
832
  display: flex;
698
833
  align-items: center;
834
+ background-color: var(--x4-selection-color);
699
835
  }
700
836
  .x-dialog > .title .x-icon {
701
- width: 1.7em;
837
+ width: 2em;
838
+ height: 1.9em;
839
+ padding: 4px;
702
840
  text-align: center;
703
841
  cursor: pointer;
704
842
  }
705
843
  .x-dialog > .title .x-icon:hover {
706
844
  background-color: rgba(255, 255, 255, 0.1);
707
845
  }
846
+ .x-dialog > .title .x-icon.close-btn:hover {
847
+ background-color: var(--x4-error-color);
848
+ color: white;
849
+ }
708
850
  .x-dialog > .title .x-label {
709
851
  border-bottom: none;
710
852
  padding: 0;
711
853
  }
712
- .x-dialog.maximized > .title .max-btn:before {
713
- content: var(--x4-icon-window-restore);
854
+ .x-dialog > .title .res-btn {
855
+ display: none;
856
+ }
857
+ .x-dialog.maximized > .title .min-btn,
858
+ .x-dialog.maximized > .title .max-btn {
859
+ display: none;
860
+ }
861
+ .x-dialog.maximized > .title .res-btn {
862
+ display: block;
714
863
  }
715
864
  .x-dialog.x-resized {
716
865
  display: flex;
@@ -800,13 +949,16 @@ textarea::selection {
800
949
  }
801
950
  .x-form {
802
951
  background-color: var(--x4-form-color);
803
- padding: 8px;
952
+ margin-block-end: 0;
953
+ padding: 8px 0;
804
954
  min-width: 250px;
805
955
  min-height: 50px;
806
- overflow: auto;
956
+ padding-right: 4px;
807
957
  }
808
958
  .x-form > .container {
809
959
  padding: 0px;
960
+ overflow: auto;
961
+ padding: 0 4px 0 8px;
810
962
  }
811
963
  .x-form > .footer {
812
964
  position: relative;
@@ -814,7 +966,7 @@ textarea::selection {
814
966
  bottom: 0;
815
967
  width: 100%;
816
968
  justify-content: flex-end;
817
- padding: 0px;
969
+ padding: 0px 4px 0 8px;
818
970
  margin-top: 8px;
819
971
  align-items: center;
820
972
  }
@@ -824,19 +976,6 @@ textarea::selection {
824
976
  .x-form > .footer .x-button:not(:first-child) {
825
977
  margin-left: 8px;
826
978
  }
827
- .x-button {
828
- background-color: rgba(255, 255, 255, 0.25);
829
- border-color: transparent;
830
- font-family: var(--x4-font);
831
- font-size: var(--x4-font-size);
832
- }
833
- .x-button .x-icon {
834
- width: 1.5em;
835
- }
836
- .x-button:focus {
837
- border-color: rgba(255, 255, 255, 0.4);
838
- color: black;
839
- }
840
979
  .x-hidden {
841
980
  display: none ! important;
842
981
  }
@@ -935,7 +1074,7 @@ textarea::selection {
935
1074
  overflow: hidden;
936
1075
  padding: 4px;
937
1076
  white-space: nowrap;
938
- color: black;
1077
+ color: var(--gray-900);
939
1078
  height: 2em;
940
1079
  }
941
1080
  .x-spreadsheet .x-footer,
@@ -957,25 +1096,41 @@ textarea::selection {
957
1096
  .x-grid-view .x-footer .x-cell,
958
1097
  .x-spreadsheet .x-header .x-cell,
959
1098
  .x-grid-view .x-header .x-cell {
960
- text-overflow: ellipsis;
961
1099
  border-right: 1px solid rgba(0, 0, 0, 0.1);
962
1100
  height: unset;
963
1101
  }
964
- .x-spreadsheet .x-footer .x-cell.sort:before,
965
- .x-grid-view .x-footer .x-cell.sort:before,
966
- .x-spreadsheet .x-header .x-cell.sort:before,
967
- .x-grid-view .x-header .x-cell.sort:before {
968
- content: var(--x4-icon-arrow-down-long);
969
- font-family: var(--x4-icon-font-family);
970
- padding-right: 4px;
1102
+ .x-spreadsheet .x-footer .x-cell span,
1103
+ .x-grid-view .x-footer .x-cell span,
1104
+ .x-spreadsheet .x-header .x-cell span,
1105
+ .x-grid-view .x-header .x-cell span {
1106
+ min-width: 0;
1107
+ text-transform: uppercase;
1108
+ text-overflow: ellipsis;
1109
+ overflow: hidden;
1110
+ font-weight: bold;
971
1111
  }
972
- .x-spreadsheet .x-footer .x-cell.sort.desc:before,
973
- .x-grid-view .x-footer .x-cell.sort.desc:before,
974
- .x-spreadsheet .x-header .x-cell.sort.desc:before,
975
- .x-grid-view .x-header .x-cell.sort.desc:before {
976
- content: var(--x4-icon-arrow-up-long);
977
- font-family: var(--x4-icon-font-family);
978
- padding-right: 4px;
1112
+ .x-spreadsheet .x-footer .x-cell.sort,
1113
+ .x-grid-view .x-footer .x-cell.sort,
1114
+ .x-spreadsheet .x-header .x-cell.sort,
1115
+ .x-grid-view .x-header .x-cell.sort {
1116
+ background-image: var(--x4-icon-arrow-down-long);
1117
+ background-repeat: no-repeat;
1118
+ background-size: 1rem 1rem;
1119
+ background-position: right 0 top 6px;
1120
+ padding-right: calc(1rem + 4px);
1121
+ height: 0.7rem;
1122
+ opacity: 0.7;
1123
+ }
1124
+ .x-spreadsheet .x-footer .x-cell.sort.desc,
1125
+ .x-grid-view .x-footer .x-cell.sort.desc,
1126
+ .x-spreadsheet .x-header .x-cell.sort.desc,
1127
+ .x-grid-view .x-header .x-cell.sort.desc {
1128
+ background-image: var(--x4-icon-arrow-up-long);
1129
+ }
1130
+ .x-spreadsheet .x-header .x-cell,
1131
+ .x-grid-view .x-header .x-cell {
1132
+ display: flex;
1133
+ align-items: center;
979
1134
  }
980
1135
  .x-spreadsheet .x-row,
981
1136
  .x-grid-view .x-row {
@@ -1097,14 +1252,14 @@ textarea::selection {
1097
1252
  background-color: white;
1098
1253
  color: white;
1099
1254
  padding-left: 24px;
1100
- font-size: 0.8rem;
1101
- font-weight: 300;
1255
+ font-family: var(--x4-font);
1256
+ font-size: var(--x4-font-size);
1102
1257
  }
1103
1258
  .x-tooltip .x-icon {
1104
1259
  position: absolute;
1105
- left: 6px;
1260
+ left: 5px;
1106
1261
  top: 7px;
1107
- color: var(--x4-tip-background);
1262
+ color: var(--x4-selection-color);
1108
1263
  }
1109
1264
  .x-tooltip .x-label {
1110
1265
  background-color: var(--x4-selection-color);
@@ -1139,6 +1294,7 @@ textarea::selection {
1139
1294
  overflow-y: auto;
1140
1295
  }
1141
1296
  .x-popup-list-view {
1297
+ box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.4);
1142
1298
  background-color: white;
1143
1299
  }
1144
1300
  .x-popup-list-view .x-combo-popup {
@@ -1146,7 +1302,7 @@ textarea::selection {
1146
1302
  max-height: 400px;
1147
1303
  border: 1px solid #00000073;
1148
1304
  overflow: auto;
1149
- color: black;
1305
+ color: var(--gray-900);
1150
1306
  }
1151
1307
  .x-popup-list-view .x-combo-popup .x-list-item {
1152
1308
  height: 2em;
@@ -1181,18 +1337,19 @@ textarea::selection {
1181
1337
  }
1182
1338
  .x-calendar .month-sel .x-button {
1183
1339
  height: auto;
1184
- color: black;
1340
+ color: var(--gray-900);
1185
1341
  }
1186
1342
  .x-calendar .week {
1187
1343
  align-items: center;
1344
+ border: 1px solid transparent;
1188
1345
  }
1189
1346
  .x-calendar .week:hover {
1190
- background-color: var(--x4-hover-color);
1347
+ border-color: var(--x4-hover-color);
1191
1348
  border-radius: 4px;
1192
1349
  }
1193
1350
  .x-calendar .week .cell {
1194
1351
  height: 100%;
1195
- color: rgba(0, 0, 0, 0.7);
1352
+ color: var(--gray-900);
1196
1353
  text-align: center;
1197
1354
  }
1198
1355
  .x-calendar .week .cell span {
@@ -1222,7 +1379,7 @@ textarea::selection {
1222
1379
  color: white;
1223
1380
  }
1224
1381
  .x-calendar .header .cell {
1225
- color: rgba(0, 0, 0, 0.5);
1382
+ color: var(--gray-800);
1226
1383
  height: 1.5em;
1227
1384
  }
1228
1385
  .x-calendar .header:hover {
@@ -1496,7 +1653,7 @@ textarea::selection {
1496
1653
  width: 100%;
1497
1654
  color: transparent;
1498
1655
  background-color: transparent;
1499
- caret-color: black;
1656
+ color: var(--gray-900);
1500
1657
  -moz-tab-size: 4;
1501
1658
  -o-tab-size: 4;
1502
1659
  tab-size: 4;
@@ -1539,3 +1696,9 @@ textarea::selection {
1539
1696
  left: 0;
1540
1697
  right: 0;
1541
1698
  }
1699
+ .x-masonry {
1700
+ display: grid;
1701
+ grid-gap: 10px;
1702
+ grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
1703
+ grid-auto-rows: 10px;
1704
+ }