@toclocoinc/lattice-grid 1.111.4 → 1.111.5

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 (441) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +1 -1
  3. package/angular/package.json +1 -1
  4. package/docs/API.html +27 -5
  5. package/docs/api/adapters.html +1 -1
  6. package/docs/api/ai.html +1 -1
  7. package/docs/api/alarms.html +1 -1
  8. package/docs/api/calendar.html +1 -1
  9. package/docs/api/charts.html +1 -1
  10. package/docs/api/dashboard.html +1 -1
  11. package/docs/api/data-router.html +1 -1
  12. package/docs/api/dataview.html +1 -1
  13. package/docs/api/deckgl.html +1 -1
  14. package/docs/api/designer.html +1 -1
  15. package/docs/api/form.html +1 -1
  16. package/docs/api/gantt.html +1 -1
  17. package/docs/api/geometry.html +1 -1
  18. package/docs/api/grid.html +2 -2
  19. package/docs/api/index.html +2 -2
  20. package/docs/api/kanban.html +25 -2
  21. package/docs/api/kpi.html +1 -1
  22. package/docs/api/layout.html +1 -1
  23. package/docs/api/leaflet.html +1 -1
  24. package/docs/api/list.html +1 -1
  25. package/docs/api/listview.html +1 -1
  26. package/docs/api/mapview.html +1 -1
  27. package/docs/api/mock-socket.html +1 -1
  28. package/docs/api/presets.html +1 -1
  29. package/docs/api/scheduler.html +1 -1
  30. package/docs/api/shell.html +1 -1
  31. package/docs/api/tabs.html +1 -1
  32. package/docs/api/tree.html +1 -1
  33. package/docs/api/types.html +1 -1
  34. package/docs/api-detail.html +31 -5
  35. package/docs/warnings.json +12 -2
  36. package/lattice-grid.d.ts +1 -1
  37. package/lattice-grid.esm.min.js +2 -2
  38. package/lattice-grid.min.cjs +2 -2
  39. package/lattice-grid.min.js +2 -2
  40. package/locales/all.d.ts +1 -1
  41. package/locales/all.esm.min.js +1 -1
  42. package/locales/all.min.cjs +1 -1
  43. package/locales/all.min.js +1 -1
  44. package/locales/ar.d.ts +1 -1
  45. package/locales/ar.esm.min.js +1 -1
  46. package/locales/ar.min.cjs +1 -1
  47. package/locales/ar.min.js +1 -1
  48. package/locales/cs-CZ.d.ts +1 -1
  49. package/locales/cs-CZ.esm.min.js +1 -1
  50. package/locales/cs-CZ.min.cjs +1 -1
  51. package/locales/cs-CZ.min.js +1 -1
  52. package/locales/da-DK.d.ts +1 -1
  53. package/locales/da-DK.esm.min.js +1 -1
  54. package/locales/da-DK.min.cjs +1 -1
  55. package/locales/da-DK.min.js +1 -1
  56. package/locales/de-DE.d.ts +1 -1
  57. package/locales/de-DE.esm.min.js +1 -1
  58. package/locales/de-DE.min.cjs +1 -1
  59. package/locales/de-DE.min.js +1 -1
  60. package/locales/el-GR.d.ts +1 -1
  61. package/locales/el-GR.esm.min.js +1 -1
  62. package/locales/el-GR.min.cjs +1 -1
  63. package/locales/el-GR.min.js +1 -1
  64. package/locales/en-US.d.ts +1 -1
  65. package/locales/en-US.esm.min.js +1 -1
  66. package/locales/en-US.min.cjs +1 -1
  67. package/locales/en-US.min.js +1 -1
  68. package/locales/es-ES.d.ts +1 -1
  69. package/locales/es-ES.esm.min.js +1 -1
  70. package/locales/es-ES.min.cjs +1 -1
  71. package/locales/es-ES.min.js +1 -1
  72. package/locales/fi-FI.d.ts +1 -1
  73. package/locales/fi-FI.esm.min.js +1 -1
  74. package/locales/fi-FI.min.cjs +1 -1
  75. package/locales/fi-FI.min.js +1 -1
  76. package/locales/fr-CA.d.ts +1 -1
  77. package/locales/fr-CA.esm.min.js +1 -1
  78. package/locales/fr-CA.min.cjs +1 -1
  79. package/locales/fr-CA.min.js +1 -1
  80. package/locales/fr-FR.d.ts +1 -1
  81. package/locales/fr-FR.esm.min.js +1 -1
  82. package/locales/fr-FR.min.cjs +1 -1
  83. package/locales/fr-FR.min.js +1 -1
  84. package/locales/hu-HU.d.ts +1 -1
  85. package/locales/hu-HU.esm.min.js +1 -1
  86. package/locales/hu-HU.min.cjs +1 -1
  87. package/locales/hu-HU.min.js +1 -1
  88. package/locales/it-IT.d.ts +1 -1
  89. package/locales/it-IT.esm.min.js +1 -1
  90. package/locales/it-IT.min.cjs +1 -1
  91. package/locales/it-IT.min.js +1 -1
  92. package/locales/ja-JP.d.ts +1 -1
  93. package/locales/ja-JP.esm.min.js +1 -1
  94. package/locales/ja-JP.min.cjs +1 -1
  95. package/locales/ja-JP.min.js +1 -1
  96. package/locales/nb-NO.d.ts +1 -1
  97. package/locales/nb-NO.esm.min.js +1 -1
  98. package/locales/nb-NO.min.cjs +1 -1
  99. package/locales/nb-NO.min.js +1 -1
  100. package/locales/nl-NL.d.ts +1 -1
  101. package/locales/nl-NL.esm.min.js +1 -1
  102. package/locales/nl-NL.min.cjs +1 -1
  103. package/locales/nl-NL.min.js +1 -1
  104. package/locales/pl-PL.d.ts +1 -1
  105. package/locales/pl-PL.esm.min.js +1 -1
  106. package/locales/pl-PL.min.cjs +1 -1
  107. package/locales/pl-PL.min.js +1 -1
  108. package/locales/pt-BR.d.ts +1 -1
  109. package/locales/pt-BR.esm.min.js +1 -1
  110. package/locales/pt-BR.min.cjs +1 -1
  111. package/locales/pt-BR.min.js +1 -1
  112. package/locales/ro-RO.d.ts +1 -1
  113. package/locales/ro-RO.esm.min.js +1 -1
  114. package/locales/ro-RO.min.cjs +1 -1
  115. package/locales/ro-RO.min.js +1 -1
  116. package/locales/sv-SE.d.ts +1 -1
  117. package/locales/sv-SE.esm.min.js +1 -1
  118. package/locales/sv-SE.min.cjs +1 -1
  119. package/locales/sv-SE.min.js +1 -1
  120. package/locales/uk-UA.d.ts +1 -1
  121. package/locales/uk-UA.esm.min.js +1 -1
  122. package/locales/uk-UA.min.cjs +1 -1
  123. package/locales/uk-UA.min.js +1 -1
  124. package/modules/ai.d.ts +1 -1
  125. package/modules/ai.esm.min.js +1 -1
  126. package/modules/ai.min.cjs +1 -1
  127. package/modules/ai.min.js +1 -1
  128. package/modules/alarms.d.ts +1 -1
  129. package/modules/alarms.esm.min.js +1 -1
  130. package/modules/alarms.min.cjs +1 -1
  131. package/modules/alarms.min.js +1 -1
  132. package/modules/angular.d.ts +1 -1
  133. package/modules/angular.esm.min.js +1 -1
  134. package/modules/angular.min.cjs +1 -1
  135. package/modules/angular.min.js +1 -1
  136. package/modules/calendar.d.ts +1 -1
  137. package/modules/calendar.esm.min.js +1 -1
  138. package/modules/calendar.min.cjs +1 -1
  139. package/modules/calendar.min.js +1 -1
  140. package/modules/chart-alluvial.d.ts +1 -1
  141. package/modules/chart-alluvial.esm.min.js +1 -1
  142. package/modules/chart-alluvial.min.cjs +1 -1
  143. package/modules/chart-alluvial.min.js +1 -1
  144. package/modules/chart-arc.d.ts +1 -1
  145. package/modules/chart-arc.esm.min.js +1 -1
  146. package/modules/chart-arc.min.cjs +1 -1
  147. package/modules/chart-arc.min.js +1 -1
  148. package/modules/chart-barrace.d.ts +1 -1
  149. package/modules/chart-barrace.esm.min.js +1 -1
  150. package/modules/chart-barrace.min.cjs +1 -1
  151. package/modules/chart-barrace.min.js +1 -1
  152. package/modules/chart-bubblemap.d.ts +1 -1
  153. package/modules/chart-bubblemap.esm.min.js +1 -1
  154. package/modules/chart-bubblemap.min.cjs +1 -1
  155. package/modules/chart-bubblemap.min.js +1 -1
  156. package/modules/chart-bump.d.ts +1 -1
  157. package/modules/chart-bump.esm.min.js +1 -1
  158. package/modules/chart-bump.min.cjs +1 -1
  159. package/modules/chart-bump.min.js +1 -1
  160. package/modules/chart-calendar.d.ts +1 -1
  161. package/modules/chart-calendar.esm.min.js +1 -1
  162. package/modules/chart-calendar.min.cjs +1 -1
  163. package/modules/chart-calendar.min.js +1 -1
  164. package/modules/chart-choropleth.d.ts +1 -1
  165. package/modules/chart-choropleth.esm.min.js +1 -1
  166. package/modules/chart-choropleth.min.cjs +1 -1
  167. package/modules/chart-choropleth.min.js +1 -1
  168. package/modules/chart-decomposition.d.ts +1 -1
  169. package/modules/chart-decomposition.esm.min.js +1 -1
  170. package/modules/chart-decomposition.min.cjs +1 -1
  171. package/modules/chart-decomposition.min.js +1 -1
  172. package/modules/chart-diverging.d.ts +1 -1
  173. package/modules/chart-diverging.esm.min.js +1 -1
  174. package/modules/chart-diverging.min.cjs +1 -1
  175. package/modules/chart-diverging.min.js +1 -1
  176. package/modules/chart-dumbbell.d.ts +1 -1
  177. package/modules/chart-dumbbell.esm.min.js +1 -1
  178. package/modules/chart-dumbbell.min.cjs +1 -1
  179. package/modules/chart-dumbbell.min.js +1 -1
  180. package/modules/chart-fan.d.ts +1 -1
  181. package/modules/chart-fan.esm.min.js +1 -1
  182. package/modules/chart-fan.min.cjs +1 -1
  183. package/modules/chart-fan.min.js +1 -1
  184. package/modules/chart-forcetree.d.ts +1 -1
  185. package/modules/chart-forcetree.esm.min.js +1 -1
  186. package/modules/chart-forcetree.min.cjs +1 -1
  187. package/modules/chart-forcetree.min.js +1 -1
  188. package/modules/chart-hexbin.d.ts +1 -1
  189. package/modules/chart-hexbin.esm.min.js +1 -1
  190. package/modules/chart-hexbin.min.cjs +1 -1
  191. package/modules/chart-hexbin.min.js +1 -1
  192. package/modules/chart-hexmap.d.ts +1 -1
  193. package/modules/chart-hexmap.esm.min.js +1 -1
  194. package/modules/chart-hexmap.min.cjs +1 -1
  195. package/modules/chart-hexmap.min.js +1 -1
  196. package/modules/chart-icicle.d.ts +1 -1
  197. package/modules/chart-icicle.esm.min.js +1 -1
  198. package/modules/chart-icicle.min.cjs +1 -1
  199. package/modules/chart-icicle.min.js +1 -1
  200. package/modules/chart-markermap.d.ts +1 -1
  201. package/modules/chart-markermap.esm.min.js +1 -1
  202. package/modules/chart-markermap.min.cjs +1 -1
  203. package/modules/chart-markermap.min.js +1 -1
  204. package/modules/chart-motion.d.ts +1 -1
  205. package/modules/chart-motion.esm.min.js +1 -1
  206. package/modules/chart-motion.min.cjs +1 -1
  207. package/modules/chart-motion.min.js +1 -1
  208. package/modules/chart-pack.d.ts +1 -1
  209. package/modules/chart-pack.esm.min.js +1 -1
  210. package/modules/chart-pack.min.cjs +1 -1
  211. package/modules/chart-pack.min.js +1 -1
  212. package/modules/chart-parallel.d.ts +1 -1
  213. package/modules/chart-parallel.esm.min.js +1 -1
  214. package/modules/chart-parallel.min.cjs +1 -1
  215. package/modules/chart-parallel.min.js +1 -1
  216. package/modules/chart-pictorial.d.ts +1 -1
  217. package/modules/chart-pictorial.esm.min.js +1 -1
  218. package/modules/chart-pictorial.min.cjs +1 -1
  219. package/modules/chart-pictorial.min.js +1 -1
  220. package/modules/chart-polararea.d.ts +1 -1
  221. package/modules/chart-polararea.esm.min.js +1 -1
  222. package/modules/chart-polararea.min.cjs +1 -1
  223. package/modules/chart-polararea.min.js +1 -1
  224. package/modules/chart-polarscatter.d.ts +1 -1
  225. package/modules/chart-polarscatter.esm.min.js +1 -1
  226. package/modules/chart-polarscatter.min.cjs +1 -1
  227. package/modules/chart-polarscatter.min.js +1 -1
  228. package/modules/chart-pyramid.d.ts +1 -1
  229. package/modules/chart-pyramid.esm.min.js +1 -1
  230. package/modules/chart-pyramid.min.cjs +1 -1
  231. package/modules/chart-pyramid.min.js +1 -1
  232. package/modules/chart-radialbar.d.ts +1 -1
  233. package/modules/chart-radialbar.esm.min.js +1 -1
  234. package/modules/chart-radialbar.min.cjs +1 -1
  235. package/modules/chart-radialbar.min.js +1 -1
  236. package/modules/chart-ridgeline.d.ts +1 -1
  237. package/modules/chart-ridgeline.esm.min.js +1 -1
  238. package/modules/chart-ridgeline.min.cjs +1 -1
  239. package/modules/chart-ridgeline.min.js +1 -1
  240. package/modules/chart-roc.d.ts +1 -1
  241. package/modules/chart-roc.esm.min.js +1 -1
  242. package/modules/chart-roc.min.cjs +1 -1
  243. package/modules/chart-roc.min.js +1 -1
  244. package/modules/chart-scatter3d.d.ts +1 -1
  245. package/modules/chart-scatter3d.esm.min.js +1 -1
  246. package/modules/chart-scatter3d.min.cjs +1 -1
  247. package/modules/chart-scatter3d.min.js +1 -1
  248. package/modules/chart-serpentine.d.ts +1 -1
  249. package/modules/chart-serpentine.esm.min.js +1 -1
  250. package/modules/chart-serpentine.min.cjs +1 -1
  251. package/modules/chart-serpentine.min.js +1 -1
  252. package/modules/chart-slope.d.ts +1 -1
  253. package/modules/chart-slope.esm.min.js +1 -1
  254. package/modules/chart-slope.min.cjs +1 -1
  255. package/modules/chart-slope.min.js +1 -1
  256. package/modules/chart-spiral.d.ts +1 -1
  257. package/modules/chart-spiral.esm.min.js +1 -1
  258. package/modules/chart-spiral.min.cjs +1 -1
  259. package/modules/chart-spiral.min.js +1 -1
  260. package/modules/chart-splom.d.ts +1 -1
  261. package/modules/chart-splom.esm.min.js +1 -1
  262. package/modules/chart-splom.min.cjs +1 -1
  263. package/modules/chart-splom.min.js +1 -1
  264. package/modules/chart-tree.d.ts +1 -1
  265. package/modules/chart-tree.esm.min.js +1 -1
  266. package/modules/chart-tree.min.cjs +1 -1
  267. package/modules/chart-tree.min.js +1 -1
  268. package/modules/chart-venn.d.ts +1 -1
  269. package/modules/chart-venn.esm.min.js +1 -1
  270. package/modules/chart-venn.min.cjs +1 -1
  271. package/modules/chart-venn.min.js +1 -1
  272. package/modules/chart-voronoi.d.ts +1 -1
  273. package/modules/chart-voronoi.esm.min.js +1 -1
  274. package/modules/chart-voronoi.min.cjs +1 -1
  275. package/modules/chart-voronoi.min.js +1 -1
  276. package/modules/chart-waffle.d.ts +1 -1
  277. package/modules/chart-waffle.esm.min.js +1 -1
  278. package/modules/chart-waffle.min.cjs +1 -1
  279. package/modules/chart-waffle.min.js +1 -1
  280. package/modules/chart-wordcloud.d.ts +1 -1
  281. package/modules/chart-wordcloud.esm.min.js +1 -1
  282. package/modules/chart-wordcloud.min.cjs +1 -1
  283. package/modules/chart-wordcloud.min.js +1 -1
  284. package/modules/charts.d.ts +1 -1
  285. package/modules/charts.esm.min.js +1 -1
  286. package/modules/charts.min.cjs +1 -1
  287. package/modules/charts.min.js +1 -1
  288. package/modules/contextmenu.d.ts +1 -1
  289. package/modules/contextmenu.esm.min.js +1 -1
  290. package/modules/contextmenu.min.cjs +1 -1
  291. package/modules/contextmenu.min.js +1 -1
  292. package/modules/dashboard.d.ts +1 -1
  293. package/modules/dashboard.esm.min.js +1 -1
  294. package/modules/dashboard.min.cjs +1 -1
  295. package/modules/dashboard.min.js +1 -1
  296. package/modules/data-router.d.ts +1 -1
  297. package/modules/data-router.esm.min.js +1 -1
  298. package/modules/data-router.min.cjs +1 -1
  299. package/modules/data-router.min.js +1 -1
  300. package/modules/dataview.d.ts +1 -1
  301. package/modules/dataview.esm.min.js +1 -1
  302. package/modules/dataview.min.cjs +1 -1
  303. package/modules/dataview.min.js +1 -1
  304. package/modules/deckgl.d.ts +1 -1
  305. package/modules/deckgl.esm.min.js +1 -1
  306. package/modules/deckgl.min.cjs +1 -1
  307. package/modules/deckgl.min.js +1 -1
  308. package/modules/designer.d.ts +1 -1
  309. package/modules/designer.esm.min.js +1 -1
  310. package/modules/designer.min.cjs +1 -1
  311. package/modules/designer.min.js +1 -1
  312. package/modules/devtools.d.ts +1 -1
  313. package/modules/devtools.esm.min.js +1 -1
  314. package/modules/devtools.min.cjs +1 -1
  315. package/modules/devtools.min.js +1 -1
  316. package/modules/dhtmlx-compat.d.ts +1 -1
  317. package/modules/dhtmlx-compat.esm.min.js +1 -1
  318. package/modules/dhtmlx-compat.min.cjs +1 -1
  319. package/modules/dhtmlx-compat.min.js +1 -1
  320. package/modules/form.d.ts +1 -1
  321. package/modules/form.esm.min.js +1 -1
  322. package/modules/form.min.cjs +1 -1
  323. package/modules/form.min.js +1 -1
  324. package/modules/gantt.d.ts +1 -1
  325. package/modules/gantt.esm.min.js +1 -1
  326. package/modules/gantt.min.cjs +1 -1
  327. package/modules/gantt.min.js +1 -1
  328. package/modules/geo-europe-nuts.d.ts +1 -1
  329. package/modules/geo-europe-nuts.esm.min.js +1 -1
  330. package/modules/geo-europe-nuts.min.cjs +1 -1
  331. package/modules/geo-europe-nuts.min.js +1 -1
  332. package/modules/geo-uk.d.ts +1 -1
  333. package/modules/geo-uk.esm.min.js +1 -1
  334. package/modules/geo-uk.min.cjs +1 -1
  335. package/modules/geo-uk.min.js +1 -1
  336. package/modules/geo-us-states.d.ts +1 -1
  337. package/modules/geo-us-states.esm.min.js +1 -1
  338. package/modules/geo-us-states.min.cjs +1 -1
  339. package/modules/geo-us-states.min.js +1 -1
  340. package/modules/geo-world-110m.d.ts +1 -1
  341. package/modules/geo-world-110m.esm.min.js +1 -1
  342. package/modules/geo-world-110m.min.cjs +1 -1
  343. package/modules/geo-world-110m.min.js +1 -1
  344. package/modules/geo-world-50m.d.ts +1 -1
  345. package/modules/geo-world-50m.esm.min.js +1 -1
  346. package/modules/geo-world-50m.min.cjs +1 -1
  347. package/modules/geo-world-50m.min.js +1 -1
  348. package/modules/geometry.d.ts +1 -1
  349. package/modules/geometry.esm.min.js +1 -1
  350. package/modules/geometry.min.cjs +1 -1
  351. package/modules/geometry.min.js +1 -1
  352. package/modules/htmx.d.ts +1 -1
  353. package/modules/htmx.esm.min.js +2 -2
  354. package/modules/htmx.min.cjs +2 -2
  355. package/modules/htmx.min.js +2 -2
  356. package/modules/htmx.shared.esm.min.js +1 -1
  357. package/modules/htmx.shared.min.cjs +1 -1
  358. package/modules/htmx.shared.min.js +1 -1
  359. package/modules/kanban.d.ts +29 -2
  360. package/modules/kanban.esm.min.js +16 -14
  361. package/modules/kanban.esm.min.js.map +2 -2
  362. package/modules/kanban.min.cjs +15 -13
  363. package/modules/kanban.min.js +15 -13
  364. package/modules/kanban.min.js.map +2 -2
  365. package/modules/kpi.d.ts +1 -1
  366. package/modules/kpi.esm.min.js +1 -1
  367. package/modules/kpi.min.cjs +1 -1
  368. package/modules/kpi.min.js +1 -1
  369. package/modules/layout.d.ts +1 -1
  370. package/modules/layout.esm.min.js +1 -1
  371. package/modules/layout.min.cjs +1 -1
  372. package/modules/layout.min.js +1 -1
  373. package/modules/leaflet.d.ts +1 -1
  374. package/modules/leaflet.esm.min.js +1 -1
  375. package/modules/leaflet.min.cjs +1 -1
  376. package/modules/leaflet.min.js +1 -1
  377. package/modules/list.d.ts +1 -1
  378. package/modules/list.esm.min.js +1 -1
  379. package/modules/list.min.cjs +1 -1
  380. package/modules/list.min.js +1 -1
  381. package/modules/listview.d.ts +1 -1
  382. package/modules/listview.esm.min.js +1 -1
  383. package/modules/listview.min.cjs +1 -1
  384. package/modules/listview.min.js +1 -1
  385. package/modules/mapview.d.ts +1 -1
  386. package/modules/mapview.esm.min.js +1 -1
  387. package/modules/mapview.min.cjs +1 -1
  388. package/modules/mapview.min.js +1 -1
  389. package/modules/mock-socket.d.ts +1 -1
  390. package/modules/mock-socket.esm.min.js +1 -1
  391. package/modules/mock-socket.min.cjs +1 -1
  392. package/modules/mock-socket.min.js +1 -1
  393. package/modules/presets.d.ts +1 -1
  394. package/modules/presets.esm.min.js +1 -1
  395. package/modules/presets.min.cjs +1 -1
  396. package/modules/presets.min.js +1 -1
  397. package/modules/react.d.ts +1 -1
  398. package/modules/react.esm.min.js +1 -1
  399. package/modules/react.min.cjs +1 -1
  400. package/modules/react.min.js +1 -1
  401. package/modules/recordeditor.d.ts +1 -1
  402. package/modules/recordeditor.esm.min.js +1 -1
  403. package/modules/recordeditor.min.cjs +1 -1
  404. package/modules/recordeditor.min.js +1 -1
  405. package/modules/scheduler.d.ts +1 -1
  406. package/modules/scheduler.esm.min.js +1 -1
  407. package/modules/scheduler.min.cjs +1 -1
  408. package/modules/scheduler.min.js +1 -1
  409. package/modules/shell.d.ts +1 -1
  410. package/modules/shell.esm.min.js +1 -1
  411. package/modules/shell.min.cjs +1 -1
  412. package/modules/shell.min.js +1 -1
  413. package/modules/sidebar.d.ts +1 -1
  414. package/modules/sidebar.esm.min.js +1 -1
  415. package/modules/sidebar.min.cjs +1 -1
  416. package/modules/sidebar.min.js +1 -1
  417. package/modules/svelte.d.ts +1 -1
  418. package/modules/svelte.esm.min.js +1 -1
  419. package/modules/svelte.min.cjs +1 -1
  420. package/modules/svelte.min.js +1 -1
  421. package/modules/tabs.d.ts +1 -1
  422. package/modules/tabs.esm.min.js +1 -1
  423. package/modules/tabs.min.cjs +1 -1
  424. package/modules/tabs.min.js +1 -1
  425. package/modules/toolbar.d.ts +1 -1
  426. package/modules/toolbar.esm.min.js +1 -1
  427. package/modules/toolbar.min.cjs +1 -1
  428. package/modules/toolbar.min.js +1 -1
  429. package/modules/tree.d.ts +1 -1
  430. package/modules/tree.esm.min.js +1 -1
  431. package/modules/tree.min.cjs +1 -1
  432. package/modules/tree.min.js +1 -1
  433. package/modules/vue.d.ts +1 -1
  434. package/modules/vue.esm.min.js +1 -1
  435. package/modules/vue.min.cjs +1 -1
  436. package/modules/vue.min.js +1 -1
  437. package/modules/webcomponent.d.ts +1 -1
  438. package/modules/webcomponent.esm.min.js +2 -2
  439. package/modules/webcomponent.min.cjs +2 -2
  440. package/modules/webcomponent.min.js +2 -2
  441. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -9,6 +9,14 @@ and what it means for a grid already in production.
9
9
 
10
10
  ## [Unreleased]
11
11
 
12
+ ## [1.111.5] - 2026-10-22
13
+
14
+ ### Added
15
+
16
+ - Kanban: `maxColumnWidth` caps a column's width in `columnWidth: 'fill'` mode. Expanded columns share the width equally, never below `minColumnWidth` and never above `maxColumnWidth`; when the capped columns do not fill the host the board keeps its natural width, left aligned, and when they do not fit it scrolls as before. Collapsed columns stay narrow strips and take no share. Default: no cap, so existing boards are unchanged.
17
+
18
+ - Kanban: `board.setColumnWidth({ columnWidth, minColumnWidth, maxColumnWidth })` changes the fill-mode column-width range at runtime, re-flowing without a remount. A `minColumnWidth` above `maxColumnWidth` (at construction or at runtime) resolves to the minimum for both, with one warning (`kanban:min-max-column-width`).
19
+
12
20
  ## [1.111.4] - 2026-10-22
13
21
 
14
22
  ### Fixed
package/README.md CHANGED
@@ -9,7 +9,7 @@ forms, lists, trees and an app shell.
9
9
  Zero runtime dependencies, with adapters for React, Vue, Svelte, Angular, Web
10
10
  Components and htmx. Free on localhost, licensed per domain to ship.
11
11
 
12
- Version 1.111.4 · [latticegrid.dev](https://www.latticegrid.dev) · TOCLOCO Inc
12
+ Version 1.111.5 · [latticegrid.dev](https://www.latticegrid.dev) · TOCLOCO Inc
13
13
 
14
14
  ## Start
15
15
 
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.111.4",
2
+ "version": "1.111.5",
3
3
  "type": "module",
4
4
  "sideEffects": false,
5
5
  "module": "./fesm2022/toclocoinc-lattice-grid-angular.mjs",
package/docs/API.html CHANGED
@@ -382,7 +382,7 @@
382
382
  <div class="shell">
383
383
  <aside class="rail">
384
384
  <p class="rail__brand">Lattice Grid</p>
385
- <p class="rail__sub">API reference · v1.111.4</p>
385
+ <p class="rail__sub">API reference · v1.111.5</p>
386
386
  <nav>
387
387
  <div class="rail__group">
388
388
  <span class="rail__label">Start</span>
@@ -592,7 +592,7 @@
592
592
  </header>
593
593
 
594
594
  <p class="chips">
595
- <span class="chip">Version 1.111.4</span>
595
+ <span class="chip">Version 1.111.5</span>
596
596
  <span class="chip">Zero dependencies</span>
597
597
  <span class="chip"><a href="api-detail.html">Developer guide &rarr;</a></span>
598
598
  </p>
@@ -3515,7 +3515,7 @@ grid.destroy();
3515
3515
  <table>
3516
3516
  <thead><tr><th>Member</th><th>Returns</th><th>Description</th></tr></thead>
3517
3517
  <tbody>
3518
- <tr><td class="sig">getVersion()</td><td class="type">string</td><td class="desc">The version this grid came from, e.g. <code>'1.111.4'</code>. Also on the module as <code>getVersion()</code>, for when you have no grid to hand.</td></tr>
3518
+ <tr><td class="sig">getVersion()</td><td class="type">string</td><td class="desc">The version this grid came from, e.g. <code>'1.111.5'</code>. Also on the module as <code>getVersion()</code>, for when you have no grid to hand.</td></tr>
3519
3519
  <tr><td class="sig">get(key)</td><td class="type">unknown</td><td class="desc">Read any configuration key.</td></tr>
3520
3520
  <tr><td class="sig">set(key, value)</td><td class="type">void</td><td class="desc">Write one key. Every key is live; nothing needs a rebuild.</td></tr>
3521
3521
  <tr><td class="sig">setAll(values)</td><td class="type">void</td><td class="desc">Write several in one pass. Emits one <code>config:changed</code> for the batch, not one per key.</td></tr>
@@ -14405,6 +14405,25 @@ plain.destroy();
14405
14405
 
14406
14406
  <span class="kw">return</span> [base.columnWidth, base.minColumnWidth, fixed.columnWidth, auto.columnWidth, wide.minColumnWidth].join(' | ');</code></pre>
14407
14407
 
14408
+ <h3 id="kanban-max-column-width-example">Capping fill columns with maxColumnWidth, executed</h3>
14409
+ <p class="section-note">With <code>columnWidth: 'fill'</code>, <code>maxColumnWidth</code> stops a few columns from
14410
+ stretching across a wide host: each expanded column takes an equal share, never below <code>minColumnWidth</code>
14411
+ and never above <code>maxColumnWidth</code>; a board that does not fill its host stays left aligned. Headless, run on every build.</p>
14412
+ <pre data-run="js" data-expect="360 | 0" data-covers="export:createKanban config:KanbanConfig.maxColumnWidth"><code><span class="kw">const</span> { createKanban } = <span class="kw">await</span> import('../packages/modules/kanban/index.js');
14413
+
14414
+ <span class="kw">const</span> capped = createKanban(null, {
14415
+ rows: [], rowKey: 'id', columnProperty: 'status',
14416
+ columns: [{ id: 'todo' }, { id: 'doing' }, { id: 'done' }],
14417
+ columnWidth: 'fill', minColumnWidth: 260, maxColumnWidth: 360,
14418
+ });
14419
+
14420
+ <span class="kw">const</span> plain = createKanban(null, {
14421
+ rows: [], rowKey: 'id', columnProperty: 'status',
14422
+ columns: [{ id: 'todo' }],
14423
+ });
14424
+
14425
+ <span class="kw">return</span> [capped.maxColumnWidth, plain.maxColumnWidth].join(' | ');</code></pre>
14426
+
14408
14427
  <h3 id="kanban-sprint-example">Sprint, backlog and epic rollup, executed</h3>
14409
14428
  <p class="section-note">A sprint view, the backlog, and an epic rollup with progress toward the done column —
14410
14429
  headless, run on every build.</p>
@@ -31274,7 +31293,8 @@ return `next ${p.mean.toFixed(1)}; r2 ${f.r2.toFixed(1)}; band ${p.upper - p.low
31274
31293
  <tr><td class="name">selectable</td><td class="type">boolean</td><td class="desc">Whether card selection is enabled (default true). <small>(optional)</small></td></tr>
31275
31294
  <tr><td class="name">density</td><td class="type"><a href="#type-KanbanDensity">KanbanDensity</a> <small class="literals">'compact' | 'comfortable'</small></td><td class="desc">The card density (BACKLOG-0002107): `'compact'` tightens each card's padding and drops the subtitle; `'comfortable'` (the default) keeps the roomier card. <small>(optional)</small></td></tr>
31276
31295
  <tr><td class="name">columnWidth</td><td class="type"><a href="#type-KanbanColumnWidth">KanbanColumnWidth</a> <small class="literals">number | 'fill' | 'auto'</small></td><td class="desc">How wide each column is (BACKLOG-0002153). A number fixes the width in pixels; `'fill'` (the default) shares the board width equally between the columns, never below `minColumnWidth` — so a board whose columns fit fills its host, and one whose columns do not fit keeps them at the minimum and scrolls; `'auto'` keeps the natural fixed width from the `--lattice-board-column-width` token (default 280px). The CSS token, when set, still overrides the option. Collapsed columns stay narrow strips and the rest take the space; the fill follows host resizes. <small>(optional)</small></td></tr>
31277
- <tr><td class="name">minColumnWidth</td><td class="type">number</td><td class="desc">The pixel floor `'fill'` never drops a column below (default 240). <small>(optional)</small></td></tr>
31296
+ <tr><td class="name">minColumnWidth</td><td class="type">number</td><td class="desc">The pixel floor `'fill'` never drops a column below (default 240), paired with `maxColumnWidth` as the range `'fill'` honours. Both are also changeable at runtime through `Kanban#setColumnWidth`. A `minColumnWidth` above `maxColumnWidth` resolves to the minimum for both (one warning). <small>(optional)</small></td></tr>
31297
+ <tr><td class="name">maxColumnWidth</td><td class="type">number</td><td class="desc">The pixel ceiling for `'fill'` (BACKLOG-0005252; default none). Each expanded column takes an equal share of the width, never below `minColumnWidth` and never above `maxColumnWidth`. When the capped columns do not fill the host the board keeps its natural width, left aligned; when they do not fit it scrolls. Collapsed columns are excluded from the share. <small>(optional)</small></td></tr>
31278
31298
  <tr><td class="name">labels</td><td class="type">Record&lt;string, string&gt;</td><td class="desc">Host-localised words for the move announcements (grabbed/moved/dropped/reverted/cancelled). <small>(optional)</small></td></tr>
31279
31299
  <tr><td class="name">contextMenu</td><td class="type"><a href="#type-KanbanMenuItem">KanbanMenuItem</a>[] | ((card: <a href="#type-KanbanCard">KanbanCard</a>, selected: <a href="#type-KanbanCard">KanbanCard</a>[]) =&gt; <a href="#type-KanbanMenuItem">KanbanMenuItem</a>[])</td><td class="desc">A per-card context menu: items, or `fn(card, selectedCards)` returning items. Suppresses `card:contextmenu`. <small>(optional)</small></td></tr>
31280
31300
  </tbody>
@@ -31832,6 +31852,7 @@ return `next ${p.mean.toFixed(1)}; r2 ${f.r2.toFixed(1)}; band ${p.upper - p.low
31832
31852
  <tr><td class="name">sourceBound</td><td class="type">boolean</td><td class="desc">Whether the board is bound to a pushdown source and owns its own paged data path (BACKLOG-0002104): counts/sums from an engine GROUP BY, cards fetched per column page, moves written through the source. <small>(read-only)</small></td></tr>
31833
31853
  <tr><td class="name">columnWidth</td><td class="type"><a href="#type-KanbanColumnWidth">KanbanColumnWidth</a> <small class="literals">number | 'fill' | 'auto'</small></td><td class="desc">The resolved column-width mode (BACKLOG-0002153); see {@link KanbanConfig.columnWidth}. <small>(read-only)</small></td></tr>
31834
31854
  <tr><td class="name">minColumnWidth</td><td class="type">number</td><td class="desc">The resolved minimum column width in px (BACKLOG-0002153); see {@link KanbanConfig.minColumnWidth}. <small>(read-only)</small></td></tr>
31855
+ <tr><td class="name">maxColumnWidth</td><td class="type">number</td><td class="desc">The resolved maximum column width in px, `0` for none (BACKLOG-0005252); see {@link KanbanConfig.maxColumnWidth}. <small>(read-only)</small></td></tr>
31835
31856
  <tr><td class="name">filters</td><td class="type"><a href="#type-KanbanFilters">KanbanFilters</a></td><td class="desc">Named card predicates, composed with AND (BACKLOG-0001229). See {@link KanbanFilters}.</td></tr>
31836
31857
  <tr><td class="name">BACKLOG</td><td class="type">unknown</td><td class="desc">The sentinel `setSprint` value that selects the backlog (cards with no sprint). <small>(read-only)</small></td></tr>
31837
31858
  </tbody>
@@ -31893,6 +31914,7 @@ return `next ${p.mean.toFixed(1)}; r2 ${f.r2.toFixed(1)}; band ${p.upper - p.low
31893
31914
  <tr><td class="name">setError</td><td class="type">(message: string | null): <a href="#type-Kanban">Kanban</a></td><td class="desc"><code>message: string | null</code></td><td class="type"><code><a href="#type-Kanban">Kanban</a></code></td><td class="desc">Set (or clear with null) an error state, rendered as a host-supplied message.</td></tr>
31894
31915
  <tr><td class="name">setRows</td><td class="type">(rows: <a href="#type-KanbanRow">KanbanRow</a>[]): <a href="#type-Kanban">Kanban</a></td><td class="desc"><code>rows: <a href="#type-KanbanRow">KanbanRow</a>[]</code></td><td class="type"><code><a href="#type-Kanban">Kanban</a></code></td><td class="desc">Replace the source rows and re-render, and make that array the board's source again so a later `refresh()` re-reads it. Ignored with a warning on a grid-bound board.</td></tr>
31895
31916
  <tr><td class="name">setColumns</td><td class="type">(defs: <a href="#type-KanbanColumnDef">KanbanColumnDef</a>[]): <a href="#type-Kanban">Kanban</a></td><td class="desc"><code>defs: <a href="#type-KanbanColumnDef">KanbanColumnDef</a>[]</code></td><td class="type"><code><a href="#type-Kanban">Kanban</a></code></td><td class="desc">Replace the board's configured column set (BACKLOG-0001228). Keeps card placement and interaction state (collapsed columns, column order, quick filter, selection) for every column id that survives; a dropped id is not specially handled — a card whose value has nowhere configured to go re-derives an ad hoc column rather than becoming `unplaced` (the same "never silently drop a card" rule an unconfigured value already gets).</td></tr>
31917
+ <tr><td class="name">setColumnWidth</td><td class="type">(opts?: { columnWidth?: <a href="#type-KanbanColumnWidth">KanbanColumnWidth</a>; minColumnWidth?: number; maxColumnWidth?: number; }): <a href="#type-Kanban">Kanban</a></td><td class="desc"><code>opts?: { columnWidth?: <a href="#type-KanbanColumnWidth">KanbanColumnWidth</a>; minColumnWidth?: number; maxColumnWidth?: number; }</code></td><td class="type"><code><a href="#type-Kanban">Kanban</a></code></td><td class="desc">Change `columnWidth`/`minColumnWidth`/`maxColumnWidth` at runtime (BACKLOG-0005252): a partial options object, each key left at its current value when omitted. Re-flows the fill-mode CSS variables in place — no remount, so scroll, focus, selection and an open pop-out survive. A `minColumnWidth` above `maxColumnWidth` resolves to the minimum for both, with one warning.</td></tr>
31896
31918
  <tr><td class="name">refresh</td><td class="type">(): <a href="#type-Kanban">Kanban</a></td><td class="desc">&mdash;</td><td class="type"><code><a href="#type-Kanban">Kanban</a></code></td><td class="desc">Re-read the source and re-render: a bound grid's rows, or the configured array. Once rows have arrived through `rows.apply` nothing is re-read — the board regroups what it holds, so a routed feed is never thrown away.</td></tr>
31897
31919
  <tr><td class="name">reload</td><td class="type">(): Promise&lt;<a href="#type-Kanban">Kanban</a>&gt;</td><td class="desc">&mdash;</td><td class="type"><code>Promise&lt;<a href="#type-Kanban">Kanban</a>&gt;</code></td><td class="desc">Reload a source-bound board from its pushdown source (BACKLOG-0002104): drop the loaded pages and re-query the engine's column counts/sums, then fetch the first page of every column. On a client-side board this is `refresh()`. Called automatically at construction and after a search or filter change.</td></tr>
31898
31920
  <tr><td class="name">loadMore</td><td class="type">(columnId: string, laneId?: string): Promise&lt;boolean&gt;</td><td class="desc"><code>columnId: string</code><br><code>laneId?: string</code></td><td class="type"><code>Promise&lt;boolean&gt;</code></td><td class="desc">Fetch the next page of cards for a column (and, in swimlane mode, a lane) on a source-bound board (BACKLOG-0002104). The column scroll hook calls this as the user nears the bottom; a no-op resolving `false` when the board is not source-bound, the column is exhausted, or a page is in flight.</td></tr>
@@ -43337,7 +43359,7 @@ return `next ${p.mean.toFixed(1)}; r2 ${f.r2.toFixed(1)}; band ${p.upper - p.low
43337
43359
  <!-- END GENERATED TYPE REFERENCE -->
43338
43360
 
43339
43361
  <footer>
43340
- Lattice Grid 1.111.4 · Copyright © 2026 TOCLOCO Inc. All rights reserved.
43362
+ Lattice Grid 1.111.5 · Copyright © 2026 TOCLOCO Inc. All rights reserved.
43341
43363
  This document describes the behaviour of the shipped library. Where this guide and the code
43342
43364
  disagree, the code wins: please <a href="https://www.latticegrid.dev">tell us</a>.
43343
43365
  </footer>
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>Adapters API Reference — Lattice Grid 1.111.4</title>
16
+ <title>Adapters API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
package/docs/api/ai.html CHANGED
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>AI API Reference — Lattice Grid 1.111.4</title>
16
+ <title>AI API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>Alarms API Reference — Lattice Grid 1.111.4</title>
16
+ <title>Alarms API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>Calendar API Reference — Lattice Grid 1.111.4</title>
16
+ <title>Calendar API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>Charts API Reference — Lattice Grid 1.111.4</title>
16
+ <title>Charts API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>Dashboard API Reference — Lattice Grid 1.111.4</title>
16
+ <title>Dashboard API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>Data router API Reference — Lattice Grid 1.111.4</title>
16
+ <title>Data router API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>Data view API Reference — Lattice Grid 1.111.4</title>
16
+ <title>Data view API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>deck.gl API Reference — Lattice Grid 1.111.4</title>
16
+ <title>deck.gl API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>Designer API Reference — Lattice Grid 1.111.4</title>
16
+ <title>Designer API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>Form API Reference — Lattice Grid 1.111.4</title>
16
+ <title>Form API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>Gantt API Reference — Lattice Grid 1.111.4</title>
16
+ <title>Gantt API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>Geometry API Reference — Lattice Grid 1.111.4</title>
16
+ <title>Geometry API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>Grid API Reference — Lattice Grid 1.111.4</title>
16
+ <title>Grid API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
@@ -1925,7 +1925,7 @@ grid.destroy();
1925
1925
  <table>
1926
1926
  <thead><tr><th>Member</th><th>Returns</th><th>Description</th></tr></thead>
1927
1927
  <tbody>
1928
- <tr><td class="sig">getVersion()</td><td class="type">string</td><td class="desc">The version this grid came from, e.g. <code>'1.111.4'</code>. Also on the module as <code>getVersion()</code>, for when you have no grid to hand.</td></tr>
1928
+ <tr><td class="sig">getVersion()</td><td class="type">string</td><td class="desc">The version this grid came from, e.g. <code>'1.111.5'</code>. Also on the module as <code>getVersion()</code>, for when you have no grid to hand.</td></tr>
1929
1929
  <tr><td class="sig">get(key)</td><td class="type">unknown</td><td class="desc">Read any configuration key.</td></tr>
1930
1930
  <tr><td class="sig">set(key, value)</td><td class="type">void</td><td class="desc">Write one key. Every key is live; nothing needs a rebuild.</td></tr>
1931
1931
  <tr><td class="sig">setAll(values)</td><td class="type">void</td><td class="desc">Write several in one pass. Emits one <code>config:changed</code> for the batch, not one per key.</td></tr>
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>API Reference — Lattice Grid 1.111.4</title>
16
+ <title>API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
@@ -454,7 +454,7 @@
454
454
  <tr><td class="name"><a href="listview.html">The list view module</a></td><td class="desc"><code>createList</code>: a standalone, template-driven list over a real Lattice grid &mdash; selection, drag-and-drop reorder/move/copy between lists, and a data API.</td><td class="type">1</td><td class="type">15</td><td class="type">91</td></tr>
455
455
  <tr><td class="name"><a href="dataview.html">The data view module</a></td><td class="desc"><code>createDataView</code>: items laid out as template-drawn cards that wrap into rows &mdash; selection, two-dimensional keyboard navigation, drag to reorder, and drag between data views and list views.</td><td class="type">1</td><td class="type">17</td><td class="type">94</td></tr>
456
456
  <tr><td class="name"><a href="tree.html">The tree module</a></td><td class="desc"><code>createTree</code>: a standalone tree over a real Lattice grid &mdash; expand, select, tri-state checkboxes and drag to reparent.</td><td class="type">1</td><td class="type">10</td><td class="type">68</td></tr>
457
- <tr><td class="name"><a href="kanban.html">The board (kanban) view</a></td><td class="desc"><code>createKanban</code>: columns from any status property, drag or keyboard moves that write back, swimlanes, sprints, epics and the child grid.</td><td class="type">1</td><td class="type">50</td><td class="type">384</td></tr>
457
+ <tr><td class="name"><a href="kanban.html">The board (kanban) view</a></td><td class="desc"><code>createKanban</code>: columns from any status property, drag or keyboard moves that write back, swimlanes, sprints, epics and the child grid.</td><td class="type">1</td><td class="type">50</td><td class="type">387</td></tr>
458
458
  <tr><td class="name"><a href="gantt.html">The Gantt module</a></td><td class="desc"><code>createGantt</code>: the scheduling engine and the critical path, the four dependency links, milestones and summaries, and editable bars.</td><td class="type">1</td><td class="type">131</td><td class="type">891</td></tr>
459
459
  <tr><td class="name"><a href="calendar.html">The calendar viewer</a></td><td class="desc"><code>createCalendar</code>: a month grid and a week day-grid of rows as cards, keyed by a date field, with navigation, overflow and the viewer contract.</td><td class="type">1</td><td class="type">11</td><td class="type">91</td></tr>
460
460
  <tr><td class="name"><a href="scheduler.html">The resource scheduler</a></td><td class="desc"><code>createScheduler</code>: resources as rows in a left grid and events as bars on a shared time axis, with the Gantt's zoom scale, per-resource calendars and virtualised rows and time.</td><td class="type">1</td><td class="type">14</td><td class="type">105</td></tr>
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>Kanban API Reference — Lattice Grid 1.111.4</title>
16
+ <title>Kanban API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
@@ -396,6 +396,7 @@
396
396
  <a class="rail__sub-link" href="#kanban-card-parts-example">Richer card parts, executed</a>
397
397
  <a class="rail__sub-link" href="#kanban-tone-example">Label and badge tones, and a due format, executed</a>
398
398
  <a class="rail__sub-link" href="#kanban-column-width-example">Column width, executed</a>
399
+ <a class="rail__sub-link" href="#kanban-max-column-width-example">Capping fill columns with maxColumnWidth, executed</a>
399
400
  <a class="rail__sub-link" href="#kanban-sprint-example">Sprint, backlog and epic rollup, executed</a>
400
401
  <a class="rail__sub-link" href="#kanban-live-example">Live, driven by a Data Router, executed</a>
401
402
  <a class="rail__sub-link" href="#kanban-rebind-example">Re-bound to a replacement grid, executed</a>
@@ -795,6 +796,25 @@ plain.destroy();
795
796
 
796
797
  <span class="kw">return</span> [base.columnWidth, base.minColumnWidth, fixed.columnWidth, auto.columnWidth, wide.minColumnWidth].join(' | ');</code></pre>
797
798
 
799
+ <h3 id="kanban-max-column-width-example">Capping fill columns with maxColumnWidth, executed</h3>
800
+ <p class="section-note">With <code>columnWidth: 'fill'</code>, <code>maxColumnWidth</code> stops a few columns from
801
+ stretching across a wide host: each expanded column takes an equal share, never below <code>minColumnWidth</code>
802
+ and never above <code>maxColumnWidth</code>; a board that does not fill its host stays left aligned. Headless, run on every build.</p>
803
+ <pre data-run="js" data-expect="360 | 0" data-covers="export:createKanban config:KanbanConfig.maxColumnWidth"><code><span class="kw">const</span> { createKanban } = <span class="kw">await</span> import('../packages/modules/kanban/index.js');
804
+
805
+ <span class="kw">const</span> capped = createKanban(null, {
806
+ rows: [], rowKey: 'id', columnProperty: 'status',
807
+ columns: [{ id: 'todo' }, { id: 'doing' }, { id: 'done' }],
808
+ columnWidth: 'fill', minColumnWidth: 260, maxColumnWidth: 360,
809
+ });
810
+
811
+ <span class="kw">const</span> plain = createKanban(null, {
812
+ rows: [], rowKey: 'id', columnProperty: 'status',
813
+ columns: [{ id: 'todo' }],
814
+ });
815
+
816
+ <span class="kw">return</span> [capped.maxColumnWidth, plain.maxColumnWidth].join(' | ');</code></pre>
817
+
798
818
  <h3 id="kanban-sprint-example">Sprint, backlog and epic rollup, executed</h3>
799
819
  <p class="section-note">A sprint view, the backlog, and an epic rollup with progress toward the done column —
800
820
  headless, run on every build.</p>
@@ -1273,7 +1293,8 @@ board.destroy();
1273
1293
  <tr><td class="name">selectable</td><td class="type">boolean</td><td class="desc">Whether card selection is enabled (default true). <small>(optional)</small></td></tr>
1274
1294
  <tr><td class="name">density</td><td class="type"><a href="types.html#type-KanbanDensity">KanbanDensity</a> <small class="literals">'compact' | 'comfortable'</small></td><td class="desc">The card density (BACKLOG-0002107): `'compact'` tightens each card's padding and drops the subtitle; `'comfortable'` (the default) keeps the roomier card. <small>(optional)</small></td></tr>
1275
1295
  <tr><td class="name">columnWidth</td><td class="type"><a href="types.html#type-KanbanColumnWidth">KanbanColumnWidth</a> <small class="literals">number | 'fill' | 'auto'</small></td><td class="desc">How wide each column is (BACKLOG-0002153). A number fixes the width in pixels; `'fill'` (the default) shares the board width equally between the columns, never below `minColumnWidth` — so a board whose columns fit fills its host, and one whose columns do not fit keeps them at the minimum and scrolls; `'auto'` keeps the natural fixed width from the `--lattice-board-column-width` token (default 280px). The CSS token, when set, still overrides the option. Collapsed columns stay narrow strips and the rest take the space; the fill follows host resizes. <small>(optional)</small></td></tr>
1276
- <tr><td class="name">minColumnWidth</td><td class="type">number</td><td class="desc">The pixel floor `'fill'` never drops a column below (default 240). <small>(optional)</small></td></tr>
1296
+ <tr><td class="name">minColumnWidth</td><td class="type">number</td><td class="desc">The pixel floor `'fill'` never drops a column below (default 240), paired with `maxColumnWidth` as the range `'fill'` honours. Both are also changeable at runtime through `Kanban#setColumnWidth`. A `minColumnWidth` above `maxColumnWidth` resolves to the minimum for both (one warning). <small>(optional)</small></td></tr>
1297
+ <tr><td class="name">maxColumnWidth</td><td class="type">number</td><td class="desc">The pixel ceiling for `'fill'` (BACKLOG-0005252; default none). Each expanded column takes an equal share of the width, never below `minColumnWidth` and never above `maxColumnWidth`. When the capped columns do not fill the host the board keeps its natural width, left aligned; when they do not fit it scrolls. Collapsed columns are excluded from the share. <small>(optional)</small></td></tr>
1277
1298
  <tr><td class="name">labels</td><td class="type">Record&lt;string, string&gt;</td><td class="desc">Host-localised words for the move announcements (grabbed/moved/dropped/reverted/cancelled). <small>(optional)</small></td></tr>
1278
1299
  <tr><td class="name">contextMenu</td><td class="type"><a href="#type-KanbanMenuItem">KanbanMenuItem</a>[] | ((card: <a href="#type-KanbanCard">KanbanCard</a>, selected: <a href="#type-KanbanCard">KanbanCard</a>[]) =&gt; <a href="#type-KanbanMenuItem">KanbanMenuItem</a>[])</td><td class="desc">A per-card context menu: items, or `fn(card, selectedCards)` returning items. Suppresses `card:contextmenu`. <small>(optional)</small></td></tr>
1279
1300
  </tbody>
@@ -1831,6 +1852,7 @@ board.destroy();
1831
1852
  <tr><td class="name">sourceBound</td><td class="type">boolean</td><td class="desc">Whether the board is bound to a pushdown source and owns its own paged data path (BACKLOG-0002104): counts/sums from an engine GROUP BY, cards fetched per column page, moves written through the source. <small>(read-only)</small></td></tr>
1832
1853
  <tr><td class="name">columnWidth</td><td class="type"><a href="types.html#type-KanbanColumnWidth">KanbanColumnWidth</a> <small class="literals">number | 'fill' | 'auto'</small></td><td class="desc">The resolved column-width mode (BACKLOG-0002153); see {@link KanbanConfig.columnWidth}. <small>(read-only)</small></td></tr>
1833
1854
  <tr><td class="name">minColumnWidth</td><td class="type">number</td><td class="desc">The resolved minimum column width in px (BACKLOG-0002153); see {@link KanbanConfig.minColumnWidth}. <small>(read-only)</small></td></tr>
1855
+ <tr><td class="name">maxColumnWidth</td><td class="type">number</td><td class="desc">The resolved maximum column width in px, `0` for none (BACKLOG-0005252); see {@link KanbanConfig.maxColumnWidth}. <small>(read-only)</small></td></tr>
1834
1856
  <tr><td class="name">filters</td><td class="type"><a href="#type-KanbanFilters">KanbanFilters</a></td><td class="desc">Named card predicates, composed with AND (BACKLOG-0001229). See {@link KanbanFilters}.</td></tr>
1835
1857
  <tr><td class="name">BACKLOG</td><td class="type">unknown</td><td class="desc">The sentinel `setSprint` value that selects the backlog (cards with no sprint). <small>(read-only)</small></td></tr>
1836
1858
  </tbody>
@@ -1892,6 +1914,7 @@ board.destroy();
1892
1914
  <tr><td class="name">setError</td><td class="type">(message: string | null): <a href="#type-Kanban">Kanban</a></td><td class="desc"><code>message: string | null</code></td><td class="type"><code><a href="#type-Kanban">Kanban</a></code></td><td class="desc">Set (or clear with null) an error state, rendered as a host-supplied message.</td></tr>
1893
1915
  <tr><td class="name">setRows</td><td class="type">(rows: <a href="types.html#type-KanbanRow">KanbanRow</a>[]): <a href="#type-Kanban">Kanban</a></td><td class="desc"><code>rows: <a href="types.html#type-KanbanRow">KanbanRow</a>[]</code></td><td class="type"><code><a href="#type-Kanban">Kanban</a></code></td><td class="desc">Replace the source rows and re-render, and make that array the board's source again so a later `refresh()` re-reads it. Ignored with a warning on a grid-bound board.</td></tr>
1894
1916
  <tr><td class="name">setColumns</td><td class="type">(defs: <a href="types.html#type-KanbanColumnDef">KanbanColumnDef</a>[]): <a href="#type-Kanban">Kanban</a></td><td class="desc"><code>defs: <a href="types.html#type-KanbanColumnDef">KanbanColumnDef</a>[]</code></td><td class="type"><code><a href="#type-Kanban">Kanban</a></code></td><td class="desc">Replace the board's configured column set (BACKLOG-0001228). Keeps card placement and interaction state (collapsed columns, column order, quick filter, selection) for every column id that survives; a dropped id is not specially handled — a card whose value has nowhere configured to go re-derives an ad hoc column rather than becoming `unplaced` (the same "never silently drop a card" rule an unconfigured value already gets).</td></tr>
1917
+ <tr><td class="name">setColumnWidth</td><td class="type">(opts?: { columnWidth?: <a href="types.html#type-KanbanColumnWidth">KanbanColumnWidth</a>; minColumnWidth?: number; maxColumnWidth?: number; }): <a href="#type-Kanban">Kanban</a></td><td class="desc"><code>opts?: { columnWidth?: <a href="types.html#type-KanbanColumnWidth">KanbanColumnWidth</a>; minColumnWidth?: number; maxColumnWidth?: number; }</code></td><td class="type"><code><a href="#type-Kanban">Kanban</a></code></td><td class="desc">Change `columnWidth`/`minColumnWidth`/`maxColumnWidth` at runtime (BACKLOG-0005252): a partial options object, each key left at its current value when omitted. Re-flows the fill-mode CSS variables in place — no remount, so scroll, focus, selection and an open pop-out survive. A `minColumnWidth` above `maxColumnWidth` resolves to the minimum for both, with one warning.</td></tr>
1895
1918
  <tr><td class="name">refresh</td><td class="type">(): <a href="#type-Kanban">Kanban</a></td><td class="desc">&mdash;</td><td class="type"><code><a href="#type-Kanban">Kanban</a></code></td><td class="desc">Re-read the source and re-render: a bound grid's rows, or the configured array. Once rows have arrived through `rows.apply` nothing is re-read — the board regroups what it holds, so a routed feed is never thrown away.</td></tr>
1896
1919
  <tr><td class="name">reload</td><td class="type">(): Promise&lt;<a href="#type-Kanban">Kanban</a>&gt;</td><td class="desc">&mdash;</td><td class="type"><code>Promise&lt;<a href="#type-Kanban">Kanban</a>&gt;</code></td><td class="desc">Reload a source-bound board from its pushdown source (BACKLOG-0002104): drop the loaded pages and re-query the engine's column counts/sums, then fetch the first page of every column. On a client-side board this is `refresh()`. Called automatically at construction and after a search or filter change.</td></tr>
1897
1920
  <tr><td class="name">loadMore</td><td class="type">(columnId: string, laneId?: string): Promise&lt;boolean&gt;</td><td class="desc"><code>columnId: string</code><br><code>laneId?: string</code></td><td class="type"><code>Promise&lt;boolean&gt;</code></td><td class="desc">Fetch the next page of cards for a column (and, in swimlane mode, a lane) on a source-bound board (BACKLOG-0002104). The column scroll hook calls this as the user nears the bottom; a no-op resolving `false` when the board is not source-bound, the column is exhausted, or a page is in flight.</td></tr>
package/docs/api/kpi.html CHANGED
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>KPI API Reference — Lattice Grid 1.111.4</title>
16
+ <title>KPI API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>Layout API Reference — Lattice Grid 1.111.4</title>
16
+ <title>Layout API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>Leaflet API Reference — Lattice Grid 1.111.4</title>
16
+ <title>Leaflet API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>List API Reference — Lattice Grid 1.111.4</title>
16
+ <title>List API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>List view API Reference — Lattice Grid 1.111.4</title>
16
+ <title>List view API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>Map view API Reference — Lattice Grid 1.111.4</title>
16
+ <title>Map view API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>Mock socket API Reference — Lattice Grid 1.111.4</title>
16
+ <title>Mock socket API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>Presets API Reference — Lattice Grid 1.111.4</title>
16
+ <title>Presets API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>Scheduler API Reference — Lattice Grid 1.111.4</title>
16
+ <title>Scheduler API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>Shell API Reference — Lattice Grid 1.111.4</title>
16
+ <title>Shell API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>Tabs API Reference — Lattice Grid 1.111.4</title>
16
+ <title>Tabs API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>Tree API Reference — Lattice Grid 1.111.4</title>
16
+ <title>Tree API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an
@@ -13,7 +13,7 @@
13
13
  Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
14
14
  a file share or from behind a firewall with nothing else present.
15
15
  -->
16
- <title>Types API Reference — Lattice Grid 1.111.4</title>
16
+ <title>Types API Reference — Lattice Grid 1.111.5</title>
17
17
  <style>
18
18
  /* ---------------------------------------------------------------
19
19
  Palette lifted from the grid's own theme, so the reference reads as an