runeforge 0.0.63 → 0.0.64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -163,7 +163,7 @@ Responsive overrides work too:
163
163
  | `--runeforge-crud-title-size` | `1.875rem` | `<h1>` inside the `Header` component |
164
164
  | `--runeforge-breadcrumb-font-size` | `0.875rem` | Breadcrumb label text size |
165
165
  | `--runeforge-breadcrumb-icon-size` | `1rem` | Breadcrumb icon width and height |
166
- | `--runeforge-tree-max-height` | `24rem` | Max height of a `tree` field before it scrolls internally |
166
+ | `--runeforge-tree-max-height` | `24rem` | Fixed height of a `tree` field — it doesn't shrink or grow with content (e.g. while searching), scrolling internally instead |
167
167
  | `--runeforge-sticky-header-top` | `0` | Offset of the sticky title/breadcrumbs/alert block in Create, Update, and Read views — raise it if your app already has its own sticky top bar taking up space |
168
168
 
169
169
  Modal sizing (see [Shared Components](#shared-components)) is set per-instance via props rather than a CSS variable.
@@ -680,7 +680,7 @@ categories: {
680
680
 
681
681
  The stored value is a `string[]` of selected node values, submitted the same way as `multiselect` — a single hidden field holding a JSON array, parsed back out server-side with `JSON.parse`. `dependentOptions` and `hidden` work the same as any other field type.
682
682
 
683
- By default every parent node renders expanded; set `defaultExpanded: false` to start with the whole tree collapsed instead (the user can still expand any branch — this only sets the initial state). The field itself is capped at `--runeforge-tree-max-height` (default `24rem`, see [CSS variables](#css-variables)) and scrolls internally once its content grows past that.
683
+ By default every parent node renders expanded; set `defaultExpanded: false` to start with the whole tree collapsed instead (the user can still expand any branch — this only sets the initial state). The field renders at a fixed `--runeforge-tree-max-height` (default `24rem`, see [CSS variables](#css-variables)) regardless of how much is expanded or matched by a search, scrolling internally instead of growing or shrinking the field itself.
684
684
 
685
685
  A search box above the tree filters nodes by label as the user types (case-insensitive, substring match), auto-expanding whatever branches lead to a match and hiding everything else — set `searchable: false` to drop the box for a tree short enough not to need it.
686
686
 
@@ -84,7 +84,11 @@
84
84
  value.map((v) => options.find((o) => o.value === v)?.label ?? pickedLabels.get(v) ?? v)
85
85
  );
86
86
  const buttonLabel = $derived(
87
- value.length === 0 ? placeholder : strings.selectedCount(value.length)
87
+ value.length === 0
88
+ ? placeholder
89
+ : value.length === 1
90
+ ? selectedLabels[0]
91
+ : strings.selectedCount(value.length)
88
92
  );
89
93
 
90
94
  function toggle(option: SelectOption) {
@@ -62,7 +62,7 @@
62
62
 
63
63
  <div
64
64
  class="overflow-y-auto rounded-box border border-base-300 p-2"
65
- style="max-height: var(--runeforge-tree-max-height, 24rem)"
65
+ style="height: var(--runeforge-tree-max-height, 24rem)"
66
66
  class:opacity-50={disabled}
67
67
  class:pointer-events-none={disabled}
68
68
  >
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "runeforge",
3
- "version": "0.0.63",
3
+ "version": "0.0.64",
4
4
  "description": "SvelteKit toolkit for building metadata-driven CRUD interfaces with tables, forms, and actions",
5
5
  "license": "MIT",
6
6
  "author": "Ezequiel Puerta",