Icon and IconLink components (and potentially others) using hideMode: 'visibility' fail to reappear after being hidden.
Diagnosis:
The show() method in src/component/Base.mjs attempts to restore visibility by deleting the visibility property from the style object:
let style = me.style;
delete style.visibility;
me.style = style;
However, debug logs confirm that vdom.style retains {visibility: 'hidden'} even after me.style becomes {}. This suggests that vdom.style (or wrapperStyle) might be retaining the property, or the spread merge {...me.wrapperStyle, ...me.style} in updateStyle is not clearing it as expected.
Solution:
Override afterSetHidden in Icon.mjs and IconLink.mjs to explicitly set visibility: 'visible' (or null) instead of relying on property deletion. This forces a value change that propagates to the VDOM delta.
Long-term:
Investigate if Component.mjs show() needs a generic fix (e.g. setting null instead of delete).
IconandIconLinkcomponents (and potentially others) usinghideMode: 'visibility'fail to reappear after being hidden.Diagnosis:
The
show()method insrc/component/Base.mjsattempts to restore visibility by deleting thevisibilityproperty from the style object:However, debug logs confirm that
vdom.styleretains{visibility: 'hidden'}even afterme.stylebecomes{}. This suggests thatvdom.style(orwrapperStyle) might be retaining the property, or the spread merge{...me.wrapperStyle, ...me.style}inupdateStyleis not clearing it as expected.Solution:
Override
afterSetHiddeninIcon.mjsandIconLink.mjsto explicitly setvisibility: 'visible'(ornull) instead of relying on property deletion. This forces a value change that propagates to the VDOM delta.Long-term:
Investigate if
Component.mjsshow()needs a generic fix (e.g. settingnullinstead ofdelete).