{
  "version": "experimental",
  "tags": [
    {
      "name": "ef-time-picker",
      "description": "Control the time input",
      "attributes": [
        {
          "name": "custom-validation",
          "description": "Disable automatic build-in validation checking for partial input of hour, minute & second (if applicable) segments",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "hours",
          "description": "Hours time segment in 24hr format",
          "type": "number | null"
        },
        {
          "name": "minutes",
          "description": "Minutes time segment",
          "type": "number | null"
        },
        {
          "name": "seconds",
          "description": "Seconds time segment",
          "type": "number | null"
        },
        {
          "name": "am-pm",
          "description": "Toggles 12hr time display",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "show-seconds",
          "description": "Flag to show seconds time segment in display.\nSeconds are automatically shown when `hh:mm:ss` time format is provided as a value.",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "value",
          "description": "Current time value",
          "type": "string",
          "default": "\"\""
        },
        {
          "name": "readonly",
          "description": "Set readonly state",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "disabled",
          "description": "Set disabled state",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "error",
          "description": "Set error state",
          "type": "boolean",
          "default": "false"
        }
      ],
      "properties": [
        {
          "name": "customValidation",
          "attribute": "custom-validation",
          "description": "Disable automatic build-in validation checking for partial input of hour, minute & second (if applicable) segments",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "hours",
          "attribute": "hours",
          "description": "Hours time segment in 24hr format",
          "type": "number | null"
        },
        {
          "name": "minutes",
          "attribute": "minutes",
          "description": "Minutes time segment",
          "type": "number | null"
        },
        {
          "name": "seconds",
          "attribute": "seconds",
          "description": "Seconds time segment",
          "type": "number | null"
        },
        {
          "name": "amPm",
          "attribute": "am-pm",
          "description": "Toggles 12hr time display",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "showSeconds",
          "attribute": "show-seconds",
          "description": "Flag to show seconds time segment in display.\nSeconds are automatically shown when `hh:mm:ss` time format is provided as a value.",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "value",
          "attribute": "value",
          "description": "Current time value",
          "type": "string",
          "default": "\"\""
        },
        {
          "name": "readonly",
          "attribute": "readonly",
          "description": "Set readonly state",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "disabled",
          "attribute": "disabled",
          "description": "Set disabled state",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "error",
          "attribute": "error",
          "description": "Set error state",
          "type": "boolean",
          "default": "false"
        }
      ],
      "events": [
        {
          "name": "value-changed",
          "description": "Fired when the user commits a value change. The event is not triggered if `value` property is changed programmatically."
        },
        {
          "name": "error-changed",
          "description": "Fired when user inputs invalid value. The event is not triggered if `error` property is changed programmatically."
        }
      ],
      "methods": [
        {
          "name": "checkValidity",
          "description": "Returns `true` if all input segments contain valid data or empty. Otherwise, returns false.",
          "params": []
        },
        {
          "name": "reportValidity",
          "description": "Validate input. Mark as error if input is invalid",
          "params": []
        },
        {
          "name": "toggle",
          "description": "Toggles the AM/PM state",
          "params": []
        }
      ]
    }
  ]
}