scitex 2.10.3__py3-none-any.whl → 2.11.0__py3-none-any.whl

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 (363) hide show
  1. scitex/__init__.py +1 -4
  2. scitex/__version__.py +1 -1
  3. scitex/_install_guide.py +14 -2
  4. scitex/bridge/_figrecipe.py +1 -1
  5. scitex/bridge/_helpers.py +1 -1
  6. scitex/bridge/_plt_vis.py +1 -1
  7. scitex/bridge/_stats_plt.py +1 -1
  8. scitex/bridge/_stats_vis.py +2 -2
  9. scitex/{fig → canvas}/__init__.py +84 -96
  10. scitex/{fig → canvas}/backend/_parser.py +1 -1
  11. scitex/{fig → canvas}/canvas.py +13 -14
  12. scitex/{fts/_fig/_editor → canvas/editor}/_defaults.py +2 -2
  13. scitex/{fig → canvas}/editor/edit/__init__.py +11 -14
  14. scitex/{fig → canvas}/editor/edit/bundle_resolver.py +56 -48
  15. scitex/{fig → canvas}/editor/edit/editor_launcher.py +79 -26
  16. scitex/{fts/_fig/_editor/_cui/_panel_loader.py → canvas/editor/edit/panel_loader.py} +8 -8
  17. scitex/{fts/_fig/_editor/_gui/_flask_editor → canvas/editor/flask_editor}/_bbox.py +2 -1
  18. scitex/{fts/_fig/_editor/_gui/_flask_editor → canvas/editor/flask_editor}/_core.py +84 -84
  19. scitex/{fts/_fig/_editor/_gui/_flask_editor → canvas/editor/flask_editor}/_renderer.py +7 -6
  20. scitex/{fts/_fig/_editor/_gui/_flask_editor → canvas/editor/flask_editor}/static/css/features/canvas.css +2 -2
  21. scitex/{fig → canvas}/editor/flask_editor/static/css/features/panel-grid.css +1 -1
  22. scitex/{fig → canvas}/editor/flask_editor/static/js/core/api.js +3 -4
  23. scitex/{fig → canvas}/editor/flask_editor/static/js/editor/preview.js +5 -5
  24. scitex/{fig → canvas}/editor/flask_editor/templates/_html.py +3 -3
  25. scitex/{fig → canvas}/editor/flask_editor/templates/_scripts.py +10 -10
  26. scitex/{fig → canvas}/editor/flask_editor/templates/_styles.py +3 -3
  27. scitex/{fig → canvas}/io/__init__.py +32 -38
  28. scitex/{fig → canvas}/io/_bundle.py +217 -154
  29. scitex/{fig → canvas}/io/_canvas.py +1 -1
  30. scitex/{fig → canvas}/io/_data.py +1 -1
  31. scitex/{fig → canvas}/io/_export.py +1 -1
  32. scitex/{fig → canvas}/io/_load.py +1 -1
  33. scitex/{fig → canvas}/io/_panel.py +1 -1
  34. scitex/{fig → canvas}/io/_save.py +1 -1
  35. scitex/{fig → canvas}/model/__init__.py +1 -1
  36. scitex/{fig → canvas}/model/_annotations.py +1 -1
  37. scitex/{fig → canvas}/model/_axes.py +1 -1
  38. scitex/{fig → canvas}/model/_figure.py +1 -1
  39. scitex/{fig → canvas}/model/_guides.py +1 -1
  40. scitex/{fig → canvas}/model/_plot.py +1 -1
  41. scitex/{fig → canvas}/model/_styles.py +1 -1
  42. scitex/{fig → canvas}/utils/__init__.py +1 -1
  43. scitex/cli/convert.py +10 -6
  44. scitex/diagram/README.md +7 -7
  45. scitex/io/__init__.py +7 -19
  46. scitex/io/_load.py +15 -19
  47. scitex/io/_load_modules/_canvas.py +2 -2
  48. scitex/io/_load_modules/_con.py +5 -5
  49. scitex/io/_load_modules/_eeg.py +16 -12
  50. scitex/io/_save.py +11 -16
  51. scitex/io/_save_modules/__init__.py +6 -10
  52. scitex/io/_save_modules/_canvas.py +3 -3
  53. scitex/io/_save_modules/_plot_bundle.py +112 -0
  54. scitex/io/_save_modules/{_pltz_stx.py → _plot_scitex.py} +7 -7
  55. scitex/io/_save_modules/_stx_bundle.py +16 -16
  56. scitex/io/bundle/README.md +89 -80
  57. scitex/{fts/_bundle/_FTS.py → io/bundle/_Bundle.py} +197 -95
  58. scitex/io/bundle/__init__.py +67 -35
  59. scitex/{fts/_bundle → io/bundle}/_children.py +32 -40
  60. scitex/io/bundle/_core.py +184 -97
  61. scitex/{fts/_bundle/_dataclasses/_Node.py → io/bundle/_dataclasses/_Spec.py} +29 -23
  62. scitex/{fts/_bundle/_dataclasses/_NodeRefs.py → io/bundle/_dataclasses/_SpecRefs.py} +6 -6
  63. scitex/{fts/_bundle → io/bundle}/_dataclasses/__init__.py +4 -4
  64. scitex/{fts/_bundle → io/bundle}/_loader.py +19 -19
  65. scitex/io/bundle/_manifest.py +99 -0
  66. scitex/{fts/_bundle → io/bundle}/_mpl_helpers.py +119 -28
  67. scitex/io/bundle/_nested.py +113 -100
  68. scitex/{fts/_bundle → io/bundle}/_saver.py +13 -14
  69. scitex/{fts/_bundle → io/bundle}/_storage.py +3 -3
  70. scitex/io/bundle/_types.py +41 -16
  71. scitex/{fts/_bundle → io/bundle}/_validation.py +20 -18
  72. scitex/io/bundle/_zip.py +21 -31
  73. scitex/{fts/_kinds → io/bundle/kinds}/_plot/_backend/_parser.py +1 -1
  74. scitex/{fts/_kinds → io/bundle/kinds}/_plot/_models/_Annotations.py +1 -1
  75. scitex/{fts/_kinds → io/bundle/kinds}/_plot/_models/_Axes.py +1 -1
  76. scitex/{fts/_kinds → io/bundle/kinds}/_plot/_models/_Figure.py +1 -1
  77. scitex/{fts/_fig → io/bundle/kinds/_plot}/_models/_Guides.py +1 -1
  78. scitex/{fts/_kinds → io/bundle/kinds}/_plot/_models/_Plot.py +1 -1
  79. scitex/{fts/_fig → io/bundle/kinds/_plot}/_models/_Styles.py +1 -1
  80. scitex/{fts/_kinds → io/bundle/kinds}/_plot/_utils/_plot_layout.py +1 -1
  81. scitex/{fts/_kinds → io/bundle/kinds}/_table/_latex/__init__.py +1 -1
  82. scitex/{fts/_kinds → io/bundle/kinds}/_table/_latex/_editor/_app.py +1 -1
  83. scitex/{fts/_tables → io/bundle/kinds/_table}/_latex/_export.py +1 -1
  84. scitex/{fts/_kinds → io/bundle/kinds}/_table/_latex/_figure_exporter.py +1 -1
  85. scitex/{fts/_kinds → io/bundle/kinds}/_table/_latex/_table_exporter.py +1 -1
  86. scitex/io/bundle/schemas/__init__.py +30 -0
  87. scitex/parallel/_run.py +5 -4
  88. scitex/path/_find.py +60 -83
  89. scitex/path/_get_module_path.py +23 -21
  90. scitex/path/_get_spath.py +6 -27
  91. scitex/path/_getsize.py +23 -9
  92. scitex/path/_increment_version.py +31 -38
  93. scitex/path/_mk_spath.py +26 -29
  94. scitex/path/_path.py +5 -12
  95. scitex/path/_split.py +27 -15
  96. scitex/path/_this_path.py +23 -9
  97. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin/__init__.py +2 -1
  98. scitex/plt/_subplots/_AxisWrapperMixins/__init__.py +2 -2
  99. scitex/plt/gallery/_generate.py +76 -50
  100. scitex/plt/io/__init__.py +17 -19
  101. scitex/plt/io/_bundle.py +99 -52
  102. scitex/plt/io/_layered_bundle.py +303 -168
  103. scitex/plt/utils/_csv_column_naming.py +250 -118
  104. scitex/schema/__init__.py +69 -73
  105. scitex/schema/_canvas.py +1 -1
  106. scitex/schema/_stats.py +2 -2
  107. scitex/stats/__init__.py +30 -33
  108. scitex/stats/_schema.py +1 -1
  109. scitex/stats/io/__init__.py +10 -11
  110. scitex/stats/io/_bundle.py +16 -16
  111. {scitex-2.10.3.dist-info → scitex-2.11.0.dist-info}/METADATA +190 -73
  112. {scitex-2.10.3.dist-info → scitex-2.11.0.dist-info}/RECORD +237 -360
  113. scitex/fig/editor/_defaults.py +0 -300
  114. scitex/fig/editor/edit/panel_loader.py +0 -232
  115. scitex/fig/editor/flask_editor/_bbox.py +0 -1299
  116. scitex/fig/editor/flask_editor/_core.py +0 -1429
  117. scitex/fig/editor/flask_editor/_renderer.py +0 -813
  118. scitex/fig/editor/flask_editor/static/css/features/canvas.css +0 -176
  119. scitex/fts/README.md +0 -262
  120. scitex/fts/TODO.md +0 -66
  121. scitex/fts/__init__.py +0 -90
  122. scitex/fts/_bundle/README_IN_BUNDLE.md +0 -102
  123. scitex/fts/_bundle/__init__.py +0 -38
  124. scitex/fts/_bundle/_utils/__init__.py +0 -55
  125. scitex/fts/_bundle/_utils/_const.py +0 -26
  126. scitex/fts/_bundle/_utils/_errors.py +0 -73
  127. scitex/fts/_bundle/_utils/_generate.py +0 -21
  128. scitex/fts/_bundle/_utils/_types.py +0 -76
  129. scitex/fts/_bundle/_zipbundle.py +0 -165
  130. scitex/fts/_fig/__init__.py +0 -22
  131. scitex/fts/_fig/_backend/_parser.py +0 -188
  132. scitex/fts/_fig/_editor/__init__.py +0 -14
  133. scitex/fts/_fig/_editor/_cui/__init__.py +0 -33
  134. scitex/fts/_fig/_editor/_cui/_backend_detector.py +0 -39
  135. scitex/fts/_fig/_editor/_cui/_bundle_resolver.py +0 -366
  136. scitex/fts/_fig/_editor/_cui/_editor_launcher.py +0 -175
  137. scitex/fts/_fig/_editor/_cui/_manual_handler.py +0 -52
  138. scitex/fts/_fig/_editor/_cui/_path_resolver.py +0 -66
  139. scitex/fts/_fig/_editor/_gui/__init__.py +0 -11
  140. scitex/fts/_fig/_editor/_gui/_flask_editor/__init__.py +0 -20
  141. scitex/fts/_fig/_editor/_gui/_flask_editor/_plotter.py +0 -664
  142. scitex/fts/_fig/_editor/_gui/_flask_editor/_utils.py +0 -79
  143. scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/base/reset.css +0 -41
  144. scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/base/typography.css +0 -16
  145. scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/base/variables.css +0 -85
  146. scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/components/buttons.css +0 -217
  147. scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/components/context-menu.css +0 -93
  148. scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/components/dropdown.css +0 -57
  149. scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/components/forms.css +0 -112
  150. scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/components/modal.css +0 -59
  151. scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/components/sections.css +0 -212
  152. scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/features/element-inspector.css +0 -190
  153. scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/features/loading.css +0 -59
  154. scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/features/overlay.css +0 -45
  155. scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/features/panel-grid.css +0 -95
  156. scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/features/selection.css +0 -101
  157. scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/features/statistics.css +0 -138
  158. scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/index.css +0 -31
  159. scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/layout/container.css +0 -7
  160. scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/layout/controls.css +0 -56
  161. scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/layout/preview.css +0 -78
  162. scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/alignment/axis.js +0 -314
  163. scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/alignment/basic.js +0 -107
  164. scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/alignment/distribute.js +0 -54
  165. scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/canvas/canvas.js +0 -172
  166. scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/canvas/dragging.js +0 -258
  167. scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/canvas/resize.js +0 -48
  168. scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/canvas/selection.js +0 -71
  169. scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/core/api.js +0 -288
  170. scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/core/state.js +0 -143
  171. scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/core/utils.js +0 -245
  172. scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/dev/element-inspector.js +0 -992
  173. scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/editor/bbox.js +0 -339
  174. scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/editor/element-drag.js +0 -286
  175. scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/editor/overlay.js +0 -371
  176. scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/editor/preview.js +0 -293
  177. scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/main.js +0 -426
  178. scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/shortcuts/context-menu.js +0 -152
  179. scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/shortcuts/keyboard.js +0 -265
  180. scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/ui/controls.js +0 -184
  181. scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/ui/download.js +0 -57
  182. scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/ui/help.js +0 -100
  183. scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/ui/theme.js +0 -34
  184. scitex/fts/_fig/_editor/_gui/_flask_editor/templates/__init__.py +0 -124
  185. scitex/fts/_fig/_editor/_gui/_flask_editor/templates/_html.py +0 -851
  186. scitex/fts/_fig/_editor/_gui/_flask_editor/templates/_scripts.py +0 -4932
  187. scitex/fts/_fig/_editor/_gui/_flask_editor/templates/_styles.py +0 -1657
  188. scitex/fts/_fig/_editor/_gui/_flask_editor.py +0 -36
  189. scitex/fts/_fig/_models/_Annotations.py +0 -115
  190. scitex/fts/_fig/_models/_Axes.py +0 -152
  191. scitex/fts/_fig/_models/_Figure.py +0 -138
  192. scitex/fts/_fig/_models/_Plot.py +0 -123
  193. scitex/fts/_fig/_utils/_plot_layout.py +0 -397
  194. scitex/fts/_kinds/_figure/_composite.py +0 -345
  195. scitex/fts/_kinds/_plot/_backend/__init__.py +0 -53
  196. scitex/fts/_kinds/_plot/_backend/_export.py +0 -165
  197. scitex/fts/_kinds/_plot/_backend/_render.py +0 -538
  198. scitex/fts/_kinds/_plot/_dataclasses/_ChannelEncoding.py +0 -46
  199. scitex/fts/_kinds/_plot/_dataclasses/_Encoding.py +0 -82
  200. scitex/fts/_kinds/_plot/_dataclasses/_Theme.py +0 -441
  201. scitex/fts/_kinds/_plot/_dataclasses/_TraceEncoding.py +0 -52
  202. scitex/fts/_kinds/_plot/_dataclasses/__init__.py +0 -47
  203. scitex/fts/_kinds/_plot/_models/_Guides.py +0 -104
  204. scitex/fts/_kinds/_plot/_models/_Styles.py +0 -245
  205. scitex/fts/_kinds/_plot/_models/__init__.py +0 -80
  206. scitex/fts/_kinds/_plot/_models/_plot_types/__init__.py +0 -156
  207. scitex/fts/_kinds/_plot/_models/_plot_types/_bar.py +0 -43
  208. scitex/fts/_kinds/_plot/_models/_plot_types/_box.py +0 -38
  209. scitex/fts/_kinds/_plot/_models/_plot_types/_distribution.py +0 -36
  210. scitex/fts/_kinds/_plot/_models/_plot_types/_errorbar.py +0 -60
  211. scitex/fts/_kinds/_plot/_models/_plot_types/_histogram.py +0 -30
  212. scitex/fts/_kinds/_plot/_models/_plot_types/_image.py +0 -61
  213. scitex/fts/_kinds/_plot/_models/_plot_types/_line.py +0 -57
  214. scitex/fts/_kinds/_plot/_models/_plot_types/_scatter.py +0 -30
  215. scitex/fts/_kinds/_plot/_models/_plot_types/_seaborn.py +0 -121
  216. scitex/fts/_kinds/_plot/_models/_plot_types/_violin.py +0 -36
  217. scitex/fts/_kinds/_plot/_utils/__init__.py +0 -129
  218. scitex/fts/_kinds/_plot/_utils/_auto_layout.py +0 -127
  219. scitex/fts/_kinds/_plot/_utils/_calc_bounds.py +0 -111
  220. scitex/fts/_kinds/_plot/_utils/_const_sizes.py +0 -48
  221. scitex/fts/_kinds/_plot/_utils/_convert_coords.py +0 -77
  222. scitex/fts/_kinds/_plot/_utils/_get_template.py +0 -178
  223. scitex/fts/_kinds/_plot/_utils/_normalize.py +0 -73
  224. scitex/fts/_kinds/_plot/_utils/_validate.py +0 -197
  225. scitex/fts/_kinds/_table/_latex/_export.py +0 -279
  226. scitex/fts/_stats/__init__.py +0 -48
  227. scitex/fts/_stats/_dataclasses/_Stats.py +0 -423
  228. scitex/fts/_stats/_dataclasses/__init__.py +0 -48
  229. scitex/fts/_tables/__init__.py +0 -65
  230. scitex/fts/_tables/_latex/__init__.py +0 -93
  231. scitex/fts/_tables/_latex/_editor/__init__.py +0 -11
  232. scitex/fts/_tables/_latex/_editor/_app.py +0 -725
  233. scitex/fts/_tables/_latex/_figure_exporter.py +0 -153
  234. scitex/fts/_tables/_latex/_stats_formatter.py +0 -274
  235. scitex/fts/_tables/_latex/_table_exporter.py +0 -362
  236. scitex/fts/_tables/_latex/_utils.py +0 -369
  237. scitex/fts/_tables/_latex/_validator.py +0 -445
  238. scitex/io/_save_modules/_pltz_bundle.py +0 -356
  239. /scitex/{fig → canvas}/README.md +0 -0
  240. /scitex/{fig → canvas}/backend/__init__.py +0 -0
  241. /scitex/{fig → canvas}/backend/_export.py +0 -0
  242. /scitex/{fig → canvas}/backend/_render.py +0 -0
  243. /scitex/{fig → canvas}/docs/CANVAS_ARCHITECTURE.md +0 -0
  244. /scitex/{fig → canvas}/editor/__init__.py +0 -0
  245. /scitex/{fig → canvas}/editor/_dearpygui_editor.py +0 -0
  246. /scitex/{fig → canvas}/editor/_flask_editor.py +0 -0
  247. /scitex/{fig → canvas}/editor/_mpl_editor.py +0 -0
  248. /scitex/{fig → canvas}/editor/_qt_editor.py +0 -0
  249. /scitex/{fig → canvas}/editor/_tkinter_editor.py +0 -0
  250. /scitex/{fig → canvas}/editor/edit/backend_detector.py +0 -0
  251. /scitex/{fig → canvas}/editor/edit/manual_handler.py +0 -0
  252. /scitex/{fig → canvas}/editor/edit/path_resolver.py +0 -0
  253. /scitex/{fig → canvas}/editor/flask_editor/__init__.py +0 -0
  254. /scitex/{fig → canvas}/editor/flask_editor/_plotter.py +0 -0
  255. /scitex/{fig → canvas}/editor/flask_editor/_utils.py +0 -0
  256. /scitex/{fig → canvas}/editor/flask_editor/static/css/base/reset.css +0 -0
  257. /scitex/{fig → canvas}/editor/flask_editor/static/css/base/typography.css +0 -0
  258. /scitex/{fig → canvas}/editor/flask_editor/static/css/base/variables.css +0 -0
  259. /scitex/{fig → canvas}/editor/flask_editor/static/css/components/buttons.css +0 -0
  260. /scitex/{fig → canvas}/editor/flask_editor/static/css/components/context-menu.css +0 -0
  261. /scitex/{fig → canvas}/editor/flask_editor/static/css/components/dropdown.css +0 -0
  262. /scitex/{fig → canvas}/editor/flask_editor/static/css/components/forms.css +0 -0
  263. /scitex/{fig → canvas}/editor/flask_editor/static/css/components/modal.css +0 -0
  264. /scitex/{fig → canvas}/editor/flask_editor/static/css/components/sections.css +0 -0
  265. /scitex/{fig → canvas}/editor/flask_editor/static/css/features/element-inspector.css +0 -0
  266. /scitex/{fig → canvas}/editor/flask_editor/static/css/features/loading.css +0 -0
  267. /scitex/{fig → canvas}/editor/flask_editor/static/css/features/overlay.css +0 -0
  268. /scitex/{fig → canvas}/editor/flask_editor/static/css/features/selection.css +0 -0
  269. /scitex/{fig → canvas}/editor/flask_editor/static/css/features/statistics.css +0 -0
  270. /scitex/{fig → canvas}/editor/flask_editor/static/css/index.css +0 -0
  271. /scitex/{fig → canvas}/editor/flask_editor/static/css/layout/container.css +0 -0
  272. /scitex/{fig → canvas}/editor/flask_editor/static/css/layout/controls.css +0 -0
  273. /scitex/{fig → canvas}/editor/flask_editor/static/css/layout/preview.css +0 -0
  274. /scitex/{fig → canvas}/editor/flask_editor/static/js/alignment/axis.js +0 -0
  275. /scitex/{fig → canvas}/editor/flask_editor/static/js/alignment/basic.js +0 -0
  276. /scitex/{fig → canvas}/editor/flask_editor/static/js/alignment/distribute.js +0 -0
  277. /scitex/{fig → canvas}/editor/flask_editor/static/js/canvas/canvas.js +0 -0
  278. /scitex/{fig → canvas}/editor/flask_editor/static/js/canvas/dragging.js +0 -0
  279. /scitex/{fig → canvas}/editor/flask_editor/static/js/canvas/resize.js +0 -0
  280. /scitex/{fig → canvas}/editor/flask_editor/static/js/canvas/selection.js +0 -0
  281. /scitex/{fig → canvas}/editor/flask_editor/static/js/core/state.js +0 -0
  282. /scitex/{fig → canvas}/editor/flask_editor/static/js/core/utils.js +0 -0
  283. /scitex/{fig → canvas}/editor/flask_editor/static/js/dev/element-inspector.js +0 -0
  284. /scitex/{fig → canvas}/editor/flask_editor/static/js/editor/bbox.js +0 -0
  285. /scitex/{fig → canvas}/editor/flask_editor/static/js/editor/element-drag.js +0 -0
  286. /scitex/{fig → canvas}/editor/flask_editor/static/js/editor/overlay.js +0 -0
  287. /scitex/{fig → canvas}/editor/flask_editor/static/js/main.js +0 -0
  288. /scitex/{fig → canvas}/editor/flask_editor/static/js/shortcuts/context-menu.js +0 -0
  289. /scitex/{fig → canvas}/editor/flask_editor/static/js/shortcuts/keyboard.js +0 -0
  290. /scitex/{fig → canvas}/editor/flask_editor/static/js/ui/controls.js +0 -0
  291. /scitex/{fig → canvas}/editor/flask_editor/static/js/ui/download.js +0 -0
  292. /scitex/{fig → canvas}/editor/flask_editor/static/js/ui/help.js +0 -0
  293. /scitex/{fig → canvas}/editor/flask_editor/static/js/ui/theme.js +0 -0
  294. /scitex/{fig → canvas}/editor/flask_editor/templates/__init__.py +0 -0
  295. /scitex/{fig → canvas}/io/_directory.py +0 -0
  296. /scitex/{fig → canvas}/model/_plot_types.py +0 -0
  297. /scitex/{fig → canvas}/utils/_defaults.py +0 -0
  298. /scitex/{fig → canvas}/utils/_validate.py +0 -0
  299. /scitex/{fts/_bundle → io/bundle}/_conversion/__init__.py +0 -0
  300. /scitex/{fts/_bundle → io/bundle}/_conversion/_bundle2dict.py +0 -0
  301. /scitex/{fts/_bundle → io/bundle}/_conversion/_dict2bundle.py +0 -0
  302. /scitex/{fts/_bundle → io/bundle}/_dataclasses/_Axes.py +0 -0
  303. /scitex/{fts/_bundle → io/bundle}/_dataclasses/_BBox.py +0 -0
  304. /scitex/{fts/_bundle → io/bundle}/_dataclasses/_ColumnDef.py +0 -0
  305. /scitex/{fts/_bundle → io/bundle}/_dataclasses/_DataFormat.py +0 -0
  306. /scitex/{fts/_bundle → io/bundle}/_dataclasses/_DataInfo.py +0 -0
  307. /scitex/{fts/_bundle → io/bundle}/_dataclasses/_DataSource.py +0 -0
  308. /scitex/{fts/_bundle → io/bundle}/_dataclasses/_SizeMM.py +0 -0
  309. /scitex/{fts/_bundle → io/bundle}/_extractors/__init__.py +0 -0
  310. /scitex/{fts/_bundle → io/bundle}/_extractors/_extract_bar.py +0 -0
  311. /scitex/{fts/_bundle → io/bundle}/_extractors/_extract_line.py +0 -0
  312. /scitex/{fts/_bundle → io/bundle}/_extractors/_extract_scatter.py +0 -0
  313. /scitex/{fts/_kinds → io/bundle/kinds}/__init__.py +0 -0
  314. /scitex/{fts/_kinds → io/bundle/kinds}/_figure/__init__.py +0 -0
  315. /scitex/{fts/_fig → io/bundle/kinds/_figure}/_composite.py +0 -0
  316. /scitex/{fts/_kinds → io/bundle/kinds}/_plot/__init__.py +0 -0
  317. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_backend/__init__.py +0 -0
  318. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_backend/_export.py +0 -0
  319. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_backend/_render.py +0 -0
  320. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_dataclasses/_ChannelEncoding.py +0 -0
  321. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_dataclasses/_Encoding.py +0 -0
  322. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_dataclasses/_Theme.py +0 -0
  323. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_dataclasses/_TraceEncoding.py +0 -0
  324. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_dataclasses/__init__.py +0 -0
  325. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_models/__init__.py +0 -0
  326. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_models/_plot_types/__init__.py +0 -0
  327. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_models/_plot_types/_bar.py +0 -0
  328. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_models/_plot_types/_box.py +0 -0
  329. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_models/_plot_types/_distribution.py +0 -0
  330. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_models/_plot_types/_errorbar.py +0 -0
  331. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_models/_plot_types/_histogram.py +0 -0
  332. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_models/_plot_types/_image.py +0 -0
  333. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_models/_plot_types/_line.py +0 -0
  334. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_models/_plot_types/_scatter.py +0 -0
  335. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_models/_plot_types/_seaborn.py +0 -0
  336. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_models/_plot_types/_violin.py +0 -0
  337. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_utils/__init__.py +0 -0
  338. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_utils/_auto_layout.py +0 -0
  339. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_utils/_calc_bounds.py +0 -0
  340. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_utils/_const_sizes.py +0 -0
  341. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_utils/_convert_coords.py +0 -0
  342. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_utils/_get_template.py +0 -0
  343. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_utils/_normalize.py +0 -0
  344. /scitex/{fts/_fig → io/bundle/kinds/_plot}/_utils/_validate.py +0 -0
  345. /scitex/{fts/_kinds → io/bundle/kinds}/_shape/__init__.py +0 -0
  346. /scitex/{fts/_kinds → io/bundle/kinds}/_stats/__init__.py +0 -0
  347. /scitex/{fts/_kinds → io/bundle/kinds}/_stats/_dataclasses/_Stats.py +0 -0
  348. /scitex/{fts/_kinds → io/bundle/kinds}/_stats/_dataclasses/__init__.py +0 -0
  349. /scitex/{fts/_kinds → io/bundle/kinds}/_table/__init__.py +0 -0
  350. /scitex/{fts/_kinds → io/bundle/kinds}/_table/_latex/_editor/__init__.py +0 -0
  351. /scitex/{fts/_kinds → io/bundle/kinds}/_table/_latex/_stats_formatter.py +0 -0
  352. /scitex/{fts/_kinds → io/bundle/kinds}/_table/_latex/_utils.py +0 -0
  353. /scitex/{fts/_kinds → io/bundle/kinds}/_table/_latex/_validator.py +0 -0
  354. /scitex/{fts/_kinds → io/bundle/kinds}/_text/__init__.py +0 -0
  355. /scitex/{fts/_schemas → io/bundle/schemas}/data_info.schema.json +0 -0
  356. /scitex/{fts/_schemas → io/bundle/schemas}/encoding.schema.json +0 -0
  357. /scitex/{fts/_schemas → io/bundle/schemas}/node.schema.json +0 -0
  358. /scitex/{fts/_schemas → io/bundle/schemas}/render_manifest.schema.json +0 -0
  359. /scitex/{fts/_schemas → io/bundle/schemas}/stats.schema.json +0 -0
  360. /scitex/{fts/_schemas → io/bundle/schemas}/theme.schema.json +0 -0
  361. {scitex-2.10.3.dist-info → scitex-2.11.0.dist-info}/WHEEL +0 -0
  362. {scitex-2.10.3.dist-info → scitex-2.11.0.dist-info}/entry_points.txt +0 -0
  363. {scitex-2.10.3.dist-info → scitex-2.11.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,59 +0,0 @@
1
- /* =============================================================================
2
- * Modal & Status Bar
3
- * ============================================================================= */
4
- .status-bar {
5
- margin-top: 16px;
6
- padding: 10px 12px;
7
- border-radius: 4px;
8
- background: var(--bg-muted);
9
- font-size: 0.8em;
10
- color: var(--text-secondary);
11
- border-left: 3px solid var(--status-success);
12
- }
13
-
14
- .status-bar.error {
15
- border-left-color: var(--status-error);
16
- }
17
-
18
- /* Element Statistics */
19
- .element-stats {
20
- margin-top: 12px;
21
- padding: 10px;
22
- background: var(--bg-muted);
23
- border-radius: 4px;
24
- border: 1px solid var(--border-muted);
25
- }
26
-
27
- .stats-header {
28
- font-size: 0.8em;
29
- font-weight: 600;
30
- color: var(--text-secondary);
31
- margin-bottom: 8px;
32
- text-transform: uppercase;
33
- letter-spacing: 0.5px;
34
- }
35
-
36
- .stats-grid {
37
- display: grid;
38
- grid-template-columns: repeat(3, 1fr);
39
- gap: 8px;
40
- }
41
-
42
- .stat-item {
43
- display: flex;
44
- flex-direction: column;
45
- gap: 2px;
46
- }
47
-
48
- .stat-label {
49
- font-size: 0.7em;
50
- color: var(--text-muted);
51
- text-transform: uppercase;
52
- }
53
-
54
- .stat-value {
55
- font-size: 0.85em;
56
- font-weight: 500;
57
- color: var(--text-primary);
58
- font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;
59
- }
@@ -1,212 +0,0 @@
1
- /* =============================================================================
2
- * Section Headers & Collapsible Sections
3
- * ============================================================================= */
4
- .section {
5
- margin-top: 10px;
6
- }
7
-
8
- .section-header {
9
- font-size: 0.72em;
10
- font-weight: 600;
11
- text-transform: uppercase;
12
- letter-spacing: 0.5px;
13
- color: var(--text-inverse);
14
- background: var(--status-success);
15
- padding: 6px 10px;
16
- border-radius: 4px;
17
- margin-bottom: 8px;
18
- }
19
-
20
- /* Subsection Headers (for grouped controls like X/Y axis settings) */
21
- .subsection-header {
22
- font-size: 0.68em;
23
- font-weight: 600;
24
- text-transform: uppercase;
25
- letter-spacing: 0.3px;
26
- color: var(--text-secondary);
27
- padding: 4px 6px;
28
- margin-bottom: 6px;
29
- margin-top: 8px;
30
- background: var(--bg-muted);
31
- border-left: 2px solid var(--status-success);
32
- border-radius: 0 4px 4px 0;
33
- }
34
-
35
- .subsection-header:first-child {
36
- margin-top: 0;
37
- }
38
-
39
- /* Section Hints */
40
- .section-hint {
41
- font-size: 0.75em;
42
- color: var(--text-muted);
43
- font-style: italic;
44
- margin-bottom: 10px;
45
- padding: 6px 8px;
46
- background: var(--bg-muted);
47
- border-radius: 4px;
48
- border-left: 2px solid var(--border-default);
49
- }
50
-
51
- /* Collapsible Sections */
52
- .section-toggle {
53
- cursor: pointer;
54
- display: flex;
55
- align-items: center;
56
- gap: 8px;
57
- }
58
-
59
- .section-toggle::before {
60
- content: "\25BC";
61
- font-size: 0.7em;
62
- transition: transform 0.2s;
63
- }
64
-
65
- .section-toggle.collapsed::before {
66
- transform: rotate(-90deg);
67
- }
68
-
69
- .section-content {
70
- overflow: hidden;
71
- transition: max-height 0.3s ease;
72
- }
73
-
74
- .section-content.collapsed {
75
- max-height: 0 !important;
76
- }
77
-
78
- /* Selected Element Panel */
79
- #section-selected {
80
- border: 2px solid var(--accent-muted);
81
- background: var(--bg-secondary);
82
- }
83
-
84
- #section-selected .section-header {
85
- background: var(--accent-muted);
86
- color: var(--text-primary);
87
- font-weight: 600;
88
- }
89
-
90
- .selected-info {
91
- display: flex;
92
- align-items: center;
93
- gap: 10px;
94
- margin-bottom: 12px;
95
- padding: 8px;
96
- background: var(--bg-primary);
97
- border-radius: 4px;
98
- }
99
-
100
- .element-type-badge {
101
- padding: 4px 10px;
102
- border-radius: 12px;
103
- font-size: 11px;
104
- font-weight: 600;
105
- text-transform: uppercase;
106
- }
107
-
108
- .element-type-badge.trace { background: #3498db; color: white; }
109
- .element-type-badge.scatter { background: #e74c3c; color: white; }
110
- .element-type-badge.fill { background: #9b59b6; color: white; }
111
- .element-type-badge.bar { background: #f39c12; color: white; }
112
- .element-type-badge.label { background: #2ecc71; color: white; }
113
- .element-type-badge.panel { background: #34495e; color: white; }
114
- .element-type-badge.legend { background: #1abc9c; color: white; }
115
-
116
- .element-axis-info {
117
- font-size: 12px;
118
- color: var(--text-secondary);
119
- }
120
-
121
- .element-props {
122
- border-top: 1px solid var(--border-color);
123
- padding-top: 12px;
124
- margin-top: 8px;
125
- }
126
-
127
- /* Traces Section */
128
- .traces-list {
129
- max-height: 200px;
130
- overflow-y: auto;
131
- border: 1px solid var(--border-muted);
132
- border-radius: 4px;
133
- background: var(--bg-muted);
134
- }
135
-
136
- .trace-item {
137
- display: flex;
138
- align-items: center;
139
- gap: 8px;
140
- padding: 8px 10px;
141
- border-bottom: 1px solid var(--border-muted);
142
- font-size: 0.85em;
143
- }
144
-
145
- .trace-item:last-child {
146
- border-bottom: none;
147
- }
148
-
149
- .trace-item-highlight {
150
- background: var(--status-success);
151
- color: var(--text-inverse);
152
- animation: traceHighlightFade 1.5s ease-out forwards;
153
- }
154
-
155
- @keyframes traceHighlightFade {
156
- 0% { background: var(--status-success); }
157
- 100% { background: var(--bg-muted); }
158
- }
159
-
160
- .trace-color {
161
- width: 24px;
162
- height: 24px;
163
- border-radius: 4px;
164
- border: 1px solid var(--border-default);
165
- cursor: pointer;
166
- }
167
-
168
- .trace-label {
169
- flex: 1;
170
- color: var(--text-primary);
171
- }
172
-
173
- .trace-style select {
174
- padding: 4px 6px;
175
- font-size: 0.8em;
176
- border: 1px solid var(--border-muted);
177
- border-radius: 3px;
178
- background: var(--bg-surface);
179
- color: var(--text-primary);
180
- }
181
-
182
- /* Annotations */
183
- .annotations-list {
184
- margin-top: 10px;
185
- max-height: 120px;
186
- overflow-y: auto;
187
- }
188
-
189
- .annotation-item {
190
- display: flex;
191
- justify-content: space-between;
192
- align-items: center;
193
- padding: 6px 10px;
194
- background: var(--bg-muted);
195
- border-radius: 4px;
196
- margin-bottom: 5px;
197
- font-size: 0.85em;
198
- }
199
-
200
- .annotation-item span {
201
- color: var(--text-primary);
202
- }
203
-
204
- .annotation-item button {
205
- padding: 3px 8px;
206
- font-size: 0.75em;
207
- background: var(--status-error);
208
- border: none;
209
- border-radius: 3px;
210
- color: white;
211
- cursor: pointer;
212
- }
@@ -1,190 +0,0 @@
1
- /**
2
- * Element Inspector Styles
3
- * Visual debugging tool for HTML elements
4
- * Toggle with Alt+I
5
- */
6
-
7
- /* ============================================================================
8
- * Element Boxes
9
- * ============================================================================ */
10
- .element-inspector-box {
11
- position: absolute;
12
- border: 2px solid;
13
- box-sizing: border-box;
14
- pointer-events: auto;
15
- cursor: pointer;
16
- transition: all 0.2s;
17
- background: rgba(255, 255, 255, 0.01);
18
- }
19
-
20
- .element-inspector-box:hover {
21
- border-width: 3px;
22
- background: rgba(59, 130, 246, 0.1);
23
- box-shadow:
24
- 0 0 0 2px rgba(255, 255, 255, 0.6),
25
- 0 0 15px rgba(59, 130, 246, 0.4);
26
- }
27
-
28
- .element-inspector-box.highlighted {
29
- border-width: 4px;
30
- z-index: 999999;
31
- background: rgba(59, 130, 246, 0.2);
32
- box-shadow:
33
- 0 0 0 3px rgba(255, 255, 255, 0.9),
34
- 0 0 30px rgba(59, 130, 246, 0.8),
35
- inset 0 0 30px rgba(59, 130, 246, 0.3);
36
- animation: inspector-pulse 1s ease-in-out infinite;
37
- }
38
-
39
- @keyframes inspector-pulse {
40
- 0%, 100% {
41
- box-shadow:
42
- 0 0 0 3px rgba(255, 255, 255, 0.9),
43
- 0 0 30px rgba(59, 130, 246, 0.8),
44
- inset 0 0 30px rgba(59, 130, 246, 0.3);
45
- }
46
- 50% {
47
- box-shadow:
48
- 0 0 0 4px rgba(255, 255, 255, 1),
49
- 0 0 40px rgba(59, 130, 246, 1),
50
- inset 0 0 40px rgba(59, 130, 246, 0.4);
51
- }
52
- }
53
-
54
- /* ============================================================================
55
- * Element Labels
56
- * ============================================================================ */
57
- .element-inspector-label {
58
- position: absolute;
59
- background: rgba(0, 0, 0, 0.9);
60
- color: white;
61
- padding: 1px 4px;
62
- font-size: 10px;
63
- font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
64
- border-radius: 2px;
65
- white-space: nowrap;
66
- pointer-events: auto;
67
- cursor: pointer;
68
- z-index: 1000000;
69
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
70
- line-height: 1.4;
71
- max-width: 300px;
72
- overflow: hidden;
73
- text-overflow: ellipsis;
74
- transition: background 0.2s, transform 0.1s;
75
- }
76
-
77
- .element-inspector-label:hover {
78
- background: rgba(30, 30, 30, 0.95);
79
- transform: scale(1.05);
80
- box-shadow: 0 2px 6px rgba(0, 0, 0, 0.7);
81
- }
82
-
83
- .element-inspector-label:active {
84
- transform: scale(0.98);
85
- }
86
-
87
- .element-inspector-label-tag {
88
- color: #CE9178;
89
- }
90
-
91
- .element-inspector-label-id {
92
- color: #4EC9B0;
93
- font-weight: bold;
94
- }
95
-
96
- .element-inspector-label-class {
97
- color: #9CDCFE;
98
- }
99
-
100
- /* ============================================================================
101
- * Selection Mode
102
- * ============================================================================ */
103
- .selection-overlay {
104
- position: fixed !important;
105
- top: 0 !important;
106
- left: 0 !important;
107
- width: 100% !important;
108
- height: 100% !important;
109
- background: rgba(0, 0, 0, 0.3) !important;
110
- pointer-events: none !important;
111
- z-index: 2147483646 !important;
112
- }
113
-
114
- body.element-inspector-selection-mode,
115
- body.element-inspector-selection-mode * {
116
- cursor: crosshair !important;
117
- }
118
-
119
- .selection-rectangle {
120
- position: fixed !important;
121
- border: 2px dotted rgba(59, 130, 246, 1) !important;
122
- background: transparent !important;
123
- pointer-events: none !important;
124
- z-index: 2147483647 !important;
125
- box-shadow: 0 0 0 99999px rgba(0, 0, 0, 0.3) !important;
126
- }
127
-
128
- /* ============================================================================
129
- * Notifications
130
- * ============================================================================ */
131
- .element-inspector-notification {
132
- position: fixed;
133
- top: 16px;
134
- right: 16px;
135
- padding: 10px 20px;
136
- color: white;
137
- border-radius: 6px;
138
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
139
- font-size: 13px;
140
- font-weight: 600;
141
- z-index: 10000000;
142
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
143
- opacity: 0;
144
- transform: translateY(-10px) scale(0.95);
145
- transition: opacity 0.2s ease, transform 0.2s ease;
146
- }
147
-
148
- .element-inspector-notification.success {
149
- background: rgba(16, 185, 129, 0.95);
150
- }
151
-
152
- .element-inspector-notification.error {
153
- background: rgba(239, 68, 68, 0.95);
154
- }
155
-
156
- .element-inspector-notification.visible {
157
- opacity: 1;
158
- transform: translateY(0) scale(1);
159
- }
160
-
161
- /* ============================================================================
162
- * Camera Flash
163
- * ============================================================================ */
164
- .camera-flash {
165
- position: fixed;
166
- top: 0;
167
- left: 0;
168
- width: 100%;
169
- height: 100%;
170
- background: white;
171
- pointer-events: none;
172
- z-index: 99999999;
173
- animation: cameraFlash 0.3s ease-out;
174
- }
175
-
176
- @keyframes cameraFlash {
177
- 0% { opacity: 0; }
178
- 20% { opacity: 0.8; }
179
- 100% { opacity: 0; }
180
- }
181
-
182
- /* ============================================================================
183
- * Responsive
184
- * ============================================================================ */
185
- @media (max-width: 768px) {
186
- .element-inspector-label {
187
- font-size: 8px;
188
- padding: 1px 3px;
189
- }
190
- }
@@ -1,59 +0,0 @@
1
- /* =============================================================================
2
- * Loading Spinner Overlay
3
- * ============================================================================= */
4
- .loading-overlay {
5
- position: absolute;
6
- top: 0;
7
- left: 0;
8
- right: 0;
9
- bottom: 0;
10
- background: rgba(0, 0, 0, 0.3);
11
- display: flex;
12
- align-items: center;
13
- justify-content: center;
14
- z-index: 100;
15
- border-radius: 8px;
16
- }
17
-
18
- /* Global loading overlay - non-intrusive top bar style */
19
- .global-loading-overlay {
20
- position: fixed;
21
- top: 0;
22
- left: 0;
23
- width: 100%;
24
- height: 36px;
25
- background: var(--workspace-bg-elevated);
26
- border-bottom: 1px solid var(--workspace-border-default);
27
- display: flex;
28
- align-items: center;
29
- justify-content: center;
30
- z-index: 9999;
31
- gap: 8px;
32
- box-shadow: 0 2px 8px rgba(0,0,0,0.1);
33
- }
34
-
35
- .global-loading-overlay .loading-text {
36
- color: var(--text-secondary);
37
- font-size: 12px;
38
- font-weight: 500;
39
- }
40
-
41
- .spinner {
42
- width: 16px;
43
- height: 16px;
44
- border: 2px solid var(--scitex-06);
45
- border-top: 2px solid var(--status-success);
46
- border-radius: 50%;
47
- animation: spin 0.6s linear infinite;
48
- }
49
-
50
- .spinner-small {
51
- width: 14px;
52
- height: 14px;
53
- border-width: 2px;
54
- }
55
-
56
- @keyframes spin {
57
- 0% { transform: rotate(0deg); }
58
- 100% { transform: rotate(360deg); }
59
- }
@@ -1,45 +0,0 @@
1
- /* =============================================================================
2
- * Debug Overlays
3
- * ============================================================================= */
4
-
5
- /* Debug mode - show all hit areas */
6
- .debug-rect {
7
- fill: rgba(255, 0, 0, 0.15);
8
- stroke: rgba(255, 0, 0, 0.6);
9
- stroke-width: 1;
10
- stroke-dasharray: 4 2;
11
- pointer-events: none;
12
- }
13
-
14
- .debug-rect-trace {
15
- fill: rgba(0, 255, 0, 0.15);
16
- stroke: rgba(0, 200, 0, 0.8);
17
- stroke-width: 1;
18
- stroke-dasharray: 3 2;
19
- pointer-events: none;
20
- }
21
-
22
- .debug-rect-legend {
23
- fill: rgba(255, 165, 0, 0.2);
24
- stroke: rgba(255, 140, 0, 0.8);
25
- stroke-width: 1;
26
- stroke-dasharray: 3 2;
27
- pointer-events: none;
28
- }
29
-
30
- .debug-label {
31
- font-size: 8px;
32
- fill: rgba(255, 0, 0, 0.9);
33
- pointer-events: none;
34
- font-family: monospace;
35
- }
36
-
37
- .debug-path {
38
- fill: none;
39
- stroke: rgba(0, 200, 0, 0.7);
40
- stroke-width: 2;
41
- stroke-linecap: round;
42
- stroke-linejoin: round;
43
- stroke-dasharray: 5 3;
44
- pointer-events: none;
45
- }
@@ -1,95 +0,0 @@
1
- /* =============================================================================
2
- * Panel Grid View (for multi-panel figz bundles)
3
- * ============================================================================= */
4
- .panel-grid-section {
5
- width: 100%;
6
- margin-bottom: 20px;
7
- background: var(--workspace-bg-elevated);
8
- border-radius: 8px;
9
- padding: 16px;
10
- box-shadow: 0 2px 8px rgba(0,0,0,0.1);
11
- }
12
-
13
- .panel-grid-header {
14
- display: flex;
15
- justify-content: space-between;
16
- align-items: center;
17
- margin-bottom: 12px;
18
- }
19
-
20
- .panel-grid-header h3 {
21
- font-size: 1em;
22
- font-weight: 600;
23
- color: var(--text-primary);
24
- margin: 0;
25
- }
26
-
27
- .panel-grid {
28
- display: grid;
29
- grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
30
- gap: 12px;
31
- }
32
-
33
- .panel-card {
34
- background: var(--preview-bg);
35
- background-size: 16px 16px;
36
- background-position: 0 0, 0 8px, 8px -8px, -8px 0px;
37
- border-radius: 6px;
38
- overflow: hidden;
39
- cursor: pointer;
40
- transition: all 0.2s ease;
41
- border: 2px solid transparent;
42
- position: relative;
43
- }
44
-
45
- .panel-card:hover {
46
- border-color: var(--color-cta);
47
- transform: translateY(-2px);
48
- box-shadow: 0 4px 12px rgba(0,0,0,0.15);
49
- }
50
-
51
- .panel-card.active {
52
- border-color: var(--status-success);
53
- box-shadow: 0 0 0 2px var(--status-success);
54
- }
55
-
56
- .panel-card img {
57
- width: 100%;
58
- height: auto;
59
- display: block;
60
- }
61
-
62
- .panel-card-container {
63
- position: relative;
64
- display: inline-block;
65
- width: 100%;
66
- }
67
-
68
- .panel-card-overlay {
69
- position: absolute;
70
- top: 0;
71
- left: 0;
72
- pointer-events: none;
73
- z-index: 5;
74
- }
75
-
76
- .panel-card-label {
77
- position: absolute;
78
- top: 6px;
79
- left: 6px;
80
- background: rgba(0,0,0,0.7);
81
- color: white;
82
- padding: 3px 8px;
83
- border-radius: 4px;
84
- font-size: 0.75em;
85
- font-weight: 600;
86
- }
87
-
88
- .panel-card-loading {
89
- display: flex;
90
- align-items: center;
91
- justify-content: center;
92
- min-height: 120px;
93
- color: var(--text-muted);
94
- font-size: 0.85em;
95
- }