JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://cdn.jsdelivr.net/gh/vanjs-org/van/public/van-1.1.0.nomodule.min.js"></script>

CSS

input {
  display: block;
}

TypeScript

const VanTodoList = () => {
  const items = van.state<Record<number, State<string>>>({});
  let count = 0;

  return van.tags.div(
    van.tags.button(
      {
        onclick: () => {
          items.val = { ...items.oldVal, [count++]: van.state("") };
        },
      },
      "add item"
    ),
    () => {
      return van.tags.div(
        Object.entries(items.val).flatMap(([key, value]) => {
          return van.tags.input({
            defaultValue: value,
            oninput: (e) => value.val = e.target.value,
          });
        })
      );
    }
  );
};

van.add(document.body, VanTodoList())