@toclocoinc/lattice-grid 1.111.5 → 1.111.7

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 (443) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +1 -1
  3. package/angular/package.json +1 -1
  4. package/docs/API.html +4 -4
  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 +1 -1
  20. package/docs/api/kanban.html +1 -1
  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 +4 -4
  35. package/docs/warnings.json +1 -1
  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 +3 -3
  310. package/modules/designer.esm.min.js.map +1 -1
  311. package/modules/designer.min.cjs +3 -3
  312. package/modules/designer.min.js +3 -3
  313. package/modules/designer.min.js.map +1 -1
  314. package/modules/devtools.d.ts +1 -1
  315. package/modules/devtools.esm.min.js +1 -1
  316. package/modules/devtools.min.cjs +1 -1
  317. package/modules/devtools.min.js +1 -1
  318. package/modules/dhtmlx-compat.d.ts +1 -1
  319. package/modules/dhtmlx-compat.esm.min.js +1 -1
  320. package/modules/dhtmlx-compat.min.cjs +1 -1
  321. package/modules/dhtmlx-compat.min.js +1 -1
  322. package/modules/form.d.ts +1 -1
  323. package/modules/form.esm.min.js +9 -2
  324. package/modules/form.esm.min.js.map +1 -1
  325. package/modules/form.min.cjs +9 -2
  326. package/modules/form.min.js +9 -2
  327. package/modules/form.min.js.map +1 -1
  328. package/modules/gantt.d.ts +1 -1
  329. package/modules/gantt.esm.min.js +1 -1
  330. package/modules/gantt.min.cjs +1 -1
  331. package/modules/gantt.min.js +1 -1
  332. package/modules/geo-europe-nuts.d.ts +1 -1
  333. package/modules/geo-europe-nuts.esm.min.js +1 -1
  334. package/modules/geo-europe-nuts.min.cjs +1 -1
  335. package/modules/geo-europe-nuts.min.js +1 -1
  336. package/modules/geo-uk.d.ts +1 -1
  337. package/modules/geo-uk.esm.min.js +1 -1
  338. package/modules/geo-uk.min.cjs +1 -1
  339. package/modules/geo-uk.min.js +1 -1
  340. package/modules/geo-us-states.d.ts +1 -1
  341. package/modules/geo-us-states.esm.min.js +1 -1
  342. package/modules/geo-us-states.min.cjs +1 -1
  343. package/modules/geo-us-states.min.js +1 -1
  344. package/modules/geo-world-110m.d.ts +1 -1
  345. package/modules/geo-world-110m.esm.min.js +1 -1
  346. package/modules/geo-world-110m.min.cjs +1 -1
  347. package/modules/geo-world-110m.min.js +1 -1
  348. package/modules/geo-world-50m.d.ts +1 -1
  349. package/modules/geo-world-50m.esm.min.js +1 -1
  350. package/modules/geo-world-50m.min.cjs +1 -1
  351. package/modules/geo-world-50m.min.js +1 -1
  352. package/modules/geometry.d.ts +1 -1
  353. package/modules/geometry.esm.min.js +1 -1
  354. package/modules/geometry.min.cjs +1 -1
  355. package/modules/geometry.min.js +1 -1
  356. package/modules/htmx.d.ts +1 -1
  357. package/modules/htmx.esm.min.js +2 -2
  358. package/modules/htmx.min.cjs +2 -2
  359. package/modules/htmx.min.js +2 -2
  360. package/modules/htmx.shared.esm.min.js +1 -1
  361. package/modules/htmx.shared.min.cjs +1 -1
  362. package/modules/htmx.shared.min.js +1 -1
  363. package/modules/kanban.d.ts +1 -1
  364. package/modules/kanban.esm.min.js +1 -1
  365. package/modules/kanban.min.cjs +1 -1
  366. package/modules/kanban.min.js +1 -1
  367. package/modules/kpi.d.ts +1 -1
  368. package/modules/kpi.esm.min.js +1 -1
  369. package/modules/kpi.min.cjs +1 -1
  370. package/modules/kpi.min.js +1 -1
  371. package/modules/layout.d.ts +1 -1
  372. package/modules/layout.esm.min.js +1 -1
  373. package/modules/layout.min.cjs +1 -1
  374. package/modules/layout.min.js +1 -1
  375. package/modules/leaflet.d.ts +1 -1
  376. package/modules/leaflet.esm.min.js +1 -1
  377. package/modules/leaflet.min.cjs +1 -1
  378. package/modules/leaflet.min.js +1 -1
  379. package/modules/list.d.ts +1 -1
  380. package/modules/list.esm.min.js +1 -1
  381. package/modules/list.min.cjs +1 -1
  382. package/modules/list.min.js +1 -1
  383. package/modules/listview.d.ts +1 -1
  384. package/modules/listview.esm.min.js +1 -1
  385. package/modules/listview.min.cjs +1 -1
  386. package/modules/listview.min.js +1 -1
  387. package/modules/mapview.d.ts +1 -1
  388. package/modules/mapview.esm.min.js +1 -1
  389. package/modules/mapview.min.cjs +1 -1
  390. package/modules/mapview.min.js +1 -1
  391. package/modules/mock-socket.d.ts +1 -1
  392. package/modules/mock-socket.esm.min.js +1 -1
  393. package/modules/mock-socket.min.cjs +1 -1
  394. package/modules/mock-socket.min.js +1 -1
  395. package/modules/presets.d.ts +1 -1
  396. package/modules/presets.esm.min.js +1 -1
  397. package/modules/presets.min.cjs +1 -1
  398. package/modules/presets.min.js +1 -1
  399. package/modules/react.d.ts +1 -1
  400. package/modules/react.esm.min.js +1 -1
  401. package/modules/react.min.cjs +1 -1
  402. package/modules/react.min.js +1 -1
  403. package/modules/recordeditor.d.ts +1 -1
  404. package/modules/recordeditor.esm.min.js +1 -1
  405. package/modules/recordeditor.min.cjs +1 -1
  406. package/modules/recordeditor.min.js +1 -1
  407. package/modules/scheduler.d.ts +1 -1
  408. package/modules/scheduler.esm.min.js +1 -1
  409. package/modules/scheduler.min.cjs +1 -1
  410. package/modules/scheduler.min.js +1 -1
  411. package/modules/shell.d.ts +1 -1
  412. package/modules/shell.esm.min.js +1 -1
  413. package/modules/shell.min.cjs +1 -1
  414. package/modules/shell.min.js +1 -1
  415. package/modules/sidebar.d.ts +1 -1
  416. package/modules/sidebar.esm.min.js +1 -1
  417. package/modules/sidebar.min.cjs +1 -1
  418. package/modules/sidebar.min.js +1 -1
  419. package/modules/svelte.d.ts +1 -1
  420. package/modules/svelte.esm.min.js +1 -1
  421. package/modules/svelte.min.cjs +1 -1
  422. package/modules/svelte.min.js +1 -1
  423. package/modules/tabs.d.ts +1 -1
  424. package/modules/tabs.esm.min.js +1 -1
  425. package/modules/tabs.min.cjs +1 -1
  426. package/modules/tabs.min.js +1 -1
  427. package/modules/toolbar.d.ts +1 -1
  428. package/modules/toolbar.esm.min.js +1 -1
  429. package/modules/toolbar.min.cjs +1 -1
  430. package/modules/toolbar.min.js +1 -1
  431. package/modules/tree.d.ts +1 -1
  432. package/modules/tree.esm.min.js +1 -1
  433. package/modules/tree.min.cjs +1 -1
  434. package/modules/tree.min.js +1 -1
  435. package/modules/vue.d.ts +1 -1
  436. package/modules/vue.esm.min.js +1 -1
  437. package/modules/vue.min.cjs +1 -1
  438. package/modules/vue.min.js +1 -1
  439. package/modules/webcomponent.d.ts +1 -1
  440. package/modules/webcomponent.esm.min.js +2 -2
  441. package/modules/webcomponent.min.cjs +2 -2
  442. package/modules/webcomponent.min.js +2 -2
  443. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.111.5, chart-venn module
2
+ * Lattice Grid 1.111.7, chart-venn 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.111.5, chart-venn module
2
+ * Lattice Grid 1.111.7, chart-venn 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.111.5, chart-venn module
2
+ * Lattice Grid 1.111.7, chart-venn 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.111.5, chart-voronoi module type declarations
2
+ * Lattice Grid 1.111.7, chart-voronoi 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.111.5, chart-voronoi module
2
+ * Lattice Grid 1.111.7, chart-voronoi 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.111.5, chart-voronoi module
2
+ * Lattice Grid 1.111.7, chart-voronoi 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.111.5, chart-voronoi module
2
+ * Lattice Grid 1.111.7, chart-voronoi 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.111.5, chart-waffle module type declarations
2
+ * Lattice Grid 1.111.7, chart-waffle 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.111.5, chart-waffle module
2
+ * Lattice Grid 1.111.7, chart-waffle 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.111.5, chart-waffle module
2
+ * Lattice Grid 1.111.7, chart-waffle 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.111.5, chart-waffle module
2
+ * Lattice Grid 1.111.7, chart-waffle 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.111.5, chart-wordcloud module type declarations
2
+ * Lattice Grid 1.111.7, chart-wordcloud 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.111.5, chart-wordcloud module
2
+ * Lattice Grid 1.111.7, chart-wordcloud 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.111.5, chart-wordcloud module
2
+ * Lattice Grid 1.111.7, chart-wordcloud 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.111.5, chart-wordcloud module
2
+ * Lattice Grid 1.111.7, chart-wordcloud 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.111.5, charts module type declarations
2
+ * Lattice Grid 1.111.7, charts 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.111.5, charts module
2
+ * Lattice Grid 1.111.7, charts 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.111.5, charts module
2
+ * Lattice Grid 1.111.7, charts 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.111.5, charts module
2
+ * Lattice Grid 1.111.7, charts 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.111.5, contextmenu module type declarations
2
+ * Lattice Grid 1.111.7, contextmenu 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.111.5, contextmenu module
2
+ * Lattice Grid 1.111.7, contextmenu 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.111.5, contextmenu module
2
+ * Lattice Grid 1.111.7, contextmenu 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.111.5, contextmenu module
2
+ * Lattice Grid 1.111.7, contextmenu 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.111.5, dashboard module type declarations
2
+ * Lattice Grid 1.111.7, dashboard 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.111.5, dashboard module
2
+ * Lattice Grid 1.111.7, dashboard 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.111.5, dashboard module
2
+ * Lattice Grid 1.111.7, dashboard 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.111.5, dashboard module
2
+ * Lattice Grid 1.111.7, dashboard 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.111.5, data-router module type declarations
2
+ * Lattice Grid 1.111.7, data-router 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.111.5, data-router module
2
+ * Lattice Grid 1.111.7, data-router 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.111.5, data-router module
2
+ * Lattice Grid 1.111.7, data-router 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.111.5, data-router module
2
+ * Lattice Grid 1.111.7, data-router 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.111.5, dataview module type declarations
2
+ * Lattice Grid 1.111.7, dataview 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.111.5, dataview module
2
+ * Lattice Grid 1.111.7, dataview 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.111.5, dataview module
2
+ * Lattice Grid 1.111.7, dataview 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.111.5, dataview module
2
+ * Lattice Grid 1.111.7, dataview 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.111.5, deckgl module type declarations
2
+ * Lattice Grid 1.111.7, deckgl 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.111.5, deckgl module
2
+ * Lattice Grid 1.111.7, deckgl 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.111.5, deckgl module
2
+ * Lattice Grid 1.111.7, deckgl 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.111.5, deckgl module
2
+ * Lattice Grid 1.111.7, deckgl 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.111.5, designer module type declarations
2
+ * Lattice Grid 1.111.7, designer 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.111.5, designer module
2
+ * Lattice Grid 1.111.7, designer module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -22,7 +22,7 @@ ${k}`,messages:[{role:"system",content:e},{role:"user",content:k}],schema:v};ret
22
22
  .${d} .${o}__free{display:block;margin-top:2px;font-size:12px;font-weight:500;letter-spacing:0;opacity:.92}
23
23
  @media print{.${d} .${o}{opacity:1}}
24
24
  `;class b{#e;#t;#n;#r=null;#o=[];#i;#u=0;#s=null;#a=null;#d=!1;constructor(R){this.#a=R.owner||null,this.#a&&E(this.#a.setAttribute)&&this.#a.setAttribute(u,""),this.#e=R.grid,this.#t=R.document,this.#n=R.element,this.#i=R.window||(typeof globalThis>"u"?{}:globalThis)}mount(){this.refresh(),E(this.#e.on)&&this.#o.push(this.#e.on("licence:changed",()=>this.refresh()));const R=this.#e.licence&&this.#e.licence.ready;R&&E(R.then)&&R.then(()=>this.refresh(),()=>this.refresh())}refresh(){const R=this.#g()&&!this.#f();R&&!this.#r?(this.#h(),this.#p()):!R&&this.#r&&(this.#l(),this.#c())}#f(){const R=this.#n;let O=R&&R.parentNode;for(this.#a&&O===this.#a&&(O=O.parentNode);O&&O.nodeType===1;){if(E(O.hasAttribute)&&O.hasAttribute(u))return!0;O=O.parentNode}return!1}#m(){const R=this.#i;if(!R||!E(R.matchMedia))return!1;try{return!!R.matchMedia("(prefers-reduced-motion: reduce)").matches}catch{return!1}}#p(){this.#c(),E(this.#i.setTimeout)&&(this.#m()||(this.#s=this.#i.setTimeout(()=>{if(this.#s=null,!this.#g()||this.#f()){this.#l();return}this.#u=(this.#u+1)%w.length,this.#l(),this.#h(),this.#p()},v)))}#c(){this.#s!==null&&E(this.#i.clearTimeout)&&this.#i.clearTimeout(this.#s),this.#s=null}#g(){const R=this.#e.licence;return!!(R&&E(R.watermark)&&R.watermark())}#h(){const R=this.#e.messages&&E(this.#e.messages.t)?this.#e.messages:G,O=V(this.#t,"a",{class:`${o}__link`,text:R.t("licence.watermark"),attrs:{href:r,target:"_blank",rel:"noopener noreferrer"}}),P=V(this.#t,"span",{class:`${o}__free`,text:R.t("licence.watermark.free")});this.#r=V(this.#t,"div",{class:`${o} ${o}--${w[this.#u]}`,attrs:{role:"note",title:"This grid is unlicensed for this domain. Visit latticegrid.dev for a licence."},children:[O,P]}),this.#o.push(f(this.#r,"pointerdown",h=>{E(h.stopPropagation)&&h.stopPropagation()})),this.#n&&E(this.#n.appendChild)&&this.#n.appendChild(this.#r),typeof queueMicrotask=="function"&&!this.#d&&(this.#d=!0,queueMicrotask(()=>{this.#d=!1,this.#r&&this.#f()&&(this.#l(),this.#c())}))}#l(){this.#r&&E(this.#r.remove)&&this.#r.remove(),this.#r=null}destroy(){this.#c(),this.#a&&E(this.#a.removeAttribute)&&this.#a.removeAttribute(u);for(const R of this.#o)R();this.#o=[],this.#l()}}function i(U={},R=void 0){const O=globalThis[k],P=!U.licence&&R&&E(R.querySelector)?R.querySelector('meta[name="lattice-license"]')?.getAttribute("content"):null,h=U.licence||P;return h&&L(h),{licence:{watermark:()=>Z(),get ready(){return O?O.verify():Promise.resolve()}},on:(S,T)=>S==="licence:changed"&&O?O.onSettled(()=>T()):()=>{}}}function _(U,R={}){const O=U&&U.ownerDocument;if(!O||!E(O.createElement))return{destroy(){},refresh(){}};const P=O.defaultView||void 0,h=i(R,O);let S=null,T=null,$=null,A=!1;const K=()=>{if(!O.getElementById(a)&&O.head){const g=O.createElement("style");g.id=a,g.textContent=p,O.head.appendChild(g)}P&&E(P.getComputedStyle)&&P.getComputedStyle(U).position==="static"&&(U.style.position="relative"),S=O.createElement("div"),S.className=d,U.appendChild(S),T=new b({grid:h,document:O,element:S,window:P,owner:U}),T.mount(),P&&E(P.MutationObserver)&&($=new P.MutationObserver(()=>{!A&&S&&S.parentNode!==U&&U.appendChild(S)}),$.observe(U,{childList:!0}))},t=()=>{A||(T?T.refresh():h.licence.watermark()&&K())};t();const n=h.on("licence:changed",t);return h.licence.ready,{refresh:t,destroy(){A||(A=!0,n(),$&&$.disconnect(),T&&T.destroy(),S&&S.parentNode&&S.parentNode.removeChild(S))}}}const s=b}),lt("packages/modules/dashboard/index.js",function(c,ne){"use strict";Object.defineProperty(c,"createDashboard",{enumerable:!0,get:function(){return h}}),Object.defineProperty(c,"validateDashboardSpec",{enumerable:!0,get:function(){return G}}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return S}});const E=ne("packages/core/src/internal/warn.js").warnOnce,X=ne("packages/core/src/internal/predicates.js").isFunction,e=ne("packages/core/src/internal/ready.js").createReadySignal,Z=ne("packages/modules/dashboard/spec.js"),L=Z.inspectSpec,G=Z.validateDashboardSpec,V=Z.copySpec,f=Z.sameSpec,o=Z.isPlain,r=Z.parseSourceRef,w=Z.readRelation,v=ne("packages/modules/dashboard/propose.js"),k=v.proposalRequest,u=v.parseProposal,d=v.checkProposal,p=ne("packages/dom/src/watermark.js").mountViewWatermark,b=Object.freeze({createGrid:"LatticeGrid",createHeadlessGrid:"LatticeGrid",createPushdownSource:"LatticeGrid",createChart:"LatticeGrid",createLayout:"LatticeGridLayout",createKPI:"LatticeGridKPI",createCalendar:"LatticeGridCalendar",createKanban:"LatticeGridKanban",createGantt:"LatticeGridGantt",bindLeaflet:"LatticeGridLeaflet",bindDeck:"LatticeGridDeck"}),i=50;function _(T){const $=globalThis,A={};for(const[K,t]of Object.entries(b)){const n=T[K],g=$[t];A[K]=X(n)?n:g&&X(g[K])?g[K]:null}return A}function s(T){const $=[];return T.createGrid&&$.push("grid"),T.createChart&&T.createHeadlessGrid&&$.push("chart"),T.createKPI&&$.push("kpi"),T.createCalendar&&$.push("calendar"),T.createKanban&&$.push("board"),T.createGantt&&$.push("gantt"),T.createChart&&T.createHeadlessGrid&&$.push("map"),$.push("html"),$}function U(T){const $=new Map;for(const A of T.slice(0,i))if(!(!A||typeof A!="object"))for(const[K,t]of Object.entries(A)){const n=typeof t=="number"||t===null||t===void 0;$.set(K,($.has(K)?$.get(K):!0)&&n)}return[...$].map(([A,K])=>K?{field:A,type:"number"}:{field:A})}function R(T,$){const A=new Set,K=(t,n)=>{if(!(n>3)){if(typeof t=="string"&&t!=="")A.add(t);else if(Array.isArray(t))t.forEach(g=>K(g,n+1));else if(o(t))for(const[g,l]of Object.entries(t))A.add(g),K(l,n+1)}};K($,0);for(const t of A)for(const n of['"',"'","`"])if(T.includes(`${n}${t}${n}`))return!0;return!1}function O(T){const $=[],A=console.warn;console.warn=(...t)=>{t[0]==="[lattice]"&&$.push(t.slice(1).map(String).join(" ")),A.apply(console,t)};try{return{value:T(),heard:$}}catch(t){return{error:t,heard:$}}finally{console.warn=A}}const P=600;function h(T,$,A={}){const K=o(A)?A:{},t=_(K);let n={panels:[]},g=null,l=new Map,y=[],m=[],j=new Map,D=[],Y=new Set,C=null,J=null;const ae=[];let q=0;const x=(te,be,Ue)=>{D.push({id:te,path:be,message:Ue})},N=(te,be)=>{E(`dashboard:panel:${te}`,`createDashboard: panel "${te}" ${be}`)},B=(te,be,Ue)=>{E(`dashboard:link:${te}->${be}`,`createDashboard: the link from "${te}" to "${be}" ${Ue}`)};let ie=new Map;const z=te=>{let be=te;for(let Ue=0;be&&be.viewsGridOf&&Ue<64;Ue++)be=l.get(be.viewsGridOf);return be||te},Q=te=>{const be=r(te),Ue=be&&be.kind==="grid"?be.of:te,_e=l.get(Ue);return _e&&_e.grid?_e.grid:null},F=te=>{const be={},Ue={};if(te.rowKey!==void 0&&(be.rowKey=te.rowKey),Array.isArray(te.columns)&&(be.columns=te.columns),te.kind==="rows")Ue.rows=te.rows,be.columns||(be.columns=U(te.rows));else if(te.kind==="pushdown"){if(!t.createPushdownSource)return{base:be,data:Ue,refusal:"its source is a pushdown adapter and there is no createPushdownSource on the page (load the grid, or pass options.createPushdownSource)"};const _e={};for(const[Ne,Ke]of Object.entries(te))["kind","columns","rowKey"].includes(Ne)||(_e[Ne]=Ke);Ue.source=t.createPushdownSource(_e)}return{base:be,data:Ue}},W=(te,be)=>{te.kind==="router"&&(te.router.attach(be,te.predicate,te.route),j.set(be,te.router))},ee=(te,be)=>{const Ue=Q(te);if(Ue)return{grid:Ue};const _e=r(te),Ne=_e&&_e.kind==="grid"?_e.of:te,Ke=n.sources[Ne];if(!Ke)return null;if(!t.createHeadlessGrid)return{refusal:"there is no createHeadlessGrid on the page to hold its related source (load the grid, or pass options.createHeadlessGrid)"};const at=F(Ke);if(at.refusal)return{refusal:at.refusal};const dt=t.createHeadlessGrid({...at.base,...at.data});return be.push(dt),W(Ke,dt),{grid:dt}},I=te=>{const be=g.payload(te.id),_e=be.ownerDocument.createElement("div");_e.style.width="100%",_e.style.height="100%",be.appendChild(_e);const Ne=o(te.options)?te.options:{},Ke={id:te.id,kind:te.kind,def:te,el:_e,grid:null,viewer:null,owned:[],ownedMap:null,viewsGridOf:null,sourceId:null,rootKind:"own"},at=[...ie.get(te.id)||[]],dt=ke=>{for(const We of Ke.owned.reverse())oe(We);_e.remove(),x(`dashboard:panel:${te.id}`,`panels[${n.panels.indexOf(te)}]`,`was not built: ${ke}`),N(te.id,`was not built: ${ke}`)},Le=r(te.source);let fe=null;Le&&Le.kind==="named"?(fe=n.sources[Le.id],Ke.sourceId=Le.id,fe.kind==="grid"?Ke.viewsGridOf=fe.of:Ke.rootKind=fe.kind):Le&&(Ke.viewsGridOf=Le.of),Ke.viewsGridOf&&(Ke.rootKind=z(l.get(Ke.viewsGridOf)).rootKind);const Te=Ke.viewsGridOf?l.get(Ke.viewsGridOf).grid:null,H={grid:"createGrid",chart:"createChart",kpi:"createKPI",calendar:"createCalendar",board:"createKanban",gantt:"createGantt",map:{chart:"createChart",leaflet:"bindLeaflet",deckgl:"bindDeck"}[te.binding||"chart"]}[te.kind];if(H&&!t[H]){dt(`there is no ${H} on the page (load its module, or pass options.${H})`);return}if(te.kind!=="grid"&&te.kind!=="html"&&fe&&fe.kind!=="grid"&&!t.createHeadlessGrid){dt("there is no createHeadlessGrid on the page to hold its source (load the grid, or pass options.createHeadlessGrid)");return}let re=null;if(fe&&fe.kind!=="grid"&&(re=F(fe),re.refusal)){dt(re.refusal);return}const ye=()=>{if(Te)return Te;if(!re)return null;let ke=re.base;if(te.kind==="calendar"&&Array.isArray(ke.columns)){const Xe=new Set([Ne.startProperty,Ne.endProperty].filter(Ie=>typeof Ie=="string"));ke={...ke,columns:ke.columns.map(Ie=>Xe.has(Ie.field)||Xe.has(Ie.id)?{...Ie,edit:Ie.edit===void 0?!0:Ie.edit}:Ie)}}const We=!!Ne.selection||te.kind==="board"||te.kind==="gantt",je={...ke,...We?{selection:"multiple"}:{},...re.data};if(te.kind==="gantt"&&Array.isArray(je.columns)&&o(Ne.columns)){const Xe=new Set(Object.values(Ne.columns).filter(Ie=>typeof Ie=="string"&&Ie));Xe.size&&(je.columns=je.columns.map(Ie=>{const qe=o(Ie)?Ie:typeof Ie=="string"?{field:Ie}:{},Ye=qe.id??qe.field;return typeof Ye!="string"||!Xe.has(Ye)?qe:{...qe,edit:{enabled:!0,...o(qe.edit)?qe.edit:{}}}}))}const Je=t.createHeadlessGrid(je);return Ke.owned.push(Je),W(fe,Je),Je},Ae=O(()=>{if(te.kind==="html")return typeof Ne.html=="string"?_e.innerHTML=Ne.html:typeof Ne.text=="string"&&(_e.textContent=Ne.text),null;if(te.kind==="grid"){let Je=Ne;if(re){for(const Ie of["rows","source"])Ne[Ie]!==void 0&&at.push(`options.${Ie} was not used: the panel's source "${Ke.sourceId}" supplies its rows`);Je={...re.base,...Ne,...re.data}}else if(Te){const qe={...(o(Ne.source)&&Ne.source.mode==="derived"?Ne.source:null)||{},mode:"derived",from:Te};if(o(qe.join)&&typeof qe.join.with=="string"){const Ye=ee(qe.join.with,Ke.owned);Ye&&Ye.grid?qe.join={...qe.join,with:Ye.grid}:(at.push(`its join to "${qe.join.with}" was not made: ${Ye?Ye.refusal:"it names no declared source or widget"}`),delete qe.join)}Je={...Ne,source:qe},Ne.columns===void 0&&(Je.columns=Te.columns.all().map(Ye=>({id:Ye.id,field:Ye.field,title:Ye.title,type:Ye.type})))}const Xe=t.createGrid(_e,Je);return Ke.owned.push(Xe),Ke.grid=Xe,fe&&W(fe,Xe),Xe}const ke=ye();if(Ke.grid=ke,te.kind==="kpi")return t.createKPI(_e,ke?{...Ne,grid:ke}:Ne);if(te.kind==="calendar")return t.createCalendar(_e,ke?{...Ne,grid:ke}:Ne);if(te.kind==="board"){for(const Xe of["grid","container","rows"])Ne[Xe]!==void 0&&at.push(`options.${Xe} was not used: the dashboard sets it from the panel's source and window`);const Je=t.createKanban(_e,ke?{...Ne,grid:ke}:Ne);if(ke&&X(Je.on)&&ke.selection&&X(ke.selection.set)){const Xe=Ie=>{ke.selection.set(Ie&&Array.isArray(Ie.keys)?Ie.keys:[])};Je.on("selection:changed",Xe)}return Je}if(te.kind==="gantt"){const{split:Je,tasks:Xe,...Ie}=Ne,qe=Re=>{if(!Re||!X(Re.rows.forEach))return Array.isArray(Xe)?Xe:[];const De=[];return Re.rows.forEach(tt=>{tt&&tt.group||tt&&tt.pending===!0||De.push(tt.data!==void 0&&tt.data!==null?tt.data:tt)}),De},Ye=t.createGantt({...Ie,grid:ke,tasks:ke?qe(ke):Array.isArray(Xe)?Xe:[]});if(ke&&X(ke.on)){const Re=()=>Ye.setTasks(qe(ke));Ke.follow=[ke.on("rows:changed",Re),ke.on("filter:changed",Re)]}return ke&&ke.selection&&X(ke.selection.set)&&X(Ye.on)&&(Ke.follow=[...Ke.follow||[],Ye.on("selectionChange",()=>ke.selection.set(Ye.selected()))]),Ye.mountSplit(_e,{...o(Je)?Je:{},createGrid:t.createGrid}),Ye}const We=te.kind==="map"&&te.binding||"chart";if(We==="chart"){for(const Je of["grid","container"])Ne[Je]!==void 0&&at.push(`options.${Je} was not used: the dashboard sets it from the panel's source and window`);return t.createChart({...Ne,grid:ke,container:_e})}if(We==="leaflet"){const Je=X(Ne.map)?Ne.map(_e):Ne.map;return X(Ne.map)&&(Ke.ownedMap={map:Je,end:"remove"}),t.bindLeaflet(ke,{...Ne,map:Je})}const je=X(Ne.deck)?Ne.deck(_e):Ne.deck;return X(Ne.deck)&&(Ke.ownedMap={map:je,end:"finalize"}),t.bindDeck(ke,{...Ne,deck:je})});if(Ae.error){dt(`${H||"the panel"} threw: ${Ae.error&&Ae.error.message}`);return}Ke.viewer=Ae.value;for(const ke of Ae.heard)R(ke,Ne)&&at.push(`its ${te.kind} refused part of its options: ${ke}`);if(at.length){const ke=at.join("; ");x(`dashboard:panel:${te.id}`,`panels[${n.panels.indexOf(te)}]`,`was built, but ${ke}`),N(te.id,`was built, but ${ke}`)}l.set(te.id,Ke)},oe=te=>{const be=j.get(te);be&&(be.detach(te),j.delete(te)),te&&X(te.destroy)&&te.destroy()},de=(te,be)=>{const Ue=Ae=>{x(`dashboard:link:${te.from}->${te.to}`,`links[${be}]`,`was not made: ${Ae}`),B(te.from,te.to,`was not made: ${Ae}`)},_e=l.get(te.from),Ne=l.get(te.to);if(!_e||!Ne){Ue(`the ${_e?"target":"source"} panel was not built`);return}if(!_e.grid){Ue(`"${te.from}" has no grid to read a selection from (a ${_e.kind} panel that reads no source)`);return}if(!Ne.grid){Ue(`"${te.to}" has no grid to filter (a ${Ne.kind} panel that reads no source)`);return}if(Ne.grid===_e.grid){Ue(`"${te.to}" draws the grid the link starts from, so it would filter its own selection away`);return}const Ke=w(te.on),at=j.get(_e.grid),dt=j.get(Ne.grid);if(at&&dt){if(at!==dt){Ue("the two panels read routes of two different Data Routers, and a relation is drawn within one");return}at.relate([{from:_e.grid,to:Ne.grid,on:Ke}]),m.push({from:te.from,to:te.to,def:te,teardown:()=>{}});return}if(z(_e).rootKind==="pushdown"&&z(Ne).rootKind==="pushdown"){Ue("both panels read pushdown sources and no Data Router is shared between them: the rows selected in one engine cannot filter the other engine's query. Route both through one router to relate them");return}if(X(Ke)){Ue("a relation function is the Data Router's form and needs both panels on one router; name the columns instead");return}const Le=`dashboard:${te.from}->${te.to}`,fe=z(Ne).rootKind==="pushdown",{from:Te,to:H}=Ke,re=()=>{const Ae=new Set;for(const We of _e.grid.selection.rows()){const je=We&&We.data!==void 0?We.data:We;je&&typeof je=="object"&&Ae.add(je[Te])}if(!Ae.size){Ne.grid.filters.where(Le,null);return}const ke={deps:[H]};fe&&(ke.condition={col:H,op:"in",value:[...Ae]}),Ne.grid.filters.where(Le,We=>Ae.has(We[H]),ke)},ye=_e.grid.on("selection:changed",re);re(),m.push({from:te.from,to:te.to,def:te,teardown:()=>{ye(),l.get(te.to)===Ne&&Ne.grid.filters.where(Le,null)}})},pe=te=>{const be=l.get(te);if(be){for(const Ue of[...l.values()])Ue.viewsGridOf===te&&(pe(Ue.id),g&&g.windows().includes(Ue.id)&&g.close(Ue.id));for(const Ue of m.filter(_e=>_e.from===te||_e.to===te))Ue.teardown();m=m.filter(Ue=>Ue.from!==te&&Ue.to!==te),$e(be),l.delete(te),y=y.filter(Ue=>Ue!==te)}},$e=te=>{for(const be of[...te.follow||[]].reverse())X(be)&&be();te.viewer&&te.viewer!==te.grid&&X(te.viewer.destroy)&&te.viewer.destroy(),te.ownedMap&&te.ownedMap.map&&X(te.ownedMap.map[te.ownedMap.end])&&te.ownedMap.map[te.ownedMap.end]();for(const be of[...te.owned].reverse())oe(be);te.el&&te.el.parentNode&&te.el.remove()},le=()=>{He.fail(new Error("lattice-grid: the dashboard was destroyed before it became ready.")),T&&T.__latticeDashboard===Be&&(T.__latticeDashboard=null),J&&g&&g.restore(J.seq[J.index]),J=null;for(const te of m)te.teardown();m=[];for(const te of[...y].reverse()){const be=l.get(te);be&&$e(be)}C&&C(),C=null,g&&g.destroy(),g=null,l=new Map,y=[],j=new Map},me=(te,be)=>{if(!g||!o(te)||te.id==null||String(te.id)==="")return!1;const Ue=String(te.id);if(l.has(Ue))return!1;const _e=V(te);if(n.panels.push(_e),!g.windows().includes(Ue)){const Ne={...o(be)?be:{},id:Ue};Ne.title===void 0&&typeof _e.title=="string"&&(Ne.title=_e.title),g.add(Ne)}return I(_e),l.has(Ue)?(y.includes(Ue)||y.push(Ue),!0):(g.windows().includes(Ue)&&g.close(Ue),n.panels=n.panels.filter(Ne=>Ne!==_e),!1)},xe=(te,be)=>{if(!g||!o(te)||te.id==null)return!1;const Ue=String(te.id);if(!l.has(Ue))return!1;const _e=y.indexOf(Ue);pe(Ue);const Ne=V(te),Ke=n.panels.findIndex(at=>o(at)&&String(at.id)===Ue);return Ke>=0?n.panels[Ke]=Ne:n.panels.push(Ne),o(be)&&g.windows().includes(Ue)&&g.move(Ue,be),I(Ne),l.has(Ue)?(y.includes(Ue)||y.splice(_e<0?y.length:_e,0,Ue),!0):!1},Ge=te=>{if(!g)return!1;const be=String(te),Ue=l.has(be)||g.windows().includes(be);return pe(be),g.windows().includes(be)&&g.close(be),n.panels=n.panels.filter(_e=>!(o(_e)&&String(_e.id)===be)),Ue},we=te=>{D=[],Y=new Set;const be=L(te);if(be.fatal){n={panels:[]},x("dashboard:spec","",be.fatal),E("dashboard:spec",`createDashboard: ${be.fatal}; a spec is { layout, panels, sources, links }. Nothing was built.`);return}n=V(te),o(n.sources)||(n.sources={}),Array.isArray(n.links)||(n.links=[]);for(const H of Object.keys(n.sources))be.badSources.has(H)||Y.add(H);ie=new Map;for(const H of be.problems){const re=/^panels\[(\d+)\]/.exec(H.path),ye=H.link!==void 0?n.links[H.link]:null;if(H.panel!==void 0&&re&&be.badPanels.has(Number(re[1])))x(`dashboard:panel:${H.panel}`,H.path,`was not built: ${H.message}`),N(H.panel,`was not built: ${H.path} ${H.message}`);else if(H.panel!==void 0)ie.set(H.panel,[...ie.get(H.panel)||[],`${H.path} ${H.message}`]);else if(o(ye)&&typeof ye.from=="string"&&typeof ye.to=="string"){const Ae=!be.badLinks.has(H.link);x(`dashboard:link:${ye.from}->${ye.to}`,H.path,Ae?H.message:`was not made: ${H.message}`),B(ye.from,ye.to,`${Ae?"was made, but":"was not made:"} ${H.path} ${H.message}`)}else x(`dashboard:spec:${H.path}`,H.path,H.message),E(`dashboard:spec:${H.path}`,`createDashboard: spec ${H.path} ${H.message}`)}if(!T||!X(T.appendChild)){x("dashboard:el","","the element is not an element"),E("dashboard:el","createDashboard: the first argument is not an element to mount on. Nothing was built.");return}if(!t.createLayout){x("dashboard:layout","layout","there is no createLayout on the page"),E("dashboard:layout","createDashboard: there is no createLayout on the page; load modules/layout or pass options.createLayout. Nothing was built.");return}const Ue=n.panels.filter((H,re)=>!be.badPanels.has(re)),_e=o(n.layout)?n.layout:{},Ne=new Map;(Array.isArray(_e.windows)?_e.windows:[]).forEach((H,re)=>{be.badWindows.has(re)||Ne.set(H.id,H)});const Ke=Ue.map(H=>{const re={...Ne.get(H.id)||{},id:H.id};return re.title===void 0&&typeof H.title=="string"&&(re.title=H.title),re}),{windows:at,...dt}=_e;g=t.createLayout(T,{stackBelow:P,...dt,windows:Ke}),C=g.on("window:closed",H=>pe(H.id));const Le=H=>{const re=r(H.source);if(re&&re.kind==="grid")return re.of;const ye=re?n.sources[re.id]:null;return ye&&ye.kind==="grid"?ye.of:null},fe=H=>{const re=o(H.options)?H.options.source:null;if(!o(re)||re.mode!=="derived"||!o(re.join))return[];const ye=r(re.join.with);return ye&&ye.kind==="grid"?[ye.of]:[]},Te=[...Ue];for(;Te.length;){const H=Te.findIndex(Ae=>![Le(Ae),...fe(Ae)].filter(Boolean).some(We=>Te.some(je=>je.id===We))),[re]=Te.splice(Math.max(H,0),1),ye=Le(re);ye&&!l.has(ye)?(x(`dashboard:panel:${re.id}`,`panels[${n.panels.indexOf(re)}].source`,`was not built: "${ye}", whose grid it views, was not built`),N(re.id,`was not built: "${ye}", whose grid it views, was not built`)):I(re),!l.has(re.id)&&g.windows().includes(re.id)&&g.close(re.id)}y=n.panels.map(H=>H&&H.id).filter(H=>l.has(H)),n.links.forEach((H,re)=>{be.badLinks.has(re)||de(H,re)})},ge=()=>{const te=g?g.getLayout():{windows:[]},be=new Map(te.windows.map(Le=>[Le.id,Le])),Ue=o(n.layout)?n.layout:{},_e=new Map((Array.isArray(Ue.windows)?Ue.windows:[]).filter(Le=>o(Le)).map(Le=>[Le.id,Le])),Ne=y.map(Le=>{const fe=V(_e.get(Le)||{id:Le}),Te=be.get(Le);return Te&&Object.assign(fe,{xPos:Te.xPos,yPos:Te.yPos,xSize:Te.xSize,ySize:Te.ySize}),Te&&Te.height==="content"&&(fe.height!=="content"&&(fe.height="content"),fe.minHeight==null&&Te.minHeight!=null&&(fe.minHeight=Te.minHeight),fe.maxHeight==null&&Te.maxHeight!=null&&(fe.maxHeight=Te.maxHeight)),fe}),{windows:Ke,...at}=Ue,dt={};for(const Le of Object.keys(n.sources||{}))Y.has(Le)&&(dt[Le]=V(n.sources[Le]));return{layout:{...V(at),windows:Ne},panels:y.map(Le=>V(l.get(Le).def)),sources:dt,links:m.map(Le=>V(Le.def))}},ce=te=>{const be=n.sources[te];if(Array.isArray(be.columns))return be.columns.filter(o).map(_e=>({id:String(_e.id??_e.field),type:_e.type||"text"}));const Ue=[...l.values()].find(_e=>_e.grid&&(_e.sourceId===te||be.kind==="grid"&&_e.id===be.of));return Ue?Ue.grid.columns.all().map(_e=>({id:_e.id,type:_e.type||"text"})):be.kind==="rows"?U(be.rows).map(_e=>({id:_e.field,type:_e.type||"text"})):[]},he=(te,be)=>{const Ue=n.sources[te];if(Ue.kind==="rows")return Ue.rows.slice(0,be);const _e=[...l.values()].find(Ne=>Ne.grid&&Ne.sourceId===te);return _e?_e.grid.rows.data().slice(0,be):[]},ve=te=>(E("dashboard:present",`dashboard.present: ${te}; nothing is presented.`),!1);we($);const He=e();Promise.allSettled([...l.values()].map(te=>te.viewer&&te.viewer.ready&&X(te.viewer.ready.then)?te.viewer.ready:Promise.resolve())).then(()=>He.settleAfterFrames());let Ee=()=>{};const Be={get el(){return T},get layout(){return g},get presenting(){return J?J.seq[J.index]:null},ready:He.promise,spec(){return ge()},apply(te){const be=j.size>0;return le(),we(te),be&&j.size&&E("dashboard:router",`dashboard.apply: ${j.size} grid(s) read a Data Router route and were rebuilt; a router does not re-send rows to a route attached after they arrived, so they fill from its next load() or push().`),Be.problems()},panels(){return[...y]},panel(te){const be=l.get(te);return be?{id:be.id,kind:be.kind,el:be.el,grid:be.grid,viewer:be.viewer}:null},problems(){return D.map(te=>({...te}))},async propose(te,be={}){const Ue=K.ai,_e=X(Ue)?Ue:Ue&&X(Ue.ask)?Ue.ask:null;if(!_e)return E("dashboard:propose","dashboard.propose: there is no AI on this dashboard (options.ai.ask); nothing was asked. Load modules/ai and pass the same ask() createAI takes."),{spec:null,warnings:["there is no AI on this dashboard (options.ai.ask); nothing was asked"]};const Ne=o(be)?be:{},Ke=Ne.source;if(typeof Ke!="string"||!Y.has(Ke)){const H=`"${Ke}" is not a usable source of this dashboard; nothing was asked`;return E("dashboard:proposal",`dashboard.propose: the proposal has problems, each in the returned warnings: ${H}`),{spec:null,warnings:[H]}}const at=ce(Ke),dt=Number.isFinite(Ne.maxRows)?Math.max(0,Ne.maxRows):i,Le=k(String(te),{source:Ke,columns:at,kinds:s(t),rows:Ne.rows===!0?he(Ke,dt):void 0,signal:Ne.signal}),fe=await _e(Le),Te=d(u(fe),{source:Ke,definition:n.sources[Ke],columns:at,kinds:s(t)});return Te.warnings.length&&E("dashboard:proposal",`dashboard.propose: the proposal has problems, each in the returned warnings: ${Te.warnings[0]}`),Te},saveView(te){if(typeof te!="string"||te.trim()==="")return E("dashboard:view-name",`dashboard.saveView: ${JSON.stringify(te)} is not a view name; nothing was saved.`),null;const be={},Ue={},_e={},Ne={};for(const dt of y){const Le=l.get(dt);Le.kind==="grid"&&Le.grid?be[dt]=Le.grid.state.get():Le.kind==="calendar"&&Le.viewer&&X(Le.viewer.getState)?Ue[dt]=Le.viewer.getState():Le.kind==="board"&&Le.viewer&&X(Le.viewer.getState)?_e[dt]=Le.viewer.getState():Le.kind==="gantt"&&Le.viewer&&X(Le.viewer.getState)&&(Ne[dt]=Le.viewer.getState())}const Ke=ae.findIndex(dt=>dt.name===te),at={id:Ke>=0?ae[Ke].id:`view-${++q}`,name:te,spec:ge(),grids:be,calendars:Ue,boards:_e,gantts:Ne};return Ke>=0?ae[Ke]=at:ae.push(at),V(at)},views(){return ae.map(te=>V(te))},applyView(te){const be=typeof te=="string"?ae.find(_e=>_e.id===te):te;if(!o(be)||!o(be.spec))return E("dashboard:view",`dashboard.applyView: ${JSON.stringify(typeof te=="string"?te:typeof te)} is not a saved view; nothing was applied.`),!1;const Ue=_e=>({..._e,layout:o(_e.layout)?{..._e.layout,windows:(Array.isArray(_e.layout.windows)?_e.layout.windows:[]).map(Ne=>{const{xPos:Ke,yPos:at,xSize:dt,ySize:Le,...fe}=Ne;return fe})}:void 0});g&&f(Ue(ge()),Ue(V(be.spec)))?g.setLayout(be.spec.layout.windows):Be.apply(be.spec);for(const[_e,Ne]of Object.entries(o(be.grids)?be.grids:{})){const Ke=l.get(_e);Ke&&Ke.kind==="grid"&&Ke.grid&&Ke.grid.state.apply(Ne)}for(const[_e,Ne]of Object.entries(o(be.calendars)?be.calendars:{})){const Ke=l.get(_e);Ke&&Ke.kind==="calendar"&&Ke.viewer&&X(Ke.viewer.setState)&&Ke.viewer.setState(Ne)}for(const[_e,Ne]of Object.entries(o(be.boards)?be.boards:{})){const Ke=l.get(_e);Ke&&Ke.kind==="board"&&Ke.viewer&&X(Ke.viewer.setState)&&Ke.viewer.setState(Ne)}for(const[_e,Ne]of Object.entries(o(be.gantts)?be.gantts:{})){const Ke=l.get(_e);Ke&&Ke.kind==="gantt"&&Ke.viewer&&X(Ke.viewer.setState)&&Ke.viewer.setState(Ne)}return!0},present(te={}){const be=o(te)?te:{};if(!g||!y.length)return ve("the dashboard has no panels");let Ue=[...y];if(Array.isArray(be.panels)){const Ne=be.panels.filter(Ke=>!l.has(Ke));if(Ne.length)return ve(`${Ne.map(Ke=>JSON.stringify(Ke)).join(", ")} is not a built panel`);if(Ue=[...be.panels],!Ue.length)return ve("the list of panels is empty")}const _e=Number.isFinite(be.from)?Math.min(Math.max(Math.trunc(be.from),0),Ue.length-1):0;return J={seq:Ue,index:_e},g.maximise(Ue[_e]),!0},step(te=1){if(!J||!g)return-1;const be=Math.min(Math.max(J.index+Math.trunc(Number(te)||0),0),J.seq.length-1);return J.index=be,g.maximise(J.seq[be]),be},stopPresenting(){return J?(g&&g.restore(J.seq[J.index]),J=null,!0):!1},applyConfig(te){const be=o(te)?te:{},Ue={added:0,updated:0,removed:0};if(!g)return Ue;for(const Ne of Array.isArray(be.remove)?be.remove:[])Ge(Ne)&&(Ue.removed+=1);const _e=Ne=>{if(!o(Ne)||!o(Ne.panel))return;const Ke=Ne.panel.id!=null?String(Ne.panel.id):null;Ke!==null&&(l.has(Ke)?xe(Ne.panel,Ne.window)&&(Ue.updated+=1):me(Ne.panel,Ne.window)&&(Ue.added+=1))};for(const Ne of Array.isArray(be.update)?be.update:[])_e(Ne);for(const Ne of Array.isArray(be.add)?be.add:[])_e(Ne);return Ue},destroy(){Ee(),le()}};return T&&X(T.appendChild)&&(T.__latticeDashboard=Be),T&&X(T.appendChild)&&(Ee=p(T,K).destroy),Be}const S=h}),lt("packages/modules/designer/messages.js",function(c,ne){"use strict";Object.defineProperty(c,"MESSAGES",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(c,"resolveMessages",{enumerable:!0,get:function(){return X}});const E=ne("packages/core/src/internal/predicates.js").isFunction,ue=Object.freeze({"designer.canvas":"Dashboard canvas","designer.chrome":"Designer tools","designer.page":"Page {n}","a11y.designer.edit":"Edit mode","a11y.designer.view":"View mode","designer.toolbar":"Designer toolbar","designer.pages":"Pages","designer.mode.toEdit":"Edit","designer.mode.toView":"View","designer.mode.label":"Edit mode","designer.addNote":"Add text","designer.addGrid":"Add grid","designer.addWidget":"Widget drawer","designer.toolbar.right":"Designer actions","designer.shortcuts":"Keyboard shortcuts","designer.shortcuts.help":"Show keyboard shortcuts","designer.dialog.close":"Close","designer.shortcut.toggleMode":"Switch between edit and view mode","designer.shortcut.addNote":"Add a text widget","designer.shortcut.addGrid":"Add a grid widget","designer.shortcut.nextRegion":"Move focus to the next region (toolbar, palette, canvas, properties)","designer.shortcut.previousRegion":"Move focus to the previous region","designer.shortcut.help":"Show or hide this list","designer.shortcut.moveWidget":"On a widget’s drag handle: Space or Enter grabs, arrow keys move, Space or Enter drops, Escape cancels","designer.shortcut.resizeWidget":"On a widget’s resize handle: Space or Enter grabs, arrow keys resize, Space or Enter drops, Escape cancels","designer.kind.chart":"Chart","designer.kind.grid":"Grid","designer.kind.html":"Text","designer.kind.kpi":"KPI","designer.kind.map":"Map","designer.kind.widget":"Widget","designer.region.toolbar":"Designer toolbar","designer.region.canvas":"Dashboard canvas","a11y.designer.added":"{kind} added: {title}","a11y.designer.page":"Page {title} selected","a11y.designer.region":"{name} region","a11y.designer.noSource":"No data source to add a grid from","a11y.designer.theme":"Theme: {theme}","designer.rail.left":"Palette and data","designer.rail.right":"Properties","designer.rail.collapse":"Collapse {name}","designer.rail.expand":"Expand {name}","designer.rail.section.palette":"Palette","designer.rail.section.data":"Data","designer.rail.divider":"Resize palette and data","a11y.designer.rail.open":"{name} opened","a11y.designer.rail.closed":"{name} closed","designer.palette":"Widget palette","designer.region.palette":"Widget palette","designer.palette.search":"Search widgets","designer.palette.source":"Source for new widgets","designer.palette.empty":"No widget matches","designer.palette.group.widgets":"Widgets","designer.palette.group.filters":"Filters","designer.palette.type.gantt":"Timeline bars","designer.palette.family.comparison":"Comparison","designer.palette.family.trend":"Trend","designer.palette.family.partToWhole":"Part-to-whole","designer.palette.family.value":"Value","designer.palette.family.distribution":"Distribution","designer.palette.family.relationship":"Relationship","designer.palette.filter.list":"List filter","designer.palette.filter.range":"Range filter","designer.palette.filter.dateRange":"Date range filter","designer.palette.filter.search":"Search filter","designer.palette.type.heatmap":"Calendar heatmap","designer.palette.needs.source":"needs a data source","designer.palette.needs.fields":"needs a field","designer.palette.needs.date":"needs a date field","designer.palette.needs.twoDate":"needs two date fields","designer.palette.needs.numeric":"needs a numeric field","designer.palette.needs.twoNumeric":"needs two numeric fields","designer.palette.needs.fourNumeric":"needs four numeric fields","designer.palette.needs.categorical":"needs a categorical field","designer.palette.needs.twoCategorical":"needs two categorical fields","designer.palette.needs.text":"needs a text field","designer.palette.needs.geometry":"needs a geometry field","designer.palette.needs.location":"needs a geometry or latitude and longitude fields","designer.palette.disabled":"{name} cannot be added: {reason}","designer.palette.unavailable":"{name} is not available","designer.palette.limit":"This page already holds {limit} widgets","designer.undo":"Undo","designer.redo":"Redo","designer.page.add":"Add page","designer.page.duplicate":"Duplicate page","designer.page.copy":"Copy of {title}","designer.page.rename":"Rename page","designer.page.delete":"Delete page","designer.page.cancel":"Cancel","designer.page.confirm":"Delete {title}?","designer.page.hasWidgets":"It has {n} widgets.","a11y.designer.page.added":"Page {title} added","a11y.designer.page.renamed":"Page renamed to {title}","a11y.designer.page.removed":"Page {title} removed","designer.lock":"Locked by guardrails","designer.data.panel":"Data","designer.data.search":"Search fields","designer.data.sources":"Sources","designer.data.relationships":"Relationships","designer.data.reachable":"Reachable from {source}: {sources}","designer.data.noReachable":"No sources related to {source}.","designer.data.empty":"No fields match {query}.","designer.data.field.add":"Add {field} to the canvas","designer.data.source.actions":"Actions for {source}","designer.data.source.collapse":"Collapse {source}","designer.data.source.expand":"Expand {source}","designer.data.source.fields":"{n} fields","designer.data.source.calculated":"Add calculated field","designer.data.date.expand":"Show date levels for {field}","designer.data.date.collapse":"Hide date levels for {field}","designer.data.type.number":"Number","designer.data.type.currency":"Currency","designer.data.type.percent":"Percent","designer.data.type.date":"Date","designer.data.type.datetime":"Date & time","designer.data.type.boolean":"Boolean","designer.data.type.text":"Text","designer.data.type.list":"List","designer.data.type.geometry":"Geometry","designer.widget.name":"{kind}: {title}","designer.widget.selected":"{kind}: {title}, selected","a11y.designer.selected":"{name} selected","a11y.designer.removed":"{name} removed","designer.kind.kpi":"KPI","designer.kind.calendar":"Calendar","designer.kind.gantt":"Gantt","designer.kind.map":"Map","designer.kind.panel":"Panel","designer.properties":"Properties","designer.properties.empty":"Select a widget to edit its properties.","designer.prop.widget":"Widget","designer.prop.source":"Source","designer.prop.type":"Chart type","designer.prop.title":"Title","designer.prop.title.hint":"Widget title","designer.opt.empty":"Empty","designer.section.widget":"Widget","designer.section.data":"Data","designer.section.format":"Formatting","designer.section.interactions":"Interactions","designer.section.fields":"Fields","designer.field.none":"(none)","designer.field.pick":"Field {field}: drag it to a role, or press to pick it up","designer.field.picked":"Picked up {field}. Press Enter on a role to bind it; Escape cancels.","designer.move.earlier":"Move {item} earlier","designer.move.later":"Move {item} later","designer.problems":"Problems","designer.role.x":"Category","designer.role.y":"Measure","designer.role.measures":"Measures","designer.role.series":"Series","designer.role.size":"Size","designer.role.source":"From","designer.role.target":"To","designer.role.geometry":"Region","designer.role.lat":"Latitude","designer.role.lon":"Longitude","designer.role.measure":"Measure","designer.role.columns":"Columns","designer.role.date":"Date","designer.role.label":"Label","designer.role.start":"Start","designer.role.end":"End","designer.role.title":"Title","designer.role.colour":"Colour","designer.role.sparkline":"Sparkline","designer.role.sparklineOrder":"Sparkline order","designer.agg":"{role} aggregation","designer.agg.default":"Automatic","designer.agg.sum":"Sum","designer.agg.avg":"Average","designer.agg.min":"Minimum","designer.agg.max":"Maximum","designer.agg.count":"Count","designer.agg.countDistinct":"Distinct count","designer.agg.median":"Median","designer.cumulative":"Running total of {role}","designer.bucket":"Date bucket","designer.bucket.of":"{role} date bucket","designer.bucket.none":"None","designer.bucket.day":"Day","designer.bucket.week":"Week","designer.bucket.month":"Month","designer.bucket.quarter":"Quarter","designer.bucket.year":"Year","designer.opt.title":"Title","designer.opt.scheme":"Colour scheme","designer.opt.scheme.default":"Default","designer.opt.scheme.bright":"Bright","designer.opt.scheme.earth":"Earth","designer.opt.scheme.mono":"Monochrome","designer.opt.scheme.patterns":"Patterns","designer.opt.default":"Default","designer.opt.palette":"Colours (theme override)","designer.opt.legend":"Legend","designer.opt.labels":"Data labels","designer.opt.tooltip":"Tooltip","designer.opt.axis.x.title":"X axis title","designer.opt.axis.x.format":"X axis format","designer.opt.axis.y.title":"Y axis title","designer.opt.axis.y.format":"Y axis number format","designer.opt.stack":"Stacking","designer.opt.stack.true":"Stacked","designer.opt.stack.percent":"100% stacked","designer.opt.curve":"Line shape","designer.opt.curve.linear":"Straight","designer.opt.curve.monotone":"Smooth","designer.opt.curve.catmullRom":"Smooth (through every point)","designer.opt.curve.step":"Stepped","designer.opt.projection":"Projection","designer.opt.diverging":"Diverging colours","designer.opt.maxRadius":"Largest bubble radius","designer.opt.selection":"Selection","designer.opt.pivot.enabled":"Pivot","designer.opt.grandTotalRow":"Grand total row","designer.opt.groupFooter":"Group totals","designer.opt.text":"Text","designer.opt.tiles.0.label":"Tile label","designer.opt.tiles.0.format":"Number format","designer.opt.tiles.0.baseline":"Compare with","designer.opt.tiles.0.delta":"Comparison shown as","designer.opt.tiles.0.target":"Target","designer.opt.view":"Default view","designer.opt.view.day":"Day","designer.opt.view.week":"Week","designer.opt.view.month":"Month","designer.opt.businessHours":"Working hours","designer.opt.readonly":"Read only","designer.opt.defaultDuration":"Duration (minutes)","designer.col.layout.hidden":"hidden","designer.col.layout.width":"width","designer.col.format":"format","designer.col.sort":"sort","designer.col.sort.asc":"Ascending","designer.col.sort.desc":"Descending","designer.col.group":"group by","designer.col.pivot":"pivot on","designer.col.total":"total","designer.col.total.sum":"Sum","designer.col.total.avg":"Average","designer.col.total.min":"Minimum","designer.col.total.max":"Maximum","designer.col.total.count":"Count","designer.col.total.countValues":"Count of values","designer.col.total.first":"First","designer.col.total.last":"Last","designer.calc.panel":"Calculated fields","designer.calc.heading":"Calculated fields","designer.calc.source":"Source","designer.calc.name":"Field name","designer.calc.expression":"Expression","designer.calc.placeholder":"e.g. IF(revenue > 100, revenue * 0.9, revenue)","designer.calc.suggestions":"Suggestions","designer.calc.preview":"Preview of the first rows","designer.calc.fields":"Calculated fields in use","designer.calc.type":"Result type: {type}","designer.calc.add":"Add field","designer.calc.save":"Save field","designer.calc.edit":"Edit","designer.calc.remove":"Remove","designer.calc.editField":"Edit {id}","designer.calc.removeField":"Remove {id}","designer.calc.empty":"(empty)","designer.calc.rowError":"Error: {error}","designer.calc.didYouMean":' (did you mean "{name}"?)',"designer.calc.refused":"not applied: {reason}","designer.calc.needName":"a calculated field needs a name","designer.calc.exists":'a field called "{id}" already exists',"designer.calc.noSource":"there is no source to add a calculated field to","designer.chart.switched":"Changed to {type}.","designer.chart.dropped":"Changed to {type}; dropped {roles}.","designer.data.derived":"Derived grids","designer.data.derived.lineage":"←","designer.data.derived.hidden":"hidden","designer.data.derived.show":"Show","designer.derived.engine":"Engine: {engine}","designer.derived.step.filter":"Filter","designer.derived.step.group":"Group","designer.derived.step.pivot":"Pivot","designer.derived.step.join":"Join","designer.derived.step.sort":"Sort","designer.derived.step.topN":"Top N","designer.derived.step.refused":"{step} refused by {engine}","designer.rail.section.assist":"Assist","designer.assist":"AI assistant","designer.assist.prompt":"Ask the AI assistant","designer.assist.placeholder":"Describe what to add or change","designer.assist.propose":"Propose","designer.assist.preview":"Proposed changes","designer.assist.accept":"Accept","designer.assist.reject":"Reject","designer.assist.removed":"{title} (to be removed)","designer.assist.working":"Asking the assistant…","designer.assist.problems":"Problems","designer.assist.close":"Close","designer.pushdown.limits":"What the engine cannot do","designer.pushdown.engine":"Computed in the engine ({adapter}) over every row, not the loaded window.","designer.pushdown.pending":"Asking the engine ({adapter})…","designer.pushdown.client":"Computed in the client: {reason}","designer.pushdown.noReason":"the engine could not answer","designer.pushdown.refused":"{name} is unavailable: {reason}","designer.pushdown.refusedStep":"The {step} step is refused: {reason}","a11y.designer.assist.proposed":"{added} added, {changed} changed, {removed} removed; {problems} refused","designer.filterbar":"Filters","designer.filterbar.context":"Filters applied","designer.filterbar.clearAll":"Clear all","designer.filter.value":"{field} value","designer.filter.list.placeholder":"Comma-separated values","designer.filter.min":"{field} minimum","designer.filter.max":"{field} maximum","designer.filter.from":"{field} from","designer.filter.to":"{field} to","designer.filter.remove":"Remove {field} filter","designer.filter.clearValue":"Clear {field} filter","designer.filter.edit":"Edit {field} filter","designer.filter.chip":"{source} · {field}","designer.filter.scope":"Filter scope","designer.filter.scope.page":"This page","designer.filter.scope.global":"All pages","designer.filter.type":"Filter type","designer.filter.source":"Filter source","designer.filter.field":"Filter field","designer.filter.add":"Add filter","designer.filter.contains":"contains","designer.filter.preset":"{field} date preset","designer.filter.preset.last7":"Last 7 days","designer.filter.preset.last30":"Last 30 days","designer.filter.preset.last90":"Last 90 days","designer.filter.preset.thisMonth":"This month","designer.filter.preset.thisQuarter":"This quarter","designer.filter.preset.thisYear":"This year","designer.filter.preset.custom":"Custom","designer.clickFilter":"Clicking this filters","designer.clickFilter.none":"Doesn't filter other widgets","designer.clickFilter.all":"All widgets","designer.clickFilter.chosen":"Chosen widgets","designer.clickFilter.on":"Relate by field","designer.kind.board":"Board","designer.role.column":"Status field","designer.role.title":"Title","designer.role.subtitle":"Subtitle","designer.role.labels":"Labels","designer.role.points":"Points","designer.role.swimlane":"Swimlane","designer.opt.showPoints":"Show points total","designer.opt.readonly":"Read only","designer.col.title":"title","designer.col.wipLimit":"WIP limit","designer.col.color":"colour"});function X(se){const e=(L,G)=>L.replace(/\{(\w+)\}/g,(V,f)=>G&&f in G?String(G[f]):V),Z=(L,G)=>e(ue[L]||L,G);return!se||!E(se.t)?Z:(L,G)=>{const V=se.t(L,G);return typeof V=="string"&&V!==L?V:Z(L,G)}}}),lt("packages/modules/designer/a11y.js",function(c,ne){"use strict";Object.defineProperty(c,"REGION_ORDER",{enumerable:!0,get:function(){return e}}),Object.defineProperty(c,"firstTabbable",{enumerable:!0,get:function(){return L}}),Object.defineProperty(c,"comboOf",{enumerable:!0,get:function(){return V}}),Object.defineProperty(c,"auditChrome",{enumerable:!0,get:function(){return v}}),Object.defineProperty(c,"createA11y",{enumerable:!0,get:function(){return k}});const E=ne("packages/core/src/internal/warn.js").warnOnce,X=ne("packages/core/src/internal/predicates.js").isFunction;let se=0;const e=Object.freeze({toolbar:0,palette:10,canvas:20,properties:30,data:40,filters:50});function Z(u){if(!u||typeof u.getAttribute!="function"||u.hasAttribute("disabled")||u.hasAttribute("hidden"))return!1;const d=u.getAttribute("tabindex");if(d!==null)return Number(d)>=0;const a=String(u.tagName||"").toLowerCase();return a==="button"||a==="input"||a==="select"||a==="textarea"||a==="a"&&u.hasAttribute("href")}function L(u){for(const d of u.children||[]){if(d.hasAttribute&&d.hasAttribute("hidden"))continue;if(Z(d))return d;const a=L(d);if(a)return a}return null}function G(u,d){for(let a=u;a&&a!==d;a=a.parentNode)if(a.hasAttribute&&a.hasAttribute("hidden"))return!0;return!1}function V(u){const a=(typeof u.code=="string"&&/^Key[A-Z]$/.test(u.code)?u.code.slice(3):null)||(typeof u.key=="string"&&u.key.length===1?u.key.toUpperCase():u.key);return[...[u.ctrlKey&&"Ctrl",u.altKey&&"Alt",u.shiftKey&&"Shift",u.metaKey&&"Meta"].filter(Boolean),a].join("+")}const f=["button","tab","link","checkbox","radio","switch","menuitem","option","combobox","textbox","slider","spinbutton"],o=["dialog","toolbar","tablist","region","group","listbox","menu","tree","grid"];function r(u,d){const a=u.getAttribute("aria-label");if(a&&a.trim())return a.trim();const p=u.getAttribute("aria-labelledby");if(p){const i=p.split(/\s+/).map(_=>{const s=w(d).find(U=>U.id===_);return s?String(s.textContent||"").trim():""}).join(" ").trim();if(i)return i}const b=String(u.textContent||"").trim();return b||(u.getAttribute("title")||u.getAttribute("alt")||"").trim()}function w(u){const d=[];for(const a of u.children||[])a.hasAttribute("hidden")||String(a.tagName).toLowerCase()==="style"||d.push(a,...w(a));return d}function v(u){const d=[],a=s=>`${String(s.tagName).toLowerCase()}${s.className?`.${String(s.className).split(/\s+/)[0]}`:""}`,p=(s,U,R)=>d.push({rule:s,element:a(U),message:R}),b=w(u),i=new Map;for(const s of b){const U=String(s.tagName).toLowerCase(),R=s.getAttribute("role");if(s.id&&i.set(s.id,(i.get(s.id)||0)+1),(U==="button"||U==="select"||U==="textarea"||U==="input"&&s.getAttribute("type")!=="hidden"||U==="a"&&s.hasAttribute("href")||R&&f.includes(R))&&!r(s,u)&&p("name",s,"a control has no accessible name"),R&&o.includes(R)&&R!=="group"&&R!=="region"&&!r(s,u)&&p("name",s,`a ${R} has no accessible name`),(R==="group"||R==="region")&&!s.getAttribute("aria-label")&&!s.getAttribute("aria-labelledby")&&p("name",s,`a ${R} has no accessible name`),R==="dialog"&&s.getAttribute("aria-modal")!=="true"&&p("dialog",s,"a dialog is not aria-modal"),R==="tab"&&((!s.parentNode||s.parentNode.getAttribute("role")!=="tablist")&&p("tab",s,"a tab is not in a tablist"),s.getAttribute("aria-selected")===null&&p("tab",s,"a tab does not say whether it is selected")),R==="toolbar"||R==="tablist"){const P=w(s).filter(h=>h.getAttribute("tabindex")==="0").length;P!==1&&p("roving",s,`a ${R} has ${P} tab stops; it must have exactly one`)}}for(const[s,U]of i)U>1&&d.push({rule:"id",element:`#${s}`,message:`the id is used ${U} times`});return b.find(s=>s.getAttribute("role")==="status"&&s.getAttribute("aria-live")==="polite")||d.push({rule:"live",element:"root",message:'there is no polite live region (role="status")'}),d}function k({root:u,live:d,t:a}){const p=u.ownerDocument,b=$=>{if(typeof $!="string"||!$)return;d.textContent="";const A=p.createElement("span");A.textContent=$,d.appendChild(A)},i=new Map,_=Object.freeze({register($){if(!$||typeof $.id!="string"||typeof $.keys!="string"||typeof $.description!="string")return E("designer:shortcut","designer.shortcuts.register: a shortcut is { id, keys, description, run? } with string id, keys and description; nothing was registered."),()=>{};const A={id:$.id,keys:$.keys,description:$.description,run:X($.run)?$.run:void 0};return i.set(A.id,A),()=>{i.get(A.id)===A&&i.delete(A.id)}},list(){return[...i.values()].map(({id:$,keys:A,description:K})=>({id:$,keys:A,description:K}))}}),s=new Map,U=Object.freeze({register($,A,K={}){if(typeof $!="string"||!A)return E("designer:region","designer.regions.register: a region is a string name and an element; nothing was registered."),()=>{};const t={name:$,el:A,order:typeof K.order=="number"?K.order:e[$]??100,label:typeof K.label=="string"?K.label:$};return s.set($,t),()=>{s.get($)===t&&s.delete($)}},list(){return[...s.values()].sort(($,A)=>$.order-A.order).map($=>$.name)},focus($){const A=s.get($);if(!A||G(A.el,u))return!1;const K=L(A.el)||(A.el.getAttribute("tabindex")!==null?A.el:null);return K?(K.focus(),b(a("a11y.designer.region",{name:A.label})),!0):!1}}),R=$=>{const A=[...s.values()].sort((n,g)=>n.order-g.order).filter(n=>!G(n.el,u));if(!A.length)return!1;const K=p.activeElement;let t=-1;A.forEach((n,g)=>{(n.el===K||K&&n.el.contains(K))&&(t=g)}),t<0&&(t=$>0?-1:0);for(let n=1;n<=A.length;n+=1){const g=A[(t+$*n+A.length*n)%A.length];if(U.focus(g.name))return!0}return!1};_.register({id:"region.next",keys:"F6",description:a("designer.shortcut.nextRegion"),run:()=>R(1)}),_.register({id:"region.previous",keys:"Shift+F6",description:a("designer.shortcut.previousRegion"),run:()=>R(-1)});const O=$=>{if($.defaultPrevented)return;const A=V($);for(const K of i.values())if(K.run&&K.keys===A){$.preventDefault&&$.preventDefault(),K.run($);return}};u.addEventListener("keydown",O);let P=null,h=null;const S=()=>{P&&(P.remove(),P=null,h&&h.focus&&u.contains(h)&&h.focus(),h=null)},T=()=>{if(P)return;h=p.activeElement,P=p.createElement("div"),P.className="lattice-designer-scrim";const $=p.createElement("div");$.className="lattice-designer-dialog",$.setAttribute("role","dialog"),$.setAttribute("aria-modal","true"),se+=1,$.setAttribute("aria-labelledby",`lattice-designer-shortcuts-${se}`);const A=p.createElement("h2");A.id=`lattice-designer-shortcuts-${se}`,A.textContent=a("designer.shortcuts");const K=p.createElement("dl");for(const{keys:n,description:g}of _.list()){const l=p.createElement("dt");l.textContent=n;const y=p.createElement("dd");y.textContent=g,K.appendChild(l),K.appendChild(y)}const t=p.createElement("button");t.type="button",t.className="lattice-designer-button lattice-designer-button--primary",t.textContent=a("designer.dialog.close"),t.addEventListener("click",S),$.addEventListener("keydown",n=>{n.key==="Escape"?(n.preventDefault(),n.stopPropagation(),S()):n.key==="Tab"&&(n.preventDefault(),t.focus())}),$.appendChild(A),$.appendChild(K),$.appendChild(t),P.appendChild($),u.appendChild(P),t.focus()};return _.register({id:"help",keys:"Alt+Shift+K",description:a("designer.shortcut.help"),run:()=>P?S():T()}),{announce:b,shortcuts:_,regions:U,showShortcuts:T,hideShortcuts:S,destroy(){u.removeEventListener("keydown",O),P&&P.remove(),P=null,i.clear(),s.clear()}}}}),lt("packages/modules/designer/rails.js",function(c,ne){"use strict";Object.defineProperty(c,"railsCss",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(c,"createRails",{enumerable:!0,get:function(){return G}});const E=ne("packages/modules/dashboard/spec.js").isPlain,X=ne("packages/core/src/internal/predicates.js").isFunction,se=1100,e=900,Z=()=>`
25
- .lattice-designer{position:relative;display:grid;box-sizing:border-box;overflow:hidden;background:var(--lattice-designer-page-bg);
25
+ .lattice-designer.lattice{position:relative;display:grid;box-sizing:border-box;overflow:hidden;background:var(--lattice-designer-page-bg);
26
26
  grid-template-columns:260px minmax(0,1fr) 0;grid-template-rows:auto auto minmax(0,1fr);
27
27
  grid-template-areas:"top top top" "filterbar filterbar filterbar" "left canvas right"}
28
28
  .lattice-designer[data-left="collapsed"]{grid-template-columns:32px minmax(0,1fr) 0}
@@ -43,7 +43,7 @@ ${k}`,messages:[{role:"system",content:e},{role:"user",content:k}],schema:v};ret
43
43
  border-radius:var(--lattice-radius)}
44
44
  .lattice-designer[data-mode="view"] .lattice-designer-canvas{background-image:none}
45
45
  .lattice-designer-chrome{display:contents}
46
- .lattice-designer-topbar{grid-area:top;display:flex;flex-wrap:nowrap;align-items:center;column-gap:calc(var(--lattice-designer-space-2) * 2);
46
+ .lattice-designer-topbar{grid-area:top;flex:0 0 auto;display:flex;flex-wrap:nowrap;align-items:center;column-gap:calc(var(--lattice-designer-space-2) * 2);
47
47
  row-gap:0;padding:var(--lattice-designer-space-1) var(--lattice-designer-space-2);box-sizing:border-box;min-width:0;overflow-x:auto;
48
48
  background:var(--lattice-designer-panel-bg);color:var(--lattice-foreground);
49
49
  border:var(--lattice-border-width,1px) solid var(--lattice-designer-panel-border);border-radius:var(--lattice-radius)}