@quario/html 0.3.0 → 0.4.0

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/CHANGELOG.md CHANGED
@@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.4.0] - 2026-09-03
11
+
12
+ ### Changed
13
+
14
+ - **A split slot's box now fills the split's height.** Before, a slot's
15
+ background and border stopped at that slot's own content, leaving a gap under
16
+ any slot shorter than its neighbours. The slot wrapper now carries inline
17
+ `display:grid`, so the item inside it fills the row; a slot's item markup is
18
+ unchanged. See the `@quario/layout` changelog for the rule and for what it
19
+ costs a report that relied on the short box.
20
+
21
+ - **A date string under `format: "date"` now presents as a date.** The
22
+ engine's `format()` helper revives the two read forms, so a cell that
23
+ rendered `2026-08-14` verbatim now renders the presented date. See the
24
+ `quario` changelog for the forms and the timezone rule.
25
+
10
26
  ## [0.3.0] - 2026-09-02
11
27
 
12
28
  ### Added
package/README.md CHANGED
@@ -97,13 +97,13 @@ host. Compilation stays synchronous; render-time failures reject with the same l
97
97
  These classes are the contract host CSS targets. They are stable, and changing them is a breaking
98
98
  change.
99
99
 
100
- | Emits | For |
101
- | ----------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
102
- | `<div class="q-item q-<role>">` | Every item. Roles: `q-report-header`, `q-empty`, `q-group-header`, `q-detail`, `q-group-footer`, `q-report-footer` |
103
- | `<div class="q-group" data-group="name">` | Each group instance, wrapping its header, nested content, and footer. Adds `q-break` when the group declares `break: "page"` or `reset: "page"` |
104
- | `<table class="q-table">` | Each table, with a real `colgroup`, `thead`, `tbody`, and a `tfoot` when totals are declared |
105
- | `<div class="q-item q-image q-<role>">` | Each image item, holding one `<img>` whose `src` is a base64 `data:` URI of the event's bytes; the rendered `alt` is escaped |
106
- | `<div class="q-split q-<role>">` | Each split, carrying inline `display:flex`; its slots are `<div class="q-slot">` sized inline, each holding the slot item's ordinary container |
100
+ | Emits | For |
101
+ | ----------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
102
+ | `<div class="q-item q-<role>">` | Every item. Roles: `q-report-header`, `q-empty`, `q-group-header`, `q-detail`, `q-group-footer`, `q-report-footer` |
103
+ | `<div class="q-group" data-group="name">` | Each group instance, wrapping its header, nested content, and footer. Adds `q-break` when the group declares `break: "page"` or `reset: "page"` |
104
+ | `<table class="q-table">` | Each table, with a real `colgroup`, `thead`, `tbody`, and a `tfoot` when totals are declared |
105
+ | `<div class="q-item q-image q-<role>">` | Each image item, holding one `<img>` whose `src` is a base64 `data:` URI of the event's bytes; the rendered `alt` is escaped |
106
+ | `<div class="q-split q-<role>">` | Each split, carrying inline `display:flex`; its slots are `<div class="q-slot">` carrying inline `display:grid` and their share, each holding the slot item's ordinary container |
107
107
 
108
108
  A column `width` becomes an inline `width:<n>%` on its `<col>`. The classes above belong to this
109
109
  target. The schema never speaks in CSS. Displaying a fragment that contains images under a Content
package/lib/index.js CHANGED
@@ -256,9 +256,16 @@ let styling = (fonts) => {
256
256
 
257
257
  // One slot's wrapper. An authored share is that width; a width-less slot
258
258
  // divides what the sized ones leave, exactly as a width-less column does.
259
+ // `display:grid` is what gives a slot's box the split's height rather than its
260
+ // own content's: the wrapper already stretches as a flex item, and a grid makes
261
+ // its single child fill it in both axes. It belongs here and not on the
262
+ // fragment, because a slot's item is the same `q-item` div it would be
263
+ // anywhere else -- nothing about an item's markup depends on where it sits.
259
264
  /** @type {(slot: { width?: number } | undefined) => string} */
260
265
  let slotAttr = (slot) =>
261
- ' style="' + esc(slot && slot.width != null ? "width:" + slot.width + "%" : "flex:1") + '"';
266
+ ' style="' +
267
+ esc("display:grid;" + (slot && slot.width != null ? "width:" + slot.width + "%" : "flex:1")) +
268
+ '"';
262
269
 
263
270
  // The identity attribute, escaped like every other generated value at this
264
271
  // edge. `mark` is the factory's verdict: a render without `paths` maps every
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quario/html",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "The HTML render target for quario — in the makings, not yet released",
5
5
  "homepage": "https://getquario.com",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -39,12 +39,12 @@
39
39
  "devDependencies": {
40
40
  "@arethetypeswrong/cli": "^0.18.3",
41
41
  "@size-limit/preset-small-lib": "^13.0.3",
42
- "quario": "^0.3.0",
42
+ "quario": "^0.4.0",
43
43
  "size-limit": "^13.0.3",
44
44
  "typescript": "^7.0.2"
45
45
  },
46
46
  "peerDependencies": {
47
- "quario": "^0.3.0"
47
+ "quario": "^0.4.0"
48
48
  },
49
49
  "size-limit": [
50
50
  {