efficient-easel 14.0.0 → 14.1.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/README.md CHANGED
@@ -365,9 +365,11 @@ const { name, kind } = headWords({ name: 'At zero', tier: 'part', of: 'Countdown
365
365
  <div className="es-insp-body">{/* the panel's rows */}</div>
366
366
  ```
367
367
 
368
- `es-insp-body` is the settings body's side inset, owned here: 16px, and 8px
369
- under a 284px panel. It is opt-in, so a host adds the class and deletes its own
370
- side padding.
368
+ `es-insp-body` gives the settings body the panel's side inset, owned here:
369
+ 16px, and 12px under a 260px panel. The heads read the same value, the
370
+ `--es-insp-pad-x` token (one home since 14.1.0); a host that must line up
371
+ with the panel's edge reads it too. It is opt-in, so a host adds the class
372
+ and deletes its own side padding.
371
373
 
372
374
  ## The Layers tree — one row at every depth
373
375
 
@@ -252,6 +252,22 @@
252
252
  ask the panel's width, never the screen's. */
253
253
  container-type: inline-size;
254
254
  }
255
+ /* THE PANEL'S SIDE INSET, ONE HOME: 16, AND 12 UNDER A 260px PANEL (one
256
+ spacing scale, owner ruling 2026-10-02). Every panel head and the settings
257
+ body read `--es-insp-pad-x` and set no side padding of their own
258
+ (`tests/panel-one-inset.test.ts`). Until 14.1.0 the heads wrote 16 and 12
259
+ as literals and the body had its own token, 16 and 8 under 284, so a head
260
+ and its rows could sit 4px apart. On the editor root too, so a head drawn
261
+ outside a side panel still has the inset. The narrow value is set on the
262
+ panel's CHILDREN: a size query answers for the elements inside a container,
263
+ never for the container itself, and the children hand it down. */
264
+ .es-editor,
265
+ .es-sidepanel {
266
+ --es-insp-pad-x: var(--es-space-16, 16px);
267
+ }
268
+ @container (width < 260px) {
269
+ .es-sidepanel > * { --es-insp-pad-x: var(--es-space-12, 12px); }
270
+ }
255
271
  .es-sidepanel--left {
256
272
  width: var(--es-left-w, 288px);
257
273
  border-right: 1px solid var(--es-line);
@@ -264,7 +280,7 @@
264
280
  display: flex;
265
281
  align-items: center;
266
282
  justify-content: space-between;
267
- padding: 12px 16px;
283
+ padding: 12px var(--es-insp-pad-x);
268
284
  flex: none;
269
285
  }
270
286
  /* A panel's own name. States the margin an h2 would otherwise bring. */
@@ -307,7 +323,7 @@
307
323
  display: flex;
308
324
  flex: none;
309
325
  min-width: 0;
310
- padding: 12px 16px 0;
326
+ padding: 12px var(--es-insp-pad-x) 0;
311
327
  }
312
328
  /* The link is the shell's Button (`link`) in its Tooltip's wrapper; only its
313
329
  truncation is laid out here — a long name is cut inside the panel. */
@@ -334,37 +350,23 @@ span:has(> .es-insp-up-btn) {
334
350
  flex-wrap: wrap;
335
351
  align-items: center;
336
352
  gap: 8px 12px;
337
- padding: 12px 16px;
353
+ padding: 12px var(--es-insp-pad-x);
338
354
  flex: none;
339
355
  }
340
- /* THE PANEL'S OWN PADDING IS 16, AND 12 UNDER 260px (one spacing scale, owner
341
- ruling 2026-10-02). The side panel is the size container (above), so this
342
- asks the panel's width — a panel is dragged between 220 and 560 — and never
343
- the screen's. Only the heads are padded here: the settings body's padding
344
- is the host's. */
345
- @container (width < 260px) {
346
- .es-panel-head,
347
- .es-insp-head,
348
- .es-insp-up { padding-inline: 12px; }
349
- }
350
356
 
351
357
  /* THE SETTINGS BODY'S ROW INSET, OWNED HERE AND OPT-IN (one text panel v3,
352
358
  wave 2 · E1). Each editor padded its own body — the website 16px and 8px
353
359
  under a 284px panel (`storefront-editor.css` `.sf-insp-body`, card 66212's
354
360
  measured line), the email designer `p-3` plus 16px sides of its own — so the
355
361
  same text panel sat at two insets and the email one cut Alignment at 220.
356
- A host that puts `es-insp-body` on its panel body gets the website's numbers
362
+ A host that puts `es-insp-body` on its panel body gets the panel's inset
357
363
  and deletes its own; a host that does not is unchanged (no breaking change).
358
- ONLY THE SIDES: the room above and below stays the host's. The inset is ONE
359
- name, so anything that must line up with it reads the same value. The side
360
- panel is the size container (`.es-sidepanel`), so this asks the panel. */
364
+ ONLY THE SIDES: the room above and below stays the host's. Since 14.1.0 the
365
+ body reads the panel's ONE inset (above), the same value as the heads: it
366
+ had its own, 8 under 284. */
361
367
  .es-insp-body {
362
- --es-insp-pad-x: var(--es-space-16, 16px);
363
368
  padding-inline: var(--es-insp-pad-x);
364
369
  }
365
- @container (width < 284px) {
366
- .es-insp-body { --es-insp-pad-x: var(--es-space-8, 8px); }
367
- }
368
370
  /* A HEAD WITH A WAY-OUT WORD, UNDER 260px (card [MERGE] One Media Panel Head
369
371
  For Both Editors, GG 2026-10-06). At a 220px panel the chip, Cancel, the
370
372
  hairline and Hide left the titles about 38px: "Choose image" drew "Ch…" in
@@ -292,7 +292,7 @@
292
292
  display: flex;
293
293
  align-items: center;
294
294
  justify-content: space-between;
295
- padding: var(--space-16, 16px) var(--space-16, 16px) var(--space-12, 12px);
295
+ padding: var(--space-16, 16px) var(--es-insp-pad-x) var(--space-12, 12px);
296
296
  flex: none;
297
297
  }
298
298
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "efficient-easel",
3
- "version": "14.0.0",
3
+ "version": "14.1.0",
4
4
  "description": "Efficient Easel: the EFFICIENT editors' shared engine and chrome: the saved document as pure functions, the published renderer, and the editor frame, panels, Layers tree, text grammar and type-in-place box. Published as editor-shell up to 0.66.0 and as efficient-editor up to 0.95.0.",
5
5
  "license": "UNLICENSED",
6
6
  "author": "Efficient Pty Ltd",