x4js 1.6.5 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. package/README.md +3 -14
  2. package/lib/README.txt +3 -14
  3. package/lib/src/assets/house-light.svg +1 -0
  4. package/lib/src/assets/radio.svg +4 -0
  5. package/lib/src/components/base.scss +26 -0
  6. package/lib/src/components/boxes/boxes.module.scss +37 -0
  7. package/lib/src/components/boxes/boxes.ts +125 -0
  8. package/lib/src/components/btngroup/btngroup.module.scss +29 -0
  9. package/lib/src/components/btngroup/btngroup.ts +106 -0
  10. package/lib/src/components/button/button.module.scss +154 -0
  11. package/lib/src/components/button/button.ts +117 -0
  12. package/lib/src/components/calendar/calendar-check-sharp-light.svg +1 -0
  13. package/lib/src/components/calendar/calendar.module.scss +163 -0
  14. package/lib/src/{calendar.ts → components/calendar/calendar.ts} +81 -83
  15. package/lib/src/components/calendar/chevron-left-sharp-light.svg +1 -0
  16. package/lib/src/components/calendar/chevron-right-sharp-light.svg +1 -0
  17. package/lib/src/components/checkbox/check.svg +4 -0
  18. package/lib/src/components/checkbox/checkbox.module.scss +142 -0
  19. package/lib/src/components/checkbox/checkbox.ts +125 -0
  20. package/lib/src/components/colorinput/colorinput.module.scss +65 -0
  21. package/lib/src/components/colorinput/colorinput.ts +88 -0
  22. package/lib/src/components/colorinput/crosshairs-simple-sharp-light.svg +1 -0
  23. package/lib/src/components/colorpicker/colorpicker.module.scss +133 -0
  24. package/lib/src/components/colorpicker/colorpicker.ts +477 -0
  25. package/lib/src/components/combobox/combobox.module.scss +121 -0
  26. package/lib/src/components/combobox/combobox.ts +190 -0
  27. package/lib/src/components/combobox/updown.svg +4 -0
  28. package/lib/src/components/dialog/dialog.module.scss +71 -0
  29. package/lib/src/components/dialog/dialog.ts +91 -0
  30. package/lib/src/components/dialog/xmark-sharp-light.svg +1 -0
  31. package/lib/src/components/form/form.module.scss +34 -0
  32. package/lib/src/components/form/form.ts +36 -0
  33. package/lib/src/components/header/header.module.scss +40 -0
  34. package/lib/src/components/header/header.ts +124 -0
  35. package/lib/src/components/icon/icon.module.scss +30 -0
  36. package/lib/src/components/icon/icon.ts +134 -0
  37. package/lib/src/components/image/image.module.scss +21 -0
  38. package/lib/src/components/image/image.ts +67 -0
  39. package/lib/src/components/input/input.module.scss +69 -0
  40. package/lib/src/components/input/input.ts +274 -0
  41. package/lib/src/components/label/label.module.scss +52 -0
  42. package/lib/src/components/label/label.ts +55 -0
  43. package/lib/src/components/listbox/listbox.module.scss +103 -0
  44. package/lib/src/components/listbox/listbox.ts +427 -0
  45. package/lib/src/components/menu/caret-right-solid.svg +1 -0
  46. package/lib/src/components/menu/menu.module.scss +108 -0
  47. package/lib/src/components/menu/menu.ts +168 -0
  48. package/lib/src/components/messages/circle-exclamation.svg +1 -0
  49. package/lib/src/components/messages/messages.module.scss +47 -0
  50. package/lib/src/components/messages/messages.ts +64 -0
  51. package/lib/src/components/normalize.scss +386 -0
  52. package/lib/src/components/notification/circle-check-solid.svg +1 -0
  53. package/lib/src/components/notification/circle-exclamation-solid.svg +1 -0
  54. package/lib/src/components/notification/circle-notch-light.svg +1 -0
  55. package/lib/src/components/notification/notification.module.scss +82 -0
  56. package/lib/src/components/notification/notification.ts +108 -0
  57. package/lib/src/components/notification/xmark-sharp-light.svg +1 -0
  58. package/lib/src/components/panel/panel.module.scss +48 -0
  59. package/lib/src/components/panel/panel.ts +57 -0
  60. package/lib/src/components/popup/popup.module.scss +43 -0
  61. package/lib/src/components/popup/popup.ts +395 -0
  62. package/lib/src/components/progress/progress.module.scss +57 -0
  63. package/lib/src/components/progress/progress.ts +43 -0
  64. package/lib/src/components/rating/rating.module.scss +23 -0
  65. package/lib/src/components/rating/rating.ts +125 -0
  66. package/lib/src/components/rating/star-sharp-light.svg +1 -0
  67. package/lib/src/components/rating/star-sharp-solid.svg +1 -0
  68. package/lib/src/components/shared.scss +76 -0
  69. package/lib/src/components/sizers/sizer.module.scss +90 -0
  70. package/lib/src/components/sizers/sizer.ts +120 -0
  71. package/lib/src/components/slider/slider.module.scss +71 -0
  72. package/lib/src/components/slider/slider.ts +143 -0
  73. package/lib/src/components/switch/switch.module.scss +127 -0
  74. package/lib/src/components/switch/switch.ts +56 -0
  75. package/lib/src/components/tabs/tabs.module.scss +46 -0
  76. package/lib/src/components/tabs/tabs.ts +157 -0
  77. package/lib/src/components/textarea/textarea.module.scss +59 -0
  78. package/lib/src/components/textarea/textarea.ts +54 -0
  79. package/lib/src/components/textedit/textedit.module.scss +114 -0
  80. package/lib/src/components/textedit/textedit.ts +82 -0
  81. package/lib/src/components/themes.scss +77 -0
  82. package/lib/src/components/tooltips/circle-info-sharp-light.svg +1 -0
  83. package/lib/src/components/tooltips/tooltips.scss +51 -0
  84. package/lib/src/components/tooltips/tooltips.ts +103 -0
  85. package/lib/src/components/treeview/chevron-down-light.svg +1 -0
  86. package/lib/src/components/treeview/treeview.module.scss +116 -0
  87. package/lib/src/components/treeview/treeview.ts +403 -0
  88. package/lib/src/components/viewport/viewport.module.scss +25 -0
  89. package/lib/src/components/viewport/viewport.ts +38 -0
  90. package/lib/src/core/component.ts +979 -0
  91. package/lib/src/core/core_colors.ts +250 -0
  92. package/lib/src/{dom_events.ts → core/core_dom.ts} +195 -39
  93. package/lib/src/{drag_manager.ts → core/core_dragdrop.ts} +29 -44
  94. package/lib/src/core/core_element.ts +98 -0
  95. package/lib/src/core/core_events.ts +149 -0
  96. package/lib/src/{i18n.ts → core/core_i18n.ts} +43 -42
  97. package/lib/src/{router.ts → core/core_router.ts} +27 -40
  98. package/lib/src/core/core_styles.ts +215 -0
  99. package/lib/src/core/core_svg.ts +550 -0
  100. package/lib/src/core/core_tools.ts +673 -0
  101. package/lib/src/main.scss +21 -0
  102. package/lib/src/main.tsx +323 -0
  103. package/lib/src/x4.scss +19 -0
  104. package/lib/types/x4.d.ts +2624 -0
  105. package/package.json +67 -59
  106. package/scripts/build.mjs +351 -0
  107. package/scripts/prepack.mjs +15 -0
  108. package/src/assets/house-light.svg +1 -0
  109. package/src/assets/radio.svg +4 -0
  110. package/src/components/base.scss +26 -0
  111. package/src/components/boxes/boxes.module.scss +37 -0
  112. package/src/components/boxes/boxes.ts +125 -0
  113. package/src/components/btngroup/btngroup.module.scss +29 -0
  114. package/src/components/btngroup/btngroup.ts +106 -0
  115. package/src/components/button/button.module.scss +154 -0
  116. package/src/components/button/button.ts +117 -0
  117. package/src/components/calendar/calendar-check-sharp-light.svg +1 -0
  118. package/src/components/calendar/calendar.module.scss +163 -0
  119. package/src/components/calendar/calendar.ts +326 -0
  120. package/src/components/calendar/chevron-left-sharp-light.svg +1 -0
  121. package/src/components/calendar/chevron-right-sharp-light.svg +1 -0
  122. package/src/components/checkbox/check.svg +4 -0
  123. package/src/components/checkbox/checkbox.module.scss +142 -0
  124. package/src/components/checkbox/checkbox.ts +125 -0
  125. package/src/components/colorinput/colorinput.module.scss +65 -0
  126. package/src/components/colorinput/colorinput.ts +88 -0
  127. package/src/components/colorinput/crosshairs-simple-sharp-light.svg +1 -0
  128. package/src/components/colorpicker/colorpicker.module.scss +133 -0
  129. package/src/components/colorpicker/colorpicker.ts +477 -0
  130. package/src/components/combobox/combobox.module.scss +121 -0
  131. package/src/components/combobox/combobox.ts +190 -0
  132. package/src/components/combobox/updown.svg +4 -0
  133. package/src/components/dialog/dialog.module.scss +71 -0
  134. package/src/components/dialog/dialog.ts +91 -0
  135. package/src/components/dialog/xmark-sharp-light.svg +1 -0
  136. package/src/components/form/form.module.scss +34 -0
  137. package/src/components/form/form.ts +36 -0
  138. package/src/components/header/header.module.scss +40 -0
  139. package/src/components/header/header.ts +124 -0
  140. package/src/components/icon/icon.module.scss +30 -0
  141. package/src/components/icon/icon.ts +134 -0
  142. package/src/components/image/image.module.scss +21 -0
  143. package/src/components/image/image.ts +67 -0
  144. package/src/components/input/input.module.scss +69 -0
  145. package/src/components/input/input.ts +274 -0
  146. package/src/components/label/label.module.scss +52 -0
  147. package/src/components/label/label.ts +55 -0
  148. package/src/components/listbox/listbox.module.scss +103 -0
  149. package/src/components/listbox/listbox.ts +427 -0
  150. package/src/components/menu/caret-right-solid.svg +1 -0
  151. package/src/components/menu/menu.module.scss +108 -0
  152. package/src/components/menu/menu.ts +168 -0
  153. package/src/components/messages/circle-exclamation.svg +1 -0
  154. package/src/components/messages/messages.module.scss +47 -0
  155. package/src/components/messages/messages.ts +64 -0
  156. package/src/components/normalize.scss +386 -0
  157. package/src/components/notification/circle-check-solid.svg +1 -0
  158. package/src/components/notification/circle-exclamation-solid.svg +1 -0
  159. package/src/components/notification/circle-notch-light.svg +1 -0
  160. package/src/components/notification/notification.module.scss +82 -0
  161. package/src/components/notification/notification.ts +108 -0
  162. package/src/components/notification/xmark-sharp-light.svg +1 -0
  163. package/src/components/panel/panel.module.scss +48 -0
  164. package/src/components/panel/panel.ts +57 -0
  165. package/src/components/popup/popup.module.scss +43 -0
  166. package/src/components/popup/popup.ts +395 -0
  167. package/src/components/progress/progress.module.scss +57 -0
  168. package/src/components/progress/progress.ts +43 -0
  169. package/src/components/rating/rating.module.scss +23 -0
  170. package/src/components/rating/rating.ts +125 -0
  171. package/src/components/rating/star-sharp-light.svg +1 -0
  172. package/src/components/rating/star-sharp-solid.svg +1 -0
  173. package/src/components/shared.scss +76 -0
  174. package/src/components/sizers/sizer.module.scss +90 -0
  175. package/src/components/sizers/sizer.ts +120 -0
  176. package/src/components/slider/slider.module.scss +71 -0
  177. package/src/components/slider/slider.ts +143 -0
  178. package/src/components/switch/switch.module.scss +127 -0
  179. package/src/components/switch/switch.ts +56 -0
  180. package/src/components/tabs/tabs.module.scss +46 -0
  181. package/src/components/tabs/tabs.ts +157 -0
  182. package/src/components/textarea/textarea.module.scss +59 -0
  183. package/src/components/textarea/textarea.ts +54 -0
  184. package/src/components/textedit/textedit.module.scss +114 -0
  185. package/src/components/textedit/textedit.ts +82 -0
  186. package/src/components/themes.scss +77 -0
  187. package/src/components/tooltips/circle-info-sharp-light.svg +1 -0
  188. package/src/components/tooltips/tooltips.scss +51 -0
  189. package/src/components/tooltips/tooltips.ts +103 -0
  190. package/src/components/treeview/chevron-down-light.svg +1 -0
  191. package/src/components/treeview/treeview.module.scss +116 -0
  192. package/src/components/treeview/treeview.ts +403 -0
  193. package/src/components/viewport/viewport.module.scss +25 -0
  194. package/src/components/viewport/viewport.ts +38 -0
  195. package/src/core/component.ts +979 -0
  196. package/src/core/core_colors.ts +250 -0
  197. package/src/core/core_dom.ts +471 -0
  198. package/src/core/core_dragdrop.ts +201 -0
  199. package/src/core/core_element.ts +98 -0
  200. package/src/core/core_events.ts +149 -0
  201. package/src/core/core_i18n.ts +377 -0
  202. package/src/core/core_router.ts +221 -0
  203. package/src/core/core_styles.ts +215 -0
  204. package/src/core/core_svg.ts +550 -0
  205. package/src/core/core_tools.ts +673 -0
  206. package/src/main.scss +21 -0
  207. package/src/main.tsx +323 -0
  208. package/src/x4.scss +19 -0
  209. package/tsconfig.json +14 -0
  210. package/types/scss.d.ts +4 -0
  211. package/types/svg.d.ts +4 -0
  212. package/types/x4react.d.ts +9 -0
  213. package/lib/changelog.txt +0 -23
  214. package/lib/cjs/x4js.js +0 -39
  215. package/lib/cjs/x4js.js.map +0 -7
  216. package/lib/esm/x4js.mjs +0 -15972
  217. package/lib/esm/x4js.mjs.map +0 -7
  218. package/lib/licence.md +0 -21
  219. package/lib/src/MIT-license.md +0 -14
  220. package/lib/src/action.ts +0 -88
  221. package/lib/src/alpha.jpg +0 -0
  222. package/lib/src/app_sockets.ts +0 -81
  223. package/lib/src/application.ts +0 -262
  224. package/lib/src/autocomplete.ts +0 -232
  225. package/lib/src/base64.ts +0 -166
  226. package/lib/src/base_component.ts +0 -152
  227. package/lib/src/button.ts +0 -355
  228. package/lib/src/canvas.ts +0 -510
  229. package/lib/src/cardview.ts +0 -228
  230. package/lib/src/checkbox.ts +0 -188
  231. package/lib/src/color.ts +0 -752
  232. package/lib/src/colorpicker.ts +0 -1649
  233. package/lib/src/combobox.ts +0 -512
  234. package/lib/src/component.ts +0 -2367
  235. package/lib/src/copyright.txt +0 -27
  236. package/lib/src/datastore.ts +0 -1302
  237. package/lib/src/dialog.ts +0 -656
  238. package/lib/src/drawtext.ts +0 -355
  239. package/lib/src/fileupload.ts +0 -213
  240. package/lib/src/form.ts +0 -413
  241. package/lib/src/formatters.ts +0 -105
  242. package/lib/src/gridview.ts +0 -1185
  243. package/lib/src/icon.ts +0 -362
  244. package/lib/src/image.ts +0 -225
  245. package/lib/src/index.ts +0 -89
  246. package/lib/src/input.ts +0 -297
  247. package/lib/src/label.ts +0 -153
  248. package/lib/src/layout.ts +0 -442
  249. package/lib/src/link.ts +0 -86
  250. package/lib/src/listview.ts +0 -765
  251. package/lib/src/md5.ts +0 -438
  252. package/lib/src/menu.ts +0 -425
  253. package/lib/src/messagebox.ts +0 -224
  254. package/lib/src/panel.ts +0 -86
  255. package/lib/src/popup.ts +0 -494
  256. package/lib/src/property_editor.ts +0 -337
  257. package/lib/src/radiobtn.ts +0 -197
  258. package/lib/src/rating.ts +0 -135
  259. package/lib/src/request.ts +0 -300
  260. package/lib/src/settings.ts +0 -77
  261. package/lib/src/sidebarview.ts +0 -108
  262. package/lib/src/spreadsheet.ts +0 -1449
  263. package/lib/src/styles.ts +0 -343
  264. package/lib/src/svgcomponent.ts +0 -592
  265. package/lib/src/tabbar.ts +0 -151
  266. package/lib/src/tabview.ts +0 -110
  267. package/lib/src/textarea.ts +0 -235
  268. package/lib/src/textedit.ts +0 -533
  269. package/lib/src/toaster.ts +0 -80
  270. package/lib/src/tools.ts +0 -1473
  271. package/lib/src/tooltips.ts +0 -191
  272. package/lib/src/treeview.ts +0 -716
  273. package/lib/src/version.ts +0 -30
  274. package/lib/src/x4.less +0 -2242
  275. package/lib/src/x4dom.ts +0 -57
  276. package/lib/src/x4events.ts +0 -585
  277. package/lib/src/x4js.ts +0 -89
  278. package/lib/src/x4react.ts +0 -90
  279. package/lib/styles/x4.css +0 -1785
  280. package/lib/styles/x4.less +0 -2242
  281. package/lib/types/x4js.d.ts +0 -6728
  282. package/license.md +0 -21
package/lib/styles/x4.css DELETED
@@ -1,1785 +0,0 @@
1
- /**
2
- * ___ ___ __
3
- * \ \_/ / / _
4
- * \ / /_| |_
5
- * / _ \____ _|
6
- * /__/ \__\ |_|
7
- *
8
- * @file x4.less
9
- * @author Etienne Cochard
10
- *
11
- * Copyright (c) 2019-2023 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
- **/
29
- :root {
30
- --x4-font: Helvetica, Arial, Sans-Serif;
31
- --x4-font-size: 13px;
32
- --x4-base-color: #266888;
33
- --x4-selection-color: #2458B3;
34
- --x4-selection-text: white;
35
- --x4-hover-color: rgba(36, 88, 179, 0.9);
36
- --x4-hover-text: white;
37
- --x4-mask-color: rgba(36, 88, 179, 0.6);
38
- --x4-focus-color: #2458B3;
39
- --x4-error-color: #b92a09;
40
- --x4-success-color: #0A6640;
41
- --x4-form-color: white;
42
- --x4-tip-background: rgba(0, 0, 0, 0.5);
43
- --x4-button-color: white;
44
- --x4-button-text-color: #363636;
45
- --x4-scrollbar-width: 6px;
46
- --x4-scrollbar-background: white;
47
- --x4-scrollbar-thumb: grey;
48
- --x4-sizer-size: 4px;
49
- --x4-default-border-color: rgba(0, 0, 0, 0.1);
50
- --x4-icon-font-family: "fonteawesome";
51
- --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>';
52
- --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>';
53
- --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>';
54
- --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>';
55
- --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>';
56
- --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>';
57
- --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>';
58
- --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>';
59
- --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>';
60
- --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>';
61
- --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>';
62
- --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>';
63
- --x4-icon-check: 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" fill="currentColor"><path d="M440.1 103C450.3 112.4 450.3 127.6 440.1 136.1L176.1 400.1C167.6 410.3 152.4 410.3 143 400.1L7.029 264.1C-2.343 255.6-2.343 240.4 7.029 231C16.4 221.7 31.6 221.7 40.97 231L160 350.1L407 103C416.4 93.66 431.6 93.66 440.1 103V103z"/></svg>';
64
- --x4-icon-uncheck: 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" fill="currentColor"></svg>';
65
- --x4-icon-folder-closed: 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="currentColor"><path d="M448 96h-172.1L226.7 50.75C214.7 38.74 198.5 32 181.5 32H64C28.65 32 0 60.66 0 96v320c0 35.34 28.65 64 64 64h384c35.35 0 64-28.66 64-64V160C512 124.7 483.3 96 448 96zM64 80h117.5c4.273 0 8.293 1.664 11.31 4.688L256 144h192c8.822 0 16 7.176 16 16v32h-416V96C48 87.18 55.18 80 64 80zM448 432H64c-8.822 0-16-7.176-16-16V240h416V416C464 424.8 456.8 432 448 432z"/></svg>';
66
- --x4-icon-folder-opened: 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" fill="currentColor"><path d="M572.6 270.3l-96 192C471.2 473.2 460.1 480 447.1 480H64c-35.35 0-64-28.66-64-64V96c0-35.34 28.65-64 64-64h117.5c16.97 0 33.25 6.742 45.26 18.75L275.9 96H416c35.35 0 64 28.66 64 64v32h-48V160c0-8.824-7.178-16-16-16H256L192.8 84.69C189.8 81.66 185.8 80 181.5 80H64C55.18 80 48 87.18 48 96v288l71.16-142.3C124.6 230.8 135.7 224 147.8 224h396.2C567.7 224 583.2 249 572.6 270.3z"/></svg>';
67
- --x4-icon-chevron-down: 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" fill="currentColor"><path d="M432.6 209.3l-191.1 183.1C235.1 397.8 229.1 400 224 400s-11.97-2.219-16.59-6.688L15.41 209.3C5.814 200.2 5.502 184.1 14.69 175.4c9.125-9.625 24.38-9.938 33.91-.7187L224 342.8l175.4-168c9.5-9.219 24.78-8.906 33.91 .7187C442.5 184.1 442.2 200.2 432.6 209.3z"/></svg>';
68
- --x4-icon-chevron-right: 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512" fill="currentColor"><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>';
69
- --x4-icon-chevron-left: 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512" fill="currentColor"><path d="M206.7 464.6l-183.1-191.1C18.22 267.1 16 261.1 16 256s2.219-11.97 6.688-16.59l183.1-191.1c9.152-9.594 24.34-9.906 33.9-.7187c9.625 9.125 9.938 24.37 .7187 33.91L73.24 256l168 175.4c9.219 9.5 8.906 24.78-.7187 33.91C231 474.5 215.8 474.2 206.7 464.6z"/></svg>';
70
- --x4-icon-chevron-up: 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" fill="currentColor"><path d="M15.41 302.7l191.1-183.1C212 114.2 218 111.1 224 111.1s11.97 2.219 16.59 6.688l191.1 183.1c9.594 9.152 9.906 24.34 .7187 33.9c-9.125 9.625-24.38 9.938-33.91 .7187L224 169.2l-175.4 168c-9.5 9.219-24.78 8.906-33.91-.7187C5.502 327 5.814 311.8 15.41 302.7z"/></svg>';
71
- --x4-icon-square-check: 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" fill="currentColor"><path d="M211.8 339.8C200.9 350.7 183.1 350.7 172.2 339.8L108.2 275.8C97.27 264.9 97.27 247.1 108.2 236.2C119.1 225.3 136.9 225.3 147.8 236.2L192 280.4L300.2 172.2C311.1 161.3 328.9 161.3 339.8 172.2C350.7 183.1 350.7 200.9 339.8 211.8L211.8 339.8zM0 96C0 60.65 28.65 32 64 32H384C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96zM48 96V416C48 424.8 55.16 432 64 432H384C392.8 432 400 424.8 400 416V96C400 87.16 392.8 80 384 80H64C55.16 80 48 87.16 48 96z"/></svg>';
72
- --x4-icon-square: 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" fill="currentColor"><path d="M384 32C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H384zM384 64H64C46.33 64 32 78.33 32 96V416C32 433.7 46.33 448 64 448H384C401.7 448 416 433.7 416 416V96C416 78.33 401.7 64 384 64z"/></svg>';
73
- }
74
- /* source: https://tailwindcss.com/docs/customizing-colors/#default-color-palette */
75
- :root {
76
- --black: #000000;
77
- --white: #ffffff;
78
- --gray-100: #f7fafc;
79
- --gray-200: #edf2f7;
80
- --gray-300: #e2e8f0;
81
- --gray-400: #cbd5e0;
82
- --gray-500: #a0aec0;
83
- --gray-600: #718096;
84
- --gray-700: #4a5568;
85
- --gray-800: #2d3748;
86
- --gray-900: #1a202c;
87
- --red-100: #fff5f5;
88
- --red-200: #fed7d7;
89
- --red-300: #feb2b2;
90
- --red-400: #fc8181;
91
- --red-500: #f56565;
92
- --red-600: #e53e3e;
93
- --red-700: #c53030;
94
- --red-800: #9b2c2c;
95
- --red-900: #742a2a;
96
- --orange-100: #fffaf0;
97
- --orange-200: #feebc8;
98
- --orange-300: #fbd38d;
99
- --orange-400: #f6ad55;
100
- --orange-500: #ed8936;
101
- --orange-600: #dd6b20;
102
- --orange-700: #c05621;
103
- --orange-800: #9c4221;
104
- --orange-900: #7b341e;
105
- --yellow-100: #fffff0;
106
- --yellow-200: #fefcbf;
107
- --yellow-300: #faf089;
108
- --yellow-400: #f6e05e;
109
- --yellow-500: #ecc94b;
110
- --yellow-600: #d69e2e;
111
- --yellow-700: #b7791f;
112
- --yellow-800: #975a16;
113
- --yellow-900: #744210;
114
- --green-100: #f0fff4;
115
- --green-200: #c6f6d5;
116
- --green-300: #9ae6b4;
117
- --green-400: #68d391;
118
- --green-500: #48bb78;
119
- --green-600: #38a169;
120
- --green-700: #2f855a;
121
- --green-800: #276749;
122
- --green-900: #22543d;
123
- --teal-100: #e6fffa;
124
- --teal-200: #b2f5ea;
125
- --teal-300: #81e6d9;
126
- --teal-400: #4fd1c5;
127
- --teal-500: #38b2ac;
128
- --teal-600: #319795;
129
- --teal-700: #2c7a7b;
130
- --teal-800: #285e61;
131
- --teal-900: #234e52;
132
- --blue-100: #ebf8ff;
133
- --blue-200: #bee3f8;
134
- --blue-300: #90cdf4;
135
- --blue-400: #63b3ed;
136
- --blue-500: #4299e1;
137
- --blue-600: #3182ce;
138
- --blue-700: #2b6cb0;
139
- --blue-800: #2c5282;
140
- --blue-900: #2a4365;
141
- --indigo-100: #ebf4ff;
142
- --indigo-200: #c3dafe;
143
- --indigo-300: #a3bffa;
144
- --indigo-400: #7f9cf5;
145
- --indigo-500: #667eea;
146
- --indigo-600: #5a67d8;
147
- --indigo-700: #4c51bf;
148
- --indigo-800: #434190;
149
- --indigo-900: #3c366b;
150
- --purple-100: #faf5ff;
151
- --purple-200: #e9d8fd;
152
- --purple-300: #d6bcfa;
153
- --purple-400: #b794f4;
154
- --purple-500: #9f7aea;
155
- --purple-600: #805ad5;
156
- --purple-700: #6b46c1;
157
- --purple-800: #553c9a;
158
- --purple-900: #44337a;
159
- --pink-100: #fff5f7;
160
- --pink-200: #fed7e2;
161
- --pink-300: #fbb6ce;
162
- --pink-400: #f687b3;
163
- --pink-500: #ed64a6;
164
- --pink-600: #d53f8c;
165
- --pink-700: #b83280;
166
- --pink-800: #97266d;
167
- --pink-900: #702459;
168
- }
169
- .x4-root-element {
170
- padding: 0;
171
- margin: 0;
172
- left: 0;
173
- top: 0;
174
- right: 0;
175
- bottom: 0;
176
- -webkit-font-smoothing: subpixel-antialiased;
177
- text-rendering: geometricprecision;
178
- font-family: var(--x4-font);
179
- font-size: var(--x4-font-size);
180
- }
181
- input,
182
- textarea {
183
- font-family: inherit;
184
- font-size: inherit;
185
- }
186
- textarea {
187
- resize: none;
188
- outline: none;
189
- border: 1px solid transparent;
190
- }
191
- textarea:focus {
192
- border: 1px solid var(--x4-selection-color);
193
- }
194
- textarea::selection {
195
- background-color: var(--x4-selection-color);
196
- color: #fff;
197
- }
198
- .z-float-4 {
199
- box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.4);
200
- }
201
- .z-float-6 {
202
- box-shadow: 6px 6px 10px rgba(0, 0, 0, 0.5);
203
- }
204
- .z-float-8 {
205
- box-shadow: 8px 8px 16px rgba(0, 0, 0, 0.6);
206
- }
207
- .z-float-15 {
208
- box-shadow: 4px 4px 15px rgba(0, 0, 0, 0.6);
209
- }
210
- .x-comp {
211
- user-select: none;
212
- box-sizing: border-box;
213
- position: relative;
214
- }
215
- .x-flex {
216
- min-height: 0;
217
- min-width: 0;
218
- flex: 1;
219
- flex-basis: 0;
220
- }
221
- .x-hlayout > .x-min-content {
222
- min-width: min-content;
223
- }
224
- .x-vlayout > .x-min-content {
225
- min-height: min-content;
226
- }
227
- .x-fit {
228
- position: absolute;
229
- left: 0;
230
- top: 0;
231
- right: 0;
232
- bottom: 0;
233
- }
234
- .x-hfit {
235
- position: relative;
236
- left: 0;
237
- right: 0;
238
- }
239
- .x-vfit {
240
- position: relative;
241
- top: 0;
242
- bottom: 0;
243
- }
244
- .x-hlayout {
245
- display: flex;
246
- flex-direction: row;
247
- overflow: hidden;
248
- }
249
- .x-hlayout.center {
250
- align-items: center;
251
- }
252
- .x-grid-layout {
253
- display: grid;
254
- justify-content: space-evenly;
255
- }
256
- .x-vlayout {
257
- display: flex;
258
- flex-direction: column;
259
- }
260
- .x-label {
261
- color: inherit;
262
- }
263
- .x-label.right {
264
- text-align: right;
265
- }
266
- .x-label.center {
267
- text-align: center;
268
- }
269
- .x-sizer-overlay {
270
- position: absolute;
271
- }
272
- .x-sizer-overlay.top {
273
- width: 100%;
274
- height: var(--x4-sizer-size);
275
- cursor: n-resize;
276
- left: 0;
277
- top: 0;
278
- }
279
- .x-sizer-overlay.bottom {
280
- width: 100%;
281
- height: var(--x4-sizer-size);
282
- cursor: n-resize;
283
- left: 0;
284
- bottom: 0;
285
- }
286
- .x-sizer-overlay.right {
287
- top: 0;
288
- right: 0;
289
- width: var(--x4-sizer-size);
290
- height: 100%;
291
- cursor: e-resize;
292
- }
293
- .x-sizer-overlay.left {
294
- top: 0;
295
- left: 0;
296
- width: var(--x4-sizer-size);
297
- height: 100%;
298
- cursor: e-resize;
299
- }
300
- .x-sizer-bottom {
301
- padding-bottom: var(--x4-sizer-size);
302
- }
303
- .x-icon {
304
- display: inline-flex;
305
- align-items: center;
306
- text-align: center;
307
- flex-direction: column;
308
- }
309
- .x-icon:before {
310
- font-family: var(--x4-icon-font-family);
311
- }
312
- .x-icon.x-svg-icon {
313
- width: 1rem;
314
- height: 1rem;
315
- }
316
- .x-icon.x-svg-icon > svg {
317
- width: 100%;
318
- height: 100%;
319
- }
320
- .x-base-button {
321
- display: flex;
322
- flex-direction: row;
323
- align-items: center;
324
- gap: 4px;
325
- outline: none;
326
- cursor: pointer;
327
- font-family: var(--x4-font);
328
- font-size: var(--x4-font-size);
329
- height: 2rem;
330
- padding: 8px;
331
- overflow: hidden;
332
- border: 1px solid var(--x4-default-border-color);
333
- background-color: var(--x4-button-color);
334
- color: var(--x4-button-text-color);
335
- }
336
- .x-base-button .x-icon {
337
- margin: 0 4px;
338
- color: inherit;
339
- }
340
- .x-base-button .x-svg-icon {
341
- width: 1rem;
342
- height: 1rem;
343
- margin: 0;
344
- }
345
- .x-base-button:focus {
346
- border-color: var(--x4-focus-color);
347
- background-color: var(--x4-focus-color);
348
- color: white;
349
- }
350
- .x-base-button.x-disable {
351
- color: gray;
352
- }
353
- .x-base-button.x-disable:after {
354
- content: "";
355
- background-color: rgba(255, 255, 255, 0.6);
356
- left: 0;
357
- right: 0;
358
- display: block;
359
- top: 0;
360
- bottom: 0;
361
- position: absolute;
362
- cursor: default;
363
- }
364
- .x-image {
365
- display: flex;
366
- overflow: hidden;
367
- }
368
- .x-image img {
369
- width: 100%;
370
- height: 100%;
371
- }
372
- .x-video {
373
- display: flex;
374
- overflow: hidden;
375
- }
376
- .x-video video {
377
- width: 100%;
378
- height: 100%;
379
- }
380
- .x-image-upload {
381
- width: 96px;
382
- height: 96px;
383
- margin: 24px;
384
- }
385
- .x-image-upload img {
386
- width: 96px;
387
- height: 96px;
388
- background-color: rgba(255, 255, 255, 0.7);
389
- border-radius: 50%;
390
- }
391
- .x-canvas {
392
- overflow: hidden;
393
- }
394
- .x-canvas canvas {
395
- position: absolute;
396
- left: 0;
397
- top: 0;
398
- right: 0;
399
- bottom: 0;
400
- }
401
- ::-webkit-scrollbar {
402
- width: var(--x4-scrollbar-width);
403
- height: var(--x4-scrollbar-width);
404
- background-color: var(--x4-scrollbar-background);
405
- box-sizing: border-box;
406
- }
407
- ::-webkit-scrollbar-thumb {
408
- background-color: var(--x4-scrollbar-thumb);
409
- }
410
- .x-circular-chart {
411
- background-color: white;
412
- box-shadow: 6px 6px 10px rgba(0, 0, 0, 0.5);
413
- }
414
- .x-circular-chart .head {
415
- border-bottom: 1px solid rgba(255, 255, 255, 0.1);
416
- padding: 2px;
417
- height: 37px;
418
- white-space: nowrap;
419
- }
420
- .x-circular-chart .head .x-label {
421
- color: white;
422
- padding: 8px;
423
- }
424
- .x-circular-chart .head .x-button {
425
- height: 32px;
426
- border: 1px solid rgba(255, 255, 255, 0.1);
427
- }
428
- .x-circular-chart .head .close-box {
429
- color: white;
430
- background-color: transparent;
431
- border: none;
432
- font-size: 28px;
433
- padding-right: 0;
434
- }
435
- .x-text-edit,
436
- .x-combo-box {
437
- display: flex;
438
- align-items: center;
439
- min-width: min-content;
440
- min-height: 32px;
441
- padding: 0;
442
- margin: 0;
443
- margin-bottom: 4px;
444
- }
445
- .x-text-edit .x-hlayout,
446
- .x-combo-box .x-hlayout,
447
- .x-text-edit .x-vlayout,
448
- .x-combo-box .x-vlayout {
449
- overflow: visible;
450
- }
451
- .x-text-edit > .x-label,
452
- .x-combo-box > .x-label {
453
- padding: 4px;
454
- color: var(--gray-900);
455
- margin-top: 1px;
456
- line-height: 1.3em;
457
- min-height: 2em;
458
- }
459
- .x-text-edit > .x-label:after,
460
- .x-combo-box > .x-label:after {
461
- content: ':';
462
- }
463
- .x-text-edit input,
464
- .x-combo-box input,
465
- .x-text-edit .x-fake-input,
466
- .x-combo-box .x-fake-input {
467
- height: 2em;
468
- font-size: inherit;
469
- outline: none;
470
- border: none;
471
- padding: 4px;
472
- color: var(--gray-900);
473
- border-bottom: 1px solid transparent;
474
- margin-top: 1px;
475
- line-height: 1.3em;
476
- width: 24px;
477
- }
478
- .x-text-edit input::placeholder,
479
- .x-combo-box input::placeholder,
480
- .x-text-edit .x-fake-input::placeholder,
481
- .x-combo-box .x-fake-input::placeholder {
482
- color: var(--gray-800);
483
- }
484
- .x-text-edit input::selection,
485
- .x-combo-box input::selection,
486
- .x-text-edit .x-fake-input::selection,
487
- .x-combo-box .x-fake-input::selection {
488
- background-color: var(--x4-selection-color);
489
- color: #fff;
490
- }
491
- .x-text-edit input:focus,
492
- .x-combo-box input:focus,
493
- .x-text-edit .x-fake-input:focus,
494
- .x-combo-box .x-fake-input:focus {
495
- border-bottom-color: var(--x4-focus-color);
496
- }
497
- .x-text-edit:focus-within > .x-label,
498
- .x-combo-box:focus-within > .x-label {
499
- color: var(--x4-focus-color);
500
- }
501
- .x-text-edit .x-button.gadget,
502
- .x-combo-box .x-button.gadget {
503
- background-color: transparent;
504
- font-size: var(--x4-font-size);
505
- color: var(--gray-900);
506
- border: none;
507
- margin: 0;
508
- padding: 4px;
509
- height: 2em;
510
- margin-top: 1px;
511
- }
512
- .x-text-edit .x-button.gadget:hover,
513
- .x-combo-box .x-button.gadget:hover {
514
- background-color: transparent;
515
- }
516
- .x-text-edit .x-button.gadget:focus,
517
- .x-combo-box .x-button.gadget:focus {
518
- color: var(--x4-focus-color);
519
- }
520
- .x-text-edit:focus .x-button.gadget,
521
- .x-combo-box:focus .x-button.gadget,
522
- .x-text-edit:focus input,
523
- .x-combo-box:focus input {
524
- border-color: var(--x4-focus-color);
525
- }
526
- .x-text-edit:focus input,
527
- .x-combo-box:focus input {
528
- border-bottom: 1px solid var(--x4-focus-color);
529
- }
530
- .x-text-edit:focus .x-button.gadget,
531
- .x-combo-box:focus .x-button.gadget {
532
- color: var(--x4-focus-color);
533
- }
534
- .x-text-edit:focus .x-label,
535
- .x-combo-box:focus .x-label {
536
- color: var(--x4-focus-color);
537
- }
538
- .x-text-edit .error-info,
539
- .x-combo-box .error-info {
540
- font-size: 70%;
541
- padding: 4px;
542
- color: white;
543
- padding-left: 19px;
544
- padding-top: 6px;
545
- pointer-events: none;
546
- right: 0;
547
- position: absolute;
548
- top: -2px;
549
- z-index: 1;
550
- }
551
- .x-text-edit.x-required .label1:before,
552
- .x-combo-box.x-required .label1:before {
553
- content: '*';
554
- padding-right: 2px;
555
- }
556
- .x-text-edit input.x-error,
557
- .x-combo-box input.x-error {
558
- border-bottom: none;
559
- border-left: 4px solid var(--x4-error-color);
560
- }
561
- .x-text-edit .x-button.gadget {
562
- margin-left: 1 px;
563
- margin-right: 1 px;
564
- }
565
- .x-combo-box > .x-label {
566
- border-top: 1px solid transparent;
567
- }
568
- .x-combo-box .x-button.gadget,
569
- .x-combo-box input,
570
- .x-combo-box .x-fake-input {
571
- border: 1px solid rgba(0, 0, 0, 0.1);
572
- }
573
- .x-combo-box .x-fake-input {
574
- min-width: 2em;
575
- }
576
- .x-combo-box input,
577
- .x-combo-box .x-fake-input {
578
- cursor: default;
579
- border-right: none;
580
- }
581
- .x-combo-box:focus .x-button.gadget,
582
- .x-combo-box:focus input,
583
- .x-combo-box:focus .x-fake-input {
584
- border-color: var(--x4-focus-color);
585
- }
586
- .x-combo-box:focus input,
587
- .x-combo-box:focus .x-fake-input {
588
- border-bottom: 1px solid var(--x4-focus-color);
589
- }
590
- .x-combo-box:focus .x-button.gadget {
591
- color: var(--x4-focus-color);
592
- }
593
- .x-combo-box:focus .x-label {
594
- color: var(--x4-focus-color);
595
- }
596
- .x-hlayout > .x-combo-box {
597
- margin-bottom: 0;
598
- margin-right: 4px;
599
- }
600
- .x-text-edit.vertical {
601
- align-items: stretch;
602
- }
603
- .x-text-edit input:read-only {
604
- background-color: transparent;
605
- border-bottom: 1px solid rgba(0, 0, 0, 0.1);
606
- }
607
- .x-text-edit .x-button {
608
- padding: 8px 4px;
609
- height: auto;
610
- border: none;
611
- background-color: rgba(0, 0, 0, 0.1);
612
- }
613
- .x-text-edit .x-button:hover {
614
- background-color: rgba(0, 0, 0, 0.3);
615
- }
616
- .x-text-edit:focus input {
617
- border-bottom: 1px solid white;
618
- }
619
- .x-text-edit:focus .label1 {
620
- color: black;
621
- }
622
- .x-radio-btn,
623
- .x-check-box {
624
- align-items: center;
625
- color: var(--gray-900);
626
- outline: none;
627
- padding: 4px 0;
628
- }
629
- .x-radio-btn input,
630
- .x-check-box input {
631
- outline: none;
632
- margin: 4px;
633
- padding: 0;
634
- }
635
- .x-radio-btn .x-label,
636
- .x-check-box .x-label {
637
- padding: 4px;
638
- }
639
- .x-radio-btn:focus-within,
640
- .x-check-box:focus-within {
641
- text-decoration: underline;
642
- color: var(--x4-selection-color);
643
- }
644
- .x-check-box.slider input {
645
- clip: rect(0 0 0 0);
646
- position: absolute;
647
- width: 1px;
648
- height: 1px;
649
- }
650
- .x-check-box.slider .x-slide-el {
651
- width: 2.4em;
652
- height: 1.4em;
653
- }
654
- .x-check-box.slider .x-slide-el:before {
655
- box-sizing: border-box;
656
- position: absolute;
657
- left: 0px;
658
- top: 0px;
659
- content: "";
660
- display: inline-block;
661
- width: 2.4em;
662
- height: 1.4em;
663
- border-radius: 1.4rem;
664
- padding: 2px;
665
- background-color: rgba(0, 0, 0, 0.3);
666
- transition: all 0.2s;
667
- border: 1px solid rgba(255, 255, 255, 0.5);
668
- }
669
- .x-check-box.slider .x-slide-el:after {
670
- box-sizing: border-box;
671
- content: "";
672
- top: 2px;
673
- height: calc(1.4em - 4px);
674
- width: calc(1.4em - 4px);
675
- border-radius: 50%;
676
- background-color: #fff;
677
- transition: all 0.2s;
678
- position: absolute;
679
- left: 2px;
680
- }
681
- .x-check-box.slider input:checked + .x-slide-el:before {
682
- background-color: var(--x4-selection-color);
683
- }
684
- .x-check-box.slider input:checked + .x-slide-el:after {
685
- left: calc(1em + 2px);
686
- background-color: white;
687
- }
688
- .x-check-box.slider .x-label {
689
- padding-left: calc(2.5em + 4px);
690
- height: 2em;
691
- }
692
- .x-menu {
693
- box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
694
- background-color: #f7f7f7;
695
- padding: 2px 0;
696
- max-height: 80%;
697
- overflow: auto;
698
- }
699
- .x-menu-title {
700
- width: 100%;
701
- background-color: #e22e6d;
702
- color: white;
703
- height: 2.3em;
704
- display: block;
705
- padding: 0 8px;
706
- line-height: 2.5em;
707
- }
708
- .x-menu-item {
709
- display: flex;
710
- flex-direction: row;
711
- align-items: center;
712
- outline: none;
713
- background-color: transparent;
714
- color: var(--gray-900);
715
- padding: 0px 8px;
716
- min-width: 120px;
717
- border: none;
718
- }
719
- .x-menu-item .x-icon {
720
- width: 1em;
721
- margin-right: 8px;
722
- color: var(--gray-700);
723
- }
724
- .x-menu-item .x-icon.pop-mark {
725
- height: 0.8em;
726
- }
727
- .x-menu-item .x-label {
728
- padding: 4px;
729
- }
730
- .x-menu-item:hover {
731
- background-color: var(--x4-hover-color);
732
- color: var(--x4-hover-text);
733
- }
734
- .x-menu-item:hover .x-icon {
735
- color: var(--gray-900);
736
- }
737
- .x-menu-separator {
738
- margin-top: 4px;
739
- border-top: 1px solid rgba(0, 0, 0, 0.1);
740
- margin-bottom: 3px;
741
- }
742
- .x-link {
743
- padding: 4px;
744
- color: var(--x4-selection-color);
745
- cursor: pointer;
746
- outline: none;
747
- display: flex;
748
- align-items: center;
749
- color: inherit;
750
- }
751
- .x-link:focus {
752
- color: var(--x4-selection-color);
753
- text-decoration: underline;
754
- }
755
- .x-column-view {
756
- border-bottom: 1px solid rgba(255, 255, 255, 0.5);
757
- overflow: hidden;
758
- }
759
- .x-column-view .line {
760
- height: 48px;
761
- }
762
- .x-column-view .head {
763
- background: none;
764
- background-color: inherit;
765
- box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.4);
766
- z-index: 2;
767
- border: 1px solid transparent;
768
- border-bottom: 1px solid rgba(255, 255, 255, 0.5);
769
- height: 40px;
770
- margin: 0 4px;
771
- }
772
- .x-column-view .head .x-label {
773
- line-height: 32px;
774
- }
775
- .x-column-view .h-container {
776
- margin-right: var(--x4-scrollbar-width);
777
- }
778
- .x-list-view {
779
- border: 1px solid var(--x4-default-border-color);
780
- }
781
- .x-list-view .x-list-item {
782
- padding: 4px;
783
- line-height: 2em;
784
- white-space: nowrap;
785
- }
786
- .x-list-view .x-list-item:hover {
787
- background-color: var(--x4-hover-color);
788
- color: var(--x4-hover-text);
789
- }
790
- .x-list-view .x-list-item.x-selected {
791
- background-color: var(--x4-selection-color);
792
- color: var(--x4-selection-text);
793
- }
794
- .x-list-view .x-list-item:focus {
795
- outline: none;
796
- }
797
- .x-list-view:focus {
798
- outline: none;
799
- border-color: var(--x4-focus-color);
800
- }
801
- .x-list-view .gadgets {
802
- border-top: 1px solid rgba(0, 0, 0, 0.5);
803
- background-color: rgba(0, 0, 0, 0.1);
804
- }
805
- .x-list-view .gadgets .x-button {
806
- background-color: transparent;
807
- }
808
- .x-list-view .gadgets .x-button:hover {
809
- background-color: white;
810
- }
811
- .x-mask {
812
- filter: grayscale(80%);
813
- }
814
- .x-mask:after {
815
- content: '';
816
- position: absolute;
817
- left: -100vw;
818
- top: -100vh;
819
- width: 200vw;
820
- height: 200vh;
821
- background-color: var(--x4-mask-color);
822
- z-index: 999;
823
- }
824
- .x-popup {
825
- position: absolute;
826
- z-index: 1000;
827
- font-family: var(--x4-font);
828
- font-size: var(--x4-font-size);
829
- }
830
- .x-popup:focus {
831
- outline: none;
832
- }
833
- .x-panel > .title {
834
- align-items: center;
835
- line-height: 1.5em;
836
- padding: 4px;
837
- border-bottom: 1px solid var(--x4-default-border-color);
838
- }
839
- .x-panel > .title > .x-label {
840
- flex: 1;
841
- }
842
- .x-panel > .title > .x-button {
843
- background-color: transparent;
844
- padding: 0;
845
- border: none;
846
- box-shadow: none;
847
- }
848
- .x-panel > .title > .x-button:focus {
849
- color: var(--gray-900);
850
- }
851
- .x-panel > .body {
852
- padding: 8px;
853
- flex: 1;
854
- }
855
- .x-dialog {
856
- border: 0.5px solid rgba(0, 0, 0, 0.2);
857
- box-shadow: 8px 8px 16px rgba(0, 0, 0, 0.6);
858
- min-width: 250px;
859
- min-height: 100px;
860
- }
861
- .x-dialog > .title {
862
- height: 2rem;
863
- color: white;
864
- padding: 0 8px;
865
- display: flex;
866
- align-items: center;
867
- background-color: var(--x4-selection-color);
868
- width: 0;
869
- }
870
- .x-dialog > .title .x-icon {
871
- width: 2em;
872
- height: 1.9em;
873
- padding: 4px;
874
- text-align: center;
875
- cursor: pointer;
876
- }
877
- .x-dialog > .title .x-icon:hover {
878
- background-color: rgba(255, 255, 255, 0.1);
879
- }
880
- .x-dialog > .title .x-icon.close-btn:hover {
881
- background-color: var(--x4-error-color);
882
- color: white;
883
- }
884
- .x-dialog > .title .x-label {
885
- border-bottom: none;
886
- padding: 0;
887
- overflow: hidden;
888
- text-overflow: ellipsis;
889
- white-space: nowrap;
890
- }
891
- .x-dialog > .title .res-btn {
892
- display: none;
893
- }
894
- .x-dialog.maximized > .title .min-btn,
895
- .x-dialog.maximized > .title .max-btn {
896
- display: none;
897
- }
898
- .x-dialog.maximized > .title .res-btn {
899
- display: block;
900
- }
901
- .x-dialog.x-resized {
902
- display: flex;
903
- flex-direction: column;
904
- }
905
- .x-dialog.x-resized > .x-form {
906
- flex: 1;
907
- }
908
- .x-dialog.x-resized > .x-form > .container {
909
- min-height: 0;
910
- min-width: 0;
911
- flex: 1;
912
- flex-basis: 0;
913
- }
914
- .x-dialog.maximized {
915
- left: 0;
916
- top: 0;
917
- width: 100%;
918
- height: 100%;
919
- margin: 0;
920
- }
921
- .x-dialog.maximized > .title {
922
- height: 2em;
923
- }
924
- .x-size-all {
925
- margin: 4px;
926
- }
927
- .x-size-all > .x-sizer-overlay {
928
- background-color: transparent;
929
- border: none;
930
- }
931
- .x-size-all > .x-sizer-overlay.topleft,
932
- .x-size-all > .x-sizer-overlay.topright,
933
- .x-size-all > .x-sizer-overlay.bottomleft,
934
- .x-size-all > .x-sizer-overlay.bottomright {
935
- cursor: se-resize;
936
- width: 6px;
937
- height: 6px;
938
- z-index: 11;
939
- }
940
- .x-size-all > .x-sizer-overlay.topleft {
941
- left: -4px;
942
- top: -4px;
943
- }
944
- .x-size-all > .x-sizer-overlay.bottomright {
945
- right: -4px;
946
- bottom: -4px;
947
- }
948
- .x-size-all > .x-sizer-overlay.topright {
949
- cursor: nesw-resize;
950
- right: -4px;
951
- top: -4px;
952
- }
953
- .x-size-all > .x-sizer-overlay.bottomleft {
954
- cursor: nesw-resize;
955
- left: -4px;
956
- bottom: -4px;
957
- }
958
- .x-size-all > .x-sizer-overlay.top,
959
- .x-size-all > .x-sizer-overlay.bottom {
960
- width: 100%;
961
- height: 4px;
962
- left: 0;
963
- z-index: 10;
964
- cursor: n-resize;
965
- }
966
- .x-size-all > .x-sizer-overlay.top {
967
- top: -4px;
968
- }
969
- .x-size-all > .x-sizer-overlay.bottom {
970
- bottom: -4px;
971
- }
972
- .x-size-all > .x-sizer-overlay.left,
973
- .x-size-all > .x-sizer-overlay.right {
974
- height: 100%;
975
- width: 4px;
976
- top: 0;
977
- z-index: 10;
978
- cursor: w-resize;
979
- border: none;
980
- }
981
- .x-size-all > .x-sizer-overlay.left {
982
- left: -4px;
983
- }
984
- .x-size-all > .x-sizer-overlay.right {
985
- right: -4px;
986
- }
987
- .x-form {
988
- background-color: var(--x4-form-color);
989
- margin-block-end: 0;
990
- padding: 8px 0;
991
- min-width: 250px;
992
- min-height: 50px;
993
- padding-right: 4px;
994
- }
995
- .x-form > .container {
996
- padding: 0px;
997
- overflow: auto;
998
- padding: 0 4px 0 8px;
999
- }
1000
- .x-form > .footer {
1001
- position: relative;
1002
- left: 0;
1003
- bottom: 0;
1004
- width: 100%;
1005
- justify-content: flex-end;
1006
- padding: 0px 4px 0 8px;
1007
- margin-top: 8px;
1008
- align-items: center;
1009
- }
1010
- .x-form > .footer .x-button:not(.x-small) {
1011
- min-width: 110px;
1012
- }
1013
- .x-form > .footer .x-button:not(:first-child) {
1014
- margin-left: 8px;
1015
- }
1016
- .x-hidden {
1017
- display: none ! important;
1018
- }
1019
- .x-tab-view {
1020
- overflow: hidden;
1021
- padding: 24px;
1022
- padding-top: 0;
1023
- }
1024
- .x-tab-view .x-tab-switch {
1025
- border-bottom: 1px solid rgba(255, 255, 255, 0.1);
1026
- background-color: rgba(0, 0, 0, 0.1);
1027
- }
1028
- .x-tab-view .x-tab-switch .x-tab-btn {
1029
- border: none;
1030
- background-color: transparent;
1031
- }
1032
- .x-tab-view .x-tab-switch .x-tab-btn:hover .x-label {
1033
- text-decoration: underline;
1034
- }
1035
- .x-tab-view .x-tab-switch .x-tab-btn.x-active {
1036
- background-color: rgba(255, 255, 255, 0.2);
1037
- }
1038
- .x-tab-page {
1039
- min-width: 0;
1040
- }
1041
- .x-input-box > .title,
1042
- .x-message-box > .title,
1043
- .x-important > .title {
1044
- background: none;
1045
- background-color: var(--x4-error-color);
1046
- height: 2.5em;
1047
- }
1048
- .x-input-box > .title .x-label,
1049
- .x-message-box > .title .x-label,
1050
- .x-important > .title .x-label {
1051
- border-bottom: none;
1052
- padding-bottom: 0;
1053
- }
1054
- .x-input-box > .title .x-icon,
1055
- .x-message-box > .title .x-icon,
1056
- .x-important > .title .x-icon {
1057
- display: none;
1058
- }
1059
- .x-input-box .x-form,
1060
- .x-message-box .x-form,
1061
- .x-important .x-form {
1062
- min-height: 100px;
1063
- background-color: white;
1064
- }
1065
- .x-input-box .x-form .panel,
1066
- .x-message-box .x-form .panel,
1067
- .x-important .x-form .panel {
1068
- align-items: center;
1069
- }
1070
- .x-input-box .x-form .icon,
1071
- .x-message-box .x-form .icon,
1072
- .x-important .x-form .icon {
1073
- font-size: 48px;
1074
- width: 48px;
1075
- height: 48px;
1076
- color: var(--x4-error-color);
1077
- margin-right: 8px;
1078
- }
1079
- .x-input-box .x-form .text,
1080
- .x-message-box .x-form .text,
1081
- .x-important .x-form .text {
1082
- padding: 8px;
1083
- color: #666666;
1084
- line-height: 1.7em;
1085
- max-width: 50vw;
1086
- }
1087
- .x-input-box .x-form > .footer,
1088
- .x-message-box .x-form > .footer,
1089
- .x-important .x-form > .footer {
1090
- background-color: white;
1091
- border-top: 1px solid rgba(0, 0, 0, 0.05);
1092
- padding-top: 8px;
1093
- }
1094
- .x-input-box .x-form > .footer .x-button,
1095
- .x-message-box .x-form > .footer .x-button,
1096
- .x-important .x-form > .footer .x-button {
1097
- background-color: var(--x4-error-color);
1098
- color: white;
1099
- }
1100
- .x-input-box .x-form > .footer .x-button:focus,
1101
- .x-message-box .x-form > .footer .x-button:focus,
1102
- .x-important .x-form > .footer .x-button:focus {
1103
- border-color: black;
1104
- }
1105
- .x-spreadsheet,
1106
- .x-grid-view {
1107
- min-height: 0;
1108
- overflow: hidden;
1109
- background-color: white;
1110
- }
1111
- .x-spreadsheet .x-cell,
1112
- .x-grid-view .x-cell {
1113
- overflow: hidden;
1114
- padding: 4px;
1115
- white-space: nowrap;
1116
- color: var(--gray-900);
1117
- height: 2em;
1118
- }
1119
- .x-spreadsheet .x-cell span,
1120
- .x-grid-view .x-cell span {
1121
- width: 100%;
1122
- }
1123
- .x-spreadsheet .x-footer,
1124
- .x-grid-view .x-footer,
1125
- .x-spreadsheet .x-header,
1126
- .x-grid-view .x-header {
1127
- height: 2em;
1128
- background-color: #f0f0f0;
1129
- align-items: center;
1130
- border-bottom: 1px solid rgba(0, 0, 0, 0.4);
1131
- }
1132
- .x-spreadsheet .x-footer .x-sizer-bar,
1133
- .x-grid-view .x-footer .x-sizer-bar,
1134
- .x-spreadsheet .x-header .x-sizer-bar,
1135
- .x-grid-view .x-header .x-sizer-bar {
1136
- background-color: transparent;
1137
- }
1138
- .x-spreadsheet .x-footer .x-cell,
1139
- .x-grid-view .x-footer .x-cell,
1140
- .x-spreadsheet .x-header .x-cell,
1141
- .x-grid-view .x-header .x-cell {
1142
- border-right: 1px solid rgba(0, 0, 0, 0.1);
1143
- height: 100%;
1144
- display: flex;
1145
- align-items: center;
1146
- }
1147
- .x-spreadsheet .x-footer .x-cell span,
1148
- .x-grid-view .x-footer .x-cell span,
1149
- .x-spreadsheet .x-header .x-cell span,
1150
- .x-grid-view .x-header .x-cell span {
1151
- min-width: 0;
1152
- text-overflow: ellipsis;
1153
- overflow: hidden;
1154
- }
1155
- .x-spreadsheet .x-footer .x-cell.sort,
1156
- .x-grid-view .x-footer .x-cell.sort,
1157
- .x-spreadsheet .x-header .x-cell.sort,
1158
- .x-grid-view .x-header .x-cell.sort {
1159
- height: 0.7rem;
1160
- opacity: 0.7;
1161
- }
1162
- .x-spreadsheet .x-header .x-cell span,
1163
- .x-grid-view .x-header .x-cell span {
1164
- width: unset;
1165
- text-transform: uppercase;
1166
- font-weight: bold;
1167
- }
1168
- .x-spreadsheet .x-header .x-cell .sort,
1169
- .x-grid-view .x-header .x-cell .sort {
1170
- width: 1em;
1171
- height: 1em;
1172
- padding-left: 4px;
1173
- }
1174
- .x-spreadsheet .x-row,
1175
- .x-grid-view .x-row {
1176
- position: absolute;
1177
- width: calc(100% - 4px);
1178
- border-bottom: 1px solid #d0d0d0;
1179
- align-items: center;
1180
- height: 2em;
1181
- }
1182
- .x-spreadsheet .x-row.odd,
1183
- .x-grid-view .x-row.odd {
1184
- background-color: #fafafa;
1185
- }
1186
- .x-spreadsheet .x-cell,
1187
- .x-grid-view .x-cell {
1188
- border-right: 1px solid #d0d0d0;
1189
- }
1190
- .x-spreadsheet .x-cell.center,
1191
- .x-grid-view .x-cell.center {
1192
- text-align: center;
1193
- justify-content: center;
1194
- }
1195
- .x-spreadsheet .x-cell.right,
1196
- .x-grid-view .x-cell.right {
1197
- text-align: right;
1198
- justify-content: right;
1199
- }
1200
- .x-spreadsheet:focus,
1201
- .x-grid-view:focus {
1202
- outline: none;
1203
- }
1204
- .x-grid-view .x-footer,
1205
- .x-grid-view .x-header {
1206
- border-left: 4px solid #f0f0f0;
1207
- }
1208
- .x-grid-view .x-row {
1209
- border-left: 4px solid transparent;
1210
- }
1211
- .x-grid-view .x-row:hover {
1212
- background-color: rgba(0, 0, 0, 0.1);
1213
- border-left-color: rgba(0, 0, 0, 0.6);
1214
- }
1215
- .x-grid-view .x-row.x-selected {
1216
- background-color: var(--x4-selection-color);
1217
- }
1218
- .x-grid-view .x-row.x-selected .x-cell {
1219
- color: white;
1220
- }
1221
- .x-grid-view .empty-msg {
1222
- position: absolute;
1223
- left: 1em;
1224
- top: 4em;
1225
- }
1226
- .x-spreadsheet .content .x-cell {
1227
- position: absolute;
1228
- border-right: 1px solid rgba(0, 0, 0, 0.1);
1229
- border-bottom: 1px solid rgba(0, 0, 0, 0.1);
1230
- height: 2em;
1231
- align-items: center;
1232
- display: flex;
1233
- }
1234
- .x-spreadsheet .x-cell.x-selected {
1235
- background-color: rgba(0, 0, 0, 0.1);
1236
- }
1237
- .x-spreadsheet:focus .x-cell.x-selected {
1238
- background-color: var(--x4-selection-color);
1239
- color: white;
1240
- }
1241
- .x-spreadsheet .x-editor {
1242
- position: absolute;
1243
- min-height: 0;
1244
- margin: 0;
1245
- }
1246
- .x-spreadsheet .x-editor input {
1247
- margin: 0;
1248
- min-height: 0;
1249
- height: 100%;
1250
- }
1251
- .x-form .x-spreadsheet .x-editor {
1252
- background-color: white;
1253
- }
1254
- .x-side-bar {
1255
- min-width: 44px;
1256
- }
1257
- .x-side-bar .x-button {
1258
- background-color: transparent;
1259
- color: var(--x4-base-color);
1260
- border: none;
1261
- min-height: 2em;
1262
- }
1263
- .x-side-bar .x-button:hover {
1264
- background-color: var(--x4-hover-color);
1265
- color: white;
1266
- }
1267
- .x-side-bar .x-button:hover .x-icon {
1268
- color: rgba(255, 255, 255, 0.5);
1269
- }
1270
- .x-side-bar .x-button.x-active {
1271
- background-color: var(--x4-base-color);
1272
- color: white;
1273
- }
1274
- .x-side-bar .x-button.x-active .x-icon {
1275
- color: white;
1276
- }
1277
- .x-side-bar .x-button.x-active:hover {
1278
- color: white;
1279
- }
1280
- .x-side-bar .x-button.x-active:hover .x-icon {
1281
- color: rgba(255, 255, 255, 0.5);
1282
- }
1283
- .x-side-bar .x-button.trans,
1284
- .x-side-bar .x-button.trans .x-icon {
1285
- transition: background-color 0.4s ease, color 0.4s ease;
1286
- }
1287
- .x-side-bar.collapsed .x-button .x-label {
1288
- display: none;
1289
- }
1290
- .x-side-bar.collapsed .x-button.x-active .x-icon,
1291
- .x-side-bar.collapsed .x-button:hover .x-icon {
1292
- color: white;
1293
- }
1294
- .x-tooltip {
1295
- box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.4);
1296
- z-index: 50000;
1297
- display: inline-block;
1298
- max-width: 400px;
1299
- pointer-events: none;
1300
- background-color: white;
1301
- color: white;
1302
- padding-left: 24px;
1303
- font-family: var(--x4-font);
1304
- font-size: var(--x4-font-size);
1305
- }
1306
- .x-tooltip .x-icon {
1307
- position: absolute;
1308
- left: 5px;
1309
- top: 7px;
1310
- color: var(--x4-selection-color);
1311
- }
1312
- .x-tooltip .x-label {
1313
- background-color: var(--x4-selection-color);
1314
- white-space: break-spaces;
1315
- display: inline-block;
1316
- padding: 6px;
1317
- line-height: 1.3em;
1318
- }
1319
- .x-search-bar {
1320
- background-color: var(--x4-base-color);
1321
- height: 2em;
1322
- }
1323
- .x-popup-table {
1324
- box-shadow: 8px 8px 16px rgba(0, 0, 0, 0.6);
1325
- border-collapse: collapse;
1326
- background-color: white;
1327
- padding: 2px 0;
1328
- }
1329
- .x-popup-table tr.x-selected {
1330
- background-color: var(--x4-selection-color);
1331
- color: var(--x4-selection-text);
1332
- }
1333
- .x-popup-table tr:hover {
1334
- background-color: var(--x4-hover-color);
1335
- color: var(--x4-hover-text);
1336
- }
1337
- .x-popup-table td {
1338
- padding: 3px 8px;
1339
- border-bottom: 1px solid rgba(0, 0, 0, 0.1);
1340
- }
1341
- .x-popup-table .hilite {
1342
- font-weight: bold;
1343
- }
1344
- .x-scroll-view,
1345
- .x-container.x-scroll-view {
1346
- overflow-y: auto;
1347
- }
1348
- .x-popup-list-view {
1349
- box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.4);
1350
- background-color: white;
1351
- }
1352
- .x-popup-list-view .x-combo-popup {
1353
- min-height: 1em;
1354
- max-height: 400px;
1355
- border: 1px solid #00000073;
1356
- overflow: auto;
1357
- color: var(--gray-900);
1358
- }
1359
- .x-popup-list-view .x-combo-popup .x-list-item {
1360
- height: 2em;
1361
- line-height: calc(2em - 8px);
1362
- }
1363
- .x-calendar {
1364
- border: 1px solid rgba(0, 0, 0, 0.1);
1365
- padding: 4px;
1366
- }
1367
- .x-calendar .month-sel {
1368
- height: 2em;
1369
- align-items: center;
1370
- padding-left: 2em;
1371
- margin-bottom: 8px;
1372
- }
1373
- .x-calendar .month-sel .month {
1374
- padding-right: 4px;
1375
- }
1376
- .x-calendar .month-sel .year {
1377
- cursor: pointer;
1378
- }
1379
- .x-calendar .month-sel .month,
1380
- .x-calendar .month-sel .year {
1381
- cursor: pointer;
1382
- }
1383
- .x-calendar .month-sel .month:hover,
1384
- .x-calendar .month-sel .year:hover {
1385
- text-decoration: underline;
1386
- }
1387
- .x-calendar .month-sel .x-label {
1388
- font-weight: bold;
1389
- }
1390
- .x-calendar .month-sel .x-button {
1391
- height: auto;
1392
- color: var(--gray-900);
1393
- }
1394
- .x-calendar .week {
1395
- align-items: center;
1396
- border: 1px solid transparent;
1397
- }
1398
- .x-calendar .week:hover {
1399
- border-color: var(--x4-hover-color);
1400
- border-radius: 4px;
1401
- }
1402
- .x-calendar .week .cell {
1403
- height: 100%;
1404
- color: var(--gray-900);
1405
- text-align: center;
1406
- }
1407
- .x-calendar .week .cell span {
1408
- margin: auto;
1409
- }
1410
- .x-calendar .week .today {
1411
- font-weight: bold;
1412
- background-color: var(--x4-error-color);
1413
- }
1414
- .x-calendar .week .today span {
1415
- border-radius: 2px;
1416
- color: white;
1417
- }
1418
- .x-calendar .week .weeknum {
1419
- width: 2em;
1420
- color: rgba(0, 0, 0, 0.3);
1421
- font-size: 70%;
1422
- }
1423
- .x-calendar .week .day {
1424
- cursor: pointer;
1425
- }
1426
- .x-calendar .week .out {
1427
- color: rgba(0, 0, 0, 0.3);
1428
- }
1429
- .x-calendar .week .day:hover {
1430
- background-color: var(--x4-hover-color);
1431
- color: white;
1432
- }
1433
- .x-calendar .header .cell {
1434
- color: var(--gray-800);
1435
- height: 1.5em;
1436
- }
1437
- .x-calendar .header:hover {
1438
- background-color: inherit;
1439
- }
1440
- .x-popup-calendar {
1441
- width: 250px;
1442
- height: 200px;
1443
- background-color: white;
1444
- box-shadow: 8px 8px 16px rgba(0, 0, 0, 0.6);
1445
- }
1446
- .x-separator {
1447
- background-color: white;
1448
- }
1449
- .x-separator.horizontal {
1450
- width: 4px;
1451
- border-left: 1px solid #c7c7c7;
1452
- border-right: 1px solid #c7c7c7;
1453
- cursor: e-resize;
1454
- }
1455
- .x-separator.vertical {
1456
- height: 4px;
1457
- border-top: 1px solid #c7c7c7;
1458
- border-bottom: 1px solid #c7c7c7;
1459
- cursor: n-resize;
1460
- }
1461
- .x-separator:hover {
1462
- background-color: #575757;
1463
- border-color: #575757;
1464
- }
1465
- .x-toggle-button.checked {
1466
- background-color: #a8a8a8;
1467
- }
1468
- .x-color-picker-box .customs {
1469
- padding: 8px;
1470
- }
1471
- .x-color-picker-box .customs .cust-cc {
1472
- height: 16px;
1473
- border: 1px solid rgba(0, 0, 0, 0.4);
1474
- }
1475
- .x-color-picker-editor .alpha {
1476
- background-image: url('data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QA6RXhpZgAATU0AKgAAAAgAA1EAAAQAAAABAAAAAFEBAAMAAAABAAEAAFEEAAEAAAAB/AAAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAQABADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9iK90orwugD//2Q==');
1477
- padding: 4px;
1478
- }
1479
- .x-color-picker .sel {
1480
- position: absolute;
1481
- left: 10px;
1482
- top: 10px;
1483
- right: 40px;
1484
- bottom: 40px;
1485
- }
1486
- .x-color-picker .sel .marker {
1487
- position: absolute;
1488
- width: 6px;
1489
- height: 6px;
1490
- margin-top: -3px;
1491
- margin-left: -3px;
1492
- border: 1px solid white;
1493
- }
1494
- .x-color-picker .light {
1495
- background: linear-gradient(to right, #ffffff 0%, rgba(255, 255, 255, 0) 100%);
1496
- }
1497
- .x-color-picker .dark {
1498
- background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, #000000 100%);
1499
- }
1500
- .x-color-picker .hue {
1501
- position: absolute;
1502
- top: 10px;
1503
- bottom: 40px;
1504
- right: 10px;
1505
- width: 20px;
1506
- background: linear-gradient(to bottom, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 66%, #ff00ff 83%, #ff0000 100%);
1507
- }
1508
- .x-color-picker .hue .marker {
1509
- position: absolute;
1510
- width: calc(100% + 6px);
1511
- height: 4px;
1512
- margin-top: -2px;
1513
- margin-left: -3px;
1514
- background-color: black;
1515
- }
1516
- .x-color-picker .sample {
1517
- position: absolute;
1518
- bottom: 10px;
1519
- height: 20px;
1520
- width: 20px;
1521
- right: 10px;
1522
- }
1523
- .x-color-picker .sample .color {
1524
- background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, #ff0000 100%);
1525
- }
1526
- .x-color-picker .alpha,
1527
- .x-color-picker .transp {
1528
- position: absolute;
1529
- left: 10px;
1530
- bottom: 10px;
1531
- right: 20px;
1532
- height: 20px;
1533
- }
1534
- .x-color-picker .transp {
1535
- bottom: 8px;
1536
- width: 115px;
1537
- left: 4px;
1538
- height: 24px;
1539
- }
1540
- .x-color-picker .hexv {
1541
- position: absolute;
1542
- bottom: 8px;
1543
- left: 120px;
1544
- height: 24px;
1545
- margin: 0;
1546
- width: 90px;
1547
- min-height: unset;
1548
- }
1549
- .x-color-picker .alpha {
1550
- background-image: url('data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QA6RXhpZgAATU0AKgAAAAgAA1EAAAQAAAABAAAAAFEBAAMAAAABAAEAAFEEAAEAAAAB/AAAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAQABADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9iK90orwugD//2Q==');
1551
- }
1552
- .x-color-picker .alpha .marker {
1553
- position: absolute;
1554
- height: calc(100% + 6px);
1555
- width: 4px;
1556
- margin-top: -3px;
1557
- margin-left: -2px;
1558
- background-color: black;
1559
- }
1560
- .x-color-picker.with-alpha .sel {
1561
- left: 4px;
1562
- top: 4px;
1563
- bottom: 34px;
1564
- right: 34px;
1565
- }
1566
- .x-color-picker.with-alpha .hue {
1567
- top: 4px;
1568
- right: 4px;
1569
- bottom: 34px;
1570
- }
1571
- .x-color-picker.with-alpha .hexv {
1572
- bottom: 4px;
1573
- left: 4px;
1574
- width: 120px;
1575
- }
1576
- .x-color-picker.with-alpha .alpha {
1577
- left: 130px;
1578
- right: 4px;
1579
- height: 24px;
1580
- bottom: 4px;
1581
- }
1582
- .x-color-picker.with-alpha .transp,
1583
- .x-color-picker.with-alpha .sample {
1584
- display: none;
1585
- }
1586
- .x-color-picker.pal-mode {
1587
- display: flex;
1588
- gap: 1px;
1589
- }
1590
- .x-color-picker.pal-mode > .x-container {
1591
- width: 100%;
1592
- }
1593
- .x-color-picker.pal-mode .hcol,
1594
- .x-color-picker.pal-mode .vcol {
1595
- justify-content: space-between;
1596
- }
1597
- .x-color-picker.pal-mode .hcol {
1598
- min-height: 90px;
1599
- margin-top: 40px;
1600
- }
1601
- .x-color-picker.pal-mode .hexv {
1602
- bottom: 10px;
1603
- left: 120px;
1604
- right: 10px;
1605
- width: unset;
1606
- }
1607
- .x-color-picker.pal-mode .transp {
1608
- display: flex;
1609
- }
1610
- .x-color-picker.pal-mode #hsel {
1611
- gap: 4px;
1612
- flex-wrap: wrap;
1613
- justify-content: center;
1614
- }
1615
- .x-color-picker.pal-mode #vsel {
1616
- gap: 1px;
1617
- margin-top: 10px;
1618
- }
1619
- .x-color-picker.pal-mode .clr-box {
1620
- width: 19px;
1621
- height: 10px;
1622
- }
1623
- .x-color-picker.pal-mode .hclr-box {
1624
- height: 16px;
1625
- min-width: 19px;
1626
- font-size: 9px;
1627
- line-height: 16px;
1628
- text-align: center;
1629
- }
1630
- .x-color-picker.pal-mode .hclr-box.selected {
1631
- border: 1px solid black;
1632
- }
1633
- .x-tree-view .x-scroll-view {
1634
- margin: 4px;
1635
- }
1636
- .x-tree-view .x-tree-item {
1637
- line-height: 1.5em;
1638
- white-space: nowrap;
1639
- overflow: hidden;
1640
- align-items: center;
1641
- }
1642
- .x-tree-view .x-tree-item span {
1643
- padding: 0 4px;
1644
- }
1645
- .x-tree-view .x-tree-item .tree-icon {
1646
- width: 2em;
1647
- color: #999;
1648
- height: 0.8em;
1649
- }
1650
- .x-tree-view .x-tree-item.selected {
1651
- background-color: var(--x4-selection-color);
1652
- color: var(--x4-selection-text);
1653
- }
1654
- .x-tree-view .x-tree-item.selected .tree-icon {
1655
- color: var(--x4-selection-text);
1656
- }
1657
- .x-tree-view .x-tree-item:hover {
1658
- background-color: var(--x4-hover-color);
1659
- color: var(--x4-hover-text);
1660
- }
1661
- .x-tree-view .x-tree-item:hover .tree-icon {
1662
- color: var(--x4-hover-text);
1663
- }
1664
- .x-tree-view .x-tree-item .indent {
1665
- position: absolute;
1666
- border-left: 1px solid rgba(0, 0, 0, 0.1);
1667
- height: 100%;
1668
- top: 0;
1669
- }
1670
- .x-tree-view .gadgets {
1671
- border-top: 1px solid rgba(0, 0, 0, 0.5);
1672
- background-color: rgba(0, 0, 0, 0.1);
1673
- }
1674
- .x-tree-view .gadgets .x-button {
1675
- background-color: transparent;
1676
- }
1677
- .x-tree-view .gadgets .x-button:hover {
1678
- background-color: white;
1679
- }
1680
- .x-tooltip.error {
1681
- background-color: var(--x4-error-color);
1682
- padding: 0 6px;
1683
- margin-left: 3px;
1684
- position: absolute;
1685
- border: 1px solid rgba(0, 0, 0, 0.3);
1686
- }
1687
- .x-tooltip.error .x-label {
1688
- background-color: transparent;
1689
- color: white;
1690
- font-size: inherit;
1691
- padding: 0;
1692
- }
1693
- .x-tooltip.error .x-icon {
1694
- display: none;
1695
- }
1696
- .x-text-edit.with-gadgets input {
1697
- border-right: none;
1698
- }
1699
- .x-text-edit.with-gadgets > .x-icon {
1700
- border: 1px solid rgba(0, 0, 0, 0.5);
1701
- width: 1.5em;
1702
- height: 100%;
1703
- line-height: 1.8em;
1704
- border-left: none;
1705
- }
1706
- .x-text-hiliter {
1707
- overflow: hidden;
1708
- }
1709
- .x-text-hiliter textarea {
1710
- font-family: monospace;
1711
- font-size: var(--x4-font-size);
1712
- padding: 2px;
1713
- resize: none;
1714
- outline: none;
1715
- border: 1px solid transparent;
1716
- width: 100%;
1717
- color: transparent;
1718
- background-color: transparent;
1719
- color: var(--gray-900);
1720
- -moz-tab-size: 4;
1721
- -o-tab-size: 4;
1722
- tab-size: 4;
1723
- }
1724
- .x-text-hiliter textarea:focus {
1725
- border: 1px solid var(--x4-selection-color);
1726
- }
1727
- .x-text-hiliter .x-syntax-hiliter {
1728
- font-family: monospace;
1729
- font-size: var(--x4-font-size);
1730
- padding: 2px;
1731
- border: 1px solid transparent;
1732
- overflow: hidden;
1733
- white-space: pre;
1734
- color: #5c5c5c;
1735
- background-color: white;
1736
- -moz-tab-size: 4;
1737
- -o-tab-size: 4;
1738
- tab-size: 4;
1739
- }
1740
- .x-text-hiliter .x-syntax-hiliter .num {
1741
- color: #008000;
1742
- }
1743
- .x-text-hiliter .x-syntax-hiliter .kword {
1744
- color: #000080;
1745
- }
1746
- .x-text-hiliter .x-syntax-hiliter .str {
1747
- color: #8b0000;
1748
- }
1749
- .x-text-hiliter .x-syntax-hiliter .cmt {
1750
- color: #8b008b;
1751
- background-color: rgba(139, 0, 139, 0.2);
1752
- }
1753
- .x-text-hiliter .x-syntax-hiliter .punc {
1754
- font-weight: bold;
1755
- color: black;
1756
- }
1757
- .x-list-view.virtual .x-list-item {
1758
- position: absolute;
1759
- left: 0;
1760
- right: 0;
1761
- }
1762
- .x-masonry {
1763
- display: grid;
1764
- grid-gap: 10px;
1765
- grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
1766
- grid-auto-rows: 10px;
1767
- }
1768
- .x-tab-bar {
1769
- border-bottom: 1px solid var(--gray-600);
1770
- background-color: var(--gray-100);
1771
- }
1772
- .x-tab-bar > .x-button {
1773
- border: none;
1774
- color: var(--gray-600);
1775
- }
1776
- .x-tab-bar > .x-button.selected {
1777
- font-weight: bold;
1778
- border-bottom: none;
1779
- color: var(--x4-selection-color);
1780
- background-color: transparent;
1781
- }
1782
- .x-tab-bar > .x-button:focus:not(.selected) {
1783
- text-decoration: underline;
1784
- color: black;
1785
- }