@pageboard/html 0.16.5 → 0.16.7

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.
@@ -9,6 +9,6 @@ exports.page.properties.beacons = {
9
9
  exports.page.fragments.push({
10
10
  path: 'head',
11
11
  position: 'beforeend',
12
- html: `<meta name="beacons" is="element-beacons" content="[beacons|as:query]">`
12
+ html: `<meta name="beacons" is="element-beacons" content="[beacons|fail:*|as:query]">`
13
13
  });
14
14
  exports.page.scripts.push("../ui/beacons.js");
package/elements/menu.js CHANGED
@@ -58,7 +58,7 @@ exports.menu_group = {
58
58
  nodes: "menu_item+"
59
59
  },
60
60
  html: `<element-menu class="[position] menu">
61
- <div block-content="items"></div>
61
+ <div class="items" block-content="items"></div>
62
62
  <div tabindex="0" class="ui fixed popup item [responsive|eq:popup|prune:*]">
63
63
  <div class="icon">≡</div>
64
64
  <div class="dropdown placer"><div class="menu"></div></div>
@@ -58,7 +58,7 @@ exports.breadcrumb = {
58
58
  <div class="divider"></div>
59
59
  <a href="[$links.up|nth:-1|at:a::1|repeat:link|.url]" class="section">[link.title]</a>
60
60
  <div class="divider"></div>
61
- <div class="active section">[$page.content.title|fail:div::1]</div>
61
+ <div class="active section">[$title|fail:div::1]</div>
62
62
  </nav>`,
63
63
  stylesheets: [
64
64
  '../ui/components/breadcrumb.css'
@@ -17,7 +17,7 @@ exports.query_tags = {
17
17
  nodes: 'inline*'
18
18
  },
19
19
  html: `<element-query-tags for="[form]">
20
- <div block-content="title">Filters:</div>
20
+ <div class="title" block-content="title">Filters:</div>
21
21
  <div class="ui labels"></div>
22
22
  </element-query-tags>`,
23
23
  stylesheets: [
package/elements/tab.js CHANGED
@@ -22,7 +22,7 @@ exports.tabs = {
22
22
  }],
23
23
  html: `<element-tabs id="[name|as:xid]">
24
24
  <div class="ui top attached tabular menu" block-content="items"></div>
25
- <div block-content="tabs"></div>
25
+ <div class="tabs" block-content="tabs"></div>
26
26
  </element-tabs>`,
27
27
  stylesheets: [
28
28
  '../ui/components/tab.css',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pageboard/html",
3
- "version": "0.16.5",
3
+ "version": "0.16.7",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "repository": {
package/ui/beacons.js CHANGED
@@ -1,6 +1,20 @@
1
1
  class HTMLElementBeacons extends Page.create(HTMLMetaElement) {
2
+ patch(state) {
3
+ if (!this.content) return;
4
+ const scope = state.scope.copy();
5
+ const collector = state.collector();
6
+ scope.$hooks = {
7
+ ...scope.$hooks,
8
+ afterAll(ctx, v) {
9
+ collector.filter(ctx, v);
10
+ }
11
+ };
12
+ for (const expr of Object.values(state.parse(this.content).query)) {
13
+ `[${expr}]`.fuse({}, state.scope);
14
+ }
15
+ }
2
16
  paint(state) {
3
- if (state.scope.$write || state.scope.$read) return;
17
+ if (state.scope.$write || state.scope.$read || !this.content) return;
4
18
  const payload = new URLSearchParams();
5
19
  let i = 0;
6
20
  for (const [key, expr] of Object.entries(state.parse(this.content).query)) {
package/ui/consent.css CHANGED
@@ -14,16 +14,9 @@ footer [block-type="consent_form"][data-transient="true"] {
14
14
  display:none;
15
15
  }
16
16
 
17
- [block-type="consent_form"] > [block-content="content"] {
18
- display:none;
19
- }
20
17
  [block-type="consent_form"] > .view {
21
18
  position:relative;
22
19
  }
23
- [contenteditable] [block-type="consent_form"] > [block-content="content"] {
24
- display:block;
25
- min-height:1em;
26
- }
27
20
 
28
21
  [contenteditable] [block-focused="last"] > .form[block-type="consent_form"][data-transient="true"],
29
22
  .form[block-type="consent_form"][data-transient="true"][block-focused] {
@@ -2,16 +2,3 @@ element-fieldset-list {
2
2
  display: block;
3
3
  position: relative;
4
4
  }
5
-
6
- element-fieldset-list > [block-content="template"] {
7
- display: none;
8
- }
9
-
10
- [contenteditable] element-fieldset-list > [block-content="template"] {
11
- display: block;
12
- min-height: 1em;
13
- }
14
-
15
- [contenteditable] element-fieldset-list > .view {
16
- display: none;
17
- }
package/ui/form.js CHANGED
@@ -340,15 +340,15 @@ class HTMLElementForm extends Page.create(HTMLFormElement) {
340
340
  form.classList.remove('loading');
341
341
 
342
342
  // messages shown inside form, no navigation
343
- const msg = form.toggleMessages(res.status);
344
- if (msg) msg.fuse({}, scope);
343
+ const msgs = form.toggleMessages(res.status);
344
+ for (const node of msgs) node.fuse({}, scope);
345
345
  const ok = res.status >= 200 && res.status < 300;
346
346
  let redirect = form.getRedirect(res.status);
347
347
 
348
348
  if (ok) {
349
349
  form.forget();
350
350
  form.save();
351
- if (!redirect && form.closest('element-template') && !msg) {
351
+ if (!redirect && form.closest('element-template') && !msgs.length) {
352
352
  redirect = state.toString();
353
353
  }
354
354
  }
@@ -371,10 +371,10 @@ class HTMLElementForm extends Page.create(HTMLFormElement) {
371
371
  }
372
372
  state.debounce(
373
373
  () => {
374
- msg?.classList.remove('visible');
374
+ for (const node of msgs) node.classList.remove('visible');
375
375
  return state.push(loc, { vary });
376
376
  },
377
- msg?.dataset.fading ? 1000 : 100
377
+ msgs.some(node => node.dataset.fading) ? 1000 : 100
378
378
  )();
379
379
  }
380
380
  }
package/ui/image.css CHANGED
@@ -12,7 +12,7 @@ element-image.no-size::after {
12
12
  content: "⤡" !important;
13
13
  }
14
14
 
15
- element-image > [block-content="legend"] {
15
+ element-image > div {
16
16
  position:absolute;
17
17
  font-size:0.8rem;
18
18
  line-height:1rem;
@@ -144,6 +144,6 @@ img[is="element-img"] {
144
144
  height:auto;
145
145
  }
146
146
 
147
- element-image[block-focused="last"] > [block-content="legend"] {
147
+ element-image[block-focused="last"] > div {
148
148
  background-color: rgb(255 255 255 / 50%);
149
149
  }
package/ui/menu.css CHANGED
@@ -97,10 +97,10 @@ element-menu {
97
97
  element-menu > .menu {
98
98
  position: relative;
99
99
  }
100
- element-menu > [block-content="items"] {
100
+ element-menu > .items {
101
101
  display:flex;
102
102
  }
103
- element-menu.burger > [block-content="items"] {
103
+ element-menu.burger > .items {
104
104
  left:0;
105
105
  position: absolute;
106
106
  pointer-events: none;
@@ -122,7 +122,7 @@ element-menu.burger > .item .popup.item {
122
122
  element-menu.burger .placer .popup.active .title {
123
123
  margin-bottom:0.5em;
124
124
  }
125
- element-menu.burger > [block-content="items"] > * {
125
+ element-menu.burger > .items > * {
126
126
  visibility:hidden;
127
127
  }
128
128
  element-menu.burger .popup.item.active > .placer > div {
package/ui/query-tags.css CHANGED
@@ -5,7 +5,7 @@ element-query-tags > div {
5
5
  display:inline-block;
6
6
  line-height: 100%;
7
7
  }
8
- element-query-tags > div[block-content="title"] {
8
+ element-query-tags > .title {
9
9
  white-space:nowrap;
10
10
  padding-right: 0.5em;
11
11
  }
package/ui/tab.css CHANGED
@@ -14,7 +14,7 @@ element-tabs > .ui.tabular.menu {
14
14
  element-tabs > .ui.tabular.menu::after {
15
15
  content:none;
16
16
  }
17
- element-tabs > .ui.tabular.menu + div[block-content="tabs"] > .segment {
17
+ element-tabs > .ui.tabular.menu + div.tabs > .segment {
18
18
  border-top: none;
19
19
  margin:0 0 1rem;
20
20
  width: 100%;