{
  "schemaVersion": "1.0.0",
  "readme": "",
  "modules": [
    {
      "kind": "javascript-module",
      "path": "src/files-dropzone.js",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "FilesDropzone",
          "cssProperties": [
            {
              "description": "The border width of the dropzone.",
              "name": "--dropzone-border-width"
            },
            {
              "description": "The border style of the dropzone.",
              "name": "--dropzone-border-style"
            },
            {
              "description": "The border radius of the dropzone.",
              "name": "--dropzone-border-radius"
            },
            {
              "description": "The border color of the dropzone.",
              "name": "--dropzone-border-color"
            },
            {
              "description": "The border color of the dropzone when dragging over it.",
              "name": "--dropzone-border-color-dragover"
            },
            {
              "description": "The border color of the dropzone when hovering over it.",
              "name": "--dropzone-border-color-hover"
            },
            {
              "description": "The background color of the dropzone.",
              "name": "--dropzone-background-color"
            },
            {
              "description": "The background color of the dropzone when dragging over it.",
              "name": "--dropzone-background-color-dragover"
            },
            {
              "description": "The background color of the dropzone when hovering over it.",
              "name": "--dropzone-background-color-hover"
            },
            {
              "description": "The text color of the dropzone.",
              "name": "--dropzone-body-color"
            },
            {
              "description": "The text color of the dropzone when dragging over it.",
              "name": "--dropzone-body-color-dragover"
            },
            {
              "description": "The text color of the dropzone when hovering over it.",
              "name": "--dropzone-body-color-hover"
            },
            {
              "description": "The RGB value of the dropzone's focus shadow.",
              "name": "--dropzone-focus-shadow-rgb"
            },
            {
              "description": "The box shadow of the dropzone when focused.",
              "name": "--dropzone-focus-box-shadow"
            },
            {
              "description": "The transition's duration for the dropzone area.",
              "name": "--dropzone-transition-duration"
            }
          ],
          "cssParts": [
            {
              "description": "The dropzone element.",
              "name": "dropzone"
            },
            {
              "description": "The state of the dropzone when dragging over it.",
              "name": "dropzone--dragover"
            }
          ],
          "slots": [
            {
              "description": "The default slot content of the dropzone.",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "ERROR_CODES",
              "static": true,
              "default": "({ FILE_DIALOG_OPEN_FAILED: 'FILE_DIALOG_OPEN_FAILED', FILE_INPUT_CHANGE_FAILED: 'FILE_INPUT_CHANGE_FAILED', DROP_EVENT_PROCESSING_FAILED: 'DROP_EVENT_PROCESSING_FAILED', UNKNOWN_ERROR: 'UNKNOWN_ERROR' })",
              "description": "Central list of error codes used in drop error event.",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "REJECTION_CODES",
              "static": true,
              "default": "({ TOO_MANY_FILES: 'TOO_MANY_FILES', FILE_TOO_LARGE: 'FILE_TOO_LARGE', FILE_TOO_SMALL: 'FILE_TOO_SMALL', INVALID_MIME_TYPE: 'INVALID_MIME_TYPE' })",
              "description": "Central list of rejection codes for files that are rejected during the drop process.",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "#fileInput",
              "privacy": "private",
              "type": {
                "text": "Nullable<HTMLInputElement>"
              },
              "default": "null"
            },
            {
              "kind": "field",
              "name": "#dropzoneEl",
              "privacy": "private",
              "type": {
                "text": "Nullable<HTMLElement>"
              },
              "default": "null"
            },
            {
              "kind": "field",
              "name": "accept",
              "description": "A comma-separated list of unique file type specifiers describing file types to allow.",
              "type": {
                "text": "string"
              },
              "default": "''",
              "attribute": "accept"
            },
            {
              "kind": "field",
              "name": "disabled",
              "description": "Determines whether the dropzone is disabled.",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "attribute": "disabled"
            },
            {
              "kind": "field",
              "name": "maxFiles",
              "description": "The maximum number of files allowed to be dropped.",
              "type": {
                "text": "number"
              },
              "default": "Infinity",
              "attribute": "max-files"
            },
            {
              "kind": "field",
              "name": "maxSize",
              "description": "The maximum file size allowed in bytes.",
              "type": {
                "text": "number"
              },
              "default": "Infinity",
              "attribute": "max-size"
            },
            {
              "kind": "field",
              "name": "minSize",
              "description": "The minimum file size allowed in bytes.",
              "type": {
                "text": "number"
              },
              "default": "0",
              "attribute": "min-size"
            },
            {
              "kind": "field",
              "name": "multiple",
              "description": "Allows multiple files to be dropped.",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "attribute": "multiple"
            },
            {
              "kind": "field",
              "name": "autoFocus",
              "description": "Automatically focuses the dropzone when it's connected to the DOM.",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "attribute": "auto-focus"
            },
            {
              "kind": "field",
              "name": "noStyle",
              "description": "Prevents the dropzone from applying any styling.",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "attribute": "no-style"
            },
            {
              "kind": "method",
              "name": "#emitEvent",
              "privacy": "private",
              "parameters": [
                {
                  "name": "name",
                  "description": "The name of the event.",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "detail",
                  "description": "The detail payload of the event.",
                  "optional": true,
                  "type": {
                    "text": "D"
                  }
                },
                {
                  "name": "init",
                  "description": "Override the default event initialization options.",
                  "optional": true,
                  "type": {
                    "text": "CustomEventInit<D>"
                  }
                }
              ],
              "description": "Emit a custom event with the given name and detail.",
              "return": {
                "type": {
                  "text": "boolean"
                }
              }
            },
            {
              "kind": "method",
              "name": "#emitErrorEvent",
              "privacy": "private",
              "parameters": [
                {
                  "name": "code",
                  "description": "Stable identifier for the type of error that occurred.",
                  "type": {
                    "text": "FilesDropzoneErrorCode"
                  }
                },
                {
                  "name": "error",
                  "description": "The underlying error that triggered the event.",
                  "type": {
                    "text": "unknown"
                  }
                }
              ],
              "description": "Emit a standardized error event with typed detail."
            },
            {
              "kind": "field",
              "name": "#handleFileInputChange",
              "privacy": "private",
              "description": "Handles the change event of the file input.",
              "parameters": [
                {
                  "description": "The event object.",
                  "name": "evt",
                  "type": {
                    "text": "*"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "#handleDragEnter",
              "privacy": "private",
              "description": "Handles the dragenter event of the dropzone."
            },
            {
              "kind": "field",
              "name": "#handleDragOver",
              "privacy": "private",
              "description": "Handles the dragover event of the dropzone.",
              "parameters": [
                {
                  "description": "The event object.",
                  "name": "evt",
                  "type": {
                    "text": "*"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "#handleDragLeave",
              "privacy": "private",
              "description": "Handles the dragleave event of the dropzone."
            },
            {
              "kind": "field",
              "name": "#handleDrop",
              "privacy": "private",
              "description": "Handles the drop event of the dropzone.",
              "parameters": [
                {
                  "description": "The event object.",
                  "name": "evt",
                  "type": {
                    "text": "*"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "#handleClick",
              "privacy": "private",
              "description": "Handles the click event of the dropzone."
            },
            {
              "kind": "field",
              "name": "#handleKeyUp",
              "privacy": "private",
              "description": "Handles the keyup event of the dropzone.",
              "parameters": [
                {
                  "description": "The event object.",
                  "name": "evt",
                  "type": {
                    "text": "*"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#handleFilesSelect",
              "privacy": "private",
              "parameters": [
                {
                  "name": "files",
                  "description": "The files to handle.",
                  "type": {
                    "text": "File[]"
                  }
                }
              ],
              "description": "Handles the selection of files."
            },
            {
              "kind": "method",
              "name": "openFileDialog",
              "description": "Opens the file dialog programmatically."
            },
            {
              "kind": "method",
              "name": "#upgradeProperty",
              "privacy": "private",
              "parameters": [
                {
                  "name": "prop",
                  "description": "The property name to upgrade.",
                  "type": {
                    "text": "'accept' | 'disabled' | 'maxFiles' | 'maxSize' | 'minSize' | 'multiple' | 'autoFocus' | 'noStyle'"
                  }
                }
              ],
              "description": "This is to safe guard against cases where, for instance, a framework may have added the element to the page and set a\nvalue on one of its properties, but lazy loaded its definition. Without this guard, the upgraded element would miss that\nproperty and the instance property would prevent the class property setter from ever being called.\n\nhttps://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties"
            },
            {
              "kind": "method",
              "name": "defineCustomElement",
              "static": true,
              "parameters": [
                {
                  "name": "elementName",
                  "default": "COMPONENT_NAME",
                  "description": "The name of the custom element.",
                  "optional": true,
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Defines a custom element with the given name.\nThe name must contain a dash (-)."
            }
          ],
          "events": [
            {
              "description": "Fired when files are dropped.",
              "name": "files-dropzone-drop"
            },
            {
              "description": "Fired when files dropped files are accepted.",
              "name": "files-dropzone-drop-accepted"
            },
            {
              "description": "Fired when files dropped files are rejected.",
              "name": "files-dropzone-drop-rejected"
            },
            {
              "description": "Fired when files are dragged into the dropzone.",
              "name": "files-dropzone-dragenter"
            },
            {
              "description": "Fired when files are dragged over the dropzone.",
              "name": "files-dropzone-dragover"
            },
            {
              "description": "Fired when files are dragged out of the dropzone.",
              "name": "files-dropzone-dragleave"
            },
            {
              "description": "Fired when there is any error in the process of reading dropped files or directories.",
              "name": "files-dropzone-error"
            }
          ],
          "attributes": [
            {
              "name": "accept",
              "description": "A comma-separated list of unique file type specifiers describing file types to allow.",
              "type": {
                "text": "string"
              },
              "default": "''",
              "fieldName": "accept"
            },
            {
              "name": "disabled",
              "description": "Determines whether the dropzone is disabled.",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "fieldName": "disabled"
            },
            {
              "name": "multiple",
              "description": "Allows multiple files to be dropped.",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "fieldName": "multiple"
            },
            {
              "name": "max-files",
              "description": "The maximum number of files allowed to be dropped.",
              "type": {
                "text": "number"
              },
              "default": "Infinity",
              "fieldName": "maxFiles"
            },
            {
              "name": "max-size",
              "description": "The maximum file size allowed in bytes.",
              "type": {
                "text": "number"
              },
              "default": "Infinity",
              "fieldName": "maxSize"
            },
            {
              "name": "min-size",
              "description": "The minimum file size allowed in bytes.",
              "type": {
                "text": "number"
              },
              "default": "0",
              "fieldName": "minSize"
            },
            {
              "name": "auto-focus",
              "description": "Automatically focuses the dropzone when it's connected to the DOM.",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "fieldName": "autoFocus"
            },
            {
              "name": "no-style",
              "description": "Prevents the dropzone from applying any styling.",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "fieldName": "noStyle"
            }
          ],
          "superclass": {
            "name": "HTMLElement"
          },
          "tagName": "files-dropzone",
          "customElement": true,
          "summary": "A custom element that allows users to drag and drop files into it."
        },
        {
          "kind": "variable",
          "name": "detail",
          "type": {
            "text": "FilesDropzoneErrorDetail"
          },
          "default": "{ code, error }"
        }
      ],
      "exports": [
        {
          "kind": "custom-element-definition",
          "name": "files-dropzone",
          "declaration": {
            "name": "FilesDropzone",
            "module": "src/files-dropzone.js"
          }
        },
        {
          "kind": "js",
          "name": "FilesDropzone",
          "declaration": {
            "name": "FilesDropzone",
            "module": "src/files-dropzone.js"
          }
        }
      ]
    }
  ]
}
