@toclocoinc/lattice-grid 1.68.0 → 1.68.2

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 (164) hide show
  1. package/README.md +26 -1
  2. package/angular/fesm2022/toclocoinc-lattice-grid-angular.mjs +1 -0
  3. package/angular/package.json +1 -1
  4. package/docs/API.html +8058 -3962
  5. package/docs/api-detail.html +101 -4
  6. package/lattice-grid.d.ts +5917 -78
  7. package/lattice-grid.esm.min.js +197 -39
  8. package/lattice-grid.min.cjs +197 -39
  9. package/lattice-grid.min.js +197 -39
  10. package/modules/ai.d.ts +172 -11
  11. package/modules/ai.esm.min.js +3 -3
  12. package/modules/ai.min.cjs +3 -3
  13. package/modules/ai.min.js +3 -3
  14. package/modules/angular.d.ts +1 -1
  15. package/modules/angular.esm.min.js +3 -3
  16. package/modules/angular.min.cjs +3 -3
  17. package/modules/angular.min.js +3 -3
  18. package/modules/chart-alluvial.d.ts +1 -1
  19. package/modules/chart-alluvial.esm.min.js +1 -1
  20. package/modules/chart-alluvial.min.cjs +1 -1
  21. package/modules/chart-alluvial.min.js +1 -1
  22. package/modules/chart-arc.d.ts +1 -1
  23. package/modules/chart-arc.esm.min.js +1 -1
  24. package/modules/chart-arc.min.cjs +1 -1
  25. package/modules/chart-arc.min.js +1 -1
  26. package/modules/chart-bubblemap.d.ts +1 -1
  27. package/modules/chart-bubblemap.esm.min.js +1 -1
  28. package/modules/chart-bubblemap.min.cjs +1 -1
  29. package/modules/chart-bubblemap.min.js +1 -1
  30. package/modules/chart-bump.d.ts +1 -1
  31. package/modules/chart-bump.esm.min.js +1 -1
  32. package/modules/chart-bump.min.cjs +1 -1
  33. package/modules/chart-bump.min.js +1 -1
  34. package/modules/chart-calendar.d.ts +1 -1
  35. package/modules/chart-calendar.esm.min.js +1 -1
  36. package/modules/chart-calendar.min.cjs +1 -1
  37. package/modules/chart-calendar.min.js +1 -1
  38. package/modules/chart-decomposition.d.ts +1 -1
  39. package/modules/chart-decomposition.esm.min.js +1 -1
  40. package/modules/chart-decomposition.min.cjs +1 -1
  41. package/modules/chart-decomposition.min.js +1 -1
  42. package/modules/chart-diverging.d.ts +1 -1
  43. package/modules/chart-diverging.esm.min.js +1 -1
  44. package/modules/chart-diverging.min.cjs +1 -1
  45. package/modules/chart-diverging.min.js +1 -1
  46. package/modules/chart-dumbbell.d.ts +1 -1
  47. package/modules/chart-dumbbell.esm.min.js +1 -1
  48. package/modules/chart-dumbbell.min.cjs +1 -1
  49. package/modules/chart-dumbbell.min.js +1 -1
  50. package/modules/chart-fan.d.ts +1 -1
  51. package/modules/chart-fan.esm.min.js +1 -1
  52. package/modules/chart-fan.min.cjs +1 -1
  53. package/modules/chart-fan.min.js +1 -1
  54. package/modules/chart-hexbin.d.ts +1 -1
  55. package/modules/chart-hexbin.esm.min.js +1 -1
  56. package/modules/chart-hexbin.min.cjs +1 -1
  57. package/modules/chart-hexbin.min.js +1 -1
  58. package/modules/chart-hexmap.d.ts +1 -1
  59. package/modules/chart-hexmap.esm.min.js +1 -1
  60. package/modules/chart-hexmap.min.cjs +1 -1
  61. package/modules/chart-hexmap.min.js +1 -1
  62. package/modules/chart-icicle.d.ts +1 -1
  63. package/modules/chart-icicle.esm.min.js +1 -1
  64. package/modules/chart-icicle.min.cjs +1 -1
  65. package/modules/chart-icicle.min.js +1 -1
  66. package/modules/chart-markermap.d.ts +1 -1
  67. package/modules/chart-markermap.esm.min.js +1 -1
  68. package/modules/chart-markermap.min.cjs +1 -1
  69. package/modules/chart-markermap.min.js +1 -1
  70. package/modules/chart-parallel.d.ts +1 -1
  71. package/modules/chart-parallel.esm.min.js +1 -1
  72. package/modules/chart-parallel.min.cjs +1 -1
  73. package/modules/chart-parallel.min.js +1 -1
  74. package/modules/chart-ridgeline.d.ts +1 -1
  75. package/modules/chart-ridgeline.esm.min.js +1 -1
  76. package/modules/chart-ridgeline.min.cjs +1 -1
  77. package/modules/chart-ridgeline.min.js +1 -1
  78. package/modules/chart-roc.d.ts +1 -1
  79. package/modules/chart-roc.esm.min.js +1 -1
  80. package/modules/chart-roc.min.cjs +1 -1
  81. package/modules/chart-roc.min.js +1 -1
  82. package/modules/chart-slope.d.ts +1 -1
  83. package/modules/chart-slope.esm.min.js +1 -1
  84. package/modules/chart-slope.min.cjs +1 -1
  85. package/modules/chart-slope.min.js +1 -1
  86. package/modules/chart-splom.d.ts +1 -1
  87. package/modules/chart-splom.esm.min.js +1 -1
  88. package/modules/chart-splom.min.cjs +1 -1
  89. package/modules/chart-splom.min.js +1 -1
  90. package/modules/chart-waffle.d.ts +1 -1
  91. package/modules/chart-waffle.esm.min.js +1 -1
  92. package/modules/chart-waffle.min.cjs +1 -1
  93. package/modules/chart-waffle.min.js +1 -1
  94. package/modules/charts.d.ts +16 -1
  95. package/modules/charts.esm.min.js +23 -16
  96. package/modules/charts.min.cjs +23 -16
  97. package/modules/charts.min.js +23 -16
  98. package/modules/data-router.d.ts +259 -3
  99. package/modules/data-router.esm.min.js +9 -4
  100. package/modules/data-router.min.cjs +9 -4
  101. package/modules/data-router.min.js +9 -4
  102. package/modules/devtools.d.ts +1 -1
  103. package/modules/devtools.esm.min.js +1 -1
  104. package/modules/devtools.min.cjs +1 -1
  105. package/modules/devtools.min.js +1 -1
  106. package/modules/dhtmlx-compat.d.ts +1 -1
  107. package/modules/dhtmlx-compat.esm.min.js +3 -3
  108. package/modules/dhtmlx-compat.min.cjs +3 -3
  109. package/modules/dhtmlx-compat.min.js +3 -3
  110. package/modules/gantt.d.ts +563 -12
  111. package/modules/gantt.esm.min.js +8 -4
  112. package/modules/gantt.min.cjs +8 -4
  113. package/modules/gantt.min.js +8 -4
  114. package/modules/geo-europe-nuts.d.ts +1 -1
  115. package/modules/geo-europe-nuts.esm.min.js +1 -1
  116. package/modules/geo-uk.d.ts +1 -1
  117. package/modules/geo-uk.esm.min.js +1 -1
  118. package/modules/geo-us-states.d.ts +1 -1
  119. package/modules/geo-us-states.esm.min.js +1 -1
  120. package/modules/geo-world-110m.d.ts +1 -1
  121. package/modules/geo-world-110m.esm.min.js +1 -1
  122. package/modules/geo-world-50m.d.ts +1 -1
  123. package/modules/geo-world-50m.esm.min.js +1 -1
  124. package/modules/htmx.d.ts +1 -1
  125. package/modules/htmx.esm.min.js +197 -39
  126. package/modules/htmx.min.cjs +197 -39
  127. package/modules/htmx.min.js +197 -39
  128. package/modules/kanban.d.ts +687 -4
  129. package/modules/kanban.esm.min.js +3 -3
  130. package/modules/kanban.min.cjs +3 -3
  131. package/modules/kanban.min.js +3 -3
  132. package/modules/kpi.d.ts +237 -3
  133. package/modules/kpi.esm.min.js +4 -4
  134. package/modules/kpi.min.cjs +4 -4
  135. package/modules/kpi.min.js +4 -4
  136. package/modules/layout.d.ts +249 -7
  137. package/modules/layout.esm.min.js +3 -3
  138. package/modules/layout.min.cjs +3 -3
  139. package/modules/layout.min.js +3 -3
  140. package/modules/mock-socket.d.ts +6 -1
  141. package/modules/mock-socket.esm.min.js +1 -1
  142. package/modules/mock-socket.min.cjs +1 -1
  143. package/modules/mock-socket.min.js +1 -1
  144. package/modules/react.d.ts +18 -1
  145. package/modules/react.esm.min.js +3 -3
  146. package/modules/react.min.cjs +3 -3
  147. package/modules/react.min.js +3 -3
  148. package/modules/svelte.d.ts +1 -1
  149. package/modules/svelte.esm.min.js +3 -3
  150. package/modules/svelte.min.cjs +3 -3
  151. package/modules/svelte.min.js +3 -3
  152. package/modules/tabs.d.ts +116 -11
  153. package/modules/tabs.esm.min.js +3 -3
  154. package/modules/tabs.min.cjs +3 -3
  155. package/modules/tabs.min.js +3 -3
  156. package/modules/vue.d.ts +12 -1
  157. package/modules/vue.esm.min.js +3 -3
  158. package/modules/vue.min.cjs +3 -3
  159. package/modules/vue.min.js +3 -3
  160. package/modules/webcomponent.d.ts +89 -6
  161. package/modules/webcomponent.esm.min.js +242 -43
  162. package/modules/webcomponent.min.cjs +242 -43
  163. package/modules/webcomponent.min.js +242 -43
  164. package/package.json +1 -1
package/modules/tabs.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.0, tabs module type declarations
2
+ * Lattice Grid 1.68.2, tabs module type declarations
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -41,6 +41,7 @@ interface TabDescriptor {
41
41
  where?: (row: unknown) => boolean;
42
42
  /** Group-by forwarded to the derived source. */
43
43
  group?: unknown;
44
+ /** An alias for `group`, forwarded verbatim to the derived source. */
44
45
  groupBy?: unknown;
45
46
  /** Time-bucketing forwarded to the derived source. */
46
47
  bucket?: unknown;
@@ -70,15 +71,101 @@ interface TabDescriptor {
70
71
  badgeTone?: 'good' | 'warn' | 'bad' | 'unknown' | ((count: number | null, tab: { id: string; label: string; from: string | null }) => 'good' | 'warn' | 'bad' | 'unknown' | null);
71
72
  }
72
73
 
73
- /** The payload every tab-change event carries. */
74
+ /**
75
+ * `beforeTabChange`: a switch is about to be applied, and may be refused.
76
+ *
77
+ * Delivered through `packages/modules/shared/emitter.js`'s `emitBefore`, which
78
+ * builds the event from the module's action context plus `type`, the resolved
79
+ * `origin` and the veto surface — so every member below is always present on
80
+ * this event. A handler refuses the switch by calling `preventDefault(reason?)`
81
+ * or by returning a Promise that resolves `false`; the active tab then does not
82
+ * change and `tabChange:cancelled` fires carrying the reason.
83
+ */
74
84
  interface TabChangeEvent {
85
+ /** Which event this is: `beforeTabChange`. */
86
+ type: string;
87
+ /** The tab being switched to. */
75
88
  id: string;
89
+ /** The tab being left, or null when no tab was active. */
76
90
  previousId: string | null;
77
- origin?: 'api' | 'user' | 'init';
78
- reason?: string | null;
79
- /** Cancel the switch (only meaningful on `beforeTabChange`). */
80
- preventDefault?: (reason?: string) => void;
81
- defaultPrevented?: boolean;
91
+ /**
92
+ * Who asked for the switch: `user` for a click or a keypress, `api` for
93
+ * `activate()`. The opening tab is activated silently, so it raises no
94
+ * `beforeTabChange` at all.
95
+ */
96
+ origin: 'api' | 'user';
97
+ /** The reason given to `preventDefault`, or null while nothing has refused the switch. */
98
+ reason: string | null;
99
+ /** True once a handler has refused the switch. */
100
+ defaultPrevented: boolean;
101
+ /** Refuse the switch; the optional reason is carried on `tabChange:cancelled`. */
102
+ preventDefault(reason?: string): void;
103
+ }
104
+
105
+ /**
106
+ * `tab:changed`: the switch happened — the target panel is revealed, its grid
107
+ * materialised on first activation, the badges refreshed and `aria-selected`
108
+ * moved. A notification, so it carries no `preventDefault`.
109
+ */
110
+ interface TabChangedEvent {
111
+ /** Which event this is: `tab:changed`. */
112
+ type: string;
113
+ /** The tab now active. */
114
+ id: string;
115
+ /**
116
+ * The tab that was left, or null for the mount-time activation — which
117
+ * happens while the strip is being built, before a handler can subscribe.
118
+ */
119
+ previousId: string | null;
120
+ }
121
+
122
+ /**
123
+ * `tabChange:cancelled`: a `beforeTabChange` handler refused the switch, so the
124
+ * active tab did not change. A notification, so it carries no `preventDefault`.
125
+ */
126
+ interface TabChangeCancelledEvent {
127
+ /** Which event this is: `tabChange:cancelled`. */
128
+ type: string;
129
+ /** The tab that was not switched to. */
130
+ id: string;
131
+ /** The tab that is still active, or null when none was. */
132
+ previousId: string | null;
133
+ /** Who asked for the switch that was refused. */
134
+ origin: 'api' | 'user';
135
+ /** The reason given to `preventDefault`, or `'prevented'` when none was. */
136
+ reason: string;
137
+ }
138
+
139
+ /**
140
+ * The events a tabbed grid raises.
141
+ *
142
+ * The strip's own, not a grid's: `grid.on` takes {@link EventName} and knows
143
+ * nothing about these, and each tab's grid keeps raising its own events itself.
144
+ * `on()` warns once on any other name, because a binding to an event that can
145
+ * never fire is a silent no-op. Each event also has a config callback
146
+ * (`onBeforeTabChange`, `onTabChange`, `onTabChangeCancelled`); both routes
147
+ * fire.
148
+ *
149
+ * Only `beforeTabChange` is cancellable — it is the one that runs before
150
+ * anything moves. `tab:changed` and `tabChange:cancelled` report a decision
151
+ * already taken and carry no `preventDefault`.
152
+ */
153
+ type TabsEventName =
154
+ /** A switch is about to be applied; cancellable. */
155
+ | 'beforeTabChange'
156
+ /** The active tab changed: its panel is showing and its grid is mounted. */
157
+ | 'tab:changed'
158
+ /** A `beforeTabChange` handler refused the switch; the active tab did not change. */
159
+ | 'tabChange:cancelled';
160
+
161
+ /** What a handler receives, per tabs event. */
162
+ interface TabsEventPayloads {
163
+ /** The switch about to happen, with `preventDefault` to refuse it. */
164
+ beforeTabChange: TabChangeEvent;
165
+ /** The tab now active, and the one it replaced. */
166
+ 'tab:changed': TabChangedEvent;
167
+ /** The switch that was refused, and why. */
168
+ 'tabChange:cancelled': TabChangeCancelledEvent;
82
169
  }
83
170
 
84
171
  /** Tabbed-grid configuration. */
@@ -95,9 +182,19 @@ interface TabsConfig {
95
182
  ariaLabel?: string;
96
183
  /** An explicit message-catalogue override; otherwise a mounted tab's own `grid.messages` is used. */
97
184
  messages?: { t(key: string, params?: Record<string, unknown>): string };
98
- onTabChange?: (event: TabChangeEvent) => void;
185
+ /** Called after the active tab has changed, alongside the `tab:changed` event. */
186
+ onTabChange?: (event: TabChangedEvent) => void;
187
+ /**
188
+ * Called before the switch. Return `false`, call `preventDefault(reason)`, or throw, to
189
+ * stay where you are; return a promise and the switch waits for it. Alongside the
190
+ * `beforeTabChange` event.
191
+ */
99
192
  onBeforeTabChange?: (event: TabChangeEvent) => boolean | void | Promise<boolean>;
100
- onTabChangeCancelled?: (event: TabChangeEvent) => void;
193
+ /**
194
+ * Called when a switch was refused, with the reason on the payload. Alongside
195
+ * `tabChange:cancelled`.
196
+ */
197
+ onTabChangeCancelled?: (event: TabChangeCancelledEvent) => void;
101
198
  }
102
199
 
103
200
  /**
@@ -106,6 +203,7 @@ interface TabsConfig {
106
203
  * alive, hidden, until `destroy()`.
107
204
  */
108
205
  interface Tabs {
206
+ /** The element the strip was mounted on. */
109
207
  readonly el: HTMLElement;
110
208
  /** The currently active tab id. */
111
209
  readonly activeId: string;
@@ -117,8 +215,15 @@ interface Tabs {
117
215
  isMounted(id: string): boolean;
118
216
  /** Switch the active tab, gated by `beforeTabChange`. */
119
217
  activate(id: string, opts?: { origin?: 'api' | 'user' }): boolean | Promise<boolean>;
120
- on(name: 'beforeTabChange' | 'tab:changed' | 'tabChange:cancelled' | string, fn: (event: TabChangeEvent) => void): () => void;
121
- off(name: string, fn: (event: TabChangeEvent) => void): void;
218
+ /**
219
+ * Register an event handler; returns a function that removes it. Any other name is
220
+ * warned about once, because it names a binding that could never fire. What each event
221
+ * carries is {@link TabsEventPayloads}; the handler is declared with the widest of
222
+ * them, so narrow on the name inside it.
223
+ */
224
+ on(name: TabsEventName, fn: (event: TabsEventPayloads[TabsEventName]) => void): () => void;
225
+ /** Remove a handler registered with `on`. */
226
+ off(name: TabsEventName, fn: (event: TabsEventPayloads[TabsEventName]) => void): void;
122
227
  /** Tear the whole strip down; destroys every mounted tab's grid. */
123
228
  destroy(): void;
124
229
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.0, tabs module
2
+ * Lattice Grid 1.68.2, tabs module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -52,12 +52,12 @@ Object.defineProperty(__exports,"frameBatched",{enumerable:true,get:function(){r
52
52
  Object.defineProperty(__exports,"settleDebounce",{enumerable:true,get:function(){return settleDebounce;}});
53
53
  Object.defineProperty(__exports,"whenIdle",{enumerable:true,get:function(){return whenIdle;}});
54
54
  Object.defineProperty(__exports,"uid",{enumerable:true,get:function(){return uid;}});
55
- const STAMPED_VERSION="1.68.0";
55
+ const STAMPED_VERSION="1.68.2";
56
56
  async function resolveVersion(){
57
57
  if(STAMPED_VERSION!=='0.0.0-source')return STAMPED_VERSION;
58
58
  return STAMPED_VERSION;
59
59
  }
60
- const VERSION="1.68.0";
60
+ const VERSION="1.68.2";
61
61
  const warned=new Set();
62
62
  const WARNED_LIMIT=2000;
63
63
  function rememberWarned(key){
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.0, tabs module
2
+ * Lattice Grid 1.68.2, tabs module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -54,12 +54,12 @@ Object.defineProperty(__exports,"frameBatched",{enumerable:true,get:function(){r
54
54
  Object.defineProperty(__exports,"settleDebounce",{enumerable:true,get:function(){return settleDebounce;}});
55
55
  Object.defineProperty(__exports,"whenIdle",{enumerable:true,get:function(){return whenIdle;}});
56
56
  Object.defineProperty(__exports,"uid",{enumerable:true,get:function(){return uid;}});
57
- const STAMPED_VERSION="1.68.0";
57
+ const STAMPED_VERSION="1.68.2";
58
58
  async function resolveVersion(){
59
59
  if(STAMPED_VERSION!=='0.0.0-source')return STAMPED_VERSION;
60
60
  return STAMPED_VERSION;
61
61
  }
62
- const VERSION="1.68.0";
62
+ const VERSION="1.68.2";
63
63
  const warned=new Set();
64
64
  const WARNED_LIMIT=2000;
65
65
  function rememberWarned(key){
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.0, tabs module
2
+ * Lattice Grid 1.68.2, tabs module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -54,12 +54,12 @@ Object.defineProperty(__exports,"frameBatched",{enumerable:true,get:function(){r
54
54
  Object.defineProperty(__exports,"settleDebounce",{enumerable:true,get:function(){return settleDebounce;}});
55
55
  Object.defineProperty(__exports,"whenIdle",{enumerable:true,get:function(){return whenIdle;}});
56
56
  Object.defineProperty(__exports,"uid",{enumerable:true,get:function(){return uid;}});
57
- const STAMPED_VERSION="1.68.0";
57
+ const STAMPED_VERSION="1.68.2";
58
58
  async function resolveVersion(){
59
59
  if(STAMPED_VERSION!=='0.0.0-source')return STAMPED_VERSION;
60
60
  return STAMPED_VERSION;
61
61
  }
62
- const VERSION="1.68.0";
62
+ const VERSION="1.68.2";
63
63
  const warned=new Set();
64
64
  const WARNED_LIMIT=2000;
65
65
  function rememberWarned(key){
package/modules/vue.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.0, vue module type declarations
2
+ * Lattice Grid 1.68.2, vue module type declarations
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -143,6 +143,7 @@ export type LatticeVueGridEmit = {
143
143
 
144
144
  /** What a `<LatticeGrid>` template ref exposes; `grid()` is null before mount. */
145
145
  export interface LatticeVueGridExposed {
146
+ /** The live grid the component built, or null before mount. */
146
147
  grid(): Grid | null;
147
148
  }
148
149
 
@@ -190,6 +191,7 @@ export type LatticeVueViewerCommonProps = LatticeVueHostProps & {
190
191
 
191
192
  /** What a viewer's template ref exposes; `instance()` is null before mount. */
192
193
  export interface LatticeVueViewerExposed<Instance = unknown> {
194
+ /** The live viewer the component built, or null before mount. */
193
195
  instance(): Instance | null;
194
196
  }
195
197
 
@@ -233,8 +235,17 @@ export type LatticeVueLayoutProps = Record<string, unknown> & LatticeVueViewerCo
233
235
 
234
236
  /** One tab of a `<LatticeTabs>`; a slot named for its `id` makes it Vue's. */
235
237
  export interface LatticeVueTabSpec {
238
+ /**
239
+ * The tab's identity, which also names the slot whose content Vue renders into the
240
+ * panel. Required, non-empty and unique.
241
+ */
236
242
  id: string;
243
+ /** The text on the tab button. Defaults to the id. */
237
244
  label?: string;
245
+ /**
246
+ * Any other prop the host wants to carry on the tab. Passed through untouched, so a
247
+ * Vue host can key its own state off the same object the grid holds.
248
+ */
238
249
  [key: string]: unknown;
239
250
  }
240
251
 
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.0, vue module
2
+ * Lattice Grid 1.68.2, vue module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -52,12 +52,12 @@ Object.defineProperty(__exports,"frameBatched",{enumerable:true,get:function(){r
52
52
  Object.defineProperty(__exports,"settleDebounce",{enumerable:true,get:function(){return settleDebounce;}});
53
53
  Object.defineProperty(__exports,"whenIdle",{enumerable:true,get:function(){return whenIdle;}});
54
54
  Object.defineProperty(__exports,"uid",{enumerable:true,get:function(){return uid;}});
55
- const STAMPED_VERSION="1.68.0";
55
+ const STAMPED_VERSION="1.68.2";
56
56
  async function resolveVersion(){
57
57
  if(STAMPED_VERSION!=='0.0.0-source')return STAMPED_VERSION;
58
58
  return STAMPED_VERSION;
59
59
  }
60
- const VERSION="1.68.0";
60
+ const VERSION="1.68.2";
61
61
  const warned=new Set();
62
62
  const WARNED_LIMIT=2000;
63
63
  function rememberWarned(key){
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.0, vue module
2
+ * Lattice Grid 1.68.2, vue module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -54,12 +54,12 @@ Object.defineProperty(__exports,"frameBatched",{enumerable:true,get:function(){r
54
54
  Object.defineProperty(__exports,"settleDebounce",{enumerable:true,get:function(){return settleDebounce;}});
55
55
  Object.defineProperty(__exports,"whenIdle",{enumerable:true,get:function(){return whenIdle;}});
56
56
  Object.defineProperty(__exports,"uid",{enumerable:true,get:function(){return uid;}});
57
- const STAMPED_VERSION="1.68.0";
57
+ const STAMPED_VERSION="1.68.2";
58
58
  async function resolveVersion(){
59
59
  if(STAMPED_VERSION!=='0.0.0-source')return STAMPED_VERSION;
60
60
  return STAMPED_VERSION;
61
61
  }
62
- const VERSION="1.68.0";
62
+ const VERSION="1.68.2";
63
63
  const warned=new Set();
64
64
  const WARNED_LIMIT=2000;
65
65
  function rememberWarned(key){
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.0, vue module
2
+ * Lattice Grid 1.68.2, vue module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -54,12 +54,12 @@ Object.defineProperty(__exports,"frameBatched",{enumerable:true,get:function(){r
54
54
  Object.defineProperty(__exports,"settleDebounce",{enumerable:true,get:function(){return settleDebounce;}});
55
55
  Object.defineProperty(__exports,"whenIdle",{enumerable:true,get:function(){return whenIdle;}});
56
56
  Object.defineProperty(__exports,"uid",{enumerable:true,get:function(){return uid;}});
57
- const STAMPED_VERSION="1.68.0";
57
+ const STAMPED_VERSION="1.68.2";
58
58
  async function resolveVersion(){
59
59
  if(STAMPED_VERSION!=='0.0.0-source')return STAMPED_VERSION;
60
60
  return STAMPED_VERSION;
61
61
  }
62
- const VERSION="1.68.0";
62
+ const VERSION="1.68.2";
63
63
  const warned=new Set();
64
64
  const WARNED_LIMIT=2000;
65
65
  function rememberWarned(key){
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.0, webcomponent module type declarations
2
+ * Lattice Grid 1.68.2, webcomponent module type declarations
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -70,12 +70,34 @@ export interface LatticeViewerEventDetail<Instance = unknown> { instance: Instan
70
70
  export interface LatticeGridElement<Row = any> extends HTMLElement {
71
71
  /** Every attribute in the table above is also a property of the same name. */
72
72
  theme: string | undefined;
73
+ /**
74
+ * The row height and padding as a named step, rather than pixel by pixel. The `density`
75
+ * attribute.
76
+ */
73
77
  density: string | undefined;
78
+ /** The locale the grid formats and sorts in. The `locale` attribute. */
74
79
  locale: string | undefined;
80
+ /**
81
+ * Which field identifies a row. As an attribute it can only be a field name; the
82
+ * composite and function forms are properties.
83
+ */
75
84
  rowKey: string | undefined;
85
+ /** Row height in pixels. The `row-height` attribute, parsed as a number. */
76
86
  rowHeight: number | undefined;
87
+ /**
88
+ * Header height in pixels. The `header-height` attribute, parsed as a number; unset,
89
+ * the header follows the density token.
90
+ */
77
91
  headerHeight: number | undefined;
92
+ /**
93
+ * Let the grid grow to its rows rather than capping its height. The `auto-height`
94
+ * attribute is a bare boolean — present is true.
95
+ */
78
96
  autoHeight: boolean | undefined;
97
+ /**
98
+ * What the reader may select: `single`, `multiple` or `none`. The `selection`
99
+ * attribute; the full selection config goes through `config`.
100
+ */
79
101
  selection: string | undefined;
80
102
  /** The live grid, or null while the element is disconnected. */
81
103
  readonly grid: Grid | null;
@@ -122,64 +144,121 @@ export interface LatticeViewerElement<Instance = unknown> extends HTMLElement {
122
144
  * empty; give it `rows` for a standalone panel.
123
145
  */
124
146
  export interface LatticeKPIElement<Row = any> extends LatticeViewerElement {
147
+ /** The panel's tiles. A structure, so it is a property rather than an attribute. */
125
148
  tiles: unknown[];
149
+ /** Rows for a standalone panel. Set them and the element stops waiting for a grid. */
126
150
  rows: Row[];
151
+ /** How many tile columns to aim for. */
127
152
  columns: number | undefined;
153
+ /** Which field identifies a row, for the panel's own keyed store. */
128
154
  rowKey: string | undefined;
155
+ /** The default locale a clock tile formats in. */
129
156
  locale: string | undefined;
130
- theme: string | undefined;
131
- density: string | undefined;
132
- format: unknown;
133
157
  }
134
158
 
135
159
  /** `<lattice-chart>`. Always drawn from a grid, so it waits for one. */
136
160
  export interface LatticeChartElement extends LatticeViewerElement {
161
+ /**
162
+ * A geomap's geometry: a loaded pack, `{ pack: id }`, GeoJSON, or a map of code to path
163
+ * data. A structure, so it is a property.
164
+ */
137
165
  shapes: unknown;
166
+ /** The column that splits the measure into one series per distinct value. */
138
167
  series: unknown;
168
+ /**
169
+ * Rows to draw instead of the grid's own filtered rows — the chart spec's `rows`,
170
+ * under the name the element gives it. An explicit `config: { rows }` wins.
171
+ */
139
172
  data: unknown;
140
- formatting: unknown;
173
+ /** Which chart to draw. The `type` attribute. */
141
174
  type: string | undefined;
175
+ /** The category column. */
142
176
  x: string | undefined;
177
+ /** The measure column, or several for a multi-measure chart. */
143
178
  y: string | string[] | undefined;
179
+ /** The measure a markermap writes beside each dot and colours it by. */
144
180
  value: string | undefined;
181
+ /** The row-label column, for the types that name their rows. */
145
182
  label: string | undefined;
183
+ /** The longitude column, in degrees east, for the maps that place a row by where it is. */
146
184
  lon: string | undefined;
185
+ /** The latitude column, in degrees north. */
147
186
  lat: string | undefined;
187
+ /** Print the value beside each mark. The `labels` attribute is a bare boolean. */
148
188
  labels: boolean | undefined;
189
+ /** Stack the series rather than drawing them side by side — the spec's `stack`. */
149
190
  stacked: boolean | undefined;
191
+ /**
192
+ * Draw a `type="bar"` chart along y instead of x, by selecting the `horizontalBar`
193
+ * type. Ignored on any other chart type, whose orientation is the type's own.
194
+ */
150
195
  horizontal: boolean | undefined;
196
+ /** The colour scheme by name. */
151
197
  scheme: string | undefined;
152
198
  }
153
199
 
154
200
  /** `<lattice-kanban>`. Grid-bound like the KPI panel; give it `rows` to stand alone. */
155
201
  export interface LatticeKanbanElement<Row = any> extends LatticeViewerElement {
202
+ /** Rows for a standalone board. Set them and the element stops waiting for a grid. */
156
203
  rows: Row[];
204
+ /** The board's column definitions. */
157
205
  columns: unknown[];
206
+ /** The card template's field mapping — title, subtitle, labels, assignee and the rest. */
158
207
  card: unknown;
159
- facets: unknown;
208
+ /** Which field identifies a card. */
160
209
  rowKey: string | undefined;
210
+ /** The row property that puts a card in a column. */
161
211
  columnProperty: string | undefined;
212
+ /**
213
+ * The row property a card's headline comes from — the shorthand for
214
+ * `card: { title }`, which wins where both are given.
215
+ */
162
216
  titleProperty: string | undefined;
217
+ /**
218
+ * Draw the two-dimensional swimlane layout. The `swimlanes` attribute is a bare
219
+ * boolean; name the lane property through `swimlane-property`.
220
+ */
163
221
  swimlanes: boolean | undefined;
164
222
  }
165
223
 
166
224
  /** `<lattice-gantt>`. */
167
225
  export interface LatticeGanttElement extends LatticeViewerElement {
226
+ /** The plan's tasks. A structure, so it is a property. */
168
227
  tasks: unknown[];
228
+ /** The links between tasks. */
169
229
  dependencies: unknown[];
230
+ /** The resource capacities, for over-allocation and levelling. */
170
231
  resources: unknown;
232
+ /** The working-time calendar: the `weekends` preset, or explicit workdays and holidays. */
171
233
  calendar: unknown;
234
+ /** The table panel's columns, for the split view. */
172
235
  columns: unknown;
236
+ /** Which field identifies a task. */
173
237
  rowKey: string | undefined;
238
+ /**
239
+ * The timeline's zoom — the shorthand for `config: { render: { zoom } }`, which wins
240
+ * where both are given.
241
+ */
174
242
  scale: string | undefined;
243
+ /**
244
+ * Cascade an edit down the dependency chain rather than only recomputing. A bare
245
+ * boolean attribute.
246
+ */
175
247
  autoSchedule: boolean | undefined;
176
248
  }
177
249
 
178
250
  /** `<lattice-layout>`. */
179
251
  export interface LatticeLayoutElement extends LatticeViewerElement {
252
+ /**
253
+ * The windows to place, each with its content and its cell. A structure, so it is a
254
+ * property.
255
+ */
180
256
  windows: unknown[];
257
+ /** How many columns the grid of windows has. */
181
258
  columns: number | undefined;
259
+ /** How many rows the grid of windows has. */
182
260
  rows: number | undefined;
261
+ /** Which way windows collapse into the space a closed one left. */
183
262
  compact: string | undefined;
184
263
  }
185
264
 
@@ -189,6 +268,10 @@ export interface LatticeLayoutElement extends LatticeViewerElement {
189
268
  * left to the module.
190
269
  */
191
270
  export interface LatticeTabsElement extends LatticeViewerElement {
271
+ /**
272
+ * The tab descriptors. A tab's content comes from a `<template data-tab="‹id›">` child
273
+ * when there is one.
274
+ */
192
275
  tabs: unknown[];
193
276
  }
194
277