Repository navigation
Releases: hyphatech/solidtype
Releases · hyphatech/solidtype
Release list
0.3.0
HeroUI's overlays and lists arrive on Kobalte: Select, ComboBox and Autocomplete, with the ListBox, Dropdown, Modal, AlertDialog, Drawer, Popover and Tooltip they build on, and navigation and disclosure whole. Which are ported.
Upgrading
Button.triggertakesdescribed_by, the trigger'saria-describedby, andelement, given the button's element as it is made.Number_fieldkeeps a value on its step's grid only while it is given astep, else within its range alone, as React Aria does.Time_field'svalueis aTime.t Js.Nullable.t, null to control it empty, andon_changeis told aTime.t option.
New
Autocomplete,Combo_boxandSelect, their lists aList_box, andList_box,Dropdown,Header,Modal,Alert_dialog,Drawer,PopoverandTooltip.Tabs,Accordion,Disclosure,Disclosure_group,BreadcrumbsandPagination.List_box.render_empty_state; anInputinside aCombo_boxis its input, and aSearch_fieldinside anAutocomplete.Filterits search.Buttontakesslot=`triggerandslot=`close, as HeroUI's examples give a button to a part.- A component takes an attribute's namespace,
Jsx.attr,Jsx.boolandJsx.named, and passes it on to its element. - The Form page shows a codec's problems on a form's fields.
Fixed
Formshows a server's error that comes after its field was changed and left.Separatorhas itsdata-slot, and is a<div>where React Aria's is.Toastis as tall as its content, andAccordion's andDisclosure's content no longer jumps as it first opens.Badge,Checkbox,Chip,Disclosure_group,Link,RadioandSwitchkeep theclass_they are given.Checkboxshows aField_errorinside it while it is invalid, where it raised.
0.2.0
HeroUI's components arrive on Kobalte in a package of their own, and the documentation is online at hyphatech.github.io/solidtype.
Upgrading
- A spread is
props=p, where it wasspread=p; on a component it is a rest of its own props,Props.omitorProps.others. - A changing value given to a prop is its thunk,
count=(fun () -> count ()); a bare name is passed as it is. - A
data-attribute takes aJsx.data:Jsx.data s, orJsx.flag bfor a flag. Server.pipe_to_node_writable→Server.writable ~write ~close ()withServer.pipe_to, andServer.render_to_string_asyncanswers aresult.- Kobalte's optional parameters are optional arguments,
I18n.create_filter (), and a Kobalte function that throws raisesInvalid_argument.
New
solidtype-heroui: HeroUI's components on Kobalte's, with HeroUI's own classes, each tested beside the same component in React. Which are ported.- The documentation: getting started, how the pieces work, the Solid and Kobalte bindings, and each HeroUI component beside React.
Jsx.fragment, and an optional prop passed as it is,?title=(fun () -> o).- A component passes the
data-attributes it is given on to its element.
Fixed
Store.tracksubscribes to the whole store, where it did nothing.- A string in JSX reaches the page as it reads in OCaml, backslashes, entities and spaces included.
catch_errorandrun_with_ownertell a function that returnedNonefrom one that raised.
0.1.0
The first release: SolidJS components written in OCaml, compiled by Melange, reaching the browser as the code Solid's own compiler emits.
New
ppx_solidtypeandvite-plugin-solidtype: OCaml's JSX in.mlxfiles, handed to Solid's compiler, so a component compiles as its TSX twin does.- Types where TSX has none: a reactive read outside a thunk, a prop left out or an attribute an element does not take does not compile.
solidtype: Solid 1.9 bound whole, from signals to server rendering, its components included.solidtype-kobalte: Kobalte 0.13 bound whole, generated from its own declarations.- An island mounts in an Astro page as any Solid island does, prerendered and hydrated.
- An example on the whole stack: a Spindle server and the island it serves, typed from its routes.