@elaraai/east-ui 1.0.83 → 1.0.84
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/dist/src/charts/chart/index.d.ts +7 -4
- package/dist/src/charts/chart/index.d.ts.map +1 -1
- package/dist/src/charts/chart/index.js +3 -1
- package/dist/src/charts/chart/index.js.map +1 -1
- package/dist/src/collections/library/index.d.ts +1182 -37
- package/dist/src/collections/library/index.d.ts.map +1 -1
- package/dist/src/collections/library/index.js +191 -13
- package/dist/src/collections/library/index.js.map +1 -1
- package/dist/src/collections/library/types.d.ts +376 -180
- package/dist/src/collections/library/types.d.ts.map +1 -1
- package/dist/src/collections/library/types.js +188 -91
- package/dist/src/collections/library/types.js.map +1 -1
- package/dist/src/collections/plan/root.d.ts.map +1 -1
- package/dist/src/collections/plan/root.js +5 -30
- package/dist/src/collections/plan/root.js.map +1 -1
- package/dist/src/component.d.ts +490 -11
- package/dist/src/component.d.ts.map +1 -1
- package/dist/src/component.js +17 -3
- package/dist/src/component.js.map +1 -1
- package/dist/src/contracts/drag.d.ts.map +1 -1
- package/dist/src/contracts/drag.js +1 -0
- package/dist/src/contracts/drag.js.map +1 -1
- package/dist/src/contracts/editing.d.ts +19 -0
- package/dist/src/contracts/editing.d.ts.map +1 -1
- package/dist/src/contracts/editing.js +31 -1
- package/dist/src/contracts/editing.js.map +1 -1
- package/dist/src/display/bar-strip/index.d.ts +39 -6
- package/dist/src/display/bar-strip/index.d.ts.map +1 -1
- package/dist/src/display/bar-strip/index.js +16 -38
- package/dist/src/display/bar-strip/index.js.map +1 -1
- package/dist/src/display/bar-strip/types.d.ts +17 -1
- package/dist/src/display/bar-strip/types.d.ts.map +1 -1
- package/dist/src/display/bar-strip/types.js.map +1 -1
- package/dist/src/feedback/status/index.d.ts +10 -2
- package/dist/src/feedback/status/index.d.ts.map +1 -1
- package/dist/src/feedback/status/index.js +8 -3
- package/dist/src/feedback/status/index.js.map +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal.d.ts +2 -1
- package/dist/src/internal.d.ts.map +1 -1
- package/dist/src/internal.js +1 -1
- package/dist/src/internal.js.map +1 -1
- package/dist/src/layout/dock/index.d.ts +58 -16
- package/dist/src/layout/dock/index.d.ts.map +1 -1
- package/dist/src/layout/dock/index.js +48 -13
- package/dist/src/layout/dock/index.js.map +1 -1
- package/dist/src/layout/dock/types.d.ts +62 -10
- package/dist/src/layout/dock/types.d.ts.map +1 -1
- package/dist/src/layout/dock/types.js +21 -4
- package/dist/src/layout/dock/types.js.map +1 -1
- package/dist/src/layout/index.d.ts +1 -0
- package/dist/src/layout/index.d.ts.map +1 -1
- package/dist/src/layout/index.js +1 -0
- package/dist/src/layout/index.js.map +1 -1
- package/dist/src/layout/snap-grid/index.d.ts +1291 -0
- package/dist/src/layout/snap-grid/index.d.ts.map +1 -0
- package/dist/src/layout/snap-grid/index.js +510 -0
- package/dist/src/layout/snap-grid/index.js.map +1 -0
- package/dist/src/layout/snap-grid/types.d.ts +1046 -0
- package/dist/src/layout/snap-grid/types.d.ts.map +1 -0
- package/dist/src/layout/snap-grid/types.js +371 -0
- package/dist/src/layout/snap-grid/types.js.map +1 -0
- package/dist/src/navigation/app/index.d.ts +15 -0
- package/dist/src/navigation/app/index.d.ts.map +1 -1
- package/dist/src/navigation/app/index.js +2 -2
- package/dist/src/navigation/app/index.js.map +1 -1
- package/dist/src/navigation/nav-list/index.d.ts +5 -3
- package/dist/src/navigation/nav-list/index.d.ts.map +1 -1
- package/dist/src/navigation/nav-list/index.js +5 -3
- package/dist/src/navigation/nav-list/index.js.map +1 -1
- package/dist/src/overlays/action-bar/index.d.ts +9 -0
- package/dist/src/overlays/action-bar/index.d.ts.map +1 -1
- package/dist/src/overlays/action-bar/index.js +11 -1
- package/dist/src/overlays/action-bar/index.js.map +1 -1
- package/dist/src/overlays/action-bar/types.d.ts +11 -7
- package/dist/src/overlays/action-bar/types.d.ts.map +1 -1
- package/dist/src/overlays/action-bar/types.js +8 -1
- package/dist/src/overlays/action-bar/types.js.map +1 -1
- package/dist/src/overlays/dialog/index.d.ts +16 -0
- package/dist/src/overlays/dialog/index.d.ts.map +1 -1
- package/dist/src/overlays/dialog/index.js +18 -0
- package/dist/src/overlays/dialog/index.js.map +1 -1
- package/dist/src/overlays/dialog/types.d.ts +18 -11
- package/dist/src/overlays/dialog/types.d.ts.map +1 -1
- package/dist/src/overlays/dialog/types.js +12 -0
- package/dist/src/overlays/dialog/types.js.map +1 -1
- package/dist/src/overlays/drawer/index.d.ts +12 -0
- package/dist/src/overlays/drawer/index.d.ts.map +1 -1
- package/dist/src/overlays/drawer/index.js +14 -0
- package/dist/src/overlays/drawer/index.js.map +1 -1
- package/dist/src/overlays/drawer/types.d.ts +13 -1
- package/dist/src/overlays/drawer/types.d.ts.map +1 -1
- package/dist/src/overlays/drawer/types.js +12 -0
- package/dist/src/overlays/drawer/types.js.map +1 -1
- package/dist/src/overlays/hover-card/index.d.ts +9 -0
- package/dist/src/overlays/hover-card/index.d.ts.map +1 -1
- package/dist/src/overlays/hover-card/index.js +12 -1
- package/dist/src/overlays/hover-card/index.js.map +1 -1
- package/dist/src/overlays/hover-card/types.d.ts +9 -1
- package/dist/src/overlays/hover-card/types.d.ts.map +1 -1
- package/dist/src/overlays/hover-card/types.js +8 -0
- package/dist/src/overlays/hover-card/types.js.map +1 -1
- package/dist/src/overlays/popover/index.d.ts +15 -0
- package/dist/src/overlays/popover/index.d.ts.map +1 -1
- package/dist/src/overlays/popover/index.js +19 -1
- package/dist/src/overlays/popover/index.js.map +1 -1
- package/dist/src/overlays/popover/types.d.ts +19 -5
- package/dist/src/overlays/popover/types.d.ts.map +1 -1
- package/dist/src/overlays/popover/types.js +14 -0
- package/dist/src/overlays/popover/types.js.map +1 -1
- package/dist/src/overlays/toggle-tip/index.d.ts +9 -0
- package/dist/src/overlays/toggle-tip/index.d.ts.map +1 -1
- package/dist/src/overlays/toggle-tip/index.js +12 -1
- package/dist/src/overlays/toggle-tip/index.js.map +1 -1
- package/dist/src/overlays/toggle-tip/types.d.ts +9 -1
- package/dist/src/overlays/toggle-tip/types.d.ts.map +1 -1
- package/dist/src/overlays/toggle-tip/types.js +8 -0
- package/dist/src/overlays/toggle-tip/types.js.map +1 -1
- package/dist/src/runtime/collections/library.d.ts +10 -6
- package/dist/src/runtime/collections/library.d.ts.map +1 -1
- package/dist/src/runtime/collections/library.js +10 -6
- package/dist/src/runtime/collections/library.js.map +1 -1
- package/dist/src/runtime/display/bar-strip.d.ts +38 -10
- package/dist/src/runtime/display/bar-strip.d.ts.map +1 -1
- package/dist/src/runtime/display/bar-strip.js +12 -34
- package/dist/src/runtime/display/bar-strip.js.map +1 -1
- package/dist/src/runtime/feedback/status.d.ts +4 -2
- package/dist/src/runtime/feedback/status.d.ts.map +1 -1
- package/dist/src/runtime/feedback/status.js +4 -2
- package/dist/src/runtime/feedback/status.js.map +1 -1
- package/dist/src/runtime/layout/dock.d.ts +13 -8
- package/dist/src/runtime/layout/dock.d.ts.map +1 -1
- package/dist/src/runtime/layout/dock.js +13 -8
- package/dist/src/runtime/layout/dock.js.map +1 -1
- package/dist/src/runtime/layout/index.d.ts +1 -0
- package/dist/src/runtime/layout/index.d.ts.map +1 -1
- package/dist/src/runtime/layout/index.js +1 -0
- package/dist/src/runtime/layout/index.js.map +1 -1
- package/dist/src/runtime/layout/snap-grid.d.ts +68 -0
- package/dist/src/runtime/layout/snap-grid.d.ts.map +1 -0
- package/dist/src/runtime/layout/snap-grid.js +44 -0
- package/dist/src/runtime/layout/snap-grid.js.map +1 -0
- package/dist/src/runtime/navigation/app.d.ts +3 -1
- package/dist/src/runtime/navigation/app.d.ts.map +1 -1
- package/dist/src/runtime/navigation/app.js +3 -1
- package/dist/src/runtime/navigation/app.js.map +1 -1
- package/dist/test/collections/library.examples.d.ts +28 -0
- package/dist/test/collections/library.examples.d.ts.map +1 -1
- package/dist/test/collections/library.examples.js +183 -3
- package/dist/test/collections/library.examples.js.map +1 -1
- package/dist/test/display/bar-strip.examples.d.ts +6 -0
- package/dist/test/display/bar-strip.examples.d.ts.map +1 -1
- package/dist/test/display/bar-strip.examples.js +24 -1
- package/dist/test/display/bar-strip.examples.js.map +1 -1
- package/dist/test/feedback/status.examples.d.ts +1 -0
- package/dist/test/feedback/status.examples.d.ts.map +1 -1
- package/dist/test/feedback/status.examples.js +8 -0
- package/dist/test/feedback/status.examples.js.map +1 -1
- package/dist/test/layout/dock.examples.d.ts +14 -0
- package/dist/test/layout/dock.examples.d.ts.map +1 -1
- package/dist/test/layout/dock.examples.js +35 -0
- package/dist/test/layout/dock.examples.js.map +1 -1
- package/dist/test/layout/snap-grid.examples.d.ts +4 -0
- package/dist/test/layout/snap-grid.examples.d.ts.map +1 -0
- package/dist/test/layout/snap-grid.examples.js +252 -0
- package/dist/test/layout/snap-grid.examples.js.map +1 -0
- package/dist/test/navigation/app.examples.d.ts +6 -0
- package/dist/test/navigation/app.examples.d.ts.map +1 -1
- package/dist/test/navigation/app.examples.js +37 -2
- package/dist/test/navigation/app.examples.js.map +1 -1
- package/dist/test/navigation/nav-list.examples.d.ts +1 -0
- package/dist/test/navigation/nav-list.examples.d.ts.map +1 -1
- package/dist/test/navigation/nav-list.examples.js +21 -1
- package/dist/test/navigation/nav-list.examples.js.map +1 -1
- package/dist/test/overlays/dialog.examples.d.ts +1 -0
- package/dist/test/overlays/dialog.examples.d.ts.map +1 -1
- package/dist/test/overlays/dialog.examples.js +11 -0
- package/dist/test/overlays/dialog.examples.js.map +1 -1
- package/dist/test/overlays/drawer.examples.d.ts +1 -0
- package/dist/test/overlays/drawer.examples.d.ts.map +1 -1
- package/dist/test/overlays/drawer.examples.js +12 -0
- package/dist/test/overlays/drawer.examples.js.map +1 -1
- package/dist/test/overlays/hover-card.examples.d.ts +1 -0
- package/dist/test/overlays/hover-card.examples.d.ts.map +1 -1
- package/dist/test/overlays/hover-card.examples.js +10 -0
- package/dist/test/overlays/hover-card.examples.js.map +1 -1
- package/dist/test/overlays/popover.examples.d.ts +1 -0
- package/dist/test/overlays/popover.examples.d.ts.map +1 -1
- package/dist/test/overlays/popover.examples.js +12 -2
- package/dist/test/overlays/popover.examples.js.map +1 -1
- package/dist/test/overlays/toggle-tip.examples.d.ts +1 -0
- package/dist/test/overlays/toggle-tip.examples.d.ts.map +1 -1
- package/dist/test/overlays/toggle-tip.examples.js +11 -1
- package/dist/test/overlays/toggle-tip.examples.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/layout/snap-grid/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,510 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* SnapGrid — the 12-column snap grid of tiles (#989), its editing (#990),
|
|
7
|
+
* and the editing canvas's chrome (#995).
|
|
8
|
+
*
|
|
9
|
+
* `SnapGrid.Root(data, config)` lays the host's rows out as tiles in rows on a
|
|
10
|
+
* 12-column grid: the canvas under the Studio's builder, a published page, and
|
|
11
|
+
* — `variant: "wireframe"` — the page library's thumbnails. The host's
|
|
12
|
+
* collection is the source, as for the Sheet and the Plan: `cell` maps one row
|
|
13
|
+
* to its {@link SnapGridCellType}, reified once into an East function and called
|
|
14
|
+
* for every row, never spliced.
|
|
15
|
+
*
|
|
16
|
+
* Declared with `edit` and `editing`, the SnapGrid is the builder's canvas: a
|
|
17
|
+
* tile moves, resizes and drops as a draft of the shared editing session, and
|
|
18
|
+
* Apply sends every draft as one checked batch — from its history item, or
|
|
19
|
+
* when a host asks through a bound `apply` (#998).
|
|
20
|
+
*
|
|
21
|
+
* @packageDocumentation
|
|
22
|
+
*/
|
|
23
|
+
import { ArrayType, AsyncFunctionType, BlobType, BooleanType, DictType, East, Expr, FloatType, FunctionType, IntegerType, NullType, OptionType, StringType, StructType, isTypeEqual, none, some, toEastTypeValue, variant, } from "@elaraai/east";
|
|
24
|
+
import { UIComponentType } from "../../component.js";
|
|
25
|
+
import { resolveRowSource } from "../../contracts/source.js";
|
|
26
|
+
import { DragEventType, LibraryRefType } from "../../contracts/drag.js";
|
|
27
|
+
import { EditingApplyResultType, EditingChangeSetTypeFor, EditingDraftFieldType, EditingPatchEventTypeWith, EditingReadinessType, EditingWireApplyType, buildInlineApply, checkedEditingCallback, } from "../../contracts/editing.js";
|
|
28
|
+
import { SnapGridAlignType, SnapGridApplyBindType, SnapGridApplyStateType, SnapGridCellOf, SnapGridEditingOf, SnapGridPlaceType, SnapGridReadyEntryType, SnapGridRequestType, SnapGridRootOf, SnapGridSurfaceType, SnapGridUiBindType, SnapGridUiStateType, SnapGridVariantType, SnapGridViewBindType, SnapGridViewStateType, SnapGridWidthType, } from "./types.js";
|
|
29
|
+
export { SnapGridAlignType, SnapGridApplyBindType, SnapGridApplyStateType, SnapGridPlaceType, SnapGridRequestType, SnapGridSurfaceType, SnapGridUiBindType, SnapGridUiStateType, SnapGridVariantType, SnapGridViewBindType, SnapGridViewStateType, SnapGridWidthType, } from "./types.js";
|
|
30
|
+
// ============================================================================
|
|
31
|
+
// Types
|
|
32
|
+
// ============================================================================
|
|
33
|
+
/**
|
|
34
|
+
* One tile: its identity, where it sits, and what it shows.
|
|
35
|
+
*
|
|
36
|
+
* @remarks
|
|
37
|
+
* Rows order by their first appearance among the cells, and the cells of a
|
|
38
|
+
* row by their order in the SnapGrid's `data`.
|
|
39
|
+
*
|
|
40
|
+
* @property key - The cell's identity
|
|
41
|
+
* @property row - The key of the row it sits in
|
|
42
|
+
* @property span - Its width, in columns of 12
|
|
43
|
+
* @property height - Its height in px; `none` is its content's height
|
|
44
|
+
* @property minHeight - The least height a height drag leaves it, in px; `none` stops it at its content's height
|
|
45
|
+
* @property align - Where it sits in a taller row
|
|
46
|
+
* @property frame - Drawn in a tile frame, or bare
|
|
47
|
+
* @property label - Its name — the drag ghost's, the announcements' and the history's; `none` names it by its key
|
|
48
|
+
* @property icon - A Font Awesome solid icon name, which the editing canvas's selection bar shows beside its name
|
|
49
|
+
* @property meta - A line the selection bar shows after its name
|
|
50
|
+
* @property content - What it shows
|
|
51
|
+
*/
|
|
52
|
+
export const SnapGridCellType = SnapGridCellOf(UIComponentType);
|
|
53
|
+
/**
|
|
54
|
+
* A SnapGrid's editing declaration, on the wire (#990) — the shared session's
|
|
55
|
+
* fields, the entry fields a gesture writes, the drafted collection's cells,
|
|
56
|
+
* a dropped card's new entry and the author's readiness check.
|
|
57
|
+
*
|
|
58
|
+
* @internal
|
|
59
|
+
*/
|
|
60
|
+
export const SnapGridEditingType = SnapGridEditingOf(UIComponentType);
|
|
61
|
+
/**
|
|
62
|
+
* A SnapGrid's value — the named twin of the inline `SnapGrid` arm of
|
|
63
|
+
* `UIComponentType`, built by the same {@link SnapGridRootOf} over
|
|
64
|
+
* `UIComponentType`, where the arm's cells spell their content with the
|
|
65
|
+
* recursion node.
|
|
66
|
+
*
|
|
67
|
+
* @property cells - Every cell, in the order `data` holds them
|
|
68
|
+
* @property variant - Tiles (the default) or a wireframe
|
|
69
|
+
* @property width - The design width, a CSS length
|
|
70
|
+
* @property height - A pinned height, a CSS length; the grid scrolls within
|
|
71
|
+
* @property maxHeight - A height cap, a CSS length; the grid scrolls past it
|
|
72
|
+
* @property zoom - The scale the canvas draws at (`1.0` actual size)
|
|
73
|
+
* @property guides - Draw the column ruler and the column bands
|
|
74
|
+
* @property editing - The editing session (#990); `none` takes no gesture
|
|
75
|
+
* @property ui - The bound selection; `none` keeps it in the canvas
|
|
76
|
+
* @property view - The bound design width and zoom (#995); `none` keeps them in the canvas
|
|
77
|
+
* @property apply - The bound Apply request (#998); `none` takes none
|
|
78
|
+
* @property id - The drag surface's name in a drop's cell refs; `none` names one of its own
|
|
79
|
+
* @property sources - The library ids whose cards land on the canvas
|
|
80
|
+
* @property canDrop - The veto over a drop where the drag rests (the shared grammar)
|
|
81
|
+
* @property widths - The design widths the editing canvas's toolbar offers (#995)
|
|
82
|
+
* @property toolbar - The host's items in the editing canvas's toolbar: `start` leads the row, `end` closes it (#995)
|
|
83
|
+
* @property panes - The panes beside the editing canvas, under its toolbar (#995)
|
|
84
|
+
* @property surface - The editing canvas's frame (`card`, the default) or none (`shell`) (#995)
|
|
85
|
+
*/
|
|
86
|
+
export const SnapGridRootType = SnapGridRootOf(UIComponentType);
|
|
87
|
+
/**
|
|
88
|
+
* What a SnapGrid's `editing.onPatch` receives for rows of `R` (#990) — the
|
|
89
|
+
* shared patch event over the SnapGrid's drafts, which are whole entries
|
|
90
|
+
* (`Editing.Types.DraftField(R)`): every gesture writes a complete entry.
|
|
91
|
+
*
|
|
92
|
+
* @typeParam R - The row type
|
|
93
|
+
* @param entryType - The SnapGrid's row type
|
|
94
|
+
* @returns The patch event type
|
|
95
|
+
*/
|
|
96
|
+
export function SnapGridPatchEventTypeFor(entryType) {
|
|
97
|
+
return EditingPatchEventTypeWith(entryType, EditingDraftFieldType(entryType));
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Builds one cell's value, with the defaults filled in.
|
|
101
|
+
*
|
|
102
|
+
* @param fields - The cell's fields ({@link SnapGridCellFields})
|
|
103
|
+
* @returns The cell, a {@link SnapGridCellType} value
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```tsx
|
|
107
|
+
* import { ArrayType, East, IntegerType, StringType, StructType } from "@elaraai/east";
|
|
108
|
+
* import { SnapGrid, Stat, UIComponentType } from "@elaraai/east-ui";
|
|
109
|
+
*
|
|
110
|
+
* const Kpi = StructType({ id: StringType, row: StringType, span: IntegerType, label: StringType, value: IntegerType });
|
|
111
|
+
*
|
|
112
|
+
* const kpis = East.function([], UIComponentType, ($) => {
|
|
113
|
+
* const tiles = $.const([
|
|
114
|
+
* { id: "orders", row: "top", span: 6n, label: "Orders", value: 128n },
|
|
115
|
+
* { id: "returns", row: "top", span: 6n, label: "Returns", value: 4n },
|
|
116
|
+
* ], ArrayType(Kpi));
|
|
117
|
+
* return <SnapGrid data={tiles} cell={t => SnapGrid.cell({ key: t.id, row: t.row, span: t.span,
|
|
118
|
+
* content: <Stat label={t.label} value={t.value} /> })} />;
|
|
119
|
+
* });
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
function createCell(fields) {
|
|
123
|
+
return East.value({
|
|
124
|
+
key: fields.key,
|
|
125
|
+
row: fields.row,
|
|
126
|
+
span: fields.span,
|
|
127
|
+
height: fields.height ?? none,
|
|
128
|
+
minHeight: fields.minHeight ?? none,
|
|
129
|
+
align: typeof fields.align === "string" ? variant(fields.align, null) : (fields.align ?? variant("top", null)),
|
|
130
|
+
frame: fields.frame ?? true,
|
|
131
|
+
label: fields.label ?? none,
|
|
132
|
+
icon: fields.icon ?? none,
|
|
133
|
+
meta: fields.meta ?? none,
|
|
134
|
+
content: fields.content,
|
|
135
|
+
}, SnapGridCellType);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Builds a {@link SnapGridUiStateType} value — the seed of a bound `ui`, or
|
|
139
|
+
* what a host writes to it: a selection, and a change it asks of the editing
|
|
140
|
+
* canvas (#996).
|
|
141
|
+
*
|
|
142
|
+
* @param state - The selected tile's key, and a request; omitted, nothing selected and nothing asked
|
|
143
|
+
* @returns The state
|
|
144
|
+
*
|
|
145
|
+
* @example
|
|
146
|
+
* ```ts
|
|
147
|
+
* import { East, NullType, variant } from "@elaraai/east";
|
|
148
|
+
* import { SnapGrid, State } from "@elaraai/east-ui";
|
|
149
|
+
*
|
|
150
|
+
* const select = East.function([], NullType, ($) => {
|
|
151
|
+
* const ui = $.const(State.bind([SnapGrid.Types.UiState], "builder.selection", SnapGrid.uiState()));
|
|
152
|
+
* $(ui.write(SnapGrid.uiState({ selected: "revenue-trend" })));
|
|
153
|
+
* });
|
|
154
|
+
*
|
|
155
|
+
* // An inspector's edit: the canvas widens the tile to 8 columns, as one undoable gesture.
|
|
156
|
+
* const widen = East.function([], NullType, ($) => {
|
|
157
|
+
* const ui = $.const(State.bind([SnapGrid.Types.UiState], "builder.selection", SnapGrid.uiState()));
|
|
158
|
+
* $(ui.write(SnapGrid.uiState({
|
|
159
|
+
* selected: "revenue-trend",
|
|
160
|
+
* request: { key: "revenue-trend", change: variant("span", 8n) },
|
|
161
|
+
* })));
|
|
162
|
+
* });
|
|
163
|
+
* ```
|
|
164
|
+
*/
|
|
165
|
+
function createUiState(state) {
|
|
166
|
+
return East.value({
|
|
167
|
+
selected: state?.selected === undefined ? none : some(state.selected),
|
|
168
|
+
request: state?.request === undefined ? none : some(state.request),
|
|
169
|
+
}, SnapGridUiStateType);
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Builds a {@link SnapGridViewStateType} value — the seed of a bound `view`
|
|
173
|
+
* (#995).
|
|
174
|
+
*
|
|
175
|
+
* @param state - The design width and the zoom; omitted, the SnapGrid's own `width` and `zoom`
|
|
176
|
+
* @returns The state
|
|
177
|
+
*
|
|
178
|
+
* @example
|
|
179
|
+
* ```ts
|
|
180
|
+
* import { East, NullType } from "@elaraai/east";
|
|
181
|
+
* import { SnapGrid, State } from "@elaraai/east-ui";
|
|
182
|
+
*
|
|
183
|
+
* const tablet = East.function([], NullType, ($) => {
|
|
184
|
+
* const view = $.const(State.bind([SnapGrid.Types.ViewState], "builder.view", SnapGrid.viewState()));
|
|
185
|
+
* $(view.write(SnapGrid.viewState({ width: "1024px", zoom: 0.8 })));
|
|
186
|
+
* });
|
|
187
|
+
* ```
|
|
188
|
+
*/
|
|
189
|
+
function createViewState(state) {
|
|
190
|
+
return East.value({
|
|
191
|
+
width: state?.width === undefined ? none : some(state.width),
|
|
192
|
+
zoom: state?.zoom === undefined ? none : some(state.zoom),
|
|
193
|
+
}, SnapGridViewStateType);
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Creates a SnapGrid — the host's rows as tiles, in rows on a 12-column grid.
|
|
197
|
+
*
|
|
198
|
+
* @remarks
|
|
199
|
+
* Rows order by their first appearance among the cells, and the cells of a
|
|
200
|
+
* row by their order in `data`, a `Dict`'s by key. A row's cells sit left to
|
|
201
|
+
* right by span, with a gap between columns and between rows; a row whose
|
|
202
|
+
* spans pass 12 continues on a line below and never overlaps. A row is as
|
|
203
|
+
* tall as its tallest cell, and `align` places the shorter ones. Under a
|
|
204
|
+
* narrow container every cell takes the full width, in row order; under a
|
|
205
|
+
* medium one a span under 6 takes 6 and any other 12; from a wide one on, the
|
|
206
|
+
* spans declared.
|
|
207
|
+
*
|
|
208
|
+
* A framed tile has no header strip: the SnapGrid draws no chrome of its own and
|
|
209
|
+
* no outer border — the host draws the panel around it.
|
|
210
|
+
*
|
|
211
|
+
* With `edit` and `editing` (#990) it is an editing canvas over an `Array`
|
|
212
|
+
* source — the order of `data` is the order of its tiles, which a `Dict`
|
|
213
|
+
* cannot take: a tile is selected by a click, moved, resized, dropped from a
|
|
214
|
+
* library and removed, each gesture one draft of the shared editing session,
|
|
215
|
+
* and the history item in its toolbar undoes, redoes, discards and applies.
|
|
216
|
+
*
|
|
217
|
+
* The editing canvas is the builder's frame (#995): a toolbar across its
|
|
218
|
+
* width, then its `panes` beside a column holding the selection bar and the
|
|
219
|
+
* grid panel. The toolbar leads with the host's `toolbar.start` items, the
|
|
220
|
+
* grid chip and — once the source confirms an Apply — the time it was saved;
|
|
221
|
+
* it closes with the width readout, the zoom, the history item, the design
|
|
222
|
+
* `widths` and the host's `toolbar.end` items. The selection bar names the
|
|
223
|
+
* selected tile with its `icon`, `label` and `meta`.
|
|
224
|
+
*
|
|
225
|
+
* A pane beside the canvas works with it through the host's state (#996): it
|
|
226
|
+
* reads the rows the canvas draws, which `editing.onDrafted` hears, and asks
|
|
227
|
+
* for a change by writing a `request` to the bound `ui` — a span, a row, a
|
|
228
|
+
* height or an alignment, taken as one gesture of the session. A screen that
|
|
229
|
+
* must not leave drafts behind asks for an Apply through the bound `apply`
|
|
230
|
+
* (#998), and the canvas answers once its drafts land or cannot.
|
|
231
|
+
*
|
|
232
|
+
* @typeParam T - The `data` passed
|
|
233
|
+
* @param data - The rows: an `Array` or a `Dict`, inline or through a bound handle
|
|
234
|
+
* @param config - How a row becomes a cell, and how the SnapGrid is drawn and edited ({@link SnapGridConfig})
|
|
235
|
+
* @returns An East expression of type `UIComponentType`
|
|
236
|
+
* @throws {Error} When `data` is a paged source, or not an `Array` or a `Dict`; when the editing
|
|
237
|
+
* declaration is inconsistent — see {@link SnapGridEditConfig} and {@link SnapGridEditingConfig};
|
|
238
|
+
* or when the editing canvas's chrome — `view`, `apply`, `widths`, `toolbar`, `panes`, `surface` — is
|
|
239
|
+
* given without `editing`
|
|
240
|
+
*
|
|
241
|
+
* @example
|
|
242
|
+
* ```tsx
|
|
243
|
+
* import { ArrayType, East, IntegerType, StringType, StructType } from "@elaraai/east";
|
|
244
|
+
* import { SnapGrid, Stat, UIComponentType } from "@elaraai/east-ui";
|
|
245
|
+
*
|
|
246
|
+
* const Tile = StructType({ id: StringType, row: StringType, span: IntegerType, label: StringType, value: IntegerType });
|
|
247
|
+
*
|
|
248
|
+
* const page = East.function([], UIComponentType, ($) => {
|
|
249
|
+
* const tiles = $.const([
|
|
250
|
+
* { id: "orders", row: "kpis", span: 4n, label: "Orders", value: 128n },
|
|
251
|
+
* { id: "returns", row: "kpis", span: 4n, label: "Returns", value: 4n },
|
|
252
|
+
* { id: "late", row: "kpis", span: 4n, label: "Late", value: 9n },
|
|
253
|
+
* ], ArrayType(Tile));
|
|
254
|
+
* return <SnapGrid data={tiles} width="1440px"
|
|
255
|
+
* cell={t => SnapGrid.cell({ key: t.id, row: t.row, span: t.span, content: <Stat label={t.label} value={t.value} /> })} />;
|
|
256
|
+
* });
|
|
257
|
+
* ```
|
|
258
|
+
*/
|
|
259
|
+
function createSnapGrid(data, config) {
|
|
260
|
+
const resolved = resolveRowSource(data, "SnapGrid");
|
|
261
|
+
if (resolved.kind !== "inline") {
|
|
262
|
+
throw new Error("SnapGrid: a page's tiles are held whole — pass an Array or a Dict of rows, or a bound handle of one");
|
|
263
|
+
}
|
|
264
|
+
const collection = resolved.collectionType;
|
|
265
|
+
if (collection.type !== "Array" && collection.type !== "Dict") {
|
|
266
|
+
throw new Error(`SnapGrid: rows come from an Array or a Dict — got a ${collection.type}`);
|
|
267
|
+
}
|
|
268
|
+
if ((config.edit === undefined) !== (config.editing === undefined)) {
|
|
269
|
+
throw new Error("SnapGrid: `edit` names what a gesture writes into the rows and `editing` where the drafts go — " +
|
|
270
|
+
`give both, or neither (got only \`${config.edit !== undefined ? "edit" : "editing"}\`)`);
|
|
271
|
+
}
|
|
272
|
+
if (config.editing === undefined) {
|
|
273
|
+
const chrome = ["view", "apply", "widths", "toolbar", "panes", "surface"].filter((name) => config[name] !== undefined);
|
|
274
|
+
if (chrome.length > 0) {
|
|
275
|
+
throw new Error(`SnapGrid: ${chrome.map((name) => `\`${name}\``).join(", ")} dress the editing canvas — give ` +
|
|
276
|
+
"them with `edit` and `editing`, or leave them out of a page");
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
// Reified once (`shared/reify.ts`'s rule), then called for every row.
|
|
280
|
+
const toCell = East.function([resolved.elementType], SnapGridCellType, (_$, row) => config.cell(row));
|
|
281
|
+
const cells = collection.type === "Array"
|
|
282
|
+
? resolved.rows.map((_$, row) => toCell(row))
|
|
283
|
+
: resolved.rows.toArray((_$, row) => toCell(row));
|
|
284
|
+
const editing = config.edit !== undefined && config.editing !== undefined
|
|
285
|
+
? buildSnapGridEditing(resolved, config.edit, config.editing, toCell)
|
|
286
|
+
: undefined;
|
|
287
|
+
const gridVariant = config.variant;
|
|
288
|
+
// The cells' content is `UIComponentType` here and the recursion node in
|
|
289
|
+
// the arm — one East type, which TypeScript cannot see through.
|
|
290
|
+
return East.value(variant("SnapGrid", {
|
|
291
|
+
cells,
|
|
292
|
+
variant: gridVariant === undefined ? none
|
|
293
|
+
: some(typeof gridVariant === "string" ? variant(gridVariant, null) : gridVariant),
|
|
294
|
+
width: config.width === undefined ? none : some(config.width),
|
|
295
|
+
height: config.height === undefined ? none : some(config.height),
|
|
296
|
+
maxHeight: config.maxHeight === undefined ? none : some(config.maxHeight),
|
|
297
|
+
zoom: config.zoom === undefined ? none : some(config.zoom),
|
|
298
|
+
guides: config.guides ?? false,
|
|
299
|
+
editing: editing === undefined ? none : some(editing),
|
|
300
|
+
ui: config.ui === undefined ? none : some(East.value(config.ui, SnapGridUiBindType)),
|
|
301
|
+
view: config.view === undefined ? none : some(East.value(config.view, SnapGridViewBindType)),
|
|
302
|
+
apply: config.apply === undefined ? none : some(East.value(config.apply, SnapGridApplyBindType)),
|
|
303
|
+
id: config.id === undefined ? none : some(config.id),
|
|
304
|
+
sources: East.value(config.sources ?? [], ArrayType(StringType)),
|
|
305
|
+
canDrop: config.canDrop === undefined ? none : some(config.canDrop),
|
|
306
|
+
widths: East.value((config.widths ?? []).map((w) => ({
|
|
307
|
+
label: w.label,
|
|
308
|
+
icon: w.icon === undefined ? none : some(w.icon),
|
|
309
|
+
width: w.width,
|
|
310
|
+
})), ArrayType(SnapGridWidthType)),
|
|
311
|
+
toolbar: {
|
|
312
|
+
start: East.value(config.toolbar?.start ?? [], ArrayType(UIComponentType)),
|
|
313
|
+
end: East.value(config.toolbar?.end ?? [], ArrayType(UIComponentType)),
|
|
314
|
+
},
|
|
315
|
+
panes: {
|
|
316
|
+
start: config.panes?.start === undefined ? none : some(config.panes.start),
|
|
317
|
+
end: config.panes?.end === undefined ? none : some(config.panes.end),
|
|
318
|
+
},
|
|
319
|
+
surface: config.surface === undefined ? none
|
|
320
|
+
: some(typeof config.surface === "string" ? variant(config.surface, null) : config.surface),
|
|
321
|
+
}), UIComponentType);
|
|
322
|
+
}
|
|
323
|
+
// ============================================================================
|
|
324
|
+
// Editing (#990) — the canvas's side of the shared session
|
|
325
|
+
// ============================================================================
|
|
326
|
+
/**
|
|
327
|
+
* The SnapGrid's editing declaration (#990) — the shared session's fields over
|
|
328
|
+
* the source's rows, and the canvas's own: the fields a gesture writes, the
|
|
329
|
+
* cells of a drafted collection, a dropped card's new row and the author's
|
|
330
|
+
* readiness check.
|
|
331
|
+
*
|
|
332
|
+
* @remarks
|
|
333
|
+
* Everything crosses as bytes at the exact row type the wire names, so the arm
|
|
334
|
+
* stays closed. The source is an inline `Array`: its order is the order of the
|
|
335
|
+
* tiles, and a move is a placement in it.
|
|
336
|
+
*
|
|
337
|
+
* @param resolved - The resolved `data` — inline
|
|
338
|
+
* @param edit - The fields a gesture writes, and `create`
|
|
339
|
+
* @param input - The author's editing declaration
|
|
340
|
+
* @param toCell - The reified cell accessor
|
|
341
|
+
* @returns The editing declaration, on the wire
|
|
342
|
+
* @throws {Error} When the source is not an Array of structs, a named field is not one of the rows' at its type,
|
|
343
|
+
* the declaration is inconsistent, or a callback has another signature
|
|
344
|
+
*/
|
|
345
|
+
function buildSnapGridEditing(resolved, edit, input, toCell) {
|
|
346
|
+
if (resolved.kind !== "inline" || resolved.collectionType.type !== "Array") {
|
|
347
|
+
throw new Error("SnapGrid: editing places tiles by the order of `data`, so it takes an Array of rows — a Dict orders its " +
|
|
348
|
+
"entries by key, and a move could not place a tile");
|
|
349
|
+
}
|
|
350
|
+
const entryType = resolved.elementType;
|
|
351
|
+
if (entryType.type !== "Struct") {
|
|
352
|
+
throw new Error("SnapGrid: `edit` writes fields of the rows, so the rows must be structs");
|
|
353
|
+
}
|
|
354
|
+
// Each named field must be one of the rows', at the type a gesture writes.
|
|
355
|
+
const field = (name, type, what, words) => {
|
|
356
|
+
if (name === undefined)
|
|
357
|
+
return;
|
|
358
|
+
const at = entryType.fields[name];
|
|
359
|
+
if (at === undefined || !isTypeEqual(at, type)) {
|
|
360
|
+
throw new Error(`SnapGrid: edit.${what} names "${name}", which must be ${words} field of the rows`);
|
|
361
|
+
}
|
|
362
|
+
};
|
|
363
|
+
field(edit.key, StringType, "key", "a String");
|
|
364
|
+
field(edit.row, StringType, "row", "a String");
|
|
365
|
+
field(edit.span, IntegerType, "span", "an Integer");
|
|
366
|
+
field(edit.height, OptionType(IntegerType), "height", "an Option<Integer>");
|
|
367
|
+
field(edit.align, SnapGridAlignType, "align", "a SnapGrid.Types.Align");
|
|
368
|
+
if (input.onApply !== undefined && input.onUpdate !== undefined) {
|
|
369
|
+
throw new Error("SnapGrid: editing takes onApply or the inline onUpdate adapter, not both");
|
|
370
|
+
}
|
|
371
|
+
if (input.onUpdate !== undefined && resolved.live === undefined) {
|
|
372
|
+
throw new Error("SnapGrid: editing.onUpdate requires data={liveHandle}, so each batch reads the latest rows — pass the bound " +
|
|
373
|
+
"handle itself, or commit with onApply");
|
|
374
|
+
}
|
|
375
|
+
if (input.mode === "auto" && input.onApply === undefined && input.onUpdate === undefined) {
|
|
376
|
+
throw new Error("SnapGrid: editing.mode \"auto\" applies each ready gesture at once — it needs onApply or onUpdate to apply it with");
|
|
377
|
+
}
|
|
378
|
+
const rowsType = ArrayType(entryType);
|
|
379
|
+
const draftType = EditingDraftFieldType(entryType);
|
|
380
|
+
const batchType = EditingChangeSetTypeFor(entryType);
|
|
381
|
+
const eventType = EditingPatchEventTypeWith(entryType, draftType);
|
|
382
|
+
const rows = resolved.rows;
|
|
383
|
+
const keyField = edit.key;
|
|
384
|
+
const idOf = East.function([entryType], StringType, (_$, entry) => entry[keyField]);
|
|
385
|
+
// One row read back by its identity — the source is inline, so the offset
|
|
386
|
+
// the session passes is not needed.
|
|
387
|
+
const readEntry = East.function([StringType, IntegerType], OptionType(BlobType), ($, id, _offset) => {
|
|
388
|
+
const all = $.const(rows);
|
|
389
|
+
const identity = $.const(idOf);
|
|
390
|
+
return all.firstMap(($2, entry) => identity(entry).equal(id).ifElse(() => some(East.Blob.encodeBeast(entry, "v2")), () => none));
|
|
391
|
+
});
|
|
392
|
+
// The cells of a whole drafted collection — the one `Editing.apply` leaves.
|
|
393
|
+
const derive = East.function([BlobType], ArrayType(SnapGridCellType), ($, bytes) => {
|
|
394
|
+
const cellOf = $.const(toCell);
|
|
395
|
+
const drafted = $.const(bytes.decodeBeast(rowsType, "v2"));
|
|
396
|
+
return drafted.map((_$2, row) => cellOf(row));
|
|
397
|
+
});
|
|
398
|
+
// A dropped card's new row, at the fresh key and the row it lands in.
|
|
399
|
+
const author = edit.create;
|
|
400
|
+
const create = author === undefined ? undefined : East.function([LibraryRefType, SnapGridPlaceType], BlobType, ($, card, at) => {
|
|
401
|
+
const entry = $.const(author($, card, at), entryType);
|
|
402
|
+
return East.Blob.encodeBeast(entry, "v2");
|
|
403
|
+
});
|
|
404
|
+
// The author's readiness check, one result per drafted row, in order. A
|
|
405
|
+
// check that throws refuses its own row alone.
|
|
406
|
+
const authorReady = input.ready === undefined ? undefined : checkedEditingCallback("SnapGrid", input.ready, [entryType], EditingReadinessType, "ready", false, "over one of this SnapGrid's rows (R), returning Editing.Types.Readiness");
|
|
407
|
+
const ready = authorReady === undefined ? undefined : East.function([ArrayType(SnapGridReadyEntryType)], ArrayType(EditingReadinessType), ($, batch) => {
|
|
408
|
+
const check = $.const(authorReady);
|
|
409
|
+
return batch.map(($2, item) => {
|
|
410
|
+
const result = $2.let(variant("ready", null), EditingReadinessType);
|
|
411
|
+
$2.try(($3) => {
|
|
412
|
+
$3.assign(result, check(item.entry.decodeBeast(entryType, "v2")));
|
|
413
|
+
}).catch(($3, message) => {
|
|
414
|
+
$3.assign(result, variant("invalid", [{ field: "", message: East.str `Readiness check failed: ${message}` }]));
|
|
415
|
+
});
|
|
416
|
+
return result;
|
|
417
|
+
});
|
|
418
|
+
});
|
|
419
|
+
// The authoritative apply: the author's, or the inline adapter over the
|
|
420
|
+
// live handle's latest rows (#879's protocol).
|
|
421
|
+
const live = resolved.kind === "inline" ? resolved.live : undefined;
|
|
422
|
+
const reader = live !== undefined
|
|
423
|
+
? live.read
|
|
424
|
+
: undefined;
|
|
425
|
+
const authorApply = input.onApply === undefined ? undefined : checkedEditingCallback("SnapGrid", input.onApply, [batchType], EditingApplyResultType, "onApply", true, "over Editing.Types.ChangeSet(R) — this SnapGrid's row type — returning Editing.Types.ApplyResult");
|
|
426
|
+
const sourceId = reader !== undefined ? East.print(East.Blob.encodeBeast(reader, "v2"))
|
|
427
|
+
: authorApply !== undefined ? East.print(East.Blob.encodeBeast(authorApply, "v2"))
|
|
428
|
+
: East.value("readonly-inline", StringType);
|
|
429
|
+
let onApply;
|
|
430
|
+
if (input.onUpdate !== undefined && reader !== undefined) {
|
|
431
|
+
const writer = checkedEditingCallback("SnapGrid", input.onUpdate, [rowsType], NullType, "onUpdate", false, "over the whole Array<R> the batch leaves, returning Null");
|
|
432
|
+
onApply = East.value(variant("sync", buildInlineApply(entryType, keyField, sourceId, reader, writer)), EditingWireApplyType);
|
|
433
|
+
}
|
|
434
|
+
else if (authorApply !== undefined) {
|
|
435
|
+
const typedBatch = batchType;
|
|
436
|
+
if (Expr.type(authorApply).type === "AsyncFunction") {
|
|
437
|
+
const fn = authorApply;
|
|
438
|
+
onApply = East.value(variant("async", East.asyncFunction([BlobType], EditingApplyResultType, ($, blob) => {
|
|
439
|
+
const apply = $.const(fn);
|
|
440
|
+
return apply(blob.decodeBeast(typedBatch, "v2"));
|
|
441
|
+
})), EditingWireApplyType);
|
|
442
|
+
}
|
|
443
|
+
else {
|
|
444
|
+
const fn = authorApply;
|
|
445
|
+
onApply = East.value(variant("sync", East.function([BlobType], EditingApplyResultType, ($, blob) => {
|
|
446
|
+
const apply = $.const(fn);
|
|
447
|
+
return apply(blob.decodeBeast(typedBatch, "v2"));
|
|
448
|
+
})), EditingWireApplyType);
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
const authorPatch = input.onPatch === undefined ? undefined : checkedEditingCallback("SnapGrid", input.onPatch, [eventType], NullType, "onPatch", false, "over SnapGrid.Types.PatchEvent(R), returning Null");
|
|
452
|
+
const onPatch = authorPatch === undefined ? undefined : East.function([BlobType], NullType, ($, blob) => {
|
|
453
|
+
const observe = $.const(authorPatch);
|
|
454
|
+
$(observe(blob.decodeBeast(eventType, "v2")));
|
|
455
|
+
});
|
|
456
|
+
// The rows the canvas draws, heard whole — a pane beside it reads them (#996).
|
|
457
|
+
const authorDrafted = input.onDrafted === undefined ? undefined : checkedEditingCallback("SnapGrid", input.onDrafted, [rowsType], NullType, "onDrafted", false, "over the whole Array<R> the canvas draws, returning Null");
|
|
458
|
+
const onDrafted = authorDrafted === undefined ? undefined : East.function([BlobType], NullType, ($, blob) => {
|
|
459
|
+
const hear = $.const(authorDrafted);
|
|
460
|
+
$(hear(blob.decodeBeast(rowsType, "v2")));
|
|
461
|
+
});
|
|
462
|
+
return East.value({
|
|
463
|
+
sourceId,
|
|
464
|
+
entryType: toEastTypeValue(entryType),
|
|
465
|
+
idField: some(keyField),
|
|
466
|
+
draftType: toEastTypeValue(draftType),
|
|
467
|
+
children: none,
|
|
468
|
+
keyType: none,
|
|
469
|
+
snapshot: some(East.Blob.encodeBeast(rows, "v2")),
|
|
470
|
+
readEntry,
|
|
471
|
+
onPatch: onPatch !== undefined ? some(onPatch) : none,
|
|
472
|
+
onApply: onApply !== undefined ? some(onApply) : none,
|
|
473
|
+
mode: variant(input.mode ?? "batch", null),
|
|
474
|
+
fields: {
|
|
475
|
+
key: keyField, row: edit.row, span: edit.span,
|
|
476
|
+
height: edit.height !== undefined ? some(edit.height) : none,
|
|
477
|
+
align: edit.align !== undefined ? some(edit.align) : none,
|
|
478
|
+
},
|
|
479
|
+
derive,
|
|
480
|
+
create: create !== undefined ? some(create) : none,
|
|
481
|
+
ready: ready !== undefined ? some(ready) : none,
|
|
482
|
+
onDrafted: onDrafted !== undefined ? some(onDrafted) : none,
|
|
483
|
+
}, SnapGridEditingType);
|
|
484
|
+
}
|
|
485
|
+
/**
|
|
486
|
+
* SnapGrid — the host's rows as tiles, in rows on a 12-column grid: the Studio's
|
|
487
|
+
* canvas, a published page, and the page library's wireframe thumbnails.
|
|
488
|
+
*/
|
|
489
|
+
export const SnapGrid = {
|
|
490
|
+
Root: createSnapGrid,
|
|
491
|
+
cell: createCell,
|
|
492
|
+
uiState: createUiState,
|
|
493
|
+
viewState: createViewState,
|
|
494
|
+
Types: {
|
|
495
|
+
Root: SnapGridRootType,
|
|
496
|
+
Cell: SnapGridCellType,
|
|
497
|
+
Align: SnapGridAlignType,
|
|
498
|
+
Variant: SnapGridVariantType,
|
|
499
|
+
UiState: SnapGridUiStateType,
|
|
500
|
+
Request: SnapGridRequestType,
|
|
501
|
+
ViewState: SnapGridViewStateType,
|
|
502
|
+
ApplyState: SnapGridApplyStateType,
|
|
503
|
+
Width: SnapGridWidthType,
|
|
504
|
+
Surface: SnapGridSurfaceType,
|
|
505
|
+
Place: SnapGridPlaceType,
|
|
506
|
+
PatchEvent: SnapGridPatchEventTypeFor,
|
|
507
|
+
Editing: SnapGridEditingType,
|
|
508
|
+
},
|
|
509
|
+
};
|
|
510
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/layout/snap-grid/index.ts"],"names":[],"mappings":"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"}
|