gesso-core 0.7.0 → 0.8.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 +21 -0
- package/dist/{CanvasSurface-BpgbOku2.js → CanvasSurface-Cy2UErXI.js} +3366 -2617
- package/dist/CanvasSurface-Cy2UErXI.js.map +1 -0
- package/dist/{index-B5r1ETCh.d.ts → index-CQPJZwhG.d.ts} +753 -310
- package/dist/index.d.ts +2 -2
- package/dist/index.js +550 -205
- package/dist/index.js.map +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/testing.js +1 -1
- package/dist/testing.js.map +1 -1
- package/package.json +1 -1
- package/dist/CanvasSurface-BpgbOku2.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# gesso-core
|
|
2
2
|
|
|
3
|
+
## 0.8.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- cfd37de: For tools that write CSS from a live tree: `easingCss(easing)` names a curve made by `cubicBezier` or `linear` as CSS writes it, a node's `UiModifierSet.modifiers` lists what is attached with its arguments, and the inspector's node report has `interaction`, what the node draws while hovered and pressed.
|
|
8
|
+
- 60b4d52: `ShownAsKey` draws what is under a node as hovered, pressed or focused, with no pointer or keyboard: `interactive()` shows its hover or press look and `focusRing()` its ring. For a design tool drawing a component's pointer states beside its others.
|
|
9
|
+
- 3ac8a63: For a design tool's keyboard view and scrubber: `FocusService.tabStops(within)` lists the Tab stops under a node in order, and a paused `UiClock` can `seek` to a time while `holding` keeps finished animations at their end, so moving the time back plays them back.
|
|
10
|
+
- fdbf5be: SVG files draw their masks and drop shadows, as Chrome draws them. A `<mask>` cuts what it masks by its luminance, or by its alpha for `mask-type: alpha`, with its region and content in user space or the masked element's bounding box. A `<filter>` that is one `<feDropShadow>` draws the element's shadow, moved, blurred and in its flood colour at its flood opacity, beneath it. `parseSvg` no longer reports either as `unsupported`; any other filter still is, as is a `mask` or `filter` that names nothing. `PaintSurface` gains masked layers to draw them with: `beginMaskedLayer(x, y, width, height)`, `layerMask(mode)` and `endMaskedLayer()`, which a host without layer canvases draws as the content unmasked. `blur` on a `PaintSurface`, and so a node's `blur`, is now measured in the coordinates it is called in, as its documentation said, where it was in device pixels: on a display of two device pixels to the logical one, a blur is twice as wide as before.
|
|
11
|
+
- 2846e0b: `Tour` walks a person through a screen one element at a time: everything but the element dims, through a rounded hole that follows it, and a card beside it explains it, with Back, Next and a count. Steps point at a `tourTarget()` given to the element as its `ref`. Underneath, an anchored node or overlay entry can be placed `over` its anchor, at the anchor's size grown by the offset, and such an entry leaves presses on the rest of the anchor to the anchor.
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- 00c6f8b: A bound list of children sent again unchanged (the same empty list, or the same keyed children) no longer lays out its parent. A stream that follows a value moving every frame, such as a board's zoom, laid out every parent it was bound under on each frame.
|
|
16
|
+
- 5b5e756: A `UiClock` decides how time passes for the animations under a node: `provide={[provided(UiEnvironmentKeys.clock, clock)]}`. On a `settled` clock every animation lands where it is going the moment it starts, a spinner included; on one with a `speed`, time runs at that rate (0 is paused), and the speed can change mid-flight. Transitions, `motion` states, hover and press read the clock from their node; `AnimationService.animate` and `spring` take a `clock` option, which `Dialog`, `Drawer`, `Skeleton`, `Spinner`, the progress bar and smooth scrolling pass. An overlay now keeps the clock it was opened under, and every environment key the application provides, so a component in a dialog reads with `ctx.environment` what its opener reads.
|
|
17
|
+
- d048f25: Motion names resolve where they are drawn. A node can provide a vocabulary with `provide={[provided(UiEnvironmentKeys.motion, motion)]}`, and a name in a `transition`, a `motion` state or `animateLayout` resolves against the nearest one; `AnimationService.setMotion` now provides the app's at the root, so it reaches those too (a `motion` state used to resolve against Gesso's defaults whatever the app installed). `transition` takes a name, `transition={{ opacity: 'fast' }}` and `tween('fast')`, and keeps it as written (`node.transitions.declared`). `defineMotion` builds a vocabulary from Gesso's with only what a design changes, and `UiDurationExtensions`, `UiEasingExtensions` and `UiSpringExtensions` add names of its own, as typography roles are added. An overlay keeps the motion it was opened under. A name the vocabulary lacks is said once and takes the default.
|
|
18
|
+
- 33de404: An anchored node placed `over` its anchor is grown by its offset in the anchor's own space before being carried through transforms: under a zoom the offset is zoomed with the anchor, and a part shrunk past nothing covers nothing rather than a box twice the offset across.
|
|
19
|
+
- ec41942: A key made with `createEnvironmentKey` can now be provided by any element, `provide={[provided(key, value)]}`, and read by a component under it with `ctx.environment(key)`, or its default when nothing above provides it. It is read as the component's body runs, from where the component is placed, because the builder puts a component's node under its parent before the body runs. A value that changes is provided as a source to follow, such as a cell. `ComponentResolver.resolve` is handed the slot's node as a third argument for this.
|
|
20
|
+
- 06350a6: `ScrollArea` is a scrolling region that says where it is: the bottom edge fades while there is more below, the top once it has moved off the start, and past `backToTopAfter` pixels a button eases in that scrolls it back smoothly, on the clock where it is drawn. The fades blend into `fadeColor` (`background` unless said), and `backToTop` takes the design's own drawing of the button. Its `padding` (and `paddingX`, `paddingY`) pads the content inside the scroll bar, so the area can run to the edges with its bar there. A gradient stop takes an `opacity`, applied once its palette name is resolved, so a fade to nothing stays its own colour rather than passing through grey on the way to transparent black.
|
|
21
|
+
- 33de404: A box's corner radius fits the box before its shadows are drawn, as CSS does: a rounded box of no size leaves no hole under its shadow, where WebGPU cut a circle the size of its radius.
|
|
22
|
+
- 8fe90de: A `transition` now animates what is drawn, whoever changed it: the element, or a modifier writing over it, so a press or hover that `interactive` draws eases in and out on an element that declares a transition for that property, as a CSS transition follows a `:hover`. A value written by another animation's frame (a `motion` state, an `AnimationService` tween) is let through rather than chased, and `InspectionService.preview` is drawn at once both ways. `AnimationDriver.isAdvancing` says whether a frame is being written.
|
|
23
|
+
|
|
3
24
|
## 0.7.0
|
|
4
25
|
|
|
5
26
|
### Minor Changes
|