Could you share a minimal sample that doesn’t work for you? This works for me
index.html
:
<!DOCTYPE html>
<html>
<head>
<script src="main.js"></script>
</head>
<body>
<sp-button id="picker-btn">Show File picker</sp-button>
</body>
</html>
index.js
:
const fsProvider = require('uxp').storage.localFileSystem;
async function bar() {
// Ask user to select a location to save a file
if (fsProvider.isFileSystemProvider) {
try {
const file = await fsProvider.getFileForSaving("sample.txt", { types: ["txt"] });
if (!file) {
console.error("Something went wrong.");
return;
}
// write content to file
await file.write("UXP saved sample file.");
} catch (err) {
console.error(err);
}
}
}
document.getElementById("picker-btn").addEventListener("click", async () => {
bar();
})
manifest.json
:
{
"id": "com.adobe.example.vanilla-ps-js",
"name": "Starter Panel",
"version": "1.0.0-1",
"main": "index.html",
"host": {
"app": "PS",
"minVersion": "23.0.0"
},
"manifestVersion": 5,
"entrypoints": [
{
"type": "panel",
"id": "vanilla",
"minimumSize": {"width": 230, "height": 200},
"maximumSize": {"width": 2000, "height": 2000},
"preferredDockedSize": {"width": 230, "height": 300},
"preferredFloatingSize": {"width": 230, "height": 300},
"icons": [
{ "width": 32, "height": 32, "path": "icons/icon_D.png", "scale": [ 1, 2 ], "theme": [ "dark", "darkest" ], "species": [ "generic" ] },
{ "width": 32, "height": 32, "path": "icons/icon_N.png", "scale": [ 1, 2 ], "theme": [ "lightest", "light" ], "species": [ "generic" ] }
],
"label": {"default": "Starter Panel"}
}
],
"icons": [
{
"width": 23, "height": 23, "path": "icons/dark.png", "scale": [ 1, 2 ],
"theme": [ "darkest", "dark", "medium" ]
}, {
"width": 23, "height": 23, "path": "icons/light.png", "scale": [ 1, 2 ],
"theme": [ "lightest", "light" ]
}
],
"requiredPermissions": {
"localFileSystem": "fullAccess"
}
}
Does the above sample work for you? Please do share the PS version too.