{
  "version": "experimental",
  "tags": [
    {
      "name": "ef-datetime-picker",
      "description": "Control to pick date and time",
      "attributes": [
        {
          "name": "min",
          "description": "Set minimum date",
          "type": "string",
          "default": "\"\""
        },
        {
          "name": "max",
          "description": "Set maximum date",
          "type": "string",
          "default": "\"\""
        },
        {
          "name": "weekdays-only",
          "description": "Only enable weekdays",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "weekends-only",
          "description": "Only enable weekends",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "first-day-of-week",
          "description": "Set the first day of the week.\n0 - for Sunday, 6 - for Saturday",
          "type": "number | undefined"
        },
        {
          "name": "range",
          "description": "Set to switch to range select mode",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "value",
          "description": "Current date time value",
          "type": "string",
          "default": "\"\""
        },
        {
          "name": "values",
          "description": "Set multiple selected values",
          "type": "string[]",
          "default": "[]"
        },
        {
          "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": "opened",
          "description": "Toggles the opened state of the list",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "input-trigger-disabled",
          "description": "Only open picker panel when calendar icon is clicked.\nClicking on the input will no longer open the picker.",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "prevent-close-on-select",
          "description": "Prevents the Picker from closing on date selection.\nNote that if timepicker is true, the picker will remain open regardless of this flag.",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "input-disabled",
          "description": "Disable input part of the picker",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "popup-disabled",
          "description": "Disable the popup",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "format",
          "description": "Set the datetime format\nBased on date-fns formats (https://date-fns.org/)",
          "type": "string",
          "default": "\"dd-MMM-yyyy\""
        },
        {
          "name": "timepicker",
          "description": "Toggle to display the time picker",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "duplex",
          "description": "Display two calendar pickers.",
          "type": "\"\" | \"consecutive\" | \"split\""
        },
        {
          "name": "view",
          "description": "Set the current calendar view.\nAccepted format: 'yyyy-MM'",
          "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"
        },
        {
          "name": "warning",
          "description": "Set warning state",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "placeholder",
          "description": "Set placeholder text default depends on format",
          "type": "string",
          "default": "\"dd-MMM-yyyy\""
        },
        {
          "name": "clears",
          "description": "Show clears button",
          "type": "boolean",
          "default": "false"
        }
      ],
      "properties": [
        {
          "name": "min",
          "attribute": "min",
          "description": "Set minimum date",
          "type": "string",
          "default": "\"\""
        },
        {
          "name": "max",
          "attribute": "max",
          "description": "Set maximum date",
          "type": "string",
          "default": "\"\""
        },
        {
          "name": "weekdaysOnly",
          "attribute": "weekdays-only",
          "description": "Only enable weekdays",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "weekendsOnly",
          "attribute": "weekends-only",
          "description": "Only enable weekends",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "filter",
          "description": "Custom filter, used for enabling/disabling certain dates",
          "type": "DatetimePickerFilter | null"
        },
        {
          "name": "firstDayOfWeek",
          "attribute": "first-day-of-week",
          "description": "Set the first day of the week.\n0 - for Sunday, 6 - for Saturday",
          "type": "number | undefined"
        },
        {
          "name": "range",
          "attribute": "range",
          "description": "Set to switch to range select mode",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "value",
          "attribute": "value",
          "description": "Current date time value",
          "type": "string",
          "default": "\"\""
        },
        {
          "name": "values",
          "attribute": "values",
          "description": "Set multiple selected values",
          "type": "string[]",
          "default": "[]"
        },
        {
          "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": "opened",
          "attribute": "opened",
          "description": "Toggles the opened state of the list",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "inputTriggerDisabled",
          "attribute": "input-trigger-disabled",
          "description": "Only open picker panel when calendar icon is clicked.\nClicking on the input will no longer open the picker.",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "preventCloseOnSelect",
          "attribute": "prevent-close-on-select",
          "description": "Prevents the Picker from closing on date selection.\nNote that if timepicker is true, the picker will remain open regardless of this flag.",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "inputDisabled",
          "attribute": "input-disabled",
          "description": "Disable input part of the picker",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "popupDisabled",
          "attribute": "popup-disabled",
          "description": "Disable the popup",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "format",
          "attribute": "format",
          "description": "Set the datetime format\nBased on date-fns formats (https://date-fns.org/)",
          "type": "string",
          "default": "\"dd-MMM-yyyy\""
        },
        {
          "name": "timepicker",
          "attribute": "timepicker",
          "description": "Toggle to display the time picker",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "duplex",
          "attribute": "duplex",
          "description": "Display two calendar pickers.",
          "type": "\"\" | \"consecutive\" | \"split\""
        },
        {
          "name": "view",
          "attribute": "view",
          "description": "Set the current calendar view.\nAccepted format: 'yyyy-MM'",
          "type": "string",
          "default": "\"\""
        },
        {
          "name": "views",
          "description": "Set the current calendar views for duplex mode\nAccepted format: 'yyyy-MM'",
          "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"
        },
        {
          "name": "warning",
          "attribute": "warning",
          "description": "Set warning state",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "placeholder",
          "attribute": "placeholder",
          "description": "Set placeholder text default depends on format",
          "type": "string",
          "default": "\"dd-MMM-yyyy\""
        },
        {
          "name": "clears",
          "attribute": "clears",
          "description": "Show clears button",
          "type": "boolean",
          "default": "false"
        }
      ],
      "events": [
        {
          "name": "opened-changed",
          "description": "Fired when the user opens or closes control's popup. The event is not triggered if `opened` property is changed programmatically."
        },
        {
          "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 the user inputs invalid value. The event is not triggered if `error` property is changed programmatically."
        },
        {
          "name": "view-changed",
          "description": "Fired when the user changes view in calendar e.g. change to next month view. The event is not triggered if `view` property is changed programmatically."
        }
      ],
      "slots": [
        {
          "name": "header",
          "description": "Slot to add custom contents at the top of popup"
        },
        {
          "name": "right",
          "description": "Slot to add custom contents at the right of popup"
        },
        {
          "name": "footer",
          "description": "Slot to add custom contents at the bottom of popup"
        },
        {
          "name": "left",
          "description": "Slot to add custom contents at the left of popup"
        },
        {
          "name": "yyyy-MM-dd",
          "description": "Slot to add custom contents on any date cells e.g. `2023-01-01`. Use `yyyy` or `yyyy-MM` if the cell is year or month."
        },
        {
          "name": "from-yyyy-MM-dd",
          "description": "Slot to add custom contents on any date cells of left calendar in `duplex` mode e.g. `from-2023-01-01`. Use `from-yyyy` or `from-yyyy-MM` if the cell is year or month"
        },
        {
          "name": "to-yyyy-MM-dd",
          "description": "Slot to add custom contents on any date cells of right calendar in `duplex` mode e.g. `to-2023-01-01`. Use `to-yyyy` or `to-yyyy-MM` if the cell is year or month"
        }
      ],
      "methods": [
        {
          "name": "validateInput",
          "description": "Validates the input, marking the element as invalid if its value does not meet the validation criteria.",
          "params": []
        },
        {
          "name": "updateCalendarSlot",
          "description": "Request to update slot on the calendar while the overlay is open",
          "params": []
        }
      ]
    }
  ]
}