Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 0 additions & 18 deletions .changeset/modern-icon-library.md

This file was deleted.

20 changes: 0 additions & 20 deletions .changeset/reativa-components-package.md

This file was deleted.

22 changes: 22 additions & 0 deletions packages/reativa/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# @prescriptive/reativa

## 0.2.0

### Minor Changes

- e34848c: Add `@prescriptive/reativa` — the ReasonML/OCaml (reativa + Melange) sibling of
`@prescriptive/xote`, as its own package.

- Implements the same set `@prescriptive/xote` covers — 22 elements, 8 components, and
7 blocks — in `.mlx` (JSX-for-OCaml) over `Reativa.View`, styled against
`@prescriptive/tokens`, with the same behaviour and accessibility semantics as the
Xote components.
- Enum prop types (`variant`, `size`, …) are generated from the specs' `## API`
contracts into `src/Contracts.ml` by `npm run contracts`, so the OCaml
compiler enforces that the implementation can't drift from the spec — the same
guarantee `@prescriptive/xote` has.
- `src/Registry.mlx` renders one live example per spec and exports the JS surface
the website's **Reativa** preview consumes (`mount_example`, `example_ids`,
`built`). The website's example block now has two tab strips: one picks the
view (Preview / Playground / Code) and one picks the implementation rendered in
the preview (**Xote** or **Reativa**).
2 changes: 1 addition & 1 deletion packages/reativa/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@prescriptive/reativa",
"version": "0.1.0",
"version": "0.2.0",
"description": "Accessible UI components for Reativa (OCaml + Melange) that implement the Prescriptive contracts — the ReasonML/OCaml sibling of @prescriptive/xote. Styled against @prescriptive/tokens; prop types are generated from the spec API contracts, so the implementation can't drift from the spec.",
"license": "MIT",
"author": "brnrdog",
Expand Down
20 changes: 20 additions & 0 deletions packages/xote/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# @prescriptive/xote

## 0.2.0

### Minor Changes

- f327773: Add a modern SVG icon library with an `Icon` component.

- **`@prescriptive/xote`**: new `Icons` module — a curated outline icon set (50 glyphs)
in the Feather / Lucide visual language (24×24 grid, no fill, 2px round
strokes) — and an `Icon` element that renders a named glyph as an inline SVG.
Icons inherit the surrounding text color and optical size; pass `label` for a
meaningful icon (role=img + accessible name) or omit it to mark it decorative.
Sizes: `xs`, `sm`, `md`, `lg`, `xl`.
- **`@prescriptive/xote`**: `Alert` now renders its `icon` as a glyph from the icon set
(the prop takes an icon name) and shows a sensible per-variant default when none
is given.
- **`prescriptive`**: the `icon` element spec now types `size` as an enum and maps its
implementation to `Icon.res`, so the component is compiler-checked against the
contract.
2 changes: 1 addition & 1 deletion packages/xote/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@prescriptive/xote",
"version": "0.1.0",
"version": "0.2.0",
"description": "Accessible UI components for Xote/ReScript that implement the Prescriptive contracts. Styled against @prescriptive/tokens; prop types are generated from the spec API contracts, so the implementation can't drift from the spec.",
"license": "MIT",
"author": "brnrdog",
Expand Down
Loading