stillmade-sdk 0.1.39 → 0.1.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +5 -1
- package/PASTE_TO_LLM.md +6 -2
- package/SDK.md +12 -4
- package/package.json +1 -1
- package/packages/block-cli/dev-host/assets/host.js +15 -15
- package/packages/block-cli/dev-host/assets/index.css +1 -1
- package/packages/block-platform/dealer-inventory-video-project-type.js +10 -5
- package/packages/block-platform/fixture-starters.js +13 -0
- package/packages/block-platform/import-eligibility.js +10 -1
- package/packages/block-platform/project-type-starters.js +13 -16
- package/packages/block-platform/revenue-review-project-types.js +14 -11
- package/packages/block-platform/revenue-review-starters.js +13 -0
- package/packages/block-platform/type-preview.js +16 -3
- package/packages/block-platform/type-testing.js +3 -2
- package/packages/block-sdk/builder-contract.js +6 -2
- package/packages/block-sdk/index.d.ts +1 -1
- package/packages/block-sdk/media-import-formats.js +2 -0
- package/packages/block-sdk/platform-checks.js +1 -1
|
@@ -16,6 +16,8 @@ const MEDIA_KINDS = Object.freeze(['image','video','audio']);
|
|
|
16
16
|
const LABELS = Object.freeze({png:'PNG',jpg:'JPEG',webp:'WebP',gif:'GIF',mp4:'MP4',mov:'MOV',webm:'WebM',mp3:'MP3',wav:'WAV',m4a:'M4A',aac:'AAC',ogg:'OGG',pdf:'PDF',txt:'TXT',csv:'CSV',md:'Markdown',json:'JSON',zip:'ZIP'});
|
|
17
17
|
const names = kinds => Object.entries(IMPORT_FORMATS).filter(([extension,item])=>kinds.includes(item.kind)&&LABELS[extension]).map(([extension])=>LABELS[extension]);
|
|
18
18
|
const list = items => items.length>1?`${items.slice(0,-1).join(', ')}, or ${items.at(-1)}`:items[0];
|
|
19
|
+
/** The formats an upload of these kinds takes, as one phrase ("MP4, MOV, or WebM"). */
|
|
20
|
+
export const importFormatList = kinds => list([...new Set(names(kinds))]);
|
|
19
21
|
/**
|
|
20
22
|
* Check a chosen file's name, type and size. `kinds` lists what this upload
|
|
21
23
|
* accepts: media by default, or ['file'] / ['image','video','audio','file'].
|
|
@@ -88,7 +88,7 @@ export function assessPlatformCapture(capture) {
|
|
|
88
88
|
if(!capture.frames?.length || !capture.frames.some(frame=>frame.controls>0) || capture.frames.some(frame=>frame.interface==='guest') && !capture.frames.some(frame=>frame.interface==='guest' && frame.controls>0))return {passed:false,message:'The preview did not expose usable controls.'};
|
|
89
89
|
if(capture.interactionPassed!==true)return {passed:null,message:'Configure an input, perform the main action, and inspect the output with touch-compatible controls.'};
|
|
90
90
|
if(capture.embedded!==true)return {passed:false,message:'The UI was not checked inside the real Block or Project Type host.'};
|
|
91
|
-
if(capture.continuityPassed===false)return {passed:false,message
|
|
91
|
+
if(capture.continuityPassed===false)return {passed:false,message:`Editing state or completed output changed after resizing, rotating, or toggling a panel.${capture.continuityChanges?.length?` Changed: ${capture.continuityChanges.join(', ')}.`:''}`};
|
|
92
92
|
if(capture.continuityPassed!==true)return {passed:null,message:'Resize and panel continuity still needs an interaction check.'};
|
|
93
93
|
const states=capture.states||{};
|
|
94
94
|
for(const state of ['empty','populated','loading','error','success','long-labels','enlarged-text'])if(states[state]!==true)return {passed:null,message:`The ${state} UI state still needs deterministic mobile coverage.`};
|