{
  "schemaVersion": "1.0.0",
  "readme": "",
  "modules": [
    {
      "kind": "javascript-module",
      "path": "include/keynav-list.js",
      "declarations": [],
      "exports": [
        {
          "kind": "custom-element-definition",
          "name": "bp-keynav-list",
          "declaration": {
            "name": "BpKeynavList",
            "module": "/keynav/index.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "index.js",
      "declarations": [
        {
          "kind": "variable",
          "name": "VERSION",
          "type": {
            "text": "string"
          },
          "default": "'0.0.0'"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "*",
          "declaration": {
            "name": "*",
            "module": "internals/controllers/keynav.controller.js"
          }
        },
        {
          "kind": "js",
          "name": "VERSION",
          "declaration": {
            "name": "VERSION",
            "module": "index.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "internals/controllers/keynav.controller.js",
      "declarations": [
        {
          "kind": "function",
          "name": "keynav",
          "parameters": [
            {
              "name": "fn",
              "optional": true,
              "type": {
                "text": "(host: T) => KeyGridConfig"
              }
            }
          ],
          "description": "https://w3c.github.io/aria-practices/#gridNav_focus"
        },
        {
          "kind": "class",
          "description": "",
          "name": "KeynavController",
          "members": [
            {
              "kind": "field",
              "name": "#abortController",
              "privacy": "private",
              "type": {
                "text": "AbortController | null"
              },
              "default": "null"
            },
            {
              "kind": "field",
              "name": "#observers",
              "privacy": "private",
              "type": {
                "text": "MutationObserver[]"
              },
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "#host",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "#grid",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "#cells",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "#activeCell",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "#config",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "hostConnected"
            },
            {
              "kind": "method",
              "name": "hostDisconnected"
            },
            {
              "kind": "method",
              "name": "#initializeKeyListItems",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "#clickCell",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "MouseEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#keynavCell",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#setActiveCell",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "MouseEvent | KeyboardEvent"
                  }
                },
                {
                  "name": "activeCell",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "#updateCellActivation",
              "privacy": "private",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "keynav",
          "declaration": {
            "name": "keynav",
            "module": "internals/controllers/keynav.controller.js"
          }
        },
        {
          "kind": "js",
          "name": "KeynavController",
          "declaration": {
            "name": "KeynavController",
            "module": "internals/controllers/keynav.controller.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "internals/utils/dom.js",
      "declarations": [
        {
          "kind": "function",
          "name": "contextMenuClick",
          "parameters": [
            {
              "name": "event",
              "type": {
                "text": "MouseEvent"
              }
            }
          ],
          "description": "right click with context menus & keyboard mouse control https://apple.stackexchange.com/questions/32715/how-do-i-open-the-context-menu-from-a-mac-keyboard"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "contextMenuClick",
          "declaration": {
            "name": "contextMenuClick",
            "module": "internals/utils/dom.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "internals/utils/events.js",
      "declarations": [
        {
          "kind": "function",
          "name": "onChildListMutation",
          "parameters": [
            {
              "name": "element",
              "type": {
                "text": "HTMLElement"
              }
            },
            {
              "name": "fn",
              "type": {
                "text": "(mutation?: MutationRecord) => void"
              }
            }
          ]
        },
        {
          "kind": "function",
          "name": "onFirstInteraction",
          "return": {
            "type": {
              "text": "Promise<null>"
            }
          },
          "parameters": [
            {
              "name": "element",
              "type": {
                "text": "HTMLElement"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "onChildListMutation",
          "declaration": {
            "name": "onChildListMutation",
            "module": "internals/utils/events.js"
          }
        },
        {
          "kind": "js",
          "name": "onFirstInteraction",
          "declaration": {
            "name": "onFirstInteraction",
            "module": "internals/utils/events.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "internals/utils/focus.js",
      "declarations": [
        {
          "kind": "function",
          "name": "getActiveElement",
          "return": {
            "type": {
              "text": "Element | null"
            }
          },
          "parameters": [
            {
              "name": "root",
              "default": "document",
              "type": {
                "text": "Document | ShadowRoot"
              }
            }
          ]
        },
        {
          "kind": "function",
          "name": "focusElement",
          "parameters": [
            {
              "name": "element",
              "type": {
                "text": "HTMLElement"
              }
            }
          ]
        },
        {
          "kind": "function",
          "name": "focusable",
          "parameters": [
            {
              "name": "element",
              "type": {
                "text": "Element"
              }
            }
          ]
        },
        {
          "kind": "function",
          "name": "simpleFocusable",
          "parameters": [
            {
              "name": "element",
              "type": {
                "text": "Element"
              }
            }
          ],
          "description": "focus primitives, any interactive element does not requiring advanced keyboard interactions like arrow/navigation"
        },
        {
          "kind": "function",
          "name": "setActiveKeyListItem",
          "parameters": [
            {
              "name": "items",
              "type": {
                "text": "NodeListOf<HTMLElement> | HTMLElement[]"
              }
            },
            {
              "name": "item",
              "type": {
                "text": "HTMLElement"
              }
            }
          ]
        },
        {
          "kind": "function",
          "name": "initializeKeyListItems",
          "parameters": [
            {
              "name": "items",
              "type": {
                "text": "NodeListOf<HTMLElement> | HTMLElement[]"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "getActiveElement",
          "declaration": {
            "name": "getActiveElement",
            "module": "internals/utils/focus.js"
          }
        },
        {
          "kind": "js",
          "name": "focusElement",
          "declaration": {
            "name": "focusElement",
            "module": "internals/utils/focus.js"
          }
        },
        {
          "kind": "js",
          "name": "focusable",
          "declaration": {
            "name": "focusable",
            "module": "internals/utils/focus.js"
          }
        },
        {
          "kind": "js",
          "name": "simpleFocusable",
          "declaration": {
            "name": "simpleFocusable",
            "module": "internals/utils/focus.js"
          }
        },
        {
          "kind": "js",
          "name": "setActiveKeyListItem",
          "declaration": {
            "name": "setActiveKeyListItem",
            "module": "internals/utils/focus.js"
          }
        },
        {
          "kind": "js",
          "name": "initializeKeyListItems",
          "declaration": {
            "name": "initializeKeyListItems",
            "module": "internals/utils/focus.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "internals/utils/keynav.js",
      "declarations": [
        {
          "kind": "function",
          "name": "validKeyNavigationCode",
          "parameters": [
            {
              "name": "e",
              "type": {
                "text": "KeyboardEvent"
              }
            }
          ]
        },
        {
          "kind": "function",
          "name": "getNextKeyGridItem",
          "parameters": [
            {
              "name": "grid",
              "type": {
                "text": "HTMLElement[][]"
              }
            },
            {
              "name": "config",
              "type": {
                "text": "{ code: KeyCode | string; ctrlKey: boolean; dir: string; loop: boolean }"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "validKeyNavigationCode",
          "declaration": {
            "name": "validKeyNavigationCode",
            "module": "internals/utils/keynav.js"
          }
        },
        {
          "kind": "js",
          "name": "getNextKeyGridItem",
          "declaration": {
            "name": "getNextKeyGridItem",
            "module": "internals/utils/keynav.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "internals/utils/traversal.js",
      "declarations": [
        {
          "kind": "function",
          "name": "getFlatFocusableItems",
          "parameters": [
            {
              "name": "element",
              "type": {
                "text": "Node"
              }
            },
            {
              "name": "depth",
              "default": "10"
            }
          ]
        },
        {
          "kind": "function",
          "name": "getFlatDOMTree",
          "return": {
            "type": {
              "text": "HTMLElement[]"
            }
          },
          "parameters": [
            {
              "name": "node",
              "type": {
                "text": "Node"
              }
            },
            {
              "name": "depth",
              "default": "10"
            }
          ]
        },
        {
          "kind": "function",
          "name": "getChildren",
          "return": {
            "type": {
              "text": "HTMLCollection | HTMLElement[]"
            }
          },
          "parameters": [
            {
              "name": "node",
              "type": {
                "text": "Node"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "getFlatFocusableItems",
          "declaration": {
            "name": "getFlatFocusableItems",
            "module": "internals/utils/traversal.js"
          }
        },
        {
          "kind": "js",
          "name": "getFlatDOMTree",
          "declaration": {
            "name": "getFlatDOMTree",
            "module": "internals/utils/traversal.js"
          }
        },
        {
          "kind": "js",
          "name": "getChildren",
          "declaration": {
            "name": "getChildren",
            "module": "internals/utils/traversal.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "keynav/element.js",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "BpKeynavList",
          "slots": [
            {
              "description": "content",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "columns",
              "type": {
                "text": "number | undefined"
              },
              "attribute": "columns"
            },
            {
              "kind": "field",
              "name": "layout",
              "type": {
                "text": "'inline' | 'block' | 'grid'"
              },
              "default": "'grid'",
              "attribute": "layout",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "loop",
              "type": {
                "text": "boolean | undefined"
              },
              "attribute": "loop"
            },
            {
              "kind": "field",
              "name": "grid",
              "type": {
                "text": "HTMLElement[][]"
              },
              "readonly": true
            },
            {
              "kind": "field",
              "name": "#grid",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "#inline",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "#internals",
              "privacy": "private"
            }
          ],
          "attributes": [
            {
              "name": "columns",
              "type": {
                "text": "number | undefined"
              },
              "fieldName": "columns"
            },
            {
              "name": "layout",
              "type": {
                "text": "'inline' | 'block' | 'grid'"
              },
              "default": "'grid'",
              "fieldName": "layout"
            },
            {
              "name": "loop",
              "type": {
                "text": "boolean | undefined"
              },
              "fieldName": "loop"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "bp-keynav-list",
          "customElement": true,
          "metadata": {
            "since": "1.0.0"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "BpKeynavList",
          "declaration": {
            "name": "BpKeynavList",
            "module": "keynav/element.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "keynav/index.js",
      "declarations": [],
      "exports": [
        {
          "kind": "js",
          "name": "*",
          "declaration": {
            "name": "*",
            "module": "keynav/element.js"
          }
        }
      ]
    }
  ]
}
