BREAKING CHANGE: wml attributes are now prefixed with data-

This commit is contained in:
Lea Anthony 2025-01-28 07:37:17 +11:00
commit b3e81f5cbb
No known key found for this signature in database
GPG key ID: 33DAF7BB90A58405
32 changed files with 80 additions and 81 deletions

View file

@ -10,10 +10,10 @@
<body>
<div class="container">
<div>
<a wml-openURL="https://wails.io">
<a data-wml-openURL="https://wails.io">
<img src="/wails.png" class="logo" alt="Wails logo"/>
</a>
<a wml-openURL="https://developer.mozilla.org/en-US/docs/Web/JavaScript">
<a data-wml-openURL="https://developer.mozilla.org/en-US/docs/Web/JavaScript">
<img src="/javascript.svg" class="logo vanilla" alt="JavaScript logo"/>
</a>
</div>

View file

@ -19,7 +19,7 @@ func main() {
Assets: application.AssetOptions{
Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
w.Write([]byte(`<html><head><title>Plain Bundle</title><script type="module" src="/wails/runtime.js"></script></head><body><div class="main"><h1>Plain Bundle</h1><p>This is a plain bundle. It has no frontend code but this was Served by the AssetServer's Handler.</p><br/><br/><p wml-event="clicked">Clicking this paragraph emits an event...<p></div></body></html>`))
w.Write([]byte(`<html><head><title>Plain Bundle</title><script type="module" src="/wails/runtime.js"></script></head><body><div class="main"><h1>Plain Bundle</h1><p>This is a plain bundle. It has no frontend code but this was Served by the AssetServer's Handler.</p><br/><br/><p data-wml-event="clicked">Clicking this paragraph emits an event...<p></div></body></html>`))
}),
},
})

File diff suppressed because one or more lines are too long

View file

@ -1,6 +1,6 @@
# WML Example
This is an example of how to use the experimental WML, which provides HTMX style calling of the runtime API.
This is an example of how to use the experimental WML, which provides HTMX style calling of the Wails JS API.
## Running the example

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,7 +1,7 @@
{
"name": "@wailsio/runtime",
"type": "module",
"version": "3.0.0-alpha.39",
"version": "3.0.0-alpha.40",
"description": "Wails Runtime",
"types": "types/index.d.ts",
"exports": {

View file

@ -60,10 +60,10 @@ function onWMLTriggered(ev) {
if (choice !== "Yes")
return;
const eventType = element.getAttribute('wml-event');
const targetWindow = element.getAttribute('wml-target-window') || "";
const windowMethod = element.getAttribute('wml-window');
const url = element.getAttribute('wml-openurl');
const eventType = element.getAttribute('data-wml-event');
const targetWindow = element.getAttribute('data-wml-target-window') || "";
const windowMethod = element.getAttribute('data-wml-window');
const url = element.getAttribute('data-wml-openURL');
if (eventType !== null)
sendEvent(eventType);
@ -73,7 +73,7 @@ function onWMLTriggered(ev) {
void OpenURL(url);
}
const confirm = element.getAttribute('wml-confirm');
const confirm = element.getAttribute('data-wml-confirm');
if (confirm) {
Question({
@ -218,7 +218,7 @@ const triggerRegistry = canAbortListeners() ? new AbortControllerRegistry() : ne
*/
function addWMLListeners(element) {
const triggerRegExp = /\S+/g;
const triggerAttr = (element.getAttribute('wml-trigger') || "click");
const triggerAttr = (element.getAttribute('data-wml-trigger') || "click");
const triggers = [];
let match;
@ -246,5 +246,5 @@ export function Enable() {
*/
export function Reload() {
triggerRegistry.reset();
document.body.querySelectorAll('[wml-event], [wml-window], [wml-openurl]').forEach(addWMLListeners);
document.body.querySelectorAll('[data-wml-event], [data-wml-window], [data-wml-openURL]').forEach(addWMLListeners);
}

View file

@ -10,10 +10,10 @@
<body>
<div class="container">
<div>
<a wml-openURL="https://wails.io">
<a data-wml-openURL="https://wails.io">
<img src="/wails.png" class="logo" alt="Wails logo"/>
</a>
<a wml-openURL="https://developer.mozilla.org/en-US/docs/Web/JavaScript">
<a data-wml-openURL="https://developer.mozilla.org/en-US/docs/Web/JavaScript">
<img src="/javascript.svg" class="logo vanilla" alt="JavaScript logo"/>
</a>
</div>

View file

@ -45,10 +45,10 @@ export class MyElement extends LitElement {
return html`
<div class="container">
<div>
<a wml-openURL="https://wails.io">
<a data-wml-openURL="https://wails.io">
<img src="/wails.png" class="logo" alt="Wails logo"/>
</a>
<a wml-openURL="https://lit.dev">
<a data-wml-openURL="https://lit.dev">
<img src="/lit.svg" class="logo lit" alt="Lit logo"/>
</a>
</div>

View file

@ -35,10 +35,10 @@ export class MyElement extends LitElement {
return html`
<div class="container">
<div>
<a wml-openURL="https://wails.io">
<a data-wml-openURL="https://wails.io">
<img src="/wails.png" class="logo" alt="Wails logo"/>
</a>
<a wml-openURL="https://lit.dev">
<a data-wml-openURL="https://lit.dev">
<img src="/lit.svg" class="logo lit" alt="Lit logo"/>
</a>
</div>

View file

@ -29,10 +29,10 @@ export function App() {
<>
<div className="container">
<div>
<a wml-openURL="https://wails.io">
<a data-wml-openURL="https://wails.io">
<img src="/wails.png" className="logo" alt="Wails logo"/>
</a>
<a wml-openURL="https://preactjs.com">
<a data-wml-openURL="https://preactjs.com">
<img src="/preact.svg" className="logo preact" alt="Preact logo"/>
</a>
</div>

View file

@ -28,10 +28,10 @@ export function App() {
return (
<div className="container">
<div>
<a wml-openURL="https://wails.io">
<a data-wml-openURL="https://wails.io">
<img src="/wails.png" className="logo" alt="Wails logo"/>
</a>
<a wml-openURL="https://preactjs.com">
<a data-wml-openURL="https://preactjs.com">
<img src="/preact.svg" className="logo preact" alt="Preact logo"/>
</a>
</div>

View file

@ -30,10 +30,10 @@ export const App = component$(() => {
return (
<div class="container">
<div>
<a wml-openURL="https://wails.io">
<a data-wml-openURL="https://wails.io">
<img src="/wails.png" class="logo" alt="Wails logo"/>
</a>
<a wml-openURL="https://qwik.builder.io">
<a data-wml-openURL="https://qwik.builder.io">
<img src="/qwik.svg" class="logo qwik" alt="Qwik logo"/>
</a>
</div>

View file

@ -30,10 +30,10 @@ export const App = component$(() => {
return (
<div class="container">
<div>
<a wml-openURL="https://wails.io">
<a data-wml-openURL="https://wails.io">
<img src="/wails.png" class="logo" alt="Wails logo"/>
</a>
<a wml-openURL="https://qwik.builder.io">
<a data-wml-openURL="https://qwik.builder.io">
<img src="/qwik.svg" class="logo qwik" alt="Qwik logo"/>
</a>
</div>

View file

@ -30,10 +30,10 @@ function App() {
return (
<div className="container">
<div>
<a wml-openURL="https://wails.io">
<a data-wml-openURL="https://wails.io">
<img src="/wails.png" className="logo" alt="Wails logo"/>
</a>
<a wml-openURL="https://reactjs.org">
<a data-wml-openURL="https://reactjs.org">
<img src="/react.svg" className="logo react" alt="React logo"/>
</a>
</div>

View file

@ -30,10 +30,10 @@ function App() {
return (
<div className="container">
<div>
<a wml-openURL="https://wails.io">
<a data-wml-openURL="https://wails.io">
<img src="/wails.png" className="logo" alt="Wails logo"/>
</a>
<a wml-openURL="https://reactjs.org">
<a data-wml-openURL="https://reactjs.org">
<img src='/react.svg' className="logo react" alt="React logo"/>
</a>
</div>

View file

@ -30,10 +30,10 @@ function App() {
return (
<div className="container">
<div>
<a wml-openURL="https://wails.io">
<a data-wml-openURL="https://wails.io">
<img src="/wails.png" className="logo" alt="Wails logo"/>
</a>
<a wml-openURL="https://reactjs.org">
<a data-wml-openURL="https://reactjs.org">
<img src="/react.svg" className="logo react" alt="React logo"/>
</a>
</div>

View file

@ -30,10 +30,10 @@ function App() {
return (
<div className="container">
<div>
<a wml-openURL="https://wails.io">
<a data-wml-openURL="https://wails.io">
<img src="/wails.png" className="logo" alt="Wails logo"/>
</a>
<a wml-openURL="https://reactjs.org">
<a data-wml-openURL="https://reactjs.org">
<img src='/react.svg' className="logo react" alt="React logo"/>
</a>
</div>

View file

@ -28,10 +28,10 @@ function App() {
return (
<div class="container">
<div>
<a wml-openURL="https://wails.io">
<a data-wml-openURL="https://wails.io">
<img src="/wails.png" class="logo" alt="Wails logo"/>
</a>
<a wml-openURL="https://solidjs.com">
<a data-wml-openURL="https://solidjs.com">
<img src="/solid.svg" class="logo solid" alt="Solid logo"/>
</a>
</div>

View file

@ -28,10 +28,10 @@ function App() {
return (
<div className="container">
<div>
<a wml-openURL="https://wails.io">
<a data-wml-openURL="https://wails.io">
<img src="/wails.png" className="logo" alt="Wails logo"/>
</a>
<a wml-openURL="https://solidjs.com">
<a data-wml-openURL="https://solidjs.com">
<img src="/solid.svg" className="logo solid" alt="Solid logo"/>
</a>
</div>

View file

@ -25,10 +25,10 @@
<div class="container">
<div>
<span wml-openURL="https://wails.io">
<span data-wml-openURL="https://wails.io">
<img src="/wails.png" class="logo" alt="Wails logo"/>
</span>
<span wml-openURL="https://svelte.dev">
<span data-wml-openURL="https://svelte.dev">
<img src="/svelte.svg" class="logo svelte" alt="Svelte logo"/>
</span>
</div>

View file

@ -25,10 +25,10 @@ Events.On('time', (timeValue) => {
<div class="container">
<div>
<span wml-openURL="https://wails.io">
<span data-wml-openURL="https://wails.io">
<img src="/wails.png" class="logo" alt="Wails logo"/>
</span>
<span wml-openURL="https://svelte.dev">
<span data-wml-openURL="https://svelte.dev">
<img src="/svelte.svg" class="logo svelte" alt="Svelte logo"/>
</span>
</div>

View file

@ -25,10 +25,10 @@ Events.On('time', (timeValue) => {
<div class="container">
<div>
<span wml-openURL="https://wails.io">
<span data-wml-openURL="https://wails.io">
<img src="/wails.png" class="logo" alt="Wails logo"/>
</span>
<span wml-openURL="https://svelte.dev">
<span data-wml-openURL="https://svelte.dev">
<img src="/svelte.svg" class="logo svelte" alt="Svelte logo"/>
</span>
</div>

View file

@ -25,10 +25,10 @@ Events.On('time', (timeValue) => {
<div class="container">
<div>
<span wml-openURL="https://wails.io">
<span data-wml-openURL="https://wails.io">
<img src="/wails.png" class="logo" alt="Wails logo"/>
</span>
<span wml-openURL="https://svelte.dev">
<span data-wml-openURL="https://svelte.dev">
<img src="/svelte.svg" class="logo svelte" alt="Svelte logo"/>
</span>
</div>

View file

@ -10,10 +10,10 @@
<body>
<div class="container">
<div>
<a wml-openURL="https://wails.io">
<a data-wml-openURL="https://wails.io">
<img src="/wails.png" class="logo" alt="Wails logo"/>
</a>
<a wml-openURL="https://www.typescriptlang.org/">
<a data-wml-openURL="https://www.typescriptlang.org/">
<img src="/typescript.svg" class="logo vanilla" alt="Typescript logo"/>
</a>
</div>

View file

@ -10,10 +10,10 @@
<body>
<div class="container">
<div>
<a wml-openURL="https://wails.io">
<a data-wml-openURL="https://wails.io">
<img src="/wails.png" class="logo" alt="Wails logo"/>
</a>
<a wml-openURL="https://developer.mozilla.org/en-US/docs/Web/JavaScript">
<a data-wml-openURL="https://developer.mozilla.org/en-US/docs/Web/JavaScript">
<img src="/javascript.svg" class="logo vanilla" alt="JavaScript logo"/>
</a>
</div>

View file

@ -5,10 +5,10 @@ import HelloWorld from './components/HelloWorld.vue'
<template>
<div class="container">
<div>
<a wml-openURL="https://wails.io">
<a data-wml-openURL="https://wails.io">
<img src="/wails.png" class="logo" alt="Wails logo"/>
</a>
<a wml-openURL="https://vuejs.org/">
<a data-wml-openURL="https://vuejs.org/">
<img src="/vue.svg" class="logo vue" alt="Vue logo"/>
</a>
</div>

View file

@ -5,10 +5,10 @@ import HelloWorld from './components/HelloWorld.vue'
<template>
<div class="container">
<div>
<a wml-openURL="https://wails.io">
<a data-wml-openURL="https://wails.io">
<img src="/wails.png" class="logo" alt="Wails logo"/>
</a>
<a wml-openURL="https://vuejs.org/">
<a data-wml-openURL="https://vuejs.org/">
<img src="/vue.svg" class="logo vue" alt="Vue logo"/>
</a>
</div>

File diff suppressed because one or more lines are too long

View file

@ -1197,7 +1197,6 @@ func (w *windowsWebviewWindow) WndProc(msg uint32, wparam, lparam uintptr) uintp
case w32.WM_SYSKEYUP:
w.parent.emit(events.Windows.WindowKeyUp)
case w32.WM_KEYDOWN:
globalApplication.info("w32.WM_KEYDOWN: %v", uint(wparam))
w.parent.emit(events.Windows.WindowKeyDown)
w.processKeyBinding(uint(wparam))
case w32.WM_KEYUP: