@import "./_mixins.less";

.tool-icon(@icon, @file) {
  @path: "../../../docs/bokeh/source/_images/icons";
  background-image: var(@icon, data-uri("@{path}/@{file}.png"));
}

.bk-tool-icon-copy {
  .tool-icon-mask(var(--bokeh-icon-copy));
}

.bk-tool-icon-open {
  .tool-icon-mask(var(--bokeh-icon-open));
}

.bk-tool-icon-replace-mode {
  .tool-icon-mask(var(--bokeh-icon-replace-mode));
}

.bk-tool-icon-toggle-mode {
  .tool-icon-mask(var(--bokeh-icon-toggle-mode));
}

.bk-tool-icon-append-mode {
  .tool-icon-mask(var(--bokeh-icon-append-mode));
}

.bk-tool-icon-intersect-mode {
  .tool-icon-mask(var(--bokeh-icon-intersect-mode));
}

.bk-tool-icon-subtract-mode {
  .tool-icon-mask(var(--bokeh-icon-subtract-mode));
}

.bk-tool-icon-xor-mode {
  .tool-icon-mask(var(--bokeh-icon-xor-mode));
}

.bk-tool-icon-invert-selection {
  .tool-icon-mask(var(--bokeh-icon-invert-selection));
}

.bk-tool-icon-clear-selection {
  .tool-icon-mask(var(--bokeh-icon-clear-selection));
}

.bk-tool-icon-box-select {
  .tool-icon-mask(var(--bokeh-icon-box-select));
}

.bk-tool-icon-x-box-select {
  .tool-icon-mask(var(--bokeh-icon-x-box-select));
}

.bk-tool-icon-y-box-select {
  .tool-icon-mask(var(--bokeh-icon-y-box-select));
}

.bk-tool-icon-box-zoom {
  .tool-icon-mask(var(--bokeh-icon-box-zoom));
}

.bk-tool-icon-x-box-zoom {
  .tool-icon-mask(var(--bokeh-icon-x-box-zoom));
}

.bk-tool-icon-y-box-zoom {
  .tool-icon-mask(var(--bokeh-icon-y-box-zoom));
}

.bk-tool-icon-auto-box-zoom {
  .tool-icon-mask(var(--bokeh-icon-auto-box-zoom));
}

.bk-tool-icon-zoom-in {
  .tool-icon-mask(var(--bokeh-icon-zoom-in));
}

.bk-tool-icon-zoom-out {
  .tool-icon-mask(var(--bokeh-icon-zoom-out));
}

.bk-tool-icon-help {
  .tool-icon-mask(var(--bokeh-icon-help));
}

.bk-tool-icon-hover {
  .tool-icon-mask(var(--bokeh-icon-hover));
}

.bk-tool-icon-crosshair {
  .tool-icon-mask(var(--bokeh-icon-crosshair));
}

.bk-tool-icon-lasso-select {
  .tool-icon-mask(var(--bokeh-icon-lasso-select));
}

.bk-tool-icon-pan {
  .tool-icon-mask(var(--bokeh-icon-pan));
}

.bk-tool-icon-x-pan {
  .tool-icon-mask(var(--bokeh-icon-x-pan));
}

.bk-tool-icon-y-pan {
  .tool-icon-mask(var(--bokeh-icon-y-pan));
}

.bk-tool-icon-pan-left {
  .tool-icon-mask(var(--bokeh-icon-pan-left));
}

.bk-tool-icon-pan-right {
  .tool-icon-mask(var(--bokeh-icon-pan-right));
}

.bk-tool-icon-pan-up {
  .tool-icon-mask(var(--bokeh-icon-pan-up));
}

.bk-tool-icon-pan-down {
  .tool-icon-mask(var(--bokeh-icon-pan-down));
}

.bk-tool-icon-range {
  .tool-icon-mask(var(--bokeh-icon-range));
}

.bk-tool-icon-polygon-select {
  .tool-icon-mask(var(--bokeh-icon-polygon-select));
}

.bk-tool-icon-redo {
  .tool-icon-mask(var(--bokeh-icon-redo));
}

.bk-tool-icon-reset {
  .tool-icon-mask(var(--bokeh-icon-reset));
}

.bk-tool-icon-save {
  .tool-icon-mask(var(--bokeh-icon-save));
}

.bk-tool-icon-tap-select {
  .tool-icon-mask(var(--bokeh-icon-tap-select));
}

.bk-tool-icon-undo {
  .tool-icon-mask(var(--bokeh-icon-undo));
}

.bk-tool-icon-wheel-pan {
  .tool-icon-mask(var(--bokeh-icon-wheel-pan));
}

.bk-tool-icon-wheel-zoom {
  .tool-icon-mask(var(--bokeh-icon-wheel-zoom));
}

.bk-tool-icon-box-edit {
  .tool-icon-mask(var(--bokeh-icon-box-edit));
}

.bk-tool-icon-freehand-draw {
  .tool-icon-mask(var(--bokeh-icon-freehand-draw));
}

.bk-tool-icon-poly-draw {
  .tool-icon-mask(var(--bokeh-icon-poly-draw));
}

.bk-tool-icon-point-draw {
  .tool-icon-mask(var(--bokeh-icon-point-draw));
}

.bk-tool-icon-poly-edit {
  .tool-icon-mask(var(--bokeh-icon-poly-edit));
}

.bk-tool-icon-line-edit {
  .tool-icon-mask(var(--bokeh-icon-line-edit));
}

.bk-tool-icon-settings {
  .tool-icon-mask(var(--bokeh-icon-settings));
}

.bk-tool-icon-unknown {
  .tool-icon-mask(var(--bokeh-icon-unknown));
}

.bk-tool-icon-fullscreen {
  .tool-icon-mask(var(--bokeh-icon-fullscreen));
}

.bk-tool-icon-chevron-up    { .tool-icon-mask(var(--bokeh-icon-chevron-up)); }
.bk-tool-icon-chevron-down  { .tool-icon-mask(var(--bokeh-icon-chevron-down)); }
.bk-tool-icon-chevron-left  { .tool-icon-mask(var(--bokeh-icon-chevron-left)); }
.bk-tool-icon-chevron-right { .tool-icon-mask(var(--bokeh-icon-chevron-right)); }

.bk-tool-icon-caret-up    { .tool-icon-mask(var(--bokeh-icon-caret-up)); }
.bk-tool-icon-caret-down  { .tool-icon-mask(var(--bokeh-icon-caret-down)); }
.bk-tool-icon-caret-left  { .tool-icon-mask(var(--bokeh-icon-caret-left)); }
.bk-tool-icon-caret-right { .tool-icon-mask(var(--bokeh-icon-caret-right)); }

.bk-tool-icon-see-on  { .tool-icon-mask(var(--bokeh-icon-see-on)); }
.bk-tool-icon-see-off { .tool-icon-mask(var(--bokeh-icon-see-off)); }

.bk-tool-icon-x-grip { .tool-icon-mask(var(--bokeh-icon-x-grip)); }
.bk-tool-icon-y-grip { .tool-icon-mask(var(--bokeh-icon-y-grip)); }

.bk-tool-icon-arrow-down-to-bar { .tool-icon-mask(var(--bokeh-icon-arrow-down-to-bar)); }
.bk-tool-icon-arrow-up-from-bar { .tool-icon-mask(var(--bokeh-icon-arrow-up-from-bar)); }

.bk-tool-icon-minimize { .tool-icon-mask(var(--bokeh-icon-minimize)); }
.bk-tool-icon-maximize { .tool-icon-mask(var(--bokeh-icon-maximize)); }

.bk-tool-icon-pin      { .tool-icon-mask(var(--bokeh-icon-pin)); }
.bk-tool-icon-unpin    { .tool-icon-mask(var(--bokeh-icon-unpin)); }

.bk-tool-icon-pointer  { .tool-icon-mask(var(--bokeh-icon-hand-pointing));  }
.bk-tool-icon-delete   { .tool-icon-mask(var(--bokeh-icon-trash)); }

.bk-tool-icon-bold   { .tool-icon-mask(var(--bokeh-icon-bold));   }
.bk-tool-icon-italic { .tool-icon-mask(var(--bokeh-icon-italic)); }

.bk-tool-icon-text-align-left   { .tool-icon-mask(var(--bokeh-icon-text-align-left));   }
.bk-tool-icon-text-align-center { .tool-icon-mask(var(--bokeh-icon-text-align-center)); }
.bk-tool-icon-text-align-right  { .tool-icon-mask(var(--bokeh-icon-text-align-right));  }

.bk-tool-icon-check { .tool-icon-mask(var(--bokeh-icon-check));  }
.bk-tool-icon-square { .tool-icon-mask(var(--bokeh-icon-square));  }
.bk-tool-icon-square-check { .tool-icon-mask(var(--bokeh-icon-square-check));  }

.bk-tool-icon-list { .tool-icon-mask(var(--bokeh-icon-list)); }

.bk-tool-icon-light-theme { .tool-icon-mask(var(--bokeh-icon-light-theme)); }
.bk-tool-icon-dark-theme { .tool-icon-mask(var(--bokeh-icon-dark-theme)); }

:host {
  // Based on https://tabler-icons.io/ (MIT License) & independent design contributions
  --bokeh-icon-question-mark: data-uri("icons/question-mark.svg");
  --bokeh-icon-help: data-uri("icons/help.svg");
  --bokeh-icon-x: data-uri("icons/x.svg");
  --bokeh-icon-settings: data-uri("icons/settings.svg");
  --bokeh-icon-unknown: data-uri("icons/unknown.svg");
  --bokeh-icon-fullscreen: data-uri("icons/fullscreen.svg");

  --bokeh-icon-save: data-uri("icons/save.svg");
  --bokeh-icon-copy: data-uri("icons/copy.svg");
  --bokeh-icon-open: data-uri("icons/open.svg");

  --bokeh-icon-tap-select: data-uri("icons/tap.svg");
  --bokeh-icon-lasso-select: data-uri("icons/lasso-select.svg");
  --bokeh-icon-polygon-select: data-uri("icons/polygon-select.svg");

  --bokeh-icon-pan: data-uri("icons/pan.svg");
  --bokeh-icon-x-pan: data-uri("icons/x-pan.svg");
  --bokeh-icon-y-pan: data-uri("icons/y-pan.svg");

  --bokeh-icon-pan-left: data-uri("icons/pan_left.svg");
  --bokeh-icon-pan-right: data-uri("icons/pan_right.svg");
  --bokeh-icon-pan-up: data-uri("icons/pan_up.svg");
  --bokeh-icon-pan-down: data-uri("icons/pan_down.svg");

  --bokeh-icon-wheel-pan: data-uri("icons/wheel-pan.svg");

  --bokeh-icon-box-select: data-uri("icons/box-select.svg");
  --bokeh-icon-x-box-select: data-uri("icons/x-box-select.svg");
  --bokeh-icon-y-box-select: data-uri("icons/y-box-select.svg");

  --bokeh-icon-box-zoom: data-uri("icons/box-zoom.svg");
  --bokeh-icon-x-box-zoom: data-uri("icons/x-box-zoom.svg");
  --bokeh-icon-y-box-zoom: data-uri("icons/y-box-zoom.svg");
  --bokeh-icon-auto-box-zoom: data-uri("icons/auto-box-zoom.svg");

  --bokeh-icon-wheel-zoom: data-uri("icons/wheel-zoom.svg");

  --bokeh-icon-box-edit: data-uri("icons/box-edit.svg");
  --bokeh-icon-poly-edit: data-uri("icons/poly-edit.svg");
  --bokeh-icon-line-edit: data-uri("icons/line-edit.svg");

  --bokeh-icon-clear-selection: data-uri("icons/clear-selection.svg");
  --bokeh-icon-invert-selection: data-uri("icons/invert-selection.svg");

  --bokeh-icon-point-draw: data-uri("icons/point-draw.svg");
  --bokeh-icon-poly-draw: data-uri("icons/poly-draw.svg");
  --bokeh-icon-freehand-draw: data-uri("icons/freehand-draw.svg");

  --bokeh-icon-append-mode: data-uri("icons/append-mode.svg");
  --bokeh-icon-intersect-mode: data-uri("icons/intersect-mode.svg");
  --bokeh-icon-subtract-mode: data-uri("icons/subtract-mode.svg");
  --bokeh-icon-xor-mode: data-uri("icons/xor-mode.svg");
  --bokeh-icon-replace-mode: data-uri("icons/replace-mode.svg");
  --bokeh-icon-toggle-mode: data-uri("icons/toggle-mode.svg");

  --bokeh-icon-zoom-in: data-uri("icons/zoom-in.svg");
  --bokeh-icon-zoom-out: data-uri("icons/zoom-out.svg");

  --bokeh-icon-undo: data-uri("icons/undo.svg");
  --bokeh-icon-redo: data-uri("icons/redo.svg");
  --bokeh-icon-reset: data-uri("icons/reset.svg");

  --bokeh-icon-hover: data-uri("icons/hover.svg");
  --bokeh-icon-crosshair: data-uri("icons/crosshair.svg");

  --bokeh-icon-chevron-up: data-uri("icons/chevron-up.svg");
  --bokeh-icon-chevron-down: data-uri("icons/chevron-down.svg");
  --bokeh-icon-chevron-left: data-uri("icons/chevron-left.svg");
  --bokeh-icon-chevron-right: data-uri("icons/chevron-right.svg");

  --bokeh-icon-caret-up: data-uri("icons/caret-up.svg");
  --bokeh-icon-caret-down: data-uri("icons/caret-down.svg");
  --bokeh-icon-caret-left: data-uri("icons/caret-left.svg");
  --bokeh-icon-caret-right: data-uri("icons/caret-right.svg");

  --bokeh-icon-see-on: data-uri("icons/see-on.svg");
  --bokeh-icon-see-off: data-uri("icons/see-off.svg");

  --bokeh-cursor-rotate: data-uri("icons/cursor-rotate.svg") 12 12, auto;

  --bokeh-icon-x-grip: data-uri("icons/x-grip.svg");
  --bokeh-icon-y-grip: data-uri("icons/y-grip.svg");

  --bokeh-icon-arrow-down-to-bar: data-uri("icons/arrow-down-to-bar.svg");
  --bokeh-icon-arrow-up-from-bar: data-uri("icons/arrow-up-from-bar.svg");

  --bokeh-icon-minimize: data-uri("icons/minimize.svg");
  --bokeh-icon-maximize: data-uri("icons/maximize.svg");

  --bokeh-icon-pin: data-uri("icons/pin.svg");
  --bokeh-icon-unpin: data-uri("icons/unpin.svg");

  --bokeh-icon-hand-pointing: data-uri("icons/hand-pointing.svg");
  --bokeh-icon-trash: data-uri("icons/trash.svg");

  --bokeh-icon-bold: data-uri("icons/bold.svg");
  --bokeh-icon-italic: data-uri("icons/italic.svg");

  --bokeh-icon-text-align-left: data-uri("icons/text-align-left.svg");
  --bokeh-icon-text-align-center: data-uri("icons/text-align-center.svg");
  --bokeh-icon-text-align-right: data-uri("icons/text-align-right.svg");

  --bokeh-icon-check: data-uri("icons/check.svg");
  --bokeh-icon-square: data-uri("icons/square.svg");
  --bokeh-icon-square-check: data-uri("icons/square-check.svg");

  --bokeh-icon-list: data-uri("icons/list.svg");

  --bokeh-icon-range: data-uri("icons/range.svg");

  --bokeh-icon-light-theme: data-uri("icons/light-theme.svg");
  --bokeh-icon-dark-theme: data-uri("icons/dark-theme.svg");
}
