1.1.0
- Add
polygon
tag.
- Allow specifying block height in the
src
string of Widget
to lock a child component to a specific version i.e. src="<path>@<block height>"
- Support custom React tags. Here is an example of how to use it:
const BgDiv = ({ children, color }) => (
<div style={{ background: color }}>{children}</div>
);
return <BgDiv color="red">Hello World</BgDiv>;
- Add nanoid support (available methods:
nanoid.nanoid()
and nanoid.customAlphabet()
)
- Add support for all Radix primitives (except for
Form
). Here is an example:
const Wrapper = styled.div`
.SwitchRoot {
...
}
.SwitchThumb {
...
}
`;
return (
<Wrapper>
<Switch.Root className="SwitchRoot">
<Switch.Thumb className="SwitchThumb" />
</Switch.Root>
</Wrapper>
);
- Use
styled-components
in combination with Radix primitives:
const SwitchRoot = styled("Switch.Root")`
all: unset;
display: block;
width: 42px;
height: 25px;
background-color: var(--blackA9);
border-radius: 9999px;
position: relative;
box-shadow: 0 2px 10px var(--blackA7);
&[data-state="checked"] {
background-color: black;
}
`;
const SwitchThumb = styled("Switch.Thumb")`
all: unset;
display: block;
width: 21px;
height: 21px;
background-color: white;
border-radius: 9999px;
box-shadow: 0 2px 2px var(--blackA7);
transition: transform 100ms;
transform: translateX(2px);
will-change: transform;
&[data-state="checked"] {
transform: translateX(19px);
}
`;
return (
<SwitchRoot>
<SwitchThumb />
</SwitchRoot>
);
- Use
ref="forwardedRef"
to forward refs through <Widget />
to support Radix's asChild
prop:
// Dialog.jsx
<AlertDialog.Trigger asChild>
<Widget
src="calebjacob.near/widget/TestButton"
props={{ label: "Click Me" }}
/>
</AlertDialog.Trigger>
// TestButton.jsx
const Button = styled.button`
background: #f00;
`;
return (
<Button type="button" ref="forwardedRef">
{props.label}: Forwarded
</Button>
);
- Access to
context.networkId
("mainnet" or "testnet")
const childSrc =
context.networkId === "mainnet"
? "calebjacob.near/src/Foobar"
: "preview.testnet/src/Foobar";
return (
<div>
<p>A child dependency:</p>
<Widget src={childSrc} />
</div>
);