From e1f671a5b3191f39714ee112c87f90c5e456513e Mon Sep 17 00:00:00 2001 From: David Sehnal <david.sehnal@gmail.com> Date: Wed, 15 Apr 2020 01:20:14 +0200 Subject: [PATCH] use material ui icons instead of fontello, do not import google font --- package-lock.json | Bin 663193 -> 673563 bytes package.json | 2 + src/mol-plugin-ui/base.tsx | 3 +- src/mol-plugin-ui/camera.tsx | 13 +- src/mol-plugin-ui/controls.tsx | 31 +- src/mol-plugin-ui/controls/action-menu.tsx | 18 +- src/mol-plugin-ui/controls/common.tsx | 29 +- src/mol-plugin-ui/controls/icons.tsx | 182 ++--- src/mol-plugin-ui/controls/parameters.tsx | 38 +- src/mol-plugin-ui/left-panel.tsx | 26 +- src/mol-plugin-ui/sequence.tsx | 5 +- src/mol-plugin-ui/skin/base/base.scss | 16 +- .../skin/base/components/controls-base.scss | 34 +- .../skin/base/components/misc.scss | 1 - src/mol-plugin-ui/skin/fonts/fontello.eot | Bin 49272 -> 0 bytes src/mol-plugin-ui/skin/fonts/fontello.html | 627 ------------------ src/mol-plugin-ui/skin/fonts/fontello.svg | 442 ------------ src/mol-plugin-ui/skin/fonts/fontello.ttf | Bin 49104 -> 0 bytes src/mol-plugin-ui/skin/fonts/fontello.woff | Bin 29392 -> 0 bytes src/mol-plugin-ui/skin/fonts/fontello.woff2 | Bin 23892 -> 0 bytes src/mol-plugin-ui/state/actions.tsx | 83 +-- src/mol-plugin-ui/state/animation.tsx | 5 +- src/mol-plugin-ui/state/common.tsx | 19 +- src/mol-plugin-ui/state/snapshots.tsx | 15 +- src/mol-plugin-ui/state/tree.tsx | 21 +- src/mol-plugin-ui/structure/components.tsx | 42 +- src/mol-plugin-ui/structure/focus.tsx | 19 +- src/mol-plugin-ui/structure/generic.tsx | 5 +- src/mol-plugin-ui/structure/measurements.tsx | 23 +- src/mol-plugin-ui/structure/selection.tsx | 22 +- src/mol-plugin-ui/structure/source.tsx | 3 +- src/mol-plugin-ui/structure/volume.tsx | 7 +- src/mol-plugin-ui/task.tsx | 3 +- src/mol-plugin-ui/toast.tsx | 3 +- src/mol-plugin-ui/viewport.tsx | 26 +- src/mol-plugin-ui/viewport/help.tsx | 5 +- src/mol-plugin-ui/viewport/screenshot.tsx | 5 +- .../rcsb/ui/assembly-symmetry.tsx | 3 +- tsconfig.json | 2 +- 39 files changed, 303 insertions(+), 1475 deletions(-) delete mode 100644 src/mol-plugin-ui/skin/fonts/fontello.eot delete mode 100644 src/mol-plugin-ui/skin/fonts/fontello.html delete mode 100644 src/mol-plugin-ui/skin/fonts/fontello.svg delete mode 100644 src/mol-plugin-ui/skin/fonts/fontello.ttf delete mode 100644 src/mol-plugin-ui/skin/fonts/fontello.woff delete mode 100644 src/mol-plugin-ui/skin/fonts/fontello.woff2 diff --git a/package-lock.json b/package-lock.json index 1eb04364f29c1db77e817e56357b2f2b6c42dd1d..746cadebc97fa46925e2ca6d2a11424778415a28 100644 GIT binary patch delta 6222 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 delta 457 zcmbQ;r#W-4M#C1ywL+8gwX~;CkY{4qenN<`muGvJ0%Pr#?P3oZUm0)D7h@9HGhOf- zi_P|e%S^LGrq8!x7n`p4iivx>&I_hERwVwKw@kaew})9VUvrqg--lg%yGu3mPDTh* zw3eBRe|vi`bE_s;$9CoI%v!ANoAxqq-?W$Iq0{!CjI5QS+b2q}n%PgE`JF{*`iHx0 zJkvw`S<I*V7juZU|BGPV{x5><flYhUBDU>Ki`c`Mw%=IF-s`vB<Qu!Q-1Mc2j3Sc{ z9OB>JCc<Gq4P=M-_PeV%4#`2>-gAoMYy9>OZO%_6lMOVurVA|P6y3gS0jGonoI73b z7AN<1*`1uzn5Gv@;*_5*lffcCUEmjs$n=6`oC4E#7BdP>cbLN|H2M7;!D)9n^S9sH z!)e2Y&|kivlYe{aVNO;)u-JsloMO}8Y~<vd?rX@zIi3G9r^xhzdo03Wtr3?vr?Nt< zsWV~bpS~f0U1<7&)toBR9n6^7rms88DX_ic2Iq1Xuu&k_PS3x~nF-^uPQTB?qOx7* I9_RZE09n$jvj6}9 diff --git a/package.json b/package.json index eda90c712..25f63ee1c 100644 --- a/package.json +++ b/package.json @@ -115,6 +115,8 @@ "webpack-cli": "^3.3.11" }, "dependencies": { + "@material-ui/core": "^4.9.10", + "@material-ui/icons": "^4.9.1", "@types/argparse": "^1.0.38", "@types/benchmark": "^1.0.31", "@types/compression": "1.7.0", diff --git a/src/mol-plugin-ui/base.tsx b/src/mol-plugin-ui/base.tsx index 7efc71321..c099407e8 100644 --- a/src/mol-plugin-ui/base.tsx +++ b/src/mol-plugin-ui/base.tsx @@ -9,6 +9,7 @@ import * as React from 'react'; import { Observable, Subscription } from 'rxjs'; import { PluginContext } from '../mol-plugin/context'; import { Button } from './controls/common'; +import { ArrowRight, ArrowDropDown } from '@material-ui/icons'; export const PluginReactContext = React.createContext(void 0 as any as PluginContext); @@ -101,7 +102,7 @@ export abstract class CollapsableControls<P = {}, S = {}, SS = {}> extends Plugi return <div className={wrapClass}> <div className='msp-transform-header'> - <Button icon={this.state.brand ? void 0 : this.state.isCollapsed ? 'expand' : 'collapse'} noOverflow onClick={this.toggleCollapsed} + <Button icon={this.state.brand ? void 0 : this.state.isCollapsed ? ArrowRight : ArrowDropDown} noOverflow onClick={this.toggleCollapsed} className={this.state.brand ? `msp-transform-header-brand msp-transform-header-brand-${this.state.brand.accent}` : void 0} title={`Click to ${this.state.isCollapsed ? 'expand' : 'collapse'}`}> {this.state.brand && <div className={`msp-accent-bg-${this.state.brand.accent}`}>{this.state.brand.name}</div>} {this.state.header} diff --git a/src/mol-plugin-ui/camera.tsx b/src/mol-plugin-ui/camera.tsx index 5838fc60a..07e90bc56 100644 --- a/src/mol-plugin-ui/camera.tsx +++ b/src/mol-plugin-ui/camera.tsx @@ -4,18 +4,19 @@ * @author David Sehnal <david.sehnal@gmail.com> */ -import { PluginCommands } from '../mol-plugin/commands'; +import { Code, Delete } from '@material-ui/icons'; import * as React from 'react'; -import { PluginUIComponent } from './base'; +import { PluginCommands } from '../mol-plugin/commands'; import { ParamDefinition as PD } from '../mol-util/param-definition'; -import { ParameterControls } from './controls/parameters'; -import { Icon } from './controls/icons'; +import { PluginUIComponent } from './base'; import { Button, IconButton } from './controls/common'; +import { Icon } from './controls/icons'; +import { ParameterControls } from './controls/parameters'; export class CameraSnapshots extends PluginUIComponent<{ }, { }> { render() { return <div> - <div className='msp-section-header'><Icon name='code' /> Camera Snapshots</div> + <div className='msp-section-header'><Icon svg={Code} /> Camera Snapshots</div> <CameraSnapshotControls /> <CameraSnapshotList /> </div>; @@ -69,7 +70,7 @@ class CameraSnapshotList extends PluginUIComponent<{ }, { }> { return <ul style={{ listStyle: 'none' }} className='msp-state-list'> {this.plugin.state.cameraSnapshots.state.entries.valueSeq().map(e =><li key={e!.id}> <Button onClick={this.apply(e!.id)}>{e!.name || e!.timestamp} <small>{e!.description}</small></Button> - <IconButton icon='remove' onClick={this.remove(e!.id)} className='msp-state-list-remove-button' /> + <IconButton svg={Delete} onClick={this.remove(e!.id)} className='msp-state-list-remove-button' /> </li>)} </ul>; } diff --git a/src/mol-plugin-ui/controls.tsx b/src/mol-plugin-ui/controls.tsx index af6c6de78..70d3d1175 100644 --- a/src/mol-plugin-ui/controls.tsx +++ b/src/mol-plugin-ui/controls.tsx @@ -5,23 +5,24 @@ * @author Alexander Rose <alexander.rose@weirdbyte.de> */ +import { Build, NavigateBefore, NavigateNext, PlayArrow, SkipPrevious, Stop, Subscriptions } from '@material-ui/icons'; import * as React from 'react'; -import { PluginCommands } from '../mol-plugin/commands'; import { UpdateTrajectory } from '../mol-plugin-state/actions/structure'; -import { PluginUIComponent } from './base'; import { LociLabel } from '../mol-plugin-state/manager/loci-label'; -import { IconButton } from './controls/common'; import { PluginStateObject } from '../mol-plugin-state/objects'; import { StateTransforms } from '../mol-plugin-state/transforms'; -import { StateTransformer } from '../mol-state'; import { ModelFromTrajectory } from '../mol-plugin-state/transforms/model'; -import { AnimationControls } from './state/animation'; -import { StructureSelectionActionsControls } from './structure/selection'; +import { PluginCommands } from '../mol-plugin/commands'; +import { StateTransformer } from '../mol-state'; +import { PluginUIComponent } from './base'; +import { IconButton } from './controls/common'; import { Icon } from './controls/icons'; +import { AnimationControls } from './state/animation'; import { StructureComponentControls } from './structure/components'; +import { StructureMeasurementsControls } from './structure/measurements'; +import { StructureSelectionActionsControls } from './structure/selection'; import { StructureSourceControls } from './structure/source'; import { VolumeStreamingControls } from './structure/volume'; -import { StructureMeasurementsControls } from './structure/measurements'; export class TrajectoryViewportControls extends PluginUIComponent<{}, { show: boolean, label: string }> { state = { show: false, label: '' } @@ -102,9 +103,9 @@ export class TrajectoryViewportControls extends PluginUIComponent<{}, { show: bo return <div className='msp-traj-controls'> {/* <IconButton icon={isAnimating ? 'stop' : 'play'} title={isAnimating ? 'Stop' : 'Play'} onClick={isAnimating ? this.stopAnimation : this.playAnimation} /> */} - {!isAnimating && <IconButton icon='model-first' title='First Model' onClick={this.reset} disabled={isAnimating} />} - {!isAnimating && <IconButton icon='model-prev' title='Previous Model' onClick={this.prev} disabled={isAnimating} />} - {!isAnimating && <IconButton icon='model-next' title='Next Model' onClick={this.next} disabled={isAnimating} />} + {!isAnimating && <IconButton svg={SkipPrevious} title='First Model' onClick={this.reset} disabled={isAnimating} />} + {!isAnimating && <IconButton svg={NavigateBefore} title='Previous Model' onClick={this.prev} disabled={isAnimating} />} + {!isAnimating && <IconButton svg={NavigateNext} title='Next Model' onClick={this.next} disabled={isAnimating} />} {!!this.state.label && <span>{this.state.label}</span> } </div>; } @@ -192,11 +193,11 @@ export class StateSnapshotViewportControls extends PluginUIComponent<{}, { isBus {!current && <option key='none' value='none'></option>} {snapshots.state.entries.valueSeq().map((e, i) => <option key={e!.snapshot.id} value={e!.snapshot.id}>{`[${i! + 1}/${count}]`} {e!.name || new Date(e!.timestamp).toLocaleString()}</option>)} </select> - <IconButton icon={isPlaying ? 'stop' : 'play'} title={isPlaying ? 'Pause' : 'Cycle States'} onClick={this.togglePlay} + <IconButton svg={isPlaying ? Stop : PlayArrow} title={isPlaying ? 'Pause' : 'Cycle States'} onClick={this.togglePlay} disabled={isPlaying ? false : this.state.isBusy} /> {!isPlaying && <> - <IconButton icon='left-open' title='Previous State' onClick={this.prev} disabled={this.state.isBusy || isPlaying} /> - <IconButton icon='right-open' title='Next State' onClick={this.next} disabled={this.state.isBusy || isPlaying} /> + <IconButton svg={NavigateBefore} title='Previous State' onClick={this.prev} disabled={this.state.isBusy || isPlaying} /> + <IconButton svg={NavigateNext} title='Next State' onClick={this.next} disabled={this.state.isBusy || isPlaying} /> </>} </div>; } @@ -235,7 +236,7 @@ export class AnimationViewportControls extends PluginUIComponent<{}, { isEmpty: return <div className='msp-animation-viewport-controls'> <div> <div className='msp-semi-transparent-background' /> - <IconButton icon={isAnimating || isPlaying ? 'stop' : 'tape'} transparent title={isAnimating ? 'Stop' : 'Select Animation'} + <IconButton svg={isAnimating || isPlaying ? Stop : Subscriptions} transparent title={isAnimating ? 'Stop' : 'Select Animation'} onClick={isAnimating || isPlaying ? this.stop : this.toggleExpanded} disabled={isAnimating || isPlaying ? false : this.state.isBusy || this.state.isPlaying || this.state.isEmpty} /> </div> @@ -299,7 +300,7 @@ export class CustomStructureControls extends PluginUIComponent<{ initiallyCollap export class DefaultStructureTools extends PluginUIComponent { render() { return <> - <div className='msp-section-header'><Icon name='tools' />Structure Tools</div> + <div className='msp-section-header'><Icon svg={Build} />Structure Tools</div> <StructureSourceControls /> <StructureMeasurementsControls /> diff --git a/src/mol-plugin-ui/controls/action-menu.tsx b/src/mol-plugin-ui/controls/action-menu.tsx index 47d0bb8c3..44c840c20 100644 --- a/src/mol-plugin-ui/controls/action-menu.tsx +++ b/src/mol-plugin-ui/controls/action-menu.tsx @@ -8,7 +8,7 @@ import * as React from 'react'; import { ParamDefinition } from '../../mol-util/param-definition'; import { Button, ControlGroup } from './common'; -import { IconName } from './icons'; +import { ArrowRight, Check, Close, ArrowDropDown } from '@material-ui/icons'; export class ActionMenu extends React.PureComponent<ActionMenu.Props> { hide = () => this.props.onSelect(void 0) @@ -17,7 +17,7 @@ export class ActionMenu extends React.PureComponent<ActionMenu.Props> { const cmd = this.props; const section = <Section items={cmd.items} onSelect={cmd.onSelect} current={cmd.current} multiselect={this.props.multiselect} noOffset={this.props.noOffset} noAccent={this.props.noAccent} />; return <div className={`msp-action-menu-options${cmd.header ? '' : ' msp-action-menu-options-no-header'}`}> - {cmd.header && <ControlGroup header={cmd.header} initialExpanded={true} hideExpander={true} hideOffset onHeaderClick={this.hide} topRightIcon='off'> + {cmd.header && <ControlGroup header={cmd.header} initialExpanded={true} hideExpander={true} hideOffset onHeaderClick={this.hide} topRightIcon={Close}> {section} </ControlGroup>} {!cmd.header && section} @@ -41,13 +41,13 @@ export namespace ActionMenu { export type Items = Header | Item | Items[] export type Header = { kind: 'header', label: string, isIndependent?: boolean, initiallyExpanded?: boolean, description?: string } - export type Item = { kind: 'item', label: string, icon?: IconName, disabled?: boolean, selected?: boolean, value: unknown, addOn?: JSX.Element, description?: string } + export type Item = { kind: 'item', label: string, icon?: React.FC, disabled?: boolean, selected?: boolean, value: unknown, addOn?: JSX.Element, description?: string } export function Header(label: string, options?: { isIndependent?: boolean, initiallyExpanded?: boolean, description?: string }): Header { return options ? { kind: 'header', label, ...options } : { kind: 'header', label }; } - export function Item(label: string, value: unknown, options?: { icon?: IconName, description?: string }): Item { + export function Item(label: string, value: unknown, options?: { icon?: React.FC, description?: string }): Item { return { kind: 'item', label, value, ...options }; } @@ -56,7 +56,7 @@ export namespace ActionMenu { label?: (t: T) => string, value?: (t: T) => any, category?: (t: T) => string | undefined, - icon?: (t: T) => IconName | undefined, + icon?: (t: T) => React.FC | undefined, selected?: (t: T) => boolean | undefined, addOn?: (t: T) => JSX.Element | undefined description?: (t: T) => string | undefined, @@ -225,13 +225,13 @@ class Section extends React.PureComponent<SectionProps, SectionState> { const { header, hasCurrent } = this.state; return <div className='msp-flex-row msp-control-group-header'> - <Button icon={this.state.isExpanded ? 'collapse' : 'expand'} flex noOverflow onClick={this.toggleExpanded} title={`Click to ${this.state.isExpanded ? 'collapse' : 'expand'}.${header?.description ? ` ${header?.description}` : ''}`}> + <Button icon={this.state.isExpanded ? ArrowDropDown : ArrowRight} flex noOverflow onClick={this.toggleExpanded} title={`Click to ${this.state.isExpanded ? 'collapse' : 'expand'}.${header?.description ? ` ${header?.description}` : ''}`}> {hasCurrent ? <b>{header?.label}</b> : header?.label} </Button> - <Button icon='check' flex onClick={this.selectAll} style={{ flex: '0 0 50px', textAlign: 'right' }}> + <Button icon={Check} flex onClick={this.selectAll} style={{ flex: '0 0 50px', textAlign: 'right' }}> All </Button> - <Button icon='cancel' flex onClick={this.selectNone} style={{ flex: '0 0 50px', textAlign: 'right' }}> + <Button icon={Close} flex onClick={this.selectNone} style={{ flex: '0 0 50px', textAlign: 'right' }}> None </Button> </div>; @@ -241,7 +241,7 @@ class Section extends React.PureComponent<SectionProps, SectionState> { const { header, hasCurrent } = this.state; return <div className='msp-control-group-header' style={{ marginTop: '1px' }}> - <Button noOverflow icon={this.state.isExpanded ? 'collapse' : 'expand'} onClick={this.toggleExpanded} title={`Click to ${this.state.isExpanded ? 'collapse' : 'expand'}. ${header?.description ? header?.description : ''}`}> + <Button noOverflow icon={this.state.isExpanded ? ArrowDropDown : ArrowRight} onClick={this.toggleExpanded} title={`Click to ${this.state.isExpanded ? 'collapse' : 'expand'}. ${header?.description ? header?.description : ''}`}> {hasCurrent ? <b>{header?.label}</b> : header?.label} </Button> </div>; diff --git a/src/mol-plugin-ui/controls/common.tsx b/src/mol-plugin-ui/controls/common.tsx index 53e7f1c2e..b27dd233c 100644 --- a/src/mol-plugin-ui/controls/common.tsx +++ b/src/mol-plugin-ui/controls/common.tsx @@ -6,14 +6,15 @@ import * as React from 'react'; import { Color } from '../../mol-util/color'; -import { IconName, Icon } from './icons'; +import { Icon } from './icons'; +import { ArrowRight, ArrowDropDown, Remove, Add } from '@material-ui/icons'; export class ControlGroup extends React.Component<{ header: string, initialExpanded?: boolean, hideExpander?: boolean, hideOffset?: boolean, - topRightIcon?: IconName, + topRightIcon?: React.FC, headerLeftMargin?: string, onHeaderClick?: () => void, noTopMargin?: boolean, @@ -37,8 +38,8 @@ export class ControlGroup extends React.Component<{ return <div className='msp-control-group-wrapper' style={{ position: 'relative', marginTop: this.props.noTopMargin ? 0 : void 0 }}> <div className='msp-control-group-header' style={{ marginLeft: this.props.headerLeftMargin }}> <Button onClick={this.headerClicked}> - {!this.props.hideExpander && <Icon name={this.state.isExpanded ? 'collapse' : 'expand'} />} - {this.props.topRightIcon && <Icon name={this.props.topRightIcon} style={{ position: 'absolute', right: '2px', top: 0 }} />} + {!this.props.hideExpander && <Icon svg={this.state.isExpanded ? ArrowRight : ArrowDropDown} />} + {this.props.topRightIcon && <Icon svg={this.props.topRightIcon} style={{ position: 'absolute', right: '2px', top: 0 }} />} <b>{this.props.header}</b> </Button> </div> @@ -198,7 +199,7 @@ export class ExpandableControlRow extends React.Component<{ {label} <button className='msp-btn-link msp-btn-icon msp-control-group-expander' onClick={this.toggleExpanded} title={`${this.state.isExpanded ? 'Less' : 'More'} options`} style={{ background: 'transparent', textAlign: 'left', padding: '0' }}> - <Icon name={this.state.isExpanded ? 'minus' : 'plus'} style={{ display: 'inline-block' }} /> + <Icon svg={this.state.isExpanded ? Remove : Add} style={{ display: 'inline-block' }} /> </button> </>} control={pivot}> {this.props.colorStripe && <div className='msp-expandable-group-color-stripe' style={{ backgroundColor: Color.toStyle(this.props.colorStripe) }} />} @@ -210,9 +211,9 @@ export class ExpandableControlRow extends React.Component<{ } } -export function SectionHeader(props: { icon?: IconName, title: string | JSX.Element, desc?: string }) { +export function SectionHeader(props: { icon?: React.FC, title: string | JSX.Element, desc?: string }) { return <div className='msp-section-header'> - {props.icon && <Icon name={props.icon} />} + {props.icon && <Icon svg={props.icon} />} {props.title} <small>{props.desc}</small> </div>; } @@ -222,7 +223,7 @@ export type ButtonProps = { className?: string, disabled?: boolean, title?: string, - icon?: IconName, + icon?: React.FC, children?: React.ReactNode, onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void, onContextMenu?: (e: React.MouseEvent<HTMLButtonElement>) => void, @@ -241,6 +242,7 @@ export function Button(props: ButtonProps) { if (props.noOverflow) className += ' msp-no-overflow'; if (props.flex) className += ' msp-flex-item'; if (props.className) className += ' ' + props.className; + if (!props.children) className += ' msp-btn-childless'; let style: React.CSSProperties | undefined = void 0; if (props.flex) { @@ -254,13 +256,13 @@ export function Button(props: ButtonProps) { return <button onClick={props.onClick} title={props.title} disabled={props.disabled} style={style} className={className} data-id={props['data-id']} data-color={props['data-color']} onContextMenu={props.onContextMenu} onMouseEnter={props.onMouseEnter} onMouseLeave={props.onMouseLeave}> - {props.icon && <Icon name={props.icon} />} + {props.icon && <Icon svg={props.icon} />} {props.children} </button>; } export function IconButton(props: { - icon: IconName, + svg?: React.FC, small?: boolean, onClick: (e: React.MouseEvent<HTMLButtonElement>) => void, title?: string, @@ -280,7 +282,6 @@ export function IconButton(props: { if (props.transparent) { className += ' msp-transparent-bg'; } - const iconStyle = props.small ? { fontSize: '80%' } : void 0; let style: React.CSSProperties | undefined = void 0; if (props.flex) { @@ -294,7 +295,7 @@ export function IconButton(props: { } return <button className={className} onClick={props.onClick} title={props.title} disabled={props.disabled} data-id={props['data-id']} style={style}> - <Icon name={props.icon} style={iconStyle} /> + {props.svg && <Icon svg={props.svg} />} {props.extraContent} </button>; } @@ -305,7 +306,7 @@ export type ToggleButtonProps = { disabled?: boolean, label?: string | JSX.Element, title?: string, - icon?: IconName, + icon?: React.FC, isSelected?: boolean, toggle: () => void } @@ -336,7 +337,7 @@ export class ExpandGroup extends React.PureComponent<{ header: string, headerSty return <> <div className='msp-control-group-header' style={{ marginTop: this.props.marginTop !== void 0 ? this.props.marginTop : '1px', marginLeft: this.props.headerLeftMargin }}> <button className='msp-btn msp-form-control msp-btn-block' onClick={this.toggleExpanded} style={this.props.headerStyle}> - <Icon name={this.state.isExpanded ? 'collapse' : 'expand'} /> + <Icon svg={this.state.isExpanded ? ArrowDropDown : ArrowRight} /> {this.props.header} </button> </div> diff --git a/src/mol-plugin-ui/controls/icons.tsx b/src/mol-plugin-ui/controls/icons.tsx index bd82b9a35..b12b66524 100644 --- a/src/mol-plugin-ui/controls/icons.tsx +++ b/src/mol-plugin-ui/controls/icons.tsx @@ -7,139 +7,75 @@ import * as React from 'react'; -export type IconName = FontIconName | SvgIconName - export function Icon(props: { - name: IconName | undefined, + svg?: React.FC, + // name?: IconName | undefined, style?: React.CSSProperties, title?: string }) { - if (!props.name) return null; - switch (props.name) { - case 'union': - case 'subtract': - case 'intersect': - case 'set': - return <SvgIcon name={props.name} title={props.title} style={props.style} />; - default: return <FontIcon name={props.name} title={props.title} style={props.style} />; - } + if (!props.svg) return null; + return <span className='msp-icon msp-material-icon' title={props.title} style={props.style}><props.svg /></span>; } // -type FontIconName = - | '' | 'expand-layout' | 'plus' | 'minus' | 'reset-scene' | 'ok' | 'back' | 'block' | 'off' | 'expand' | 'collapse' | 'visual-visibility' - | 'abort' | 'focus-on-visual' | 'settings' | 'tools' | 'log' | 'remove' | 'help' | 'help-circle' | 'info' | 'left-open-big' | 'right-open-big' - | 'left-open' | 'right-open' | 'screenshot' | 'model-prev' | 'model-next' | 'model-first' | 'down-thin' | 'up-thin' | 'left-thin' | 'right-thin' - | 'switch' | 'play' | 'stop' | 'pause' | 'cw' | 'database' | 'upload' | 'record' | 'code' | 'floppy' | 'tape' | 'flow-cascade' | 'flow-tree' - | 'home' | 'address' | 'download' | 'export' | 'palette' | 'search' | 'flashlight' | 'mail' | 'heart' | 'heart-empty' | 'star' | 'star-empty' - | 'user' | 'users' | 'user-add' | 'video' | 'picture' | 'camera' | 'layout' | 'menu' | 'check' | 'cancel' | 'cancel-circled' | 'cancel-squared' - | 'plus-circled' | 'plus-squared' | 'minus-circled' | 'minus-squared' | 'help-circled' | 'info-circled' | 'link' | 'attach' | 'lock' | 'lock-open' - | 'eye' | 'tag' | 'bookmark' | 'bookmarks' | 'flag' | 'thumbs-up' | 'thumbs-down' | 'upload-cloud' | 'reply' | 'reply-all' | 'forward' | 'quote' - | 'pencil' | 'feather' | 'print' | 'retweet' | 'keyboard' | 'comment' | 'chat' | 'bell' | 'attention' | 'alert' | 'vcard' | 'location' | 'map' - | 'direction' | 'compass' | 'cup' | 'trash' | 'doc' | 'docs' | 'doc-landscape' | 'doc-text' | 'doc-text-inv' | 'newspaper' | 'book-open' | 'book' - | 'folder' | 'archive' | 'box' | 'rss' | 'phone' | 'cog' | 'share' | 'shareable' | 'basket' | 'bag' | 'calendar' | 'login' | 'logout' | 'mic' - | 'mute' | 'sound' | 'volume' | 'clock' | 'hourglass' | 'lamp' | 'light-down' | 'light-up' | 'adjust' | 'resize-full' | 'resize-small' | 'popup' - | 'publish' | 'window' | 'arrow-combo' | 'down-circled' | 'left-circled' | 'right-circled' | 'up-circled' | 'down-open' | 'up-open' | 'down-open-mini' - | 'left-open-mini' | 'right-open-mini' | 'up-open-mini' | 'down-open-big' | 'up-open-big' | 'down' | 'left' | 'right' | 'up' | 'down-dir' | 'left-dir' - | 'right-dir' | 'up-dir' | 'down-bold' | 'left-bold' | 'right-bold' | 'up-bold' | 'ccw' | 'arrows-ccw' | 'level-down' | 'level-up' | 'shuffle' - | 'loop' | 'to-end' | 'to-start' | 'fast-forward' | 'fast-backward' | 'progress-0' | 'progress-1' | 'progress-2' | 'progress-3' | 'target' | 'list' - | 'list-add' | 'battery' | 'back-in-time' | 'monitor' | 'mobile' | 'cd' | 'inbox' | 'install' | 'globe' | 'cloud' | 'cloud-thunder' | 'flash' - | 'moon' | 'flight' | 'paper-plane' | 'leaf' | 'lifebuoy' | 'mouse' | 'briefcase' | 'suitcase' | 'dot' | 'dot-2' | 'dot-3' | 'brush' | 'infinity' - | 'erase' | 'chart-pie' | 'chart-line' | 'chart-bar' | 'chart-area' | 'graduation-cap' | 'language' | 'ticket' | 'water' | 'droplet' | 'air' - | 'credit-card' | 'clipboard' | 'megaphone' | 'drive' | 'bucket' | 'thermometer' | 'key' | 'flow-branch' | 'flow-line' | 'flow-parallel' | 'rocket' - | 'gauge' | 'help-circle-collapse' | 'help-circle-expand' | 'mouse-plus' +export function Union() { return _union; } +export function Subtract() { return _subtract; } +export function Intersect() { return _intersect; } +export function SetSvg() { return _set; } -function FontIcon(props: { - name: FontIconName, - style?: React.CSSProperties, - title?: string -}) { - return <span className={`msp-icon msp-icon-${props.name}`} style={props.style} title={props.title} />; -} +const circleLeft = <circle r="6px" id="circle-left" cy="12px" cx="8px" strokeWidth="0.5" />; +const circleRight = <circle r="6px" id="circle-right" cy="12px" cx="16px" strokeWidth="0.5" />; -// +const _union = <svg width="24px" height="24px" viewBox="0 0 24 24"> + <defs> + {circleLeft} + {circleRight} + </defs> + <g> + <use href="#circle-left" className="msp-shape-filled" /> + <use href="#circle-right" className="msp-shape-filled" /> + <use href="#circle-left" className="msp-shape-empty" /> + </g> +</svg>; -type SvgIconName = - | '' | 'set' | 'intersect' | 'union' | 'subtract' +const _subtract = <svg width="24px" height="24px" viewBox="0 0 24 24"> + <defs> + {circleLeft} + {circleRight} + <mask id="mask-left"> + <use href="#circle-left" fill="white" stroke="white" /> + <use href="#circle-right" fill="black" strokeWidth="0" stroke="white" /> + </mask> + </defs> + <g> + <use href="#circle-left" className="msp-shape-filled" mask="url(#mask-left)" /> + <use href="#circle-right" className="msp-shape-empty" /> + </g> +</svg>; -function SvgIcon(props: { - name: SvgIconName, - style?: React.CSSProperties, - title?: string -}) { - return <div className='msp-icon msp-svg-icon' style={props.style} title={props.title}>{getSvg(props.name)}</div>; -} - -function getSvg(name: SvgIconName) { - switch (name) { - case 'union': return <Union />; - case 'subtract': return <Subtract />; - case 'intersect': return <Intersect />; - case 'set': return <Set />; - } -} - -const circleLeft = <circle r="6px" id="circle-left" cy="16px" cx="12px" strokeWidth="0.5"/>; -const circleRight = <circle r="6px" id="circle-right" cy="16px" cx="20px" strokeWidth="0.5"/>; - -function Union() { - return <svg width="32px" height="32px" viewBox="0 0 32 32"> - <defs> - {circleLeft} - {circleRight} - </defs> - <g> - <use href="#circle-left" className="msp-shape-filled"/> - <use href="#circle-right" className="msp-shape-filled"/> - <use href="#circle-left" className="msp-shape-empty"/> - </g> - </svg>; -} - -function Subtract() { - return <svg width="32px" height="32px" viewBox="0 0 32 32"> - <defs> - {circleLeft} - {circleRight} - <mask id="mask-left"> - <use href="#circle-left" fill="white" stroke="white"/> - <use href="#circle-right" fill="black" strokeWidth="0" stroke="white"/> - </mask> - </defs> - <g> - <use href="#circle-left" className="msp-shape-filled" mask="url(#mask-left)"/> - <use href="#circle-right" className="msp-shape-empty"/> - </g> - </svg>; -} - -function Intersect() { - return <svg width="32px" height="32px" viewBox="0 0 32 32"> - <defs> - {circleLeft} - {circleRight} - <clipPath id="clip-left"> - <use href="#circle-right"/> - </clipPath> - </defs> - <g> - <use href="#circle-left" className="msp-shape-filled" clipPath="url(#clip-left)"/> - <use href="#circle-left" className="msp-shape-empty"/> - <use href="#circle-right" className="msp-shape-empty"/> - </g> - </svg>; -} +const _intersect = <svg width="24px" height="24px" viewBox="0 0 24 24"> + <defs> + {circleLeft} + {circleRight} + <clipPath id="clip-left"> + <use href="#circle-right" /> + </clipPath> + </defs> + <g> + <use href="#circle-left" className="msp-shape-filled" clipPath="url(#clip-left)" /> + <use href="#circle-left" className="msp-shape-empty" /> + <use href="#circle-right" className="msp-shape-empty" /> + </g> +</svg>; -function Set() { - return <svg width="32px" height="32px" viewBox="0 0 32 32"> - <defs> - {circleLeft} - {circleRight} - </defs> - <g> - <use href="#circle-left" className="msp-shape-empty"/> - <use href="#circle-right" className="msp-shape-filled"/> - </g> - </svg>; -} \ No newline at end of file +const _set = <svg width="24px" height="24px" viewBox="0 0 24 24"> + <defs> + {circleLeft} + {circleRight} + </defs> + <g> + <use href="#circle-left" className="msp-shape-empty" /> + <use href="#circle-right" className="msp-shape-filled" /> + </g> +</svg>; \ No newline at end of file diff --git a/src/mol-plugin-ui/controls/parameters.tsx b/src/mol-plugin-ui/controls/parameters.tsx index f6a3c4a29..7ef9ad18c 100644 --- a/src/mol-plugin-ui/controls/parameters.tsx +++ b/src/mol-plugin-ui/controls/parameters.tsx @@ -5,21 +5,22 @@ * @author Alexander Rose <alexander.rose@weirdbyte.de> */ +import { ArrowDownward, ArrowUpward, BookmarksOutlined, Delete, MoreHoriz, HelpOutline, Check, Clear, ArrowRight, ArrowDropDown } from '@material-ui/icons'; import * as React from 'react'; -import { Vec2, Vec3, Mat4 } from '../../mol-math/linear-algebra'; +import { Mat4, Vec2, Vec3 } from '../../mol-math/linear-algebra'; import { PluginContext } from '../../mol-plugin/context'; import { Color } from '../../mol-util/color'; -import { ColorListOptions, ColorListOptionsScale, ColorListOptionsSet, getColorListFromName, ColorListName } from '../../mol-util/color/lists'; +import { ColorListName, ColorListOptions, ColorListOptionsScale, ColorListOptionsSet, getColorListFromName } from '../../mol-util/color/lists'; import { Legend as LegendData } from '../../mol-util/legend'; import { memoize1, memoizeLatest } from '../../mol-util/memoize'; import { getPrecision } from '../../mol-util/number'; import { ParamDefinition as PD } from '../../mol-util/param-definition'; import { ParamMapping } from '../../mol-util/param-mapping'; import { camelCaseToWords } from '../../mol-util/string'; -import { PluginUIComponent, _Props, _State } from '../base'; +import { PluginUIComponent } from '../base'; import { ActionMenu } from './action-menu'; import { ColorOptions, ColorValueOption, CombinedColorControl } from './color'; -import { ControlGroup, ExpandGroup, IconButton, TextInput, ToggleButton, Button, ControlRow } from './common'; +import { Button, ControlGroup, ControlRow, ExpandGroup, IconButton, TextInput, ToggleButton } from './common'; import { Icon } from './icons'; import { legendFor } from './legend'; import LineGraphComponent from './line-graph/line-graph-component'; @@ -204,7 +205,7 @@ export class ParamHelp<L extends LegendData> extends React.PureComponent<{ legen return <div className='msp-help-text'> <div> - <div className='msp-help-description'><Icon name='help-circle' />{description}</div> + <div className='msp-help-description'><Icon svg={HelpOutline} />{description}</div> {Legend && <div className='msp-help-legend'><Legend legend={legend} /></div>} </div> </div>; @@ -247,7 +248,8 @@ function renderSimple(options: { props: ParamProps<any>, state: { showHelp: bool <button className='msp-help msp-btn-link msp-btn-icon msp-control-group-expander' onClick={toggleHelp} title={desc || `${state.showHelp ? 'Hide' : 'Show'} help`} style={{ background: 'transparent', textAlign: 'left', padding: '0' }}> - <Icon name={state.showHelp ? 'help-circle-collapse' : 'help-circle-expand'} /> + {/* TODO: <Icon name={state.showHelp ? 'help-circle-collapse' : 'help-circle-expand'} /> */} + <Icon svg={HelpOutline} /> </button> } </>} @@ -287,7 +289,7 @@ export class BoolControl extends SimpleParam<PD.BooleanParam> { onClick = (e: React.MouseEvent<HTMLButtonElement>) => { this.update(!this.props.value); e.currentTarget.blur(); } renderControl() { return <button onClick={this.onClick} disabled={this.props.isDisabled}> - <Icon name={this.props.value ? 'ok' : 'off'} /> + <Icon svg={this.props.value ? Check : Clear} /> {this.props.value ? 'On' : 'Off'} </button>; } @@ -453,9 +455,9 @@ export class SelectControl extends React.PureComponent<ParamProps<PD.Select<stri const toggle = this.props.param.cycle ? this.cycle : this.toggle; const textAlign = this.props.param.cycle ? 'center' : 'left'; const icon = this.props.param.cycle - ? (this.props.value === 'on' ? 'ok' - : this.props.value === 'off' ? 'off' : '') - : ''; + ? (this.props.value === 'on' ? Check + : this.props.value === 'off' ? Clear : void 0) + : void 0; return <ToggleButton disabled={this.props.isDisabled} style={{ textAlign, overflow: 'hidden', textOverflow: 'ellipsis' }} label={label} title={label as string} icon={icon} toggle={toggle} isSelected={this.state.showOptions} />; @@ -631,7 +633,7 @@ export class ColorListControl extends React.PureComponent<ParamProps<PD.ColorLis {value.colors.length === 1 ? '1 color' : `${value.colors.length} colors`} <div style={colorStripStyle(value, '33px')} /> </button> - <IconButton icon='bookmarks' onClick={this.togglePresets} toggleState={this.state.show === 'presets'} title='Color Presets' + <IconButton svg={BookmarksOutlined} onClick={this.togglePresets} toggleState={this.state.show === 'presets'} title='Color Presets' style={{ padding: 0, position: 'absolute', right: 0, top: 0, width: '32px' }} /> </>; } @@ -893,7 +895,7 @@ export class GroupControl extends React.PureComponent<ParamProps<PD.Group<any>> if (!this.state.isExpanded) { return <div className='msp-mapped-parameter-group'> {ctrl} - <IconButton icon='dot-3' onClick={this.toggleExpanded} toggleState={this.state.isExpanded} title={`More Options`} /> + <IconButton svg={MoreHoriz} onClick={this.toggleExpanded} toggleState={this.state.isExpanded} title={`More Options`} /> </div>; } @@ -904,7 +906,7 @@ export class GroupControl extends React.PureComponent<ParamProps<PD.Group<any>> return <div className='msp-mapped-parameter-group'> {ctrl} - <IconButton icon='dot-3' onClick={this.toggleExpanded} toggleState={this.state.isExpanded} title={`More Options`} /> + <IconButton svg={MoreHoriz} onClick={this.toggleExpanded} toggleState={this.state.isExpanded} title={`More Options`} /> <div className='msp-control-offset'> <ParameterControls params={filtered} onEnter={this.props.onEnter} values={this.props.value} onChange={this.onChangeParam} isDisabled={this.props.isDisabled} /> </div> @@ -934,7 +936,7 @@ export class GroupControl extends React.PureComponent<ParamProps<PD.Group<any>> return <div className='msp-control-group-wrapper'> <div className='msp-control-group-header'> <button className='msp-btn msp-form-control msp-btn-block' onClick={this.toggleExpanded}> - <Icon name={this.state.isExpanded ? 'collapse' : 'expand'} /> + <Icon svg={this.state.isExpanded ? ArrowDropDown : ArrowRight} /> {label} </button> </div> @@ -1010,7 +1012,7 @@ export class MappedControl extends React.PureComponent<ParamProps<PD.Mapped<any> if (!this.areParamsEmpty(param.params)) { return <div className='msp-mapped-parameter-group'> {Select} - <IconButton icon='dot-3' onClick={this.toggleExpanded} toggleState={this.state.isExpanded} title={`${label} Properties`} /> + <IconButton svg={MoreHoriz} onClick={this.toggleExpanded} toggleState={this.state.isExpanded} title={`${label} Properties`} /> {this.state.isExpanded && <GroupControl inMapped param={param} value={value.params} name={value.name} onChange={this.onChangeParam} onEnter={this.props.onEnter} isDisabled={this.props.isDisabled} />} </div>; } @@ -1088,9 +1090,9 @@ class ObjectListItem extends React.PureComponent<ObjectListItemProps, { isExpand {this.props.param.getLabel(this.props.value)} </button> <div> - <IconButton icon='up-thin' title='Move Up' onClick={this.moveUp} small={true} /> - <IconButton icon='down-thin' title='Move Down' onClick={this.moveDown} small={true} /> - <IconButton icon='remove' title='Remove' onClick={this.remove} small={true} /> + <IconButton svg={ArrowDownward} title='Move Up' onClick={this.moveUp} small={true} /> + <IconButton svg={ArrowUpward} title='Move Down' onClick={this.moveDown} small={true} /> + <IconButton svg={Delete} title='Remove' onClick={this.remove} small={true} /> </div> </div> {this.state.isExpanded && <div className='msp-control-offset'> diff --git a/src/mol-plugin-ui/left-panel.tsx b/src/mol-plugin-ui/left-panel.tsx index 4b666d58e..91ef05da6 100644 --- a/src/mol-plugin-ui/left-panel.tsx +++ b/src/mol-plugin-ui/left-panel.tsx @@ -17,7 +17,7 @@ import { ParamDefinition as PD } from '../mol-util/param-definition'; import { StateSnapshots, RemoteStateSnapshots } from './state/snapshots'; import { HelpContent } from './viewport/help'; import { LeftPanelTabName } from '../mol-plugin/layout'; -import { IconName } from './controls/icons'; +import { Home, HelpOutline, Save, Tune, Delete, AccountTree } from '@material-ui/icons'; export class LeftPanelControls extends PluginUIComponent<{}, { tab: LeftPanelTabName }> { state = { tab: this.plugin.behaviors.layout.leftPanelTabName.value }; @@ -52,21 +52,21 @@ export class LeftPanelControls extends PluginUIComponent<{}, { tab: LeftPanelTab tabs: { [K in LeftPanelTabName]: JSX.Element } = { 'none': <></>, 'root': <> - <SectionHeader icon='home' title='Home' /> + <SectionHeader icon={Home} title='Home' /> <StateObjectActions state={this.plugin.state.data} nodeRef={StateTransform.RootRef} hideHeader={true} initiallyCollapsed={true} alwaysExpandFirst={true} /> {this.plugin.spec.components?.remoteState !== 'none' && <RemoteStateSnapshots listOnly /> } </>, 'data': <> - <SectionHeader icon='flow-tree' title={<><RemoveAllButton /> State Tree</>} /> + <SectionHeader icon={AccountTree} title={<><RemoveAllButton /> State Tree</>} /> <StateTree state={this.plugin.state.data} /> </>, 'states': <StateSnapshots />, 'settings': <> - <SectionHeader icon='settings' title='Plugin Settings' /> + <SectionHeader icon={Tune} title='Plugin Settings' /> <FullSettings /> </>, 'help': <> - <SectionHeader icon='help-circle' title='Help' /> + <SectionHeader icon={HelpOutline} title='Help' /> <HelpContent /> </> } @@ -77,13 +77,13 @@ export class LeftPanelControls extends PluginUIComponent<{}, { tab: LeftPanelTab // TODO: show "changed dot" next to the 'data' tab icon indicating the state has changed. return <div className='msp-left-panel-controls'> <div className='msp-left-panel-controls-buttons'> - <IconButton icon='home' toggleState={tab === 'root'} transparent onClick={() => this.set('root')} title='Home' /> + <IconButton svg={Home} toggleState={tab === 'root'} transparent onClick={() => this.set('root')} title='Home' /> {/* <IconButton icon='flow-tree' toggleState={tab === 'data'} onClick={() => this.set('data')} title='State Tree' /> */} <DataIcon set={this.set} /> - <IconButton icon='floppy' toggleState={tab === 'states'} transparent onClick={() => this.set('states')} title='Plugin State' /> - <IconButton icon='help-circle' toggleState={tab === 'help'} transparent onClick={() => this.set('help')} title='Help' /> + <IconButton svg={Save} toggleState={tab === 'states'} transparent onClick={() => this.set('states')} title='Plugin State' /> + <IconButton svg={HelpOutline} toggleState={tab === 'help'} transparent onClick={() => this.set('help')} title='Help' /> <div className='msp-left-panel-controls-buttons-bottom'> - <IconButton icon='settings' toggleState={tab === 'settings'} transparent onClick={() => this.set('settings')} title='Settings' /> + <IconButton svg={Tune} toggleState={tab === 'settings'} transparent onClick={() => this.set('settings')} title='Settings' /> </div> </div> <div className='msp-scrollable-container'> @@ -113,7 +113,7 @@ class DataIcon extends PluginUIComponent<{ set: (tab: LeftPanelTabName) => void render() { return <IconButton - icon='flow-tree' toggleState={this.tab === 'data'} transparent onClick={() => this.props.set('data')} title='State Tree' + svg={AccountTree} toggleState={this.tab === 'data'} transparent onClick={() => this.props.set('data')} title='State Tree' style={{ position: 'relative' }} extraContent={this.state.changed ? <div className='msp-left-panel-controls-button-data-dirty' /> : void 0} />; } } @@ -134,10 +134,6 @@ class FullSettings extends PluginUIComponent { }); } - icon(name: IconName, onClick: (e: React.MouseEvent<HTMLButtonElement>) => void, title: string, isOn = true) { - return <IconButton icon={name} toggleState={isOn} onClick={onClick} title={title} />; - } - render() { return <> {this.plugin.canvas3d && <> @@ -169,6 +165,6 @@ export class RemoveAllButton extends PluginUIComponent<{ }> { render() { const count = this.plugin.state.data.tree.children.get(StateTransform.RootRef).size; if (count === 0) return null; - return <IconButton icon='remove' onClick={this.remove} title={'Remove All'} style={{ display: 'inline-block' }} small className='msp-no-hover-outline' transparent />; + return <IconButton svg={Delete} onClick={this.remove} title={'Remove All'} style={{ display: 'inline-block' }} small className='msp-no-hover-outline' transparent />; } } diff --git a/src/mol-plugin-ui/sequence.tsx b/src/mol-plugin-ui/sequence.tsx index 6032974b7..7593d514e 100644 --- a/src/mol-plugin-ui/sequence.tsx +++ b/src/mol-plugin-ui/sequence.tsx @@ -22,6 +22,7 @@ import { ElementSequenceWrapper } from './sequence/element'; import { elementLabel } from '../mol-theme/label'; import { Icon } from './controls/icons'; import { StructureSelectionManager } from '../mol-plugin-state/manager/structure/selection'; +import { HelpOutline } from '@material-ui/icons'; const MaxDisplaySequenceLength = 5000; @@ -295,7 +296,7 @@ export class SequenceView extends PluginUIComponent<{ }, SequenceViewState> { if (this.getStructure(this.state.structureRef) === Structure.Empty) { return <div className='msp-sequence'> <div className='msp-sequence-select'> - <Icon name='help-circle' style={{ cursor: 'help', position: 'absolute', right: 0, top: 0 }} + <Icon svg={HelpOutline} style={{ cursor: 'help', position: 'absolute', right: 0, top: 0 }} title='This shows a single sequence. Use the controls to show a different sequence.'/> <span>Sequence</span><span style={{ fontWeight: 'normal' }}>No structure available</span> @@ -310,7 +311,7 @@ export class SequenceView extends PluginUIComponent<{ }, SequenceViewState> { return <div className='msp-sequence'> <div className='msp-sequence-select'> - <Icon name='help-circle' style={{ cursor: 'help', position: 'absolute', right: 0, top: 0 }} + <Icon svg={HelpOutline} style={{ cursor: 'help', position: 'absolute', right: 0, top: 0 }} title='This shows a single sequence. Use the controls to show a different sequence.' /> <span>Sequence of</span> diff --git a/src/mol-plugin-ui/skin/base/base.scss b/src/mol-plugin-ui/skin/base/base.scss index 33b4e2417..174e9f030 100644 --- a/src/mol-plugin-ui/skin/base/base.scss +++ b/src/mol-plugin-ui/skin/base/base.scss @@ -1,16 +1,4 @@ -@font-face { - font-family: 'fontello'; - src: url('./fonts/fontello.eot?22556350'); - src: url('./fonts/fontello.eot?22556350#iefix') format('embedded-opentype'), - url('./fonts/fontello.woff2?22556350') format('woff2'), - url('./fonts/fontello.woff?22556350') format('woff'), - url('./fonts/fontello.ttf?22556350') format('truetype'), - url('./fonts/fontello.svg?22556350#fontello') format('svg'); - font-weight: normal; - font-style: normal; -} - -@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400italic,700); +// @import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400italic,700); @mixin user-select($select) { -webkit-user-select: $select; @@ -20,7 +8,7 @@ } .msp-plugin { - font-family: "Helvetica Neue", "Source Sans Pro", Helvetica, Arial, sans-serif; + font-family: "Helvetica Neue", "Segoe UI", Helvetica, "Source Sans Pro", Arial, sans-serif; font-size: 14px; line-height: 1.42857143; diff --git a/src/mol-plugin-ui/skin/base/components/controls-base.scss b/src/mol-plugin-ui/skin/base/components/controls-base.scss index 4c4b28109..83a059a24 100644 --- a/src/mol-plugin-ui/skin/base/components/controls-base.scss +++ b/src/mol-plugin-ui/skin/base/components/controls-base.scss @@ -88,6 +88,38 @@ outline: none; } +// .msp-btn-icon, .msp-btn-icon-small { +// svg { +// display: inline-flex; +// vertical-align: middle; +// font-size: 1rem; +// margin-bottom: 3px; +// } +// } + +.msp-material-icon { + svg { + display: inline-flex; + vertical-align: middle; + font-size: 1rem; + margin-bottom: 3px; + } +} + +.msp-btn-block { + .msp-material-icon { + margin-left: 0; + margin-right: .4em; + } +} + +.msp-btn-childless { + .msp-material-icon { + margin-left: 0; + margin-right: 0; + } +} + .msp-btn-icon { border: none; height: $row-height; @@ -113,7 +145,7 @@ border: none; height: $row-height; width: 20px; - font-size: 85%; + // font-size: 85%; line-height: $row-height; padding: 0; text-align: center; diff --git a/src/mol-plugin-ui/skin/base/components/misc.scss b/src/mol-plugin-ui/skin/base/components/misc.scss index 3cc9fbd6f..5fffc0cc7 100644 --- a/src/mol-plugin-ui/skin/base/components/misc.scss +++ b/src/mol-plugin-ui/skin/base/components/misc.scss @@ -512,7 +512,6 @@ margin-top: 1px; display: flex; .msp-icon { - font-size: 80%; margin-right: 6px; } } diff --git a/src/mol-plugin-ui/skin/fonts/fontello.eot b/src/mol-plugin-ui/skin/fonts/fontello.eot deleted file mode 100644 index b522411b265bb3854a7f23579001bfe51e4229cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49272 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 S(b~cIzjXsk??%wHHUj{)gJOyR diff --git a/src/mol-plugin-ui/skin/fonts/fontello.html b/src/mol-plugin-ui/skin/fonts/fontello.html deleted file mode 100644 index e748ada4b..000000000 --- a/src/mol-plugin-ui/skin/fonts/fontello.html +++ /dev/null @@ -1,627 +0,0 @@ -<!DOCTYPE html> -<html> - <head><!--[if lt IE 9]><script language="javascript" type="text/javascript" src="//html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]--> - <meta charset="UTF-8"><style>/* - * Bootstrap v2.2.1 - * - * Copyright 2012 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world @twitter by @mdo and @fat. - */ -.clearfix { - *zoom: 1; -} -.clearfix:before, -.clearfix:after { - display: table; - content: ""; - line-height: 0; -} -.clearfix:after { - clear: both; -} -html { - font-size: 100%; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; -} -a:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -a:hover, -a:active { - outline: 0; -} -button, -input, -select, -textarea { - margin: 0; - font-size: 100%; - vertical-align: middle; -} -button, -input { - *overflow: visible; - line-height: normal; -} -button::-moz-focus-inner, -input::-moz-focus-inner { - padding: 0; - border: 0; -} -body { - margin: 0; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 20px; - color: #333; - background-color: #fff; -} -a { - color: #08c; - text-decoration: none; -} -a:hover { - color: #005580; - text-decoration: underline; -} -.row { - margin-left: -20px; - *zoom: 1; -} -.row:before, -.row:after { - display: table; - content: ""; - line-height: 0; -} -.row:after { - clear: both; -} -[class*="span"] { - float: left; - min-height: 1px; - margin-left: 20px; -} -.container, -.navbar-static-top .container, -.navbar-fixed-top .container, -.navbar-fixed-bottom .container { - width: 940px; -} -.span12 { - width: 940px; -} -.span11 { - width: 860px; -} -.span10 { - width: 780px; -} -.span9 { - width: 700px; -} -.span8 { - width: 620px; -} -.span7 { - width: 540px; -} -.span6 { - width: 460px; -} -.span5 { - width: 380px; -} -.span4 { - width: 300px; -} -.span3 { - width: 220px; -} -.span2 { - width: 140px; -} -.span1 { - width: 60px; -} -[class*="span"].pull-right, -.row-fluid [class*="span"].pull-right { - float: right; -} -.container { - margin-right: auto; - margin-left: auto; - *zoom: 1; -} -.container:before, -.container:after { - display: table; - content: ""; - line-height: 0; -} -.container:after { - clear: both; -} -p { - margin: 0 0 10px; -} -.lead { - margin-bottom: 20px; - font-size: 21px; - font-weight: 200; - line-height: 30px; -} -small { - font-size: 85%; -} -h1 { - margin: 10px 0; - font-family: inherit; - font-weight: bold; - line-height: 20px; - color: inherit; - text-rendering: optimizelegibility; -} -h1 small { - font-weight: normal; - line-height: 1; - color: #999; -} -h1 { - line-height: 40px; -} -h1 { - font-size: 38.5px; -} -h1 small { - font-size: 24.5px; -} -body { - margin-top: 90px; -} -.header { - position: fixed; - top: 0; - left: 50%; - margin-left: -480px; - background-color: #fff; - border-bottom: 1px solid #ddd; - padding-top: 10px; - z-index: 10; -} -.footer { - color: #ddd; - font-size: 12px; - text-align: center; - margin-top: 20px; -} -.footer a { - color: #ccc; - text-decoration: underline; -} -.the-icons { - font-size: 14px; - line-height: 24px; -} -.switch { - position: absolute; - right: 0; - bottom: 10px; - color: #666; -} -.switch input { - margin-right: 0.3em; -} -.codesOn .i-name { - display: none; -} -.codesOn .i-code { - display: inline; -} -.i-code { - display: none; -} -@font-face { - font-family: 'fontello'; - src: url('./fontello.eot?15936540'); - src: url('./fontello.eot?15936540#iefix') format('embedded-opentype'), - url('./fontello.woff?15936540') format('woff'), - url('./fontello.ttf?15936540') format('truetype'), - url('./fontello.svg?15936540#fontello') format('svg'); - font-weight: normal; - font-style: normal; - } - - - .demo-icon - { - font-family: "fontello"; - font-style: normal; - font-weight: normal; - - display: inline-block; - text-decoration: inherit; - width: 1em; - margin-right: .2em; - text-align: center; - /* opacity: .8; */ - - /* For safety - reset parent styles, that can break glyph codes*/ - font-variant: normal; - text-transform: none; - - /* fix buttons height, for twitter bootstrap */ - line-height: 1em; - - /* Animation center compensation - margins should be symmetric */ - /* remove if not needed */ - margin-left: .2em; - - /* You can be more comfortable with increased icons size */ - /* font-size: 120%; */ - - /* Font smoothing. That was taken from TWBS */ - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - - /* Uncomment for 3D effect */ - /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ - } - </style> - <script> - function toggleCodes(on) { - var obj = document.getElementById('icons'); - - if (on) { - obj.className += ' codesOn'; - } else { - obj.className = obj.className.replace(' codesOn', ''); - } - } - - </script> - </head> - <body> - <div class="container header"> - <h1> - Icons - </h1> - <label class="switch"> - <input type="checkbox" onclick="toggleCodes(this.checked)">show codes - </label> - </div> - <div id="icons" class="container"> - <div class="row"> - <div title="Code: 0xe800" class="the-icons span3"><i class="demo-icon icon-palette"></i> <span class="i-name">icon-palette</span><span class="i-code">0xe800</span></div> - <div title="Code: 0xe803" class="the-icons span3"><i class="demo-icon icon-search"></i> <span class="i-name">icon-search</span><span class="i-code">0xe803</span></div> - <div title="Code: 0xe804" class="the-icons span3"><i class="demo-icon icon-flashlight"></i> <span class="i-name">icon-flashlight</span><span class="i-code">0xe804</span></div> - <div title="Code: 0xe805" class="the-icons span3"><i class="demo-icon icon-mail"></i> <span class="i-name">icon-mail</span><span class="i-code">0xe805</span></div> - </div> - <div class="row"> - <div title="Code: 0xe806" class="the-icons span3"><i class="demo-icon icon-heart"></i> <span class="i-name">icon-heart</span><span class="i-code">0xe806</span></div> - <div title="Code: 0xe807" class="the-icons span3"><i class="demo-icon icon-heart-empty"></i> <span class="i-name">icon-heart-empty</span><span class="i-code">0xe807</span></div> - <div title="Code: 0xe808" class="the-icons span3"><i class="demo-icon icon-star"></i> <span class="i-name">icon-star</span><span class="i-code">0xe808</span></div> - <div title="Code: 0xe809" class="the-icons span3"><i class="demo-icon icon-star-empty"></i> <span class="i-name">icon-star-empty</span><span class="i-code">0xe809</span></div> - </div> - <div class="row"> - <div title="Code: 0xe80a" class="the-icons span3"><i class="demo-icon icon-user"></i> <span class="i-name">icon-user</span><span class="i-code">0xe80a</span></div> - <div title="Code: 0xe80b" class="the-icons span3"><i class="demo-icon icon-users"></i> <span class="i-name">icon-users</span><span class="i-code">0xe80b</span></div> - <div title="Code: 0xe80c" class="the-icons span3"><i class="demo-icon icon-user-add"></i> <span class="i-name">icon-user-add</span><span class="i-code">0xe80c</span></div> - <div title="Code: 0xe80d" class="the-icons span3"><i class="demo-icon icon-video"></i> <span class="i-name">icon-video</span><span class="i-code">0xe80d</span></div> - </div> - <div class="row"> - <div title="Code: 0xe80e" class="the-icons span3"><i class="demo-icon icon-picture"></i> <span class="i-name">icon-picture</span><span class="i-code">0xe80e</span></div> - <div title="Code: 0xe80f" class="the-icons span3"><i class="demo-icon icon-camera"></i> <span class="i-name">icon-camera</span><span class="i-code">0xe80f</span></div> - <div title="Code: 0xe810" class="the-icons span3"><i class="demo-icon icon-layout"></i> <span class="i-name">icon-layout</span><span class="i-code">0xe810</span></div> - <div title="Code: 0xe811" class="the-icons span3"><i class="demo-icon icon-menu"></i> <span class="i-name">icon-menu</span><span class="i-code">0xe811</span></div> - </div> - <div class="row"> - <div title="Code: 0xe812" class="the-icons span3"><i class="demo-icon icon-check"></i> <span class="i-name">icon-check</span><span class="i-code">0xe812</span></div> - <div title="Code: 0xe813" class="the-icons span3"><i class="demo-icon icon-cancel"></i> <span class="i-name">icon-cancel</span><span class="i-code">0xe813</span></div> - <div title="Code: 0xe814" class="the-icons span3"><i class="demo-icon icon-cancel-circled"></i> <span class="i-name">icon-cancel-circled</span><span class="i-code">0xe814</span></div> - <div title="Code: 0xe815" class="the-icons span3"><i class="demo-icon icon-cancel-squared"></i> <span class="i-name">icon-cancel-squared</span><span class="i-code">0xe815</span></div> - </div> - <div class="row"> - <div title="Code: 0xe816" class="the-icons span3"><i class="demo-icon icon-plus"></i> <span class="i-name">icon-plus</span><span class="i-code">0xe816</span></div> - <div title="Code: 0xe817" class="the-icons span3"><i class="demo-icon icon-plus-circled"></i> <span class="i-name">icon-plus-circled</span><span class="i-code">0xe817</span></div> - <div title="Code: 0xe818" class="the-icons span3"><i class="demo-icon icon-plus-squared"></i> <span class="i-name">icon-plus-squared</span><span class="i-code">0xe818</span></div> - <div title="Code: 0xe819" class="the-icons span3"><i class="demo-icon icon-minus"></i> <span class="i-name">icon-minus</span><span class="i-code">0xe819</span></div> - </div> - <div class="row"> - <div title="Code: 0xe81a" class="the-icons span3"><i class="demo-icon icon-minus-circled"></i> <span class="i-name">icon-minus-circled</span><span class="i-code">0xe81a</span></div> - <div title="Code: 0xe81b" class="the-icons span3"><i class="demo-icon icon-minus-squared"></i> <span class="i-name">icon-minus-squared</span><span class="i-code">0xe81b</span></div> - <div title="Code: 0xe81c" class="the-icons span3"><i class="demo-icon icon-help"></i> <span class="i-name">icon-help</span><span class="i-code">0xe81c</span></div> - <div title="Code: 0xe81d" class="the-icons span3"><i class="demo-icon icon-help-circled"></i> <span class="i-name">icon-help-circled</span><span class="i-code">0xe81d</span></div> - </div> - <div class="row"> - <div title="Code: 0xe81e" class="the-icons span3"><i class="demo-icon icon-info"></i> <span class="i-name">icon-info</span><span class="i-code">0xe81e</span></div> - <div title="Code: 0xe81f" class="the-icons span3"><i class="demo-icon icon-info-circled"></i> <span class="i-name">icon-info-circled</span><span class="i-code">0xe81f</span></div> - <div title="Code: 0xe820" class="the-icons span3"><i class="demo-icon icon-back"></i> <span class="i-name">icon-back</span><span class="i-code">0xe820</span></div> - <div title="Code: 0xe821" class="the-icons span3"><i class="demo-icon icon-home"></i> <span class="i-name">icon-home</span><span class="i-code">0xe821</span></div> - </div> - <div class="row"> - <div title="Code: 0xe822" class="the-icons span3"><i class="demo-icon icon-link"></i> <span class="i-name">icon-link</span><span class="i-code">0xe822</span></div> - <div title="Code: 0xe823" class="the-icons span3"><i class="demo-icon icon-attach"></i> <span class="i-name">icon-attach</span><span class="i-code">0xe823</span></div> - <div title="Code: 0xe824" class="the-icons span3"><i class="demo-icon icon-lock"></i> <span class="i-name">icon-lock</span><span class="i-code">0xe824</span></div> - <div title="Code: 0xe825" class="the-icons span3"><i class="demo-icon icon-lock-open"></i> <span class="i-name">icon-lock-open</span><span class="i-code">0xe825</span></div> - </div> - <div class="row"> - <div title="Code: 0xe826" class="the-icons span3"><i class="demo-icon icon-eye"></i> <span class="i-name">icon-eye</span><span class="i-code">0xe826</span></div> - <div title="Code: 0xe827" class="the-icons span3"><i class="demo-icon icon-tag"></i> <span class="i-name">icon-tag</span><span class="i-code">0xe827</span></div> - <div title="Code: 0xe828" class="the-icons span3"><i class="demo-icon icon-bookmark"></i> <span class="i-name">icon-bookmark</span><span class="i-code">0xe828</span></div> - <div title="Code: 0xe829" class="the-icons span3"><i class="demo-icon icon-bookmarks"></i> <span class="i-name">icon-bookmarks</span><span class="i-code">0xe829</span></div> - </div> - <div class="row"> - <div title="Code: 0xe82a" class="the-icons span3"><i class="demo-icon icon-flag"></i> <span class="i-name">icon-flag</span><span class="i-code">0xe82a</span></div> - <div title="Code: 0xe82b" class="the-icons span3"><i class="demo-icon icon-thumbs-up"></i> <span class="i-name">icon-thumbs-up</span><span class="i-code">0xe82b</span></div> - <div title="Code: 0xe82c" class="the-icons span3"><i class="demo-icon icon-thumbs-down"></i> <span class="i-name">icon-thumbs-down</span><span class="i-code">0xe82c</span></div> - <div title="Code: 0xe82d" class="the-icons span3"><i class="demo-icon icon-download"></i> <span class="i-name">icon-download</span><span class="i-code">0xe82d</span></div> - </div> - <div class="row"> - <div title="Code: 0xe82e" class="the-icons span3"><i class="demo-icon icon-upload"></i> <span class="i-name">icon-upload</span><span class="i-code">0xe82e</span></div> - <div title="Code: 0xe82f" class="the-icons span3"><i class="demo-icon icon-upload-cloud"></i> <span class="i-name">icon-upload-cloud</span><span class="i-code">0xe82f</span></div> - <div title="Code: 0xe830" class="the-icons span3"><i class="demo-icon icon-reply"></i> <span class="i-name">icon-reply</span><span class="i-code">0xe830</span></div> - <div title="Code: 0xe831" class="the-icons span3"><i class="demo-icon icon-reply-all"></i> <span class="i-name">icon-reply-all</span><span class="i-code">0xe831</span></div> - </div> - <div class="row"> - <div title="Code: 0xe832" class="the-icons span3"><i class="demo-icon icon-forward"></i> <span class="i-name">icon-forward</span><span class="i-code">0xe832</span></div> - <div title="Code: 0xe833" class="the-icons span3"><i class="demo-icon icon-quote"></i> <span class="i-name">icon-quote</span><span class="i-code">0xe833</span></div> - <div title="Code: 0xe834" class="the-icons span3"><i class="demo-icon icon-code"></i> <span class="i-name">icon-code</span><span class="i-code">0xe834</span></div> - <div title="Code: 0xe835" class="the-icons span3"><i class="demo-icon icon-export"></i> <span class="i-name">icon-export</span><span class="i-code">0xe835</span></div> - </div> - <div class="row"> - <div title="Code: 0xe836" class="the-icons span3"><i class="demo-icon icon-pencil"></i> <span class="i-name">icon-pencil</span><span class="i-code">0xe836</span></div> - <div title="Code: 0xe837" class="the-icons span3"><i class="demo-icon icon-feather"></i> <span class="i-name">icon-feather</span><span class="i-code">0xe837</span></div> - <div title="Code: 0xe838" class="the-icons span3"><i class="demo-icon icon-print"></i> <span class="i-name">icon-print</span><span class="i-code">0xe838</span></div> - <div title="Code: 0xe839" class="the-icons span3"><i class="demo-icon icon-retweet"></i> <span class="i-name">icon-retweet</span><span class="i-code">0xe839</span></div> - </div> - <div class="row"> - <div title="Code: 0xe83a" class="the-icons span3"><i class="demo-icon icon-keyboard"></i> <span class="i-name">icon-keyboard</span><span class="i-code">0xe83a</span></div> - <div title="Code: 0xe83b" class="the-icons span3"><i class="demo-icon icon-comment"></i> <span class="i-name">icon-comment</span><span class="i-code">0xe83b</span></div> - <div title="Code: 0xe83c" class="the-icons span3"><i class="demo-icon icon-chat"></i> <span class="i-name">icon-chat</span><span class="i-code">0xe83c</span></div> - <div title="Code: 0xe83d" class="the-icons span3"><i class="demo-icon icon-bell"></i> <span class="i-name">icon-bell</span><span class="i-code">0xe83d</span></div> - </div> - <div class="row"> - <div title="Code: 0xe83e" class="the-icons span3"><i class="demo-icon icon-attention"></i> <span class="i-name">icon-attention</span><span class="i-code">0xe83e</span></div> - <div title="Code: 0xe83f" class="the-icons span3"><i class="demo-icon icon-alert"></i> <span class="i-name">icon-alert</span><span class="i-code">0xe83f</span></div> - <div title="Code: 0xe840" class="the-icons span3"><i class="demo-icon icon-vcard"></i> <span class="i-name">icon-vcard</span><span class="i-code">0xe840</span></div> - <div title="Code: 0xe841" class="the-icons span3"><i class="demo-icon icon-address"></i> <span class="i-name">icon-address</span><span class="i-code">0xe841</span></div> - </div> - <div class="row"> - <div title="Code: 0xe842" class="the-icons span3"><i class="demo-icon icon-location"></i> <span class="i-name">icon-location</span><span class="i-code">0xe842</span></div> - <div title="Code: 0xe843" class="the-icons span3"><i class="demo-icon icon-map"></i> <span class="i-name">icon-map</span><span class="i-code">0xe843</span></div> - <div title="Code: 0xe844" class="the-icons span3"><i class="demo-icon icon-direction"></i> <span class="i-name">icon-direction</span><span class="i-code">0xe844</span></div> - <div title="Code: 0xe845" class="the-icons span3"><i class="demo-icon icon-compass"></i> <span class="i-name">icon-compass</span><span class="i-code">0xe845</span></div> - </div> - <div class="row"> - <div title="Code: 0xe846" class="the-icons span3"><i class="demo-icon icon-cup"></i> <span class="i-name">icon-cup</span><span class="i-code">0xe846</span></div> - <div title="Code: 0xe847" class="the-icons span3"><i class="demo-icon icon-trash"></i> <span class="i-name">icon-trash</span><span class="i-code">0xe847</span></div> - <div title="Code: 0xe848" class="the-icons span3"><i class="demo-icon icon-doc"></i> <span class="i-name">icon-doc</span><span class="i-code">0xe848</span></div> - <div title="Code: 0xe849" class="the-icons span3"><i class="demo-icon icon-docs"></i> <span class="i-name">icon-docs</span><span class="i-code">0xe849</span></div> - </div> - <div class="row"> - <div title="Code: 0xe84a" class="the-icons span3"><i class="demo-icon icon-doc-landscape"></i> <span class="i-name">icon-doc-landscape</span><span class="i-code">0xe84a</span></div> - <div title="Code: 0xe84b" class="the-icons span3"><i class="demo-icon icon-doc-text"></i> <span class="i-name">icon-doc-text</span><span class="i-code">0xe84b</span></div> - <div title="Code: 0xe84c" class="the-icons span3"><i class="demo-icon icon-doc-text-inv"></i> <span class="i-name">icon-doc-text-inv</span><span class="i-code">0xe84c</span></div> - <div title="Code: 0xe84d" class="the-icons span3"><i class="demo-icon icon-newspaper"></i> <span class="i-name">icon-newspaper</span><span class="i-code">0xe84d</span></div> - </div> - <div class="row"> - <div title="Code: 0xe84e" class="the-icons span3"><i class="demo-icon icon-book-open"></i> <span class="i-name">icon-book-open</span><span class="i-code">0xe84e</span></div> - <div title="Code: 0xe84f" class="the-icons span3"><i class="demo-icon icon-book"></i> <span class="i-name">icon-book</span><span class="i-code">0xe84f</span></div> - <div title="Code: 0xe850" class="the-icons span3"><i class="demo-icon icon-folder"></i> <span class="i-name">icon-folder</span><span class="i-code">0xe850</span></div> - <div title="Code: 0xe851" class="the-icons span3"><i class="demo-icon icon-archive"></i> <span class="i-name">icon-archive</span><span class="i-code">0xe851</span></div> - </div> - <div class="row"> - <div title="Code: 0xe852" class="the-icons span3"><i class="demo-icon icon-box"></i> <span class="i-name">icon-box</span><span class="i-code">0xe852</span></div> - <div title="Code: 0xe853" class="the-icons span3"><i class="demo-icon icon-rss"></i> <span class="i-name">icon-rss</span><span class="i-code">0xe853</span></div> - <div title="Code: 0xe854" class="the-icons span3"><i class="demo-icon icon-phone"></i> <span class="i-name">icon-phone</span><span class="i-code">0xe854</span></div> - <div title="Code: 0xe855" class="the-icons span3"><i class="demo-icon icon-cog"></i> <span class="i-name">icon-cog</span><span class="i-code">0xe855</span></div> - </div> - <div class="row"> - <div title="Code: 0xe856" class="the-icons span3"><i class="demo-icon icon-tools"></i> <span class="i-name">icon-tools</span><span class="i-code">0xe856</span></div> - <div title="Code: 0xe857" class="the-icons span3"><i class="demo-icon icon-share"></i> <span class="i-name">icon-share</span><span class="i-code">0xe857</span></div> - <div title="Code: 0xe858" class="the-icons span3"><i class="demo-icon icon-shareable"></i> <span class="i-name">icon-shareable</span><span class="i-code">0xe858</span></div> - <div title="Code: 0xe859" class="the-icons span3"><i class="demo-icon icon-basket"></i> <span class="i-name">icon-basket</span><span class="i-code">0xe859</span></div> - </div> - <div class="row"> - <div title="Code: 0xe85a" class="the-icons span3"><i class="demo-icon icon-bag"></i> <span class="i-name">icon-bag</span><span class="i-code">0xe85a</span></div> - <div title="Code: 0xe85b" class="the-icons span3"><i class="demo-icon icon-calendar"></i> <span class="i-name">icon-calendar</span><span class="i-code">0xe85b</span></div> - <div title="Code: 0xe85c" class="the-icons span3"><i class="demo-icon icon-login"></i> <span class="i-name">icon-login</span><span class="i-code">0xe85c</span></div> - <div title="Code: 0xe85d" class="the-icons span3"><i class="demo-icon icon-logout"></i> <span class="i-name">icon-logout</span><span class="i-code">0xe85d</span></div> - </div> - <div class="row"> - <div title="Code: 0xe85e" class="the-icons span3"><i class="demo-icon icon-mic"></i> <span class="i-name">icon-mic</span><span class="i-code">0xe85e</span></div> - <div title="Code: 0xe85f" class="the-icons span3"><i class="demo-icon icon-mute"></i> <span class="i-name">icon-mute</span><span class="i-code">0xe85f</span></div> - <div title="Code: 0xe860" class="the-icons span3"><i class="demo-icon icon-sound"></i> <span class="i-name">icon-sound</span><span class="i-code">0xe860</span></div> - <div title="Code: 0xe861" class="the-icons span3"><i class="demo-icon icon-volume"></i> <span class="i-name">icon-volume</span><span class="i-code">0xe861</span></div> - </div> - <div class="row"> - <div title="Code: 0xe862" class="the-icons span3"><i class="demo-icon icon-clock"></i> <span class="i-name">icon-clock</span><span class="i-code">0xe862</span></div> - <div title="Code: 0xe863" class="the-icons span3"><i class="demo-icon icon-hourglass"></i> <span class="i-name">icon-hourglass</span><span class="i-code">0xe863</span></div> - <div title="Code: 0xe864" class="the-icons span3"><i class="demo-icon icon-lamp"></i> <span class="i-name">icon-lamp</span><span class="i-code">0xe864</span></div> - <div title="Code: 0xe865" class="the-icons span3"><i class="demo-icon icon-light-down"></i> <span class="i-name">icon-light-down</span><span class="i-code">0xe865</span></div> - </div> - <div class="row"> - <div title="Code: 0xe866" class="the-icons span3"><i class="demo-icon icon-light-up"></i> <span class="i-name">icon-light-up</span><span class="i-code">0xe866</span></div> - <div title="Code: 0xe867" class="the-icons span3"><i class="demo-icon icon-adjust"></i> <span class="i-name">icon-adjust</span><span class="i-code">0xe867</span></div> - <div title="Code: 0xe868" class="the-icons span3"><i class="demo-icon icon-block"></i> <span class="i-name">icon-block</span><span class="i-code">0xe868</span></div> - <div title="Code: 0xe869" class="the-icons span3"><i class="demo-icon icon-resize-full"></i> <span class="i-name">icon-resize-full</span><span class="i-code">0xe869</span></div> - </div> - <div class="row"> - <div title="Code: 0xe86a" class="the-icons span3"><i class="demo-icon icon-resize-small"></i> <span class="i-name">icon-resize-small</span><span class="i-code">0xe86a</span></div> - <div title="Code: 0xe86b" class="the-icons span3"><i class="demo-icon icon-popup"></i> <span class="i-name">icon-popup</span><span class="i-code">0xe86b</span></div> - <div title="Code: 0xe86c" class="the-icons span3"><i class="demo-icon icon-publish"></i> <span class="i-name">icon-publish</span><span class="i-code">0xe86c</span></div> - <div title="Code: 0xe86d" class="the-icons span3"><i class="demo-icon icon-window"></i> <span class="i-name">icon-window</span><span class="i-code">0xe86d</span></div> - </div> - <div class="row"> - <div title="Code: 0xe86e" class="the-icons span3"><i class="demo-icon icon-arrow-combo"></i> <span class="i-name">icon-arrow-combo</span><span class="i-code">0xe86e</span></div> - <div title="Code: 0xe86f" class="the-icons span3"><i class="demo-icon icon-down-circled"></i> <span class="i-name">icon-down-circled</span><span class="i-code">0xe86f</span></div> - <div title="Code: 0xe870" class="the-icons span3"><i class="demo-icon icon-left-circled"></i> <span class="i-name">icon-left-circled</span><span class="i-code">0xe870</span></div> - <div title="Code: 0xe871" class="the-icons span3"><i class="demo-icon icon-right-circled"></i> <span class="i-name">icon-right-circled</span><span class="i-code">0xe871</span></div> - </div> - <div class="row"> - <div title="Code: 0xe872" class="the-icons span3"><i class="demo-icon icon-up-circled"></i> <span class="i-name">icon-up-circled</span><span class="i-code">0xe872</span></div> - <div title="Code: 0xe873" class="the-icons span3"><i class="demo-icon icon-down-open"></i> <span class="i-name">icon-down-open</span><span class="i-code">0xe873</span></div> - <div title="Code: 0xe874" class="the-icons span3"><i class="demo-icon icon-left-open"></i> <span class="i-name">icon-left-open</span><span class="i-code">0xe874</span></div> - <div title="Code: 0xe875" class="the-icons span3"><i class="demo-icon icon-right-open"></i> <span class="i-name">icon-right-open</span><span class="i-code">0xe875</span></div> - </div> - <div class="row"> - <div title="Code: 0xe876" class="the-icons span3"><i class="demo-icon icon-up-open"></i> <span class="i-name">icon-up-open</span><span class="i-code">0xe876</span></div> - <div title="Code: 0xe877" class="the-icons span3"><i class="demo-icon icon-down-open-mini"></i> <span class="i-name">icon-down-open-mini</span><span class="i-code">0xe877</span></div> - <div title="Code: 0xe878" class="the-icons span3"><i class="demo-icon icon-left-open-mini"></i> <span class="i-name">icon-left-open-mini</span><span class="i-code">0xe878</span></div> - <div title="Code: 0xe879" class="the-icons span3"><i class="demo-icon icon-right-open-mini"></i> <span class="i-name">icon-right-open-mini</span><span class="i-code">0xe879</span></div> - </div> - <div class="row"> - <div title="Code: 0xe87a" class="the-icons span3"><i class="demo-icon icon-up-open-mini"></i> <span class="i-name">icon-up-open-mini</span><span class="i-code">0xe87a</span></div> - <div title="Code: 0xe87b" class="the-icons span3"><i class="demo-icon icon-down-open-big"></i> <span class="i-name">icon-down-open-big</span><span class="i-code">0xe87b</span></div> - <div title="Code: 0xe87c" class="the-icons span3"><i class="demo-icon icon-left-open-big"></i> <span class="i-name">icon-left-open-big</span><span class="i-code">0xe87c</span></div> - <div title="Code: 0xe87d" class="the-icons span3"><i class="demo-icon icon-right-open-big"></i> <span class="i-name">icon-right-open-big</span><span class="i-code">0xe87d</span></div> - </div> - <div class="row"> - <div title="Code: 0xe87e" class="the-icons span3"><i class="demo-icon icon-up-open-big"></i> <span class="i-name">icon-up-open-big</span><span class="i-code">0xe87e</span></div> - <div title="Code: 0xe87f" class="the-icons span3"><i class="demo-icon icon-down"></i> <span class="i-name">icon-down</span><span class="i-code">0xe87f</span></div> - <div title="Code: 0xe880" class="the-icons span3"><i class="demo-icon icon-left"></i> <span class="i-name">icon-left</span><span class="i-code">0xe880</span></div> - <div title="Code: 0xe881" class="the-icons span3"><i class="demo-icon icon-right"></i> <span class="i-name">icon-right</span><span class="i-code">0xe881</span></div> - </div> - <div class="row"> - <div title="Code: 0xe882" class="the-icons span3"><i class="demo-icon icon-up"></i> <span class="i-name">icon-up</span><span class="i-code">0xe882</span></div> - <div title="Code: 0xe883" class="the-icons span3"><i class="demo-icon icon-down-dir"></i> <span class="i-name">icon-down-dir</span><span class="i-code">0xe883</span></div> - <div title="Code: 0xe884" class="the-icons span3"><i class="demo-icon icon-left-dir"></i> <span class="i-name">icon-left-dir</span><span class="i-code">0xe884</span></div> - <div title="Code: 0xe885" class="the-icons span3"><i class="demo-icon icon-right-dir"></i> <span class="i-name">icon-right-dir</span><span class="i-code">0xe885</span></div> - </div> - <div class="row"> - <div title="Code: 0xe886" class="the-icons span3"><i class="demo-icon icon-up-dir"></i> <span class="i-name">icon-up-dir</span><span class="i-code">0xe886</span></div> - <div title="Code: 0xe887" class="the-icons span3"><i class="demo-icon icon-down-bold"></i> <span class="i-name">icon-down-bold</span><span class="i-code">0xe887</span></div> - <div title="Code: 0xe888" class="the-icons span3"><i class="demo-icon icon-left-bold"></i> <span class="i-name">icon-left-bold</span><span class="i-code">0xe888</span></div> - <div title="Code: 0xe889" class="the-icons span3"><i class="demo-icon icon-right-bold"></i> <span class="i-name">icon-right-bold</span><span class="i-code">0xe889</span></div> - </div> - <div class="row"> - <div title="Code: 0xe88a" class="the-icons span3"><i class="demo-icon icon-up-bold"></i> <span class="i-name">icon-up-bold</span><span class="i-code">0xe88a</span></div> - <div title="Code: 0xe88b" class="the-icons span3"><i class="demo-icon icon-down-thin"></i> <span class="i-name">icon-down-thin</span><span class="i-code">0xe88b</span></div> - <div title="Code: 0xe88c" class="the-icons span3"><i class="demo-icon icon-left-thin"></i> <span class="i-name">icon-left-thin</span><span class="i-code">0xe88c</span></div> - <div title="Code: 0xe88d" class="the-icons span3"><i class="demo-icon icon-right-thin"></i> <span class="i-name">icon-right-thin</span><span class="i-code">0xe88d</span></div> - </div> - <div class="row"> - <div title="Code: 0xe88e" class="the-icons span3"><i class="demo-icon icon-up-thin"></i> <span class="i-name">icon-up-thin</span><span class="i-code">0xe88e</span></div> - <div title="Code: 0xe88f" class="the-icons span3"><i class="demo-icon icon-ccw"></i> <span class="i-name">icon-ccw</span><span class="i-code">0xe88f</span></div> - <div title="Code: 0xe890" class="the-icons span3"><i class="demo-icon icon-cw"></i> <span class="i-name">icon-cw</span><span class="i-code">0xe890</span></div> - <div title="Code: 0xe891" class="the-icons span3"><i class="demo-icon icon-arrows-ccw"></i> <span class="i-name">icon-arrows-ccw</span><span class="i-code">0xe891</span></div> - </div> - <div class="row"> - <div title="Code: 0xe892" class="the-icons span3"><i class="demo-icon icon-level-down"></i> <span class="i-name">icon-level-down</span><span class="i-code">0xe892</span></div> - <div title="Code: 0xe893" class="the-icons span3"><i class="demo-icon icon-level-up"></i> <span class="i-name">icon-level-up</span><span class="i-code">0xe893</span></div> - <div title="Code: 0xe894" class="the-icons span3"><i class="demo-icon icon-shuffle"></i> <span class="i-name">icon-shuffle</span><span class="i-code">0xe894</span></div> - <div title="Code: 0xe895" class="the-icons span3"><i class="demo-icon icon-loop"></i> <span class="i-name">icon-loop</span><span class="i-code">0xe895</span></div> - </div> - <div class="row"> - <div title="Code: 0xe896" class="the-icons span3"><i class="demo-icon icon-switch"></i> <span class="i-name">icon-switch</span><span class="i-code">0xe896</span></div> - <div title="Code: 0xe897" class="the-icons span3"><i class="demo-icon icon-play"></i> <span class="i-name">icon-play</span><span class="i-code">0xe897</span></div> - <div title="Code: 0xe898" class="the-icons span3"><i class="demo-icon icon-stop"></i> <span class="i-name">icon-stop</span><span class="i-code">0xe898</span></div> - <div title="Code: 0xe899" class="the-icons span3"><i class="demo-icon icon-pause"></i> <span class="i-name">icon-pause</span><span class="i-code">0xe899</span></div> - </div> - <div class="row"> - <div title="Code: 0xe89a" class="the-icons span3"><i class="demo-icon icon-record"></i> <span class="i-name">icon-record</span><span class="i-code">0xe89a</span></div> - <div title="Code: 0xe89b" class="the-icons span3"><i class="demo-icon icon-to-end"></i> <span class="i-name">icon-to-end</span><span class="i-code">0xe89b</span></div> - <div title="Code: 0xe89c" class="the-icons span3"><i class="demo-icon icon-to-start"></i> <span class="i-name">icon-to-start</span><span class="i-code">0xe89c</span></div> - <div title="Code: 0xe89d" class="the-icons span3"><i class="demo-icon icon-fast-forward"></i> <span class="i-name">icon-fast-forward</span><span class="i-code">0xe89d</span></div> - </div> - <div class="row"> - <div title="Code: 0xe89e" class="the-icons span3"><i class="demo-icon icon-fast-backward"></i> <span class="i-name">icon-fast-backward</span><span class="i-code">0xe89e</span></div> - <div title="Code: 0xe89f" class="the-icons span3"><i class="demo-icon icon-progress-0"></i> <span class="i-name">icon-progress-0</span><span class="i-code">0xe89f</span></div> - <div title="Code: 0xe8a0" class="the-icons span3"><i class="demo-icon icon-progress-1"></i> <span class="i-name">icon-progress-1</span><span class="i-code">0xe8a0</span></div> - <div title="Code: 0xe8a1" class="the-icons span3"><i class="demo-icon icon-progress-2"></i> <span class="i-name">icon-progress-2</span><span class="i-code">0xe8a1</span></div> - </div> - <div class="row"> - <div title="Code: 0xe8a2" class="the-icons span3"><i class="demo-icon icon-progress-3"></i> <span class="i-name">icon-progress-3</span><span class="i-code">0xe8a2</span></div> - <div title="Code: 0xe8a3" class="the-icons span3"><i class="demo-icon icon-target"></i> <span class="i-name">icon-target</span><span class="i-code">0xe8a3</span></div> - <div title="Code: 0xe8a5" class="the-icons span3"><i class="demo-icon icon-list"></i> <span class="i-name">icon-list</span><span class="i-code">0xe8a5</span></div> - <div title="Code: 0xe8a6" class="the-icons span3"><i class="demo-icon icon-list-add"></i> <span class="i-name">icon-list-add</span><span class="i-code">0xe8a6</span></div> - </div> - <div class="row"> - <div title="Code: 0xe8a9" class="the-icons span3"><i class="demo-icon icon-battery"></i> <span class="i-name">icon-battery</span><span class="i-code">0xe8a9</span></div> - <div title="Code: 0xe8aa" class="the-icons span3"><i class="demo-icon icon-back-in-time"></i> <span class="i-name">icon-back-in-time</span><span class="i-code">0xe8aa</span></div> - <div title="Code: 0xe8ab" class="the-icons span3"><i class="demo-icon icon-monitor"></i> <span class="i-name">icon-monitor</span><span class="i-code">0xe8ab</span></div> - <div title="Code: 0xe8ac" class="the-icons span3"><i class="demo-icon icon-mobile"></i> <span class="i-name">icon-mobile</span><span class="i-code">0xe8ac</span></div> - </div> - <div class="row"> - <div title="Code: 0xe8ae" class="the-icons span3"><i class="demo-icon icon-cd"></i> <span class="i-name">icon-cd</span><span class="i-code">0xe8ae</span></div> - <div title="Code: 0xe8af" class="the-icons span3"><i class="demo-icon icon-inbox"></i> <span class="i-name">icon-inbox</span><span class="i-code">0xe8af</span></div> - <div title="Code: 0xe8b0" class="the-icons span3"><i class="demo-icon icon-install"></i> <span class="i-name">icon-install</span><span class="i-code">0xe8b0</span></div> - <div title="Code: 0xe8b1" class="the-icons span3"><i class="demo-icon icon-globe"></i> <span class="i-name">icon-globe</span><span class="i-code">0xe8b1</span></div> - </div> - <div class="row"> - <div title="Code: 0xe8b2" class="the-icons span3"><i class="demo-icon icon-cloud"></i> <span class="i-name">icon-cloud</span><span class="i-code">0xe8b2</span></div> - <div title="Code: 0xe8b3" class="the-icons span3"><i class="demo-icon icon-cloud-thunder"></i> <span class="i-name">icon-cloud-thunder</span><span class="i-code">0xe8b3</span></div> - <div title="Code: 0xe8b4" class="the-icons span3"><i class="demo-icon icon-flash"></i> <span class="i-name">icon-flash</span><span class="i-code">0xe8b4</span></div> - <div title="Code: 0xe8b5" class="the-icons span3"><i class="demo-icon icon-moon"></i> <span class="i-name">icon-moon</span><span class="i-code">0xe8b5</span></div> - </div> - <div class="row"> - <div title="Code: 0xe8b6" class="the-icons span3"><i class="demo-icon icon-flight"></i> <span class="i-name">icon-flight</span><span class="i-code">0xe8b6</span></div> - <div title="Code: 0xe8b7" class="the-icons span3"><i class="demo-icon icon-paper-plane"></i> <span class="i-name">icon-paper-plane</span><span class="i-code">0xe8b7</span></div> - <div title="Code: 0xe8b8" class="the-icons span3"><i class="demo-icon icon-leaf"></i> <span class="i-name">icon-leaf</span><span class="i-code">0xe8b8</span></div> - <div title="Code: 0xe8b9" class="the-icons span3"><i class="demo-icon icon-lifebuoy"></i> <span class="i-name">icon-lifebuoy</span><span class="i-code">0xe8b9</span></div> - </div> - <div class="row"> - <div title="Code: 0xe8ba" class="the-icons span3"><i class="demo-icon icon-mouse"></i> <span class="i-name">icon-mouse</span><span class="i-code">0xe8ba</span></div> - <div title="Code: 0xe8bb" class="the-icons span3"><i class="demo-icon icon-briefcase"></i> <span class="i-name">icon-briefcase</span><span class="i-code">0xe8bb</span></div> - <div title="Code: 0xe8bc" class="the-icons span3"><i class="demo-icon icon-suitcase"></i> <span class="i-name">icon-suitcase</span><span class="i-code">0xe8bc</span></div> - <div title="Code: 0xe8bd" class="the-icons span3"><i class="demo-icon icon-dot"></i> <span class="i-name">icon-dot</span><span class="i-code">0xe8bd</span></div> - </div> - <div class="row"> - <div title="Code: 0xe8be" class="the-icons span3"><i class="demo-icon icon-dot-2"></i> <span class="i-name">icon-dot-2</span><span class="i-code">0xe8be</span></div> - <div title="Code: 0xe8bf" class="the-icons span3"><i class="demo-icon icon-dot-3"></i> <span class="i-name">icon-dot-3</span><span class="i-code">0xe8bf</span></div> - <div title="Code: 0xe8c0" class="the-icons span3"><i class="demo-icon icon-brush"></i> <span class="i-name">icon-brush</span><span class="i-code">0xe8c0</span></div> - <div title="Code: 0xe8c2" class="the-icons span3"><i class="demo-icon icon-infinity"></i> <span class="i-name">icon-infinity</span><span class="i-code">0xe8c2</span></div> - </div> - <div class="row"> - <div title="Code: 0xe8c3" class="the-icons span3"><i class="demo-icon icon-erase"></i> <span class="i-name">icon-erase</span><span class="i-code">0xe8c3</span></div> - <div title="Code: 0xe8c4" class="the-icons span3"><i class="demo-icon icon-chart-pie"></i> <span class="i-name">icon-chart-pie</span><span class="i-code">0xe8c4</span></div> - <div title="Code: 0xe8c5" class="the-icons span3"><i class="demo-icon icon-chart-line"></i> <span class="i-name">icon-chart-line</span><span class="i-code">0xe8c5</span></div> - <div title="Code: 0xe8c6" class="the-icons span3"><i class="demo-icon icon-chart-bar"></i> <span class="i-name">icon-chart-bar</span><span class="i-code">0xe8c6</span></div> - </div> - <div class="row"> - <div title="Code: 0xe8c7" class="the-icons span3"><i class="demo-icon icon-chart-area"></i> <span class="i-name">icon-chart-area</span><span class="i-code">0xe8c7</span></div> - <div title="Code: 0xe8c8" class="the-icons span3"><i class="demo-icon icon-tape"></i> <span class="i-name">icon-tape</span><span class="i-code">0xe8c8</span></div> - <div title="Code: 0xe8c9" class="the-icons span3"><i class="demo-icon icon-graduation-cap"></i> <span class="i-name">icon-graduation-cap</span><span class="i-code">0xe8c9</span></div> - <div title="Code: 0xe8ca" class="the-icons span3"><i class="demo-icon icon-language"></i> <span class="i-name">icon-language</span><span class="i-code">0xe8ca</span></div> - </div> - <div class="row"> - <div title="Code: 0xe8cb" class="the-icons span3"><i class="demo-icon icon-ticket"></i> <span class="i-name">icon-ticket</span><span class="i-code">0xe8cb</span></div> - <div title="Code: 0xe8cc" class="the-icons span3"><i class="demo-icon icon-water"></i> <span class="i-name">icon-water</span><span class="i-code">0xe8cc</span></div> - <div title="Code: 0xe8cd" class="the-icons span3"><i class="demo-icon icon-droplet"></i> <span class="i-name">icon-droplet</span><span class="i-code">0xe8cd</span></div> - <div title="Code: 0xe8ce" class="the-icons span3"><i class="demo-icon icon-air"></i> <span class="i-name">icon-air</span><span class="i-code">0xe8ce</span></div> - </div> - <div class="row"> - <div title="Code: 0xe8cf" class="the-icons span3"><i class="demo-icon icon-credit-card"></i> <span class="i-name">icon-credit-card</span><span class="i-code">0xe8cf</span></div> - <div title="Code: 0xe8d0" class="the-icons span3"><i class="demo-icon icon-floppy"></i> <span class="i-name">icon-floppy</span><span class="i-code">0xe8d0</span></div> - <div title="Code: 0xe8d1" class="the-icons span3"><i class="demo-icon icon-clipboard"></i> <span class="i-name">icon-clipboard</span><span class="i-code">0xe8d1</span></div> - <div title="Code: 0xe8d2" class="the-icons span3"><i class="demo-icon icon-megaphone"></i> <span class="i-name">icon-megaphone</span><span class="i-code">0xe8d2</span></div> - </div> - <div class="row"> - <div title="Code: 0xe8d3" class="the-icons span3"><i class="demo-icon icon-database"></i> <span class="i-name">icon-database</span><span class="i-code">0xe8d3</span></div> - <div title="Code: 0xe8d4" class="the-icons span3"><i class="demo-icon icon-drive"></i> <span class="i-name">icon-drive</span><span class="i-code">0xe8d4</span></div> - <div title="Code: 0xe8d5" class="the-icons span3"><i class="demo-icon icon-bucket"></i> <span class="i-name">icon-bucket</span><span class="i-code">0xe8d5</span></div> - <div title="Code: 0xe8d6" class="the-icons span3"><i class="demo-icon icon-thermometer"></i> <span class="i-name">icon-thermometer</span><span class="i-code">0xe8d6</span></div> - </div> - <div class="row"> - <div title="Code: 0xe8d7" class="the-icons span3"><i class="demo-icon icon-key"></i> <span class="i-name">icon-key</span><span class="i-code">0xe8d7</span></div> - <div title="Code: 0xe8d8" class="the-icons span3"><i class="demo-icon icon-flow-cascade"></i> <span class="i-name">icon-flow-cascade</span><span class="i-code">0xe8d8</span></div> - <div title="Code: 0xe8d9" class="the-icons span3"><i class="demo-icon icon-flow-branch"></i> <span class="i-name">icon-flow-branch</span><span class="i-code">0xe8d9</span></div> - <div title="Code: 0xe8da" class="the-icons span3"><i class="demo-icon icon-flow-tree"></i> <span class="i-name">icon-flow-tree</span><span class="i-code">0xe8da</span></div> - </div> - <div class="row"> - <div title="Code: 0xe8db" class="the-icons span3"><i class="demo-icon icon-flow-line"></i> <span class="i-name">icon-flow-line</span><span class="i-code">0xe8db</span></div> - <div title="Code: 0xe8dc" class="the-icons span3"><i class="demo-icon icon-flow-parallel"></i> <span class="i-name">icon-flow-parallel</span><span class="i-code">0xe8dc</span></div> - <div title="Code: 0xe8dd" class="the-icons span3"><i class="demo-icon icon-rocket"></i> <span class="i-name">icon-rocket</span><span class="i-code">0xe8dd</span></div> - <div title="Code: 0xe8de" class="the-icons span3"><i class="demo-icon icon-gauge"></i> <span class="i-name">icon-gauge</span><span class="i-code">0xe8de</span></div> - </div> - </div> - <div class="container footer">Generated by <a href="http://fontello.com">fontello.com</a></div> - </body> -</html> \ No newline at end of file diff --git a/src/mol-plugin-ui/skin/fonts/fontello.svg b/src/mol-plugin-ui/skin/fonts/fontello.svg deleted file mode 100644 index 753bf788b..000000000 --- a/src/mol-plugin-ui/skin/fonts/fontello.svg +++ /dev/null @@ -1,442 +0,0 @@ -<?xml version="1.0" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg"> -<metadata>Copyright (C) 2016 by original authors @ fontello.com</metadata> -<defs> -<font id="fontello" horiz-adv-x="1000" > -<font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" /> -<missing-glyph horiz-adv-x="1000" /> -<glyph glyph-name="palette" unicode="" d="M857 622q72-48 101-110t20-104-35-48q-16-4-54 10t-80 10-80-46q-30-46-21-75t34-65 23-50q-2-26-36-63t-126-74-216-37q-186 0-291 101t-95 245q8 118 104 235t216 151q290 84 536-80z m-318-466q30 0 52 22t22 54-22 53-52 21q-32 0-54-21t-22-53 22-54 54-22z" horiz-adv-x="980" /> - -<glyph glyph-name="search" unicode="" d="M772 78q30-34 6-62l-46-46q-36-32-68 0l-190 190q-74-42-156-42-128 0-223 95t-95 223 90 219 218 91 224-95 96-223q0-88-46-162z m-678 358q0-88 68-156t156-68 151 63 63 153q0 88-68 155t-156 67-151-63-63-151z" horiz-adv-x="789" /> - -<glyph glyph-name="flashlight" unicode="" d="M807 706q62-62 85-130t-5-92l-134-134q-16-16-62-26t-96-4l-408-408q-18-18-57-6t-75 50q-36 36-49 74t5 56l408 408q-6 50 4 96t26 62l136 136q24 28 92 4t130-86z m-448-408q32-32 80 14 46 46 14 82-14 14-38 10t-44-24-23-43 11-39z m336 298q30-30 68-50t62-25 28-1q2 4-4 27t-26 60-50 67-66 50-59 26-27 2 1-28 25-62 48-66z" horiz-adv-x="902" /> - -<glyph glyph-name="mail" unicode="" d="M30 586q-32 18-28 40 2 14 26 14l846 0q38 0 20-32-8-14-24-22-14-6-192-102t-182-98q-16-10-46-10-28 0-46 10-4 2-182 98t-192 102z m850-100q20 10 20-10l0-368q0-16-17-32t-33-16l-800 0q-16 0-33 16t-17 32l0 368q0 20 20 10l384-200q18-10 46-10t46 10z" horiz-adv-x="900" /> - -<glyph glyph-name="heart" unicode="" d="M790 644q70-64 70-156t-70-158l-360-330-360 330q-70 66-70 158t70 156q62 58 151 58t153-58l56-52 58 52q62 58 150 58t152-58z" horiz-adv-x="860" /> - -<glyph glyph-name="heart-empty" unicode="" d="M790 642q70-64 70-156t-70-156l-360-330-360 330q-70 64-70 156t70 156q64 58 152 58t150-58l58-52 56 52q64 58 152 58t152-58z m-54-260q42 40 42 104 0 66-38 100-38 38-102 38-52 0-104-48l-104-92-106 92q-48 48-102 48-64 0-104-38-38-36-38-100 0-66 44-104l306-286z" horiz-adv-x="860" /> - -<glyph glyph-name="star" unicode="" d="M440 790l120-336 320 0-262-196 94-348-272 208-272-208 94 348-262 196 320 0z" horiz-adv-x="880" /> - -<glyph glyph-name="star-empty" unicode="" d="M880 454l-262-196 94-348-272 208-272-208 94 348-262 196 320 0 120 336 120-336 320 0z m-440-238l150-124-62 178 144 114-176-4-56 202-54-202-176 4 142-114-62-178z" horiz-adv-x="880" /> - -<glyph glyph-name="user" unicode="" d="M736 128q204-72 204-122l0-106-940 0 0 106q0 50 204 122 94 34 128 69t34 95q0 22-22 49t-32 73q-2 12-9 18t-14 8-14 17-9 43q0 16 5 26t9 12l4 4q-8 50-12 88-4 54 41 112t157 58 158-58 40-112l-12-88q18-8 18-42-2-28-9-43t-14-17-14-8-9-18q-8-48-31-74t-23-48q0-60 35-95t127-69z" horiz-adv-x="940" /> - -<glyph glyph-name="users" unicode="" d="M1000-90l-224 0 0 150q0 54-30 81t-154 89q40 30 40 84 0 16-13 33t-19 51q-2 8-14 16t-14 42q0 24 12 30-6 34-8 60-4 38 23 78t95 40 96-40 24-78l-8-60q12-6 12-30-2-34-14-42t-14-16q-6-34-19-51t-13-33q0-42 21-66t77-48q112-46 130-80 6-8 9-61t5-101l0-48z m-488 262q182-78 182-124l0-138-694 0 0 184q0 44 84 78 76 32 104 64t28 88q0 20-19 44t-25 68q-2 10-18 22t-20 56q0 14 3 23t7 13l4 2q-6 46-10 82-4 50 33 103t127 53 127-53 33-103l-10-82q14-8 14-38-4-44-20-56t-18-22q-6-44-25-68t-19-44q0-56 28-88t104-64z" horiz-adv-x="1000" /> - -<glyph glyph-name="user-add" unicode="" d="M620 128q180-64 180-122l0-106-800 0 0 202q36 14 82 26 94 34 129 69t35 95q0 22-23 48t-31 74q-2 12-23 25t-25 61q0 16 5 26t9 12l4 4q-8 50-12 88-6 54 40 112t160 58 160-58 42-112l-14-88q18-8 18-42-2-28-9-43t-14-17-14-8-9-18q-10-46-33-73t-23-49q0-60 36-95t130-69z m230 272l150 0 0-100-150 0 0-150-100 0 0 150-150 0 0 100 150 0 0 150 100 0 0-150z" horiz-adv-x="1000" /> - -<glyph glyph-name="video" unicode="" d="M980 600l-100 0 0-100 100 0 0-100-100 0 0-100 100 0 0-100-100 0 0-100 100 0 0-60q0-16-12-28t-28-12l-900 0q-16 0-28 12t-12 28l0 60 100 0 0 100-100 0 0 100 100 0 0 100-100 0 0 100 100 0 0 100-100 0 0 60q0 18 12 29t28 11l900 0q16 0 28-11t12-29l0-60z m-600-400l250 150-250 150 0-300z" horiz-adv-x="980" /> - -<glyph glyph-name="picture" unicode="" d="M856 518l-100 0-124 150-214-150-180 0q-52 0-90-39t-38-91l0-160-108 296q-10 38 22 52l680 248q36 10 50-24z m106-90q16 0 27-12t11-28l0-472q0-16-11-28t-27-12l-724 0q-16 0-27 12t-11 28l0 472q0 16 11 28t27 12l724 0z m-56-452l0 162-72 160-166-60-130-132-138 170-92-214 0-86 598 0z" horiz-adv-x="1000" /> - -<glyph glyph-name="camera" unicode="" d="M500 450q64 0 107-44t43-106-44-106-106-44-106 44-44 106 44 106 106 44z m400 150q42 0 71-29t29-71l0-450q0-40-29-70t-71-30l-800 0q-40 0-70 30t-30 70l0 450q0 42 30 71t70 29l120 0q28 0 40 30l30 92q10 28 40 28l340 0q30 0 40-28l30-92q12-30 40-30l120 0z m-400-550q104 0 177 73t73 177-73 177-177 73-177-73-73-177 73-177 177-73z m366 380q14 0 24 11t10 25-10 24-24 10q-36 0-36-34 0-16 11-26t25-10z" horiz-adv-x="1000" /> - -<glyph glyph-name="layout" unicode="" d="M170 650q80 0 80-80l0-90q0-80-80-80l-90 0q-80 0-80 80l0 90q0 80 80 80l90 0z m350 0q80 0 80-80l0-90q0-80-80-80l-90 0q-80 0-80 80l0 90q0 80 80 80l90 0z m-350-350q80 0 80-80l0-90q0-80-80-80l-90 0q-80 0-80 80l0 90q0 80 80 80l90 0z m350 0q80 0 80-80l0-90q0-80-80-80l-90 0q-80 0-80 80l0 90q0 80 80 80l90 0z" horiz-adv-x="600" /> - -<glyph glyph-name="menu" unicode="" d="M650 400q22 0 36-15t14-35-15-35-35-15l-600 0q-20 0-35 15t-15 35 14 35 36 15l600 0z m-600 100q-20 0-35 15t-15 35 14 35 36 15l600 0q22 0 36-15t14-35-15-35-35-15l-600 0z m600-300q22 0 36-15t14-35-15-35-35-15l-600 0q-20 0-35 15t-15 35 14 35 36 15l600 0z" horiz-adv-x="700" /> - -<glyph glyph-name="check" unicode="" d="M249 0q-34 0-56 28l-180 236q-16 24-12 52t26 46 51 14 47-28l118-154 296 474q16 24 43 30t53-8q24-16 30-43t-8-53l-350-560q-20-32-56-32z" horiz-adv-x="667" /> - -<glyph glyph-name="cancel" unicode="" d="M452 194q18-18 18-43t-18-43q-18-16-43-16t-43 16l-132 152-132-152q-18-16-43-16t-43 16q-16 18-16 43t16 43l138 156-138 158q-16 18-16 43t16 43q18 16 43 16t43-16l132-152 132 152q18 16 43 16t43-16q18-18 18-43t-18-43l-138-158z" horiz-adv-x="470" /> - -<glyph glyph-name="cancel-circled" unicode="" d="M420 770q174 0 297-123t123-297-123-297-297-123-297 123-123 297 123 297 297 123z m86-420l154 154-86 86-154-152-152 152-88-86 154-154-154-152 88-86 152 152 154-152 86 86z" horiz-adv-x="840" /> - -<glyph glyph-name="cancel-squared" unicode="" d="M700 750q42 0 71-29t29-71l0-600q0-40-29-70t-71-30l-600 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l600 0z m-146-638l86 86-154 152 154 154-86 86-154-152-152 152-88-86 154-154-154-152 88-86 152 152z" horiz-adv-x="800" /> - -<glyph glyph-name="plus" unicode="" d="M550 400q30 0 30-50t-30-50l-210 0 0-210q0-30-50-30t-50 30l0 210-210 0q-30 0-30 50t30 50l210 0 0 210q0 30 50 30t50-30l0-210 210 0z" horiz-adv-x="580" /> - -<glyph glyph-name="plus-circled" unicode="" d="M420 770q174 0 297-123t123-297-123-297-297-123-297 123-123 297 123 297 297 123z m52-470l200 0 0 102-200 0 0 202-102 0 0-202-202 0 0-102 202 0 0-202 102 0 0 202z" horiz-adv-x="840" /> - -<glyph glyph-name="plus-squared" unicode="" d="M700 750q42 0 71-29t29-71l0-600q0-40-29-70t-71-30l-600 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l600 0z m-50-450l0 100-200 0 0 200-100 0 0-200-200 0 0-100 200 0 0-200 100 0 0 200 200 0z" horiz-adv-x="800" /> - -<glyph glyph-name="minus" unicode="" d="M550 400q30 0 30-50t-30-50l-520 0q-30 0-30 50t30 50l520 0z" horiz-adv-x="580" /> - -<glyph glyph-name="minus-circled" unicode="" d="M420 770q174 0 297-123t123-297-123-297-297-123-297 123-123 297 123 297 297 123z m252-368l-504 0 0-102 504 0 0 102z" horiz-adv-x="840" /> - -<glyph glyph-name="minus-squared" unicode="" d="M700 750q42 0 71-29t29-71l0-600q0-40-29-70t-71-30l-600 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l600 0z m-50-450l0 100-500 0 0-100 500 0z" horiz-adv-x="800" /> - -<glyph glyph-name="help" unicode="" d="M494 740q86-62 86-184 0-64-42-124-12-20-88-80l-46-30q-40-34-48-60-6-16-8-44 0-14-16-14l-128 0q-16 0-16 12 4 98 28 124 16 22 48 48t56 42l24 14q22 16 34 34 28 44 28 70 0 40-26 78-28 36-92 36-68 0-94-44-28-42-28-92l-166 0q6 162 114 232 70 42 166 42 130 0 214-60z m-216-636q44 0 73-30t27-74q-2-46-32-73t-74-25q-44 0-73 29t-27 75 32 73 74 25z" horiz-adv-x="580" /> - -<glyph glyph-name="help-circled" unicode="" d="M454 810q190 2 326-130t140-322q2-190-131-327t-323-141q-190-2-327 131t-139 323q-4 190 130 327t324 139z m-2-740q30 0 49 19t19 47q2 30-17 49t-49 19l-2 0q-28 0-47-18t-21-46q0-30 19-49t47-21l2 0z m166 328q26 34 26 78 0 78-54 116-52 38-134 38-64 0-104-26-68-42-72-146l0-4 110 0 0 4q0 26 16 54 16 24 54 24 40 0 52-20 16-20 16-44 0-18-16-40-8-12-20-20l-6-4q-6-4-16-11t-20-15-21-17-17-17q-14-20-18-78l0-8 108 0 0 4q0 12 4 28 6 20 28 36l28 18q46 34 56 50z" horiz-adv-x="920" /> - -<glyph glyph-name="info" unicode="" d="M352 850q48 0 74-27t26-69q0-50-39-88t-95-38q-48 0-74 26t-24 72q0 46 35 85t97 39z m-206-1000q-100 0-54 178l60 254q14 56 0 56-12 0-54-18t-72-38l-26 44q90 78 189 126t151 48q78 0 36-162l-70-266q-16-64 6-64 44 0 118 60l30-40q-84-86-175-132t-139-46z" horiz-adv-x="460" /> - -<glyph glyph-name="info-circled" unicode="" d="M454 810q190 2 326-130t140-322q2-190-131-327t-323-141q-190-2-327 131t-139 323q-4 190 130 327t324 139z m52-152q-42 0-65-24t-23-50q-2-28 15-44t49-16q38 0 61 22t23 54q0 58-60 58z m-120-594q30 0 84 26t106 78l-18 24q-48-36-72-36-14 0-4 38l42 160q26 96-22 96-30 0-89-29t-115-75l16-26q52 34 74 34 12 0 0-34l-36-152q-26-104 34-104z" horiz-adv-x="920" /> - -<glyph glyph-name="back" unicode="" d="M750 540q40 0 70-29t30-71l0-290q0-40-30-70t-70-30l-690 0 0 140 650 0 0 210-500 0 0-110-210 180 210 180 0-110 540 0z" horiz-adv-x="850" /> - -<glyph glyph-name="home" unicode="" d="M888 336q16-16 11-27t-27-11l-84 0 0-310q0-14-1-21t-8-13-23-6l-204 0 0 310-204 0 0-310-194 0q-28 0-35 10t-7 30l0 310-84 0q-22 0-27 11t11 27l400 402q16 16 38 16t38-16z" horiz-adv-x="900" /> - -<glyph glyph-name="link" unicode="" d="M294 116q14 14 34 14t36-14q32-34 0-70l-42-40q-56-56-132-56-78 0-134 56t-56 132q0 78 56 134l148 148q70 68 144 77t128-43q16-16 16-36t-16-36q-36-32-70 0-50 48-132-34l-148-146q-26-26-26-64t26-62q26-26 63-26t63 26z m450 574q56-56 56-132 0-78-56-134l-158-158q-74-72-150-72-62 0-112 50-14 14-14 34t14 36q14 14 35 14t35-14q50-48 122 24l158 156q28 28 28 64 0 38-28 62-24 26-56 31t-60-21l-50-50q-16-14-36-14t-34 14q-34 34 0 70l50 50q54 54 127 51t129-61z" horiz-adv-x="800" /> - -<glyph glyph-name="attach" unicode="" d="M244-140q-102 0-170 72-72 70-74 166t84 190l496 496q80 80 174 54 44-12 79-47t47-79q26-96-54-176l-474-474q-40-40-88-46-48-4-80 28-30 24-27 74t47 92l332 334q24 26 50 0t0-50l-332-332q-44-44-20-70 12-8 24-6 24 4 46 26l474 474q50 50 34 108-16 60-76 76-54 14-108-36l-494-494q-66-76-64-143t52-117q50-48 117-50t141 62l496 494q24 24 50 0 26-22 0-48l-496-496q-82-82-186-82z" horiz-adv-x="939" /> - -<glyph glyph-name="lock" unicode="" d="M640 476q20 0 40-19t20-41l0-390q0-48-48-66l-60-18q-42-16-96-16l-290 0q-56 0-98 16l-60 18q-48 18-48 66l0 390q0 22 15 41t35 19l100 0 0 70q0 110 51 170t149 60 149-60 51-170l0-70 90 0z m-390 90l0-90 200 0 0 90q0 52-27 81t-73 29-73-29-27-81z" horiz-adv-x="700" /> - -<glyph glyph-name="lock-open" unicode="" d="M640 450q20 0 40-20t20-40l0-390q0-20-14-39t-34-25l-60-20q-52-16-96-16l-290 0q-46 0-98 16l-60 20q-20 6-34 25t-14 39l0 390q0 22 15 41t35 19l400 0 0 140q0 110-100 110t-100-110l0-40-100 0 0 20q0 110 51 170t149 60q200 0 200-230l0-120 90 0z" horiz-adv-x="700" /> - -<glyph glyph-name="eye" unicode="" d="M500 630q92 0 177-25t141-62 99-77 63-71 20-45-20-44-63-71-99-78-141-62-177-25-177 25-141 62-99 78-63 71-20 44 20 45 63 71 99 77 141 62 177 25z m0-494q92 0 157 63t65 151q0 90-65 153t-157 63-157-63-65-153q0-88 65-151t157-63z m0 214q8-8 37-2t50 11 25-9q0-44-33-75t-79-31-78 31-32 75q0 46 32 77t78 31q14 0 10-23t-12-47 2-38z" horiz-adv-x="1000" /> - -<glyph glyph-name="tag" unicode="" d="M944 830q36-106-8-199t-128-157l18-24q16-28 6-54l-48-158q-12-30-36-46l-464-328q-42-30-64 4l-210 304q-12 18-9 39t21 33l464 328q26 18 54 18l158 0q30 0 48-26l28-40q168 130 114 286-10 28 18 40 32 8 38-20z m-216-468q40 32 34 80l-32-16q-8-4-12-4-18 0-28 18-12 30 16 40l24 14q-48 34-92 0-28-18-34-51t14-61q18-26 51-32t59 12z" horiz-adv-x="960" /> - -<glyph glyph-name="bookmark" unicode="" d="M310 800q22 0 36-15t14-35l0-850-180 180-180-180 0 850q0 50 40 50l270 0z" horiz-adv-x="360" /> - -<glyph glyph-name="bookmarks" unicode="" d="M500 850q20 0 35-15t15-35l0-850-150 180 0 620q0 20-15 35t-35 15l-100 0q0 50 40 50l210 0z m-250-150q20 0 35-15t15-35l0-800-150 180-150-180 0 800q0 50 40 50l210 0z" horiz-adv-x="550" /> - -<glyph glyph-name="flag" unicode="" d="M874 616q14 6 22-1t0-19q-96-138-164-213t-110-90-73-2-60 37-63 40-93-4-139-86l90-352-100 0-184 720 92 34q90 66 152 86t98 3 64-51 62-71 79-62 129-20 198 51z" horiz-adv-x="900" /> - -<glyph glyph-name="thumbs-up" unicode="" d="M582 480q2-6 58-13t108-24 52-47q0-72-61-284t-107-212q-144 0-288 42t-144 88l0 342q0 14 15 34t46 45 53 41 62 43 46 31q50 34 104 100t85 104 41 26q48-76 29-137t-59-119-40-60z m-432-4q14 0 0-14-50-50-50-104l0-318q0-50 52-104 10-10-2-10-26 0-55 8t-62 45-33 99l0 242q0 62 33 100t63 47 54 9z" horiz-adv-x="800" /> - -<glyph glyph-name="thumbs-down" unicode="" d="M218 218q-2 6-57 13t-108 24-53 47q0 72 62 285t106 213q144 0 288-43t144-89l0-342q0-10-8-24t-25-30-32-29-42-32-41-29-41-28l-33-22q-50-34-104-100t-85-104-41-26q-48 76-29 137t59 119 40 60z m432 4q-12 0 2 14 48 50 48 104l0 318q0 50-52 104-10 10 2 10 26 0 55-8t62-45 33-99l0-242q0-48-18-81t-45-48-48-21-39-6z" horiz-adv-x="800" /> - -<glyph glyph-name="download" unicode="" d="M968 198q18-10 27-32t3-40l-28-154q-4-20-22-33t-40-13l-816 0q-22 0-40 13t-22 33l-28 154q-10 48 32 72l158 108 98 0-170-130 178 0q8 0 12-8l40-110 300 0 40 110q8 8 12 8l178 0-170 130 98 0z m-208 322l-260-244-260 244 166 0 0 256 190 0 0-256 164 0z" horiz-adv-x="1000" /> - -<glyph glyph-name="upload" unicode="" d="M500 776l260-244-164 0 0-256-190 0 0 256-166 0z m468-578q18-10 27-32t3-40l-28-154q-4-20-22-33t-40-13l-816 0q-22 0-40 13t-22 33l-28 154q-10 48 32 72l158 108 98 0-170-130 178 0q8 0 12-8l40-110 300 0 40 110q8 8 12 8l178 0-170 130 98 0z" horiz-adv-x="1000" /> - -<glyph glyph-name="upload-cloud" unicode="" d="M760 494q100 0 170-68t70-166-70-166-170-68l-190 0 0 190 106 0-176 230-174-230 104 0 0-190-248 0q-74 0-128 52t-54 124q0 74 53 126t129 52q14 0 20-2-2 12-2 38 0 108 78 184t188 76q90 0 160-52t94-134q28 4 40 4z" horiz-adv-x="1000" /> - -<glyph glyph-name="reply" unicode="" d="M900 10q-86 152-208 197t-330 45l0-218-362 334 362 322 0-192q90 0 168-27t131-70 96-95 69-104 44-95 24-69z" horiz-adv-x="900" /> - -<glyph glyph-name="reply-all" unicode="" d="M362 556l-212-188 212-196 0-138-362 334 362 322 0-134z m250-58q104 0 182-50t115-122 60-144 27-122l4-50q-86 154-168 198t-220 44l0-218-362 334 362 322 0-192z" horiz-adv-x="1000" /> - -<glyph glyph-name="forward" unicode="" d="M540 252q-210 0-332-45t-208-197q4 20 13 53t50 117 96 148 156 117 225 53l0 192 360-322-360-334 0 218z" horiz-adv-x="900" /> - -<glyph glyph-name="quote" unicode="" d="M146 680q146 0 184-146 38-140-40-302-80-168-224-204-32-8-66-8l0 70q112 0 182 108 54 86 26 146-16 36-62 36-60 0-103 44t-43 106 43 106 103 44z m420 0q146 0 184-146 38-140-40-302-80-168-224-204-32-8-66-8l0 70q112 0 182 108 54 86 26 146-16 36-62 36-60 0-103 44t-43 106 43 106 103 44z" horiz-adv-x="762" /> - -<glyph glyph-name="code" unicode="" d="M380 636q16-14 16-32t-16-30l-246-224 246-226q16-12 16-30t-16-32q-30-30-60 0l-320 288 320 286q30 30 60 0z m302 0l318-286-318-288q-32-30-62 0-32 32 0 62l248 226-248 224q-32 30 0 62 30 30 62 0z" horiz-adv-x="1000" /> - -<glyph glyph-name="export" unicode="" d="M750 60l0 56 100 82 0-188q0-20-15-35t-35-15l-750 0q-20 0-35 15t-15 35l0 550q0 22 14 36t36 14l288 0q-32-24-59-49t-39-39l-10-12-130 0 0-450 650 0z m-82 348q-166 0-242-41t-160-181q0 8 1 22t9 56 22 79 44 83 70 79 107 56 149 23l0 156 332-250-332-260 0 178z" horiz-adv-x="1000" /> - -<glyph glyph-name="pencil" unicode="" d="M718 680q32-32 47-64t15-48l0-16-252-252-290-288-238-52 50 240 290 288 252 252q54 12 126-60z m-494-640l24 24q-2 44-52 94-22 22-45 35t-35 13l-14 2-22-24-18-80q28-16 46-34 24-24 36-48z" horiz-adv-x="780" /> - -<glyph glyph-name="feather" unicode="" d="M60-138q-6-20-26-8-18 8-16 34 4 100 50 226-100 154-52 316 10-32 32-78t44-80 32-30q8 4 0 83t-11 166 25 157q22 44 80 94t104 70q-24-46-33-94t-4-78 21-32q12 0 84 120t106 122q46 4 114-29t82-65q12-24 0-79t-40-83q-44-44-146-62t-114-24q-16-10 12-34 54-48 176-20-56-80-136-114t-132-38-54-10q-4-24 49-54t101-14q-30-56-63-84t-54-35-76-11-85-8z" horiz-adv-x="698" /> - -<glyph glyph-name="print" unicode="" d="M66 526q-26 0-22 22 4 10 12 14 2 0 49 17t93 32 58 15l44 0 0 150 380 0 0-150 46 0q12 0 57-15t92-32 49-17q18-8 12-26-4-10-20-10l-850 0z m860-56q20 0 37-19t17-41l0-174q0-22-17-41t-37-19l-100 0 44-250-760 0 44 250-98 0q-20 0-38 19t-18 41l0 174q0 22 18 41t38 19l870 0z m-716-444l560 0-70 324-420 0z" horiz-adv-x="980" /> - -<glyph glyph-name="retweet" unicode="" d="M250 190l272 0 128-140-448 0q-42 0-71 30t-29 70l0 302-102 0 176 198 174-198-100 0 0-262z m650 60l100 0-174-200-176 200 102 0 0 260-274 0-128 140 450 0q40 0 70-29t30-71l0-300z" horiz-adv-x="1000" /> - -<glyph glyph-name="keyboard" unicode="" d="M930 650q28 0 49-21t21-49l0-460q0-30-21-50t-49-20l-860 0q-28 0-49 20t-21 50l0 460q0 28 21 49t49 21l860 0z m-380-100l0-100 100 0 0 100-100 0z m150-150l-100 0 0-100 100 0 0 100z m-300 150l0-100 100 0 0 100-100 0z m150-150l-100 0 0-100 100 0 0 100z m-300 150l0-100 100 0 0 100-100 0z m150-150l-100 0 0-100 100 0 0 100z m-300 150l0-100 100 0 0 100-100 0z m150-150l-100 0 0-100 100 0 0 100z m-50-250l0 100-100 0 0-100 100 0z m550 0l0 100-500 0 0-100 500 0z m150 0l0 100-100 0 0-100 100 0z m-150 150l100 0 0 100-100 0 0-100z m150 150l0 100-200 0 0-100 200 0z" horiz-adv-x="1000" /> - -<glyph glyph-name="comment" unicode="" d="M700 700q42 0 71-29t29-71l0-350q0-40-29-70t-71-30l-200 0 0-150-200 150-200 0q-40 0-70 30t-30 70l0 350q0 42 30 71t70 29l600 0z" horiz-adv-x="800" /> - -<glyph glyph-name="chat" unicode="" d="M290 240l350 0q2 0 6 2l4 0 0-92q0-40-29-70t-71-30l-250 0-150-150 0 150-50 0q-40 0-70 30t-30 70l0 300q0 42 30 71t70 29l190 0 0-310z m610 560q42 0 71-29t29-71l0-300q0-40-29-70t-71-30l-50 0 0-150-150 150-350 0 0 400q0 42 30 71t70 29l450 0z" horiz-adv-x="1000" /> - -<glyph glyph-name="bell" unicode="" d="M632 426q16-34 40-52t45-22 44-23 35-55q22-62-74-161t-252-157q-164-58-297-45t-155 75q-20 54 12 111t18 111q-56 192-47 300t113 192q26 22 29 51t29 39q24 8 46-12t56-18q132 2 198-66t160-268z m-186-404q88 32 159 85t100 91 25 50q-8 22-49 33t-124 1-187-48q-102-38-173-87t-94-84-17-53q4-12 50-22t134-4 176 38z m-62 174q8 2 21 7t17 7l2-2q14-40-17-83t-89-63q-96-36-152 14 78 68 218 120z" horiz-adv-x="800" /> - -<glyph glyph-name="attention" unicode="" d="M957-24q10-16 0-34-10-16-30-16l-892 0q-18 0-28 16-13 18-2 34l446 782q8 18 30 18t30-18z m-420 50l0 100-110 0 0-100 110 0z m0 174l0 300-110 0 0-300 110 0z" horiz-adv-x="962" /> - -<glyph glyph-name="alert" unicode="" d="M885 234q20-16 16-33t-28-23l-78-22q-24-6-40-28t-14-48l4-82q2-24-14-34t-38 0l-86 44q-22 12-47 4t-35-30l-46-88q-12-22-29-23t-33 19l-50 78q-34 48-88 20l-122-70q-22-14-32-6t-2 32l54 164q8 24-4 44t-36 22l-106 12q-24 4-29 18t15 30l86 76q20 16 20 41t-20 41l-86 76q-20 16-16 33t28 23l78 22q24 6 41 28t15 48l-6 82q0 26 15 36t37 0l80-38q24-10 49-2t37 30l46 80q12 22 30 21t30-23l50-86q12-22 35-29t45 7l136 84q22 14 30 6t0-32l-60-170q-10-22 2-41t38-21l114-12q26-2 30-16t-16-30l-86-76q-18-16-18-41t18-41z m-384-92l0 104-100 0 0-104 100 0z m0 160l0 260-100 0 0-260 100 0z" horiz-adv-x="901" /> - -<glyph glyph-name="vcard" unicode="" d="M900 750q42 0 71-29t29-71l0-600q0-40-29-70t-71-30l-800 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l800 0z m0-700l0 600-800 0 0-600 800 0z m-450 196l0-90-250 0 0 90 250 0z m0 150l0-90-250 0 0 90 250 0z m0 150l0-90-250 0 0 90 250 0z m346-320l4-70-250 0q0 70 6 70 84 22 84 66 0 16-27 56t-27 88q0 110 90 110t90-110q0-48-28-88t-28-56q0-20 21-36t43-22z" horiz-adv-x="1000" /> - -<glyph glyph-name="address" unicode="" d="M426 800q20 0 20-20l0-860q0-20-20-20l-46 0q-20 0-20 20l0 440-176 0q-16 0-28 6-12 2-26 12l-120 82q-10 6-10 16t10 16l120 82q14 10 26 12 8 4 28 4l176 0 0 190q0 20 20 20l46 0z m564-208q10-6 10-16t-10-16l-118-82q-22-12-26-12-14-6-28-6l-302 0-40 230 342 0q18 0 28-4t26-12z" horiz-adv-x="1000" /> - -<glyph glyph-name="location" unicode="" d="M250 750q104 0 177-73t73-177q0-106-62-243t-126-223l-62-84q-10 12-27 35t-60 89-76 130-60 147-27 149q0 104 73 177t177 73z m0-388q56 0 96 40t40 96-40 95-96 39-95-39-39-95 39-96 95-40z" horiz-adv-x="500" /> - -<glyph glyph-name="map" unicode="" d="M984 600q16-10 16-30l0-584q0-20-16-30-8-6-16-6t-18 6l-216 136-216-136q-18-10-34 0l-218 136-216-136q-16-10-34 0-16 10-16 30l0 584q0 20 16 30l234 146q18 10 34 0l216-136 218 136q16 10 32 0z m-750-450l0 506-168-104 0-506z m234-104l0 506-168 104 0-506z m234 104l0 506-170-104 0-506z m232-104l0 506-168 104 0-506z" horiz-adv-x="1000" /> - -<glyph glyph-name="direction" unicode="" d="M848 768q8-8 11-16t-2-22-10-26-19-39-24-49q-54-112-147-286t-157-292l-66-118-54 380-380 56q442 246 696 368 20 10 48 25t39 20 25 9 23 1 17-11z m-92-96l-304-280 28-234z" horiz-adv-x="860" /> - -<glyph glyph-name="compass" unicode="" d="M474 830q198 2 340-136t146-336q2-200-136-342t-338-146q-198-2-341 137t-145 337q-4 200 135 342t339 144z m12-858q156 2 266 114t108 270-115 267-269 107q-158-2-267-114t-107-270 114-267 270-107z m-234 154q4 26 12 66t41 128 77 132 125 76 141 42l60 10q-4-26-12-66t-41-128-77-132q-42-42-124-74t-142-42z m180 276q-22-20-22-48t22-50q20-22 49-22t49 22q52 52 88 186-136-36-186-88z" horiz-adv-x="960" /> - -<glyph glyph-name="cup" unicode="" d="M340 760q152 0 249-41t91-87l-72-594q-2-14-34-36t-97-42-137-20-136 20-97 42-35 36l-72 594q-4 28 36 57t121 50 183 21z m0-216q72 0 137 15t98 33 33 30-33 29-98 32-137 15-137-15-98-32-33-29 33-30 98-33 137-15z" horiz-adv-x="681" /> - -<glyph glyph-name="trash" unicode="" d="M50 458q122-70 330-70t330 70l-54-486q-2-14-35-36t-100-43-141-21-140 21-100 43-36 36z m488 300q94-18 158-55t64-71l0-10q0-58-112-99t-268-41-268 41-112 99l0 10q0 34 64 71t158 55l42 48q22 26 70 26l92 0q52 0 70-26z m-54-112l84 0q-92 110-104 126-14 16-32 16l-102 0q-22 0-32-16l-106-126 84 0 64 66 82 0z" horiz-adv-x="760" /> - -<glyph glyph-name="doc" unicode="" d="M600 800q42 0 71-29t29-71l0-700q0-40-29-70t-71-30l-500 0q-40 0-70 30t-30 70l0 700q0 42 30 71t70 29l500 0z m0-800l0 700-500 0 0-700 500 0z" horiz-adv-x="700" /> - -<glyph glyph-name="docs" unicode="" d="M970 480q38-10 30-46l-150-556q-4-16-18-23t-30-3l-406 110q-16 4-24 18t-4 28l24 92-180-48q-40-10-50 26l-160 602q-10 36 28 48l454 122q16 4 30-3t18-23l66-244z m-888 190l144-542 392 106-144 540z m702-742l132 492-298 82 76-282q10-34-28-46l-196-52-26-102z" horiz-adv-x="1001" /> - -<glyph glyph-name="doc-landscape" unicode="" d="M0 600q0 42 30 71t70 29l800 0q42 0 71-29t29-71l0-500q0-40-29-70t-71-30l-800 0q-40 0-70 30t-30 70l0 500z m900 0l-800 0 0-500 800 0 0 500z" horiz-adv-x="1000" /> - -<glyph glyph-name="doc-text" unicode="" d="M212 308l0 90 280 0 0-90-280 0z m388 492q42 0 71-29t29-71l0-700q0-40-29-70t-71-30l-500 0q-40 0-70 30t-30 70l0 700q0 42 30 71t70 29l500 0z m0-800l0 700-500 0 0-700 500 0z m-110 592l0-88-280 0 0 88 280 0z m0-392l0-88-280 0 0 88 280 0z" horiz-adv-x="700" /> - -<glyph glyph-name="doc-text-inv" unicode="" d="M600 800q42 0 71-29t29-71l0-700q0-40-29-70t-71-30l-500 0q-40 0-70 30t-30 70l0 700q0 42 30 71t70 29l500 0z m-460-208l0-88 420 0 0 88-420 0z m420-480l0 88-420 0 0-88 420 0z m0 196l0 90-418 0 0-90 418 0z" horiz-adv-x="700" /> - -<glyph glyph-name="newspaper" unicode="" d="M700 800q42 0 71-29t29-71l0-700q0-40-29-70t-71-30l-600 0q-40 0-70 30t-30 70l0 700q0 42 30 71t70 29l600 0z m0-800l0 700-600 0 0-700 600 0z m-250 250l0-50-250 0 0 50 250 0z m150 200l0-50-200 0 0 50 200 0z m-200 50l0 100 200 0 0-100-200 0z m-50 100l0-200-150 0 0 200 150 0z m-50-250l0-50-100 0 0 50 100 0z m50-50l0 50 250 0 0-50-250 0z m250-150l0-50-400 0 0 50 400 0z m-100 50l0 50 100 0 0-50-100 0z" horiz-adv-x="800" /> - -<glyph glyph-name="book-open" unicode="" d="M340 238l0-68-200 80 0 68z m0 208l0-68-200 80 0 68z m538 346q22-12 22-42l0-640q0-34-32-46l-398-160q-8-2-10-2t-5-1-5-1-5 1-5 1l-10 2-398 160q-32 12-32 46l0 640q0 30 22 42 22 16 46 6l382-154 382 154q24 10 46-6z m-478-788l0 560-320 128 0-560z m420 128l0 560-320-128 0-560z m-60 186l0-68-200-80 0 68z m0 208l0-68-200-80 0 68z" horiz-adv-x="900" /> - -<glyph glyph-name="book" unicode="" d="M682 594q18-8 18-28l0-562q0-14-12-25t-28-11q-46 0-46 36l0 522q0 12-12 18l-404 216q-32 10-68-10-44-20-56-44l408-228q18-8 18-28l0-550q0-22-18-28-6-4-16-4-14 0-20 4-8 6-202 127t-212 131q-26 18-26 34l-6 524q0 28 14 52 28 46 102 77t116 9z" horiz-adv-x="700" /> - -<glyph glyph-name="folder" unicode="" d="M954 500q32 0 40-12t6-36l-42-452q-2-24-12-37t-42-13l-806 0q-52 0-56 50l-42 452q-2 24 6 36t40 12l908 0z m-34 110l10-40-846 0 14 132q4 20 20 34t36 14l164 0q52 0 86-34l30-30q32-36 86-36l340 0q20 0 38-12t22-28z" horiz-adv-x="1001" /> - -<glyph glyph-name="archive" unicode="" d="M840 600l0-50-696 0 0 50q0 22 13 35t25 15l608 0q6 0 14-1t22-14 14-35z m-148 150q6 0 14-1t22-14 14-35l-498 0q0 22 13 35t25 15l410 0z m248-200q34-32 38-46 6-18 0-54l-76-450q-4-22-20-35t-28-15l-710 0q-52 0-60 50-6 26-39 223t-39 227q-10 22-3 44t10 26 21 20l10 10 30 30 0-80 836 0 0 80z m-248-270l0 100-70 0 0-80-260 0 0 80-68 0 0-100q0-50 48-50l300 0q22 0 35 12t13 24z" horiz-adv-x="981" /> - -<glyph glyph-name="box" unicode="" d="M870 750q12 0 21-9t9-21l0-120-900 0 0 120q0 12 9 21t21 9l840 0z m-820-730l0 530 800 0 0-530q0-30-21-50t-49-20l-660 0q-28 0-49 20t-21 50z m250 430l0-100 300 0 0 100-300 0z" horiz-adv-x="900" /> - -<glyph glyph-name="rss" unicode="" d="M0 730q314 0 537-223t223-537l-118 0q0 266-188 453t-454 187l0 120z m0-238q218 0 371-153t153-369l-118 0q0 166-119 285t-287 119l0 118z m114-296q46 0 80-33t34-81q0-46-34-79t-80-33-80 33-34 79q0 48 34 81t80 33z" horiz-adv-x="760" /> - -<glyph glyph-name="phone" unicode="" d="M461 290q162 162 118 206l-8 8q-30 30-41 48t-4 54 49 88q20 24 37 39t35 16 30 1 29-13 24-18 26-25 21-22q48-48-6-194t-204-294q-150-150-295-205t-193-7q-2 2-23 22t-25 25-18 24-13 31 2 30 15 35 38 37q42 34 70 47t54 2 35-18 39-37q44-44 208 120z" horiz-adv-x="800" /> - -<glyph glyph-name="cog" unicode="" d="M760 350q0-72 80-122-12-40-34-82-70 18-136-44-54-58-34-136-40-20-84-36-46 82-132 82t-132-82q-44 16-84 36 20 80-34 136-54 54-136 34-14 26-34 82 82 52 82 132 0 72-82 124 20 56 34 82 74-18 136 44 54 56 34 136 42 22 84 34 46-80 132-80t132 80q42-12 84-34-20-78 34-136 66-62 136-44 22-42 34-82-80-50-80-124z m-340-182q76 0 129 53t53 129-53 130-129 54-129-54-53-130 53-129 129-53z" horiz-adv-x="840" /> - -<glyph glyph-name="tools" unicode="" d="M155 506q-8-8-11-22t-3-25-2-11q-2-2-17-15t-19-17q-16-14-28 4l-70 76q-11 12 2 24 2 2 18 14t20 16q6 6 27 6t37 14q14 14 18 38t10 30q2 0 9 7t26 22 41 31q134 90 186 96 122 0 148-2 12 0-8-8-120-52-152-76-80-56-36-114 34-46 38-48 8-8-2-14-2-2-38-35t-38-35q-14-8-18-4-42 48-71 60t-67-12z m286-26l410-476q18-22-2-38l-48-42q-22-14-38 4l-414 472q-8 8 0 20l72 62q12 8 20-2z m554 202q16-104-16-166-50-88-154-62-56 12-100-32l-82-78-68 78 68 70q24 24 31 53t6 65 5 58q12 56 140 112 12 6 18-3t2-15q-12-12-46-80-14-10-12-35t40-53q58-40 96 22 6 12 26 41t22 33q4 10 13 9t11-17z m-858-684l254 248 76-86-246-242q-20-20-38-4l-46 46q-22 18 0 38z" horiz-adv-x="1000" /> - -<glyph glyph-name="share" unicode="" d="M650 200q62 0 106-43t44-107q0-62-44-106t-106-44-106 44-44 106q0 6 1 14t1 12l-260 156q-42-32-92-32-62 0-106 44t-44 106 44 106 106 44q54 0 92-30l260 156q0 4-1 12t-1 12q0 62 44 106t106 44 106-43 44-107q0-62-44-106t-106-44q-52 0-90 32l-262-156q2-8 2-26 0-16-2-24l262-156q36 30 90 30z" horiz-adv-x="800" /> - -<glyph glyph-name="shareable" unicode="" d="M340 350q0 68 47 114t113 46 113-46 47-114q0-66-47-113t-113-47-113 47-47 113z m-114 60q-14-60-66-60l-160 0 0 120 118 0q40 124 145 202t237 78q164 0 284-116 16-18 16-43t-16-43q-18-16-43-16t-43 16q-78 82-198 82-100 0-176-62t-98-158z m614-60l160 0 0-120-118 0q-40-124-144-202t-238-78q-164 0-282 118-18 18-18 43t18 41q16 18 41 18t43-18q82-82 198-82 100 0 176 63t98 157q12 60 66 60z" horiz-adv-x="1000" /> - -<glyph glyph-name="basket" unicode="" d="M150 0q0 40 30 70t70 30q42 0 71-30t29-70q0-42-29-71t-71-29q-40 0-70 29t-30 71z m500 0q0 40 30 70t70 30q42 0 71-30t29-70q0-42-29-71t-71-29q-40 0-70 29t-30 71z m-322 236q-36-10-34-23t44-13l562 0 0-76q0-20-20-20l-654 0q-20 0-20 20l0 76-10 46-98 454-98 0 0 80q0 20 20 20l156 0q20 0 20-20l0-86 704 0 0-274q0-22-18-26z" horiz-adv-x="900" /> - -<glyph glyph-name="bag" unicode="" d="M835 668q28-26 24-60l-98-648q-8-30-38-30l-586 0q-28 0-40 30-94 620-96 648-5 34 22 60 6 6 54 43t56 43q18 16 56 16l480 0q38 0 56-16 78-58 110-86z m-406-436q56 0 98 34t63 89 30 89 13 66l-92 0q-38-188-112-188t-112 188l-92 0q46-278 204-278z m-352 368l704 0-110 116-484 0z" horiz-adv-x="859" /> - -<glyph glyph-name="calendar" unicode="" d="M800 700q42 0 71-29t29-71l0-600q0-40-29-70t-71-30l-700 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l46 0 0-100 160 0 0 100 290 0 0-100 160 0 0 100 44 0z m0-700l0 400-700 0 0-400 700 0z m-540 800l0-170-70 0 0 170 70 0z m450 0l0-170-70 0 0 170 70 0z" horiz-adv-x="900" /> - -<glyph glyph-name="login" unicode="" d="M800 800q42 0 71-29t29-71l0-700q0-40-29-70t-71-30l-450 0q-40 0-69 30t-29 70l0 100 98 0 0-100 450 0 0 700-450 0 0-150-98 0 0 150q0 42 29 71t69 29l450 0z m-350-670l0 120-450 0 0 150 450 0 0 120 200-194z" horiz-adv-x="900" /> - -<glyph glyph-name="logout" unicode="" d="M502 0l0 100 98 0 0-100q0-40-29-70t-71-30l-400 0q-40 0-70 30t-30 70l0 700q0 42 30 71t70 29l400 0q42 0 71-29t29-71l0-150-98 0 0 150-402 0 0-700 402 0z m398 326l-198-196 0 120-450 0 0 150 450 0 0 120z" horiz-adv-x="900" /> - -<glyph glyph-name="mic" unicode="" d="M620 488q20 0 20-20l0-138q0-92-69-164t-201-84l0-132 130 0q20 0 20-20l0-60q0-20-20-20l-360 0q-20 0-20 20l0 60q0 20 20 20l130 0 0 132q-132 12-201 84t-69 164l0 138q0 20 20 20l30 0q20 0 20-20l0-138q0-66 59-123t191-57 191 57 59 123l0 138q0 20 20 20l30 0z m-300-238q-80 0-115 25t-35 55l0 158 300 0 0-158q0-30-35-55t-115-25z m150 520l0-212-300 0 0 212q0 30 35 55t115 25 115-25 35-55z" horiz-adv-x="640" /> - -<glyph glyph-name="mute" unicode="" d="M868 778q16-16 16-36t-16-36l-782-782q-18-14-34-14-18 0-36 14-16 14-16 36t16 36l782 782q34 32 70 0z m-216-386l50 50q74-92 101-172t-7-116q-24-24-75-57t-131-71-161-45-165 23l278 276q44-32 88-54t67-25 33 1q6 10 2 34t-26 68-54 88z m-276 62l-270-270q-40 132 28 283t132 215q34 32 105 11t159-85l-52-50q-58 38-105 53t-57 5q-4-8-2-28t19-58 43-76z" horiz-adv-x="884" /> - -<glyph glyph-name="sound" unicode="" d="M176 588q42 42 149-5t217-157 157-217 5-149q-28-28-92-67t-156-78-194-29-176 84-84 176 29 194 78 156 67 92z m464-480q8 10-3 49t-49 101-96 118q-56 58-118 96t-101 49-49 3q-8-10 3-49t49-101 94-120q58-56 120-94t101-49 49-3z m6 394q-18 0-34 16-16 14-16 35t16 35l94 96q36 32 72 0 32-36 0-72l-96-94q-16-16-36-16z m-180 124q-18 10-23 30t5 38l54 96q26 44 68 20 18-10 23-30t-5-38l-54-96q-14-26-42-26-14 0-26 6z m438-150q10-18 4-38t-24-30l-96-54q-16-8-24-8-28 0-44 26-10 18-4 38t24 30l96 54q18 10 38 5t30-23z" horiz-adv-x="910" /> - -<glyph glyph-name="volume" unicode="" d="M896 180q0-34-24-57t-56-23l-780 0q-22 0-31 5t-3 15 24 20l802 452q28 18 48 7t20-45l0-374z" horiz-adv-x="896" /> - -<glyph glyph-name="clock" unicode="" d="M460 810q190 0 325-135t135-325-135-325-325-135-325 135-135 325 135 325 325 135z m0-820q150 0 255 106t105 254q0 150-105 255t-255 105q-148 0-254-105t-106-255q0-148 106-254t254-106z m36 620l0-244 150-150-50-50-170 170 0 274 70 0z" horiz-adv-x="920" /> - -<glyph glyph-name="hourglass" unicode="" d="M560 622q0-44-48-96t-97-99-49-77 49-76 97-97 48-97l0-118q0-34-86-73t-194-39-194 39-86 73l0 118q0 46 48 97t97 97 49 76-49 77-97 99-48 96l0 118q0 32 87 71t193 39 193-39 87-71l0-118z m-482 112l-18-14q-4-8 4-14 92-52 216-52 132 0 220 50 14 10-16 30-96 54-202 54-120 0-204-54z m228-384q0 18 4 33t18 33 20 25 31 31 29 28q92 92 92 122l2 50q-100-54-222-54t-222 54l4-50q0-32 90-122 6-6 22-21t23-22l19-19t17-21 11-20 9-23 3-24q0-10-1-19t-6-18-8-16-11-17l-12-15t-15-16-16-15-18-16-17-16q-90-90-90-122l0-66q8 4 66 23t92 43 34 58q0 30 26 30t26-30q0-34 33-58t94-43 67-23l0 66q0 30-92 122-4 4-21 20t-22 21-18 19-18 22-12 20-9 23-2 23z" horiz-adv-x="560" /> - -<glyph glyph-name="lamp" unicode="" d="M209-110l0 104 282 0 0-104q-70-42-142-40-70-2-140 40z m276 164l-270 0q0 72-36 140t-78 113-74 112-26 139q8 120 94 206t254 86q170 0 255-86t95-206q4-60-16-113t-52-96-65-85-57-96-24-114z m-378 496q-4-4 0-20t2-20 5-19 6-18 8-18 11-19 13-19 14-19 15-21 16-23q88-122 112-212l82 0q24 94 112 212 4 6 25 35t25 36 17 29 16 33 6 28 1 35q-16 196-244 196-226 0-242-196z" horiz-adv-x="700" /> - -<glyph glyph-name="light-down" unicode="" d="M350 510q68 0 114-47t46-113q0-68-46-114t-114-46q-66 0-113 46t-47 114q0 66 47 113t113 47z m0-264q44 0 73 30t29 74q0 42-29 72t-73 30q-42 0-72-30t-30-72q0-44 30-74t72-30z m-300 144q20 0 35-12t15-28q0-40-50-40t-50 40q0 16 15 28t35 12z m546 204q28-28-8-64-14-14-33-16t-29 10q-12 12-10 31t16 33q36 34 64 6z m54-204q20 0 35-12t15-28q0-40-50-40-48 0-48 40 0 16 14 28t34 12z m-300-290q16 0 28-15t12-35-12-35-28-15-28 15-12 35 12 35 28 15z m-238 62q36 36 64 8t-8-64q-14-14-33-16t-29 8q-30 28 6 64z m-10 430q28 28 64-8 14-14 16-33t-8-29q-30-28-64 6-36 36-8 64z m432-484q-34 36-6 64t64-8q14-14 16-33t-10-29q-30-28-64 6z m-184 492q-16 0-28 15t-12 35 12 35 28 15 28-15 12-35-12-35-28-15z" horiz-adv-x="700" /> - -<glyph glyph-name="light-up" unicode="" d="M950 390q20 0 35-12t15-28q0-40-50-40l-48 0q-50 0-50 40 0 16 15 28t35 12l48 0z m-450 234q114 0 195-80t81-194q0-116-81-196t-195-80-194 80-80 196q0 114 80 194t194 80z m0-474q82 0 141 58t59 142q0 82-59 141t-141 59-141-59-59-141q0-84 59-142t141-58z m-350 200q0-40-50-40l-50 0q-50 0-50 40 0 16 15 28t35 12l50 0q20 0 35-12t15-28z m350 350q-16 0-28 15t-12 35l0 50q0 20 12 35t28 15 28-15 12-35l0-50q0-20-12-35t-28-15z m0-700q16 0 28-15t12-35l0-50q0-20-12-35t-28-15-28 15-12 35l0 50q0 20 12 35t28 15z m368 660l-34-34q-34-34-64-8-28 28 8 64 4 6 34 36 36 34 64 6t-8-64z m-700-588q14 16 33 18t29-10q12-12 10-31t-16-33l-36-36q-14-14-33-16t-29 10q-30 28 6 64 6 4 36 34z m20 646l36-36q36-36 6-64-10-10-29-8t-33 16q-30 30-36 34-14 14-16 33t10 31q10 12 29 10t33-16z m590-702q-36 36-8 64t64-8l34-34q36-36 8-64t-64 6q-30 30-34 36z" horiz-adv-x="1000" /> - -<glyph glyph-name="adjust" unicode="" d="M950 390q20 0 35-12t15-28q0-40-50-40l-48 0q-50 0-50 40 0 16 15 28t35 12l48 0z m-450 234q114 0 195-80t81-194q0-116-81-196t-195-80-194 80-80 196q0 114 80 194t194 80z m6-474l0 400q-86 0-146-59t-60-141q0-84 60-142t146-58z m-356 200q0-40-50-40l-50 0q-50 0-50 40 0 16 15 28t35 12l50 0q20 0 35-12t15-28z m350 350q-16 0-28 15t-12 35l0 50q0 20 12 35t28 15 28-15 12-35l0-50q0-20-12-35t-28-15z m0-700q16 0 28-15t12-35l0-50q0-20-12-35t-28-15-28 15-12 35l0 50q0 20 12 35t28 15z m368 660l-34-34q-34-34-64-8-28 28 8 64 4 6 34 36 36 34 64 6t-8-64z m-700-588q14 16 33 18t29-10q12-12 10-31t-16-33l-36-36q-14-14-33-16t-29 10q-30 28 6 64 6 4 36 34z m20 646l36-36q36-36 6-64-10-10-29-8t-33 16q-30 30-36 34-14 14-16 33t10 31q10 12 29 10t33-16z m590-702q-36 36-8 64t64-8l34-34q36-36 8-64t-64 6q-30 30-34 36z" horiz-adv-x="1000" /> - -<glyph glyph-name="block" unicode="" d="M480 830q200 0 340-140t140-340q0-198-140-339t-340-141q-198 0-339 141t-141 339q0 200 141 340t339 140z m258-220z m-622-260q0-132 82-230l514 514q-100 82-232 82-152 0-258-107t-106-259z m106-258z m258-106q152 0 259 107t107 257q0 130-82 232l-514-514q98-82 230-82z" horiz-adv-x="960" /> - -<glyph glyph-name="resize-full" unicode="" d="M476 746l316 0 0-316-100 124-146-152-100 100 152 146z m-230-444l100-100-152-146 122-100-316 0 0 316 100-122z" horiz-adv-x="792" /> - -<glyph glyph-name="resize-small" unicode="" d="M156 146l-106 100 296 0 0-296-100 106-146-156-100 100z m744 554l-154-144 104-100-294 0 0 294 100-104 144 154z" horiz-adv-x="900" /> - -<glyph glyph-name="popup" unicode="" d="M700 750q42 0 71-29t29-71l0-400q0-40-29-70t-71-30l-400 0q-40 0-70 30t-30 70l0 402q0 40 29 69t71 29l400 0z m0-500l0 400-400 0 0-400 400 0z m-600 100l0-300 300 0 0-100-300 0q-40 0-70 30t-30 70l0 300 100 0z" horiz-adv-x="800" /> - -<glyph glyph-name="publish" unicode="" d="M900 800q42 0 71-30t29-70l0-600q0-42-29-71t-71-29l-198 0 0 98 200 0 0 462-802 0 0-462 200 0 0-98-200 0q-40 0-70 29t-30 71l0 600q0 40 30 70t70 30l800 0z m-770-168q38 0 38 38 0 16-11 26t-27 10-27-11-11-25q0-16 11-27t27-11z m100 0q38 0 38 38 0 16-11 26t-27 10-27-11-11-25q0-16 11-27t27-11z m672 6l0 62-602 0 0-62 602 0z m-404-198l242-240-150 0 0-300-184 0 0 300-150 0z" horiz-adv-x="1000" /> - -<glyph glyph-name="window" unicode="" d="M900 750q42 0 71-30t29-70l0-600q0-42-29-71t-71-29l-800 0q-40 0-70 29t-30 71l0 600q0 40 30 70t70 30l800 0z m-670-94q-16 0-27-11t-11-25q0-16 11-27t27-11q38 0 38 38 0 16-11 26t-27 10z m-138-36q0-16 11-27t27-11q38 0 38 38 0 16-11 26t-27 10-27-11-11-25z m810-570l0 460-802 0 0-460 802 0z m0 540l0 60-602 0 0-60 602 0z" horiz-adv-x="1000" /> - -<glyph glyph-name="arrow-combo" unicode="" d="M230 850l230-364-460 0z m0-1000l-230 366 460 0z" horiz-adv-x="460" /> - -<glyph glyph-name="down-circled" unicode="" d="M460 810q190 0 325-135t135-325-135-325-325-135-325 135-135 325 135 325 325 135z m0-820q148 0 254 106t106 254q0 150-106 255t-254 105-254-105-106-255q0-148 106-254t254-106z m90 554l0-206 112 0-202-190-202 190 112 0 0 206 180 0z" horiz-adv-x="920" /> - -<glyph glyph-name="left-circled" unicode="" d="M920 350q0-190-135-325t-325-135-325 135-135 325q0 192 135 326t325 134 325-134 135-326z m-820 0q0-148 106-254t254-106 254 106 106 254q0 150-106 255t-254 105-254-105-106-255z m552-90l-204 0 0-112-190 202 190 204 0-114 204 0 0-180z" horiz-adv-x="920" /> - -<glyph glyph-name="right-circled" unicode="" d="M0 350q0 190 135 325t325 135 325-135 135-325-135-325-325-135-325 135-135 325z m820 0q0 150-105 255t-255 105q-148 0-254-105t-106-255q0-148 106-254t254-106q150 0 255 106t105 254z m-552 90l204 0 0 114 190-204-190-202 0 112-204 0 0 180z" horiz-adv-x="920" /> - -<glyph glyph-name="up-circled" unicode="" d="M460-110q-190 0-325 135t-135 325q0 192 135 326t325 134 325-134 135-326q0-190-135-325t-325-135z m0 820q-148 0-254-105t-106-255q0-148 106-254t254-106q150 0 255 106t105 254q0 150-105 255t-255 105z m-90-552l0 204-112 0 202 192 202-192-112 0 0-204-180 0z" horiz-adv-x="920" /> - -<glyph glyph-name="down-open" unicode="" d="M564 422l-234-224q-18-18-40-18t-40 18l-234 224q-16 16-16 41t16 41q38 38 78 0l196-188 196 188q40 38 78 0 16-16 16-41t-16-41z" horiz-adv-x="580" /> - -<glyph glyph-name="left-open" unicode="" d="M242 626q14 16 39 16t41-16q38-36 0-80l-186-196 186-194q38-44 0-80-16-16-40-16t-40 16l-226 236q-16 16-16 38 0 24 16 40 206 214 226 236z" horiz-adv-x="341" /> - -<glyph glyph-name="right-open" unicode="" d="M98 626l226-236q16-16 16-40 0-22-16-38l-226-236q-16-16-40-16t-40 16q-36 36 0 80l186 194-186 196q-36 44 0 80 16 16 41 16t39-16z" horiz-adv-x="340" /> - -<glyph glyph-name="up-open" unicode="" d="M564 280q16-16 16-41t-16-41q-38-38-78 0l-196 188-196-188q-40-38-78 0-16 16-16 41t16 41l234 224q16 16 40 16t40-16z" horiz-adv-x="580" /> - -<glyph glyph-name="down-open-mini" unicode="" d="M405 470q22 26 48 0 26-22 0-48l-196-192q-22-22-48 0l-196 192q-26 26 0 48 24 24 50 0l170-156z" horiz-adv-x="466" /> - -<glyph glyph-name="left-open-mini" unicode="" d="M252 180q26-26 0-48-26-26-48 0l-192 194q-24 24 0 50l192 194q22 26 48 0 26-22 0-48l-156-172z" horiz-adv-x="265" /> - -<glyph glyph-name="right-open-mini" unicode="" d="M13 180l158 170-158 172q-26 26 0 48 26 26 48 0l192-194q24-26 0-50l-192-194q-22-26-48 0-26 22 0 48z" horiz-adv-x="265" /> - -<glyph glyph-name="up-open-mini" unicode="" d="M62 230q-26-22-50 0-24 24 0 50l196 190q26 26 48 0l196-190q24-26 0-50-24-22-50 0l-170 158z" horiz-adv-x="464" /> - -<glyph glyph-name="down-open-big" unicode="" d="M63 570l370-356 372 356q22 26 48 0 26-22 0-48l-396-392q-22-22-48 0l-396 392q-26 26 0 48 24 24 50 0z" horiz-adv-x="866" /> - -<glyph glyph-name="left-open-big" unicode="" d="M452-20q26-26 0-48-26-26-48 0l-392 394q-24 24 0 50l392 394q22 26 48 0 26-22 0-48l-358-372z" horiz-adv-x="465" /> - -<glyph glyph-name="right-open-big" unicode="" d="M13-20l358 370-358 372q-26 26 0 48 26 26 48 0l392-394q24-26 0-50l-392-394q-22-26-48 0-26 22 0 48z" horiz-adv-x="465" /> - -<glyph glyph-name="up-open-big" unicode="" d="M804 130l-372 358-370-358q-26-22-50 0-24 24 0 50l396 390q26 26 48 0l396-390q24-26 0-50-26-22-48 0z" horiz-adv-x="864" /> - -<glyph glyph-name="down" unicode="" d="M660 366l-330-380-330 380 192 0 0 350 276 0 0-350 192 0z" horiz-adv-x="660" /> - -<glyph glyph-name="left" unicode="" d="M378 20l-378 330 378 330 0-190 352 0 0-278-352 0 0-192z" horiz-adv-x="730" /> - -<glyph glyph-name="right" unicode="" d="M350 680l380-330-380-330 0 192-350 0 0 278 350 0 0 190z" horiz-adv-x="730" /> - -<glyph glyph-name="up" unicode="" d="M660 336l-192 0 0-350-276 0 0 350-192 0 330 380z" horiz-adv-x="660" /> - -<glyph glyph-name="down-dir" unicode="" d="M460 550l-230-400-230 400 460 0z" horiz-adv-x="460" /> - -<glyph glyph-name="left-dir" unicode="" d="M400 580l0-460-400 230z" horiz-adv-x="400" /> - -<glyph glyph-name="right-dir" unicode="" d="M0 580l400-230-400-230 0 460z" horiz-adv-x="400" /> - -<glyph glyph-name="up-dir" unicode="" d="M0 150l230 400 230-400-460 0z" horiz-adv-x="460" /> - -<glyph glyph-name="down-bold" unicode="" d="M760 366l-380-380-380 380 192 0 0 350 376 0 0-350 192 0z" horiz-adv-x="760" /> - -<glyph glyph-name="left-bold" unicode="" d="M378 730l0-190 352 0 0-378-352 0 0-192-378 380z" horiz-adv-x="730" /> - -<glyph glyph-name="right-bold" unicode="" d="M350 730l380-380-380-380 0 192-350 0 0 378 350 0 0 190z" horiz-adv-x="730" /> - -<glyph glyph-name="up-bold" unicode="" d="M760 336l-192 0 0-350-376 0 0 350-192 0 380 380z" horiz-adv-x="760" /> - -<glyph glyph-name="down-thin" unicode="" d="M500 100l-250-240-250 240 162 0 0 740 176 0 0-740 162 0z" horiz-adv-x="500" /> - -<glyph glyph-name="left-thin" unicode="" d="M240 100l-240 250 240 250 0-160 740 0 0-178-740 0 0-162z" horiz-adv-x="980" /> - -<glyph glyph-name="right-thin" unicode="" d="M742 100l0 162-742 0 0 178 742 0 0 160 238-250z" horiz-adv-x="980" /> - -<glyph glyph-name="up-thin" unicode="" d="M500 602l-162 0 0-742-176 0 0 742-162 0 250 238z" horiz-adv-x="500" /> - -<glyph glyph-name="ccw" unicode="" d="M532 736q170 0 289-120t119-290-119-290-289-120q-142 0-252 88l70 74q84-60 182-60 126 0 216 90t90 218-90 218-216 90q-124 0-214-87t-92-211l142 0-184-204-184 204 124 0q2 166 122 283t286 117z" horiz-adv-x="940" /> - -<glyph glyph-name="cw" unicode="" d="M408 760q168 0 287-116t123-282l122 0-184-206-184 206 144 0q-4 124-94 210t-214 86q-126 0-216-90t-90-218q0-126 90-216t216-90q104 0 182 60l70-76q-110-88-252-88-168 0-288 120t-120 290 120 290 288 120z" horiz-adv-x="940" /> - -<glyph glyph-name="arrows-ccw" unicode="" d="M186 140l116 116 0-292-276 16 88 86q-116 122-114 290t120 288q100 100 240 116l4-102q-100-16-172-88-88-88-90-213t84-217z m332 598l276-16-88-86q116-122 114-290t-120-288q-96-98-240-118l-2 104q98 16 170 88 88 88 90 213t-84 217l-114-116z" horiz-adv-x="820" /> - -<glyph glyph-name="level-down" unicode="" d="M100 200q-42 0-71 30t-29 70l0 350 140 0 0-310 364 0 0 150 240-220-240-220 0 150-404 0z" horiz-adv-x="744" /> - -<glyph glyph-name="level-up" unicode="" d="M200 350l0-90-200 160 200 170 0-100 550 0q40 0 70-29t30-71l0-280-140 0 0 240-510 0z" horiz-adv-x="850" /> - -<glyph glyph-name="shuffle" unicode="" d="M754 516q-54 0-105-32t-80-66-83-104q-48-62-75-94t-78-77-107-66-122-21l-104 0 0 140 104 0q54 0 106 32t81 66 83 104q62 82 101 126t116 88 163 44l36 0 0 120 210-180-210-180 0 100-36 0z m-484-88q-74 78-166 78l-104 0 0 140 104 0q140 0 254-108-14-16-37-45t-27-33q-8-12-24-32z m520-242l0 100 210-180-210-180 0 120-36 0q-140 0-260 116 46 58 72 92 0 2 6 9t8 11q84-88 174-88l36 0z" horiz-adv-x="1000" /> - -<glyph glyph-name="loop" unicode="" d="M800 540q42 0 71-29t29-71l0-290q0-40-29-70t-71-30l-700 0q-40 0-70 30t-30 70l0 290q0 42 30 71t70 29l250 0 0 110 200-180-200-180 0 110-210 0 0-210 620 0 0 210-150 0 0 140 190 0z" horiz-adv-x="900" /> - -<glyph glyph-name="switch" unicode="" d="M700 592l0-140-500 0 0-90-200 160 200 170 0-100 500 0z m300-420l-200-160 0 90-500 0 0 140 500 0 0 100z" horiz-adv-x="1000" /> - -<glyph glyph-name="play" unicode="" d="M486 376q14-10 14-26 0-14-14-24l-428-266q-24-16-41-6t-17 40l0 514q0 30 17 40t41-6z" horiz-adv-x="500" /> - -<glyph glyph-name="stop" unicode="" d="M526 650q74 0 74-64l0-470q0-66-74-66l-450 0q-76 0-76 66l0 470q0 36 18 50t58 14l450 0z" horiz-adv-x="600" /> - -<glyph glyph-name="pause" unicode="" d="M440 700q90 0 90-64l0-570q0-66-90-66t-90 66l0 570q0 64 90 64z m-350 0q90 0 90-64l0-570q0-66-90-66t-90 66l0 570q0 64 90 64z" horiz-adv-x="530" /> - -<glyph glyph-name="record" unicode="" d="M350 700q146 0 248-102t102-248q0-144-102-247t-248-103-248 103-102 247q0 146 102 248t248 102z" horiz-adv-x="700" /> - -<glyph glyph-name="to-end" unicode="" d="M412 374q14-10 14-24 0-12-14-22l-362-228q-22-14-36-5t-14 35l0 442q0 26 14 35t36-5z m114 268q74 0 74-58l0-466q0-58-74-58-76 0-76 58l0 466q0 58 76 58z" horiz-adv-x="600" /> - -<glyph glyph-name="to-start" unicode="" d="M174 350q0 14 14 24l364 228q20 14 34 5t14-35l0-442q0-26-14-35t-34 5l-364 228q-14 10-14 22z m-174 234q0 58 76 58 74 0 74-58l0-466q0-58-74-58-76 0-76 58l0 466z" horiz-adv-x="600" /> - -<glyph glyph-name="fast-forward" unicode="" d="M866 374q14-10 14-24t-14-22l-372-248q-22-14-37-6t-15 36l0 482q0 28 15 36t37-6z m-454 0q14-10 14-24t-14-22l-360-248q-20-14-36-6t-16 36l0 482q0 28 16 36t36-6z" horiz-adv-x="880" /> - -<glyph glyph-name="fast-backward" unicode="" d="M0 350q0 14 14 24l374 248q20 14 36 6t16-36l0-482q0-28-16-36t-36 6l-374 248q-14 8-14 22z m454 0q0 14 14 24l360 248q20 14 36 6t16-36l0-482q0-28-16-36t-36 6l-360 248q-14 8-14 22z" horiz-adv-x="880" /> - -<glyph glyph-name="progress-0" unicode="" d="M1000 450l0-250q0-42-29-71t-71-29l-800 0q-40 0-70 29t-30 71l0 300q0 40 30 70t70 30l800 0q42 0 71-30t29-70l0-50z m-100-250l0 300-800 0 0-300 800 0z" horiz-adv-x="1000" /> - -<glyph glyph-name="progress-1" unicode="" d="M1000 450l0-250q0-42-29-71t-71-29l-800 0q-40 0-70 29t-30 71l0 300q0 40 30 70t70 30l800 0q42 0 71-30t29-70l0-50z m-100-250l0 300-800 0 0-300 800 0z m-750 50l0 198 200 0 0-198-200 0z" horiz-adv-x="1000" /> - -<glyph glyph-name="progress-2" unicode="" d="M1000 450l0-250q0-42-29-71t-71-29l-800 0q-40 0-70 29t-30 71l0 300q0 40 30 70t70 30l800 0q42 0 71-30t29-70l0-50z m-100-250l0 300-800 0 0-300 800 0z m-750 50l0 198 200 0 0-198-200 0z m250 0l0 198 200 0 0-198-200 0z" horiz-adv-x="1000" /> - -<glyph glyph-name="progress-3" unicode="" d="M1000 450l0-250q0-42-29-71t-71-29l-800 0q-40 0-70 29t-30 71l0 300q0 40 30 70t70 30l800 0q42 0 71-30t29-70l0-50z m-100-250l0 300-800 0 0-300 800 0z m-750 50l0 198 200 0 0-198-200 0z m250 0l0 198 200 0 0-198-200 0z m250 198l200 0 0-198-200 0 0 198z" horiz-adv-x="1000" /> - -<glyph glyph-name="target" unicode="" d="M430 780q178 0 304-126t126-304-126-304-304-126-304 126-126 304 126 304 304 126z m36-778q124 14 212 102t100 212l-192 0 0 70 192 0q-12 124-100 212t-212 102l0-194-70 0 0 194q-124-14-213-102t-101-212l194 0 0-70-194 0q12-124 101-212t213-102l0 194 70 0 0-194z" horiz-adv-x="860" /> - -<glyph glyph-name="list" unicode="" d="M100 200q20 0 35-15t15-35-15-35-35-15l-50 0q-20 0-35 15t-15 35 14 35 36 15l50 0z m0 200q20 0 35-15t15-35-15-35-35-15l-50 0q-20 0-35 15t-15 35 14 35 36 15l50 0z m0 200q20 0 35-15t15-35-15-35-35-15l-50 0q-20 0-35 15t-15 35 14 35 36 15l50 0z m200-100q-20 0-35 15t-15 35 15 35 35 15l350 0q22 0 36-15t14-35-15-35-35-15l-350 0z m350-100q22 0 36-15t14-35-15-35-35-15l-350 0q-20 0-35 15t-15 35 15 35 35 15l350 0z m0-200q22 0 36-15t14-35-15-35-35-15l-350 0q-20 0-35 15t-15 35 15 35 35 15l350 0z" horiz-adv-x="700" /> - -<glyph glyph-name="list-add" unicode="" d="M350 400q22 0 36-15t14-35-15-35-35-15l-300 0q-20 0-35 15t-15 35 14 35 36 15l300 0z m0-200q22 0 36-15t14-35-15-35-35-15l-300 0q-20 0-35 15t-15 35 14 35 36 15l300 0z m620 200q30 0 30-50t-30-50l-170 0 0-170q0-30-50-30t-50 30l0 170-164 0q-30 0-30 50t30 50l164 0 0 170q0 30 50 30t50-30l0-170 170 0z m-620 200q22 0 36-15t14-35-15-35-35-15l-300 0q-20 0-35 15t-15 35 14 35 36 15l300 0z" horiz-adv-x="1000" /> - -<glyph glyph-name="battery" unicode="" d="M770 350q0-98 36-157t78-59l66 0q-30-46-64-65t-118-19l-500 0q-130 0-199 94t-69 206q0 110 69 205t199 95l500 0q84 0 118-19t64-65l-66 0q-42 0-78-60t-36-156z m-136-90q10 12-8 26-136 134-178 164-16 10-26 13t-18-5-10-12-8-18l-22-56-148 66q-26 12-34 0-8-14 8-28 136-132 180-162 34-16 42-11t18 31l24 58 146-68q26-12 34 2z m310 192q22 0 39-27t17-71-17-72-39-28l-38 0q-22 0-38 28t-16 72 16 71 38 27l38 0z" horiz-adv-x="1000" /> - -<glyph glyph-name="back-in-time" unicode="" d="M532 760q170 0 289-120t119-290-119-290-289-120q-138 0-252 88l70 76q82-60 182-60 126 0 216 90t90 216q0 128-90 218t-216 90q-124 0-213-86t-93-210l142 0-184-206-184 206 124 0q4 166 123 282t285 116z m-36-190l70 0 0-204 130-130-50-50-150 150 0 234z" horiz-adv-x="940" /> - -<glyph glyph-name="monitor" unicode="" d="M900 790q42 0 71-30t29-70l0-550q0-42-29-77t-69-43l-218-44 86-38q50-28-20-28l-500 0q-98 0 32 52l36 14-220 44q-40 8-69 43t-29 77l0 550q0 40 30 70t70 30l800 0z m0-646l0 556-800 0 0-556 800 0z" horiz-adv-x="1000" /> - -<glyph glyph-name="mobile" unicode="" d="M480 840q42 0 71-29t29-71l0-780q0-40-29-70t-71-30l-380 0q-40 0-70 30t-30 70l0 780q0 42 30 71t70 29l380 0z m-190-940q30 0 50 15t20 35q0 22-20 36t-50 14q-28 0-49-15t-21-35 21-35 49-15z m210 150l0 660-420 0 0-660 420 0z" horiz-adv-x="580" /> - -<glyph glyph-name="cd" unicode="" d="M460 810q190 0 325-135t135-325-135-325-325-135-325 135-135 325 135 325 325 135z m0-610q62 0 106 44t44 106q0 64-43 107t-107 43q-62 0-106-44t-44-106 44-106 106-44z" horiz-adv-x="920" /> - -<glyph glyph-name="inbox" unicode="" d="M967 398q40-42 30-72l-28-154q-4-20-22-33t-40-13l-816 0q-22 0-40 13t-22 33l-28 154q-8 32 32 72 8 10 36 38t68 67 52 51q22 22 52 22l516 0q30 0 52-22 16-16 53-52t67-65 38-39z m-266-32l178 0-102 114-556 0-102-114 178 0q8 0 12-8l40-100 300 0 40 100q4 8 12 8z" horiz-adv-x="999" /> - -<glyph glyph-name="install" unicode="" d="M884 306q24-52 14-96l-34-184q-2-20-19-35t-39-15l-712 0q-22 0-39 15t-19 35l-34 184q-8 50 14 96l158 374q22 46 72 46l104 0-20-204-134 0 254-210 256 210-136 0-18 204 102 0q50 0 74-46z m-68-132q2 22-10 38t-34 16l-644 0q-22 0-34-16t-10-38l14-74q2-22 19-37t37-15l592 0q22 0 39 15t19 37z" horiz-adv-x="901" /> - -<glyph glyph-name="globe" unicode="" d="M480 830q200 0 340-141t140-339q0-200-140-340t-340-140q-198 0-339 140t-141 340q0 198 141 339t339 141z m410-480q0 132-78 239t-202 149q-18-24-16-32 4-38 18-51t30-7l32 12t20 2q22-24 0-47t-45-56-1-77q34-64 96-64 28-2 43-36t17-66q10-80-14-140-22-44 14-76 86 112 86 250z m-466 404q-112-14-199-84t-127-174q6 0 22-2t28-3 26-4 24-8 12-13q4-12-14-45t-18-61q0-30 38-56t38-46q0-28 8-68t8-44q0-12 36-54t52-42q10 0 11 22t-2 54-3 40q0 32 14 74 12 42 59 70t55 46q16 34 9 61t-17 43-34 28-41 17-37 9-22 4q-16 6-42 7t-36-3-27 11-17 29q0 10 15 27t35 37 28 30q8 14 17 21t22 16 27 21q4 4 25 17t27 23z m-72-794q66-20 128-20 128 0 226 68-26 44-118 34-24-2-65-17t-47-17q-74-16-76-16-12-2-26-14t-22-18z" horiz-adv-x="960" /> - -<glyph glyph-name="cloud" unicode="" d="M760 494q100 0 170-68t70-166-70-166-170-68l-578 0q-74 0-128 52t-54 124q0 74 53 126t129 52q2 0 10-1t10-1q-2 12-2 38 0 108 78 184t188 76q90 0 160-52t94-134q28 4 40 4z" horiz-adv-x="1000" /> - -<glyph glyph-name="cloud-thunder" unicode="" d="M760 494q100 0 170-68t70-166-70-166-170-68l-578 0q-74 0-128 52t-54 124q0 74 53 126t129 52q2 0 10-1t10-1q-2 12-2 38 0 108 78 184t188 76q90 0 160-52t94-134q28 4 40 4z m-192-216q14 16 14 30 0 20-30 32l-4 0q-26 14-38 16l50 116q6 0 6 20 0 14-8 18-16 10-34-8-2-2-30-32t-61-66-45-52q-12-18-12-30 0-22 30-30l4-2q8-4 38-16l-52-114-2-8q-2-8-2-14 0-10 8-18 18-10 34 10 100 100 134 148z" horiz-adv-x="1000" /> - -<glyph glyph-name="flash" unicode="" d="M40-100q-4 4 35 94t79 182 38 98-94 45-98 55q-4 12 84 120t180 209 96 97q6-4-74-186t-78-186 95-43 97-57q4-20-174-227t-186-201z" horiz-adv-x="400" /> - -<glyph glyph-name="moon" unicode="" d="M524 238q106 106 125 252t-53 270q52-26 96-72 128-128 128-309t-128-309-310-128-310 128q-40 40-72 94 124-70 271-51t253 125z" horiz-adv-x="820" /> - -<glyph glyph-name="flight" unicode="" d="M268-120l124 400-180 0-112-100-100 0 80 170-80 170 100 0 112-100 180 0-124 400 100 0 224-400 274 0t36-4 46-11 36-21 16-34q0-32-38-49t-74-19l-38-2-258 0-224-400-100 0z" horiz-adv-x="1000" /> - -<glyph glyph-name="paper-plane" unicode="" d="M894 720q14 4 22-3t4-19q-2-6-72-310t-74-316q-2-14-14-19t-24 1l-248 134-30 16 22 26q388 420 394 426 4 4-1 9t-9 1l-550-402-112 44-190 76q-12 4-12 12t12 12q8 4 441 157t441 155z m-582-728l0 204 160-82q-130-116-142-128-18-14-18 6z" horiz-adv-x="921" /> - -<glyph glyph-name="leaf" unicode="" d="M236 646q182 106 506 66 168-22 196-50 4-6-2-10-76-40-130-109t-78-132-65-132-93-105q-138-96-382-4-66-76-114-176-12-24-47-7t-25 39q44 100 129 193t176 153 176 106 141 68l54 20q-14 0-41-1t-104-14-148-38-162-84-161-141q-22 242 174 358z" horiz-adv-x="940" /> - -<glyph glyph-name="lifebuoy" unicode="" d="M454 810q190 2 326-130t140-322q2-190-131-327t-323-141q-190-2-327 131t-139 323q-4 190 130 327t324 139z m0-60q-94 0-178-44l62-104q56 28 122 28t122-28l62 104q-88 46-190 44z m-246-522q-28 60-28 122 0 64 28 124l-102 62q-46-88-46-190 2-96 46-180z m258-278q98 4 178 46l-62 104q-60-30-122-30t-122 30l-62-104q86-46 190-46z m-6 180q92 0 156 65t64 155q0 92-64 156t-156 64-156-64-64-156q0-90 64-155t156-65z m252 98l104-62q46 96 44 190 0 96-44 180l-104-62q28-60 28-124 0-62-28-122z" horiz-adv-x="920" /> - -<glyph glyph-name="mouse" unicode="" d="M551 130q28-80-17-157t-139-111q-94-28-175 9t-103 117l-106 384q-20 68 6 134t84 106l-96 186q-14 34 14 48 30 18 48-14l98-192q80 22 154-16t102-116z m-324 274q28 10 40 36t4 54q-10 28-35 41t-53 5q-28-10-40-36t-4-54q10-28 35-41t53-5z" horiz-adv-x="561" /> - -<glyph glyph-name="briefcase" unicode="" d="M456 326l0-100-456 0q8 226 10 292 4 108 100 108l160 0q16 26 37 67t23 45q14 26 23 32t37 6l222 0q26 0 36-7t22-31q18-32 60-112l160 0q96 0 100-108l10-292-454 0 0 100-90 0z m-74 354l-28-54 292 0-28 54q-14 26-42 26l-152 0q-28 0-42-26z m164-604l0 100 430 0q-6-88-10-166-6-84-90-84l-750 0q-90 0-90 84l-10 166 430 0 0-100 90 0z" horiz-adv-x="1000" /> - -<glyph glyph-name="suitcase" unicode="" d="M900 650q42 0 71-30t29-70l0-550q0-42-29-71t-71-29l-50 0 0 750 50 0z m-900-100q0 40 30 70t70 30l50 0 0-750-50 0q-40 0-70 29t-30 71l0 550z m670 204l0-104 110 0 0-750-560 0 0 750 110 0 0 104q98 46 170 46t170-46z m-60-104l0 66q-52 24-110 24-54 0-110-24l0-66 220 0z" horiz-adv-x="1000" /> - -<glyph glyph-name="dot" unicode="" d="M110 460q46 0 78-32t32-78q0-44-32-77t-78-33-78 33-32 77q0 46 32 78t78 32z" horiz-adv-x="220" /> - -<glyph glyph-name="dot-2" unicode="" d="M110 460q46 0 78-32t32-78q0-44-32-77t-78-33-78 32-32 78 32 78 78 32z m350 0q46 0 78-32t32-78q0-44-33-77t-77-33q-46 0-78 32t-32 78 32 78 78 32z" horiz-adv-x="570" /> - -<glyph glyph-name="dot-3" unicode="" d="M110 460q46 0 78-32t32-78q0-44-32-77t-78-33-78 33-32 77q0 46 32 78t78 32z m350 0q46 0 78-32t32-78q0-44-33-77t-77-33-77 33-33 77q0 46 32 78t78 32z m350 0q46 0 78-32t32-78q0-44-32-77t-78-33-78 33-32 77q0 46 32 78t78 32z" horiz-adv-x="920" /> - -<glyph glyph-name="brush" unicode="" d="M118 170q38 34 85 29t87-45q42-40 48-87t-30-83q-86-84-228-102-84-12-80 14 0 4 6 10 52 60 64 145t48 119z m840 646q26-26-148-248t-292-338q-38-38-124-104-8-6-16 8-18 34-48 64-32 32-66 48-16 6-8 16 64 84 104 122 118 116 344 287t254 145z" horiz-adv-x="962" /> - -<glyph glyph-name="infinity" unicode="" d="M796 570q84 0 144-53t60-167q0-112-60-166t-144-54q-78 0-157 40t-139 106q-58-66-137-106t-157-40q-86 0-146 54t-60 166q0 114 60 167t146 53q78 0 157-39t137-105q58 66 138 105t158 39z m-590-352q60 0 127 37t113 95q-46 58-112 95t-128 37q-114 0-114-132t114-132z m590 0q114 0 114 132t-114 132q-62 0-129-37t-111-95q44-58 111-95t129-37z" horiz-adv-x="1000" /> - -<glyph glyph-name="erase" unicode="" d="M902 700q42 0 71-29t29-71l0-500q0-40-29-70t-71-30l-478 0q-38 0-70 28l-340 296q-28 26 0 54l340 296q30 26 70 26l478 0z m-140-550l72 74-128 126 128 128-72 72-128-126-128 126-72-72 128-128-128-126 72-74 128 128z" horiz-adv-x="1002" /> - -<glyph glyph-name="chart-pie" unicode="" d="M368 770l0-368-368 0q18 146 121 249t247 119z m106 0q156-20 261-139t105-279q0-174-123-298t-299-124q-160 0-278 105t-140 263l424 0q20 0 35 14t15 36l0 422z" horiz-adv-x="840" /> - -<glyph glyph-name="chart-line" unicode="" d="M34 284q-42 10-32 56 10 42 54 32l98-24-52-80z m890-12q14 12 33 11t31-15q32-32-2-64l-252-226q-12-12-30-12-14 0-28 10l-286 220-54 14 50 80 36-8q12-4 16-8l264-204z m-490 220l-350-550q-12-22-38-22-12 0-24 8-16 10-20 29t6 33l374 588q8 16 28 20 18 6 36-6l246-156 226 326q10 16 28 19t34-9q38-24 12-62l-252-362q-24-36-62-12z" horiz-adv-x="1003" /> - -<glyph glyph-name="chart-bar" unicode="" d="M750 800q22 0 36-15t14-35l0-850-200 0 0 850q0 50 40 50l110 0z m-300-300q22 0 36-15t14-35l0-550-200 0 0 550q0 50 40 50l110 0z m-300-300q22 0 36-15t14-35l0-250-200 0 0 250q0 50 40 50l110 0z" horiz-adv-x="800" /> - -<glyph glyph-name="chart-area" unicode="" d="M964 732q16 22 16-4l0-768-964 0q-12 0-15 7t5 17l230 288q20 22 40 2l74-66q10-8 21-7t17 11l158 238q16 26 38 4l112-104q20-20 38 4z" horiz-adv-x="980" /> - -<glyph glyph-name="tape" unicode="" d="M770 580q96 0 163-67t67-163q0-94-67-162t-163-68l-540 0q-94 0-162 68t-68 162q0 96 68 163t162 67q96 0 163-67t67-163q0-72-40-130l160 0q-40 64-40 130 0 96 68 163t162 67z m-670-230q0-52 38-91t92-39 92 39 38 91q0 54-38 92t-92 38-92-38-38-92z m670-130q54 0 92 39t38 91q0 54-38 92t-92 38-92-38-38-92q0-52 38-91t92-39z" horiz-adv-x="1000" /> - -<glyph glyph-name="graduation-cap" unicode="" d="M166 238l334-168 276 136q-4-22-8-47t-6-35-11-23-24-23-45-22q-40-18-80-41t-63-34-39-11-40 13-64 37-80 40q-72 32-103 69t-47 109z m810 246q24-14 24-33t-24-33l-78-44-308 102q-22 36-90 36-40 0-67-16t-27-40 27-40 67-16q26 0 36 4l292-68-268-152q-60-32-120 0l-416 234q-24 14-24 33t24 33l416 234q60 32 120 0z m-128-442q18 116 13 182t-19 90l-14 22 70 38q6-8 12-28t17-101-7-197q-4-26-22-30t-35 5-15 19z" horiz-adv-x="1000" /> - -<glyph glyph-name="language" unicode="" d="M988 306q30-82-10-176t-134-160q-10 0-12 2t-16 19-16 19q-2 6 2 10 86 60 117 152t-11 148q-16-38-39-76t-59-80-86-65-106-15q-52 6-84 41t-32 93q0 84 60 148 50 50 114 66l-2 100q-140-24-146-24-6-2-10 4 0 2-5 29t-5 31q-2 2 1 4t7 2l156 28q0 110-2 114 0 8 8 8 46 0 52 2 10 0 10-8l0-104q158 22 164 22 8 4 10-6 0-2 4-23t4-25q4-10-4-12l-176-30 0-102 12 0q86 0 148-36t86-100z m-370-160q28-6 62 6l-4 214q-34-12-60-40-44-44-44-108 0-66 46-72z m122 28q28 24 58 68t45 79 7 41q-36 18-96 18-2 0-6-1t-6-1z m-448 382q10-28 53-165t83-261 40-126q0-4-4-4l-86 0q-6 0-6 4l-50 166-176 0q-48-164-50-166 0-4-6-4l-86 0q-4 0-4 4 10 18 176 552 2 8 10 8l96 0q10 0 10-8z m-130-316l144 0-72 264z" horiz-adv-x="1001" /> - -<glyph glyph-name="ticket" unicode="" d="M216 272l326 326 178-178-326-326z m710 244q14-14 14-36t-14-36l-550-550q-16-16-36-16t-36 16l-76 76q12 20 12 48 0 42-29 72t-71 30q-22 0-50-14l-74 76q-16 16-16 36t16 36l550 550q14 14 36 14t36-14l74-76q-12-22-12-48 0-42 30-71t72-29q26 0 48 12z m-532-502l406 406-258 258-408-406z" horiz-adv-x="940" /> - -<glyph glyph-name="water" unicode="" d="M168 844q10-86 50-155t73-123 33-112q0-66-48-113t-114-47-114 47-48 113q0 58 33 112t73 123 50 155q2 4 7 4t5-4z m616 0q10-86 50-155t73-123 33-112q0-66-48-113t-114-47-114 47-48 113q0 48 21 93t48 78 53 92 34 127q2 4 7 4t5-4z m-320-444q2 4 7 4t5-4q10-86 50-155t73-123 33-112q0-66-48-113t-114-47-114 47-48 113q0 58 33 112t73 123 50 155z" horiz-adv-x="940" /> - -<glyph glyph-name="droplet" unicode="" d="M290 822q14-118 60-219t92-159 82-136 36-160q0-114-83-196t-197-82-197 82-83 196q0 82 36 160t82 136 92 159 60 219q2 8 11 8t9-8z m-42-392q2 4-2 14-6 6-14 6t-12-6l-40-58q-32-46-48-70t-34-75-18-101q0-24 17-41t41-17q58 0 58 68 0 94 42 246 2 6 5 17t5 17z" horiz-adv-x="560" /> - -<glyph glyph-name="air" unicode="" d="M85 534q-16-14-36-12t-34 18q-14 14-12 36t18 36q48 40 79 60t89 40 129 4 159-66 155-53 100 16 89 67q38 30 70-6 32-40-6-72-122-110-234-110-100 0-222 70-68 38-119 52t-93 0-65-29-67-51z m736-110q38 32 70-6 32-40-6-72-40-34-65-53t-72-38-97-19q-96 0-222 70-68 38-119 52t-93 0-65-29-67-51q-14-14-35-12t-35 18q-32 40 6 72 38 34 60 50t69 38 88 23 105-15 134-56q68-38 119-52t93 0 65 29 67 51z m0-256q38 32 70-6 14-14 12-36t-18-36q-40-34-65-53t-72-38-97-19q-96 0-222 70-68 38-119 52t-93 1-66-29-66-52q-14-14-35-12t-35 18q-32 40 6 72 38 34 60 50t69 38 88 23 105-15 134-56q68-38 119-52t93 0 65 29 67 51z" horiz-adv-x="905" /> - -<glyph glyph-name="credit-card" unicode="" d="M900 700q42 0 71-30t29-70l0-500q0-42-29-71t-71-29l-800 0q-40 0-70 29t-30 71l0 500q0 40 30 70t70 30l800 0z m0-600l0 300-800 0 0-300 800 0z m0 450l0 50-800 0 0-50 800 0z m-700-256l30 0 0-30-30 0 0 30z m180-60l30 0 0 30 30 0 0 30 60 0 0-30-30 0 0-30-30 0 0-30-60 0 0 30z m120-30l-30 0 0 30 30 0 0-30z m-150 0l-60 0 0 30 60 0 0-30z m30 60l0-30-30 0 0 60 60 0 0-30-30 0z m-120-30l0-30-60 0 0 30 30 0 0 30 30 0 0 30 60 0 0-30-30 0 0-30-30 0z" horiz-adv-x="1000" /> - -<glyph glyph-name="floppy" unicode="" d="M658 750l142-156 0-544q0-40-29-70t-71-30l-600 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l558 0z m-58-300l0 250-400 0 0-250q0-20 15-35t35-15l300 0q20 0 35 15t15 35z m-50 200l0-200-100 0 0 200 100 0z" horiz-adv-x="800" /> - -<glyph glyph-name="clipboard" unicode="" d="M630 750q28 0 49-21t21-49l0-760q0-30-21-50t-49-20l-560 0q-28 0-49 20t-21 50l0 760q0 28 21 49t49 21l60-150 440 0z m-100-100l-360 0-44 100 108 0 36 100 160 0 36-100 110 0z" horiz-adv-x="700" /> - -<glyph glyph-name="megaphone" unicode="" d="M792 500q58-138 67-258t-39-140q-28-12-61 3t-65 40-99 41-149 8q-28-4-42-19t-6-37q22-56 46-108 4-10 24-22t24-20q14-34-22-46-50-22-102-40-30-10-54 42-32 76-58 132-6 12-34 17t-46 31q-30-10-38-14-34-12-74 12t-54 60q-17 32-5 79t43 61q126 52 213 108t124 103 59 92 25 78 15 59 36 36q48 20 130-70t142-228z m-28-300q8 4 10 38t-11 98-41 128q-28 66-67 123t-67 84-36 23-10-42 10-105 40-133 68-119 68-76 36-19z" horiz-adv-x="860" /> - -<glyph glyph-name="database" unicode="" d="M686 208q14 20 14-2l0-100q0-74-104-135t-246-61q-140 0-245 61t-105 135l0 100q0 8 4 10t10-8q32-52 125-86t211-34 211 34 125 86z m2 254q8 16 12 0l0-116q0-68-102-114t-248-46q-144 0-247 46t-103 114l0 116q0 20 14 0 30-46 124-75t212-29 212 29 126 75z m-338 328q144 0 247-39t103-93l0-64q0-58-103-99t-247-41-247 41-103 99l0 64q0 54 103 93t247 39z" horiz-adv-x="700" /> - -<glyph glyph-name="drive" unicode="" d="M884 304q26-44 14-96l-34-184q-2-20-19-35t-39-15l-712 0q-20 0-38 15t-20 35l-34 184q-8 52 14 96l158 374q22 46 72 46l408 0q50 0 74-46z m-68-132q2 22-10 38t-34 16l-644 0q-22 0-34-16t-10-38l14-74q2-22 19-37t39-15l590 0q22 0 39 15t19 37z" horiz-adv-x="902" /> - -<glyph glyph-name="bucket" unicode="" d="M522 780q174 0 286-49t104-105q-6-38-48-307t-44-281q-2-18-37-44t-107-50-154-24-153 24-106 50-37 44q0 2-4 30 82-6 163 35t139 117q28 0 48 20t20 50q0 28-20 49t-50 21q-28 0-49-21t-21-49q0-20 10-36-48-58-115-89t-131-27q-102 10-157 57t-59 109q-8 122 156 184-18 94-22 138-8 56 104 105t284 49z m-452-470q4-32 37-59t91-39l-32 204q-100-44-96-106z m452 212q82 0 157 18t113 39 38 35-38 35-112 39-158 18q-82 0-156-18t-112-39-38-35 38-35 112-39 156-18z" horiz-adv-x="913" /> - -<glyph glyph-name="thermometer" unicode="" d="M400 356q64-36 102-98t38-138q0-112-79-191t-191-79-191 79-79 191q0 76 38 138t102 98l0 444q0 50 40 50l170 0q20 0 35-15t15-35l0-444z m-130-406q70 0 120 50t50 120q0 56-32 100t-84 60l0 370-100 0 0-368q-54-16-89-61t-35-101q0-70 50-120t120-50z" horiz-adv-x="540" /> - -<glyph glyph-name="key" unicode="" d="M774 612q20-116-28-215t-150-117q-66-12-130-2l-118-194-70-12-104-166q-14-28-46-32l-76-14q-12-4-22 4t-12 22l-16 98q-8 30 12 56l258 386q-24 50-38 120-18 106 53 187t185 101q106 20 195-45t107-177z m-126-76q30 44 21 97t-51 83q-42 32-92 22t-80-54q-8-12-12-23t-1-20 5-16 13-17 18-15 22-16 23-17q6-4 22-16t23-16 19-12 19-8 17 1 18 8 16 19z" horiz-adv-x="780" /> - -<glyph glyph-name="flow-cascade" unicode="" d="M520 120q50 0 85-35t35-85-35-85-85-35q-80 0-110 74l-164 0q-88 0-131 54t-43 118l0 464q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-114q0-78 78-78l164 0q30 72 110 72 50 0 85-35t35-85-35-85-85-35q-80 0-110 74l-164 0q-42 0-78 16l0-194q0-78 78-78l164 0q30 72 110 72z m0 300q-28 0-49-20t-21-50q0-28 21-48t49-20 49 20 21 48q0 30-21 50t-49 20z m-470 280q0-28 21-48t49-20 49 20 21 48q0 30-21 50t-49 20-49-20-21-50z m470-768q28 0 49 20t21 48q0 30-21 50t-49 20-49-20-21-50q0-28 21-48t49-20z" horiz-adv-x="640" /> - -<glyph glyph-name="flow-branch" unicode="" d="M640 650q0-80-74-110-6-58-28-101t-61-69-68-38-75-26q-42-14-63-22t-47-24-38-40-16-60q70-30 70-110 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 378q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-204q40 30 138 60 58 18 84 29t51 41 29 76q-70 32-70 108 0 50 35 85t85 35 85-35 35-85z m-588 0q0-28 20-48t48-20 49 20 21 48q0 30-21 50t-49 20-48-20-20-50z m68-668q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z m400 600q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z" horiz-adv-x="640" /> - -<glyph glyph-name="flow-tree" unicode="" d="M868 112q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 114q0 78-76 78l-100 0q-44 0-78 12l0-204q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 204q-30-12-76-12l-100 0q-34 0-53-19t-22-33-3-26l0-114q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 114q0 64 43 118t131 54l100 0q76 0 76 52l0 140q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-140q0-52 78-52l100 0q86 0 129-54t43-118l0-114z m-678-112q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20 49 20 21 48z m212 700q0-28 20-48t48-20 49 20 21 48q0 30-21 50t-49 20-48-20-20-50z m138-700q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20 49 20 21 48z m280-68q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z" horiz-adv-x="940" /> - -<glyph glyph-name="flow-line" unicode="" d="M168 162q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 378q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-378z m-116 488q0-28 20-48t48-20 49 20 21 48q0 30-21 50t-49 20-48-20-20-50z m68-668q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z" horiz-adv-x="240" /> - -<glyph glyph-name="flow-parallel" unicode="" d="M240 650q0-76-72-110l0-378q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 378q-72 34-72 110 0 50 35 85t85 35 85-35 35-85z m-50-600q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20 49 20 21 48z m-70 532q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z m448-420q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 378q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-378z m-116 488q0-28 20-48t48-20 49 20 21 48q0 30-21 50t-49 20-48-20-20-50z m68-668q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z" horiz-adv-x="640" /> - -<glyph glyph-name="rocket" unicode="" d="M543 236q6-50 8-81t-8-59-13-40-35-32-45-26-70-31-85-37q-32-12-45 4t-3 44l40 110-130 132-106-40q-28-12-43 2t-3 46q12 30 31 79t27 65 22 45 25 36 29 20 41 13l52 0t71-6q10 14 29 39t77 85 118 104 145 75 165 19q8 0 14-6 4-4 6-14 10-82-18-168t-76-151-98-118-86-81z m50 296q22-22 54-22t54 22q22 24 22 56t-22 56q-22 22-54 22t-54-22q-22-24-22-56t22-56z" horiz-adv-x="860" /> - -<glyph glyph-name="gauge" unicode="" d="M406 178q34 56 214 284t194 220q12-6-96-278t-138-326q-50-86-136-36t-38 136z m94 380q-168 0-284-127t-116-311q0-30 2-46 2-22-12-37t-34-17-36 12-18 34q0 8-1 26t-1 28q0 226 145 382t355 156q72 0 134-18l-70-86q-40 4-64 4z m362-62q138-154 138-376 0-38-2-56-2-20-16-33t-34-13l-4 0q-22 4-35 20t-11 36q2 14 2 46 0 150-80 268 6 14 20 51t22 57z" horiz-adv-x="1000" /> -</font> -</defs> -</svg> \ No newline at end of file diff --git a/src/mol-plugin-ui/skin/fonts/fontello.ttf b/src/mol-plugin-ui/skin/fonts/fontello.ttf deleted file mode 100644 index 39a234370e14bbf53e699758840b2ea5de8ccede..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49104 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 diff --git a/src/mol-plugin-ui/skin/fonts/fontello.woff b/src/mol-plugin-ui/skin/fonts/fontello.woff deleted file mode 100644 index 674807bae0bb1793ab6274a50737b707d9356fd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29392 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 blb&3>b@0djQfBY>Zfb1e3_NAZUl<qwFnNN= diff --git a/src/mol-plugin-ui/skin/fonts/fontello.woff2 b/src/mol-plugin-ui/skin/fonts/fontello.woff2 deleted file mode 100644 index 49eb9640642432843920fcacac3346c95157ba26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23892 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 P-N$$OZI5MOU|;|Md`MF5 diff --git a/src/mol-plugin-ui/state/actions.tsx b/src/mol-plugin-ui/state/actions.tsx index 547830237..e9c8a0b8d 100644 --- a/src/mol-plugin-ui/state/actions.tsx +++ b/src/mol-plugin-ui/state/actions.tsx @@ -9,6 +9,7 @@ import { State } from '../../mol-state'; import { PluginUIComponent } from '../base'; import { Icon } from '../controls/icons'; import { ApplyActionControl } from './apply-action'; +import { Code } from '@material-ui/icons'; export class StateObjectActions extends PluginUIComponent<{ state: State, nodeRef: string, hideHeader?: boolean, initiallyCollapsed?: boolean, alwaysExpandFirst?: boolean }> { get current() { @@ -41,88 +42,10 @@ export class StateObjectActions extends PluginUIComponent<{ state: State, nodeRe const display = cell.obj ? cell.obj.label : (def.display && def.display.name) || def.name; return <div className='msp-state-actions'> - {!this.props.hideHeader && <div className='msp-section-header'><Icon name='code' /> {`Actions (${display})`}</div> } + {!this.props.hideHeader && <div className='msp-section-header'><Icon svg={Code} /> {`Actions (${display})`}</div> } {actions.map((act, i) => <ApplyActionControl key={`${act.id}`} state={state} action={act} nodeRef={ref} initiallyCollapsed={i === 0 ? !this.props.alwaysExpandFirst && this.props.initiallyCollapsed : this.props.initiallyCollapsed} />)} </div>; } -} - -// interface StateObjectActionSelectProps { -// plugin: PluginContext, -// state: State, -// nodeRef: string -// } - -// interface StateObjectActionSelectState { -// state: State, -// nodeRef: string, -// version: string, -// actions: readonly StateAction[], -// currentActionIndex: number -// } - -// function createStateObjectActionSelectState(props: StateObjectActionSelectProps): StateObjectActionSelectState { -// const cell = props.state.cells.get(props.nodeRef)!; -// const actions = [...props.state.actions.fromCell(cell, props.plugin)]; -// actions.sort((a, b) => a.definition.display.name < b.definition.display.name ? -1 : a.definition.display.name === b.definition.display.name ? 0 : 1); -// return { -// state: props.state, -// nodeRef: props.nodeRef, -// version: cell.transform.version, -// actions, -// currentActionIndex: -1 -// } -// } - -// export class StateObjectActionSelect extends PluginUIComponent<StateObjectActionSelectProps, StateObjectActionSelectState> { -// state = createStateObjectActionSelectState(this.props); - -// get current() { -// return this.plugin.state.behavior.currentObject.value; -// } - -// static getDerivedStateFromProps(props: StateObjectActionSelectProps, state: StateObjectActionSelectState) { -// if (state.state !== props.state || state.nodeRef !== props.nodeRef) return createStateObjectActionSelectState(props); -// const cell = props.state.cells.get(props.nodeRef)!; -// if (cell.transform.version !== state.version) return createStateObjectActionSelectState(props); -// return null; -// } - -// componentDidMount() { -// // TODO: handle tree change: some state actions might become invalid -// // this.subscribe(this.props.state.events.changed, o => { -// // this.setState(createStateObjectActionSelectState(this.props)); -// // }); - -// this.subscribe(this.plugin.events.state.object.updated, ({ ref, state }) => { -// const current = this.current; -// if (current.ref !== ref || current.state !== state) return; -// this.setState(createStateObjectActionSelectState(this.props)); -// }); -// } - -// onChange = (e: React.ChangeEvent<HTMLSelectElement>) => { -// this.setState({ currentActionIndex: parseInt(e.target.value, 10) }); -// } - -// render() { -// const actions = this.state.actions; -// if (actions.length === 0) return null; - -// const current = this.state.currentActionIndex >= 0 && actions[this.state.currentActionIndex]; -// const title = current ? current.definition.display.description : 'Select Action'; - -// return <> -// <div className='msp-contol-row msp-action-select'> -// <select className='msp-form-control' title={title} value={this.state.currentActionIndex} onChange={this.onChange} style={{ fontWeight: 'bold' }}> -// <option key={-1} value={-1} style={{ color: '#999' }}>[ Select Action ]</option> -// {actions.map((a, i) => <option key={i} value={i}>{a.definition.display.name}</option>)} -// </select> -// <Icon name='flow-tree' /> -// </div> -// {current && <ApplyActionControl key={current.id} plugin={this.plugin} state={this.props.state} action={current} nodeRef={this.props.nodeRef} hideHeader />} -// </>; -// } -// } \ No newline at end of file +} \ No newline at end of file diff --git a/src/mol-plugin-ui/state/animation.tsx b/src/mol-plugin-ui/state/animation.tsx index 1ed41d96c..ae55b5c87 100644 --- a/src/mol-plugin-ui/state/animation.tsx +++ b/src/mol-plugin-ui/state/animation.tsx @@ -9,13 +9,14 @@ import { PluginUIComponent } from '../base'; import { ParameterControls, ParamOnChange } from '../controls/parameters'; import { Icon } from '../controls/icons'; import { Button } from '../controls/common'; +import { Code, PlayArrow } from '@material-ui/icons'; export class AnimationControlsWrapper extends PluginUIComponent<{ }> { render() { const anim = this.plugin.state.animation; if (anim.isEmpty) return null; return <div className='msp-controls-section'> - <div className='msp-section-header'><Icon name='code' /> Animations</div> + <div className='msp-section-header'><Icon svg={Code} /> Animations</div> <AnimationControls /> </div>; } @@ -54,7 +55,7 @@ export class AnimationControls extends PluginUIComponent<{ onStart?: () => void <ParameterControls params={anim.current.params} values={anim.current.paramValues} onChange={this.updateCurrentParams} isDisabled={isDisabled} /> <div className='msp-flex-row'> - <Button icon={anim.state.animationState !== 'playing' ? void 0 : 'play'} onClick={this.startOrStop}> + <Button icon={anim.state.animationState !== 'playing' ? void 0 : PlayArrow} onClick={this.startOrStop}> {anim.state.animationState === 'playing' ? 'Stop' : 'Start'} </Button> </div> diff --git a/src/mol-plugin-ui/state/common.tsx b/src/mol-plugin-ui/state/common.tsx index 064a11598..3665d51aa 100644 --- a/src/mol-plugin-ui/state/common.tsx +++ b/src/mol-plugin-ui/state/common.tsx @@ -11,8 +11,9 @@ import { ParameterControls, ParamOnChange } from '../controls/parameters'; import { PluginContext } from '../../mol-plugin/context'; import { ParamDefinition as PD } from '../../mol-util/param-definition'; import { Subject } from 'rxjs'; -import { Icon, IconName } from '../controls/icons'; -import { ExpandGroup, ToggleButton, Button } from '../controls/common'; +import { Icon } from '../controls/icons'; +import { ExpandGroup, ToggleButton, Button, IconButton } from '../controls/common'; +import { Refresh, ArrowRight, ArrowDropDown, Check, Tune } from '@material-ui/icons'; export { StateTransformParameters, TransformControlBase }; @@ -101,7 +102,7 @@ namespace TransformControlBase { } export interface CommonProps { - simpleApply?: { header: string, icon: IconName, title?: string }, + simpleApply?: { header: string, icon?: React.FC, title?: string }, noMargin?: boolean, applyLabel?: string, onApply?: () => void, @@ -194,13 +195,9 @@ abstract class TransformControlBase<P, S extends TransformControlBase.ComponentS if (this.props.autoHideApply && (!canApply || this.canAutoApply(this.state.params))) return null; return <div className='msp-transform-apply-wrap'> - <button className='msp-btn msp-btn-block msp-form-control msp-transform-default-params' onClick={this.setDefault} disabled={this.state.busy} title='Set default params'><Icon name='cw' /></button> - {/* {showBack && <Button className='msp-btn msp-btn-block msp-form-control msp-transform-refresh msp-form-control' title='Refresh params' onClick={this.refresh} disabled={this.state.busy || this.state.isInitial}> - <Icon name='back' /> Back - </Button>} - <div className={`msp-transform-apply${!showBack ? ' msp-transform-apply-wider' : ''}`}> */} + <IconButton svg={Refresh} className='msp-transform-default-params' onClick={this.setDefault} disabled={this.state.busy} title='Set default params' /> <div className={`msp-transform-apply-wider`}> - <Button icon={canApply ? 'ok' : void 0} className={`msp-btn-commit msp-btn-commit-${canApply ? 'on' : 'off'}`} onClick={this.apply} disabled={!canApply}> + <Button icon={canApply ? Check : void 0} className={`msp-btn-commit msp-btn-commit-${canApply ? 'on' : 'off'}`} onClick={this.apply} disabled={!canApply}> {this.props.applyLabel || this.applyText()} </Button> </div> @@ -235,7 +232,7 @@ abstract class TransformControlBase<P, S extends TransformControlBase.ComponentS const ctrl = <div className={wrapClass} style={{ marginBottom: this.props.noMargin ? 0 : void 0 }}> {display !== 'none' && !this.props.wrapInExpander && <div className='msp-transform-header'> <Button onClick={this.toggleExpanded} title={display.description}> - {!isEmpty && <Icon name={this.state.isCollapsed ? 'expand' : 'collapse'} />} + {!isEmpty && <Icon svg={this.state.isCollapsed ? ArrowRight : ArrowDropDown} />} {display.name} </Button> </div>} @@ -256,7 +253,7 @@ abstract class TransformControlBase<P, S extends TransformControlBase.ComponentS <Button icon={this.props.simpleApply?.icon} title={this.props.simpleApply?.title} disabled={this.state.busy || !canApply} onClick={this.apply} style={{ textAlign: 'left' }}> {this.props.simpleApply?.header} </Button> - {!info.isEmpty && <ToggleButton icon='cog' label='' title='Options' toggle={this.toggleExpanded} isSelected={!this.state.isCollapsed} disabled={this.state.busy} style={{ flex: '0 0 40px', padding: 0 }} />} + {!info.isEmpty && <ToggleButton icon={Tune} label='' title='Options' toggle={this.toggleExpanded} isSelected={!this.state.isCollapsed} disabled={this.state.busy} style={{ flex: '0 0 40px', padding: 0 }} />} </div>; if (this.state.isCollapsed) return apply; diff --git a/src/mol-plugin-ui/state/snapshots.tsx b/src/mol-plugin-ui/state/snapshots.tsx index a3e425c64..eadb440fe 100644 --- a/src/mol-plugin-ui/state/snapshots.tsx +++ b/src/mol-plugin-ui/state/snapshots.tsx @@ -16,6 +16,7 @@ import { urlCombine } from '../../mol-util/url'; import { IconButton, SectionHeader, Button } from '../controls/common'; import { formatTimespan } from '../../mol-util/now'; import { PluginConfig } from '../../mol-plugin/config'; +import { ArrowUpward, SwapHoriz, Delete, ArrowDownward, CloudUpload, Save } from '@material-ui/icons'; export class StateSnapshots extends PluginUIComponent<{ }> { downloadToFile = () => { @@ -30,7 +31,7 @@ export class StateSnapshots extends PluginUIComponent<{ }> { render() { return <div> - <SectionHeader icon='floppy' title='Plugin State' /> + <SectionHeader icon={Save} title='Plugin State' /> <LocalStateSnapshots /> <LocalStateSnapshotList /> {this.plugin.spec.components?.remoteState !== 'none' && <RemoteStateSnapshots />} @@ -147,10 +148,10 @@ class LocalStateSnapshotList extends PluginUIComponent<{ }, { }> { </small> </Button> <div> - <IconButton data-id={e!.snapshot.id} icon='up-thin' title='Move Up' onClick={this.moveUp} small={true} /> - <IconButton data-id={e!.snapshot.id} icon='down-thin' title='Move Down' onClick={this.moveDown} small={true} /> - <IconButton data-id={e!.snapshot.id} icon='switch' title='Replace' onClick={this.replace} small={true} /> - <IconButton data-id={e!.snapshot.id} icon='remove' title='Remove' onClick={this.remove} small={true} /> + <IconButton svg={ArrowUpward} data-id={e!.snapshot.id} title='Move Up' onClick={this.moveUp} small={true} /> + <IconButton svg={ArrowDownward} data-id={e!.snapshot.id} title='Move Down' onClick={this.moveDown} small={true} /> + <IconButton svg={SwapHoriz} data-id={e!.snapshot.id} title='Replace' onClick={this.replace} small={true} /> + <IconButton svg={Delete} data-id={e!.snapshot.id} title='Remove' onClick={this.remove} small={true} /> </div> </li>)} </ul>; @@ -275,7 +276,7 @@ export class RemoteStateSnapshots extends PluginUIComponent< this.setState({ params: { ...this.state.params, [p.name]: p.value } } as any); }} isDisabled={this.state.isBusy}/> <div className='msp-flex-row'> - <Button icon='upload' onClick={this.upload} disabled={this.state.isBusy}>Upload</Button> + <Button icon={CloudUpload} onClick={this.upload} disabled={this.state.isBusy}>Upload</Button> <Button onClick={this.refresh} disabled={this.state.isBusy}>Refresh</Button> </div> </>} @@ -319,7 +320,7 @@ class RemoteStateSnapshotList extends PurePluginUIComponent< disabled={this.props.isBusy} onContextMenu={this.open} title='Click to download, right-click to open in a new tab.'> {e!.name || new Date(e!.timestamp).toLocaleString()} <small>{e!.description}</small> </Button> - {!e!.isSticky && this.props.remove && <IconButton data-id={e!.id} icon='remove' title='Remove' onClick={this.props.remove} disabled={this.props.isBusy} small />} + {!e!.isSticky && this.props.remove && <IconButton svg={Delete} data-id={e!.id} title='Remove' onClick={this.props.remove} disabled={this.props.isBusy} small />} </li>)} </ul>; } diff --git a/src/mol-plugin-ui/state/tree.tsx b/src/mol-plugin-ui/state/tree.tsx index 93f23a127..bbeb9f9df 100644 --- a/src/mol-plugin-ui/state/tree.tsx +++ b/src/mol-plugin-ui/state/tree.tsx @@ -4,18 +4,19 @@ * @author David Sehnal <david.sehnal@gmail.com> */ +import { ArrowDropDown, ArrowRight, Delete, Home, Visibility, Close } from '@material-ui/icons'; import * as React from 'react'; +import { debounceTime, filter } from 'rxjs/operators'; import { PluginStateObject } from '../../mol-plugin-state/objects'; -import { State, StateTree as _StateTree, StateObject, StateTransform, StateObjectCell, StateAction } from '../../mol-state'; import { PluginCommands } from '../../mol-plugin/commands'; +import { State, StateAction, StateObject, StateObjectCell, StateTransform } from '../../mol-state'; +import { StateTreeSpine } from '../../mol-state/tree/spine'; import { PluginUIComponent, _Props, _State } from '../base'; -import { Icon } from '../controls/icons'; import { ActionMenu } from '../controls/action-menu'; +import { Button, ControlGroup, IconButton } from '../controls/common'; +import { Icon } from '../controls/icons'; import { ApplyActionControl } from './apply-action'; -import { ControlGroup, IconButton, Button } from '../controls/common'; import { UpdateTransformControl } from './update-transform'; -import { StateTreeSpine } from '../../mol-state/tree/spine'; -import { debounceTime, filter } from 'rxjs/operators'; export class StateTree extends PluginUIComponent<{ state: State }, { showActions: boolean }> { state = { showActions: true }; @@ -43,7 +44,7 @@ export class StateTree extends PluginUIComponent<{ state: State }, { showActions if (this.state.showActions) { return <div style={{ margin: '10px', cursor: 'default' }}> <p>Nothing to see here.</p> - <p>Structures can be loaded from the <Icon name='home' /> tab.</p> + <p>Structures can be loaded from the <Icon svg={Home} /> tab.</p> </div>; } return <StateTreeNode cell={this.props.state.cells.get(ref)!} depth={0} />; @@ -297,9 +298,9 @@ class StateTreeNodeLabel extends PluginUIComponent<{ cell: StateObjectCell, dept const children = cell.parent!.tree.children.get(this.ref); const cellState = cell.state; - const expand = <IconButton icon={cellState.isCollapsed ? 'expand' : 'collapse'} flex='20px' disabled={disabled} onClick={this.toggleExpanded} transparent className='msp-no-hover-outline' style={{ visibility: children.size > 0 ? 'visible' : 'hidden' }} />; - const remove = !cell.state.isLocked ? <IconButton icon='remove' onClick={this.remove} disabled={disabled} small toggleState={false} /> : void 0; - const visibility = <IconButton icon='visual-visibility' toggleState={!cellState.isHidden} disabled={disabled} small onClick={this.toggleVisible} />; + const expand = <IconButton svg={cellState.isCollapsed ? ArrowRight : ArrowDropDown} flex='20px' disabled={disabled} onClick={this.toggleExpanded} transparent className='msp-no-hover-outline' style={{ visibility: children.size > 0 ? 'visible' : 'hidden' }} />; + const remove = !cell.state.isLocked ? <IconButton svg={Delete} onClick={this.remove} disabled={disabled} small toggleState={false} /> : void 0; + const visibility = <IconButton svg={Visibility} toggleState={!cellState.isHidden} disabled={disabled} small onClick={this.toggleVisible} />; const marginStyle: React.CSSProperties = { marginLeft: `${this.props.depth * 8}px` @@ -317,7 +318,7 @@ class StateTreeNodeLabel extends PluginUIComponent<{ cell: StateObjectCell, dept if (this.state.action === 'apply' && this.state.currentAction) { return <div style={{ marginBottom: '1px' }}> {row} - <ControlGroup header={`Apply ${this.state.currentAction.definition.display.name}`} initialExpanded={true} hideExpander={true} hideOffset={false} onHeaderClick={this.hideApply} topRightIcon='off' headerLeftMargin={`${this.props.depth * 8 + 21}px`}> + <ControlGroup header={`Apply ${this.state.currentAction.definition.display.name}`} initialExpanded={true} hideExpander={true} hideOffset={false} onHeaderClick={this.hideApply} topRightIcon={Close} headerLeftMargin={`${this.props.depth * 8 + 21}px`}> <ApplyActionControl onApply={this.hideApply} state={this.props.cell.parent!} action={this.state.currentAction} nodeRef={this.props.cell.transform.ref} hideHeader noMargin /> </ControlGroup> </div>; diff --git a/src/mol-plugin-ui/structure/components.tsx b/src/mol-plugin-ui/structure/components.tsx index 76ffe5036..c6325bcc8 100644 --- a/src/mol-plugin-ui/structure/components.tsx +++ b/src/mol-plugin-ui/structure/components.tsx @@ -4,19 +4,21 @@ * @author David Sehnal <david.sehnal@gmail.com> */ +import { Add, BookmarksOutlined, Delete, MoreHoriz, Tune, Undo, Visibility } from '@material-ui/icons'; import * as React from 'react'; +import { getStructureThemeTypes } from '../../mol-plugin-state/helpers/structure-representation-params'; import { StructureComponentManager } from '../../mol-plugin-state/manager/structure/component'; -import { StructureComponentRef, StructureRepresentationRef, StructureRef } from '../../mol-plugin-state/manager/structure/hierarchy-state'; +import { StructureHierarchyManager } from '../../mol-plugin-state/manager/structure/hierarchy'; +import { StructureComponentRef, StructureRef, StructureRepresentationRef } from '../../mol-plugin-state/manager/structure/hierarchy-state'; import { PluginCommands } from '../../mol-plugin/commands'; import { State } from '../../mol-state'; import { ParamDefinition } from '../../mol-util/param-definition'; import { CollapsableControls, CollapsableState, PurePluginUIComponent } from '../base'; import { ActionMenu } from '../controls/action-menu'; -import { ExpandGroup, IconButton, ToggleButton, Button } from '../controls/common'; +import { Button, ExpandGroup, IconButton, ToggleButton } from '../controls/common'; +import { Intersect, SetSvg, Subtract, Union } from '../controls/icons'; import { ParameterControls } from '../controls/parameters'; import { UpdateTransformControl } from '../state/update-transform'; -import { getStructureThemeTypes } from '../../mol-plugin-state/helpers/structure-representation-params'; -import { StructureHierarchyManager } from '../../mol-plugin-state/manager/structure/hierarchy'; import { GenericEntryListControls } from './generic'; interface StructureComponentControlState extends CollapsableState { @@ -115,10 +117,10 @@ class ComponentEditorControls extends PurePluginUIComponent<{}, ComponentEditorC : 'Some mistakes of the past can be undone.'; return <> <div className='msp-flex-row'> - <ToggleButton icon='bookmarks' label='Preset' title='Apply a representation preset for the current structure(s).' toggle={this.togglePreset} isSelected={this.state.action === 'preset'} disabled={this.isDisabled} /> - <ToggleButton icon='plus' label='Add' title='Add a new representation component for a selection.' toggle={this.toggleAdd} isSelected={this.state.action === 'add'} disabled={this.isDisabled} /> - <ToggleButton icon='cog' label='' title='Options that are applied to all applicable representations.' style={{ flex: '0 0 40px', padding: 0 }} toggle={this.toggleOptions} isSelected={this.state.action === 'options'} disabled={this.isDisabled} /> - <IconButton className='msp-flex-item' flex='40px' onClick={this.undo} disabled={!this.state.canUndo || this.isDisabled} icon='back' title={undoTitle} /> + <ToggleButton icon={BookmarksOutlined} label='Preset' title='Apply a representation preset for the current structure(s).' toggle={this.togglePreset} isSelected={this.state.action === 'preset'} disabled={this.isDisabled} /> + <ToggleButton icon={Add} label='Add' title='Add a new representation component for a selection.' toggle={this.toggleAdd} isSelected={this.state.action === 'add'} disabled={this.isDisabled} /> + <ToggleButton icon={Tune} label='' title='Options that are applied to all applicable representations.' style={{ flex: '0 0 40px', padding: 0 }} toggle={this.toggleOptions} isSelected={this.state.action === 'options'} disabled={this.isDisabled} /> + <IconButton svg={Undo} className='msp-flex-item' flex='40px' onClick={this.undo} disabled={!this.state.canUndo || this.isDisabled} title={undoTitle} /> </div> {this.state.action === 'preset' && this.presetControls} {this.state.action === 'add' && <div className='msp-control-offset'> @@ -163,7 +165,7 @@ class AddComponentControls extends PurePluginUIComponent<AddComponentControlsPro render() { return <> <ParameterControls params={this.state.params} values={this.state.values} onChangeValues={this.paramsChanged} /> - <Button icon='plus' title='Use Selection and optional Representation to create a new Component.' className='msp-btn-commit msp-btn-commit-on' onClick={this.apply} style={{ marginTop: '1px' }}> + <Button icon={Add} title='Use Selection and optional Representation to create a new Component.' className='msp-btn-commit msp-btn-commit-on' onClick={this.apply} style={{ marginTop: '1px' }}> Create Component </Button> </>; @@ -253,13 +255,13 @@ class StructureComponentGroup extends PurePluginUIComponent<{ group: StructureCo if (mng.canBeModified(this.props.group[0])) { ret.push([ ActionMenu.Header('Modify by Selection'), - ActionMenu.Item('Include', () => mng.modifyByCurrentSelection(this.props.group, 'union'), { icon: 'union' }), - ActionMenu.Item('Subtract', () => mng.modifyByCurrentSelection(this.props.group, 'subtract'), { icon: 'subtract' }), - ActionMenu.Item('Intersect', () => mng.modifyByCurrentSelection(this.props.group, 'intersect'), { icon: 'intersect' }) + ActionMenu.Item('Include', () => mng.modifyByCurrentSelection(this.props.group, 'union'), { icon: Union }), + ActionMenu.Item('Subtract', () => mng.modifyByCurrentSelection(this.props.group, 'subtract'), { icon: Subtract }), + ActionMenu.Item('Intersect', () => mng.modifyByCurrentSelection(this.props.group, 'intersect'), { icon: Intersect }) ]); } - ret.push(ActionMenu.Item('Select This', () => mng.selectThis(this.props.group), { icon: 'set' })); + ret.push(ActionMenu.Item('Select This', () => mng.selectThis(this.props.group), { icon: SetSvg })); return ret; } @@ -272,7 +274,7 @@ class StructureComponentGroup extends PurePluginUIComponent<{ group: StructureCo get removeActions(): ActionMenu.Items { const ret = [ - ActionMenu.Item('Remove', () => this.plugin.managers.structure.hierarchy.remove(this.props.group, true), { icon: 'remove' }) + ActionMenu.Item('Remove', () => this.plugin.managers.structure.hierarchy.remove(this.props.group, true), { icon: Delete }) ]; const reprs = this.pivot.representations; @@ -280,7 +282,7 @@ class StructureComponentGroup extends PurePluginUIComponent<{ group: StructureCo return ret; } - ret.push(ActionMenu.Item(`Remove Representation${reprs.length > 1 ? 's' : ''}`, () => this.plugin.managers.structure.component.removeRepresentations(this.props.group), { icon: 'remove' })); + ret.push(ActionMenu.Item(`Remove Representation${reprs.length > 1 ? 's' : ''}`, () => this.plugin.managers.structure.component.removeRepresentations(this.props.group), { icon: Delete })); return ret; } @@ -343,9 +345,9 @@ class StructureComponentGroup extends PurePluginUIComponent<{ group: StructureCo {label} <small className='msp-25-lower-contrast-text' style={{ float: 'right' }}>{reprLabel}</small> </Button> - <IconButton onClick={this.toggleVisible} icon='visual-visibility' toggleState={!cell.state.isHidden} title={`${cell.state.isHidden ? 'Show' : 'Hide'} component`} small className='msp-form-control' flex /> - <IconButton onClick={this.toggleRemove} icon='remove' title='Remove' small toggleState={this.state.action === 'remove'} className='msp-form-control' flex /> - <IconButton onClick={this.toggleAction} icon='dot-3' title='Actions' toggleState={this.state.action === 'action'} className='msp-form-control' flex /> + <IconButton svg={Visibility} onClick={this.toggleVisible} toggleState={!cell.state.isHidden} title={`${cell.state.isHidden ? 'Show' : 'Hide'} component`} small className='msp-form-control' flex /> + <IconButton svg={Delete} onClick={this.toggleRemove} title='Remove' small toggleState={this.state.action === 'remove'} className='msp-form-control' flex /> + <IconButton svg={MoreHoriz} onClick={this.toggleAction} title='Actions' toggleState={this.state.action === 'action'} className='msp-form-control' flex /> </div> {this.state.action === 'remove' && <div style={{ marginBottom: '6px' }}> <ActionMenu items={this.removeActions} onSelect={this.selectRemoveAction} /> @@ -384,10 +386,10 @@ class StructureRepresentationEntry extends PurePluginUIComponent<{ group: Struct {repr.parent && <ExpandGroup header={`${repr.obj?.label || ''} Representation`} noOffset> <UpdateTransformControl state={repr.parent} transform={repr.transform} customHeader='none' customUpdate={this.update} noMargin /> </ExpandGroup>} - <IconButton onClick={this.remove} icon='remove' title='Remove' small className='msp-default-bg' style={{ + <IconButton svg={Delete} onClick={this.remove} title='Remove' small className='msp-default-bg' style={{ position: 'absolute', top: 0, right: '32px', lineHeight: '24px', height: '24px', textAlign: 'right', width: '44px', paddingRight: '6px' }} /> - <IconButton onClick={this.toggleVisible} toggleState={!this.props.representation.cell.state.isHidden} icon='visual-visibility' title='Remove' small className='msp-default-bg' style={{ + <IconButton svg={Visibility} onClick={this.toggleVisible} toggleState={!this.props.representation.cell.state.isHidden} title='Remove' small className='msp-default-bg' style={{ position: 'absolute', top: 0, right: 0, lineHeight: '24px', height: '24px', textAlign: 'right', width: '32px', paddingRight: '6px' }} /> </div>; diff --git a/src/mol-plugin-ui/structure/focus.tsx b/src/mol-plugin-ui/structure/focus.tsx index e6650ce7e..cd495dd00 100644 --- a/src/mol-plugin-ui/structure/focus.tsx +++ b/src/mol-plugin-ui/structure/focus.tsx @@ -4,21 +4,22 @@ * @author Alexander Rose <alexander.rose@weirdbyte.de> */ +import { CenterFocusStrong, Clear } from '@material-ui/icons'; import * as React from 'react'; -import { PluginUIComponent } from '../base'; -import { ToggleButton, IconButton, Button } from '../controls/common'; -import { ActionMenu } from '../controls/action-menu'; -import { StructureElement, StructureProperties, Structure, Unit } from '../../mol-model/structure'; import { OrderedSet, SortedArray } from '../../mol-data/int'; +import { MmcifFormat } from '../../mol-model-formats/structure/mmcif'; +import { Structure, StructureElement, StructureProperties, Unit } from '../../mol-model/structure'; import { UnitIndex } from '../../mol-model/structure/structure/element/element'; import { FocusEntry } from '../../mol-plugin-state/manager/structure/focus'; -import { lociLabel } from '../../mol-theme/label'; +import { StructureRef } from '../../mol-plugin-state/manager/structure/hierarchy-state'; import { FocusLoci } from '../../mol-plugin/behavior/dynamic/representation'; import { StateTransform } from '../../mol-state'; +import { lociLabel } from '../../mol-theme/label'; import { Binding } from '../../mol-util/binding'; import { memoizeLatest } from '../../mol-util/memoize'; -import { StructureRef } from '../../mol-plugin-state/manager/structure/hierarchy-state'; -import { MmcifFormat } from '../../mol-model-formats/structure/mmcif'; +import { PluginUIComponent } from '../base'; +import { ActionMenu } from '../controls/action-menu'; +import { Button, IconButton, ToggleButton } from '../controls/common'; interface StructureFocusControlsState { isBusy: boolean @@ -234,8 +235,8 @@ export class StructureFocusControls extends PluginUIComponent<{}, StructureFocus style={{ textAlignLast: current ? 'left' : void 0 }}> {label} </Button> - {current && <IconButton onClick={this.clear} icon='cancel' title='Clear' className='msp-form-control' flex disabled={this.isDisabled} />} - <ToggleButton icon='book-open' title='Select a focus target to center on an show its surroundings. Hold shift to focus on multiple targets.' toggle={this.toggleAction} isSelected={this.state.showAction} disabled={this.isDisabled} style={{ flex: '0 0 40px', padding: 0 }} /> + {current && <IconButton svg={Clear} onClick={this.clear} title='Clear' className='msp-form-control' flex disabled={this.isDisabled} />} + <ToggleButton icon={CenterFocusStrong} title='Select a focus target to center on an show its surroundings. Hold shift to focus on multiple targets.' toggle={this.toggleAction} isSelected={this.state.showAction} disabled={this.isDisabled} style={{ flex: '0 0 40px', padding: 0 }} /> </div> {this.state.showAction && <ActionMenu items={this.actionItems} onSelect={this.selectAction} />} </>; diff --git a/src/mol-plugin-ui/structure/generic.tsx b/src/mol-plugin-ui/structure/generic.tsx index 9f9acfcaf..a4058e722 100644 --- a/src/mol-plugin-ui/structure/generic.tsx +++ b/src/mol-plugin-ui/structure/generic.tsx @@ -12,6 +12,7 @@ import { State } from '../../mol-state'; import { PurePluginUIComponent } from '../base'; import { IconButton } from '../controls/common'; import { UpdateTransformControl } from '../state/update-transform'; +import { Visibility, MoreHoriz } from '@material-ui/icons'; export class GenericEntryListControls extends PurePluginUIComponent { get current() { @@ -140,8 +141,8 @@ export class GenericEntry<T extends HierarchyRef> extends PurePluginUIComponent< <button className='msp-form-control msp-control-button-label' title={`${label}. Click to focus.`} onClick={this.focus} onMouseEnter={this.highlight} onMouseLeave={this.clearHighlight} style={{ textAlign: 'left' }}> {label} <small>{description}</small> </button> - <IconButton className='msp-form-control' onClick={this.toggleVisibility} icon='visual-visibility' toggleState={!pivot.cell.state.isHidden} title={`${pivot.cell.state.isHidden ? 'Show' : 'Hide'}`} small flex /> - {refs.length === 1 && <IconButton className='msp-form-control' onClick={this.toggleOptions} icon='dot-3' title='Options' toggleState={this.state.showOptions} flex />} + <IconButton svg={Visibility} className='msp-form-control' onClick={this.toggleVisibility} toggleState={!pivot.cell.state.isHidden} title={`${pivot.cell.state.isHidden ? 'Show' : 'Hide'}`} small flex /> + {refs.length === 1 && <IconButton svg={MoreHoriz} className='msp-form-control' onClick={this.toggleOptions} title='Options' toggleState={this.state.showOptions} flex />} </div> {(refs.length === 1 && this.state.showOptions && pivot.cell.parent) && <> <div className='msp-control-offset'> diff --git a/src/mol-plugin-ui/structure/measurements.tsx b/src/mol-plugin-ui/structure/measurements.tsx index 6bab12c4f..44ea6e9ad 100644 --- a/src/mol-plugin-ui/structure/measurements.tsx +++ b/src/mol-plugin-ui/structure/measurements.tsx @@ -17,9 +17,10 @@ import { FiniteArray } from '../../mol-util/type-helpers'; import { PurePluginUIComponent, CollapsableControls } from '../base'; import { ActionMenu } from '../controls/action-menu'; import { ExpandGroup, IconButton, ToggleButton, Button } from '../controls/common'; -import { Icon } from '../controls/icons'; +import { Icon, SetSvg } from '../controls/icons'; import { ParameterControls } from '../controls/parameters'; import { UpdateTransformControl } from '../state/update-transform'; +import { ArrowUpward, ArrowDownward, Delete, Visibility, Remove, MoreHoriz, HelpOutline, Add, Tune } from '@material-ui/icons'; // TODO details, options (e.g. change text for labels) @@ -142,9 +143,9 @@ export class MeasurementControls extends PurePluginUIComponent<{}, { isBusy: boo <Button noOverflow title='Click to focus. Hover to highlight.' onClick={() => this.focusLoci(e.loci)} style={{ width: 'auto', textAlign: 'left' }} onMouseEnter={() => this.highlight(e.loci)} onMouseLeave={this.plugin.managers.interactivity.lociHighlights.clearHighlights}> {idx}. <span dangerouslySetInnerHTML={{ __html: e.label }} /> </Button> - {history.length > 1 && <IconButton small={true} className='msp-form-control' onClick={() => this.moveHistory(e, 'up')} icon='up-thin' flex='20px' title={'Move up'} />} - {history.length > 1 && <IconButton small={true} className='msp-form-control' onClick={() => this.moveHistory(e, 'down')} icon='down-thin' flex='20px' title={'Move down'} />} - <IconButton small={true} className='msp-form-control' onClick={() => this.plugin.managers.structure.selection.modifyHistory(e, 'remove')} icon='remove' flex title={'Remove'} /> + {history.length > 1 && <IconButton svg={ArrowUpward} small={true} className='msp-form-control' onClick={() => this.moveHistory(e, 'up')} flex='20px' title={'Move up'} />} + {history.length > 1 && <IconButton svg={ArrowDownward} small={true} className='msp-form-control' onClick={() => this.moveHistory(e, 'down')} flex='20px' title={'Move down'} />} + <IconButton svg={Delete} small={true} className='msp-form-control' onClick={() => this.plugin.managers.structure.selection.modifyHistory(e, 'remove')} flex title={'Remove'} /> </div>; } @@ -162,7 +163,7 @@ export class MeasurementControls extends PurePluginUIComponent<{}, { isBusy: boo {entries} </div>} {entries.length === 0 && <div className='msp-control-offset msp-help-text'> - <div className='msp-help-description'><Icon name='help-circle' />Add one or more selections</div> + <div className='msp-help-description'><Icon svg={HelpOutline} />Add one or more selections</div> </div>} </>; } @@ -170,8 +171,8 @@ export class MeasurementControls extends PurePluginUIComponent<{}, { isBusy: boo render() { return <> <div className='msp-flex-row'> - <ToggleButton icon='plus' label='Add' toggle={this.toggleAdd} isSelected={this.state.action === 'add'} disabled={this.state.isBusy} style={{ textAlign: 'left' }} /> - <ToggleButton icon='cog' label='' title='Options' toggle={this.toggleOptions} isSelected={this.state.action === 'options'} disabled={this.state.isBusy} style={{ flex: '0 0 40px', padding: 0 }} /> + <ToggleButton icon={Add} label='Add' toggle={this.toggleAdd} isSelected={this.state.action === 'add'} disabled={this.state.isBusy} style={{ textAlign: 'left' }} /> + <ToggleButton icon={Tune} label='' title='Options' toggle={this.toggleOptions} isSelected={this.state.action === 'options'} disabled={this.state.isBusy} style={{ flex: '0 0 40px', padding: 0 }} /> </div> {this.state.action === 'add' && this.add()} {this.state.action === 'options' && <MeasurementsOptions />} @@ -269,7 +270,7 @@ class MeasurementEntry extends PurePluginUIComponent<{ cell: StructureMeasuremen get actions(): ActionMenu.Items { this.props.cell.sourceRef; - return [ActionMenu.Item('Select This', () => this.plugin.managers.structure.selection.fromSelections(this.props.cell.sourceRef!), { icon: 'set' })]; + return [ActionMenu.Item('Select This', () => this.plugin.managers.structure.selection.fromSelections(this.props.cell.sourceRef!), { icon: SetSvg })]; } selectAction: ActionMenu.OnSelect = item => { @@ -288,9 +289,9 @@ class MeasurementEntry extends PurePluginUIComponent<{ cell: StructureMeasuremen <button className='msp-form-control msp-control-button-label msp-no-overflow' title='Click to focus. Hover to highlight.' onClick={this.focus} style={{ width: 'auto', textAlign: 'left' }}> <span dangerouslySetInnerHTML={{ __html: this.label }} /> </button> - <IconButton small className='msp-form-control' onClick={this.toggleVisibility} icon='eye' flex title={cell.state.isHidden ? 'Show' : 'Hide'} toggleState={!cell.state.isHidden} /> - <IconButton small className='msp-form-control' onClick={this.delete} icon='remove' flex title='Delete' /> - <IconButton className='msp-form-control' onClick={this.toggleUpdate} icon='dot-3' flex title='Actions' toggleState={this.state.showUpdate} /> + <IconButton svg={Visibility} small className='msp-form-control' onClick={this.toggleVisibility} flex title={cell.state.isHidden ? 'Show' : 'Hide'} toggleState={!cell.state.isHidden} /> + <IconButton svg={Remove} small className='msp-form-control' onClick={this.delete} flex title='Delete' /> + <IconButton svg={MoreHoriz} className='msp-form-control' onClick={this.toggleUpdate} flex title='Actions' toggleState={this.state.showUpdate} /> </div> {this.state.showUpdate && cell.parent && <> <div className='msp-accent-offset'> diff --git a/src/mol-plugin-ui/structure/selection.tsx b/src/mol-plugin-ui/structure/selection.tsx index 000f44cf5..d769f75ce 100644 --- a/src/mol-plugin-ui/structure/selection.tsx +++ b/src/mol-plugin-ui/structure/selection.tsx @@ -5,8 +5,10 @@ * @author David Sehnal <david.sehnal@gmail.com> */ +import { Close, Clear, Brush } from '@material-ui/icons'; import * as React from 'react'; import { StructureSelectionQueries, StructureSelectionQuery } from '../../mol-plugin-state/helpers/structure-selection-query'; +import { InteractivityManager } from '../../mol-plugin-state/manager/interactivity'; import { StructureComponentManager } from '../../mol-plugin-state/manager/structure/component'; import { StructureRef } from '../../mol-plugin-state/manager/structure/hierarchy-state'; import { StructureSelectionModifier } from '../../mol-plugin-state/manager/structure/selection'; @@ -17,7 +19,7 @@ import { PluginUIComponent, PurePluginUIComponent } from '../base'; import { ActionMenu } from '../controls/action-menu'; import { Button, ControlGroup, IconButton, ToggleButton } from '../controls/common'; import { ParameterControls, ParamOnChange, PureSelectControl } from '../controls/parameters'; -import { InteractivityManager } from '../../mol-plugin-state/manager/interactivity'; +import { Union, Subtract, Intersect, SetSvg as SetSvg } from '../controls/icons'; const StructureSelectionParams = { granularity: InteractivityManager.Params.granularity, @@ -177,19 +179,19 @@ export class StructureSelectionActionsControls extends PluginUIComponent<{}, Str const granularity = this.plugin.managers.interactivity.props.granularity; return <> <div className='msp-flex-row'> - <ToggleButton icon='union' title={ActionHeader.get('add')} toggle={this.toggleAdd} isSelected={this.state.action === 'add'} disabled={this.isDisabled} /> - <ToggleButton icon='subtract' title={ActionHeader.get('remove')} toggle={this.toggleRemove} isSelected={this.state.action === 'remove'} disabled={this.isDisabled} /> - <ToggleButton icon='intersect' title={ActionHeader.get('intersect')} toggle={this.toggleIntersect} isSelected={this.state.action === 'intersect'} disabled={this.isDisabled} /> - <ToggleButton icon='set' title={ActionHeader.get('set')} toggle={this.toggleSet} isSelected={this.state.action === 'set'} disabled={this.isDisabled} /> - <ToggleButton icon='brush' title='Color' toggle={this.toggleColor} isSelected={this.state.action === 'color'} disabled={this.isDisabled} /> + <ToggleButton icon={Union} title={ActionHeader.get('add')} toggle={this.toggleAdd} isSelected={this.state.action === 'add'} disabled={this.isDisabled} /> + <ToggleButton icon={Subtract} title={ActionHeader.get('remove')} toggle={this.toggleRemove} isSelected={this.state.action === 'remove'} disabled={this.isDisabled} /> + <ToggleButton icon={Intersect} title={ActionHeader.get('intersect')} toggle={this.toggleIntersect} isSelected={this.state.action === 'intersect'} disabled={this.isDisabled} /> + <ToggleButton icon={SetSvg} title={ActionHeader.get('set')} toggle={this.toggleSet} isSelected={this.state.action === 'set'} disabled={this.isDisabled} /> + <ToggleButton icon={Brush} title='Color' toggle={this.toggleColor} isSelected={this.state.action === 'color'} disabled={this.isDisabled} /> <PureSelectControl title={`Picking Level`} param={StructureSelectionParams.granularity} name='granularity' value={granularity} onChange={this.setGranuality} isDisabled={this.isDisabled} /> - <IconButton icon='cancel' title='Turn selection mode off' onClick={this.turnOff} /> + <IconButton svg={Close} title='Turn selection mode off' onClick={this.turnOff} /> </div> {(this.state.action && this.state.action !== 'color') && <div className='msp-selection-viewport-controls-actions'> <ActionMenu header={ActionHeader.get(this.state.action as StructureSelectionModifier)} items={this.queries} onSelect={this.selectQuery} noOffset /> </div>} {this.state.action === 'color' && <div className='msp-selection-viewport-controls-actions'> - <ControlGroup header='Color' initialExpanded={true} hideExpander={true} hideOffset={true} onHeaderClick={this.toggleColor} topRightIcon='off'> + <ControlGroup header='Color' initialExpanded={true} hideExpander={true} hideOffset={true} onHeaderClick={this.toggleColor} topRightIcon={Close}> <ApplyColorControls /> </ControlGroup> </div>} @@ -264,7 +266,7 @@ export class StructureSelectionStatsControls extends PluginUIComponent<{ hideOnE style={{ textAlignLast: !empty ? 'left' : void 0 }}> {this.stats} </Button> - {!empty && <IconButton onClick={this.clear} icon='cancel' title='Clear' className='msp-form-control' flex />} + {!empty && <IconButton svg={Clear} onClick={this.clear} title='Clear' className='msp-form-control' flex />} </div> </>; } @@ -294,7 +296,7 @@ class ApplyColorControls extends PurePluginUIComponent<ApplyColorControlsProps, render() { return <> <ParameterControls params={this.params} values={this.state.values} onChangeValues={this.paramsChanged} /> - <Button icon='brush' className='msp-btn-commit msp-btn-commit-on' onClick={this.apply} style={{ marginTop: '1px' }}> + <Button icon={Brush} className='msp-btn-commit msp-btn-commit-on' onClick={this.apply} style={{ marginTop: '1px' }}> Apply Coloring </Button> </>; diff --git a/src/mol-plugin-ui/structure/source.tsx b/src/mol-plugin-ui/structure/source.tsx index c4396540c..646d04c48 100644 --- a/src/mol-plugin-ui/structure/source.tsx +++ b/src/mol-plugin-ui/structure/source.tsx @@ -16,6 +16,7 @@ import { StructureFocusControls } from './focus'; import { UpdateTransformControl } from '../state/update-transform'; import { StructureSelectionStatsControls } from './selection'; import { StateSelection } from '../../mol-state'; +import { BookmarksOutlined } from '@material-ui/icons'; interface StructureSourceControlState extends CollapsableState { isBusy: boolean, @@ -267,7 +268,7 @@ export class StructureSourceControls extends CollapsableControls<{}, StructureSo return <> <div className='msp-flex-row' style={{ marginTop: '1px' }}> <Button noOverflow flex onClick={this.toggleHierarchy} disabled={disabled} title={label}>{label}</Button> - {presets.length > 0 && <IconButton className='msp-form-control' flex='40px' onClick={this.togglePreset} icon='bookmarks' title='Apply a structure presets to the current hierarchy.' toggleState={this.state.show === 'presets'} disabled={disabled} />} + {presets.length > 0 && <IconButton svg={BookmarksOutlined} className='msp-form-control' flex='40px' onClick={this.togglePreset} title='Apply a structure presets to the current hierarchy.' toggleState={this.state.show === 'presets'} disabled={disabled} />} </div> {this.state.show === 'hierarchy' && <ActionMenu items={this.hierarchyItems} onSelect={this.selectHierarchy} multiselect />} {this.state.show === 'presets' && <ActionMenu items={presets} onSelect={this.applyPreset} />} diff --git a/src/mol-plugin-ui/structure/volume.tsx b/src/mol-plugin-ui/structure/volume.tsx index 1d8d0f41b..2caeecee8 100644 --- a/src/mol-plugin-ui/structure/volume.tsx +++ b/src/mol-plugin-ui/structure/volume.tsx @@ -16,6 +16,7 @@ import { StructureHierarchyManager } from '../../mol-plugin-state/manager/struct import { FocusLoci } from '../../mol-plugin/behavior/dynamic/representation'; import { StateSelection, StateTransform } from '../../mol-state'; import { VolumeStreaming } from '../../mol-plugin/behavior/dynamic/volume-streaming/behavior'; +import { Check, Error as ErrorSvg } from '@material-ui/icons'; interface VolumeStreamingControlState extends CollapsableState { isBusy: boolean @@ -69,10 +70,10 @@ export class VolumeStreamingControls extends CollapsableControls<{}, VolumeStrea const rootCell = root && pivot.cell.parent.cells.get(root); const simpleApply = rootCell && rootCell.status === 'error' - ? { header: 'Error enabling', icon: 'alert' as const, title: rootCell.errorText } + ? { header: 'Error enabling', icon: ErrorSvg, title: rootCell.errorText } : rootCell && rootCell.obj?.data.entries.length === 0 - ? { header: 'Error enabling', icon: 'alert' as const, title: 'No entry for streaming found' } - : { header: 'Enable', icon: 'check' as const, title: 'Enable' }; + ? { header: 'Error enabling', icon: ErrorSvg, title: 'No entry for streaming found' } + : { header: 'Enable', icon: Check, title: 'Enable' }; return <ApplyActionControl state={pivot.cell.parent} action={InitVolumeStreaming} initiallyCollapsed={true} nodeRef={pivot.cell.transform.ref} simpleApply={simpleApply} />; } diff --git a/src/mol-plugin-ui/task.tsx b/src/mol-plugin-ui/task.tsx index 68f8f2879..0f5ede7f9 100644 --- a/src/mol-plugin-ui/task.tsx +++ b/src/mol-plugin-ui/task.tsx @@ -11,6 +11,7 @@ import { TaskManager } from '../mol-plugin/util/task-manager'; import { filter } from 'rxjs/operators'; import { Progress } from '../mol-task'; import { IconButton } from './controls/common'; +import { Cancel } from '@material-ui/icons'; export class BackgroundTaskProgress extends PluginUIComponent<{ }, { tracked: OrderedMap<number, TaskManager.ProgressEvent> }> { componentDidMount() { @@ -49,7 +50,7 @@ class ProgressEntry extends PluginUIComponent<{ event: TaskManager.ProgressEvent return <div className='msp-task-state'> <div> - {root.progress.canAbort && <IconButton onClick={this.abort} icon='abort' title='Abort' />} + {root.progress.canAbort && <IconButton svg={Cancel} onClick={this.abort} title='Abort' />} <div> {root.progress.message} {pr} {subtasks} </div> diff --git a/src/mol-plugin-ui/toast.tsx b/src/mol-plugin-ui/toast.tsx index 4d1243286..642db5b69 100644 --- a/src/mol-plugin-ui/toast.tsx +++ b/src/mol-plugin-ui/toast.tsx @@ -10,6 +10,7 @@ import * as React from 'react'; import { PluginUIComponent } from './base'; import { PluginToastManager } from '../mol-plugin/util/toast'; import { IconButton } from './controls/common'; +import { Cancel } from '@material-ui/icons'; class ToastEntry extends PluginUIComponent<{ entry: PluginToastManager.Entry }> { private hide = () => { @@ -32,7 +33,7 @@ class ToastEntry extends PluginUIComponent<{ entry: PluginToastManager.Entry }> </div> <div className='msp-toast-clear'></div> <div className='msp-toast-hide'> - <IconButton onClick={this.hide} icon='abort' title='Hide' className='msp-no-hover-outline' /> + <IconButton svg={Cancel} onClick={this.hide} title='Hide' className='msp-no-hover-outline' /> </div> </div>; } diff --git a/src/mol-plugin-ui/viewport.tsx b/src/mol-plugin-ui/viewport.tsx index 757468995..d4e345926 100644 --- a/src/mol-plugin-ui/viewport.tsx +++ b/src/mol-plugin-ui/viewport.tsx @@ -5,16 +5,16 @@ * @author David Sehnal <david.sehnal@gmail.com> */ +import { Autorenew, Build, Camera, Crop, Fullscreen, Tune, Close } from '@material-ui/icons'; import * as React from 'react'; import { resizeCanvas } from '../mol-canvas3d/util'; import { PluginCommands } from '../mol-plugin/commands'; +import { PluginConfig } from '../mol-plugin/config'; import { ParamDefinition as PD } from '../mol-util/param-definition'; import { PluginUIComponent } from './base'; import { ControlGroup, IconButton } from './controls/common'; -import { SimpleSettingsControl } from './viewport/simple-settings'; import { DownloadScreenshotControls } from './viewport/screenshot'; -import { IconName } from './controls/icons'; -import { PluginConfig } from '../mol-plugin/config'; +import { SimpleSettingsControl } from './viewport/simple-settings'; interface ViewportControlsState { isSettingsExpanded: boolean, @@ -76,8 +76,8 @@ export class ViewportControls extends PluginUIComponent<ViewportControlsProps, V this.subscribe(this.plugin.behaviors.interaction.selectionMode, () => this.forceUpdate()); } - icon(name: IconName, onClick: (e: React.MouseEvent<HTMLButtonElement>) => void, title: string, isOn = true) { - return <IconButton icon={name} toggleState={isOn} onClick={onClick} title={title} style={{ background: 'transparent' }} />; + icon(icon: React.FC, onClick: (e: React.MouseEvent<HTMLButtonElement>) => void, title: string, isOn = true) { + return <IconButton svg={icon} toggleState={isOn} onClick={onClick} title={title} style={{ background: 'transparent' }} />; } onMouseMove = (e: React.MouseEvent) => { @@ -90,32 +90,32 @@ export class ViewportControls extends PluginUIComponent<ViewportControlsProps, V <div className='msp-viewport-controls-buttons'> <div> <div className='msp-semi-transparent-background' /> - {this.icon('reset-scene', this.resetCamera, 'Reset Camera')} + {this.icon(Autorenew, this.resetCamera, 'Reset Camera')} </div> <div> <div className='msp-semi-transparent-background' /> - {this.icon('screenshot', this.toggleScreenshotExpanded, 'Screenshot', this.state.isScreenshotExpanded)} + {this.icon(Camera, this.toggleScreenshotExpanded, 'Screenshot', this.state.isScreenshotExpanded)} </div> <div> <div className='msp-semi-transparent-background' /> - {this.icon('tools', this.toggleControls, 'Toggle Controls', this.plugin.layout.state.showControls)} - {this.plugin.config.get(PluginConfig.Viewport.ShowExpand) && this.icon('expand-layout', this.toggleExpanded, 'Toggle Expanded', this.plugin.layout.state.isExpanded)} - {this.icon('settings', this.toggleSettingsExpanded, 'Settings / Controls Info', this.state.isSettingsExpanded)} + {this.icon(Build, this.toggleControls, 'Toggle Controls', this.plugin.layout.state.showControls)} + {this.plugin.config.get(PluginConfig.Viewport.ShowExpand) && this.icon(Fullscreen, this.toggleExpanded, 'Toggle Expanded', this.plugin.layout.state.isExpanded)} + {this.icon(Tune, this.toggleSettingsExpanded, 'Settings / Controls Info', this.state.isSettingsExpanded)} </div> {this.plugin.config.get(PluginConfig.Viewport.ShowSelectionMode) && <div> <div className='msp-semi-transparent-background' /> - {this.icon('mouse-plus', this.toggleSelectionMode, 'Toggle Selection Mode', this.plugin.behaviors.interaction.selectionMode.value)} + {this.icon(Crop, this.toggleSelectionMode, 'Toggle Selection Mode', this.plugin.behaviors.interaction.selectionMode.value)} </div>} </div> {this.state.isScreenshotExpanded && <div className='msp-viewport-controls-panel'> <ControlGroup header='Screenshot' initialExpanded={true} hideExpander={true} hideOffset={true} onHeaderClick={this.toggleScreenshotExpanded} - topRightIcon='off' noTopMargin> + topRightIcon={Close} noTopMargin> <DownloadScreenshotControls close={this.toggleScreenshotExpanded} /> </ControlGroup> </div>} {this.state.isSettingsExpanded && <div className='msp-viewport-controls-panel'> <ControlGroup header='Settings / Controls Info' initialExpanded={true} hideExpander={true} hideOffset={true} onHeaderClick={this.toggleSettingsExpanded} - topRightIcon='off' noTopMargin childrenClassName='msp-viewport-controls-panel-controls'> + topRightIcon={Close} noTopMargin childrenClassName='msp-viewport-controls-panel-controls'> <SimpleSettingsControl /> </ControlGroup> </div>} diff --git a/src/mol-plugin-ui/viewport/help.tsx b/src/mol-plugin-ui/viewport/help.tsx index c4583a83a..9209fa3fb 100644 --- a/src/mol-plugin-ui/viewport/help.tsx +++ b/src/mol-plugin-ui/viewport/help.tsx @@ -12,6 +12,7 @@ import { SelectLoci } from '../../mol-plugin/behavior/dynamic/representation'; import { FocusLoci } from '../../mol-plugin/behavior/dynamic/representation'; import { Icon } from '../controls/icons'; import { Button } from '../controls/common'; +import { ArrowRight, ArrowDropDown, Camera } from '@material-ui/icons'; function getBindingsList(bindings: { [k: string]: Binding }) { return Object.keys(bindings).map(k => [k, bindings[k]] as [string, Binding]); @@ -57,7 +58,7 @@ class HelpGroup extends React.PureComponent<{ header: string, initiallyExpanded? return <div className='msp-control-group-wrapper'> <div className='msp-control-group-header'> <Button onClick={this.toggleExpanded}> - <Icon name={this.state.isExpanded ? 'collapse' : 'expand'} /> + <Icon svg={this.state.isExpanded ? ArrowDropDown : ArrowRight} /> {this.props.header} </Button> </div> @@ -152,7 +153,7 @@ export class HelpContent extends PluginUIComponent { <HelpSection header='How-to Guides' /> <HelpGroup header='Create an Image'> <HelpText> - <p>Use the <Icon name='screenshot' /> icon in the viewport to bring up the screenshot controls.</p> + <p>Use the <Icon svg={Camera} /> icon in the viewport to bring up the screenshot controls.</p> <p>To adjust the size of the image, use the <i>Resolution</i> dropdown.</p> </HelpText> </HelpGroup> diff --git a/src/mol-plugin-ui/viewport/screenshot.tsx b/src/mol-plugin-ui/viewport/screenshot.tsx index 6e7d17607..21c3a9b53 100644 --- a/src/mol-plugin-ui/viewport/screenshot.tsx +++ b/src/mol-plugin-ui/viewport/screenshot.tsx @@ -14,6 +14,7 @@ import { Subject } from 'rxjs'; import { ViewportScreenshotHelper } from '../../mol-plugin/util/viewport-screenshot'; import { Button } from '../controls/common'; import { CameraHelperProps } from '../../mol-canvas3d/helper/camera-helper'; +import { GetApp, Launch } from '@material-ui/icons'; interface ImageControlsState { showPreview: boolean @@ -124,8 +125,8 @@ export class DownloadScreenshotControls extends PluginUIComponent<{ close: () => <span>Right-click the image to Copy.</span> </div> <div className='msp-flex-row'> - <Button icon='download' onClick={this.download} disabled={this.state.isDisabled}>Download</Button> - <Button icon='export' onClick={this.openTab} disabled={this.state.isDisabled}>Open in new Tab</Button> + <Button icon={GetApp} onClick={this.download} disabled={this.state.isDisabled}>Download</Button> + <Button icon={Launch} onClick={this.openTab} disabled={this.state.isDisabled}>Open in new Tab</Button> </div> <ParameterControls params={this.plugin.helpers.viewportScreenshot!.params} values={this.plugin.helpers.viewportScreenshot!.values} onChange={this.setProps} isDisabled={this.state.isDisabled} /> </div>; diff --git a/src/mol-plugin/behavior/dynamic/custom-props/rcsb/ui/assembly-symmetry.tsx b/src/mol-plugin/behavior/dynamic/custom-props/rcsb/ui/assembly-symmetry.tsx index 8ae2f8b39..6fc0fc8cf 100644 --- a/src/mol-plugin/behavior/dynamic/custom-props/rcsb/ui/assembly-symmetry.tsx +++ b/src/mol-plugin/behavior/dynamic/custom-props/rcsb/ui/assembly-symmetry.tsx @@ -16,6 +16,7 @@ import { StateAction, StateSelection } from '../../../../../../mol-state'; import { PluginStateObject } from '../../../../../../mol-plugin-state/objects'; import { PluginContext } from '../../../../../context'; import { Task } from '../../../../../../mol-task'; +import { Check } from '@material-ui/icons'; interface AssemblySymmetryControlState extends CollapsableState { isBusy: boolean @@ -60,7 +61,7 @@ export class AssemblySymmetryControls extends CollapsableControls<{}, AssemblySy renderEnable() { const pivot = this.pivot; if (!pivot.cell.parent) return null; - return <ApplyActionControl state={pivot.cell.parent} action={EnableAssemblySymmetry3D} initiallyCollapsed={true} nodeRef={pivot.cell.transform.ref} simpleApply={{ header: 'Enable', icon: 'check' }} />; + return <ApplyActionControl state={pivot.cell.parent} action={EnableAssemblySymmetry3D} initiallyCollapsed={true} nodeRef={pivot.cell.transform.ref} simpleApply={{ header: 'Enable', icon: Check }} />; } renderNoSymmetries() { diff --git a/tsconfig.json b/tsconfig.json index 1d5ba9d04..27e95026d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -9,7 +9,7 @@ "noUnusedLocals": true, "strictNullChecks": true, "strictFunctionTypes": true, - "module": "commonjs", + "module": "esnext", "esModuleInterop": true, "moduleResolution": "node", "importHelpers": true, -- GitLab