2018-10-03 00:31:45 +00:00
|
|
|
/*****************************************************************************
|
|
|
|
* Open MCT, Copyright (c) 2014-2018, United States Government
|
|
|
|
* as represented by the Administrator of the National Aeronautics and Space
|
|
|
|
* Administration. All rights reserved.
|
|
|
|
*
|
|
|
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
|
|
|
* "License"); you may not use this file except in compliance with the License.
|
|
|
|
* You may obtain a copy of the License at
|
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
|
|
|
*
|
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
|
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
|
|
* License for the specific language governing permissions and limitations
|
|
|
|
* under the License.
|
|
|
|
*
|
|
|
|
* Open MCT includes source code licensed under additional open source
|
|
|
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
|
|
|
* this source code distribution or the Licensing information page available
|
|
|
|
* at runtime from the About dialog for additional information.
|
|
|
|
*****************************************************************************/
|
|
|
|
|
|
|
|
/********* Buttons */
|
|
|
|
// Optionally can include icon in :before via markup
|
|
|
|
button {
|
2018-10-04 21:47:12 +00:00
|
|
|
@include htmlInputReset();
|
|
|
|
}
|
|
|
|
|
|
|
|
.c-button,
|
|
|
|
.c-button--menu {
|
2018-10-03 00:31:45 +00:00
|
|
|
@include cButton();
|
2018-09-11 17:10:59 +00:00
|
|
|
}
|
|
|
|
|
2018-10-03 00:31:45 +00:00
|
|
|
.c-button--menu {
|
|
|
|
$m: $interiorMargin;
|
2018-09-11 17:10:59 +00:00
|
|
|
|
2018-10-03 00:31:45 +00:00
|
|
|
&:before,
|
|
|
|
> * {
|
2018-09-11 17:10:59 +00:00
|
|
|
margin-right: $m;
|
|
|
|
}
|
|
|
|
|
|
|
|
&:after {
|
|
|
|
content: $glyph-icon-arrow-down;
|
|
|
|
font-family: symbolsfont;
|
|
|
|
opacity: 0.5;
|
|
|
|
}
|
2018-10-03 00:31:45 +00:00
|
|
|
}
|
2018-09-13 22:14:28 +00:00
|
|
|
|
2018-10-03 00:31:45 +00:00
|
|
|
/********* Icon Buttons */
|
|
|
|
.c-click-icon {
|
|
|
|
@include cClickIcon();
|
|
|
|
|
|
|
|
&--menu {
|
|
|
|
&:after {
|
|
|
|
content: $glyph-icon-arrow-down;
|
|
|
|
font-family: symbolsfont;
|
|
|
|
font-size: 0.6em;
|
|
|
|
margin-left: floor($interiorMarginSm * 0.8);
|
|
|
|
opacity: 0.5;
|
2018-09-13 22:14:28 +00:00
|
|
|
}
|
2018-10-03 00:31:45 +00:00
|
|
|
}
|
2018-09-13 22:14:28 +00:00
|
|
|
|
2018-10-03 00:31:45 +00:00
|
|
|
&--swatched {
|
|
|
|
// Color control, show swatch element
|
|
|
|
display: flex;
|
|
|
|
flex-flow: column nowrap;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: center;
|
|
|
|
|
|
|
|
> [class*='swatch'] {
|
|
|
|
box-shadow: inset rgba(black, 0.2) 0 0 1px;
|
|
|
|
flex: 0 0 auto;
|
|
|
|
height: 4px;
|
|
|
|
width: 100%;
|
|
|
|
margin-top: 1px;
|
2018-09-13 22:14:28 +00:00
|
|
|
}
|
|
|
|
|
2018-10-03 00:31:45 +00:00
|
|
|
&:before {
|
|
|
|
// Reduce size of icon to make a bit of room
|
|
|
|
flex: 1 1 auto;
|
|
|
|
font-size: 1.1em;
|
2018-09-13 22:14:28 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/******************************************************** DISCLOSURE CONTROLS */
|
|
|
|
/********* Disclosure Button */
|
|
|
|
// Provides a downward arrow icon that when clicked displays a context menu
|
|
|
|
// Always placed AFTER an element
|
|
|
|
.c-disclosure-button {
|
2018-10-03 00:31:45 +00:00
|
|
|
@include cClickIcon();
|
2018-09-13 22:14:28 +00:00
|
|
|
margin-left: $interiorMarginSm;
|
|
|
|
|
|
|
|
&:before {
|
|
|
|
content: $glyph-icon-arrow-down;
|
|
|
|
font-family: symbolsfont;
|
|
|
|
font-size: 0.7em;
|
|
|
|
}
|
2018-09-11 17:10:59 +00:00
|
|
|
}
|
2018-10-10 19:45:46 +00:00
|
|
|
/********* Disclosure Triangle */
|
2018-09-13 22:14:28 +00:00
|
|
|
// Provides an arrow icon that when clicked expands an element to reveal its contents.
|
|
|
|
// Used in tree items. Always placed BEFORE an element.
|
|
|
|
.c-disclosure-triangle {
|
|
|
|
$d: 12px;
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: center;
|
|
|
|
flex: 0 0 auto;
|
|
|
|
width: $d;
|
|
|
|
position: relative;
|
|
|
|
|
|
|
|
&.is-enabled:before {
|
|
|
|
$s: .65;
|
|
|
|
content: $glyph-icon-arrow-right-equilateral;
|
|
|
|
display: block;
|
|
|
|
font-family: symbolsfont;
|
|
|
|
font-size: 1rem * $s;
|
|
|
|
position: absolute;
|
|
|
|
transform-origin: floor(($d / 2) * $s); // This is slightly better than 'center'
|
|
|
|
transition: transform 100ms ease-in-out;
|
|
|
|
}
|
|
|
|
|
|
|
|
&--expanded {
|
|
|
|
&:before {
|
|
|
|
transform: rotate(90deg);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/******************************************************** FORM ELEMENTS */
|
2018-10-10 19:45:46 +00:00
|
|
|
input, textarea {
|
|
|
|
font-family: inherit;
|
|
|
|
font-weight: inherit;
|
|
|
|
letter-spacing: inherit;
|
|
|
|
}
|
2018-09-13 22:14:28 +00:00
|
|
|
|
2018-10-10 19:45:46 +00:00
|
|
|
input[type=text],
|
|
|
|
input[type=search],
|
|
|
|
input[type=number] {
|
|
|
|
@include reactive-input();
|
|
|
|
padding: $inputTextP;
|
|
|
|
&.numeric {
|
|
|
|
text-align: right;
|
Reimplementation of Display Layout in Vue (#2185)
* Saving work
* Fix conflict
* Position the panels by setting the style
* Put the div back with height set to 100% in ObjectView.
Add markup for drag handles.
* Use default position and dimensions if the layout panel is missing those values. Set s-status-editing on the main div to get the drag handles appear for now.
* Display Layout and frames major improvements
- Moved Toolbar out of Layout.vue and into DisplayLayout.vue;
- Styles for object view, Layout, Frame, etc.
- Major refactor of markup for frame;
- Added abs() mixin;
- Styles for is-editing done;
- Styles for
- TODO: styles for selectable, moveable, etc.
* Implement drill in gesture.
* Hide the background grid when a frame is drilled in
* Edit styling and toolbar WIP
- c-search styles moved mostly into mixin;
- New .c-labeled-input class;
- Browser overrides for number-type input spinners in webkit;
* Toolbar WIP
- Custom wrapped number input added;
- Toolbar buttons WIP;
* New toolbar buttons WIP
* Define a computed property for the css class object.
* Frame edit handles markup and styling
* Toolbar, editing and selection style refinements
- Moved toolbar back into Layout.vue;
- Hard-coded 'is-editing' onto __pane-main for now,
removed from DisplayLayout.vue;
- Styles for frame in LayoutFrame.vue:
-- editing default (dotted border)
-- editing .s-selected
-- .s-drilled-in (renamed .is-drilled-in)
* Refactoring button classes
- Lots of stuff broken right now;
- TODO: lots of renaming (c-menu-button, c-icon-button, etc.);
- Removed import of _controls in search.vue;
* Fixes for selection on nested selected elements
* Fix conflict
* Significant refactoring of button and click-icon classes
- Markup and CSS updated;
- Toolbar in good shape, prior to merge of vue-layout;
* Fix issues with relative font-sizing
* Add color palette markup and CSS
- Also added Layers menu example;
* Font, font-size glyphs and size menu, and more
- Added art for font glyph and renamed from .icon-T;
- Added new glyph for font-size;
- Fixed font-sizing in controls;
- Added font-size menu;
- Re-org'd toolbar items;
* Styling tweak for c-labeled-input
- Code cleanup as well;
* Fixes for toolbar toggleMenus and labeledNumberInput
* Implement resize and move for frames.
Added stub for drag 'n drop.
* Add custom checkbox control.
- Also, code cleanup.
* Add toggleButton component
- Code and examples
* Custom checkbox code cleanups, sanding
* - Persist new position/dimensions on the domain object when frames are moved/resized.
- Bypass the selection of the layout when dragging a frame is finished to keep the frame selected.
- Set the grid size to layoutGrid from domain object or use default if it's not specified.
* Fix conflict
* Implement resize and move for frames.
Added stub for drag 'n drop.
* Remove old layout view, was triggering View Switcher
and massive confusion when viewing Layouts
- TODO: add view provider for new Layout
* Enable drag and drop
* Changed example toggle-button
- Now uses show/hide frame as toggle-button example;
* Added pseudocode for handling drag/drop composition change
* Add copyright notice
* Layout frame and contained components styling
- Hyperlinks, Hyperlink buttons, Summary Widgets now use `.u-links`
which disables their pointer-events when editing;
- Hyperlink buttons, Summary Widgets now expand to fill their
containers in a Layout;
- Markup and JS for Hyperlinks, Hyperlink buttons, Summary Widgets
somewhat
modded to use new classing, applied in legacy scss files;
* Fix icon sizing error in BrowseBar
* Edit and selecting styling for Layouts
- WIP!
* Edit and selecting styling for Layout frames
- Color vars more standardized;
- Hover and *-selected styles;
* Getting vue-toolbar reverted back to latest
- Merging this branch with vue-layout may cause conflicts;
* - Implement drag ’n drop.
- Set hasFrame to a default value if it’s not set on the configuration.
- Emit an event to the parent wrapper component to update the ‘newDomainObject’ prop whenever the domain object is mutated in the display layout child component.
* Revert emitting 'update:object' event to the parent.
* New branch from topic-core-refactor to use as central point for common
CSS work
- Manually migrated changes from vue-toolbar, expect conflicts there and
in vue-layout;
* Manually update constants-snow from vue-toolbar branch
* Update markup to use latest button classnames
- c-menu-button > c-button--menu;
- c-icon-button > c-click-icon;
* Various from vue-conductor-style
- Mods to input styling;
- Input[] styles moved to _controls;
- New/revised constants vals;
* Resolve bizarre merge conflict when applying stash
* Code cleanup
* Alias and type-icon fixes
- More robust approach to alias indicators;
- Added alias indication to tree-item.vue;
- TODO: wire up alias indication tree-item.vue;
* Accessibility mods, convert elements to <button>
- Better reset styles for htmlInputReset mixin to allow use of <button>
without browser default styling;
- Create button;
- BrowseBar action buttons;
- c-click-icons;
- Removed Preview button from BrowseBar.vue;
* Fix styles that were affected during resolving conflicts
* Moved draggable into __label element rather than whole <li>
* Change the priority to 100 to get the view working properly
* Code cleanup
* Remove angular layout
* Display the object name in the frame header
* Tweaks to __header in LayoutFrame
- Name now does not overflow frame edge;
- Layout strategy now in parity with similar elements in main view;
* Remove test()
* Add a type for display layout to make it appear in the Create menu.
* Change the key type to 'layout'
* Clean up code and hide toolbar
* Enable toolbar, and revert changes in webpack config
* Remove commented code
* revert to the original code
2018-10-04 22:59:23 +00:00
|
|
|
}
|
2018-10-03 00:31:45 +00:00
|
|
|
}
|
|
|
|
|
2018-10-10 19:45:46 +00:00
|
|
|
input[type=number]::-webkit-inner-spin-button,
|
|
|
|
input[type=number]::-webkit-outer-spin-button {
|
|
|
|
margin-right: -5px !important;
|
|
|
|
margin-top: -1px !important;
|
|
|
|
}
|
2018-10-03 00:31:45 +00:00
|
|
|
|
2018-10-10 19:45:46 +00:00
|
|
|
.c-input {
|
|
|
|
&--datetime {
|
|
|
|
// Sized for values such as 2018-09-28 22:32:33.468Z
|
|
|
|
width: 160px;
|
2018-09-13 22:14:28 +00:00
|
|
|
}
|
Reimplementation of Display Layout in Vue (#2185)
* Saving work
* Fix conflict
* Position the panels by setting the style
* Put the div back with height set to 100% in ObjectView.
Add markup for drag handles.
* Use default position and dimensions if the layout panel is missing those values. Set s-status-editing on the main div to get the drag handles appear for now.
* Display Layout and frames major improvements
- Moved Toolbar out of Layout.vue and into DisplayLayout.vue;
- Styles for object view, Layout, Frame, etc.
- Major refactor of markup for frame;
- Added abs() mixin;
- Styles for is-editing done;
- Styles for
- TODO: styles for selectable, moveable, etc.
* Implement drill in gesture.
* Hide the background grid when a frame is drilled in
* Edit styling and toolbar WIP
- c-search styles moved mostly into mixin;
- New .c-labeled-input class;
- Browser overrides for number-type input spinners in webkit;
* Toolbar WIP
- Custom wrapped number input added;
- Toolbar buttons WIP;
* New toolbar buttons WIP
* Define a computed property for the css class object.
* Frame edit handles markup and styling
* Toolbar, editing and selection style refinements
- Moved toolbar back into Layout.vue;
- Hard-coded 'is-editing' onto __pane-main for now,
removed from DisplayLayout.vue;
- Styles for frame in LayoutFrame.vue:
-- editing default (dotted border)
-- editing .s-selected
-- .s-drilled-in (renamed .is-drilled-in)
* Refactoring button classes
- Lots of stuff broken right now;
- TODO: lots of renaming (c-menu-button, c-icon-button, etc.);
- Removed import of _controls in search.vue;
* Fixes for selection on nested selected elements
* Fix conflict
* Significant refactoring of button and click-icon classes
- Markup and CSS updated;
- Toolbar in good shape, prior to merge of vue-layout;
* Fix issues with relative font-sizing
* Add color palette markup and CSS
- Also added Layers menu example;
* Font, font-size glyphs and size menu, and more
- Added art for font glyph and renamed from .icon-T;
- Added new glyph for font-size;
- Fixed font-sizing in controls;
- Added font-size menu;
- Re-org'd toolbar items;
* Styling tweak for c-labeled-input
- Code cleanup as well;
* Fixes for toolbar toggleMenus and labeledNumberInput
* Implement resize and move for frames.
Added stub for drag 'n drop.
* Add custom checkbox control.
- Also, code cleanup.
* Add toggleButton component
- Code and examples
* Custom checkbox code cleanups, sanding
* - Persist new position/dimensions on the domain object when frames are moved/resized.
- Bypass the selection of the layout when dragging a frame is finished to keep the frame selected.
- Set the grid size to layoutGrid from domain object or use default if it's not specified.
* Fix conflict
* Implement resize and move for frames.
Added stub for drag 'n drop.
* Remove old layout view, was triggering View Switcher
and massive confusion when viewing Layouts
- TODO: add view provider for new Layout
* Enable drag and drop
* Changed example toggle-button
- Now uses show/hide frame as toggle-button example;
* Added pseudocode for handling drag/drop composition change
* Add copyright notice
* Layout frame and contained components styling
- Hyperlinks, Hyperlink buttons, Summary Widgets now use `.u-links`
which disables their pointer-events when editing;
- Hyperlink buttons, Summary Widgets now expand to fill their
containers in a Layout;
- Markup and JS for Hyperlinks, Hyperlink buttons, Summary Widgets
somewhat
modded to use new classing, applied in legacy scss files;
* Fix icon sizing error in BrowseBar
* Edit and selecting styling for Layouts
- WIP!
* Edit and selecting styling for Layout frames
- Color vars more standardized;
- Hover and *-selected styles;
* Getting vue-toolbar reverted back to latest
- Merging this branch with vue-layout may cause conflicts;
* - Implement drag ’n drop.
- Set hasFrame to a default value if it’s not set on the configuration.
- Emit an event to the parent wrapper component to update the ‘newDomainObject’ prop whenever the domain object is mutated in the display layout child component.
* Revert emitting 'update:object' event to the parent.
* New branch from topic-core-refactor to use as central point for common
CSS work
- Manually migrated changes from vue-toolbar, expect conflicts there and
in vue-layout;
* Manually update constants-snow from vue-toolbar branch
* Update markup to use latest button classnames
- c-menu-button > c-button--menu;
- c-icon-button > c-click-icon;
* Various from vue-conductor-style
- Mods to input styling;
- Input[] styles moved to _controls;
- New/revised constants vals;
* Resolve bizarre merge conflict when applying stash
* Code cleanup
* Alias and type-icon fixes
- More robust approach to alias indicators;
- Added alias indication to tree-item.vue;
- TODO: wire up alias indication tree-item.vue;
* Accessibility mods, convert elements to <button>
- Better reset styles for htmlInputReset mixin to allow use of <button>
without browser default styling;
- Create button;
- BrowseBar action buttons;
- c-click-icons;
- Removed Preview button from BrowseBar.vue;
* Fix styles that were affected during resolving conflicts
* Moved draggable into __label element rather than whole <li>
* Change the priority to 100 to get the view working properly
* Code cleanup
* Remove angular layout
* Display the object name in the frame header
* Tweaks to __header in LayoutFrame
- Name now does not overflow frame edge;
- Layout strategy now in parity with similar elements in main view;
* Remove test()
* Add a type for display layout to make it appear in the Create menu.
* Change the key type to 'layout'
* Clean up code and hide toolbar
* Enable toolbar, and revert changes in webpack config
* Remove commented code
* revert to the original code
2018-10-04 22:59:23 +00:00
|
|
|
|
2018-10-10 19:45:46 +00:00
|
|
|
&--hrs-min-sec {
|
|
|
|
// Sized for values such as 00:25:00
|
|
|
|
width: 60px;
|
Reimplementation of Display Layout in Vue (#2185)
* Saving work
* Fix conflict
* Position the panels by setting the style
* Put the div back with height set to 100% in ObjectView.
Add markup for drag handles.
* Use default position and dimensions if the layout panel is missing those values. Set s-status-editing on the main div to get the drag handles appear for now.
* Display Layout and frames major improvements
- Moved Toolbar out of Layout.vue and into DisplayLayout.vue;
- Styles for object view, Layout, Frame, etc.
- Major refactor of markup for frame;
- Added abs() mixin;
- Styles for is-editing done;
- Styles for
- TODO: styles for selectable, moveable, etc.
* Implement drill in gesture.
* Hide the background grid when a frame is drilled in
* Edit styling and toolbar WIP
- c-search styles moved mostly into mixin;
- New .c-labeled-input class;
- Browser overrides for number-type input spinners in webkit;
* Toolbar WIP
- Custom wrapped number input added;
- Toolbar buttons WIP;
* New toolbar buttons WIP
* Define a computed property for the css class object.
* Frame edit handles markup and styling
* Toolbar, editing and selection style refinements
- Moved toolbar back into Layout.vue;
- Hard-coded 'is-editing' onto __pane-main for now,
removed from DisplayLayout.vue;
- Styles for frame in LayoutFrame.vue:
-- editing default (dotted border)
-- editing .s-selected
-- .s-drilled-in (renamed .is-drilled-in)
* Refactoring button classes
- Lots of stuff broken right now;
- TODO: lots of renaming (c-menu-button, c-icon-button, etc.);
- Removed import of _controls in search.vue;
* Fixes for selection on nested selected elements
* Fix conflict
* Significant refactoring of button and click-icon classes
- Markup and CSS updated;
- Toolbar in good shape, prior to merge of vue-layout;
* Fix issues with relative font-sizing
* Add color palette markup and CSS
- Also added Layers menu example;
* Font, font-size glyphs and size menu, and more
- Added art for font glyph and renamed from .icon-T;
- Added new glyph for font-size;
- Fixed font-sizing in controls;
- Added font-size menu;
- Re-org'd toolbar items;
* Styling tweak for c-labeled-input
- Code cleanup as well;
* Fixes for toolbar toggleMenus and labeledNumberInput
* Implement resize and move for frames.
Added stub for drag 'n drop.
* Add custom checkbox control.
- Also, code cleanup.
* Add toggleButton component
- Code and examples
* Custom checkbox code cleanups, sanding
* - Persist new position/dimensions on the domain object when frames are moved/resized.
- Bypass the selection of the layout when dragging a frame is finished to keep the frame selected.
- Set the grid size to layoutGrid from domain object or use default if it's not specified.
* Fix conflict
* Implement resize and move for frames.
Added stub for drag 'n drop.
* Remove old layout view, was triggering View Switcher
and massive confusion when viewing Layouts
- TODO: add view provider for new Layout
* Enable drag and drop
* Changed example toggle-button
- Now uses show/hide frame as toggle-button example;
* Added pseudocode for handling drag/drop composition change
* Add copyright notice
* Layout frame and contained components styling
- Hyperlinks, Hyperlink buttons, Summary Widgets now use `.u-links`
which disables their pointer-events when editing;
- Hyperlink buttons, Summary Widgets now expand to fill their
containers in a Layout;
- Markup and JS for Hyperlinks, Hyperlink buttons, Summary Widgets
somewhat
modded to use new classing, applied in legacy scss files;
* Fix icon sizing error in BrowseBar
* Edit and selecting styling for Layouts
- WIP!
* Edit and selecting styling for Layout frames
- Color vars more standardized;
- Hover and *-selected styles;
* Getting vue-toolbar reverted back to latest
- Merging this branch with vue-layout may cause conflicts;
* - Implement drag ’n drop.
- Set hasFrame to a default value if it’s not set on the configuration.
- Emit an event to the parent wrapper component to update the ‘newDomainObject’ prop whenever the domain object is mutated in the display layout child component.
* Revert emitting 'update:object' event to the parent.
* New branch from topic-core-refactor to use as central point for common
CSS work
- Manually migrated changes from vue-toolbar, expect conflicts there and
in vue-layout;
* Manually update constants-snow from vue-toolbar branch
* Update markup to use latest button classnames
- c-menu-button > c-button--menu;
- c-icon-button > c-click-icon;
* Various from vue-conductor-style
- Mods to input styling;
- Input[] styles moved to _controls;
- New/revised constants vals;
* Resolve bizarre merge conflict when applying stash
* Code cleanup
* Alias and type-icon fixes
- More robust approach to alias indicators;
- Added alias indication to tree-item.vue;
- TODO: wire up alias indication tree-item.vue;
* Accessibility mods, convert elements to <button>
- Better reset styles for htmlInputReset mixin to allow use of <button>
without browser default styling;
- Create button;
- BrowseBar action buttons;
- c-click-icons;
- Removed Preview button from BrowseBar.vue;
* Fix styles that were affected during resolving conflicts
* Moved draggable into __label element rather than whole <li>
* Change the priority to 100 to get the view working properly
* Code cleanup
* Remove angular layout
* Display the object name in the frame header
* Tweaks to __header in LayoutFrame
- Name now does not overflow frame edge;
- Layout strategy now in parity with similar elements in main view;
* Remove test()
* Add a type for display layout to make it appear in the Create menu.
* Change the key type to 'layout'
* Clean up code and hide toolbar
* Enable toolbar, and revert changes in webpack config
* Remove commented code
* revert to the original code
2018-10-04 22:59:23 +00:00
|
|
|
}
|
|
|
|
|
2018-10-10 19:45:46 +00:00
|
|
|
&-inline,
|
|
|
|
&--inline {
|
|
|
|
// A text input or contenteditable element that indicates edit affordance on hover and looks like an input on focus
|
|
|
|
@include reactive-input($bg: transparent);
|
|
|
|
box-shadow: none;
|
|
|
|
display: block !important;
|
|
|
|
min-width: 0;
|
|
|
|
padding-left: 0;
|
|
|
|
padding-right: 0;
|
|
|
|
overflow: hidden;
|
|
|
|
transition: all 250ms ease;
|
|
|
|
white-space: nowrap;
|
|
|
|
|
|
|
|
&:not(:focus) {
|
|
|
|
text-overflow: ellipsis;
|
|
|
|
}
|
|
|
|
|
|
|
|
&:hover,
|
|
|
|
&:focus {
|
|
|
|
background: $colorInputBg;
|
|
|
|
padding-left: $inputTextPLeftRight;
|
|
|
|
padding-right: $inputTextPLeftRight;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
&--labeled {
|
|
|
|
// TODO: replace .c-labeled-input with this
|
|
|
|
// An input used in the Toolbar
|
|
|
|
// Assumes label is before the input
|
|
|
|
@include cControl();
|
|
|
|
|
|
|
|
input {
|
|
|
|
margin-left: $interiorMarginSm;
|
|
|
|
}
|
Reimplementation of Display Layout in Vue (#2185)
* Saving work
* Fix conflict
* Position the panels by setting the style
* Put the div back with height set to 100% in ObjectView.
Add markup for drag handles.
* Use default position and dimensions if the layout panel is missing those values. Set s-status-editing on the main div to get the drag handles appear for now.
* Display Layout and frames major improvements
- Moved Toolbar out of Layout.vue and into DisplayLayout.vue;
- Styles for object view, Layout, Frame, etc.
- Major refactor of markup for frame;
- Added abs() mixin;
- Styles for is-editing done;
- Styles for
- TODO: styles for selectable, moveable, etc.
* Implement drill in gesture.
* Hide the background grid when a frame is drilled in
* Edit styling and toolbar WIP
- c-search styles moved mostly into mixin;
- New .c-labeled-input class;
- Browser overrides for number-type input spinners in webkit;
* Toolbar WIP
- Custom wrapped number input added;
- Toolbar buttons WIP;
* New toolbar buttons WIP
* Define a computed property for the css class object.
* Frame edit handles markup and styling
* Toolbar, editing and selection style refinements
- Moved toolbar back into Layout.vue;
- Hard-coded 'is-editing' onto __pane-main for now,
removed from DisplayLayout.vue;
- Styles for frame in LayoutFrame.vue:
-- editing default (dotted border)
-- editing .s-selected
-- .s-drilled-in (renamed .is-drilled-in)
* Refactoring button classes
- Lots of stuff broken right now;
- TODO: lots of renaming (c-menu-button, c-icon-button, etc.);
- Removed import of _controls in search.vue;
* Fixes for selection on nested selected elements
* Fix conflict
* Significant refactoring of button and click-icon classes
- Markup and CSS updated;
- Toolbar in good shape, prior to merge of vue-layout;
* Fix issues with relative font-sizing
* Add color palette markup and CSS
- Also added Layers menu example;
* Font, font-size glyphs and size menu, and more
- Added art for font glyph and renamed from .icon-T;
- Added new glyph for font-size;
- Fixed font-sizing in controls;
- Added font-size menu;
- Re-org'd toolbar items;
* Styling tweak for c-labeled-input
- Code cleanup as well;
* Fixes for toolbar toggleMenus and labeledNumberInput
* Implement resize and move for frames.
Added stub for drag 'n drop.
* Add custom checkbox control.
- Also, code cleanup.
* Add toggleButton component
- Code and examples
* Custom checkbox code cleanups, sanding
* - Persist new position/dimensions on the domain object when frames are moved/resized.
- Bypass the selection of the layout when dragging a frame is finished to keep the frame selected.
- Set the grid size to layoutGrid from domain object or use default if it's not specified.
* Fix conflict
* Implement resize and move for frames.
Added stub for drag 'n drop.
* Remove old layout view, was triggering View Switcher
and massive confusion when viewing Layouts
- TODO: add view provider for new Layout
* Enable drag and drop
* Changed example toggle-button
- Now uses show/hide frame as toggle-button example;
* Added pseudocode for handling drag/drop composition change
* Add copyright notice
* Layout frame and contained components styling
- Hyperlinks, Hyperlink buttons, Summary Widgets now use `.u-links`
which disables their pointer-events when editing;
- Hyperlink buttons, Summary Widgets now expand to fill their
containers in a Layout;
- Markup and JS for Hyperlinks, Hyperlink buttons, Summary Widgets
somewhat
modded to use new classing, applied in legacy scss files;
* Fix icon sizing error in BrowseBar
* Edit and selecting styling for Layouts
- WIP!
* Edit and selecting styling for Layout frames
- Color vars more standardized;
- Hover and *-selected styles;
* Getting vue-toolbar reverted back to latest
- Merging this branch with vue-layout may cause conflicts;
* - Implement drag ’n drop.
- Set hasFrame to a default value if it’s not set on the configuration.
- Emit an event to the parent wrapper component to update the ‘newDomainObject’ prop whenever the domain object is mutated in the display layout child component.
* Revert emitting 'update:object' event to the parent.
* New branch from topic-core-refactor to use as central point for common
CSS work
- Manually migrated changes from vue-toolbar, expect conflicts there and
in vue-layout;
* Manually update constants-snow from vue-toolbar branch
* Update markup to use latest button classnames
- c-menu-button > c-button--menu;
- c-icon-button > c-click-icon;
* Various from vue-conductor-style
- Mods to input styling;
- Input[] styles moved to _controls;
- New/revised constants vals;
* Resolve bizarre merge conflict when applying stash
* Code cleanup
* Alias and type-icon fixes
- More robust approach to alias indicators;
- Added alias indication to tree-item.vue;
- TODO: wire up alias indication tree-item.vue;
* Accessibility mods, convert elements to <button>
- Better reset styles for htmlInputReset mixin to allow use of <button>
without browser default styling;
- Create button;
- BrowseBar action buttons;
- c-click-icons;
- Removed Preview button from BrowseBar.vue;
* Fix styles that were affected during resolving conflicts
* Moved draggable into __label element rather than whole <li>
* Change the priority to 100 to get the view working properly
* Code cleanup
* Remove angular layout
* Display the object name in the frame header
* Tweaks to __header in LayoutFrame
- Name now does not overflow frame edge;
- Layout strategy now in parity with similar elements in main view;
* Remove test()
* Add a type for display layout to make it appear in the Create menu.
* Change the key type to 'layout'
* Clean up code and hide toolbar
* Enable toolbar, and revert changes in webpack config
* Remove commented code
* revert to the original code
2018-10-04 22:59:23 +00:00
|
|
|
}
|
2018-10-03 00:31:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
.c-labeled-input {
|
|
|
|
// An input used in the Toolbar
|
|
|
|
// Assumes label is before the input
|
|
|
|
@include cControl();
|
|
|
|
|
|
|
|
input {
|
|
|
|
margin-left: $interiorMarginSm;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/******************************************************** HYPERLINKS AND HYPERLINK BUTTONS */
|
|
|
|
.c-hyperlink {
|
|
|
|
&--link {
|
|
|
|
color: $colorKey;
|
|
|
|
}
|
|
|
|
|
|
|
|
&--button {
|
|
|
|
@include cButton();
|
2018-09-13 22:14:28 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/******************************************************** MENUS */
|
2018-09-11 17:10:59 +00:00
|
|
|
@mixin menuOuter() {
|
|
|
|
border-radius: $basicCr;
|
|
|
|
background: $colorMenuBg;
|
|
|
|
text-shadow: $shdwMenuText;
|
|
|
|
padding: $interiorMarginSm;
|
|
|
|
box-shadow: $shdwMenu;
|
|
|
|
display: block;
|
|
|
|
position: absolute;
|
|
|
|
z-index: 70;
|
|
|
|
}
|
|
|
|
|
|
|
|
@mixin menuInner() {
|
|
|
|
li {
|
2018-10-03 00:31:45 +00:00
|
|
|
@include cControl();
|
|
|
|
justify-content: start;
|
2018-09-11 17:10:59 +00:00
|
|
|
color: $colorMenuFg;
|
2018-10-03 00:31:45 +00:00
|
|
|
cursor: pointer;
|
2018-09-11 17:10:59 +00:00
|
|
|
display: flex;
|
|
|
|
padding: nth($menuItemPad, 1) nth($menuItemPad, 2);
|
|
|
|
transition: $transIn;
|
|
|
|
white-space: nowrap;
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
background: $colorMenuHovBg;
|
|
|
|
color: $colorMenuHovFg;
|
|
|
|
&:before {
|
|
|
|
color: $colorMenuHovIc;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
&:before {
|
|
|
|
color: $colorMenuIc;
|
|
|
|
font-size: 1em;
|
|
|
|
margin-right: $interiorMargin;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.c-menu {
|
|
|
|
@include menuOuter();
|
|
|
|
@include menuInner();
|
|
|
|
}
|
|
|
|
|
|
|
|
.c-super-menu {
|
|
|
|
// Two column layout, menu items on left with detail of hover element on right
|
|
|
|
@include menuOuter();
|
|
|
|
display: flex;
|
|
|
|
padding: $interiorMarginLg;
|
|
|
|
flex-direction: row;
|
|
|
|
|
|
|
|
> [class*="__"] {
|
|
|
|
$m: $interiorMarginLg;
|
|
|
|
flex: 1 1 50%;
|
|
|
|
&:first-child {
|
|
|
|
margin-right: $m;
|
|
|
|
}
|
|
|
|
|
|
|
|
&:last-child {
|
|
|
|
border-left: 1px solid $colorInteriorBorder;
|
|
|
|
padding-left: $m;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
&__menu {
|
|
|
|
@include menuInner();
|
|
|
|
overflow: auto;
|
|
|
|
|
|
|
|
ul {
|
|
|
|
margin-right: $interiorMarginSm; // Fend off scrollbar
|
|
|
|
}
|
|
|
|
|
|
|
|
li {
|
|
|
|
border-radius: $controlCr;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
&__item-description {
|
|
|
|
display: flex;
|
|
|
|
flex-direction: column;
|
|
|
|
justify-content: stretch;
|
|
|
|
|
|
|
|
.l-item-description {
|
|
|
|
&__name,
|
|
|
|
&__description {
|
|
|
|
margin-top: $interiorMarginLg;
|
|
|
|
}
|
|
|
|
|
|
|
|
&__icon {
|
|
|
|
min-height: 20%;
|
|
|
|
margin: 10% 25%;
|
|
|
|
}
|
|
|
|
|
|
|
|
&__name {
|
2018-10-10 19:45:46 +00:00
|
|
|
color: $colorMenuFg;
|
2018-09-11 17:10:59 +00:00
|
|
|
flex: 0 0 auto;
|
|
|
|
font-size: 1.25em;
|
|
|
|
}
|
|
|
|
|
|
|
|
&__description {
|
|
|
|
font-size: $fontBaseSize;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-10-03 00:31:45 +00:00
|
|
|
/******************************************************** PALETTES */
|
|
|
|
.c-palette {
|
|
|
|
display: flex;
|
|
|
|
flex-flow: column nowrap;
|
|
|
|
|
|
|
|
&__items {
|
|
|
|
flex: 1 1 auto;
|
|
|
|
display: grid;
|
|
|
|
grid-template-columns: repeat(10, [col] auto );
|
|
|
|
grid-gap: 1px;
|
|
|
|
}
|
|
|
|
|
|
|
|
&__item {
|
|
|
|
$d: 16px;
|
|
|
|
|
|
|
|
border: 1px solid transparent;
|
|
|
|
cursor: pointer;
|
|
|
|
width: 16px; height: 16px;
|
|
|
|
transition: $transOut;
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
transition: $transIn;
|
|
|
|
$o: 0.7;
|
|
|
|
border-color: rgba($paletteItemBorderOuterColorSelected, $o);
|
|
|
|
box-shadow: inset rgba($paletteItemBorderInnerColorSelected, $o) 0 0 0 1px;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.is-selected {
|
|
|
|
border-color: $paletteItemBorderOuterColorSelected !important;
|
|
|
|
border-width: 2px;
|
|
|
|
box-shadow: inset rgba($paletteItemBorderInnerColorSelected, 1) 0 0 0 1px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
&__item-none {
|
|
|
|
flex: 0 0 auto;
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
margin-bottom: $interiorMarginSm;
|
|
|
|
|
|
|
|
.c-palette__item {
|
|
|
|
@include noColor();
|
|
|
|
border-color: $paletteItemBorderInnerColor;
|
|
|
|
margin-right: $interiorMarginSm;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/******************************************************** TOOLBAR */
|
|
|
|
.c-ctrl-wrapper {
|
|
|
|
@include cCtrlWrapper();
|
|
|
|
}
|
|
|
|
|
|
|
|
.c-toolbar,
|
|
|
|
.c-toolbar .c-ctrl-wrapper {
|
|
|
|
display: flex;
|
|
|
|
align-items: stretch;
|
|
|
|
}
|
|
|
|
|
|
|
|
.c-toolbar {
|
|
|
|
height: 24px; // Need to standardize the height
|
|
|
|
|
|
|
|
.c-click-icon {
|
|
|
|
@include cControl();
|
|
|
|
$pLR: $interiorMargin - 1;
|
|
|
|
$pTB: 2px;
|
|
|
|
color: $colorBodyFg;
|
|
|
|
padding: $pTB $pLR;
|
|
|
|
|
|
|
|
&--swatched {
|
|
|
|
padding-bottom: floor($pTB / 2);
|
|
|
|
width: 2em; // Standardize the width
|
|
|
|
}
|
|
|
|
|
|
|
|
&[class*='--caution'] {
|
|
|
|
&:before {
|
|
|
|
color: $colorBtnCautionBg;
|
|
|
|
}
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
background: rgba($colorBtnCautionBgHov, 0.2);
|
|
|
|
:before {
|
|
|
|
color: $colorBtnCautionBgHov;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.c-labeled-input {
|
|
|
|
font-size: 0.9em;
|
|
|
|
input[type='number'] {
|
|
|
|
width: 40px; // Number input sucks and must have size set using this method
|
|
|
|
}
|
|
|
|
|
|
|
|
+ .c-labeled-input {
|
|
|
|
margin-left: $interiorMargin;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/********* Button Sets */
|
|
|
|
.c-button-set {
|
|
|
|
// When one set is adjacent to another, provides a divider between
|
|
|
|
|
|
|
|
display: inline-flex;
|
|
|
|
flex: 0 0 auto;
|
|
|
|
|
|
|
|
> * {
|
|
|
|
// Assume buttons are immediate descendants
|
|
|
|
flex: 0 0 auto;
|
|
|
|
|
|
|
|
+ * {
|
|
|
|
// margin-left: $interiorMarginSm;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
+ .c-button-set {
|
|
|
|
$m: $interiorMargin;
|
|
|
|
$b: 1px;
|
|
|
|
&:before {
|
|
|
|
content: '';
|
|
|
|
display: block;
|
|
|
|
width: $m + $b; // Allow for border
|
|
|
|
border-right: $b solid $colorInteriorBorder;
|
|
|
|
margin-right: $m;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
&[class*='--strip'] {
|
|
|
|
// Buttons are smashed together with minimal margin
|
|
|
|
// c-buttons don't have border-radius between buttons, creates a tool-button-strip look
|
|
|
|
// c-click-icons get grouped more closely together
|
|
|
|
&[class^="c-button"] {
|
|
|
|
// Only apply the following to buttons that have background, eg. c-button
|
|
|
|
border-radius: 0;
|
|
|
|
|
|
|
|
+ * {
|
|
|
|
margin-left: 1px;
|
|
|
|
}
|
|
|
|
|
|
|
|
&:first-child {
|
|
|
|
border-top-left-radius: $controlCr;
|
|
|
|
border-bottom-left-radius: $controlCr;
|
|
|
|
}
|
|
|
|
|
|
|
|
&:last-child {
|
|
|
|
border-top-right-radius: $controlCr;
|
|
|
|
border-bottom-right-radius: $controlCr;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2018-10-10 19:45:46 +00:00
|
|
|
|
|
|
|
/***************************************************** SLIDERS */
|
|
|
|
.c-slider {
|
|
|
|
@include cControl();
|
|
|
|
> * + * { margin-left: $interiorMargin; }
|
|
|
|
}
|