@threadlabs/looma 0.30.0 → 0.30.2

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.
@@ -32,6 +32,11 @@ See the [proposal and syntax](https://nextwebwg.org/expressive-markdown/) and
32
32
 
33
33
  ## Conversion behavior
34
34
 
35
+ Ordinary punctuation stays readable: ranges such as `[-1, 1]`, `array[index]`,
36
+ `user_id` and `a@word` do not need backslashes. The shared writer escapes text
37
+ only when its context would interpret it as syntax. Mentions start at the
38
+ beginning of a line or after whitespace; embedded at signs remain literal.
39
+
35
40
  Headings, text formatting, links, images, lists, tasks, quotes, code, callouts,
36
41
  disclosures, figures, tabs, chips, mentions and tables map to their semantic AST
37
42
  nodes. Mention targets become `ref`; chips keep their `tone`; merged table cells
@@ -43,9 +43,10 @@ function connect(host) {
43
43
  const releaseAnchor = () => {
44
44
  if (!anchor) return;
45
45
  anchor.removeEventListener("click", onAnchorClick);
46
+ // Restore metadata without restoring a consumer's stale open state.
46
47
  for (const [name, value] of Object.entries(anchorAria ?? {})) {
47
48
  if (value === null) anchor.removeAttribute(name);
48
- else anchor.setAttribute(name, value);
49
+ else anchor.setAttribute(name, name === "aria-expanded" ? "false" : value);
49
50
  }
50
51
  anchor = null;
51
52
  anchorAria = null;
@@ -42,7 +42,8 @@ function connect(host) {
42
42
  if (!anchor) return;
43
43
  anchor.removeEventListener("click", onAnchorClick);
44
44
  if (anchorExpanded === null) anchor.removeAttribute("aria-expanded");
45
- else anchor.setAttribute("aria-expanded", anchorExpanded);
45
+ // A consumer may have mounted us after setting true; released anchors are collapsed.
46
+ else anchor.setAttribute("aria-expanded", "false");
46
47
  anchor = null;
47
48
  anchorExpanded = null;
48
49
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@threadlabs/looma",
3
- "version": "0.30.0",
3
+ "version": "0.30.2",
4
4
  "type": "module",
5
5
  "description": "Looma components as HTML, Vue, and plain DOM, with design tokens.",
6
6
  "license": "MIT",
@@ -109,7 +109,7 @@
109
109
  "lowlight": "^3.3.0",
110
110
  "markdown-it": "14.3.1",
111
111
  "lucide": "~0.554.0",
112
- "expressmark": "0.1.1"
112
+ "expressmark": "0.1.6"
113
113
  },
114
114
  "peerDependencies": {
115
115
  "@nextwebwg/html-next": "1.0.0-alpha.58",
@@ -7328,7 +7328,7 @@ function connect$7(host) {
7328
7328
  if (!anchor) return;
7329
7329
  anchor.removeEventListener("click", onAnchorClick);
7330
7330
  for (const [name, value] of Object.entries(anchorAria ?? {})) if (value === null) anchor.removeAttribute(name);
7331
- else anchor.setAttribute(name, value);
7331
+ else anchor.setAttribute(name, name === "aria-expanded" ? "false" : value);
7332
7332
  anchor = null;
7333
7333
  anchorAria = null;
7334
7334
  };
@@ -8367,7 +8367,7 @@ function connect$5(host) {
8367
8367
  if (!anchor) return;
8368
8368
  anchor.removeEventListener("click", onAnchorClick);
8369
8369
  if (anchorExpanded === null) anchor.removeAttribute("aria-expanded");
8370
- else anchor.setAttribute("aria-expanded", anchorExpanded);
8370
+ else anchor.setAttribute("aria-expanded", "false");
8371
8371
  anchor = null;
8372
8372
  anchorExpanded = null;
8373
8373
  };