Browser storage
Test Native (Somewhat patched to fix buggy safari impl) Sandbox Memory IndexedDB Cache storage
Total
      getOriginPrivateDirectory(),
      getOriginPrivateDirectory(import('./adapters/sandbox.js'))
      getOriginPrivateDirectory(import('./adapters/memory.js'))
      getOriginPrivateDirectory(import('./adapters/indexeddb.js'))
      getOriginPrivateDirectory(import('./adapters/cache.js'))
    
Manual save & open file(s)/directory
Manual Testing
showDirectoryPicker({
  _preferPolyfill:
})
showOpenFilePicker({
  _preferPolyfill:
  multiple:
  excludeAcceptAllOption:
  types:
})
showSaveFilePicker({
  _preferPolyfill:
  suggestedName:
  excludeAcceptAllOption:
  types:
})
Drag and drop

The DataTransfer have implemented DataTransferItem.prototype.getAsFileSystemHandle() That lets you convert a item into a filesystem handle. This is polyfilled for you.
elm.ondragover = evt => evt.preventDefault()
elm.ondrop = async evt => {
  evt.preventDefault()
  for (const dataTransferItem of dataTransfer.items) {
    const handle = await dataTransferItem.getAsFileSystemHandle()
    console.log(handle.kind)
  }
}
Drop anywhere
on page