@toclocoinc/lattice-grid 1.68.0 → 1.68.1

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 (163) hide show
  1. package/README.md +1 -1
  2. package/angular/package.json +1 -1
  3. package/docs/API.html +5315 -3774
  4. package/docs/api-detail.html +4 -4
  5. package/lattice-grid.d.ts +3357 -1
  6. package/lattice-grid.esm.min.js +9 -7
  7. package/lattice-grid.min.cjs +9 -7
  8. package/lattice-grid.min.js +9 -7
  9. package/modules/ai.d.ts +64 -1
  10. package/modules/ai.esm.min.js +3 -3
  11. package/modules/ai.min.cjs +3 -3
  12. package/modules/ai.min.js +3 -3
  13. package/modules/angular.d.ts +1 -1
  14. package/modules/angular.esm.min.js +3 -3
  15. package/modules/angular.min.cjs +3 -3
  16. package/modules/angular.min.js +3 -3
  17. package/modules/chart-alluvial.d.ts +1 -1
  18. package/modules/chart-alluvial.esm.min.js +1 -1
  19. package/modules/chart-alluvial.min.cjs +1 -1
  20. package/modules/chart-alluvial.min.js +1 -1
  21. package/modules/chart-arc.d.ts +1 -1
  22. package/modules/chart-arc.esm.min.js +1 -1
  23. package/modules/chart-arc.min.cjs +1 -1
  24. package/modules/chart-arc.min.js +1 -1
  25. package/modules/chart-bubblemap.d.ts +1 -1
  26. package/modules/chart-bubblemap.esm.min.js +1 -1
  27. package/modules/chart-bubblemap.min.cjs +1 -1
  28. package/modules/chart-bubblemap.min.js +1 -1
  29. package/modules/chart-bump.d.ts +1 -1
  30. package/modules/chart-bump.esm.min.js +1 -1
  31. package/modules/chart-bump.min.cjs +1 -1
  32. package/modules/chart-bump.min.js +1 -1
  33. package/modules/chart-calendar.d.ts +1 -1
  34. package/modules/chart-calendar.esm.min.js +1 -1
  35. package/modules/chart-calendar.min.cjs +1 -1
  36. package/modules/chart-calendar.min.js +1 -1
  37. package/modules/chart-decomposition.d.ts +1 -1
  38. package/modules/chart-decomposition.esm.min.js +1 -1
  39. package/modules/chart-decomposition.min.cjs +1 -1
  40. package/modules/chart-decomposition.min.js +1 -1
  41. package/modules/chart-diverging.d.ts +1 -1
  42. package/modules/chart-diverging.esm.min.js +1 -1
  43. package/modules/chart-diverging.min.cjs +1 -1
  44. package/modules/chart-diverging.min.js +1 -1
  45. package/modules/chart-dumbbell.d.ts +1 -1
  46. package/modules/chart-dumbbell.esm.min.js +1 -1
  47. package/modules/chart-dumbbell.min.cjs +1 -1
  48. package/modules/chart-dumbbell.min.js +1 -1
  49. package/modules/chart-fan.d.ts +1 -1
  50. package/modules/chart-fan.esm.min.js +1 -1
  51. package/modules/chart-fan.min.cjs +1 -1
  52. package/modules/chart-fan.min.js +1 -1
  53. package/modules/chart-hexbin.d.ts +1 -1
  54. package/modules/chart-hexbin.esm.min.js +1 -1
  55. package/modules/chart-hexbin.min.cjs +1 -1
  56. package/modules/chart-hexbin.min.js +1 -1
  57. package/modules/chart-hexmap.d.ts +1 -1
  58. package/modules/chart-hexmap.esm.min.js +1 -1
  59. package/modules/chart-hexmap.min.cjs +1 -1
  60. package/modules/chart-hexmap.min.js +1 -1
  61. package/modules/chart-icicle.d.ts +1 -1
  62. package/modules/chart-icicle.esm.min.js +1 -1
  63. package/modules/chart-icicle.min.cjs +1 -1
  64. package/modules/chart-icicle.min.js +1 -1
  65. package/modules/chart-markermap.d.ts +1 -1
  66. package/modules/chart-markermap.esm.min.js +1 -1
  67. package/modules/chart-markermap.min.cjs +1 -1
  68. package/modules/chart-markermap.min.js +1 -1
  69. package/modules/chart-parallel.d.ts +1 -1
  70. package/modules/chart-parallel.esm.min.js +1 -1
  71. package/modules/chart-parallel.min.cjs +1 -1
  72. package/modules/chart-parallel.min.js +1 -1
  73. package/modules/chart-ridgeline.d.ts +1 -1
  74. package/modules/chart-ridgeline.esm.min.js +1 -1
  75. package/modules/chart-ridgeline.min.cjs +1 -1
  76. package/modules/chart-ridgeline.min.js +1 -1
  77. package/modules/chart-roc.d.ts +1 -1
  78. package/modules/chart-roc.esm.min.js +1 -1
  79. package/modules/chart-roc.min.cjs +1 -1
  80. package/modules/chart-roc.min.js +1 -1
  81. package/modules/chart-slope.d.ts +1 -1
  82. package/modules/chart-slope.esm.min.js +1 -1
  83. package/modules/chart-slope.min.cjs +1 -1
  84. package/modules/chart-slope.min.js +1 -1
  85. package/modules/chart-splom.d.ts +1 -1
  86. package/modules/chart-splom.esm.min.js +1 -1
  87. package/modules/chart-splom.min.cjs +1 -1
  88. package/modules/chart-splom.min.js +1 -1
  89. package/modules/chart-waffle.d.ts +1 -1
  90. package/modules/chart-waffle.esm.min.js +1 -1
  91. package/modules/chart-waffle.min.cjs +1 -1
  92. package/modules/chart-waffle.min.js +1 -1
  93. package/modules/charts.d.ts +16 -1
  94. package/modules/charts.esm.min.js +17 -10
  95. package/modules/charts.min.cjs +17 -10
  96. package/modules/charts.min.js +17 -10
  97. package/modules/data-router.d.ts +227 -1
  98. package/modules/data-router.esm.min.js +3 -3
  99. package/modules/data-router.min.cjs +3 -3
  100. package/modules/data-router.min.js +3 -3
  101. package/modules/devtools.d.ts +1 -1
  102. package/modules/devtools.esm.min.js +1 -1
  103. package/modules/devtools.min.cjs +1 -1
  104. package/modules/devtools.min.js +1 -1
  105. package/modules/dhtmlx-compat.d.ts +1 -1
  106. package/modules/dhtmlx-compat.esm.min.js +3 -3
  107. package/modules/dhtmlx-compat.min.cjs +3 -3
  108. package/modules/dhtmlx-compat.min.js +3 -3
  109. package/modules/gantt.d.ts +302 -1
  110. package/modules/gantt.esm.min.js +3 -3
  111. package/modules/gantt.min.cjs +3 -3
  112. package/modules/gantt.min.js +3 -3
  113. package/modules/geo-europe-nuts.d.ts +1 -1
  114. package/modules/geo-europe-nuts.esm.min.js +1 -1
  115. package/modules/geo-uk.d.ts +1 -1
  116. package/modules/geo-uk.esm.min.js +1 -1
  117. package/modules/geo-us-states.d.ts +1 -1
  118. package/modules/geo-us-states.esm.min.js +1 -1
  119. package/modules/geo-world-110m.d.ts +1 -1
  120. package/modules/geo-world-110m.esm.min.js +1 -1
  121. package/modules/geo-world-50m.d.ts +1 -1
  122. package/modules/geo-world-50m.esm.min.js +1 -1
  123. package/modules/htmx.d.ts +1 -1
  124. package/modules/htmx.esm.min.js +9 -7
  125. package/modules/htmx.min.cjs +9 -7
  126. package/modules/htmx.min.js +9 -7
  127. package/modules/kanban.d.ts +233 -1
  128. package/modules/kanban.esm.min.js +3 -3
  129. package/modules/kanban.min.cjs +3 -3
  130. package/modules/kanban.min.js +3 -3
  131. package/modules/kpi.d.ts +171 -1
  132. package/modules/kpi.esm.min.js +4 -4
  133. package/modules/kpi.min.cjs +4 -4
  134. package/modules/kpi.min.js +4 -4
  135. package/modules/layout.d.ts +117 -1
  136. package/modules/layout.esm.min.js +3 -3
  137. package/modules/layout.min.cjs +3 -3
  138. package/modules/layout.min.js +3 -3
  139. package/modules/mock-socket.d.ts +6 -1
  140. package/modules/mock-socket.esm.min.js +1 -1
  141. package/modules/mock-socket.min.cjs +1 -1
  142. package/modules/mock-socket.min.js +1 -1
  143. package/modules/react.d.ts +14 -1
  144. package/modules/react.esm.min.js +3 -3
  145. package/modules/react.min.cjs +3 -3
  146. package/modules/react.min.js +3 -3
  147. package/modules/svelte.d.ts +1 -1
  148. package/modules/svelte.esm.min.js +3 -3
  149. package/modules/svelte.min.cjs +3 -3
  150. package/modules/svelte.min.js +3 -3
  151. package/modules/tabs.d.ts +30 -1
  152. package/modules/tabs.esm.min.js +3 -3
  153. package/modules/tabs.min.cjs +3 -3
  154. package/modules/tabs.min.js +3 -3
  155. package/modules/vue.d.ts +8 -1
  156. package/modules/vue.esm.min.js +3 -3
  157. package/modules/vue.min.cjs +3 -3
  158. package/modules/vue.min.js +3 -3
  159. package/modules/webcomponent.d.ts +113 -1
  160. package/modules/webcomponent.esm.min.js +9 -7
  161. package/modules/webcomponent.min.cjs +9 -7
  162. package/modules/webcomponent.min.js +9 -7
  163. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.0, layout module
2
+ * Lattice Grid 1.68.1, layout 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.1";
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.1";
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, mock-socket module type declarations
2
+ * Lattice Grid 1.68.1, mock-socket module type declarations
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -15,6 +15,11 @@ interface FeedChange { op: 'upsert' | 'delete'; row: FeedRow }
15
15
  * `kind`, exactly as against a real feed that framed its messages the same way.
16
16
  */
17
17
  interface FeedMessage {
18
+ /**
19
+ * Whether this message opens the feed with a full set of rows
20
+ * (`'snapshot'`, which the feed yields first) or carries changes to apply
21
+ * to what is already there (`'delta'`, every message after it).
22
+ */
18
23
  kind: 'snapshot' | 'delta';
19
24
  /** Present on a snapshot: the full opening set of rows. */
20
25
  rows?: FeedRow[];
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.0, mock-socket module
2
+ * Lattice Grid 1.68.1, mock-socket module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.0, mock-socket module
2
+ * Lattice Grid 1.68.1, mock-socket module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.0, mock-socket module
2
+ * Lattice Grid 1.68.1, mock-socket module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.0, react module type declarations
2
+ * Lattice Grid 1.68.1, react module type declarations
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -37,6 +37,10 @@ export type LatticeGridEventProps = {
37
37
 
38
38
  /** The live instance a `<LatticeGrid>` ref exposes; `null` before mount. */
39
39
  export interface LatticeGridHandle {
40
+ /**
41
+ * The live grid the component built, or null before the mount effect has run and after
42
+ * it has been destroyed.
43
+ */
40
44
  readonly grid: Grid | null;
41
45
  }
42
46
 
@@ -115,6 +119,10 @@ export function createLatticeGrid<Row = unknown>(deps: {
115
119
 
116
120
  /** The live instance a viewer component's ref exposes; `null` before mount. */
117
121
  export interface LatticeViewerHandle<Instance = unknown> {
122
+ /**
123
+ * The live viewer the component built — the board, panel, chart, plan, layout or strip
124
+ * — or null before mount.
125
+ */
118
126
  readonly instance: Instance | null;
119
127
  }
120
128
 
@@ -185,7 +193,12 @@ export type LatticeLayoutProps = Record<string, unknown> & LatticeViewerCommonPr
185
193
 
186
194
  /** One tab of a `<LatticeTabs>`; `content` makes it React's rather than the module's. */
187
195
  export interface LatticeTabSpec {
196
+ /**
197
+ * The tab's identity, used to select it, to name its slot and to derive another tab
198
+ * from it. Required, non-empty and unique; a duplicate or missing id is refused.
199
+ */
188
200
  id: string;
201
+ /** The text on the tab button. Defaults to the id. */
189
202
  label?: string;
190
203
  /** A React element, or a function returning one, rendered through a portal. */
191
204
  content?: unknown | (() => unknown);
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.0, react module
2
+ * Lattice Grid 1.68.1, react 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.1";
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.1";
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, react module
2
+ * Lattice Grid 1.68.1, react 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.1";
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.1";
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, react module
2
+ * Lattice Grid 1.68.1, react 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.1";
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.1";
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, svelte module type declarations
2
+ * Lattice Grid 1.68.1, svelte module type declarations
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.0, svelte module
2
+ * Lattice Grid 1.68.1, svelte 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.1";
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.1";
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, svelte module
2
+ * Lattice Grid 1.68.1, svelte 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.1";
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.1";
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, svelte module
2
+ * Lattice Grid 1.68.1, svelte 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.1";
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.1";
63
63
  const warned=new Set();
64
64
  const WARNED_LIMIT=2000;
65
65
  function rememberWarned(key){
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.1, 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;
@@ -72,12 +73,23 @@ interface TabDescriptor {
72
73
 
73
74
  /** The payload every tab-change event carries. */
74
75
  interface TabChangeEvent {
76
+ /** The tab being switched to. */
75
77
  id: string;
78
+ /** The tab being left, or null for the first activation. */
76
79
  previousId: string | null;
80
+ /**
81
+ * Who caused the switch: `user` for a click or keypress, `api` for `activate()`, `init`
82
+ * for the opening tab. Defaults to `user`.
83
+ */
77
84
  origin?: 'api' | 'user' | 'init';
85
+ /**
86
+ * Why the switch was refused — the reason given to `preventDefault`, `prevented` when
87
+ * none was, or `error` when a handler threw.
88
+ */
78
89
  reason?: string | null;
79
90
  /** Cancel the switch (only meaningful on `beforeTabChange`). */
80
91
  preventDefault?: (reason?: string) => void;
92
+ /** True once a handler has cancelled the switch. */
81
93
  defaultPrevented?: boolean;
82
94
  }
83
95
 
@@ -95,8 +107,18 @@ interface TabsConfig {
95
107
  ariaLabel?: string;
96
108
  /** An explicit message-catalogue override; otherwise a mounted tab's own `grid.messages` is used. */
97
109
  messages?: { t(key: string, params?: Record<string, unknown>): string };
110
+ /** Called after the active tab has changed, alongside the `tab:changed` event. */
98
111
  onTabChange?: (event: TabChangeEvent) => void;
112
+ /**
113
+ * Called before the switch. Return `false`, call `preventDefault(reason)`, or throw, to
114
+ * stay where you are; return a promise and the switch waits for it. Alongside the
115
+ * `beforeTabChange` event.
116
+ */
99
117
  onBeforeTabChange?: (event: TabChangeEvent) => boolean | void | Promise<boolean>;
118
+ /**
119
+ * Called when a switch was refused, with the reason on the payload. Alongside
120
+ * `tabChange:cancelled`.
121
+ */
100
122
  onTabChangeCancelled?: (event: TabChangeEvent) => void;
101
123
  }
102
124
 
@@ -106,6 +128,7 @@ interface TabsConfig {
106
128
  * alive, hidden, until `destroy()`.
107
129
  */
108
130
  interface Tabs {
131
+ /** The element the strip was mounted on. */
109
132
  readonly el: HTMLElement;
110
133
  /** The currently active tab id. */
111
134
  readonly activeId: string;
@@ -117,7 +140,13 @@ interface Tabs {
117
140
  isMounted(id: string): boolean;
118
141
  /** Switch the active tab, gated by `beforeTabChange`. */
119
142
  activate(id: string, opts?: { origin?: 'api' | 'user' }): boolean | Promise<boolean>;
143
+ /**
144
+ * Subscribe to `beforeTabChange`, `tab:changed` or `tabChange:cancelled`; returns a
145
+ * function that unsubscribes. Any other name is warned about once, because it names a
146
+ * binding that could never fire.
147
+ */
120
148
  on(name: 'beforeTabChange' | 'tab:changed' | 'tabChange:cancelled' | string, fn: (event: TabChangeEvent) => void): () => void;
149
+ /** Remove a handler registered with `on`. */
121
150
  off(name: string, fn: (event: TabChangeEvent) => void): void;
122
151
  /** Tear the whole strip down; destroys every mounted tab's grid. */
123
152
  destroy(): void;
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.0, tabs module
2
+ * Lattice Grid 1.68.1, 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.1";
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.1";
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.1, 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.1";
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.1";
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.1, 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.1";
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.1";
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.1, 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,7 +235,12 @@ 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;
238
245
  [key: string]: unknown;
239
246
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.0, vue module
2
+ * Lattice Grid 1.68.1, 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.1";
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.1";
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.1, 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.1";
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.1";
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.1, 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.1";
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.1";
63
63
  const warned=new Set();
64
64
  const WARNED_LIMIT=2000;
65
65
  function rememberWarned(key){