import { Component, h, Prop, State, Watch } from "@stencil/core";
export class CorejamType {
  constructor() {
    this.as = "span";
    this.droppableElements = ["corejam-box"];
  }
  async componentWillLoad() {
    await this.computeStyles();
  }
  async computeStyles() {
    const hash = await (await import("../../utils/style")).calculateStyles(this);
    this.hash = hash;
  }
  render() {
    const Type = this.as;
    return (h(Type, { class: this.hash },
      h("slot", null)));
  }
  static get is() { return "corejam-type"; }
  static get properties() { return {
    "family": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "Font.Family",
        "resolved": "\"mono\" | \"sans\" | \"serif\"",
        "references": {
          "Font": {
            "location": "import",
            "path": "./types"
          }
        }
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [],
        "text": ""
      },
      "attribute": "family",
      "reflect": true
    },
    "weight": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "Font.Weight",
        "resolved": "\"black\" | \"bold\" | \"extrabold\" | \"hairline\" | \"medium\" | \"normal\" | \"semibold\" | \"thin\"",
        "references": {
          "Font": {
            "location": "import",
            "path": "./types"
          }
        }
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [],
        "text": ""
      },
      "attribute": "weight",
      "reflect": true
    },
    "size": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "Font.Size",
        "resolved": "\"2xl\" | \"3xl\" | \"4xl\" | \"5xl\" | \"6xl\" | \"base\" | \"lg\" | \"sm\" | \"xl\" | \"xs\"",
        "references": {
          "Font": {
            "location": "import",
            "path": "./types"
          }
        }
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [],
        "text": ""
      },
      "attribute": "size",
      "reflect": true
    },
    "smooth": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "Font.Smoothnes",
        "resolved": "\"antialiased\" | \"subpixel-antialiased\"",
        "references": {
          "Font": {
            "location": "import",
            "path": "./types"
          }
        }
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [],
        "text": ""
      },
      "attribute": "smooth",
      "reflect": true
    },
    "fontStyle": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "Font.Style",
        "resolved": "\"italic\" | \"not-italic\"",
        "references": {
          "Font": {
            "location": "import",
            "path": "./types"
          }
        }
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [],
        "text": ""
      },
      "attribute": "font-style",
      "reflect": true
    },
    "spacing": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "Font.Spacing",
        "resolved": "\"normal\" | \"tight\" | \"tighter\" | \"wide\" | \"wider\" | \"widest\"",
        "references": {
          "Font": {
            "location": "import",
            "path": "./types"
          }
        }
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [],
        "text": ""
      },
      "attribute": "spacing",
      "reflect": true
    },
    "decoration": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "Font.Decoration",
        "resolved": "\"line-through\" | \"no-underline\" | \"underline\"",
        "references": {
          "Font": {
            "location": "import",
            "path": "./types"
          }
        }
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [],
        "text": ""
      },
      "attribute": "decoration",
      "reflect": true
    },
    "mdWeight": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "Font.Weight",
        "resolved": "\"black\" | \"bold\" | \"extrabold\" | \"hairline\" | \"medium\" | \"normal\" | \"semibold\" | \"thin\"",
        "references": {
          "Font": {
            "location": "import",
            "path": "./types"
          }
        }
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [],
        "text": ""
      },
      "attribute": "md-weight",
      "reflect": true
    },
    "lgFocusWeight": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [],
        "text": ""
      },
      "attribute": "lg-focus-weight",
      "reflect": true
    },
    "transform": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "Font.Transform",
        "resolved": "\"capitalize\" | \"lowercase\" | \"normal-case\" | \"uppercase\"",
        "references": {
          "Font": {
            "location": "import",
            "path": "./types"
          }
        }
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [],
        "text": ""
      },
      "attribute": "transform",
      "reflect": true
    },
    "textStyle": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [],
        "text": ""
      },
      "attribute": "text-style",
      "reflect": true
    },
    "align": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "Font.Align",
        "resolved": "\"center\" | \"left\" | \"right\"",
        "references": {
          "Font": {
            "location": "import",
            "path": "./types"
          }
        }
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [],
        "text": ""
      },
      "attribute": "align",
      "reflect": true
    },
    "lineHeight": {
      "type": "any",
      "mutable": false,
      "complexType": {
        "original": "Font.lineHeight",
        "resolved": "\"loose\" | \"none\" | \"normal\" | \"relaxed\" | \"snug\" | \"tight\" | 10 | 3 | 4 | 5 | 6 | 7 | 8 | 9",
        "references": {
          "Font": {
            "location": "import",
            "path": "./types"
          }
        }
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [],
        "text": ""
      },
      "attribute": "line-height",
      "reflect": true
    },
    "color": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "General.Color",
        "resolved": "string",
        "references": {
          "General": {
            "location": "import",
            "path": "./types"
          }
        }
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [],
        "text": ""
      },
      "attribute": "color",
      "reflect": true
    },
    "as": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "Font.As",
        "resolved": "\"b\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"i\" | \"p\" | \"span\"",
        "references": {
          "Font": {
            "location": "import",
            "path": "./types"
          }
        }
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [],
        "text": ""
      },
      "attribute": "as",
      "reflect": true,
      "defaultValue": "\"span\""
    },
    "droppableElements": {
      "type": "unknown",
      "mutable": true,
      "complexType": {
        "original": "string[]",
        "resolved": "string[]",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [],
        "text": ""
      },
      "defaultValue": "[\"corejam-box\"]"
    }
  }; }
  static get states() { return {
    "hash": {}
  }; }
  static get watchers() { return [{
      "propName": "color",
      "methodName": "computeStyles"
    }, {
      "propName": "family",
      "methodName": "computeStyles"
    }, {
      "propName": "size",
      "methodName": "computeStyles"
    }, {
      "propName": "fontStyle",
      "methodName": "computeStyles"
    }, {
      "propName": "spacing",
      "methodName": "computeStyles"
    }, {
      "propName": "decoration",
      "methodName": "computeStyles"
    }, {
      "propName": "transform",
      "methodName": "computeStyles"
    }, {
      "propName": "align",
      "methodName": "computeStyles"
    }]; }
}
