@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.
Files changed (198) hide show
  1. package/dist/src/charts/chart/index.d.ts +7 -4
  2. package/dist/src/charts/chart/index.d.ts.map +1 -1
  3. package/dist/src/charts/chart/index.js +3 -1
  4. package/dist/src/charts/chart/index.js.map +1 -1
  5. package/dist/src/collections/library/index.d.ts +1182 -37
  6. package/dist/src/collections/library/index.d.ts.map +1 -1
  7. package/dist/src/collections/library/index.js +191 -13
  8. package/dist/src/collections/library/index.js.map +1 -1
  9. package/dist/src/collections/library/types.d.ts +376 -180
  10. package/dist/src/collections/library/types.d.ts.map +1 -1
  11. package/dist/src/collections/library/types.js +188 -91
  12. package/dist/src/collections/library/types.js.map +1 -1
  13. package/dist/src/collections/plan/root.d.ts.map +1 -1
  14. package/dist/src/collections/plan/root.js +5 -30
  15. package/dist/src/collections/plan/root.js.map +1 -1
  16. package/dist/src/component.d.ts +490 -11
  17. package/dist/src/component.d.ts.map +1 -1
  18. package/dist/src/component.js +17 -3
  19. package/dist/src/component.js.map +1 -1
  20. package/dist/src/contracts/drag.d.ts.map +1 -1
  21. package/dist/src/contracts/drag.js +1 -0
  22. package/dist/src/contracts/drag.js.map +1 -1
  23. package/dist/src/contracts/editing.d.ts +19 -0
  24. package/dist/src/contracts/editing.d.ts.map +1 -1
  25. package/dist/src/contracts/editing.js +31 -1
  26. package/dist/src/contracts/editing.js.map +1 -1
  27. package/dist/src/display/bar-strip/index.d.ts +39 -6
  28. package/dist/src/display/bar-strip/index.d.ts.map +1 -1
  29. package/dist/src/display/bar-strip/index.js +16 -38
  30. package/dist/src/display/bar-strip/index.js.map +1 -1
  31. package/dist/src/display/bar-strip/types.d.ts +17 -1
  32. package/dist/src/display/bar-strip/types.d.ts.map +1 -1
  33. package/dist/src/display/bar-strip/types.js.map +1 -1
  34. package/dist/src/feedback/status/index.d.ts +10 -2
  35. package/dist/src/feedback/status/index.d.ts.map +1 -1
  36. package/dist/src/feedback/status/index.js +8 -3
  37. package/dist/src/feedback/status/index.js.map +1 -1
  38. package/dist/src/index.d.ts +2 -1
  39. package/dist/src/index.d.ts.map +1 -1
  40. package/dist/src/index.js +1 -1
  41. package/dist/src/index.js.map +1 -1
  42. package/dist/src/internal.d.ts +2 -1
  43. package/dist/src/internal.d.ts.map +1 -1
  44. package/dist/src/internal.js +1 -1
  45. package/dist/src/internal.js.map +1 -1
  46. package/dist/src/layout/dock/index.d.ts +58 -16
  47. package/dist/src/layout/dock/index.d.ts.map +1 -1
  48. package/dist/src/layout/dock/index.js +48 -13
  49. package/dist/src/layout/dock/index.js.map +1 -1
  50. package/dist/src/layout/dock/types.d.ts +62 -10
  51. package/dist/src/layout/dock/types.d.ts.map +1 -1
  52. package/dist/src/layout/dock/types.js +21 -4
  53. package/dist/src/layout/dock/types.js.map +1 -1
  54. package/dist/src/layout/index.d.ts +1 -0
  55. package/dist/src/layout/index.d.ts.map +1 -1
  56. package/dist/src/layout/index.js +1 -0
  57. package/dist/src/layout/index.js.map +1 -1
  58. package/dist/src/layout/snap-grid/index.d.ts +1291 -0
  59. package/dist/src/layout/snap-grid/index.d.ts.map +1 -0
  60. package/dist/src/layout/snap-grid/index.js +510 -0
  61. package/dist/src/layout/snap-grid/index.js.map +1 -0
  62. package/dist/src/layout/snap-grid/types.d.ts +1046 -0
  63. package/dist/src/layout/snap-grid/types.d.ts.map +1 -0
  64. package/dist/src/layout/snap-grid/types.js +371 -0
  65. package/dist/src/layout/snap-grid/types.js.map +1 -0
  66. package/dist/src/navigation/app/index.d.ts +15 -0
  67. package/dist/src/navigation/app/index.d.ts.map +1 -1
  68. package/dist/src/navigation/app/index.js +2 -2
  69. package/dist/src/navigation/app/index.js.map +1 -1
  70. package/dist/src/navigation/nav-list/index.d.ts +5 -3
  71. package/dist/src/navigation/nav-list/index.d.ts.map +1 -1
  72. package/dist/src/navigation/nav-list/index.js +5 -3
  73. package/dist/src/navigation/nav-list/index.js.map +1 -1
  74. package/dist/src/overlays/action-bar/index.d.ts +9 -0
  75. package/dist/src/overlays/action-bar/index.d.ts.map +1 -1
  76. package/dist/src/overlays/action-bar/index.js +11 -1
  77. package/dist/src/overlays/action-bar/index.js.map +1 -1
  78. package/dist/src/overlays/action-bar/types.d.ts +11 -7
  79. package/dist/src/overlays/action-bar/types.d.ts.map +1 -1
  80. package/dist/src/overlays/action-bar/types.js +8 -1
  81. package/dist/src/overlays/action-bar/types.js.map +1 -1
  82. package/dist/src/overlays/dialog/index.d.ts +16 -0
  83. package/dist/src/overlays/dialog/index.d.ts.map +1 -1
  84. package/dist/src/overlays/dialog/index.js +18 -0
  85. package/dist/src/overlays/dialog/index.js.map +1 -1
  86. package/dist/src/overlays/dialog/types.d.ts +18 -11
  87. package/dist/src/overlays/dialog/types.d.ts.map +1 -1
  88. package/dist/src/overlays/dialog/types.js +12 -0
  89. package/dist/src/overlays/dialog/types.js.map +1 -1
  90. package/dist/src/overlays/drawer/index.d.ts +12 -0
  91. package/dist/src/overlays/drawer/index.d.ts.map +1 -1
  92. package/dist/src/overlays/drawer/index.js +14 -0
  93. package/dist/src/overlays/drawer/index.js.map +1 -1
  94. package/dist/src/overlays/drawer/types.d.ts +13 -1
  95. package/dist/src/overlays/drawer/types.d.ts.map +1 -1
  96. package/dist/src/overlays/drawer/types.js +12 -0
  97. package/dist/src/overlays/drawer/types.js.map +1 -1
  98. package/dist/src/overlays/hover-card/index.d.ts +9 -0
  99. package/dist/src/overlays/hover-card/index.d.ts.map +1 -1
  100. package/dist/src/overlays/hover-card/index.js +12 -1
  101. package/dist/src/overlays/hover-card/index.js.map +1 -1
  102. package/dist/src/overlays/hover-card/types.d.ts +9 -1
  103. package/dist/src/overlays/hover-card/types.d.ts.map +1 -1
  104. package/dist/src/overlays/hover-card/types.js +8 -0
  105. package/dist/src/overlays/hover-card/types.js.map +1 -1
  106. package/dist/src/overlays/popover/index.d.ts +15 -0
  107. package/dist/src/overlays/popover/index.d.ts.map +1 -1
  108. package/dist/src/overlays/popover/index.js +19 -1
  109. package/dist/src/overlays/popover/index.js.map +1 -1
  110. package/dist/src/overlays/popover/types.d.ts +19 -5
  111. package/dist/src/overlays/popover/types.d.ts.map +1 -1
  112. package/dist/src/overlays/popover/types.js +14 -0
  113. package/dist/src/overlays/popover/types.js.map +1 -1
  114. package/dist/src/overlays/toggle-tip/index.d.ts +9 -0
  115. package/dist/src/overlays/toggle-tip/index.d.ts.map +1 -1
  116. package/dist/src/overlays/toggle-tip/index.js +12 -1
  117. package/dist/src/overlays/toggle-tip/index.js.map +1 -1
  118. package/dist/src/overlays/toggle-tip/types.d.ts +9 -1
  119. package/dist/src/overlays/toggle-tip/types.d.ts.map +1 -1
  120. package/dist/src/overlays/toggle-tip/types.js +8 -0
  121. package/dist/src/overlays/toggle-tip/types.js.map +1 -1
  122. package/dist/src/runtime/collections/library.d.ts +10 -6
  123. package/dist/src/runtime/collections/library.d.ts.map +1 -1
  124. package/dist/src/runtime/collections/library.js +10 -6
  125. package/dist/src/runtime/collections/library.js.map +1 -1
  126. package/dist/src/runtime/display/bar-strip.d.ts +38 -10
  127. package/dist/src/runtime/display/bar-strip.d.ts.map +1 -1
  128. package/dist/src/runtime/display/bar-strip.js +12 -34
  129. package/dist/src/runtime/display/bar-strip.js.map +1 -1
  130. package/dist/src/runtime/feedback/status.d.ts +4 -2
  131. package/dist/src/runtime/feedback/status.d.ts.map +1 -1
  132. package/dist/src/runtime/feedback/status.js +4 -2
  133. package/dist/src/runtime/feedback/status.js.map +1 -1
  134. package/dist/src/runtime/layout/dock.d.ts +13 -8
  135. package/dist/src/runtime/layout/dock.d.ts.map +1 -1
  136. package/dist/src/runtime/layout/dock.js +13 -8
  137. package/dist/src/runtime/layout/dock.js.map +1 -1
  138. package/dist/src/runtime/layout/index.d.ts +1 -0
  139. package/dist/src/runtime/layout/index.d.ts.map +1 -1
  140. package/dist/src/runtime/layout/index.js +1 -0
  141. package/dist/src/runtime/layout/index.js.map +1 -1
  142. package/dist/src/runtime/layout/snap-grid.d.ts +68 -0
  143. package/dist/src/runtime/layout/snap-grid.d.ts.map +1 -0
  144. package/dist/src/runtime/layout/snap-grid.js +44 -0
  145. package/dist/src/runtime/layout/snap-grid.js.map +1 -0
  146. package/dist/src/runtime/navigation/app.d.ts +3 -1
  147. package/dist/src/runtime/navigation/app.d.ts.map +1 -1
  148. package/dist/src/runtime/navigation/app.js +3 -1
  149. package/dist/src/runtime/navigation/app.js.map +1 -1
  150. package/dist/test/collections/library.examples.d.ts +28 -0
  151. package/dist/test/collections/library.examples.d.ts.map +1 -1
  152. package/dist/test/collections/library.examples.js +183 -3
  153. package/dist/test/collections/library.examples.js.map +1 -1
  154. package/dist/test/display/bar-strip.examples.d.ts +6 -0
  155. package/dist/test/display/bar-strip.examples.d.ts.map +1 -1
  156. package/dist/test/display/bar-strip.examples.js +24 -1
  157. package/dist/test/display/bar-strip.examples.js.map +1 -1
  158. package/dist/test/feedback/status.examples.d.ts +1 -0
  159. package/dist/test/feedback/status.examples.d.ts.map +1 -1
  160. package/dist/test/feedback/status.examples.js +8 -0
  161. package/dist/test/feedback/status.examples.js.map +1 -1
  162. package/dist/test/layout/dock.examples.d.ts +14 -0
  163. package/dist/test/layout/dock.examples.d.ts.map +1 -1
  164. package/dist/test/layout/dock.examples.js +35 -0
  165. package/dist/test/layout/dock.examples.js.map +1 -1
  166. package/dist/test/layout/snap-grid.examples.d.ts +4 -0
  167. package/dist/test/layout/snap-grid.examples.d.ts.map +1 -0
  168. package/dist/test/layout/snap-grid.examples.js +252 -0
  169. package/dist/test/layout/snap-grid.examples.js.map +1 -0
  170. package/dist/test/navigation/app.examples.d.ts +6 -0
  171. package/dist/test/navigation/app.examples.d.ts.map +1 -1
  172. package/dist/test/navigation/app.examples.js +37 -2
  173. package/dist/test/navigation/app.examples.js.map +1 -1
  174. package/dist/test/navigation/nav-list.examples.d.ts +1 -0
  175. package/dist/test/navigation/nav-list.examples.d.ts.map +1 -1
  176. package/dist/test/navigation/nav-list.examples.js +21 -1
  177. package/dist/test/navigation/nav-list.examples.js.map +1 -1
  178. package/dist/test/overlays/dialog.examples.d.ts +1 -0
  179. package/dist/test/overlays/dialog.examples.d.ts.map +1 -1
  180. package/dist/test/overlays/dialog.examples.js +11 -0
  181. package/dist/test/overlays/dialog.examples.js.map +1 -1
  182. package/dist/test/overlays/drawer.examples.d.ts +1 -0
  183. package/dist/test/overlays/drawer.examples.d.ts.map +1 -1
  184. package/dist/test/overlays/drawer.examples.js +12 -0
  185. package/dist/test/overlays/drawer.examples.js.map +1 -1
  186. package/dist/test/overlays/hover-card.examples.d.ts +1 -0
  187. package/dist/test/overlays/hover-card.examples.d.ts.map +1 -1
  188. package/dist/test/overlays/hover-card.examples.js +10 -0
  189. package/dist/test/overlays/hover-card.examples.js.map +1 -1
  190. package/dist/test/overlays/popover.examples.d.ts +1 -0
  191. package/dist/test/overlays/popover.examples.d.ts.map +1 -1
  192. package/dist/test/overlays/popover.examples.js +12 -2
  193. package/dist/test/overlays/popover.examples.js.map +1 -1
  194. package/dist/test/overlays/toggle-tip.examples.d.ts +1 -0
  195. package/dist/test/overlays/toggle-tip.examples.d.ts.map +1 -1
  196. package/dist/test/overlays/toggle-tip.examples.js +11 -1
  197. package/dist/test/overlays/toggle-tip.examples.js.map +1 -1
  198. 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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"}