@gjermundgaraba-designs/pixel-paper 0.18.0 → 0.20.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/DESIGN.md +26 -5
- package/dist/src/commandPalette/commandPalette.d.ts +2 -2
- package/dist/src/commandPalette/commandPalette.d.ts.map +1 -1
- package/dist/src/commandPalette/commandPalette.js +66 -42
- package/dist/src/commandPalette/match.d.ts +15 -5
- package/dist/src/commandPalette/match.d.ts.map +1 -1
- package/dist/src/commandPalette/match.js +17 -2
- package/dist/src/drag/drag.d.ts +3 -0
- package/dist/src/drag/drag.d.ts.map +1 -1
- package/dist/src/drag/drag.js +14 -10
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/reel/index.d.ts +4 -0
- package/dist/src/reel/index.d.ts.map +1 -0
- package/dist/src/reel/index.js +2 -0
- package/dist/src/reel/layout.d.ts +180 -0
- package/dist/src/reel/layout.d.ts.map +1 -0
- package/dist/src/reel/layout.js +370 -0
- package/dist/src/reel/reel.d.ts +1158 -0
- package/dist/src/reel/reel.d.ts.map +1 -0
- package/dist/src/reel/reel.js +922 -0
- package/dist/src/sortable/sortable.d.ts +30 -30
- package/dist/src/sortable/sortable.d.ts.map +1 -1
- package/dist/src/sortable/sortable.js +2 -10
- package/dist/src/toast/toast.d.ts +12 -12
- package/dist/src/window/window.d.ts +2 -0
- package/dist/src/window/window.d.ts.map +1 -1
- package/dist/src/window/window.js +2 -1
- package/package.json +1 -1
- package/src/commandPalette/commandPalette.ts +71 -24
- package/src/commandPalette/match.ts +35 -6
- package/src/drag/drag.ts +19 -4
- package/src/index.ts +1 -0
- package/src/pixel-paper.css +236 -2
- package/src/reel/index.ts +20 -0
- package/src/reel/layout.ts +602 -0
- package/src/reel/reel.ts +1597 -0
- package/src/sortable/sortable.ts +8 -16
- package/src/tokens.css +5 -0
- package/src/window/window.ts +4 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drag.d.ts","sourceRoot":"","sources":["../../../src/drag/drag.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,IAAI,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAiB,MAAM,EAAS,MAAM,EAAQ,MAAM,QAAQ,CAAC;AAKpE;+BAC+B;AAC/B,KAAK,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;AAKzE,eAAO,MAAM,OAAO,gBAAiB,aAAa,CAAC,KAAK,KAAG,KAU1D,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,UAAU,UAAW,KAAK,KAAG,OACmB,CAAC;AAQ9D,eAAO,MAAM,gBAAgB,WACnB,UAAU,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KACnE,aAAa,CAAC,OAE+B,CAAC;AAEjD,eAAO,MAAM,qBAAqB,WACxB,UAAU,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,KACxE,aAAa,CAAC,OAEoC,CAAC;AAEtD,eAAO,MAAM,YAAY,WACf,UAAU,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAC/D,aAAa,CAAC,OAE2B,CAAC;AAE7C,eAAO,MAAM,eAAe,QAAO,aAAa,CAAC,OAER,CAAC;AAE1C,eAAO,MAAM,aAAa,QAAO,aAAa,CAAC,OAER,CAAC;AAIxC,sDAAsD;AACtD,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B;4FAC4F;AAC5F,eAAO,MAAM,aAAa,mBAAoB,MAAM,KAAG,MASzC,CAAC;AAMf;4CAC4C;AAC5C,eAAO,MAAM,UAAU,GAAI,OAAO,SACzB,aAAa,WACX,OAAO,KACf,MAAM,CAAC,MAAM,CAAC,OAAO,CAQvB,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,UAAU,GAAI,OAAO,WAAW,OAAO,KAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAMxE,CAAC;AAIL;6CAC6C;AAC7C,eAAO,MAAM,WAAW,YACb,OAAO,kBACA,MAAM,UACd,MAAM,UACN,MAAM,KACb,IAQF,CAAC;AAoBF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,cACd,OAAO,UACV,MAAM,WACL,MAAM,WACN,MAAM,KACd,MA+BF,CAAC;AAMF;;8DAE8D;AAC9D,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAK7C,CAAC"}
|
|
1
|
+
{"version":3,"file":"drag.d.ts","sourceRoot":"","sources":["../../../src/drag/drag.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,IAAI,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAiB,MAAM,EAAS,MAAM,EAAQ,MAAM,QAAQ,CAAC;AAKpE;+BAC+B;AAC/B,KAAK,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;AAKzE,eAAO,MAAM,OAAO,gBAAiB,aAAa,CAAC,KAAK,KAAG,KAU1D,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,UAAU,UAAW,KAAK,KAAG,OACmB,CAAC;AAQ9D,eAAO,MAAM,gBAAgB,WACnB,UAAU,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KACnE,aAAa,CAAC,OAE+B,CAAC;AAEjD,eAAO,MAAM,qBAAqB,WACxB,UAAU,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,KACxE,aAAa,CAAC,OAEoC,CAAC;AAEtD,eAAO,MAAM,YAAY,WACf,UAAU,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAC/D,aAAa,CAAC,OAE2B,CAAC;AAE7C,eAAO,MAAM,eAAe,QAAO,aAAa,CAAC,OAER,CAAC;AAE1C,eAAO,MAAM,aAAa,QAAO,aAAa,CAAC,OAER,CAAC;AAIxC,sDAAsD;AACtD,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B;4FAC4F;AAC5F,eAAO,MAAM,aAAa,mBAAoB,MAAM,KAAG,MASzC,CAAC;AAMf;4CAC4C;AAC5C,eAAO,MAAM,UAAU,GAAI,OAAO,SACzB,aAAa,WACX,OAAO,KACf,MAAM,CAAC,MAAM,CAAC,OAAO,CAQvB,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,UAAU,GAAI,OAAO,WAAW,OAAO,KAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAMxE,CAAC;AAIL;oCACoC;AACpC,eAAO,MAAM,eAAe,cAAe,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAS3E,CAAC;AAIJ;6CAC6C;AAC7C,eAAO,MAAM,WAAW,YACb,OAAO,kBACA,MAAM,UACd,MAAM,UACN,MAAM,KACb,IAQF,CAAC;AAoBF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,cACd,OAAO,UACV,MAAM,WACL,MAAM,WACN,MAAM,KACd,MA+BF,CAAC;AAMF;;8DAE8D;AAC9D,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAK7C,CAAC"}
|
package/dist/src/drag/drag.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { brandViewResult as __foldkitBrandViewResult } from 'foldkit/brand'
|
|
2
|
-
// Shared by Board and Sortable, the two users of @foldkit/ui's DragAndDrop
|
|
3
|
-
// is in, the DragAndDrop Messages both build, what a press
|
|
4
|
-
// else, the
|
|
5
|
-
// a pointer.
|
|
2
|
+
// Shared by Board and Sortable, the two users of @foldkit/ui's DragAndDrop, and Reel, which
|
|
3
|
+
// holds its own: the phase a drag is in, the DragAndDrop Messages both build, what a press
|
|
4
|
+
// lifts, Escape taken before anything else, the pressing pointer's events, the lifted copy's
|
|
5
|
+
// measure, and the closest-centre drop target a sortable resolves for a pointer.
|
|
6
6
|
import { DragAndDrop as UiDragAndDrop } from "@foldkit/ui";
|
|
7
7
|
import { Array, Effect, Option, Order, Stream, pipe } from "effect";
|
|
8
8
|
import * as Dom from "foldkit/dom";
|
|
@@ -79,6 +79,10 @@ export const escapeKeys = (message) => __foldkitBrandViewResult((Dom.streamFromE
|
|
|
79
79
|
filterMapEvent: (event) => __foldkitBrandViewResult((takeEscape(event, message)), "@gjermundgaraba-designs/pixel-paper/src/drag/drag.js#filterMapEvent"),
|
|
80
80
|
options: { capture: true },
|
|
81
81
|
})), "@gjermundgaraba-designs/pixel-paper/src/drag/drag.js#escapeKeys");
|
|
82
|
+
// POINTER
|
|
83
|
+
/** The moves, release and cancel of the pointer `pointerId`, on the document; another
|
|
84
|
+
* pointer's are not the drag's. */
|
|
85
|
+
export const pressingPointer = (pointerId) => __foldkitBrandViewResult((Stream.filter(Stream.mergeAll(Array.map(["pointermove", "pointerup", "pointercancel"], (type) => __foldkitBrandViewResult((Stream.fromEventListener(document, type)), "@gjermundgaraba-designs/pixel-paper/src/drag/drag.js#anonymous")), { concurrency: "unbounded" }), (event) => __foldkitBrandViewResult((event.pointerId === pointerId), "@gjermundgaraba-designs/pixel-paper/src/drag/drag.js#anonymous~2"))), "@gjermundgaraba-designs/pixel-paper/src/drag/drag.js#pressingPointer");
|
|
82
86
|
// LIFTED COPY
|
|
83
87
|
/** Sizes the copy that follows the pointer to the element `sourceSelector` finds, and keeps the
|
|
84
88
|
* pointer where it pressed that element. */
|
|
@@ -110,14 +114,14 @@ const isOnSameRow = (box, other) => __foldkitBrandViewResult((Math.abs(other.top
|
|
|
110
114
|
* in a column of rows it is read down, so one reading serves a list and a grid.
|
|
111
115
|
*/
|
|
112
116
|
export const insertionIndex = (container, heldId, clientX, clientY) => {
|
|
113
|
-
const items = Array.map(Array.fromIterable(container.querySelectorAll("[data-sortable-id]")), (item) => (__foldkitBrandViewResult(({ id: item.dataset["sortableId"], box: boxOf(item) }), "@gjermundgaraba-designs/pixel-paper/src/drag/drag.js#anonymous")));
|
|
117
|
+
const items = Array.map(Array.fromIterable(container.querySelectorAll("[data-sortable-id]")), (item) => (__foldkitBrandViewResult(({ id: item.dataset["sortableId"], box: boxOf(item) }), "@gjermundgaraba-designs/pixel-paper/src/drag/drag.js#anonymous~3")));
|
|
114
118
|
// read with the held item in its place: two tiles side by side are a row even while one of
|
|
115
119
|
// them is held
|
|
116
|
-
const isTiled = Array.some(items, ({ box }, index) => __foldkitBrandViewResult((Option.exists(Array.get(items, index + 1), (next) => __foldkitBrandViewResult((isOnSameRow(box, next.box)), "@gjermundgaraba-designs/pixel-paper/src/drag/drag.js#anonymous~
|
|
117
|
-
const boxes = pipe(Array.filter(items, (item) => __foldkitBrandViewResult((item.id !== heldId), "@gjermundgaraba-designs/pixel-paper/src/drag/drag.js#anonymous~
|
|
120
|
+
const isTiled = Array.some(items, ({ box }, index) => __foldkitBrandViewResult((Option.exists(Array.get(items, index + 1), (next) => __foldkitBrandViewResult((isOnSameRow(box, next.box)), "@gjermundgaraba-designs/pixel-paper/src/drag/drag.js#anonymous~5"))), "@gjermundgaraba-designs/pixel-paper/src/drag/drag.js#anonymous~4"));
|
|
121
|
+
const boxes = pipe(Array.filter(items, (item) => __foldkitBrandViewResult((item.id !== heldId), "@gjermundgaraba-designs/pixel-paper/src/drag/drag.js#anonymous~6")), Array.map(({ box }) => __foldkitBrandViewResult((box), "@gjermundgaraba-designs/pixel-paper/src/drag/drag.js#anonymous~7")));
|
|
118
122
|
const distance = (box) => __foldkitBrandViewResult((Math.hypot(box.centreX - clientX, box.centreY - clientY)), "@gjermundgaraba-designs/pixel-paper/src/drag/drag.js#distance");
|
|
119
|
-
const byDistance = Order.mapInput(Order.Number, ({ box }) => __foldkitBrandViewResult((distance(box)), "@gjermundgaraba-designs/pixel-paper/src/drag/drag.js#anonymous~
|
|
120
|
-
return __foldkitBrandViewResult((Array.match(Array.map(boxes, (box, index) => (__foldkitBrandViewResult(({ box, index }), "@gjermundgaraba-designs/pixel-paper/src/drag/drag.js#anonymous~
|
|
123
|
+
const byDistance = Order.mapInput(Order.Number, ({ box }) => __foldkitBrandViewResult((distance(box)), "@gjermundgaraba-designs/pixel-paper/src/drag/drag.js#anonymous~8"));
|
|
124
|
+
return __foldkitBrandViewResult((Array.match(Array.map(boxes, (box, index) => (__foldkitBrandViewResult(({ box, index }), "@gjermundgaraba-designs/pixel-paper/src/drag/drag.js#anonymous~9"))), {
|
|
121
125
|
onEmpty: () => __foldkitBrandViewResult((0), "@gjermundgaraba-designs/pixel-paper/src/drag/drag.js#onEmpty"),
|
|
122
126
|
onNonEmpty: (candidates) => {
|
|
123
127
|
const { box, index } = Array.min(candidates, byDistance);
|
|
@@ -131,4 +135,4 @@ const DRAGGING_ATTRIBUTE = "data-pixel-paper-dragging";
|
|
|
131
135
|
/** While a pointer presses or carries an item, the page is marked
|
|
132
136
|
* (`data-pixel-paper-dragging` on the root), so the stylesheet prints the grabbing cursor and
|
|
133
137
|
* holds text selection, with no style element of its own. */
|
|
134
|
-
export const markDragging = Stream.callback(() => __foldkitBrandViewResult((Effect.acquireRelease(Effect.sync(() => __foldkitBrandViewResult((document.documentElement.setAttribute(DRAGGING_ATTRIBUTE, "")), "@gjermundgaraba-designs/pixel-paper/src/drag/drag.js#anonymous~
|
|
138
|
+
export const markDragging = Stream.callback(() => __foldkitBrandViewResult((Effect.acquireRelease(Effect.sync(() => __foldkitBrandViewResult((document.documentElement.setAttribute(DRAGGING_ATTRIBUTE, "")), "@gjermundgaraba-designs/pixel-paper/src/drag/drag.js#anonymous~11")), () => __foldkitBrandViewResult((Effect.sync(() => __foldkitBrandViewResult((document.documentElement.removeAttribute(DRAGGING_ATTRIBUTE)), "@gjermundgaraba-designs/pixel-paper/src/drag/drag.js#anonymous~13"))), "@gjermundgaraba-designs/pixel-paper/src/drag/drag.js#anonymous~12")).pipe(Effect.flatMap(() => __foldkitBrandViewResult((Effect.never), "@gjermundgaraba-designs/pixel-paper/src/drag/drag.js#anonymous~14")))), "@gjermundgaraba-designs/pixel-paper/src/drag/drag.js#anonymous~10"));
|
package/dist/src/index.d.ts
CHANGED
|
@@ -65,6 +65,7 @@ export * as Prose from "./prose/index.ts";
|
|
|
65
65
|
export * as QueryChip from "./queryChip/index.ts";
|
|
66
66
|
export * as RadioChoices from "./radioChoices/index.ts";
|
|
67
67
|
export * as Rail from "./rail/index.ts";
|
|
68
|
+
export * as Reel from "./reel/index.ts";
|
|
68
69
|
export * as Remote from "./remote/index.ts";
|
|
69
70
|
export * as Rows from "./rows/index.ts";
|
|
70
71
|
export * as Scheme from "./scheme/index.ts";
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -65,6 +65,7 @@ export * as Prose from "./prose/index.js";
|
|
|
65
65
|
export * as QueryChip from "./queryChip/index.js";
|
|
66
66
|
export * as RadioChoices from "./radioChoices/index.js";
|
|
67
67
|
export * as Rail from "./rail/index.js";
|
|
68
|
+
export * as Reel from "./reel/index.js";
|
|
68
69
|
export * as Remote from "./remote/index.js";
|
|
69
70
|
export * as Rows from "./rows/index.js";
|
|
70
71
|
export * as Scheme from "./scheme/index.js";
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { Layout, OutMessage, Pane, apply } from "./layout.ts";
|
|
2
|
+
export { Action, AnnounceReel, FocusGrip, FocusPane, Message, Model, RestoreFocus, ScrollIntoView, SizeLiftedPane, focusedPaneId, init, perform, reconcile, subscriptions, update, view, } from "./reel.ts";
|
|
3
|
+
export type { InitConfig, PaneRender, UpdateContext, ViewInputs } from "./reel.ts";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/reel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EACL,MAAM,EACN,YAAY,EACZ,SAAS,EACT,SAAS,EACT,OAAO,EACP,KAAK,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,aAAa,EACb,IAAI,EACJ,OAAO,EACP,SAAS,EACT,aAAa,EACb,MAAM,EACN,IAAI,GACL,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { Option, Schema } from "effect";
|
|
2
|
+
/** Schema for one pane as the reel knows it: its id, unique in the reel and the application's
|
|
3
|
+
* to keep, its name in words (its grip, its splitter and what screen readers hear), and its
|
|
4
|
+
* share of its column's height, a weight against its neighbours'. */
|
|
5
|
+
export declare const Pane: Schema.Struct<{
|
|
6
|
+
readonly id: Schema.String;
|
|
7
|
+
readonly label: Schema.String;
|
|
8
|
+
readonly weight: Schema.Number;
|
|
9
|
+
}>;
|
|
10
|
+
export type Pane = typeof Pane.Type;
|
|
11
|
+
/** Schema for one column: its id, unique among the reel's columns and the application's to
|
|
12
|
+
* keep, its width, a fraction of the reel's visible width (1 fills it), and its panes, top
|
|
13
|
+
* to bottom. A column `apply` makes for a pane pulled out takes the pane's id (`notes`, or
|
|
14
|
+
* `notes/2` where a column has it), so pane and column ids share one namespace. */
|
|
15
|
+
export declare const Column: Schema.Struct<{
|
|
16
|
+
readonly id: Schema.String;
|
|
17
|
+
readonly width: Schema.Number;
|
|
18
|
+
readonly panes: Schema.NonEmptyArray<Schema.Struct<{
|
|
19
|
+
readonly id: Schema.String;
|
|
20
|
+
readonly label: Schema.String;
|
|
21
|
+
readonly weight: Schema.Number;
|
|
22
|
+
}>>;
|
|
23
|
+
}>;
|
|
24
|
+
export type Column = typeof Column.Type;
|
|
25
|
+
/** Schema for a reel's layout: its columns, left to right. The application's to keep. */
|
|
26
|
+
export declare const Layout: Schema.$Array<Schema.Struct<{
|
|
27
|
+
readonly id: Schema.String;
|
|
28
|
+
readonly width: Schema.Number;
|
|
29
|
+
readonly panes: Schema.NonEmptyArray<Schema.Struct<{
|
|
30
|
+
readonly id: Schema.String;
|
|
31
|
+
readonly label: Schema.String;
|
|
32
|
+
readonly weight: Schema.Number;
|
|
33
|
+
}>>;
|
|
34
|
+
}>>;
|
|
35
|
+
export type Layout = typeof Layout.Type;
|
|
36
|
+
/** What is held: a pane or a column, by its id. */
|
|
37
|
+
export declare const Subject: import("foldkit/schema").TaggedUnion<{
|
|
38
|
+
readonly Pane: {
|
|
39
|
+
paneId: Schema.String;
|
|
40
|
+
};
|
|
41
|
+
readonly Column: {
|
|
42
|
+
columnId: Schema.String;
|
|
43
|
+
};
|
|
44
|
+
}>;
|
|
45
|
+
export type Subject = typeof Subject.Type;
|
|
46
|
+
/** Where a held pane or column would land: into a column, at a place among its other panes,
|
|
47
|
+
* or in the gap before a column (none: after the last), as a column of its own. */
|
|
48
|
+
export declare const Target: import("foldkit/schema").TaggedUnion<{
|
|
49
|
+
readonly Into: {
|
|
50
|
+
columnId: Schema.String;
|
|
51
|
+
index: Schema.Number;
|
|
52
|
+
};
|
|
53
|
+
readonly Gap: {
|
|
54
|
+
maybeBeforeColumnId: Schema.Option<Schema.String>;
|
|
55
|
+
};
|
|
56
|
+
}>;
|
|
57
|
+
export type Target = typeof Target.Type;
|
|
58
|
+
/** Union of what a reel asks the application to do to its layout, which the application
|
|
59
|
+
* applies (`apply` does it) or not, by id, so a request still means what it meant after the
|
|
60
|
+
* layout changed under it. `MovedPane`: a pane into a column, at `toIndex` among that
|
|
61
|
+
* column's other panes. `PulledOutPane`: a pane into a column of its own, before a column
|
|
62
|
+
* (none: after the last). `MovedColumn`: a column to before another (none: last).
|
|
63
|
+
* `ResizedColumn`: a column's width. `ResizedPanes`: a column's panes' weights, by pane id. */
|
|
64
|
+
export declare const OutMessage: import("foldkit/message").MessageUnion<{
|
|
65
|
+
readonly MovedPane: {
|
|
66
|
+
paneId: Schema.String;
|
|
67
|
+
toColumnId: Schema.String;
|
|
68
|
+
toIndex: Schema.Number;
|
|
69
|
+
};
|
|
70
|
+
readonly PulledOutPane: {
|
|
71
|
+
paneId: Schema.String;
|
|
72
|
+
maybeBeforeColumnId: Schema.Option<Schema.String>;
|
|
73
|
+
};
|
|
74
|
+
readonly MovedColumn: {
|
|
75
|
+
columnId: Schema.String;
|
|
76
|
+
maybeBeforeColumnId: Schema.Option<Schema.String>;
|
|
77
|
+
};
|
|
78
|
+
readonly ResizedColumn: {
|
|
79
|
+
columnId: Schema.String;
|
|
80
|
+
width: Schema.Number;
|
|
81
|
+
};
|
|
82
|
+
readonly ResizedPanes: {
|
|
83
|
+
columnId: Schema.String;
|
|
84
|
+
weights: Schema.$Record<Schema.String, Schema.Number>;
|
|
85
|
+
};
|
|
86
|
+
}>;
|
|
87
|
+
export type OutMessage = typeof OutMessage.Type;
|
|
88
|
+
/** A splitter: the one after a column, which sizes its width, or the one below a pane, which
|
|
89
|
+
* shares the height between it and the pane under it. */
|
|
90
|
+
export declare const Splitter: import("foldkit/schema").TaggedUnion<{
|
|
91
|
+
readonly Width: {
|
|
92
|
+
columnId: Schema.String;
|
|
93
|
+
};
|
|
94
|
+
readonly Split: {
|
|
95
|
+
abovePaneId: Schema.String;
|
|
96
|
+
};
|
|
97
|
+
}>;
|
|
98
|
+
export type Splitter = typeof Splitter.Type;
|
|
99
|
+
/** A resize: a column's width, or its panes' weights. */
|
|
100
|
+
export declare const Resize: Schema.Union<readonly [import("foldkit/schema").CallableTaggedStruct<"ResizedColumn", {
|
|
101
|
+
readonly columnId: Schema.String;
|
|
102
|
+
readonly width: Schema.Number;
|
|
103
|
+
}>, import("foldkit/schema").CallableTaggedStruct<"ResizedPanes", {
|
|
104
|
+
readonly columnId: Schema.String;
|
|
105
|
+
readonly weights: Schema.$Record<Schema.String, Schema.Number>;
|
|
106
|
+
}>]>;
|
|
107
|
+
export type Resize = typeof Resize.Type;
|
|
108
|
+
/** A pane where it sits: its column (and that column's index) and its row. */
|
|
109
|
+
export type Place = Readonly<{
|
|
110
|
+
column: Column;
|
|
111
|
+
columnIndex: number;
|
|
112
|
+
row: number;
|
|
113
|
+
pane: Pane;
|
|
114
|
+
}>;
|
|
115
|
+
export declare const placeOf: (layout: Layout, paneId: string) => Option.Option<Place>;
|
|
116
|
+
export declare const placeAt: (layout: Layout, columnIndex: number, row: number) => Option.Option<Place>;
|
|
117
|
+
export declare const firstPlace: (layout: Layout) => Option.Option<Place>;
|
|
118
|
+
export declare const columnIndexOf: (layout: Layout, columnId: string) => Option.Option<number>;
|
|
119
|
+
export declare const columnOf: (layout: Layout, columnId: string) => Option.Option<Column>;
|
|
120
|
+
/**
|
|
121
|
+
* The layout once `request` is applied: what the reel asked, done the way every client does
|
|
122
|
+
* it. A pane that leaves its column takes the mean weight of the column it joins; a column
|
|
123
|
+
* left without panes goes; a pane pulled out keeps its old column's width, in a column named
|
|
124
|
+
* for it. A request naming a pane or column the layout no longer has changes nothing.
|
|
125
|
+
*/
|
|
126
|
+
export declare const apply: (layout: Layout, request: OutMessage) => Layout;
|
|
127
|
+
export declare const widthWords: (width: number) => string;
|
|
128
|
+
export declare const widthMark: (width: number) => string;
|
|
129
|
+
/** The next preset wider than `width`, or the narrowest past the widest. */
|
|
130
|
+
export declare const nextPreset: (width: number) => number;
|
|
131
|
+
/** What a place is called when a drop would leave the pane or column where it is. */
|
|
132
|
+
export declare const WHERE_IT_WAS = "where it was";
|
|
133
|
+
export declare const fill: (template: string, fields: Readonly<Record<string, string | number>>) => string;
|
|
134
|
+
export declare const subjectWords: (layout: Layout, subject: Subject) => Option.Option<string>;
|
|
135
|
+
export declare const placeWords: (layout: Layout, place: Place) => string;
|
|
136
|
+
/** Where `subject` sits in `layout`, in words. */
|
|
137
|
+
export declare const whereWords: (layout: Layout, subject: Subject) => Option.Option<string>;
|
|
138
|
+
/** Where `subject` is now, as a target: a pane at its place, a column in the gap before
|
|
139
|
+
* itself. */
|
|
140
|
+
export declare const originOf: (layout: Layout, subject: Subject) => Option.Option<Target>;
|
|
141
|
+
export declare const isPresent: (layout: Layout, subject: Subject) => boolean;
|
|
142
|
+
/** What dropping `subject` at `target` asks of the layout: none where it would change
|
|
143
|
+
* nothing (where it is, or a target whose column is gone). */
|
|
144
|
+
export declare const requestOf: (layout: Layout, subject: Subject, target: Target) => Option.Option<OutMessage>;
|
|
145
|
+
/** Where `subject` would be once dropped at `target`, in words. */
|
|
146
|
+
export declare const landingWords: (layout: Layout, subject: Subject, target: Target) => string;
|
|
147
|
+
/** The column a target sits in or before (the last, for the gap after it), which a keyboard
|
|
148
|
+
* step scrolls to. */
|
|
149
|
+
export declare const columnOfTarget: (layout: Layout, target: Target) => Option.Option<string>;
|
|
150
|
+
export declare const Step: Schema.Literals<readonly ["Up", "Down", "Left", "Right"]>;
|
|
151
|
+
export type Step = typeof Step.Type;
|
|
152
|
+
/** Whether the column `target` names (into it, or the gap before it) is still in `layout`. */
|
|
153
|
+
export declare const isTargetPresent: (layout: Layout, target: Target) => boolean;
|
|
154
|
+
/** A keyboard step from `target`: left and right cross from a column to the gap beside it and
|
|
155
|
+
* on to the next column, up and down move among a column's panes. A stop where the drop would
|
|
156
|
+
* change nothing is passed over, but for where `subject` started; with nothing further that
|
|
157
|
+
* way, it stays (where `subject` started, if the target's column has gone). */
|
|
158
|
+
export declare const steppedTarget: (layout: Layout, subject: Subject, target: Target, step: Step) => Target;
|
|
159
|
+
/** A column as a pointer reads it: its id, its left and right edges, and the vertical middles
|
|
160
|
+
* of its slots, the held pane's left out. */
|
|
161
|
+
export type ColumnBox = Readonly<{
|
|
162
|
+
id: string;
|
|
163
|
+
left: number;
|
|
164
|
+
right: number;
|
|
165
|
+
slotMiddles: ReadonlyArray<number>;
|
|
166
|
+
}>;
|
|
167
|
+
/** Where a pointer at (`clientX`, `clientY`) over a reel whose columns sit at `columns`, left
|
|
168
|
+
* to right, would drop `subject`. A column lands in the gap nearest the pointer, counted by
|
|
169
|
+
* the columns whose middle it has passed. A pane over a column's edge band (or over a gap, or
|
|
170
|
+
* past the last column) lands in that gap, as a column of its own; over the rest of a column
|
|
171
|
+
* it lands among that column's other panes, after each whose middle is above the pointer. */
|
|
172
|
+
export declare const targetAtPoint: (subject: Subject, columns: ReadonlyArray<ColumnBox>, clientX: number, clientY: number) => Target;
|
|
173
|
+
/** What moving `splitter` by `share` asks of the layout, from the sizes the layout holds (not
|
|
174
|
+
* the sizes printed, which the stylesheet may hold at a minimum): a width splitter adds
|
|
175
|
+
* `share` to its column's width; a pane splitter moves `share` of its column's height from
|
|
176
|
+
* the pane below it to the pane above. None when what it sizes is gone. */
|
|
177
|
+
export declare const resizeOf: (layout: Layout, splitter: Splitter, share: number) => Option.Option<Resize>;
|
|
178
|
+
/** Whether what `splitter` sizes is still in `layout`. */
|
|
179
|
+
export declare const isSplitterPresent: (layout: Layout, splitter: Splitter) => boolean;
|
|
180
|
+
//# sourceMappingURL=layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/reel/layout.ts"],"names":[],"mappings":"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"}
|