@pageboard/html 0.14.7 → 0.14.9

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/elements/link.js CHANGED
@@ -21,13 +21,23 @@ exports.link = {
21
21
  type: ["link", "file", "archive"]
22
22
  }
23
23
  }
24
+ },
25
+ lang: {
26
+ title: 'Language',
27
+ type: 'string',
28
+ format: 'lang',
29
+ nullable: true,
30
+ $helper: {
31
+ name: 'datalist',
32
+ url: '/.api/languages'
33
+ }
24
34
  }
25
35
  },
26
36
  contents: "text*",
27
37
  inline: true,
28
38
  group: "inline",
29
39
  tag: 'a:not([block-type]),a[block-type="link"]',
30
- html: '<a href="[url]" class="[button|alt:ui button]"></a>',
40
+ html: '<a href="[url]" hreflang="[lang]" class="[button|alt:ui button]"></a>',
31
41
  stylesheets: [
32
42
  '../lib/components/button.css'
33
43
  ]
package/elements/menu.js CHANGED
@@ -98,6 +98,16 @@ exports.menu_item_link = {
98
98
  }
99
99
  }
100
100
  },
101
+ lang: {
102
+ title: 'Language',
103
+ type: 'string',
104
+ format: 'lang',
105
+ nullable: true,
106
+ $helper: {
107
+ name: 'datalist',
108
+ url: '/.api/languages'
109
+ }
110
+ },
101
111
  labeled: {
102
112
  title: 'Labeled',
103
113
  description: 'Vertical layout',
@@ -110,7 +120,7 @@ exports.menu_item_link = {
110
120
  marks: "nolink"
111
121
  },
112
122
  group: 'menu_item',
113
- html: '<a class="[labeled] item" href="[url]">Link</a>'
123
+ html: '<a class="[labeled] item" href="[url]" hreflang="[lang]">Link</a>'
114
124
  };
115
125
 
116
126
  exports.menu_item_block = { ...exports.menu_item_link,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pageboard/html",
3
- "version": "0.14.7",
3
+ "version": "0.14.9",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "repository": {
package/ui/loading.css CHANGED
@@ -1,4 +1,8 @@
1
- [data-src]::after {
1
+
2
+ .loading[data-src]::after,
3
+ .error[data-src]::after,
4
+ .waiting[data-src]::after,
5
+ .denied[data-src]::after {
2
6
  display:none;
3
7
  box-sizing: border-box;
4
8
  text-align:center;
package/ui/transition.js CHANGED
@@ -9,6 +9,9 @@ const loader = new class {
9
9
  ready(state) {
10
10
  this.update(state.stage);
11
11
  }
12
+ build(state) {
13
+ document.body.hidden = true;
14
+ }
12
15
  patch(state) {
13
16
  this.update(state);
14
17
  }
@@ -23,6 +26,14 @@ const loader = new class {
23
26
  update(state) {
24
27
  document.documentElement.dataset.stage = state.stage;
25
28
  }
29
+ setup(state) {
30
+ const tr = state.scope.transition;
31
+ state.finish(() => {
32
+ document.body.hidden = false;
33
+ if (tr?.ok) return tr.start();
34
+ });
35
+ tr?.end();
36
+ }
26
37
  };
27
38
  Page.connect(loader);
28
39
  loader.update(Page);
@@ -144,17 +155,3 @@ Page.constructor.prototype.mergeBody = function (body, corpse) {
144
155
  this.scope.transition = new Transition(this, body, corpse);
145
156
  }
146
157
  };
147
-
148
- Page.setup(state => {
149
- const tr = state.scope.transition;
150
- if (tr) {
151
- if (tr.ok) {
152
- state.finish(() => {
153
- return tr.start();
154
- });
155
- } else {
156
- tr.end();
157
- }
158
- }
159
- });
160
-