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
3 changes: 3 additions & 0 deletions .changeset/pre.json
Original file line number Diff line number Diff line change
Expand Up @@ -137,12 +137,14 @@
"graphql-solid2-migration",
"history-solid2-migration",
"i18n-missing-key-handler",
"i18n-rich-text",
"i18n-solid2-migration",
"idle-solid2-migration",
"immutable-solid2-migration",
"input-mask-solid2-migration",
"interaction-solid2-migration",
"jsx-tokenizer-solid2-migration",
"keyboard-any-order-shortcut",
"keyboard-ignore-within-inputs",
"keyboard-meta-shortcut-repeat",
"keyboard-solid2-migration",
Expand Down Expand Up @@ -200,6 +202,7 @@
"vibrate-initial",
"video-frame-callback",
"video-initial",
"virtual-list-class-prop",
"virtual-solid2-migration",
"websocket-solid-2-async"
]
Expand Down
13 changes: 13 additions & 0 deletions packages/i18n/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
# @solid-primitives/i18n

## 3.0.0-next.2

### Minor Changes

- c29c40c: Add rich text support for translations that need to embed JSX (links, formatted text, etc.), resolving #715.

- `resolveRichTemplate` — a `resolveTemplate` variant that accepts JSX values (not just strings) in `{{ placeholder }}` substitutions, returning a plain string when every value is a string, or JSX otherwise.
- `richText(string, tags)` — resolves `<tag>content</tag>` markup in an already-resolved string into JSX, by calling the matching renderer in `tags` with the tag's inner content. Meant to be composed with `resolveTemplate`/`resolveRichTemplate` for `{{ }}` variables. Tag names aren't type-checked against `tags`; an unmapped tag logs a dev-only warning and renders its contents as plain text (stripped from production builds).
- `BaseTemplateArgs` is widened from `Record<string, string | number | boolean>` to `Record<string, unknown>` to allow JSX (or any other value) as a template argument. This is additive and doesn't change any existing behavior — the built-in `resolveTemplate` still stringifies its arguments the same way it always has.
- New peer dependency: `@solidjs/web@^2.0.0-beta.15` (previously only `solid-js` was required), needed for the `JSX.Element` type and the dev-only warning.

The existing pattern of dictionary entries as plain functions returning JSX (e.g. `hello: (name) => <>Hi {name}</>`) already worked before this change and remains the recommended approach for dictionaries fully owned in TS/TSX — the additions here are for dictionaries loaded as translated strings (e.g. from JSON).

## 3.0.0-next.1

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/i18n/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@solid-primitives/i18n",
"version": "3.0.0-next.1",
"version": "3.0.0-next.2",
"description": "Library of primitives for providing internationalization support.",
"author": "Alexandre Mouton-Brady <amoutonbrady@gmail.com>",
"contributors": [
Expand Down
6 changes: 6 additions & 0 deletions packages/keyboard/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# @solid-primitives/keyboard

## 2.0.0-next.3

### Minor Changes

- 393a6a6: Add an `anyOrder` option to `createShortcut` (resolves #663). When `true`, the keys can be pressed in any order — e.g. `Shift+Control+M` as well as `Control+Shift+M` — as long as they all end up held down together, matching how most editors (like VS Code) handle shortcuts. Disabled by default, so this is non-breaking; `keys` still has to be pressed in the given order unless the option is set.

## 2.0.0-next.2

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/keyboard/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@solid-primitives/keyboard",
"version": "2.0.0-next.2",
"version": "2.0.0-next.3",
"description": "A library of reactive promitives helping handling user's keyboard input.",
"author": "Damian Tarnwski <gthetarnav@gmail.com>",
"contributors": [],
Expand Down
7 changes: 6 additions & 1 deletion packages/virtual/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# @solid-primitives/virtual

## 1.0.0-next.1

### Minor Changes

- e45ba5a: Added `class` prop to `<VirtualList>` for styling the element that wraps the rendered rows (e.g. `display: flex; flex-flow: column; width: 100%;`). Resolves #698.

## 1.0.0-next.0

### Major Changes
Expand All @@ -11,7 +17,6 @@
**Peer dependency**: `solid-js@^2.0.0-beta.14` and `@solidjs/web@^2.0.0-beta.14` are now required.

### `@solid-primitives/virtual`

- **`createVirtualList`**: returns `[Accessor<VirtualState>, onScroll]` — the first element is now an Accessor that must be called to read `containerHeight`, `viewerTop`, and `visibleItems`.
- **`VirtualList` children**: the child render function now receives `(item: Accessor<T>, index: Accessor<number>)` — `item` is an Accessor and must be called as `item()` to get the value. This matches Solid 2.0's `<For>` component behavior.
- **`{ ownedWrite: true }`**: the internal scroll offset signal uses `ownedWrite` to allow writes from the `onScroll` event handler outside the owning reactive scope.
Expand Down
2 changes: 1 addition & 1 deletion packages/virtual/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@solid-primitives/virtual",
"version": "1.0.0-next.0",
"version": "1.0.0-next.1",
"description": "A virtualized list component for performantly rendering lists with many elements",
"author": "Spencer Whitehead <spencerwhitehead7@gmail.com>",
"contributors": [],
Expand Down