Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Styling fixes for rjsm Settings Editor: remove accordions, rework "Restore to defaults" button, add placeholder #14074

Merged

Conversation

andrii-i
Copy link
Contributor

@andrii-i andrii-i commented Feb 24, 2023

References

Code changes

Remove accordions from Settings Editor, rework "Restore to defaults" button to be shown as a part of "button bar" area, add placeholder for when no plugin is chosen from pluginlist to rjsm, reuse it for JSON editor as well.

On search, stack of plugins with matching fields would be shown (in line with for example VSCode).

new_settings_editor

User-facing changes

  • No accordions
  • When no plugin is chosen from pluginlist, placholder screen with instructions is shown. When plugin is chosen, react json schema for that plugin is shown. When search is used, stack of all plugins with matching fields is shown.
  • Restore to defaults button is now of "confirm" color (blue) and is positioned lower

Current head-of-master:
Screenshot 2023-02-23 at 5 35 54 PM

With this change:
Screenshot 2023-03-30 at 3 17 45 PM
image

Backwards-incompatible changes

None

@jupyterlab-probot
Copy link

Thanks for making a pull request to jupyterlab!
To try out this branch on binder, follow this link: Binder

@andrii-i andrii-i added bug pkg:settingeditor tag:Design and UX tag:Design System CSS If a PR is editing any CSS files please add this tag for design team to review. labels Feb 24, 2023
@github-actions github-actions bot added Design System CSS tag:CSS For general CSS related issues and pecadilloes and removed tag:Design and UX labels Feb 24, 2023
@andrii-i andrii-i force-pushed the settings-editor-header-no-description branch from edd056b to 7a0cca2 Compare February 24, 2023 18:07
@andrii-i
Copy link
Contributor Author

bot please update snapshots

@andrii-i
Copy link
Contributor Author

Alternative version in #14073 with descriptions present. I think it looks more bunched up while not being more informative:
Screenshot 2023-02-24 at 12 49 16 PM

@github-actions
Copy link
Contributor

github-actions bot commented Feb 24, 2023

Benchmark report

The execution time (in milliseconds) are grouped by test file, test type and browser.
For each case, the following values are computed: min <- [1st quartile - median - 3rd quartile] -> max.

The mean relative comparison is computed with 95% confidence.

Results table
Test file large_code_notebook large_md_notebook
open
chromium
actual 664 <- [733 - 768 - 820] -> 941 860 <- [1061 - 1582 - 1640] -> 1939
expected 662 <- [736 - 767 - 811] -> 1219 876 <- [1129 - 1596 - 1656] -> 2038
Mean relative change -0.1% ± 2.7% -2.4% ± 5.7%
switch-from
chromium
actual 811 <- [874 - 889 - 912] -> 995 367 <- [435 - 463 - 482] -> 554
expected 751 <- [850 - 879 - 907] -> 1095 370 <- [435 - 474 - 501] -> 583
Mean relative change 0.5% ± 1.6% -1.6% ± 2.4%
switch-to
chromium
actual 1482 <- [1618 - 1648 - 1685] -> 1909 1081 <- [1134 - 1149 - 1168] -> 1242
expected 1480 <- [1601 - 1644 - 1699] -> 2087 1090 <- [1134 - 1157 - 1172] -> 1270
Mean relative change -0.2% ± 1.5% -0.4% ± 0.8%
close
chromium
actual 158 <- [187 - 195 - 206] -> 236 231 <- [254 - 264 - 273] -> 314
expected 156 <- [182 - 190 - 207] -> 245 225 <- [256 - 266 - 273] -> 307
Mean relative change 1.0% ± 2.5% -0.7% ± 1.5%

Changes are computed with expected as reference.

@jupyterlab/benchmarks@1.0.0 test:mocha
mocha ./tests/

Waiting for localhost:8888
localhost:8888 is up

Cell memory leaks

Create a code cell Memory change: +150 kB Leak detected: Yes

Leaking objects:

Object # added Retained size increase
ArraySearchMarker 1 +5 B
ContentDeleted 1 +16 B
ContentString 1 +69 B
Detached Text 1 +77 B
FocusTracker 1 +276 B
ObservableList 1 +60 B
OutputArea 1 +1.4 kB
OutputAreaModel 1 +115 B
Promise 1 +20 B
PromiseDelegate 1 +128 B
ResizeHandle 1 +47 B
RestorablePool 1 +304 B
UndoManager 1 +1.93 kB
WidgetTracker 1 +980 B
YArray 1 +164 B
YCodeCell 1 +107 B
YText 1 +244 B
Detached DOMStringMap 2 +96 B
Detached V8EventHandlerNonNull 2 +80 B
Set 2 +1.21 kB
YMap 2 +464 B
StackItem 3 +1.32 kB
ContentAny 4 +241 B
ContentType 4 +64 B
DeleteItem 4 +80 B
DeleteSet 6 +988 B
Detached HTMLCollection 6 +580 B
EventHandler 8 +239 B
ID 10 +320 B
Item 10 +1.21 kB
Detached DOMTokenList 13 +848 B
Detached Attr 14 +1.12 kB
Detached HTMLDivElement 14 +47 kB
Map 17 +2.48 kB
Signal 19 +319 B
Array 44 +5.54 kB
Detached V8EventListener 263 +23.4 kB
Detached EventListener 265 +42.6 kB
(closure) 270 +20.8 kB
Detached InternalNode 323 +45.3 kB

Leaking collections:

Type Change Preview Size increased at
Array +2 [StackItem, ...]
UndoManager.afterTransactionHandler  http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:5064:15
webpack://jupyterlab/node_modules/lib0/observable.js:73:62
Array.forEach <anonymous>
webpack://jupyterlab/node_modules/lib0/observable.js:73:62
Array.<anonymous> http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:4720:27
webpack://jupyterlab/node_modules/lib0/function.js:19:0
cleanupTransactions http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:4722:62
transact http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:4843:9
Doc.transact http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:2050:5
Array +10 [Item, ...]
addStruct                    http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:4295:11
Item.integrate http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:11118:7
<unknown> http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:6651:22
Array.forEach <anonymous>
typeListInsertGenericsAfter http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:6624:11
typeListInsertGenerics http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:6711:10
<unknown> http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:7039:9
transact http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:4829:14
YArray.insert http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:7038:7
Set +1 Set((anonymous function), ...)
                          webpack://jupyterlab/node_modules/lib0/observable.js:30:56                                                                                     
Doc.on http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:2209:11
new UndoManager http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:5084:14
YCodeCell.setUndoManager http://localhost:8888/static/lab/vendors-node_modules_jupyter_ydoc_lib_index_js-node_modules_process_browser_js.a4c17770813817b2b11a.js:398:33
<unknown> http://localhost:8888/static/lab/vendors-node_modules_jupyter_ydoc_lib_index_js-node_modules_process_browser_js.a4c17770813817b2b11a.js:1589:15
Array.forEach <anonymous>
YNotebook.insertCells http://localhost:8888/static/lab/vendors-node_modules_jupyter_ydoc_lib_index_js-node_modules_process_browser_js.a4c17770813817b2b11a.js:1588:16
YNotebook.insertCell http://localhost:8888/static/lab/vendors-node_modules_jupyter_ydoc_lib_index_js-node_modules_process_browser_js.a4c17770813817b2b11a.js:1569:21
webpack://jupyterlab/packages/notebook/src/actions.tsx:416:22
Create a markdown cell Memory change: -105 kB Leak detected: No

Leaking objects:

Object # added Retained size increase
ActivityMonitor 1 +294 B
ArraySearchMarker 1 +5 B
AttachmentsModel 1 +193 B
AttachmentsResolver 1 +14 B
CodeCellModel 1 +177 B
ContentString 1 +69 B
Debouncer 1 +3.46 kB
Detached HTMLAnchorElement 1 +316 B
Detached HTMLButtonElement 1 +5.31 kB
Detached HTMLHeadingElement 1 +1.04 kB
Error 1 +3.06 kB
MarkdownCell 1 +4.72 kB
MarkdownCellModel 1 +237 B
Poll 1 +3.7 kB
RenderMimeRegistry 1 +227 B
RenderedMarkdown 1 +66 B
Transaction 1 +860 B
TypeError 1 +306 B
YArray 1 +164 B
YArrayEvent 1 +357 B
YCodeCell 1 +107 B
YMarkdownCell 1 +45 B
Detached CSSStyleDeclaration 2 +124 B
Detached HTMLElement 2 +336 B
Detached V8EventHandlerNonNull 2 +5.04 kB
Promise 2 +3.06 kB
PromiseDelegate 2 +3.27 kB
UndoManager 2 +2.38 kB
YText 2 +479 B
Detached DOMStringMap 3 +140 B
ObservableMap 3 +381 B
StackItem 3 +1.33 kB
DeleteItem 4 +80 B
YMap 4 +872 B
ContentAny 6 +498 B
DeleteSet 6 +1 kB
ContentType 7 +112 B
Detached Text 7 +532 B
Set 8 +1.78 kB
Detached HTMLDivElement 10 +30.6 kB
Detached DOMTokenList 13 +816 B
EventHandler 14 +448 B
ID 14 +448 B
Item 14 +1.85 kB
Detached HTMLCollection 17 +1.77 kB
Map 27 +12.3 kB
Signal 28 +594 B
Array 75 +27 kB
Detached V8EventListener 130 +10.9 kB
Detached EventListener 132 +25.5 kB
(closure) 152 +20 kB
Detached InternalNode 162 +28.3 kB

Leaking collections:

Type Change Preview Size increased at
Array +1 [{signal, slot, thisArg}, ...]
Object.connect  http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:10493:17
Signal.connect http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:10233:24
webpack://jupyterlab/packages/notebook/src/notebooktools.ts:226:33
invokeSlot http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:10702:18
Object.emit http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:10660:17
Signal.emit http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:10259:17
webpack://jupyterlab/packages/notebook/src/tracker.ts:90:30
invokeSlot http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:10702:18
Object.emit http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:10660:17
Array +1 [{signal, slot, thisArg}, ...]
Object.connect  http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:10493:17
Signal.connect http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:10233:24
webpack://jupyterlab/packages/cell-toolbar/src/celltoolbartracker.ts:121:37
invokeSlot http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:10702:18
Object.emit http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:10660:17
Signal.emit http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:10259:17
webpack://jupyterlab/packages/notebook/src/widget.ts:1352:30
webpack://jupyterlab/packages/notebook/src/actions.tsx:427:28
webpack://jupyterlab/packages/notebook-extension/src/index.ts:2745:15
Array +1 [620d4234-8a24-4eaa-b024-b9d75059ec20, ...]
                                     webpack://jupyterlab/packages/notebook/src/actions.tsx:2560:37            
Array.forEach <anonymous>
webpack://jupyterlab/packages/notebook/src/actions.tsx:2555:21
webpack://jupyterlab/packages/notebook/src/actions.tsx:355:12
webpack://jupyterlab/packages/notebook-extension/src/index.ts:2676:15
CommandRegistry.execute http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:5748:33
CommandRegistry._executeKeyBinding http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:5906:14
CommandRegistry.processKeydownEvent http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:5846:18
JupyterLab.evtKeydown http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:4660:23
Array +2 [StackItem, ...]
UndoManager.afterTransactionHandler  http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:5064:15
webpack://jupyterlab/node_modules/lib0/observable.js:73:62
Array.forEach <anonymous>
webpack://jupyterlab/node_modules/lib0/observable.js:73:62
Array.<anonymous> http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:4720:27
webpack://jupyterlab/node_modules/lib0/function.js:19:0
cleanupTransactions http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:4722:62
transact http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:4843:9
Doc.transact http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:2050:5
Array +14 [Item, ...]
addStruct                    http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:4295:11
Item.integrate http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:11118:7
<unknown> http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:6651:22
Array.forEach <anonymous>
typeListInsertGenericsAfter http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:6624:11
typeListInsertGenerics http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:6711:10
<unknown> http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:7039:9
transact http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:4829:14
YArray.insert http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:7038:7
Set +2 Set((anonymous function), ...)
                          webpack://jupyterlab/node_modules/lib0/observable.js:30:56                                                                                     
Doc.on http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:2209:11
new UndoManager http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:5084:14
YCodeCell.setUndoManager http://localhost:8888/static/lab/vendors-node_modules_jupyter_ydoc_lib_index_js-node_modules_process_browser_js.a4c17770813817b2b11a.js:398:33
<unknown> http://localhost:8888/static/lab/vendors-node_modules_jupyter_ydoc_lib_index_js-node_modules_process_browser_js.a4c17770813817b2b11a.js:1589:15
Array.forEach <anonymous>
YNotebook.insertCells http://localhost:8888/static/lab/vendors-node_modules_jupyter_ydoc_lib_index_js-node_modules_process_browser_js.a4c17770813817b2b11a.js:1588:16
YNotebook.insertCell http://localhost:8888/static/lab/vendors-node_modules_jupyter_ydoc_lib_index_js-node_modules_process_browser_js.a4c17770813817b2b11a.js:1569:21
webpack://jupyterlab/packages/notebook/src/actions.tsx:416:22
Create a raw cell Memory change: +140 kB Leak detected: Yes

Leaking objects:

Object # added Retained size increase
ArraySearchMarker 1 +5 B
CodeCellModel 1 +400 B
ContentString 1 +690 B
Detached CSSStyleDeclaration 1 +60 B
Detached V8EventHandlerNonNull 1 +40 B
ObservableMap 1 +102 B
TypeError 1 +301 B
YArray 1 +164 B
YCodeCell 1 +107 B
YRawCell 1 +45 B
Detached DOMStringMap 2 +92 B
Set 2 +1.26 kB
UndoManager 2 +2.38 kB
YText 2 +667 B
StackItem 3 +1.33 kB
DeleteItem 4 +80 B
YMap 4 +872 B
Detached HTMLCollection 5 +468 B
ContentAny 6 +498 B
DeleteSet 6 +1 kB
ContentType 7 +112 B
Detached DOMTokenList 9 +552 B
Detached HTMLDivElement 9 +22.6 kB
Signal 11 +484 B
EventHandler 14 +448 B
ID 14 +448 B
Item 14 +2.47 kB
Map 19 +2.91 kB
Detached V8EventListener 130 +10.9 kB
Detached EventListener 131 +20.4 kB
(closure) 140 +20.1 kB
Detached InternalNode 151 +21.6 kB

Leaking collections:

Type Change Preview Size increased at
Array +1 [{signal, slot, thisArg}, ...]
Object.connect  http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:10493:17
Signal.connect http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:10233:24
webpack://jupyterlab/packages/notebook/src/notebooktools.ts:226:33
invokeSlot http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:10702:18
Object.emit http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:10660:17
Signal.emit http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:10259:17
webpack://jupyterlab/packages/notebook/src/tracker.ts:90:30
invokeSlot http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:10702:18
Object.emit http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:10660:17
Array +1 [{signal, slot, thisArg}, ...]
Object.connect  http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:10493:17
Signal.connect http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:10233:24
webpack://jupyterlab/packages/cell-toolbar/src/celltoolbartracker.ts:121:37
invokeSlot http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:10702:18
Object.emit http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:10660:17
Signal.emit http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:10259:17
webpack://jupyterlab/packages/notebook/src/widget.ts:1352:30
webpack://jupyterlab/packages/notebook/src/actions.tsx:427:28
webpack://jupyterlab/packages/notebook-extension/src/index.ts:2745:15
Array +1 [f91eae74-69f6-49e5-8483-570dbcb7a0ce, ...]
                                     webpack://jupyterlab/packages/notebook/src/actions.tsx:2560:37            
Array.forEach <anonymous>
webpack://jupyterlab/packages/notebook/src/actions.tsx:2555:21
webpack://jupyterlab/packages/notebook/src/actions.tsx:355:12
webpack://jupyterlab/packages/notebook-extension/src/index.ts:2676:15
CommandRegistry.execute http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:5748:33
CommandRegistry._executeKeyBinding http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:5906:14
CommandRegistry.processKeydownEvent http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:5846:18
JupyterLab.evtKeydown http://localhost:8888/static/lab/jlab_core.dad073511a4e0bb2542f.js:4660:23
Array +2 [StackItem, ...]
UndoManager.afterTransactionHandler  http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:5064:15
webpack://jupyterlab/node_modules/lib0/observable.js:73:62
Array.forEach <anonymous>
webpack://jupyterlab/node_modules/lib0/observable.js:73:62
Array.<anonymous> http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:4720:27
webpack://jupyterlab/node_modules/lib0/function.js:19:0
cleanupTransactions http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:4722:62
transact http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:4843:9
Doc.transact http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:2050:5
Array +14 [Item, ...]
addStruct                    http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:4295:11
Item.integrate http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:11118:7
<unknown> http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:6651:22
Array.forEach <anonymous>
typeListInsertGenericsAfter http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:6624:11
typeListInsertGenerics http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:6711:10
<unknown> http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:7039:9
transact http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:4829:14
YArray.insert http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:7038:7
Set +2 Set((anonymous function), ...)
                          webpack://jupyterlab/node_modules/lib0/observable.js:30:56                                                                                     
Doc.on http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:2209:11
new UndoManager http://localhost:8888/static/lab/vendors-node_modules_yjs_dist_yjs_mjs.7c22fc794e51ffbd0e42.js:5084:14
YCodeCell.setUndoManager http://localhost:8888/static/lab/vendors-node_modules_jupyter_ydoc_lib_index_js-node_modules_process_browser_js.a4c17770813817b2b11a.js:398:33
<unknown> http://localhost:8888/static/lab/vendors-node_modules_jupyter_ydoc_lib_index_js-node_modules_process_browser_js.a4c17770813817b2b11a.js:1589:15
Array.forEach <anonymous>
YNotebook.insertCells http://localhost:8888/static/lab/vendors-node_modules_jupyter_ydoc_lib_index_js-node_modules_process_browser_js.a4c17770813817b2b11a.js:1588:16
YNotebook.insertCell http://localhost:8888/static/lab/vendors-node_modules_jupyter_ydoc_lib_index_js-node_modules_process_browser_js.a4c17770813817b2b11a.js:1569:21
webpack://jupyterlab/packages/notebook/src/actions.tsx:416:22
- Drag and drop a cell

File editor memory leaks

Create a file Memory change: -75.2 kB Leak detected: No

Leaking objects:

Object # added Retained size increase
Detached HTMLUListElement 1 +3.44 kB
Detached V8EventHandlerNonNull 1 +40 B
VirtualElementPass 1 +46 B
Detached ElementIntersectionObserverData 2 +144 B
Detached HTMLButtonElement 2 +23.9 kB
Detached SVGCircleElement 2 +1.12 kB
LabIcon 2 +1.08 kB
Detached CSSStyleDeclaration 3 +244 B
Detached HTMLLIElement 3 +6.52 kB
Detached NodeList 3 +216 B
NavigationHistoryEntry 3 +720 B
VirtualText 3 +109 B
Detached SVGGElement 4 +3 kB
VirtualElement 4 +2.49 kB
Detached SVGAnimatedPreserveAspectRatio 5 +320 B
Detached SVGAnimatedRect 5 +320 B
Detached SVGPathElement 5 +1.81 kB
Detached SVGSVGElement 5 +8.2 kB
Detached HTMLSpanElement 6 +2.46 kB
Detached DOMStringMap 7 +452 B
Detached SVGAnimatedNumber 7 +448 B
Detached Attr 10 +800 B
Detached Text 10 +1.1 kB
Detached HTMLCollection 13 +1.43 kB
Detached DOMTokenList 14 +940 B
Detached HTMLDivElement 15 +34.6 kB
Detached SVGAnimatedString 16 +896 B
Detached SVGAnimatedTransformList 16 +1.02 kB
Detached SVGAnimatedLength 26 +1.66 kB
Detached V8EventListener 130 +10.9 kB
Detached EventListener 131 +20.4 kB
(closure) 138 +22.2 kB
✔ Opening a text file (66348ms)

Notebook memory leaks

Create a notebook Memory change: +23 kB Leak detected: Yes

Leaking objects:

Object # added Retained size increase
Detached HTMLUListElement 1 +2.36 kB
Detached V8EventHandlerNonNull 1 +40 B
VirtualElementPass 1 +55 B
Detached ElementIntersectionObserverData 2 +144 B
Detached HTMLButtonElement 2 +24 kB
Detached SVGCircleElement 2 +1.12 kB
HTMLDivElement 2 +1.16 kB
LabIcon 2 +85 B
Detached CSSStyleDeclaration 3 +216 B
Detached HTMLLIElement 3 +6.22 kB
Detached NodeList 3 +180 B
NavigationHistoryEntry 3 +720 B
VirtualText 3 +111 B
VirtualElement 4 +1.16 kB
Detached SVGAnimatedPreserveAspectRatio 5 +320 B
Detached SVGAnimatedRect 5 +320 B
Detached SVGSVGElement 5 +9.38 kB
Detached HTMLSpanElement 6 +3.15 kB
Detached SVGGElement 6 +5.02 kB
Detached SVGPathElement 7 +2.53 kB
Detached SVGAnimatedNumber 9 +576 B
Detached Attr 10 +800 B
Detached Text 10 +816 B
Detached HTMLCollection 13 +1.48 kB
Detached DOMTokenList 15 +1.04 kB
Detached HTMLDivElement 15 +33.8 kB
Detached SVGAnimatedString 20 +1.12 kB
Detached SVGAnimatedTransformList 20 +1.28 kB
Detached SVGAnimatedLength 26 +1.66 kB
DOMRectReadOnly 32 +1.79 kB
Detached V8EventListener 130 +10.9 kB
Detached EventListener 131 +20.4 kB
(closure) 138 +31 kB
✔ Opening a notebook (69537ms)

2 passing (6m)
1 pending
1 failing

   Adding a cell:

  Create a code cell - Objects leaking
  + expected - actual

  -1322
  +1308
  
  at file:///home/runner/work/_actions/jupyterlab/benchmarks/v1/memory-leaks/tests/utils.mjs:43:16
  at Array.forEach (<anonymous>)
  at expectNoLeaks (file:///home/runner/work/_actions/jupyterlab/benchmarks/v1/memory-leaks/tests/utils.mjs:28:11)
  at testScenario (file:///home/runner/work/_actions/jupyterlab/benchmarks/v1/memory-leaks/tests/utils.mjs:230:3)
  at async Context.<anonymous> (file:///home/runner/work/_actions/jupyterlab/benchmarks/v1/memory-leaks/tests/cell.test.mjs:7:5)

@github-actions
Copy link
Contributor

Galata snapshots updated.

@andrii-i andrii-i closed this Feb 24, 2023
@andrii-i andrii-i reopened this Feb 24, 2023
@andrii-i
Copy link
Contributor Author

Kicking CI

@andrii-i
Copy link
Contributor Author

@marthacryan, requesting your review as from author of existing Settings Editor accordion header styling.

@fcollonval, @krassowski, @isabela-pf requesting your review as I thought that you might have thoughts / opinions on this proposed change.

Would also mention this PR during JupyterLab call on Wednesday.

@jtpio
Copy link
Member

jtpio commented Feb 28, 2023

bot please update documentation snapshots

@jtpio
Copy link
Member

jtpio commented Feb 28, 2023

Triggering a new snapshot update since this one does not seem related to the change:

image

@github-actions
Copy link
Contributor

Documentation snapshots updated.

@krassowski
Copy link
Member

fcollonval, @krassowski, isabela-pf requesting your review as I thought that you might have thoughts / opinions on this proposed change.

I do have an opinion, but not necessarily one that everyone agrees with: In my opinion we should removal all the accordions as these serve no useful purpose when each section takes up full screen. Instead we should only ever show the active section (the same way as JSON Settings Editor does works - one section ever visible at a time) UNLESS in search mode (where we do not show titles. As a user I never found myself in a need of having two sections of settings open simultaneously and was always annoyed by the accordion because it detracts attention. If that was to be the solution we decide to pursue removing description may not be necessary.

I think I brought up this before late in the process of merging the original UI in so I am not sure if this is something that folks do not agree with or just did not have a chance to think about.

@andrii-i
Copy link
Contributor Author

andrii-i commented Feb 28, 2023

I agree with @krassowski that removing Accordions altogether would be a good idea. The only additional functionality that accordions provide vs settings menu to the left is quick access to "Restore to Defaults" button (if it exists, majority of accordions don't have it), otherwise accordions duplicate menus functionality. Accordions might play some role that I'm missing. I looked at PR #11079 that adds accordion headers and issue #8148 that PR references as a design spec but they don't mention accordions.

Screenshot 2023-02-28 at 10 39 33 AM

@andrii-i
Copy link
Contributor Author

andrii-i commented Mar 1, 2023

bot please update documentation snapshots

@andrii-i andrii-i force-pushed the settings-editor-header-no-description branch from 2c8b289 to f03011e Compare April 17, 2023 22:49
@andrii-i
Copy link
Contributor Author

@krassowski @fcollonval It's all green now 🟢

@andrii-i
Copy link
Contributor Author

@fcollonval @krassowski @marthacryan, for future reference, when scenario tested in [jupyterlab] › test/jupyterlab/settings.test.ts:7:5 › Open the settings editor with a specific search query occurs? When settings editor is "opened with a specific search query"?

I see that settingseditor.tsx (parent for both pluginlist.tsx and settingspanel.tsx) passes initialFilter prop to settingspanel.tsx based on the state of _filterproperty of pluginlist.tsx. But at the same time pluginlist.tsx sends a signal to settingspanel.tsx every time _filter is changed. This causes settingspanel.tsx to render twice every time filter is updated. I'm either missing something or it's a state duplication and either sending signals or passing initialFilter prop to settingspanel.tsx can be avoided.

@@ -320,18 +277,34 @@
height: 100%;
}

.jp-SettingsForm .jp-Buttonbar {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's discuss whether we want to have button bar in #14403. on CSS-level, I would suggest to replace jp-Buttonbar with a more specific jp-SettingsForm-buttonbar to avoid introducing a new unscoped class which is only used in a single place (and for performance reasons) - but this can be done in a separate PR

justify-content: flex-end;
margin: 8px;
gap: 0.5em;
max-width: 800px;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

800px is a very arbitrary threshold, putting the button in a bit weird place on larger screens:

Screenshot from 2023-04-18 20-30-16

Why not right-align it?

Copy link
Member

@krassowski krassowski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I left suggestions for improvements in #14403; I think that if we want this in for 4.0 we should merge as is and iterate on style details.

@andrii-i
Copy link
Contributor Author

Thank you @krassowski. I copied your latest per-line suggestions into #14403 so we could continue discussing them.

@andrii-i
Copy link
Contributor Author

UI Tests / Visual Regression Documentation (3.10.6) (pull_request) is failing after merging master into this branch, requesting documentation snapshots update: bot please update documentation snapshots

@github-actions
Copy link
Contributor

Documentation snapshots updated.

@andrii-i
Copy link
Contributor Author

Kicking CI

@andrii-i andrii-i closed this Apr 18, 2023
@andrii-i andrii-i reopened this Apr 18, 2023
@andrii-i
Copy link
Contributor Author

After updating documentation snapshots, Documentation visual regression test doesn't fail anymore but UI Tests / Visual Regression Tests (pull_request) fails now, updating galata snapshots: bot please update galata snapshots

@github-actions
Copy link
Contributor

Galata snapshots updated.

@andrii-i
Copy link
Contributor Author

Kicking CI

@andrii-i andrii-i closed this Apr 19, 2023
@andrii-i andrii-i reopened this Apr 19, 2023
@andrii-i
Copy link
Contributor Author

Failing Linux Tests / check_links (pull_request) does not seem to be related to this PR

@fcollonval fcollonval force-pushed the settings-editor-header-no-description branch from 212f6e7 to 649faec Compare April 19, 2023 07:20
Copy link
Member

@fcollonval fcollonval left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @andrii-i

@fcollonval fcollonval merged commit 0152fdc into jupyterlab:master Apr 19, 2023
@andrii-i
Copy link
Contributor Author

Thank you @fcollonval

@andrii-i andrii-i deleted the settings-editor-header-no-description branch April 19, 2023 15:17
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Apr 19, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Design System CSS pkg:settingeditor tag:CSS For general CSS related issues and pecadilloes tag:Design System CSS If a PR is editing any CSS files please add this tag for design team to review. tag:Testing
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Font size of accordion titles in Settings Editor is much larger than font size of other components
7 participants