import constants from "./constants";
import viewStyles from "./view.module.css";
import borderValues from "./border.module.css";
import colorValues from "./colors.module.css";
import boxShadowValues from "./boxshadows.module.css";
import typographyValues from "./typography.module.css";

export default {
  [constants.border_radius]: {
    propertyName: "borderRadius",
    propertyStyle: viewStyles.border_radius,
    propertyList: borderValues,
    propertyDisplayName: "border radius {0}",
    propertyFilter: (a) => a.startsWith("border_radius")
  },
  [constants.border_sizes]: {
    propertyType: "border_size",
    propertyName: "borderWidth",
    propertyStyle: viewStyles.border_sizes,
    propertyList: borderValues,
    propertyDisplayName: "border width {0}",
    propertyFilter: (a, type) => a.startsWith(type)
  },

  [constants.colors]: {
    propertyName: "backgroundColor",
    propertyStyle: viewStyles.color_values,
    propertyList: colorValues,
    propertyDisplayName: "color code {0}"
  },
  [constants.box_shadow]: {
    propertyName: "boxShadow",
    propertyStyle: viewStyles.boxshadow_values,
    propertyList: boxShadowValues,
    propertyDisplayName: "box shadow color"
  },

  [constants.text_sizes]: {
    propertyType: "textsize",
    propertyName: "fontSize",
    propertyStyle: "",
    propertyList: typographyValues,
    propertyDisplayName: "font size {0}",
    propertyFilter: (a, type) => a.startsWith(type)
  },
  [constants.text_weight]: {
    propertyType: "textweight",
    propertyName: "fontWeight",
    propertyStyle: "",
    propertyList: typographyValues,
    propertyDisplayName: "font weight {0}",
    propertyFilter: (a, type) => a.startsWith(type)
  },
  [constants.text_styles]: {
    propertyType: "textstyle",
    propertyName: "fontStyle",
    propertyStyle: "",
    propertyList: typographyValues,
    propertyDisplayName: "font style {0}",
    propertyFilter: (a, type) => a.startsWith(type)
  },
  [constants.text_lineheight]: {
    propertyType: "textlineheight",
    propertyName: "lineHeight",
    propertyStyle: "",
    propertyList: typographyValues,
    propertyDisplayName: "text line height {0}",
    propertyFilter: (a, type) => a.startsWith(type)
  }
};
