Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
30d73cf
Add more icons
mattpap Nov 11, 2023
f7bf890
Add hover tool's tooltip to plot's event layer
mattpap Nov 11, 2023
d5d94f4
Make Dialog movable and resizable
mattpap Nov 11, 2023
68eb965
Set dialog's title in examiner tool
mattpap Nov 11, 2023
a86afdb
Add OpenDialog and ToggleVisibility callbacks
mattpap Nov 12, 2023
ab4e1de
Update defaults' baseline
mattpap Nov 12, 2023
dd5ec49
Robustify application of CSS styles
mattpap Nov 12, 2023
5d96366
Correctly configure pointer capture
mattpap Nov 13, 2023
42a7aac
Move box shadow to the inner element
mattpap Nov 13, 2023
66efc11
Use a style sheet for Dialog positioning
mattpap Nov 13, 2023
8acc6e5
Implement stacking order for dialogs
mattpap Nov 13, 2023
bb19337
Implement dependency between dialog's states
mattpap Nov 13, 2023
833d646
Robustify initialization and destruction
mattpap Nov 14, 2023
e8d48aa
Collapse/Restore dialog when scrolling on title
mattpap Nov 14, 2023
b497db0
Add Panel UI element
mattpap Nov 14, 2023
f475635
Generalize symbolic Node API
mattpap Nov 14, 2023
73290be
Add support for z-index pinning to Dialog
mattpap Nov 15, 2023
11d48f7
Allow CSS variables in CSS preprocessor
mattpap Dec 7, 2023
5c4905f
Don't duplicate testing effort in test_enums.py
mattpap Dec 7, 2023
fbde715
Improve Literal type support in Enum
mattpap Dec 8, 2023
38ee34e
Allow adding additional UI elements
mattpap Dec 20, 2023
04d2b70
Allow Tooltip to handle UI elements
mattpap Dec 20, 2023
09f654a
Add support for canvas positioning of UIs
mattpap Jan 21, 2024
fbed212
Add support for context menus to UIs/renderers
mattpap Jan 23, 2024
03c3586
Add support for data positioning
mattpap Jan 26, 2024
0248522
Temporarily add CartesianFrame.resolve_symbol()
mattpap Jan 27, 2024
a24f8ce
Include PlotView's canvas in elements
mattpap Jan 27, 2024
5d39348
Finalize various types of node resolution
mattpap Jan 28, 2024
f3789e7
Make implicit node resolution work
mattpap Jan 28, 2024
0f5023a
Rename Panel -> SidePanel
mattpap Jan 28, 2024
ba13743
Formalize support for plot attributions
mattpap Jan 29, 2024
00db279
Fix issues with resolution of coordinates/nodes
mattpap Jan 30, 2024
f84cca0
Add examples/basic/ui/dialog.py
mattpap Jan 30, 2024
107504b
Add examples/basic/ui/custom_attribution.py
mattpap Jan 30, 2024
c3f92b9
Update tests/unit/bokeh/models/test_annotations.py
mattpap Jan 30, 2024
ba5d99d
Reposition Panel when its positioning node changes
mattpap Jan 30, 2024
27c809e
Add examples/basic/ui/inline_data_entry.py
mattpap Jan 30, 2024
15171db
Add examples/basic/ui/selection_custom_toolbar.py
mattpap Jan 30, 2024
0042b63
Fix code quality issues
mattpap Jan 30, 2024
97a8bb9
Move ViewManager to its own module
mattpap Feb 1, 2024
82709c7
Allow to manage non-root parent-less views
mattpap Feb 1, 2024
41bef18
Make Dialog's close action configurable
mattpap Feb 1, 2024
63021ca
Fix base class of bokeh.models.dom.HTML
mattpap Feb 1, 2024
3bd5c81
Add CloseDialog callback along OpenDialog
mattpap Feb 1, 2024
76a773e
Allow AbstractButton.label to have HTML contents
mattpap Feb 1, 2024
4413692
Improve examples/basic/ui/dialog.py
mattpap Feb 1, 2024
889a96d
Add support for a dialog minimization area
mattpap Feb 1, 2024
d20f392
Add more icons and update the baseline
mattpap Feb 1, 2024
a61a058
Increase size allowance for bokeh.min.js
mattpap Feb 1, 2024
969d9e7
Use Coordinate instead of Node in Tooltip
mattpap Feb 1, 2024
b30b4ba
Replace .bring-to-front() with a CSS variable
mattpap Feb 2, 2024
986d94d
Robustify LayoutDOMView.update_children()
mattpap Feb 3, 2024
8d8d157
Properly rebuild toolbar when location changes
mattpap Feb 3, 2024
e87e436
Don't reference HTML if DOMNode is used
mattpap Feb 3, 2024
4e0d511
Don't require root-layout in render_to()
mattpap Feb 3, 2024
7cb0780
Use appropriate dialog close action
mattpap Feb 3, 2024
a79fc17
Finalize support for context menus
mattpap Feb 5, 2024
5b0e40b
Add examples/basic/ui/annotation_menu.py
mattpap Feb 5, 2024
0cbdc22
Make ui.icons.Icon a UIElement
mattpap Feb 6, 2024
1552492
Move ui.{panes->panels}.Panel
mattpap Feb 6, 2024
81c7120
Simplify definition of CompositeRenderer.elements
mattpap Feb 6, 2024
d4f3d78
Add CompositeRenderer.renderers property
mattpap Feb 6, 2024
9f429fd
Update docstrings of bokeh.models.ui.*
mattpap Feb 6, 2024
9bb727d
Improve menu naming convention and add docstrings
mattpap Feb 6, 2024
f3857ed
Implement integration/examples/color_scatter.ts
mattpap Feb 6, 2024
a70cdf0
Update test_annotations.py
mattpap Feb 6, 2024
8a48e57
Add rudimentary integration tests for UI elements
mattpap Feb 7, 2024
e750bb7
Use consistently pointer events instead of mouse events
mattpap Feb 7, 2024
d764121
Allow to programmatically display context menus
mattpap Feb 7, 2024
6120209
Rename DictLike -> Dict type
mattpap Feb 13, 2024
b731bbf
Update docstrings and properties' help
mattpap Feb 15, 2024
9ef5062
Don't use deprecated class properties
mattpap Feb 15, 2024
279092e
Update cross integration tests' baselines
mattpap Feb 15, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions bokehjs/src/less/_mixins.less
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,6 @@
}
}

.bring-to-front() {
z-index: 100;
}

.icon-mask(@icon, @color) {
background-color: @color;
mask-image: @icon;
Expand Down
9 changes: 8 additions & 1 deletion bokehjs/src/less/attribution.less
Original file line number Diff line number Diff line change
@@ -1,12 +1,19 @@
:host {
position: absolute;
display: flex;
flex-direction: column;
flex-wrap: nowrap;
padding: 2px;
background-color: rgba(255, 255, 255, 0.5);
font-size: 9px;
line-height: 1.05;
white-space: nowrap;
max-width: var(--max-width);
}

:host > * {
overflow: hidden;
text-overflow: ellipsis;
text-align: right;
}

a {
Expand Down
2 changes: 2 additions & 0 deletions bokehjs/src/less/base.less
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@

--padding-vertical: 6px;
--padding-horizontal: 12px;

--bokeh-top-level: 1000; // used for z-index of menus, dropdowns, etc.
}

:host {
Expand Down
220 changes: 189 additions & 31 deletions bokehjs/src/less/dialogs.less
Original file line number Diff line number Diff line change
Expand Up @@ -4,68 +4,226 @@
--bokeh-bg-color: white;
--bokeh-border-color: #e5e5e5;
--bokeh-shadow-color: #e5e5e5;
--bokeh-ctrl-size: 16px;
--bokeh-ctrl-color: gray;
}

:host {
position: fixed;
z-index: 1000;
left: 0;
right: 0;
top: 0;
bottom: 0;
margin-left: auto;
margin-right: auto;
margin-top: auto;
margin-bottom: auto;
/*
min-width: 10vw;
min-height: 10vh;
width: max-content;
height: max-content;
max-width: 80vw;
max-height: 60vh;
*/
left: 200px;
top: 200px;
width: 600px;
height: 600px;
width: 80vw;
height: 60vh;
overflow: hidden;
}

:host(.bk-interacting) {
opacity: 0.9;
}

.bk-inner {
position: relative;
display: flex;
flex-direction: column;
flex-wrap: nowrap;
width: 100%;
height: 100%;
overflow: hidden;
border-radius: 4px;
background-color: var(--bokeh-bg-color);
border: 1px solid var(--bokeh-border-color);
box-shadow: 5px 5px 10px var(--bokeh-shadow-color);
}

.bk-title {
.bk-header {
position: relative;
flex: 1;
min-height: 0;
display: flex;
flex: 0;
gap: 1em;
padding: 5px;
background-color: lightgray;
}

.bk-content {
position: relative;
display: flex;
flex: 1;
min-height: 100%;
overflow: auto;
}

:host(.bk-collapsed), :host(.bk-minimized) {
.bk-content, .bk-footer {
display: none;
}
}

.bk-footer {
position: relative;
display: flex;
flex: 0;
}

.bk-grip {
width: var(--bokeh-ctrl-size);
height: var(--bokeh-ctrl-size);
background-color: var(--bokeh-ctrl-color);
.icon-mask(var(--bokeh-icon-y-grip));
}

.bk-buttons {
.bk-title {
position: relative;
display: flex;
flex: 1;
min-height: 0;
cursor: move;
white-space: nowrap;
}

.bk-close {
position: absolute;
top: 0;
right: 0;
width: 18px;
height: 18px;
.bk-controls {
position: relative;
display: flex;
flex: 0;
}

.bk-ctrl {
width: var(--bokeh-ctrl-size);
height: var(--bokeh-ctrl-size);
cursor: pointer;

.icon-mask(var(--bokeh-icon-x), gray);
.mask-size(100% 100%);
.mask-position(center center);
.mask-repeat(no-repeat);

background-color: var(--bokeh-ctrl-color);
&:hover {
background-color: red;
}
}

.bk-pin {
.mask-image(var(--bokeh-icon-pin));
}
:host(.bk-pinned) {
.bk-pin {
.mask-image(var(--bokeh-icon-unpin));
}
}
.bk-collapse {
.mask-image(var(--bokeh-icon-chevron-up));
}
:host(.bk-collapsed) {
.bk-collapse {
.mask-image(var(--bokeh-icon-chevron-down));
}
}
.bk-minimize {
.mask-image(var(--bokeh-icon-arrow-down-to-bar))
}
:host(.bk-minimized) {
.bk-minimize {
.mask-image(var(--bokeh-icon-arrow-up-from-bar))
}
}
.bk-maximize {
.mask-image(var(--bokeh-icon-maximize));
}
:host(.bk-maximized) {
.bk-maximize {
.mask-image(var(--bokeh-icon-minimize))
}
}
.bk-close {
.mask-image(var(--bokeh-icon-x));
}

:host {
--resize-radius: 3px;
--resize-depth: calc(2*var(--resize-radius));
}

:host(.bk-minimized) {
position: relative;
}

:host(.bk-minimized), :host(.bk-maximized) {
.bk-handle {
display: none;
}
.bk-title {
cursor: default;
}
}

.bk-resize-top {
position: absolute;
top: 0;
left: var(--resize-radius);
width: calc(100% - var(--resize-depth));
height: var(--resize-depth);
transform: translate(0, -50%);
cursor: ns-resize;
}
.bk-resize-bottom {
position: absolute;
bottom: 0;
left: var(--resize-radius);
width: calc(100% - var(--resize-depth));
height: var(--resize-depth);
transform: translate(0, 50%);
cursor: ns-resize;
}
.bk-resize-left {
position: absolute;
left: 0;
top: var(--resize-radius);
width: var(--resize-depth);
height: calc(100% - var(--resize-depth));
transform: translate(-50%, 0);
cursor: ew-resize;
}
.bk-resize-right {
position: absolute;
right: 0;
top: var(--resize-radius);
width: var(--resize-depth);
height: calc(100% - var(--resize-depth));
transform: translate(50%, 0);
cursor: ew-resize;
}

.bk-resize-top-left {
position: absolute;
top: 0;
left: 0;
width: var(--resize-depth);
height: var(--resize-depth);
transform: translate(-50%, -50%);
cursor: nw-resize;
}
.bk-resize-top-right {
position: absolute;
top: 0;
right: 0;
width: var(--resize-depth);
height: var(--resize-depth);
transform: translate(50%, -50%);
cursor: ne-resize;
}
.bk-resize-bottom-left {
position: absolute;
bottom: 0;
left: 0;
width: var(--resize-depth);
height: var(--resize-depth);
transform: translate(-50%, 50%);
cursor: sw-resize;
}
.bk-resize-bottom-right {
position: absolute;
bottom: 0;
right: 0;
width: var(--resize-depth);
height: var(--resize-depth);
transform: translate(50%, 50%);
cursor: se-resize;
}
2 changes: 1 addition & 1 deletion bokehjs/src/less/dropdown.less
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
position: absolute;
left: 0;
width: 100%;
.bring-to-front();
z-index: var(--bokeh-top-level);

cursor: pointer;
font-size: var(--font-size);
Expand Down
13 changes: 4 additions & 9 deletions bokehjs/src/less/examiner.less
Original file line number Diff line number Diff line change
@@ -1,19 +1,14 @@
.null { color: #7724c1; }
.token { color: #881280; }
.boolean { color: #007500; }
.number { color: #1a1aa6; }
.string { color: #994500; }
.symbol { color: #c80000; }
.model { cursor: pointer; }
.attr { color: #c80000; }

:root {
--common-padding: 3px;
--common-outline: rgb(26, 115, 232) solid 1px;
--panel-bg-color: rgb(241, 243, 244);
--panel-border-color: rgb(202, 205, 209);
}

.ref {
cursor: pointer;
}

.monospace {
font-family: var(--mono-font);
}
Expand Down
Loading