/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ "use strict"; const PropTypes = require("resource://devtools/client/shared/vendor/react-prop-types.js"); /** * A flex item computed style properties. */ const flexItemProperties = (exports.flexItemProperties = { // The computed value of flex-basis. "flex-basis": PropTypes.string, // The computed value of flex-grow. "flex-grow": PropTypes.string, // The computed value of min-height. "min-height": PropTypes.string, // The computed value of min-width. "min-width": PropTypes.string, // The computed value of max-height. "max-height": PropTypes.string, // The computed value of max-width. "max-width": PropTypes.string, // The computed height of the flex item element. height: PropTypes.string, // The computed width of the flex item element. width: PropTypes.string, }); /** * A flex item sizing data. */ const flexItemSizing = (exports.flexItemSizing = { // The max size of the flex item in the cross axis. crossMaxSize: PropTypes.number, // The min size of the flex item in the cross axis. crossMinSize: PropTypes.number, // The size of the flex item in the main axis before the flex sizing algorithm is // applied. This is also called the "flex base size" in the spec. mainBaseSize: PropTypes.number, // The value that the flex sizing algorithm "wants" to use to stretch or shrink the // item, before clamping to the item's main min and max sizes. mainDeltaSize: PropTypes.number, // The max size of the flex item in the main axis. mainMaxSize: PropTypes.number, // The min size of the flex item in the maxin axis. mainMinSize: PropTypes.number, }); /** * A flex item data. */ const flexItem = (exports.flexItem = { // The actor ID of the flex item. actorID: PropTypes.string, // The computed style properties of the flex item. computedStyle: PropTypes.object, // The flex item sizing data. flexItemSizing: PropTypes.shape(flexItemSizing), // The NodeFront of the flex item. nodeFront: PropTypes.object, // The authored style properties of the flex item. properties: PropTypes.shape(flexItemProperties), }); /** * A flex container computed style properties. */ const flexContainerProperties = (exports.flexContainerProperties = { // The computed value of align-content. "align-content": PropTypes.string, // The computed value of align-items. "align-items": PropTypes.string, // The computed value of flex-direction. "flex-direction": PropTypes.string, // The computed value of flex-wrap. "flex-wrap": PropTypes.string, // The computed value of justify-content. "justify-content": PropTypes.string, }); /** * A flex container data. */ const flexContainer = (exports.flexContainer = { // The actor ID of the flex container. actorID: PropTypes.string, // An array of flex items belonging to the flex container. flexItems: PropTypes.arrayOf(PropTypes.shape(flexItem)), // Whether or not the flex container data represents the selected flex container // or the parent flex container. This is true if the flex container data represents // the parent flex container. isFlexItemContainer: PropTypes.bool, // The NodeFront actor ID of the flex item to display in the flex item sizing // properties. flexItemShown: PropTypes.string, // The NodeFront of the flex container. nodeFront: PropTypes.object, // The computed style properties of the flex container. properties: PropTypes.shape(flexContainerProperties), }); /** * The Flexbox UI state. */ exports.flexbox = { // The color of the flexbox highlighter overlay. color: PropTypes.string, // The selected flex container. flexContainer: PropTypes.shape(flexContainer), // The selected flex container can also be a flex item. This object contains the // parent flex container properties. flexItemContainer: PropTypes.shape(flexContainer), // Whether or not the flexbox highlighter is highlighting the flex container. highlighted: PropTypes.bool, };