@overcrow/mcp 0.0.0-stage → 0.1.0
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/LICENSE +21 -0
- package/README.md +90 -2
- package/dist/audit/index.js +103 -0
- package/dist/audit/lexer.js +417 -0
- package/dist/audit/project.js +200 -0
- package/dist/audit/rules.js +661 -0
- package/dist/bootstrap/download.js +229 -0
- package/dist/bootstrap/install.js +280 -0
- package/dist/bootstrap/pin.js +85 -0
- package/dist/bootstrap/pin.json +119 -0
- package/dist/bootstrap/zip.js +258 -0
- package/dist/cli.js +200 -0
- package/dist/confine.js +244 -0
- package/dist/content/docs/en/cli.md +353 -0
- package/dist/content/docs/en/dev-channel.md +130 -0
- package/dist/content/docs/en/elements.md +469 -0
- package/dist/content/docs/en/forms.md +328 -0
- package/dist/content/docs/en/guide.md +253 -0
- package/dist/content/docs/en/index.md +85 -0
- package/dist/content/docs/en/limits.md +241 -0
- package/dist/content/docs/en/logic.md +446 -0
- package/dist/content/docs/en/manifest.md +381 -0
- package/dist/content/docs/en/mcp.md +165 -0
- package/dist/content/docs/en/package.md +131 -0
- package/dist/content/docs/en/publishing.md +162 -0
- package/dist/content/docs/en/reference.md +55 -0
- package/dist/content/docs/en/result-shapes.md +332 -0
- package/dist/content/docs/en/sdk.md +295 -0
- package/dist/content/docs/en/security.md +115 -0
- package/dist/content/docs/en/service-reference.md +344 -0
- package/dist/content/docs/en/services.md +517 -0
- package/dist/content/docs/en/style-properties.md +270 -0
- package/dist/content/docs/en/style.md +266 -0
- package/dist/content/docs/en/testing.md +400 -0
- package/dist/content/docs/en/view.md +338 -0
- package/dist/content/docs/en/widgets.md +76 -0
- package/dist/content/docs/fr/cli.md +367 -0
- package/dist/content/docs/fr/dev-channel.md +140 -0
- package/dist/content/docs/fr/elements.md +475 -0
- package/dist/content/docs/fr/forms.md +341 -0
- package/dist/content/docs/fr/guide.md +264 -0
- package/dist/content/docs/fr/index.md +90 -0
- package/dist/content/docs/fr/limits.md +244 -0
- package/dist/content/docs/fr/logic.md +461 -0
- package/dist/content/docs/fr/manifest.md +392 -0
- package/dist/content/docs/fr/mcp.md +173 -0
- package/dist/content/docs/fr/package.md +139 -0
- package/dist/content/docs/fr/publishing.md +172 -0
- package/dist/content/docs/fr/reference.md +59 -0
- package/dist/content/docs/fr/result-shapes.md +333 -0
- package/dist/content/docs/fr/sdk.md +301 -0
- package/dist/content/docs/fr/security.md +129 -0
- package/dist/content/docs/fr/service-reference.md +346 -0
- package/dist/content/docs/fr/services.md +540 -0
- package/dist/content/docs/fr/style-properties.md +272 -0
- package/dist/content/docs/fr/style.md +281 -0
- package/dist/content/docs/fr/testing.md +417 -0
- package/dist/content/docs/fr/view.md +352 -0
- package/dist/content/docs/fr/widgets.md +81 -0
- package/dist/content/examples/clock/LICENSE +21 -0
- package/dist/content/examples/clock/README.md +75 -0
- package/dist/content/examples/clock/listing.json +19 -0
- package/dist/content/examples/clock/locales/en.json +4 -0
- package/dist/content/examples/clock/locales/fr.json +4 -0
- package/dist/content/examples/clock/logic.ts +85 -0
- package/dist/content/examples/clock/manifest.json +44 -0
- package/dist/content/examples/clock/package.json +16 -0
- package/dist/content/examples/clock/style.ocss +26 -0
- package/dist/content/examples/clock/tests/hidden.scenario.json +68 -0
- package/dist/content/examples/clock/tests/load-logic.mjs +22 -0
- package/dist/content/examples/clock/tests/logic.test.mjs +89 -0
- package/dist/content/examples/clock/tests/options.scenario.json +108 -0
- package/dist/content/examples/clock/tests/preview.scenario.json +25 -0
- package/dist/content/examples/clock/tests/render.scenario.json +94 -0
- package/dist/content/examples/clock/tests/summer-time.scenario.json +74 -0
- package/dist/content/examples/clock/tests/ticks.scenario.json +120 -0
- package/dist/content/examples/clock/tsconfig.json +16 -0
- package/dist/content/examples/clock/view.ocml +8 -0
- package/dist/content/examples/countdown/LICENSE +20 -0
- package/dist/content/examples/countdown/listing.json +10 -0
- package/dist/content/examples/countdown/locales/en.json +15 -0
- package/dist/content/examples/countdown/locales/fr.json +15 -0
- package/dist/content/examples/countdown/logic.ts +179 -0
- package/dist/content/examples/countdown/manifest.json +34 -0
- package/dist/content/examples/countdown/package.json +15 -0
- package/dist/content/examples/countdown/style.ocss +94 -0
- package/dist/content/examples/countdown/tsconfig.json +16 -0
- package/dist/content/examples/countdown/view.ocml +42 -0
- package/dist/content/examples/fps/LICENSE +21 -0
- package/dist/content/examples/fps/README.md +64 -0
- package/dist/content/examples/fps/listing.json +19 -0
- package/dist/content/examples/fps/locales/en.json +11 -0
- package/dist/content/examples/fps/locales/fr.json +11 -0
- package/dist/content/examples/fps/logic.ts +64 -0
- package/dist/content/examples/fps/manifest.json +30 -0
- package/dist/content/examples/fps/package.json +16 -0
- package/dist/content/examples/fps/style.ocss +31 -0
- package/dist/content/examples/fps/tests/label.scenario.json +63 -0
- package/dist/content/examples/fps/tests/load-logic.mjs +22 -0
- package/dist/content/examples/fps/tests/logic.test.mjs +60 -0
- package/dist/content/examples/fps/tests/preview.scenario.json +29 -0
- package/dist/content/examples/fps/tests/refused.scenario.json +20 -0
- package/dist/content/examples/fps/tests/render.scenario.json +96 -0
- package/dist/content/examples/fps/tests/stale.scenario.json +91 -0
- package/dist/content/examples/fps/tests/unavailable.scenario.json +111 -0
- package/dist/content/examples/fps/tsconfig.json +16 -0
- package/dist/content/examples/fps/view.ocml +11 -0
- package/dist/content/examples/media/LICENSE +21 -0
- package/dist/content/examples/media/README.md +147 -0
- package/dist/content/examples/media/listing.json +19 -0
- package/dist/content/examples/media/locales/en.json +11 -0
- package/dist/content/examples/media/locales/fr.json +11 -0
- package/dist/content/examples/media/logic.ts +191 -0
- package/dist/content/examples/media/manifest.json +35 -0
- package/dist/content/examples/media/package.json +16 -0
- package/dist/content/examples/media/style.ocss +148 -0
- package/dist/content/examples/media/tests/covers.scenario.json +144 -0
- package/dist/content/examples/media/tests/gesture.scenario.json +173 -0
- package/dist/content/examples/media/tests/load-logic.mjs +22 -0
- package/dist/content/examples/media/tests/logic.test.mjs +176 -0
- package/dist/content/examples/media/tests/marquee.scenario.json +127 -0
- package/dist/content/examples/media/tests/preview.scenario.json +52 -0
- package/dist/content/examples/media/tests/read-only.scenario.json +53 -0
- package/dist/content/examples/media/tests/refused.scenario.json +22 -0
- package/dist/content/examples/media/tests/refused.test.mjs +31 -0
- package/dist/content/examples/media/tests/render.scenario.json +136 -0
- package/dist/content/examples/media/tests/states.scenario.json +257 -0
- package/dist/content/examples/media/tests/unavailable.scenario.json +120 -0
- package/dist/content/examples/media/tsconfig.json +16 -0
- package/dist/content/examples/media/view.ocml +41 -0
- package/dist/content/examples/notes/LICENSE +21 -0
- package/dist/content/examples/notes/README.md +219 -0
- package/dist/content/examples/notes/listing.json +19 -0
- package/dist/content/examples/notes/locales/en.json +25 -0
- package/dist/content/examples/notes/locales/fr.json +25 -0
- package/dist/content/examples/notes/logic.ts +799 -0
- package/dist/content/examples/notes/manifest.json +40 -0
- package/dist/content/examples/notes/package.json +16 -0
- package/dist/content/examples/notes/style.ocss +469 -0
- package/dist/content/examples/notes/tests/checks.scenario.json +237 -0
- package/dist/content/examples/notes/tests/create.scenario.json +260 -0
- package/dist/content/examples/notes/tests/delete.scenario.json +342 -0
- package/dist/content/examples/notes/tests/drafts.scenario.json +714 -0
- package/dist/content/examples/notes/tests/editor.scenario.json +232 -0
- package/dist/content/examples/notes/tests/frame.scenario.json +93 -0
- package/dist/content/examples/notes/tests/interactive.scenario.json +344 -0
- package/dist/content/examples/notes/tests/limits.scenario.json +1351 -0
- package/dist/content/examples/notes/tests/load-logic.mjs +22 -0
- package/dist/content/examples/notes/tests/logic.test.mjs +514 -0
- package/dist/content/examples/notes/tests/preview.scenario.json +99 -0
- package/dist/content/examples/notes/tests/read-only.scenario.json +105 -0
- package/dist/content/examples/notes/tests/refused.scenario.json +33 -0
- package/dist/content/examples/notes/tests/save.scenario.json +378 -0
- package/dist/content/examples/notes/tests/states.scenario.json +640 -0
- package/dist/content/examples/notes/tests/typing.scenario.json +562 -0
- package/dist/content/examples/notes/tests/unavailable.scenario.json +246 -0
- package/dist/content/examples/notes/tsconfig.json +16 -0
- package/dist/content/examples/notes/view.ocml +154 -0
- package/dist/content/examples/performance/LICENSE +21 -0
- package/dist/content/examples/performance/README.md +134 -0
- package/dist/content/examples/performance/listing.json +19 -0
- package/dist/content/examples/performance/locales/en.json +20 -0
- package/dist/content/examples/performance/locales/fr.json +20 -0
- package/dist/content/examples/performance/logic.ts +210 -0
- package/dist/content/examples/performance/manifest.json +83 -0
- package/dist/content/examples/performance/package.json +16 -0
- package/dist/content/examples/performance/style.ocss +75 -0
- package/dist/content/examples/performance/tests/fahrenheit.scenario.json +110 -0
- package/dist/content/examples/performance/tests/horizontal.scenario.json +96 -0
- package/dist/content/examples/performance/tests/load-logic.mjs +22 -0
- package/dist/content/examples/performance/tests/logic.test.mjs +226 -0
- package/dist/content/examples/performance/tests/menu.scenario.json +170 -0
- package/dist/content/examples/performance/tests/no-fps-source.scenario.json +47 -0
- package/dist/content/examples/performance/tests/preview.scenario.json +45 -0
- package/dist/content/examples/performance/tests/refused.scenario.json +20 -0
- package/dist/content/examples/performance/tests/refused.test.mjs +19 -0
- package/dist/content/examples/performance/tests/region.scenario.json +89 -0
- package/dist/content/examples/performance/tests/render.scenario.json +112 -0
- package/dist/content/examples/performance/tests/sources.scenario.json +151 -0
- package/dist/content/examples/performance/tests/stale.scenario.json +111 -0
- package/dist/content/examples/performance/tests/telemetry-only.scenario.json +44 -0
- package/dist/content/examples/performance/tests/thresholds.scenario.json +147 -0
- package/dist/content/examples/performance/tests/waiting.scenario.json +105 -0
- package/dist/content/examples/performance/tsconfig.json +16 -0
- package/dist/content/examples/performance/view.ocml +18 -0
- package/dist/content/examples/playervox-journal/LICENSE +21 -0
- package/dist/content/examples/playervox-journal/README.md +150 -0
- package/dist/content/examples/playervox-journal/listing.json +19 -0
- package/dist/content/examples/playervox-journal/locales/en.json +25 -0
- package/dist/content/examples/playervox-journal/locales/fr.json +25 -0
- package/dist/content/examples/playervox-journal/logic.ts +556 -0
- package/dist/content/examples/playervox-journal/manifest.json +19 -0
- package/dist/content/examples/playervox-journal/package.json +16 -0
- package/dist/content/examples/playervox-journal/style.ocss +142 -0
- package/dist/content/examples/playervox-journal/tests/changes.scenario.json +482 -0
- package/dist/content/examples/playervox-journal/tests/delete.scenario.json +432 -0
- package/dist/content/examples/playervox-journal/tests/frame.scenario.json +169 -0
- package/dist/content/examples/playervox-journal/tests/load-logic.mjs +22 -0
- package/dist/content/examples/playervox-journal/tests/logic.test.mjs +349 -0
- package/dist/content/examples/playervox-journal/tests/paging.scenario.json +428 -0
- package/dist/content/examples/playervox-journal/tests/preview.scenario.json +184 -0
- package/dist/content/examples/playervox-journal/tests/read-only.scenario.json +157 -0
- package/dist/content/examples/playervox-journal/tests/refused.scenario.json +39 -0
- package/dist/content/examples/playervox-journal/tests/scale.scenario.json +286 -0
- package/dist/content/examples/playervox-journal/tests/signed-out.scenario.json +134 -0
- package/dist/content/examples/playervox-journal/tests/states.scenario.json +741 -0
- package/dist/content/examples/playervox-journal/tests/unavailable.scenario.json +183 -0
- package/dist/content/examples/playervox-journal/tsconfig.json +16 -0
- package/dist/content/examples/playervox-journal/view.ocml +52 -0
- package/dist/content/examples/playervox-rating/LICENSE +21 -0
- package/dist/content/examples/playervox-rating/README.md +166 -0
- package/dist/content/examples/playervox-rating/listing.json +19 -0
- package/dist/content/examples/playervox-rating/locales/en.json +35 -0
- package/dist/content/examples/playervox-rating/locales/fr.json +35 -0
- package/dist/content/examples/playervox-rating/logic.ts +581 -0
- package/dist/content/examples/playervox-rating/manifest.json +19 -0
- package/dist/content/examples/playervox-rating/package.json +16 -0
- package/dist/content/examples/playervox-rating/style.ocss +333 -0
- package/dist/content/examples/playervox-rating/tests/account.scenario.json +125 -0
- package/dist/content/examples/playervox-rating/tests/bounds.scenario.json +73 -0
- package/dist/content/examples/playervox-rating/tests/draft.scenario.json +199 -0
- package/dist/content/examples/playervox-rating/tests/form.scenario.json +142 -0
- package/dist/content/examples/playervox-rating/tests/load-logic.mjs +22 -0
- package/dist/content/examples/playervox-rating/tests/logic.test.mjs +346 -0
- package/dist/content/examples/playervox-rating/tests/offline.scenario.json +142 -0
- package/dist/content/examples/playervox-rating/tests/preview.scenario.json +44 -0
- package/dist/content/examples/playervox-rating/tests/publish-keyboard.scenario.json +221 -0
- package/dist/content/examples/playervox-rating/tests/publish-pointer.scenario.json +314 -0
- package/dist/content/examples/playervox-rating/tests/read-only.scenario.json +70 -0
- package/dist/content/examples/playervox-rating/tests/refused.scenario.json +45 -0
- package/dist/content/examples/playervox-rating/tests/states.scenario.json +362 -0
- package/dist/content/examples/playervox-rating/tsconfig.json +16 -0
- package/dist/content/examples/playervox-rating/view.ocml +62 -0
- package/dist/content/examples/playervox-reviews/LICENSE +21 -0
- package/dist/content/examples/playervox-reviews/README.md +194 -0
- package/dist/content/examples/playervox-reviews/listing.json +19 -0
- package/dist/content/examples/playervox-reviews/locales/en.json +32 -0
- package/dist/content/examples/playervox-reviews/locales/fr.json +32 -0
- package/dist/content/examples/playervox-reviews/logic.ts +822 -0
- package/dist/content/examples/playervox-reviews/manifest.json +30 -0
- package/dist/content/examples/playervox-reviews/package.json +16 -0
- package/dist/content/examples/playervox-reviews/style.ocss +260 -0
- package/dist/content/examples/playervox-reviews/tests/account.scenario.json +249 -0
- package/dist/content/examples/playervox-reviews/tests/bounds.scenario.json +336 -0
- package/dist/content/examples/playervox-reviews/tests/changes.scenario.json +515 -0
- package/dist/content/examples/playervox-reviews/tests/filter.scenario.json +400 -0
- package/dist/content/examples/playervox-reviews/tests/frame.scenario.json +185 -0
- package/dist/content/examples/playervox-reviews/tests/keyboard.scenario.json +188 -0
- package/dist/content/examples/playervox-reviews/tests/load-logic.mjs +22 -0
- package/dist/content/examples/playervox-reviews/tests/logic.test.mjs +559 -0
- package/dist/content/examples/playervox-reviews/tests/offline-start.scenario.json +152 -0
- package/dist/content/examples/playervox-reviews/tests/offline.scenario.json +311 -0
- package/dist/content/examples/playervox-reviews/tests/paging.scenario.json +497 -0
- package/dist/content/examples/playervox-reviews/tests/preview.scenario.json +286 -0
- package/dist/content/examples/playervox-reviews/tests/reading.scenario.json +591 -0
- package/dist/content/examples/playervox-reviews/tests/refused.scenario.json +54 -0
- package/dist/content/examples/playervox-reviews/tests/scale.scenario.json +303 -0
- package/dist/content/examples/playervox-reviews/tests/states.scenario.json +700 -0
- package/dist/content/examples/playervox-reviews/tests/unavailable.scenario.json +192 -0
- package/dist/content/examples/playervox-reviews/tsconfig.json +16 -0
- package/dist/content/examples/playervox-reviews/view.ocml +110 -0
- package/dist/content/examples/playervox-score/LICENSE +21 -0
- package/dist/content/examples/playervox-score/README.md +131 -0
- package/dist/content/examples/playervox-score/listing.json +19 -0
- package/dist/content/examples/playervox-score/locales/en.json +23 -0
- package/dist/content/examples/playervox-score/locales/fr.json +23 -0
- package/dist/content/examples/playervox-score/logic.ts +430 -0
- package/dist/content/examples/playervox-score/manifest.json +47 -0
- package/dist/content/examples/playervox-score/package.json +16 -0
- package/dist/content/examples/playervox-score/style.ocss +247 -0
- package/dist/content/examples/playervox-score/tests/grades.scenario.json +279 -0
- package/dist/content/examples/playervox-score/tests/load-logic.mjs +22 -0
- package/dist/content/examples/playervox-score/tests/logic.test.mjs +229 -0
- package/dist/content/examples/playervox-score/tests/options.scenario.json +302 -0
- package/dist/content/examples/playervox-score/tests/preview.scenario.json +68 -0
- package/dist/content/examples/playervox-score/tests/pulse.scenario.json +157 -0
- package/dist/content/examples/playervox-score/tests/refused.scenario.json +21 -0
- package/dist/content/examples/playervox-score/tests/signed-out.scenario.json +46 -0
- package/dist/content/examples/playervox-score/tests/states.scenario.json +450 -0
- package/dist/content/examples/playervox-score/tests/unavailable.scenario.json +84 -0
- package/dist/content/examples/playervox-score/tsconfig.json +16 -0
- package/dist/content/examples/playervox-score/view.ocml +51 -0
- package/dist/content/examples/session/LICENSE +21 -0
- package/dist/content/examples/session/README.md +57 -0
- package/dist/content/examples/session/listing.json +19 -0
- package/dist/content/examples/session/locales/en.json +3 -0
- package/dist/content/examples/session/locales/fr.json +3 -0
- package/dist/content/examples/session/logic.ts +26 -0
- package/dist/content/examples/session/manifest.json +19 -0
- package/dist/content/examples/session/package.json +16 -0
- package/dist/content/examples/session/style.ocss +16 -0
- package/dist/content/examples/session/tests/hidden.scenario.json +45 -0
- package/dist/content/examples/session/tests/load-logic.mjs +22 -0
- package/dist/content/examples/session/tests/logic.test.mjs +37 -0
- package/dist/content/examples/session/tests/preview.scenario.json +28 -0
- package/dist/content/examples/session/tests/refused.scenario.json +20 -0
- package/dist/content/examples/session/tests/refused.test.mjs +16 -0
- package/dist/content/examples/session/tests/render.scenario.json +95 -0
- package/dist/content/examples/session/tests/ticks.scenario.json +139 -0
- package/dist/content/examples/session/tests/unknown.scenario.json +37 -0
- package/dist/content/examples/session/tsconfig.json +16 -0
- package/dist/content/examples/session/view.ocml +11 -0
- package/dist/content/examples/stopwatch/LICENSE +21 -0
- package/dist/content/examples/stopwatch/README.md +99 -0
- package/dist/content/examples/stopwatch/listing.json +19 -0
- package/dist/content/examples/stopwatch/locales/en.json +8 -0
- package/dist/content/examples/stopwatch/locales/fr.json +8 -0
- package/dist/content/examples/stopwatch/logic.ts +93 -0
- package/dist/content/examples/stopwatch/manifest.json +19 -0
- package/dist/content/examples/stopwatch/package.json +16 -0
- package/dist/content/examples/stopwatch/style.ocss +54 -0
- package/dist/content/examples/stopwatch/tests/errors.scenario.json +121 -0
- package/dist/content/examples/stopwatch/tests/gesture.scenario.json +154 -0
- package/dist/content/examples/stopwatch/tests/hidden.scenario.json +57 -0
- package/dist/content/examples/stopwatch/tests/hundredths.scenario.json +173 -0
- package/dist/content/examples/stopwatch/tests/load-logic.mjs +22 -0
- package/dist/content/examples/stopwatch/tests/logic.test.mjs +99 -0
- package/dist/content/examples/stopwatch/tests/preview.scenario.json +36 -0
- package/dist/content/examples/stopwatch/tests/read-only.scenario.json +42 -0
- package/dist/content/examples/stopwatch/tests/read-only.test.mjs +18 -0
- package/dist/content/examples/stopwatch/tests/refused.scenario.json +22 -0
- package/dist/content/examples/stopwatch/tests/refused.test.mjs +18 -0
- package/dist/content/examples/stopwatch/tests/render.scenario.json +105 -0
- package/dist/content/examples/stopwatch/tests/states.scenario.json +246 -0
- package/dist/content/examples/stopwatch/tests/unknown.scenario.json +40 -0
- package/dist/content/examples/stopwatch/tsconfig.json +16 -0
- package/dist/content/examples/stopwatch/view.ocml +29 -0
- package/dist/content/examples/twitch-chat/LICENSE +21 -0
- package/dist/content/examples/twitch-chat/README.md +283 -0
- package/dist/content/examples/twitch-chat/listing.json +19 -0
- package/dist/content/examples/twitch-chat/locales/en.json +52 -0
- package/dist/content/examples/twitch-chat/locales/fr.json +52 -0
- package/dist/content/examples/twitch-chat/logic.ts +887 -0
- package/dist/content/examples/twitch-chat/manifest.json +33 -0
- package/dist/content/examples/twitch-chat/package.json +16 -0
- package/dist/content/examples/twitch-chat/style.ocss +544 -0
- package/dist/content/examples/twitch-chat/tests/account.scenario.json +325 -0
- package/dist/content/examples/twitch-chat/tests/burst.scenario.json +1866 -0
- package/dist/content/examples/twitch-chat/tests/channel-refused.scenario.json +372 -0
- package/dist/content/examples/twitch-chat/tests/channel.scenario.json +480 -0
- package/dist/content/examples/twitch-chat/tests/draft.scenario.json +279 -0
- package/dist/content/examples/twitch-chat/tests/fade.scenario.json +269 -0
- package/dist/content/examples/twitch-chat/tests/failures.scenario.json +420 -0
- package/dist/content/examples/twitch-chat/tests/favorites.scenario.json +376 -0
- package/dist/content/examples/twitch-chat/tests/frame.scenario.json +152 -0
- package/dist/content/examples/twitch-chat/tests/lifetime.scenario.json +186 -0
- package/dist/content/examples/twitch-chat/tests/load-logic.mjs +22 -0
- package/dist/content/examples/twitch-chat/tests/logic.test.mjs +1053 -0
- package/dist/content/examples/twitch-chat/tests/passive.scenario.json +536 -0
- package/dist/content/examples/twitch-chat/tests/preview.scenario.json +147 -0
- package/dist/content/examples/twitch-chat/tests/read-only.scenario.json +202 -0
- package/dist/content/examples/twitch-chat/tests/read-only.test.mjs +63 -0
- package/dist/content/examples/twitch-chat/tests/refused.scenario.json +65 -0
- package/dist/content/examples/twitch-chat/tests/refused.test.mjs +43 -0
- package/dist/content/examples/twitch-chat/tests/render.scenario.json +347 -0
- package/dist/content/examples/twitch-chat/tests/reply.scenario.json +384 -0
- package/dist/content/examples/twitch-chat/tests/send-refused.scenario.json +383 -0
- package/dist/content/examples/twitch-chat/tests/send.scenario.json +300 -0
- package/dist/content/examples/twitch-chat/tests/states.scenario.json +455 -0
- package/dist/content/examples/twitch-chat/tests/unavailable.scenario.json +256 -0
- package/dist/content/examples/twitch-chat/tests/unread.scenario.json +997 -0
- package/dist/content/examples/twitch-chat/tsconfig.json +16 -0
- package/dist/content/examples/twitch-chat/view.ocml +141 -0
- package/dist/content/examples/warframe-market/LICENSE +21 -0
- package/dist/content/examples/warframe-market/README.md +176 -0
- package/dist/content/examples/warframe-market/listing.json +19 -0
- package/dist/content/examples/warframe-market/locales/en.json +44 -0
- package/dist/content/examples/warframe-market/locales/fr.json +44 -0
- package/dist/content/examples/warframe-market/logic.ts +1265 -0
- package/dist/content/examples/warframe-market/manifest.json +92 -0
- package/dist/content/examples/warframe-market/package.json +16 -0
- package/dist/content/examples/warframe-market/style.ocss +422 -0
- package/dist/content/examples/warframe-market/tests/bounds.scenario.json +60 -0
- package/dist/content/examples/warframe-market/tests/cached.scenario.json +70 -0
- package/dist/content/examples/warframe-market/tests/detail.scenario.json +251 -0
- package/dist/content/examples/warframe-market/tests/errors.scenario.json +105 -0
- package/dist/content/examples/warframe-market/tests/fixtures.json +295 -0
- package/dist/content/examples/warframe-market/tests/load-logic.mjs +22 -0
- package/dist/content/examples/warframe-market/tests/logic.test.mjs +505 -0
- package/dist/content/examples/warframe-market/tests/no-clipboard.scenario.json +104 -0
- package/dist/content/examples/warframe-market/tests/passive.scenario.json +87 -0
- package/dist/content/examples/warframe-market/tests/preview.scenario.json +146 -0
- package/dist/content/examples/warframe-market/tests/refresh.scenario.json +56 -0
- package/dist/content/examples/warframe-market/tests/refused.scenario.json +74 -0
- package/dist/content/examples/warframe-market/tests/render.scenario.json +210 -0
- package/dist/content/examples/warframe-market/tests/search.scenario.json +189 -0
- package/dist/content/examples/warframe-market/tests/unavailable.scenario.json +54 -0
- package/dist/content/examples/warframe-market/tsconfig.json +16 -0
- package/dist/content/examples/warframe-market/view.ocml +116 -0
- package/dist/content/examples/weather/LICENSE +20 -0
- package/dist/content/examples/weather/listing.json +10 -0
- package/dist/content/examples/weather/locales/en.json +9 -0
- package/dist/content/examples/weather/locales/fr.json +9 -0
- package/dist/content/examples/weather/logic.ts +62 -0
- package/dist/content/examples/weather/manifest.json +51 -0
- package/dist/content/examples/weather/package.json +15 -0
- package/dist/content/examples/weather/style.ocss +29 -0
- package/dist/content/examples/weather/tsconfig.json +16 -0
- package/dist/content/examples/weather/view.ocml +12 -0
- package/dist/content/index.json +3601 -0
- package/dist/content/reference/errors.json +1712 -0
- package/dist/content/reference/limits.json +1154 -0
- package/dist/content/reference/manifest.md +223 -0
- package/dist/content/reference/permissions.json +413 -0
- package/dist/content/templates/blank/locales/en.json +3 -0
- package/dist/content/templates/blank/locales/fr.json +3 -0
- package/dist/content/templates/blank/logic.ts +7 -0
- package/dist/content/templates/blank/manifest.json +16 -0
- package/dist/content/templates/blank/style.ocss +10 -0
- package/dist/content/templates/blank/tests/example.scenario.json +10 -0
- package/dist/content/templates/blank/view.ocml +6 -0
- package/dist/content/templates/chart/locales/en.json +3 -0
- package/dist/content/templates/chart/locales/fr.json +3 -0
- package/dist/content/templates/chart/logic.ts +27 -0
- package/dist/content/templates/chart/manifest.json +16 -0
- package/dist/content/templates/chart/style.ocss +27 -0
- package/dist/content/templates/chart/tests/example.scenario.json +10 -0
- package/dist/content/templates/chart/view.ocml +10 -0
- package/dist/content/templates/counter/locales/en.json +4 -0
- package/dist/content/templates/counter/locales/fr.json +4 -0
- package/dist/content/templates/counter/logic.ts +20 -0
- package/dist/content/templates/counter/manifest.json +16 -0
- package/dist/content/templates/counter/style.ocss +26 -0
- package/dist/content/templates/counter/tests/example.scenario.json +11 -0
- package/dist/content/templates/counter/view.ocml +13 -0
- package/dist/content/templates/list/locales/en.json +8 -0
- package/dist/content/templates/list/locales/fr.json +8 -0
- package/dist/content/templates/list/logic.ts +35 -0
- package/dist/content/templates/list/manifest.json +16 -0
- package/dist/content/templates/list/style.ocss +42 -0
- package/dist/content/templates/list/tests/example.scenario.json +10 -0
- package/dist/content/templates/list/view.ocml +17 -0
- package/dist/content/templates/shared/LICENSE +20 -0
- package/dist/content/templates/shared/package.json +14 -0
- package/dist/content/templates/shared/tsconfig.json +16 -0
- package/dist/content.js +68 -0
- package/dist/env.js +156 -0
- package/dist/fingerprint.js +32 -0
- package/dist/ids.js +27 -0
- package/dist/index.js +82 -0
- package/dist/knowledge.js +222 -0
- package/dist/npm.js +149 -0
- package/dist/prompts.js +47 -0
- package/dist/resources.js +82 -0
- package/dist/run.js +120 -0
- package/dist/server.js +43 -0
- package/dist/session.js +205 -0
- package/dist/sources.js +218 -0
- package/dist/text.js +80 -0
- package/dist/texts.js +44 -0
- package/dist/tools/audit.js +105 -0
- package/dist/tools/build.js +453 -0
- package/dist/tools/common.js +122 -0
- package/dist/tools/docs.js +196 -0
- package/dist/tools/preview.js +87 -0
- package/dist/tools/project.js +178 -0
- package/dist/tools/setup.js +146 -0
- package/dist/tools/submission.js +369 -0
- package/dist/version.js +3 -0
- package/npm-shrinkwrap.json +402 -0
- package/package.json +52 -4
|
@@ -0,0 +1,475 @@
|
|
|
1
|
+
# Éléments et attributs
|
|
2
|
+
|
|
3
|
+
La vue d’un widget PlayerVox OverCrow se compose d’un jeu fermé d’éléments.
|
|
4
|
+
Cette page liste chacun d’eux avec son contenu, ses attributs et les
|
|
5
|
+
événements qu’il peut envoyer. [La vue](view.md) explique le balisage qui
|
|
6
|
+
les entoure : expressions, `if`, `for`, composants.
|
|
7
|
+
|
|
8
|
+
<!-- source: templates/chart/view.ocml -->
|
|
9
|
+
```xml
|
|
10
|
+
<box class="panel">
|
|
11
|
+
<box class="header">
|
|
12
|
+
<text class="title">{t("title")}</text>
|
|
13
|
+
<text class="value">{latest(state.values)}</text>
|
|
14
|
+
</box>
|
|
15
|
+
<chart class="plot" kind="area" min="0" max="100">
|
|
16
|
+
<series class="series" values={state.values}/>
|
|
17
|
+
</chart>
|
|
18
|
+
</box>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Deux conteneurs `box`, deux éléments `text` liés à l’état et un `chart` doté
|
|
22
|
+
d’une `series` : OverCrow dessine le tout, graphique compris.
|
|
23
|
+
|
|
24
|
+
## Lire la fiche d’un élément
|
|
25
|
+
|
|
26
|
+
- **Contenu** : ce que l’élément peut contenir. Les *éléments de bloc* sont
|
|
27
|
+
tous les éléments qui peuvent figurer seuls dans un conteneur (tous sauf
|
|
28
|
+
`span`, `option` et `series`) ; *en ligne* désigne le contenu d’un
|
|
29
|
+
`text` ; *texte*, du texte brut ; *vide* signifie que l’élément s’écrit
|
|
30
|
+
`<name …/>`.
|
|
31
|
+
- **Parents** : où l’élément peut se trouver ; *tout conteneur* désigne
|
|
32
|
+
n’importe quel conteneur.
|
|
33
|
+
- **Focus clavier** : *toujours* pour les contrôles ; *quand un événement
|
|
34
|
+
est écouté* pour un élément qui ne prend le focus que si la vue écoute
|
|
35
|
+
l’un de ses événements (`on:activate`…) ; *jamais* sinon.
|
|
36
|
+
- **Rôle** : la nature de l’élément, telle qu’elle est annoncée aux
|
|
37
|
+
technologies d’assistance.
|
|
38
|
+
- **Événements** : les événements que la vue peut écouter avec
|
|
39
|
+
`on:<event>`.
|
|
40
|
+
|
|
41
|
+
Un type tel que « texte ≤ 256 octets » donne une
|
|
42
|
+
[limite](limits.md).
|
|
43
|
+
|
|
44
|
+
## Attributs communs à tous les éléments
|
|
45
|
+
|
|
46
|
+
<!-- generated:common-attributes -->
|
|
47
|
+
| Attribut | Type | Obligatoire | Signification |
|
|
48
|
+
| --- | --- | --- | --- |
|
|
49
|
+
| `class` | liste de classes | non | Classes de style : des noms distincts, séparés par une espace. |
|
|
50
|
+
| `ref` | nom de `ref` statique | non | Nom par lequel `draw` désigne ce `canvas` et par lequel un attribut tel que `anchor` d’un `popover` désigne cet élément. Statique, unique dans la vue, et interdit dans un `for` ou dans le corps d’un composant, où il nommerait plusieurs éléments. |
|
|
51
|
+
| `label` | texte ≤ 256 octets | non | Nom accessible ; obligatoire sur les contrôles qui ne montrent qu’une icône. |
|
|
52
|
+
| `tooltip` | texte ≤ 256 octets | non | Texte brut que l’hôte affiche au survol ou au focus. |
|
|
53
|
+
| `on` | noms d’événements triés | non | Événements transmis à la logique ; s’écrit `on:<event>` dans la vue. |
|
|
54
|
+
<!-- /generated:common-attributes -->
|
|
55
|
+
|
|
56
|
+
## Éléments
|
|
57
|
+
|
|
58
|
+
<!-- generated:elements -->
|
|
59
|
+
### `box`
|
|
60
|
+
|
|
61
|
+
Conteneur générique ; la mise en page flex ou grid vient du style. La racine de la vue est un `box`.
|
|
62
|
+
|
|
63
|
+
| Contenu | Parents | Focus clavier | Rôle | Événements |
|
|
64
|
+
| --- | --- | --- | --- | --- |
|
|
65
|
+
| éléments de bloc | tout conteneur | quand un événement est écouté | `group` | `activate`, `contextmenu`, `wheel`, `keydown`, `focus`, `blur` |
|
|
66
|
+
|
|
67
|
+
Aucun attribut propre.
|
|
68
|
+
|
|
69
|
+
### `scroll`
|
|
70
|
+
|
|
71
|
+
Conteneur qui rogne son contenu et que l’hôte fait défiler à la molette, par glissement et au clavier.
|
|
72
|
+
|
|
73
|
+
| Contenu | Parents | Focus clavier | Rôle | Événements |
|
|
74
|
+
| --- | --- | --- | --- | --- |
|
|
75
|
+
| éléments de bloc | tout conteneur | jamais | `scroll-view` | `reachend`, `stick`, `contextmenu` |
|
|
76
|
+
|
|
77
|
+
| Attribut | Type | Obligatoire | Signification |
|
|
78
|
+
| --- | --- | --- | --- |
|
|
79
|
+
| `axis` | `vertical` \| `horizontal` | non | Sens du défilement ; `vertical` par défaut. |
|
|
80
|
+
| `stick-to-end` | booléen | non | Reste à la fin tant que le contenu grandit, jusqu’à ce que l’utilisateur fasse défiler ailleurs (chat). Le remettre après l’avoir retiré fait défiler jusqu’à la fin. |
|
|
81
|
+
|
|
82
|
+
### `list`
|
|
83
|
+
|
|
84
|
+
Liste à défilement vertical dont les enfants ne sont mis en page et peints que lorsqu’ils sont visibles.
|
|
85
|
+
|
|
86
|
+
| Contenu | Parents | Focus clavier | Rôle | Événements |
|
|
87
|
+
| --- | --- | --- | --- | --- |
|
|
88
|
+
| éléments de bloc | tout conteneur | jamais | `list` | `reachend`, `stick`, `contextmenu` |
|
|
89
|
+
|
|
90
|
+
| Attribut | Type | Obligatoire | Signification |
|
|
91
|
+
| --- | --- | --- | --- |
|
|
92
|
+
| `stick-to-end` | booléen | non | Comme pour `scroll`. |
|
|
93
|
+
| `item-height` | entier de 1 à 4096 | non | Hauteur estimée d’un enfant, utilisée tant qu’il n’a pas été mesuré. |
|
|
94
|
+
|
|
95
|
+
### `text`
|
|
96
|
+
|
|
97
|
+
Bloc de texte avec retour à la ligne ; ses enfants en ligne suivent le texte (une ligne de chat avec des emotes).
|
|
98
|
+
|
|
99
|
+
| Contenu | Parents | Focus clavier | Rôle | Événements |
|
|
100
|
+
| --- | --- | --- | --- | --- |
|
|
101
|
+
| en ligne : `span`, `icon`, `image` | tout conteneur | quand un événement est écouté | `label` | `activate`, `contextmenu`, `wheel`, `keydown`, `focus`, `blur` |
|
|
102
|
+
|
|
103
|
+
| Attribut | Type | Obligatoire | Signification |
|
|
104
|
+
| --- | --- | --- | --- |
|
|
105
|
+
| `selectable` | booléen | non | L’utilisateur peut sélectionner le texte et le copier par l’hôte ; aucune permission du widget n’intervient. |
|
|
106
|
+
|
|
107
|
+
### `span`
|
|
108
|
+
|
|
109
|
+
Portion de texte stylée à l’intérieur d’un `text`.
|
|
110
|
+
|
|
111
|
+
| Contenu | Parents | Focus clavier | Rôle | Événements |
|
|
112
|
+
| --- | --- | --- | --- | --- |
|
|
113
|
+
| texte | `text` | jamais | `label` | aucun |
|
|
114
|
+
|
|
115
|
+
| Attribut | Type | Obligatoire | Signification |
|
|
116
|
+
| --- | --- | --- | --- |
|
|
117
|
+
| `color` | `#rrggbb` opaque | non | Couleur issue des données, comme celle de l’auteur d’un message de chat ; elle remplace la couleur du style, et l’hôte en relève le contraste à 4,5:1 au moins par rapport au panneau. |
|
|
118
|
+
|
|
119
|
+
### `icon`
|
|
120
|
+
|
|
121
|
+
Icône Lucide teintée par `color`, dimensionnée par `font-size` sauf si `width` et `height` sont définis.
|
|
122
|
+
|
|
123
|
+
| Contenu | Parents | Focus clavier | Rôle | Événements |
|
|
124
|
+
| --- | --- | --- | --- | --- |
|
|
125
|
+
| vide | tout conteneur | quand un événement est écouté | `image` | `activate`, `contextmenu`, `wheel`, `keydown`, `focus`, `blur` |
|
|
126
|
+
|
|
127
|
+
| Attribut | Type | Obligatoire | Signification |
|
|
128
|
+
| --- | --- | --- | --- |
|
|
129
|
+
| `name` | nom d’icône Lucide | oui | Nom de l’icône, par exemple `circle-check`. |
|
|
130
|
+
|
|
131
|
+
### `image`
|
|
132
|
+
|
|
133
|
+
Image matricielle du paquet, ou image remise par un service (identifiant `asset:`) ; `object-fit` s’applique.
|
|
134
|
+
|
|
135
|
+
| Contenu | Parents | Focus clavier | Rôle | Événements |
|
|
136
|
+
| --- | --- | --- | --- | --- |
|
|
137
|
+
| vide | tout conteneur | quand un événement est écouté | `image` | `activate`, `contextmenu`, `wheel`, `keydown`, `focus`, `blur` |
|
|
138
|
+
|
|
139
|
+
| Attribut | Type | Obligatoire | Signification |
|
|
140
|
+
| --- | --- | --- | --- |
|
|
141
|
+
| `src` | source d’image | oui | Source de l’image. |
|
|
142
|
+
|
|
143
|
+
### `avatar`
|
|
144
|
+
|
|
145
|
+
Image ronde, avec un texte de remplacement tant que l’image manque ou n’a pas pu être chargée.
|
|
146
|
+
|
|
147
|
+
| Contenu | Parents | Focus clavier | Rôle | Événements |
|
|
148
|
+
| --- | --- | --- | --- | --- |
|
|
149
|
+
| vide | tout conteneur | quand un événement est écouté | `image` | `activate`, `contextmenu`, `wheel`, `keydown`, `focus`, `blur` |
|
|
150
|
+
|
|
151
|
+
| Attribut | Type | Obligatoire | Signification |
|
|
152
|
+
| --- | --- | --- | --- |
|
|
153
|
+
| `src` | source d’image | non | Source de l’image. |
|
|
154
|
+
| `initials` | texte ≤ 16 octets | non | Texte de remplacement. |
|
|
155
|
+
|
|
156
|
+
### `badge`
|
|
157
|
+
|
|
158
|
+
Courte pastille de texte.
|
|
159
|
+
|
|
160
|
+
| Contenu | Parents | Focus clavier | Rôle | Événements |
|
|
161
|
+
| --- | --- | --- | --- | --- |
|
|
162
|
+
| texte | tout conteneur | quand un événement est écouté | `label` | `activate`, `contextmenu`, `wheel` |
|
|
163
|
+
|
|
164
|
+
Aucun attribut propre.
|
|
165
|
+
|
|
166
|
+
### `button`
|
|
167
|
+
|
|
168
|
+
Contrôle activable ; ses enfants (icône, texte) forment son contenu.
|
|
169
|
+
|
|
170
|
+
| Contenu | Parents | Focus clavier | Rôle | Événements |
|
|
171
|
+
| --- | --- | --- | --- | --- |
|
|
172
|
+
| éléments de bloc | tout conteneur | toujours | `button` | `activate`, `contextmenu`, `wheel`, `keydown`, `focus`, `blur` |
|
|
173
|
+
|
|
174
|
+
| Attribut | Type | Obligatoire | Signification |
|
|
175
|
+
| --- | --- | --- | --- |
|
|
176
|
+
| `disabled` | booléen | non | Refuse les entrées ; correspond à `:disabled`. |
|
|
177
|
+
| `submit` | booléen | non | Valide le `form` qui le contient. |
|
|
178
|
+
|
|
179
|
+
### `toggle`
|
|
180
|
+
|
|
181
|
+
Bascule activé/désactivé.
|
|
182
|
+
|
|
183
|
+
| Contenu | Parents | Focus clavier | Rôle | Événements |
|
|
184
|
+
| --- | --- | --- | --- | --- |
|
|
185
|
+
| vide | tout conteneur | toujours | `switch` | `change`, `focus`, `blur`, `contextmenu` |
|
|
186
|
+
|
|
187
|
+
| Attribut | Type | Obligatoire | Signification |
|
|
188
|
+
| --- | --- | --- | --- |
|
|
189
|
+
| `checked` | booléen | non | État ; correspond à `:checked`. |
|
|
190
|
+
| `disabled` | booléen | non | Refuse les entrées ; correspond à `:disabled`. |
|
|
191
|
+
| `name` | identifiant ≤ 64 octets | non | Nom du champ dans un `form`. |
|
|
192
|
+
|
|
193
|
+
### `checkbox`
|
|
194
|
+
|
|
195
|
+
Case à cocher (listes de tâches).
|
|
196
|
+
|
|
197
|
+
| Contenu | Parents | Focus clavier | Rôle | Événements |
|
|
198
|
+
| --- | --- | --- | --- | --- |
|
|
199
|
+
| vide | tout conteneur | toujours | `check-box` | `change`, `focus`, `blur`, `contextmenu` |
|
|
200
|
+
|
|
201
|
+
| Attribut | Type | Obligatoire | Signification |
|
|
202
|
+
| --- | --- | --- | --- |
|
|
203
|
+
| `checked` | booléen | non | État ; correspond à `:checked`. |
|
|
204
|
+
| `disabled` | booléen | non | Refuse les entrées ; correspond à `:disabled`. |
|
|
205
|
+
| `name` | identifiant ≤ 64 octets | non | Nom du champ dans un `form`. |
|
|
206
|
+
|
|
207
|
+
### `slider`
|
|
208
|
+
|
|
209
|
+
Curseur sur un intervalle numérique ; le glissement est géré par l’hôte.
|
|
210
|
+
|
|
211
|
+
| Contenu | Parents | Focus clavier | Rôle | Événements |
|
|
212
|
+
| --- | --- | --- | --- | --- |
|
|
213
|
+
| vide | tout conteneur | toujours | `slider` | `input`, `change`, `focus`, `blur`, `contextmenu` |
|
|
214
|
+
|
|
215
|
+
| Attribut | Type | Obligatoire | Signification |
|
|
216
|
+
| --- | --- | --- | --- |
|
|
217
|
+
| `min` | nombre de -1000000000 à 1000000000 | oui | Borne inférieure. |
|
|
218
|
+
| `max` | nombre de -1000000000 à 1000000000 | oui | Borne supérieure, plus grande que `min`. |
|
|
219
|
+
| `step` | nombre de -1000000000 à 1000000000 | non | Pas, positif ; 1 par défaut. |
|
|
220
|
+
| `value` | nombre de -1000000000 à 1000000000 | non | Valeur courante, ramenée dans l’intervalle ; refusée sur un curseur lié à un intent d’écriture. |
|
|
221
|
+
| `disabled` | booléen | non | Refuse les entrées ; correspond à `:disabled`. |
|
|
222
|
+
| `name` | identifiant ≤ 64 octets | non | Nom du champ dans un `form`. |
|
|
223
|
+
|
|
224
|
+
### `select`
|
|
225
|
+
|
|
226
|
+
Liste déroulante ; la liste ouverte est dessinée par l’hôte.
|
|
227
|
+
|
|
228
|
+
| Contenu | Parents | Focus clavier | Rôle | Événements |
|
|
229
|
+
| --- | --- | --- | --- | --- |
|
|
230
|
+
| `option` | tout conteneur | toujours | `combo-box` | `change`, `focus`, `blur`, `contextmenu` |
|
|
231
|
+
|
|
232
|
+
| Attribut | Type | Obligatoire | Signification |
|
|
233
|
+
| --- | --- | --- | --- |
|
|
234
|
+
| `value` | texte ≤ 1 Kio | non | Valeur de l’option sélectionnée. |
|
|
235
|
+
| `disabled` | booléen | non | Refuse les entrées ; correspond à `:disabled`. |
|
|
236
|
+
| `name` | identifiant ≤ 64 octets | non | Nom du champ dans un `form`. |
|
|
237
|
+
|
|
238
|
+
### `option`
|
|
239
|
+
|
|
240
|
+
Choix d’un `select` ; son texte est le libellé affiché.
|
|
241
|
+
|
|
242
|
+
| Contenu | Parents | Focus clavier | Rôle | Événements |
|
|
243
|
+
| --- | --- | --- | --- | --- |
|
|
244
|
+
| texte | `select` | jamais | `list-box-option` | aucun |
|
|
245
|
+
|
|
246
|
+
| Attribut | Type | Obligatoire | Signification |
|
|
247
|
+
| --- | --- | --- | --- |
|
|
248
|
+
| `value` | texte ≤ 1 Kio | oui | Valeur transmise par `change`. |
|
|
249
|
+
| `disabled` | booléen | non | Refuse les entrées ; correspond à `:disabled`. |
|
|
250
|
+
|
|
251
|
+
### `field`
|
|
252
|
+
|
|
253
|
+
Champ de texte d’une ligne, édité par l’hôte, méthodes de saisie (IME) comprises.
|
|
254
|
+
|
|
255
|
+
| Contenu | Parents | Focus clavier | Rôle | Événements |
|
|
256
|
+
| --- | --- | --- | --- | --- |
|
|
257
|
+
| vide | tout conteneur | toujours | `text-input` | `input`, `change`, `submit`, `keydown`, `focus`, `blur`, `contextmenu` |
|
|
258
|
+
|
|
259
|
+
| Attribut | Type | Obligatoire | Signification |
|
|
260
|
+
| --- | --- | --- | --- |
|
|
261
|
+
| `value` | texte ≤ 16 Kio | non | Remplace le contenu ; refusée sur un champ lié à un intent d’écriture. |
|
|
262
|
+
| `placeholder` | texte ≤ 256 octets | non | Indication affichée tant que le champ est vide. |
|
|
263
|
+
| `max-length` | entier de 1 à 16384 | non | Limite du contenu, en octets ; un intent d’écriture peut en imposer une plus basse. |
|
|
264
|
+
| `disabled` | booléen | non | Refuse les entrées ; correspond à `:disabled`. |
|
|
265
|
+
| `name` | identifiant ≤ 64 octets | non | Nom du champ dans un `form`. |
|
|
266
|
+
| `autofocus` | booléen | non | Prend le focus clavier quand l’élément apparaît pendant que la logique traite une action de l’utilisateur (un éditeur ouvert par un clic), en mode interactif, dans le widget qui a reçu l’action ; le premier de ces éléments dans la vue quand plusieurs apparaissent ensemble. Jamais au démarrage du widget, depuis un minuteur ou la réponse d’un service, en mode passif, ni quand il est posé sur un élément déjà affiché. |
|
|
267
|
+
|
|
268
|
+
### `textarea`
|
|
269
|
+
|
|
270
|
+
Champ de texte de plusieurs lignes, édité par l’hôte, méthodes de saisie (IME) comprises.
|
|
271
|
+
|
|
272
|
+
| Contenu | Parents | Focus clavier | Rôle | Événements |
|
|
273
|
+
| --- | --- | --- | --- | --- |
|
|
274
|
+
| vide | tout conteneur | toujours | `multiline-text-input` | `input`, `change`, `submit`, `keydown`, `focus`, `blur`, `contextmenu` |
|
|
275
|
+
|
|
276
|
+
| Attribut | Type | Obligatoire | Signification |
|
|
277
|
+
| --- | --- | --- | --- |
|
|
278
|
+
| `value` | texte ≤ 16 Kio | non | Comme pour `field`. |
|
|
279
|
+
| `placeholder` | texte ≤ 256 octets | non | Indication affichée tant que le champ est vide. |
|
|
280
|
+
| `max-length` | entier de 1 à 16384 | non | Comme pour `field`. |
|
|
281
|
+
| `rows` | entier de 1 à 40 | non | Lignes visibles avant le défilement ; 3 par défaut. |
|
|
282
|
+
| `disabled` | booléen | non | Refuse les entrées ; correspond à `:disabled`. |
|
|
283
|
+
| `name` | identifiant ≤ 64 octets | non | Nom du champ dans un `form`. |
|
|
284
|
+
| `autofocus` | booléen | non | Prend le focus clavier quand l’élément apparaît pendant que la logique traite une action de l’utilisateur (un éditeur ouvert par un clic), en mode interactif, dans le widget qui a reçu l’action ; le premier de ces éléments dans la vue quand plusieurs apparaissent ensemble. Jamais au démarrage du widget, depuis un minuteur ou la réponse d’un service, en mode passif, ni quand il est posé sur un élément déjà affiché. |
|
|
285
|
+
|
|
286
|
+
### `form`
|
|
287
|
+
|
|
288
|
+
Regroupe des contrôles nommés. Avec `intent`, la validation envoie leurs valeurs à un service d’écriture directement depuis l’hôte ; la logique du widget ne fournit jamais ce contenu.
|
|
289
|
+
|
|
290
|
+
| Contenu | Parents | Focus clavier | Rôle | Événements |
|
|
291
|
+
| --- | --- | --- | --- | --- |
|
|
292
|
+
| éléments de bloc | tout conteneur | jamais | `form` | `submit` |
|
|
293
|
+
|
|
294
|
+
| Attribut | Type | Obligatoire | Signification |
|
|
295
|
+
| --- | --- | --- | --- |
|
|
296
|
+
| `intent` | `notes.save` \| `playervox.rating.publish` \| `twitch.chat.send` | non | Intent d’écriture lié. |
|
|
297
|
+
| `target` | texte ≤ 1 Kio | non | ID opaque de l’objet modifié (une note, le message auquel on répond), vérifié par le service. |
|
|
298
|
+
|
|
299
|
+
### `elapsed`
|
|
300
|
+
|
|
301
|
+
Durée affichée que l’hôte fait avancer à partir d’un repère donné par un service : un chronomètre qui tourne ne demande aucun travail à la logique. Stylé comme `text` ; repeint seulement quand le texte affiché change, au plus à 60 Hz, et jamais quand le widget est masqué.
|
|
302
|
+
|
|
303
|
+
| Contenu | Parents | Focus clavier | Rôle | Événements |
|
|
304
|
+
| --- | --- | --- | --- | --- |
|
|
305
|
+
| vide | tout conteneur | quand un événement est écouté | `timer` | `activate`, `contextmenu`, `wheel` |
|
|
306
|
+
|
|
307
|
+
| Attribut | Type | Obligatoire | Signification |
|
|
308
|
+
| --- | --- | --- | --- |
|
|
309
|
+
| `base` | entier de 0 à 9007199254740991 | oui | Millisecondes écoulées à l’instant `at`. |
|
|
310
|
+
| `at` | entier de 0 à 9007199254740991 | oui | Instant de l’horloge monotone de l’hôte, en millisecondes, donné par le résultat du service. |
|
|
311
|
+
| `running` | booléen | non | Avance depuis `at` ; `false` par défaut. |
|
|
312
|
+
| `format` | `hh:mm:ss` \| `hh:mm:ss.cc` \| `mm:ss` | oui | Les heures continuent au-delà de 99 ; `cc` sont les centièmes, tronqués. |
|
|
313
|
+
|
|
314
|
+
### `progress`
|
|
315
|
+
|
|
316
|
+
Barre de progression horizontale.
|
|
317
|
+
|
|
318
|
+
| Contenu | Parents | Focus clavier | Rôle | Événements |
|
|
319
|
+
| --- | --- | --- | --- | --- |
|
|
320
|
+
| vide | tout conteneur | quand un événement est écouté | `progress-indicator` | `activate`, `contextmenu`, `wheel` |
|
|
321
|
+
|
|
322
|
+
| Attribut | Type | Obligatoire | Signification |
|
|
323
|
+
| --- | --- | --- | --- |
|
|
324
|
+
| `value` | nombre de -1000000000 à 1000000000 | oui | Valeur courante. |
|
|
325
|
+
| `max` | nombre de -1000000000 à 1000000000 | non | Borne supérieure, positive ; 1 par défaut. |
|
|
326
|
+
|
|
327
|
+
### `gauge`
|
|
328
|
+
|
|
329
|
+
Jauge en anneau ou en arc.
|
|
330
|
+
|
|
331
|
+
| Contenu | Parents | Focus clavier | Rôle | Événements |
|
|
332
|
+
| --- | --- | --- | --- | --- |
|
|
333
|
+
| vide | tout conteneur | quand un événement est écouté | `meter` | `activate`, `contextmenu`, `wheel` |
|
|
334
|
+
|
|
335
|
+
| Attribut | Type | Obligatoire | Signification |
|
|
336
|
+
| --- | --- | --- | --- |
|
|
337
|
+
| `value` | nombre de -1000000000 à 1000000000 | oui | Valeur courante. |
|
|
338
|
+
| `max` | nombre de -1000000000 à 1000000000 | non | Borne supérieure, positive ; 1 par défaut. |
|
|
339
|
+
| `shape` | `ring` \| `arc` | non | `ring` par défaut. |
|
|
340
|
+
|
|
341
|
+
### `chart`
|
|
342
|
+
|
|
343
|
+
Graphique en ligne, en aire, en barres ou sparkline, dessiné par l’hôte.
|
|
344
|
+
|
|
345
|
+
| Contenu | Parents | Focus clavier | Rôle | Événements |
|
|
346
|
+
| --- | --- | --- | --- | --- |
|
|
347
|
+
| `series` | tout conteneur | quand un événement est écouté | `figure` | `activate`, `contextmenu`, `wheel` |
|
|
348
|
+
|
|
349
|
+
| Attribut | Type | Obligatoire | Signification |
|
|
350
|
+
| --- | --- | --- | --- |
|
|
351
|
+
| `kind` | `line` \| `area` \| `bar` \| `sparkline` | oui | Type de graphique. |
|
|
352
|
+
| `min` | nombre de -1000000000 à 1000000000 | non | Borne inférieure fixe de l’axe des valeurs. |
|
|
353
|
+
| `max` | nombre de -1000000000 à 1000000000 | non | Borne supérieure fixe de l’axe des valeurs. |
|
|
354
|
+
|
|
355
|
+
### `series`
|
|
356
|
+
|
|
357
|
+
Une série de données d’un `chart`, colorée par `color`.
|
|
358
|
+
|
|
359
|
+
| Contenu | Parents | Focus clavier | Rôle | Événements |
|
|
360
|
+
| --- | --- | --- | --- | --- |
|
|
361
|
+
| vide | `chart` | jamais | `figure` | aucun |
|
|
362
|
+
|
|
363
|
+
| Attribut | Type | Obligatoire | Signification |
|
|
364
|
+
| --- | --- | --- | --- |
|
|
365
|
+
| `values` | liste de nombres ≤ 1024 | oui | Valeurs, dans l’ordre. |
|
|
366
|
+
|
|
367
|
+
### `separator`
|
|
368
|
+
|
|
369
|
+
Filet de séparation entre deux groupes.
|
|
370
|
+
|
|
371
|
+
| Contenu | Parents | Focus clavier | Rôle | Événements |
|
|
372
|
+
| --- | --- | --- | --- | --- |
|
|
373
|
+
| vide | tout conteneur | jamais | `splitter` | aucun |
|
|
374
|
+
|
|
375
|
+
| Attribut | Type | Obligatoire | Signification |
|
|
376
|
+
| --- | --- | --- | --- |
|
|
377
|
+
| `axis` | `vertical` \| `horizontal` | non | `horizontal` par défaut. |
|
|
378
|
+
|
|
379
|
+
### `canvas`
|
|
380
|
+
|
|
381
|
+
Surface que l’hôte peint à partir de la dernière liste de commandes passée à `draw`.
|
|
382
|
+
|
|
383
|
+
| Contenu | Parents | Focus clavier | Rôle | Événements |
|
|
384
|
+
| --- | --- | --- | --- | --- |
|
|
385
|
+
| vide | tout conteneur | quand un événement est écouté | `image` | `activate`, `contextmenu`, `wheel`, `keydown`, `focus`, `blur` |
|
|
386
|
+
|
|
387
|
+
Aucun attribut propre.
|
|
388
|
+
|
|
389
|
+
### `popover`
|
|
390
|
+
|
|
391
|
+
Panneau flottant ancré à un élément, dessiné au-dessus du contenu et rogné au cadre du widget (listes déroulantes, menus contextuels).
|
|
392
|
+
|
|
393
|
+
| Contenu | Parents | Focus clavier | Rôle | Événements |
|
|
394
|
+
| --- | --- | --- | --- | --- |
|
|
395
|
+
| éléments de bloc | tout conteneur | jamais | `menu` | `dismiss` |
|
|
396
|
+
|
|
397
|
+
| Attribut | Type | Obligatoire | Signification |
|
|
398
|
+
| --- | --- | --- | --- |
|
|
399
|
+
| `anchor` | nom de `ref` | oui | `ref` de l’élément contre lequel le panneau est placé. |
|
|
400
|
+
| `open` | booléen | non | Visibilité ; l’hôte le ferme et envoie `dismiss`. |
|
|
401
|
+
| `placement` | `below` \| `above` \| `start` \| `end` \| `pointer` | non | Côté préféré, ou dernière position du pointeur ; `below` par défaut. |
|
|
402
|
+
<!-- /generated:elements -->
|
|
403
|
+
|
|
404
|
+
## Événements
|
|
405
|
+
|
|
406
|
+
<!-- generated:events -->
|
|
407
|
+
| Événement | Action de l’utilisateur | Détail | Signification |
|
|
408
|
+
| --- | --- | --- | --- |
|
|
409
|
+
| `activate` | **oui** | `x`, `y` | Clic principal, ou Entrée ou Espace sur l’élément qui a le focus. |
|
|
410
|
+
| `contextmenu` | **oui** | `x`, `y` | Clic secondaire, touche Menu ou Maj+F10. |
|
|
411
|
+
| `wheel` | non | `dx`, `dy` | Défilement à la molette ou au pavé tactile au-dessus d’un élément qui n’est pas un conteneur à défilement. |
|
|
412
|
+
| `keydown` | **oui** | `key`, `ctrl`, `alt`, `shift`, `meta`, `repeat` | Touche enfoncée pendant que l’élément a le focus, en mode interactif. Les touches que l’hôte se réserve (Tab pour parcourir les contrôles, raccourcis d’OverCrow, composition d’une méthode de saisie) ne sont jamais transmises. |
|
|
413
|
+
| `input` | **oui** | `value` | Valeur en cours de modification (texte, glissement d’un curseur). Copie en lecture seule ; c’est l’hôte qui conserve le contenu. |
|
|
414
|
+
| `change` | **oui** | `value` | Valeur validée : perte du focus ou Entrée pour un texte, relâchement pour un curseur, tout changement pour une bascule, une case à cocher ou une liste déroulante. |
|
|
415
|
+
| `submit` | **oui** | `outcome`, `error` | Formulaire validé par Entrée dans un champ, par Ctrl+Entrée dans un `field` ou un `textarea`, ou par un bouton `submit` ; un intent d’écriture peut réserver la touche Entrée seule au passage d’un champ à l’autre. Avec un intent, porte le résultat de l’écriture. |
|
|
416
|
+
| `focus` | non | aucun | L’élément a reçu le focus clavier. |
|
|
417
|
+
| `blur` | non | aucun | L’élément a perdu le focus clavier. |
|
|
418
|
+
| `reachend` | non | aucun | Le défilement est arrivé à moins d’une hauteur visible de la fin (charger la suite, l’historique). |
|
|
419
|
+
| `stick` | non | `stuck` | L’utilisateur a fait défiler un conteneur loin de sa fin, ou y est revenu (compteur de messages non lus, retour au plus récent). Un contenu qui grandit ne l’envoie jamais. |
|
|
420
|
+
| `dismiss` | non | aucun | L’hôte a fermé un popover (Échap, clic à l’extérieur, ancre retirée). |
|
|
421
|
+
<!-- /generated:events -->
|
|
422
|
+
|
|
423
|
+
Un événement marqué comme action de l’utilisateur autorise un
|
|
424
|
+
[appel de service protégé](services.md#les-appels-qui-demandent-une-action-de-lutilisateur)
|
|
425
|
+
pendant que la logique le traite. Le détail est ce que reçoit un
|
|
426
|
+
gestionnaire ; dans un gestionnaire écrit sous forme d’appel, il s’appelle
|
|
427
|
+
`event` :
|
|
428
|
+
|
|
429
|
+
<!-- source: widgets/twitch-chat/view.ocml -->
|
|
430
|
+
```xml
|
|
431
|
+
<list class="history" stick-to-end={state.following} item-height="20" label={heading(state)} on:stick={stuck(event.stuck)}>
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
Les touches nommées de `keydown` sont :
|
|
435
|
+
|
|
436
|
+
<!-- generated:named-keys -->
|
|
437
|
+
`Enter`, `Escape`, `Backspace`, `Delete`, `ArrowUp`, `ArrowDown`, `ArrowLeft`, `ArrowRight`, `Home`, `End`, `PageUp`, `PageDown`.
|
|
438
|
+
<!-- /generated:named-keys -->
|
|
439
|
+
|
|
440
|
+
Toute autre `key` est un unique caractère imprimable.
|
|
441
|
+
|
|
442
|
+
## Tailles par défaut
|
|
443
|
+
|
|
444
|
+
Les éléments qu’OverCrow dessine prennent ces tailles, en pixels logiques à
|
|
445
|
+
100 %, sauf si le style définit `width` ou `height`. Tout autre élément tire
|
|
446
|
+
sa taille de son contenu et du style : un `canvas` n’a pas de taille tant
|
|
447
|
+
que le style ne lui en donne pas.
|
|
448
|
+
|
|
449
|
+
<!-- generated:default-sizes -->
|
|
450
|
+
| Élément | Quand | Largeur | Hauteur |
|
|
451
|
+
| --- | --- | --- | --- |
|
|
452
|
+
| `icon` | toujours | `font-size` | `font-size` |
|
|
453
|
+
| `image` | toujours | image décodée, sinon 0 | image décodée, sinon 0 |
|
|
454
|
+
| `avatar` | toujours | image décodée, sinon 28 | image décodée, sinon 28 |
|
|
455
|
+
| `toggle` | toujours | 32 | 18 |
|
|
456
|
+
| `checkbox` | toujours | 16 | 16 |
|
|
457
|
+
| `slider` | toujours | 120 | 18 |
|
|
458
|
+
| `progress` | toujours | 120 | 6 |
|
|
459
|
+
| `gauge` | `shape="arc"` | 48 | 32 |
|
|
460
|
+
| `gauge` | toujours | 48 | 48 |
|
|
461
|
+
| `chart` | toujours | 160 | 48 |
|
|
462
|
+
| `field` | toujours | 160 | max(`--control-height`, hauteur de ligne) |
|
|
463
|
+
| `textarea` | toujours | 160 | `rows` hauteurs de ligne |
|
|
464
|
+
| `separator` | `axis="vertical"` | 1 | 0 |
|
|
465
|
+
| `separator` | toujours | 0 | 1 |
|
|
466
|
+
| `select` | toujours | son texte | son texte |
|
|
467
|
+
| `elapsed` | toujours | son texte | son texte |
|
|
468
|
+
<!-- /generated:default-sizes -->
|
|
469
|
+
|
|
470
|
+
<!-- source: docs/content/examples/countdown/style.ocss -->
|
|
471
|
+
```css
|
|
472
|
+
.dots {
|
|
473
|
+
height: 12px;
|
|
474
|
+
}
|
|
475
|
+
```
|