@trebired/frontend 13.2.3 → 13.2.4

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/CHANGELOG.md CHANGED
@@ -4,6 +4,10 @@ All notable changes to `@trebired/frontend` will be documented here.
4
4
 
5
5
  This project follows semantic versioning once published.
6
6
 
7
+ ## 13.2.4
8
+
9
+ - `Icon` no longer uses hooks, so calling it as a plain function (`icon({ spec })`, the call style this component API invites) is safe. Its `useRef`/`useEffect` pair became a ref callback — `renderIconElement` already returns early when the same spec is rendered — and a `useMemo` whose dependencies included objects rebuilt on every render was dropped. Rendered as a function, those hooks counted as the *calling* component's, so a component whose icon count changed between renders crashed React with "Rendered more hooks than during the previous render" / "Expected static flag was missing", and any state or effect in that component was misattributed. Rendering `<Icon />` as an element behaved correctly before and is unchanged.
10
+
7
11
  ## 13.2.3
8
12
 
9
13
  - Fixed modals appearing without their fade-in, which once it started happened to every modal on the page. Closed modals carry `visibility 0s linear <duration>` so a closing modal stays visible while it fades out. `openModal` sets `data-opening` and then `data-open` a frame later, and the opening state only changed `visibility`, so it kept that delayed transition. When the browser recalculated styles between the two steps, the switch to visible waited the full duration: the fade played while the modal was still hidden, and the modal then appeared at once. Whether that recalculation happened was incidental. `promoteZIndex` reads the computed z-index of every layer it has promoted, so on a fresh page (nothing promoted yet) modals animated, and after the first popover or modal had been promoted every later open recalculated and lost its animation.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/icons/react/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,OAAO,CAAC;AAY3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,KAAK,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,GAAG;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,GAAG,KAAK,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAiCF,iBAAS,IAAI,CAAC,KAAK,EAAE,SAAS,kFAkD7B;AAED,OAAO,EAAE,IAAI,EAAE,CAAC;AAChB,YAAY,EAAE,SAAS,EAAE,CAAC;AAC1B,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/icons/react/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,OAAO,CAAC;AAY3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,KAAK,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,GAAG;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,GAAG,KAAK,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAiCF,iBAAS,IAAI,CAAC,KAAK,EAAE,SAAS,kFA0C7B;AAED,OAAO,EAAE,IAAI,EAAE,CAAC;AAChB,YAAY,EAAE,SAAS,EAAE,CAAC;AAC1B,eAAe,IAAI,CAAC"}
@@ -1,4 +1,4 @@
1
- import { createElement, useEffect, useMemo, useRef } from "react";
1
+ import { createElement } from "react";
2
2
  import { classNames, normalizeSpace, parseIconSpec, text, } from "../shared.js";
3
3
  import { readIconCacheEntry, renderIconElement } from "../index.js";
4
4
  import { applySvgColor } from "../shared.js";
@@ -34,7 +34,6 @@ function resolveIconCache(normalizedSpec) {
34
34
  }
35
35
  function Icon(props) {
36
36
  const { className, color, endpoint, label, mode, name: _name, pack: _pack, spec: _spec, tag = "i", title, ...rest } = props;
37
- const ref = useRef(null);
38
37
  const resolvedSpec = resolveSpec(props);
39
38
  const parsed = parseIconSpec(resolvedSpec);
40
39
  const normalizedSpec = parsed ? parsed.spec : normalizeSpace(resolvedSpec);
@@ -42,31 +41,26 @@ function Icon(props) {
42
41
  const svgMarkup = text(cacheEntry?.svg);
43
42
  const colorMode = text(cacheEntry?.colorMode);
44
43
  const colorValue = text(cacheEntry?.colorValue);
45
- useEffect(() => {
46
- if (!ref.current || !normalizedSpec)
47
- return undefined;
48
- void renderIconElement(ref.current, normalizedSpec, { color, endpoint, mode });
49
- return undefined;
50
- }, [color, endpoint, mode, normalizedSpec]);
51
- const elementProps = useMemo(() => {
52
- const hidden = label || rest["aria-label"] ? undefined : "true";
53
- const out = {
54
- ...rest,
55
- "aria-hidden": rest["aria-hidden"] ?? hidden,
56
- "aria-label": rest["aria-label"] || label || undefined,
57
- className: classNames(frontendClassName("icon"), "icon-glyph", className),
58
- [frontendDataAttr("icon")]: normalizedSpec || undefined,
59
- ref,
60
- style: resolveStyle({ ...props, color }, colorMode, colorValue),
61
- title,
44
+ const hidden = label || rest["aria-label"] ? undefined : "true";
45
+ const elementProps = {
46
+ ...rest,
47
+ "aria-hidden": rest["aria-hidden"] ?? hidden,
48
+ "aria-label": rest["aria-label"] || label || undefined,
49
+ className: classNames(frontendClassName("icon"), "icon-glyph", className),
50
+ [frontendDataAttr("icon")]: normalizedSpec || undefined,
51
+ ref: (element) => {
52
+ if (!element || !normalizedSpec)
53
+ return;
54
+ void renderIconElement(element, normalizedSpec, { color, endpoint, mode });
55
+ },
56
+ style: resolveStyle({ ...props, color }, colorMode, colorValue),
57
+ title,
58
+ };
59
+ if (svgMarkup) {
60
+ elementProps.dangerouslySetInnerHTML = {
61
+ __html: color ? applySvgColor(svgMarkup, color) : svgMarkup,
62
62
  };
63
- if (svgMarkup) {
64
- out.dangerouslySetInnerHTML = {
65
- __html: color ? applySvgColor(svgMarkup, color) : svgMarkup,
66
- };
67
- }
68
- return out;
69
- }, [className, color, colorMode, colorValue, label, normalizedSpec, props, rest, svgMarkup, title]);
63
+ }
70
64
  return createElement(tag, elementProps);
71
65
  }
72
66
  export { Icon };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/icons/react/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/icons/react/index.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/icons/react/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,OAAO,CAAC;AAY3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,KAAK,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,GAAG;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,GAAG,KAAK,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAiCF,iBAAS,IAAI,CAAC,KAAK,EAAE,SAAS,kFAkD7B;AAED,OAAO,EAAE,IAAI,EAAE,CAAC;AAChB,YAAY,EAAE,SAAS,EAAE,CAAC;AAC1B,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/icons/react/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,OAAO,CAAC;AAY3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,KAAK,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,GAAG;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,GAAG,KAAK,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAiCF,iBAAS,IAAI,CAAC,KAAK,EAAE,SAAS,kFA0C7B;AAED,OAAO,EAAE,IAAI,EAAE,CAAC;AAChB,YAAY,EAAE,SAAS,EAAE,CAAC;AAC1B,eAAe,IAAI,CAAC"}
@@ -1,4 +1,4 @@
1
- import { createElement, useEffect, useMemo, useRef } from "react";
1
+ import { createElement } from "react";
2
2
  import { classNames, normalizeSpace, parseIconSpec, text, } from "../../../icons/shared.js";
3
3
  import { readIconCacheEntry, renderIconElement } from "../../../icons/index.js";
4
4
  import { applySvgColor } from "../../../icons/shared.js";
@@ -34,7 +34,6 @@ function resolveIconCache(normalizedSpec) {
34
34
  }
35
35
  function Icon(props) {
36
36
  const { className, color, endpoint, label, mode, name: _name, pack: _pack, spec: _spec, tag = "i", title, ...rest } = props;
37
- const ref = useRef(null);
38
37
  const resolvedSpec = resolveSpec(props);
39
38
  const parsed = parseIconSpec(resolvedSpec);
40
39
  const normalizedSpec = parsed ? parsed.spec : normalizeSpace(resolvedSpec);
@@ -42,31 +41,26 @@ function Icon(props) {
42
41
  const svgMarkup = text(cacheEntry?.svg);
43
42
  const colorMode = text(cacheEntry?.colorMode);
44
43
  const colorValue = text(cacheEntry?.colorValue);
45
- useEffect(() => {
46
- if (!ref.current || !normalizedSpec)
47
- return undefined;
48
- void renderIconElement(ref.current, normalizedSpec, { color, endpoint, mode });
49
- return undefined;
50
- }, [color, endpoint, mode, normalizedSpec]);
51
- const elementProps = useMemo(() => {
52
- const hidden = label || rest["aria-label"] ? undefined : "true";
53
- const out = {
54
- ...rest,
55
- "aria-hidden": rest["aria-hidden"] ?? hidden,
56
- "aria-label": rest["aria-label"] || label || undefined,
57
- className: classNames(frontendClassName("icon"), "icon-glyph", className),
58
- [frontendDataAttr("icon")]: normalizedSpec || undefined,
59
- ref,
60
- style: resolveStyle({ ...props, color }, colorMode, colorValue),
61
- title,
44
+ const hidden = label || rest["aria-label"] ? undefined : "true";
45
+ const elementProps = {
46
+ ...rest,
47
+ "aria-hidden": rest["aria-hidden"] ?? hidden,
48
+ "aria-label": rest["aria-label"] || label || undefined,
49
+ className: classNames(frontendClassName("icon"), "icon-glyph", className),
50
+ [frontendDataAttr("icon")]: normalizedSpec || undefined,
51
+ ref: (element) => {
52
+ if (!element || !normalizedSpec)
53
+ return;
54
+ void renderIconElement(element, normalizedSpec, { color, endpoint, mode });
55
+ },
56
+ style: resolveStyle({ ...props, color }, colorMode, colorValue),
57
+ title,
58
+ };
59
+ if (svgMarkup) {
60
+ elementProps.dangerouslySetInnerHTML = {
61
+ __html: color ? applySvgColor(svgMarkup, color) : svgMarkup,
62
62
  };
63
- if (svgMarkup) {
64
- out.dangerouslySetInnerHTML = {
65
- __html: color ? applySvgColor(svgMarkup, color) : svgMarkup,
66
- };
67
- }
68
- return out;
69
- }, [className, color, colorMode, colorValue, label, normalizedSpec, props, rest, svgMarkup, title]);
63
+ }
70
64
  return createElement(tag, elementProps);
71
65
  }
72
66
  export { Icon };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/icons/react/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/icons/react/index.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  }
9
9
  },
10
10
  "name": "@trebired/frontend",
11
- "version": "13.2.3",
11
+ "version": "13.2.4",
12
12
  "description": "Generic browser runtime systems for Trebired frontend packages and applications.",
13
13
  "type": "module",
14
14
  "private": false,