'use strict';

var int = require('../int.js');
var index = require('../numbers/index.js');
var units = require('../numbers/units.js');
var transform = require('./transform.js');

const numberValueTypes = {
    // Border props
    borderWidth: units.px,
    borderTopWidth: units.px,
    borderRightWidth: units.px,
    borderBottomWidth: units.px,
    borderLeftWidth: units.px,
    borderRadius: units.px,
    borderTopLeftRadius: units.px,
    borderTopRightRadius: units.px,
    borderBottomRightRadius: units.px,
    borderBottomLeftRadius: units.px,
    // Positioning props
    width: units.px,
    maxWidth: units.px,
    height: units.px,
    maxHeight: units.px,
    top: units.px,
    right: units.px,
    bottom: units.px,
    left: units.px,
    inset: units.px,
    insetBlock: units.px,
    insetBlockStart: units.px,
    insetBlockEnd: units.px,
    insetInline: units.px,
    insetInlineStart: units.px,
    insetInlineEnd: units.px,
    // Spacing props
    padding: units.px,
    paddingTop: units.px,
    paddingRight: units.px,
    paddingBottom: units.px,
    paddingLeft: units.px,
    paddingBlock: units.px,
    paddingBlockStart: units.px,
    paddingBlockEnd: units.px,
    paddingInline: units.px,
    paddingInlineStart: units.px,
    paddingInlineEnd: units.px,
    margin: units.px,
    marginTop: units.px,
    marginRight: units.px,
    marginBottom: units.px,
    marginLeft: units.px,
    marginBlock: units.px,
    marginBlockStart: units.px,
    marginBlockEnd: units.px,
    marginInline: units.px,
    marginInlineStart: units.px,
    marginInlineEnd: units.px,
    // Typography
    fontSize: units.px,
    // Misc
    backgroundPositionX: units.px,
    backgroundPositionY: units.px,
    ...transform.transformValueTypes,
    zIndex: int.int,
    // SVG
    fillOpacity: index.alpha,
    strokeOpacity: index.alpha,
    numOctaves: int.int,
};

exports.numberValueTypes = numberValueTypes;
