@toclocoinc/lattice-grid 1.86.4 → 1.86.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 (306) hide show
  1. package/CHANGELOG.md +10 -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/deckgl.html +1 -1
  13. package/docs/api/gantt.html +1 -1
  14. package/docs/api/geometry.html +1 -1
  15. package/docs/api/grid.html +2 -2
  16. package/docs/api/index.html +1 -1
  17. package/docs/api/kanban.html +1 -1
  18. package/docs/api/kpi.html +1 -1
  19. package/docs/api/layout.html +1 -1
  20. package/docs/api/leaflet.html +1 -1
  21. package/docs/api/list.html +1 -1
  22. package/docs/api/mapview.html +1 -1
  23. package/docs/api/mock-socket.html +1 -1
  24. package/docs/api/presets.html +1 -1
  25. package/docs/api/tabs.html +1 -1
  26. package/docs/api/types.html +1 -1
  27. package/docs/api-detail.html +4 -4
  28. package/docs/warnings.json +1 -1
  29. package/lattice-grid.d.ts +1 -1
  30. package/lattice-grid.esm.min.js +3 -3
  31. package/lattice-grid.min.cjs +3 -3
  32. package/lattice-grid.min.css +1 -1
  33. package/lattice-grid.min.js +3 -3
  34. package/modules/ai.d.ts +1 -1
  35. package/modules/ai.esm.min.js +2 -2
  36. package/modules/ai.min.cjs +2 -2
  37. package/modules/ai.min.js +2 -2
  38. package/modules/alarms.d.ts +1 -1
  39. package/modules/alarms.esm.min.js +2 -2
  40. package/modules/alarms.min.cjs +2 -2
  41. package/modules/alarms.min.js +2 -2
  42. package/modules/angular.d.ts +1 -1
  43. package/modules/angular.esm.min.js +2 -2
  44. package/modules/angular.min.cjs +2 -2
  45. package/modules/angular.min.js +2 -2
  46. package/modules/calendar.d.ts +1 -1
  47. package/modules/calendar.esm.min.js +2 -2
  48. package/modules/calendar.min.cjs +2 -2
  49. package/modules/calendar.min.js +2 -2
  50. package/modules/chart-alluvial.d.ts +1 -1
  51. package/modules/chart-alluvial.esm.min.js +1 -1
  52. package/modules/chart-alluvial.min.cjs +1 -1
  53. package/modules/chart-alluvial.min.js +1 -1
  54. package/modules/chart-arc.d.ts +1 -1
  55. package/modules/chart-arc.esm.min.js +1 -1
  56. package/modules/chart-arc.min.cjs +1 -1
  57. package/modules/chart-arc.min.js +1 -1
  58. package/modules/chart-barrace.d.ts +1 -1
  59. package/modules/chart-barrace.esm.min.js +1 -1
  60. package/modules/chart-barrace.min.cjs +1 -1
  61. package/modules/chart-barrace.min.js +1 -1
  62. package/modules/chart-bubblemap.d.ts +1 -1
  63. package/modules/chart-bubblemap.esm.min.js +1 -1
  64. package/modules/chart-bubblemap.min.cjs +1 -1
  65. package/modules/chart-bubblemap.min.js +1 -1
  66. package/modules/chart-bump.d.ts +1 -1
  67. package/modules/chart-bump.esm.min.js +1 -1
  68. package/modules/chart-bump.min.cjs +1 -1
  69. package/modules/chart-bump.min.js +1 -1
  70. package/modules/chart-calendar.d.ts +1 -1
  71. package/modules/chart-calendar.esm.min.js +1 -1
  72. package/modules/chart-calendar.min.cjs +1 -1
  73. package/modules/chart-calendar.min.js +1 -1
  74. package/modules/chart-choropleth.d.ts +1 -1
  75. package/modules/chart-choropleth.esm.min.js +1 -1
  76. package/modules/chart-choropleth.min.cjs +1 -1
  77. package/modules/chart-choropleth.min.js +1 -1
  78. package/modules/chart-decomposition.d.ts +1 -1
  79. package/modules/chart-decomposition.esm.min.js +1 -1
  80. package/modules/chart-decomposition.min.cjs +1 -1
  81. package/modules/chart-decomposition.min.js +1 -1
  82. package/modules/chart-diverging.d.ts +1 -1
  83. package/modules/chart-diverging.esm.min.js +1 -1
  84. package/modules/chart-diverging.min.cjs +1 -1
  85. package/modules/chart-diverging.min.js +1 -1
  86. package/modules/chart-dumbbell.d.ts +1 -1
  87. package/modules/chart-dumbbell.esm.min.js +1 -1
  88. package/modules/chart-dumbbell.min.cjs +1 -1
  89. package/modules/chart-dumbbell.min.js +1 -1
  90. package/modules/chart-fan.d.ts +1 -1
  91. package/modules/chart-fan.esm.min.js +1 -1
  92. package/modules/chart-fan.min.cjs +1 -1
  93. package/modules/chart-fan.min.js +1 -1
  94. package/modules/chart-forcetree.d.ts +1 -1
  95. package/modules/chart-forcetree.esm.min.js +2 -2
  96. package/modules/chart-forcetree.esm.min.js.map +2 -2
  97. package/modules/chart-forcetree.min.cjs +2 -2
  98. package/modules/chart-forcetree.min.js +2 -2
  99. package/modules/chart-forcetree.min.js.map +2 -2
  100. package/modules/chart-hexbin.d.ts +1 -1
  101. package/modules/chart-hexbin.esm.min.js +2 -2
  102. package/modules/chart-hexbin.esm.min.js.map +1 -1
  103. package/modules/chart-hexbin.min.cjs +2 -2
  104. package/modules/chart-hexbin.min.js +2 -2
  105. package/modules/chart-hexbin.min.js.map +1 -1
  106. package/modules/chart-hexmap.d.ts +1 -1
  107. package/modules/chart-hexmap.esm.min.js +1 -1
  108. package/modules/chart-hexmap.min.cjs +1 -1
  109. package/modules/chart-hexmap.min.js +1 -1
  110. package/modules/chart-icicle.d.ts +1 -1
  111. package/modules/chart-icicle.esm.min.js +1 -1
  112. package/modules/chart-icicle.min.cjs +1 -1
  113. package/modules/chart-icicle.min.js +1 -1
  114. package/modules/chart-markermap.d.ts +1 -1
  115. package/modules/chart-markermap.esm.min.js +1 -1
  116. package/modules/chart-markermap.min.cjs +1 -1
  117. package/modules/chart-markermap.min.js +1 -1
  118. package/modules/chart-motion.d.ts +1 -1
  119. package/modules/chart-motion.esm.min.js +1 -1
  120. package/modules/chart-motion.min.cjs +1 -1
  121. package/modules/chart-motion.min.js +1 -1
  122. package/modules/chart-pack.d.ts +1 -1
  123. package/modules/chart-pack.esm.min.js +1 -1
  124. package/modules/chart-pack.min.cjs +1 -1
  125. package/modules/chart-pack.min.js +1 -1
  126. package/modules/chart-parallel.d.ts +1 -1
  127. package/modules/chart-parallel.esm.min.js +1 -1
  128. package/modules/chart-parallel.min.cjs +1 -1
  129. package/modules/chart-parallel.min.js +1 -1
  130. package/modules/chart-pictorial.d.ts +1 -1
  131. package/modules/chart-pictorial.esm.min.js +1 -1
  132. package/modules/chart-pictorial.min.cjs +1 -1
  133. package/modules/chart-pictorial.min.js +1 -1
  134. package/modules/chart-polararea.d.ts +1 -1
  135. package/modules/chart-polararea.esm.min.js +1 -1
  136. package/modules/chart-polararea.min.cjs +1 -1
  137. package/modules/chart-polararea.min.js +1 -1
  138. package/modules/chart-polarscatter.d.ts +1 -1
  139. package/modules/chart-polarscatter.esm.min.js +1 -1
  140. package/modules/chart-polarscatter.min.cjs +1 -1
  141. package/modules/chart-polarscatter.min.js +1 -1
  142. package/modules/chart-pyramid.d.ts +1 -1
  143. package/modules/chart-pyramid.esm.min.js +1 -1
  144. package/modules/chart-pyramid.min.cjs +1 -1
  145. package/modules/chart-pyramid.min.js +1 -1
  146. package/modules/chart-radialbar.d.ts +1 -1
  147. package/modules/chart-radialbar.esm.min.js +1 -1
  148. package/modules/chart-radialbar.min.cjs +1 -1
  149. package/modules/chart-radialbar.min.js +1 -1
  150. package/modules/chart-ridgeline.d.ts +1 -1
  151. package/modules/chart-ridgeline.esm.min.js +1 -1
  152. package/modules/chart-ridgeline.min.cjs +1 -1
  153. package/modules/chart-ridgeline.min.js +1 -1
  154. package/modules/chart-roc.d.ts +1 -1
  155. package/modules/chart-roc.esm.min.js +1 -1
  156. package/modules/chart-roc.min.cjs +1 -1
  157. package/modules/chart-roc.min.js +1 -1
  158. package/modules/chart-serpentine.d.ts +1 -1
  159. package/modules/chart-serpentine.esm.min.js +1 -1
  160. package/modules/chart-serpentine.min.cjs +1 -1
  161. package/modules/chart-serpentine.min.js +1 -1
  162. package/modules/chart-slope.d.ts +1 -1
  163. package/modules/chart-slope.esm.min.js +1 -1
  164. package/modules/chart-slope.min.cjs +1 -1
  165. package/modules/chart-slope.min.js +1 -1
  166. package/modules/chart-spiral.d.ts +1 -1
  167. package/modules/chart-spiral.esm.min.js +1 -1
  168. package/modules/chart-spiral.min.cjs +1 -1
  169. package/modules/chart-spiral.min.js +1 -1
  170. package/modules/chart-splom.d.ts +1 -1
  171. package/modules/chart-splom.esm.min.js +1 -1
  172. package/modules/chart-splom.min.cjs +1 -1
  173. package/modules/chart-splom.min.js +1 -1
  174. package/modules/chart-tree.d.ts +1 -1
  175. package/modules/chart-tree.esm.min.js +2 -2
  176. package/modules/chart-tree.esm.min.js.map +2 -2
  177. package/modules/chart-tree.min.cjs +2 -2
  178. package/modules/chart-tree.min.js +2 -2
  179. package/modules/chart-tree.min.js.map +2 -2
  180. package/modules/chart-venn.d.ts +1 -1
  181. package/modules/chart-venn.esm.min.js +1 -1
  182. package/modules/chart-venn.min.cjs +1 -1
  183. package/modules/chart-venn.min.js +1 -1
  184. package/modules/chart-voronoi.d.ts +1 -1
  185. package/modules/chart-voronoi.esm.min.js +1 -1
  186. package/modules/chart-voronoi.min.cjs +1 -1
  187. package/modules/chart-voronoi.min.js +1 -1
  188. package/modules/chart-waffle.d.ts +1 -1
  189. package/modules/chart-waffle.esm.min.js +1 -1
  190. package/modules/chart-waffle.min.cjs +1 -1
  191. package/modules/chart-waffle.min.js +1 -1
  192. package/modules/chart-wordcloud.d.ts +1 -1
  193. package/modules/chart-wordcloud.esm.min.js +1 -1
  194. package/modules/chart-wordcloud.min.cjs +1 -1
  195. package/modules/chart-wordcloud.min.js +1 -1
  196. package/modules/charts.d.ts +1 -1
  197. package/modules/charts.esm.min.js +235 -235
  198. package/modules/charts.esm.min.js.map +2 -2
  199. package/modules/charts.min.cjs +235 -235
  200. package/modules/charts.min.js +235 -235
  201. package/modules/charts.min.js.map +2 -2
  202. package/modules/dashboard.d.ts +1 -1
  203. package/modules/dashboard.esm.min.js +2 -2
  204. package/modules/dashboard.min.cjs +2 -2
  205. package/modules/dashboard.min.js +2 -2
  206. package/modules/data-router.d.ts +1 -1
  207. package/modules/data-router.esm.min.js +2 -2
  208. package/modules/data-router.min.cjs +2 -2
  209. package/modules/data-router.min.js +2 -2
  210. package/modules/deckgl.d.ts +1 -1
  211. package/modules/deckgl.esm.min.js +2 -2
  212. package/modules/deckgl.min.cjs +2 -2
  213. package/modules/deckgl.min.js +2 -2
  214. package/modules/devtools.d.ts +1 -1
  215. package/modules/devtools.esm.min.js +1 -1
  216. package/modules/devtools.min.cjs +1 -1
  217. package/modules/devtools.min.js +1 -1
  218. package/modules/dhtmlx-compat.d.ts +1 -1
  219. package/modules/dhtmlx-compat.esm.min.js +2 -2
  220. package/modules/dhtmlx-compat.min.cjs +2 -2
  221. package/modules/dhtmlx-compat.min.js +2 -2
  222. package/modules/gantt.d.ts +1 -1
  223. package/modules/gantt.esm.min.js +2 -2
  224. package/modules/gantt.min.cjs +2 -2
  225. package/modules/gantt.min.js +2 -2
  226. package/modules/geo-europe-nuts.d.ts +1 -1
  227. package/modules/geo-europe-nuts.esm.min.js +1 -1
  228. package/modules/geo-europe-nuts.min.cjs +1 -1
  229. package/modules/geo-europe-nuts.min.js +1 -1
  230. package/modules/geo-uk.d.ts +1 -1
  231. package/modules/geo-uk.esm.min.js +1 -1
  232. package/modules/geo-uk.min.cjs +1 -1
  233. package/modules/geo-uk.min.js +1 -1
  234. package/modules/geo-us-states.d.ts +1 -1
  235. package/modules/geo-us-states.esm.min.js +1 -1
  236. package/modules/geo-us-states.min.cjs +1 -1
  237. package/modules/geo-us-states.min.js +1 -1
  238. package/modules/geo-world-110m.d.ts +1 -1
  239. package/modules/geo-world-110m.esm.min.js +1 -1
  240. package/modules/geo-world-110m.min.cjs +1 -1
  241. package/modules/geo-world-110m.min.js +1 -1
  242. package/modules/geo-world-50m.d.ts +1 -1
  243. package/modules/geo-world-50m.esm.min.js +1 -1
  244. package/modules/geo-world-50m.min.cjs +1 -1
  245. package/modules/geo-world-50m.min.js +1 -1
  246. package/modules/geometry.d.ts +1 -1
  247. package/modules/geometry.esm.min.js +2 -2
  248. package/modules/geometry.min.cjs +2 -2
  249. package/modules/geometry.min.js +2 -2
  250. package/modules/htmx.d.ts +1 -1
  251. package/modules/htmx.esm.min.js +3 -3
  252. package/modules/htmx.min.cjs +3 -3
  253. package/modules/htmx.min.js +3 -3
  254. package/modules/kanban.d.ts +1 -1
  255. package/modules/kanban.esm.min.js +2 -2
  256. package/modules/kanban.min.cjs +2 -2
  257. package/modules/kanban.min.js +2 -2
  258. package/modules/kpi.d.ts +1 -1
  259. package/modules/kpi.esm.min.js +2 -2
  260. package/modules/kpi.min.cjs +2 -2
  261. package/modules/kpi.min.js +2 -2
  262. package/modules/layout.d.ts +1 -1
  263. package/modules/layout.esm.min.js +2 -2
  264. package/modules/layout.min.cjs +2 -2
  265. package/modules/layout.min.js +2 -2
  266. package/modules/leaflet.d.ts +1 -1
  267. package/modules/leaflet.esm.min.js +2 -2
  268. package/modules/leaflet.min.cjs +2 -2
  269. package/modules/leaflet.min.js +2 -2
  270. package/modules/list.d.ts +1 -1
  271. package/modules/list.esm.min.js +2 -2
  272. package/modules/list.min.cjs +2 -2
  273. package/modules/list.min.js +2 -2
  274. package/modules/mapview.d.ts +1 -1
  275. package/modules/mapview.esm.min.js +2 -2
  276. package/modules/mapview.min.cjs +2 -2
  277. package/modules/mapview.min.js +2 -2
  278. package/modules/mock-socket.d.ts +1 -1
  279. package/modules/mock-socket.esm.min.js +1 -1
  280. package/modules/mock-socket.min.cjs +1 -1
  281. package/modules/mock-socket.min.js +1 -1
  282. package/modules/presets.d.ts +1 -1
  283. package/modules/presets.esm.min.js +2 -2
  284. package/modules/presets.min.cjs +2 -2
  285. package/modules/presets.min.js +2 -2
  286. package/modules/react.d.ts +1 -1
  287. package/modules/react.esm.min.js +2 -2
  288. package/modules/react.min.cjs +2 -2
  289. package/modules/react.min.js +2 -2
  290. package/modules/svelte.d.ts +1 -1
  291. package/modules/svelte.esm.min.js +2 -2
  292. package/modules/svelte.min.cjs +2 -2
  293. package/modules/svelte.min.js +2 -2
  294. package/modules/tabs.d.ts +1 -1
  295. package/modules/tabs.esm.min.js +2 -2
  296. package/modules/tabs.min.cjs +2 -2
  297. package/modules/tabs.min.js +2 -2
  298. package/modules/vue.d.ts +1 -1
  299. package/modules/vue.esm.min.js +2 -2
  300. package/modules/vue.min.cjs +2 -2
  301. package/modules/vue.min.js +2 -2
  302. package/modules/webcomponent.d.ts +1 -1
  303. package/modules/webcomponent.esm.min.js +3 -3
  304. package/modules/webcomponent.min.cjs +3 -3
  305. package/modules/webcomponent.min.js +3 -3
  306. package/package.json +1 -1
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Lattice Grid 1.86.4, kpi module
2
+ * Lattice Grid 1.86.5, kpi module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
6
- (function(Wt){"use strict";var Ct=Object.create(null),Lt=Object.create(null);function _e(g,fe){Ct[g]=fe}function Ft(g){var fe=Lt[g];if(fe)return fe;var ee=Object.create(null);Lt[g]=ee;var J=Ct[g];if(!J)throw new Error("[lattice] missing module: "+g);return J(ee,Ft),ee}_e("packages/core/src/internal/util.js",function(g,fe){"use strict";Object.defineProperty(g,"VERSION",{enumerable:!0,get:function(){return T}}),Object.defineProperty(g,"reportedWarnings",{enumerable:!0,get:function(){return $}}),Object.defineProperty(g,"warnOnce",{enumerable:!0,get:function(){return D}}),Object.defineProperty(g,"infoOnce",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(g,"resetWarnings",{enumerable:!0,get:function(){return V}}),Object.defineProperty(g,"fail",{enumerable:!0,get:function(){return d}}),Object.defineProperty(g,"invariant",{enumerable:!0,get:function(){return y}}),Object.defineProperty(g,"DEV",{enumerable:!0,get:function(){return k}}),Object.defineProperty(g,"isObject",{enumerable:!0,get:function(){return p}}),Object.defineProperty(g,"isFunction",{enumerable:!0,get:function(){return b}}),Object.defineProperty(g,"isNil",{enumerable:!0,get:function(){return P}}),Object.defineProperty(g,"isBlank",{enumerable:!0,get:function(){return O}}),Object.defineProperty(g,"isCtor",{enumerable:!0,get:function(){return M}}),Object.defineProperty(g,"pathGetter",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(g,"pathSetter",{enumerable:!0,get:function(){return h}}),Object.defineProperty(g,"getPath",{enumerable:!0,get:function(){return v}}),Object.defineProperty(g,"setPath",{enumerable:!0,get:function(){return F}}),Object.defineProperty(g,"humanise",{enumerable:!0,get:function(){return _}}),Object.defineProperty(g,"escapeHtml",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(g,"titleCase",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(g,"expand",{enumerable:!0,get:function(){return we}}),Object.defineProperty(g,"toArray",{enumerable:!0,get:function(){return N}}),Object.defineProperty(g,"merge",{enumerable:!0,get:function(){return B}}),Object.defineProperty(g,"mergeRow",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(g,"Lru",{enumerable:!0,get:function(){return me}}),Object.defineProperty(g,"collator",{enumerable:!0,get:function(){return U}}),Object.defineProperty(g,"defaultCompare",{enumerable:!0,get:function(){return K}}),Object.defineProperty(g,"now",{enumerable:!0,get:function(){return S}}),Object.defineProperty(g,"nextFrame",{enumerable:!0,get:function(){return t}}),Object.defineProperty(g,"cancelFrame",{enumerable:!0,get:function(){return i}}),Object.defineProperty(g,"frameBatched",{enumerable:!0,get:function(){return e}}),Object.defineProperty(g,"settleDebounce",{enumerable:!0,get:function(){return r}}),Object.defineProperty(g,"whenIdle",{enumerable:!0,get:function(){return s}}),Object.defineProperty(g,"uid",{enumerable:!0,get:function(){return c}});const ee="1.86.4";async function J(){return ee}const T="1.86.4",A=new Set,m=2e3;function R(l){if(A.add(l),A.size>m){const o=A.values().next().value;o!==void 0&&A.delete(o)}}const a=[],E=500;function I(l,o,f){a.push({key:l,level:o,message:f.map(w=>typeof w=="string"?w:x(w)).join(" "),at:Date.now()}),a.length>E&&a.shift()}function x(l){if(l instanceof Error)return l.message;try{return JSON.stringify(l)}catch{return String(l)}}function $(){return a.map(l=>({...l}))}function L(l){if(l.length===0||typeof l[0]!="string")return l;const o=l[0].replace(/^\[lattice\]\s*/,"");return o===l[0]?l:[o,...l.slice(1)]}function D(l,...o){if(A.has(l))return;R(l);const f=L(o);I(l,"warn",f),console.warn("[lattice]",...f)}function Y(l,...o){if(A.has(l))return;R(l);const f=L(o);I(l,"info",f),console.info("[lattice]",...f)}function V(){A.clear(),a.length=0}function d(l,o){const f=new Error(`[lattice] ${l}`);throw o!==void 0&&(f.cause=o),f}function y(l,o){l||d(o)}const k=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})();function p(l){return l!==null&&typeof l=="object"&&!Array.isArray(l)}function b(l){return typeof l=="function"}function P(l){return l==null}function O(l){return l==null||l===""}function M(l){return typeof l!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(l))?!0:!!(l.prototype&&Object.getOwnPropertyNames(l.prototype).length>1)}const H=new Map;function ae(l){let o=H.get(l);if(o)return o;if(!l.includes("."))o=f=>f?.[l];else{const f=l.split("."),w=f.length;o=X=>{let re=X;for(let le=0;le<w;le++){if(re==null)return;re=re[f[le]]}return re}}return H.set(l,o),o}const q=new Map;function h(l){let o=q.get(l);if(o)return o;if(!l.includes("."))o=(f,w)=>{f!=null&&(f[l]=w)};else{const f=l.split("."),w=f.length-1;o=(X,re)=>{let le=X;for(let oe=0;oe<w;oe++){if(le==null)return;const Te=f[oe];le[Te]==null&&(le[Te]={}),le=le[Te]}le!=null&&(le[f[w]]=re)}}return q.set(l,o),o}function v(l,o){return ae(o)(l)}function F(l,o,f){h(o)(l,f)}function _(l){return l?(l.includes(".")?l.slice(l.lastIndexOf(".")+1):l).replace(/[_-]+/g," ").replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2").replace(/\s+/g," ").trim().replace(/^./,f=>f.toUpperCase()):""}const z={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function ce(l){const o=l==null?"":String(l);return/[&<>"']/.test(o)?o.replace(/[&<>"']/g,f=>z[f]):o}function ue(l){return String(l).replace(/\w\S*/g,o=>o[0].toUpperCase()+o.slice(1).toLowerCase())}function we(l,o,f){if(l!==void 0)return l===!0?{enabled:!0,...f}:l===!1?{enabled:!1}:p(l)?l:{[o]:l,enabled:!0}}function N(l){return l==null?[]:Array.isArray(l)?l:[l]}const C=Object.freeze(new Set(["__proto__","constructor","prototype"]));function B(l,o){if(!p(l))return p(o)?{...o}:o;if(!p(o))return o===void 0?l:o;const f={...l};for(const w of Object.keys(o)){if(C.has(w))continue;const X=o[w];X!==void 0&&(f[w]=p(X)&&p(f[w])?B(f[w],X):X)}return f}function ne(l,o){if(!p(l)||!p(o)||l===o)return o;const f=Object.create(Object.getPrototypeOf(l));return Object.assign(f,l,o),f}class me{#e;#t=new Map;#n;constructor(o=256,f=null){this.#e=o,this.#n=f}get size(){return this.#t.size}get max(){return this.#e}set max(o){this.#e=o,this.#r()}has(o){return this.#t.has(o)}get(o){const f=this.#t;if(!f.has(o))return;const w=f.get(o);return f.delete(o),f.set(o,w),w}peek(o){return this.#t.get(o)}set(o,f){const w=this.#t;return w.has(o)&&w.delete(o),w.set(o,f),this.#r(),f}delete(o){const f=this.#t.get(o);return this.#t.delete(o)&&this.#n&&this.#n(f,o),f}clear(){if(this.#n)for(const[o,f]of this.#t)this.#n(f,o);this.#t.clear()}keys(){return this.#t.keys()}values(){return this.#t.values()}#r(){const o=this.#t;for(;o.size>this.#e;){const f=o.keys().next().value,w=o.get(f);o.delete(f),this.#n&&this.#n(w,f)}}}const j=new Map;function U(l,o){const f=`${l||""}|${o?JSON.stringify(o):""}`;let w=j.get(f);return w||(w=new Intl.Collator(l||void 0,{numeric:!0,sensitivity:"variant",...o}),j.set(f,w)),w}function K(l,o){if(l===o)return 0;if(l==null)return 1;if(o==null)return-1;if(typeof l=="number"&&typeof o=="number")return Number.isNaN(l)?Number.isNaN(o)?0:1:Number.isNaN(o)||l<o?-1:l>o?1:0;const f=String(l),w=String(o);return f<w?-1:f>w?1:0}function S(){return typeof performance<"u"&&performance.now?performance.now():Date.now()}const n=typeof requestAnimationFrame=="function";function t(l){return n?requestAnimationFrame(l):setTimeout(()=>l(S()),16)}function i(l){l!=null&&(n?cancelAnimationFrame(l):clearTimeout(l))}function e(l){let o=null,f=null;const w=()=>{o=null;const re=f;f=null,l(...re||[])},X=(...re)=>{f=re,o===null&&(o=t(w))};return X.cancel=()=>{i(o),o=null,f=null},X.flush=()=>{o!==null&&(i(o),w())},X}function r(l,o){let f=null,w=null;const X=()=>{if(f=null,w===null)return;const oe=w;w=null,l(...oe),re()},re=()=>{f=setTimeout(X,o),typeof f?.unref=="function"&&f.unref()},le=(...oe)=>{f===null?(l(...oe),re()):(w=oe,clearTimeout(f),re())};return le.flush=()=>{if(f!==null&&clearTimeout(f),f=null,w===null)return;const oe=w;w=null,l(...oe)},le.cancel=()=>{f!==null&&clearTimeout(f),f=null,w=null},le.pending=()=>f!==null||w!==null,le}function s(l,o=50){return typeof requestIdleCallback=="function"?requestIdleCallback(l,{timeout:o}):setTimeout(()=>l({timeRemaining:()=>0,didTimeout:!0}),1)}let u=0;function c(l="l"){return`${l}${(++u).toString(36)}`}}),_e("packages/modules/kpi/aggregate.js",function(g,fe){"use strict";Object.defineProperty(g,"AGGREGATIONS",{enumerable:!0,get:function(){return m}}),Object.defineProperty(g,"makeAccumulator",{enumerable:!0,get:function(){return a}}),Object.defineProperty(g,"accessorFor",{enumerable:!0,get:function(){return I}}),Object.defineProperty(g,"bandFor",{enumerable:!0,get:function(){return x}}),Object.defineProperty(g,"UNKNOWN_STATUS",{enumerable:!0,get:function(){return $}}),Object.defineProperty(g,"statusFor",{enumerable:!0,get:function(){return L}}),Object.defineProperty(g,"barBounds",{enumerable:!0,get:function(){return D}}),Object.defineProperty(g,"barPercent",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(g,"formatValue",{enumerable:!0,get:function(){return V}});const ee=fe("packages/core/src/internal/util.js"),J=ee.isNil,T=ee.isFunction,A=ee.pathGetter,m=Object.freeze(["sum","avg","min","max","count","countDistinct","custom"]);function R(d){if(J(d)||d==="")return null;const y=typeof d=="number"?d:Number(d);return Number.isFinite(y)?y:null}function a(d){switch(d){case"count":{let y=0;return{add(){y+=1},remove(){y-=1},value(){return y}}}case"sum":{let y=0,k=0;return{add(p){const b=R(p);b!==null&&(y+=b,k+=1)},remove(p){const b=R(p);b!==null&&(y-=b,k-=1)},value(){return k>0?y:0}}}case"avg":{let y=0,k=0;return{add(p){const b=R(p);b!==null&&(y+=b,k+=1)},remove(p){const b=R(p);b!==null&&(y-=b,k-=1)},value(){return k>0?y/k:null}}}case"countDistinct":{const y=new Map;return{add(k){J(k)||y.set(k,(y.get(k)||0)+1)},remove(k){if(J(k))return;const p=y.get(k);p&&(p===1?y.delete(k):y.set(k,p-1))},value(){return y.size}}}case"min":case"max":return E(d==="max");default:return null}}function E(d){const y=new Map;let k=null,p=!1;const b=(O,M)=>d?O>M:O<M,P=()=>{let O=null;for(const M of y.keys())(O===null||b(M,O))&&(O=M);return O};return{add(O){const M=R(O);M!==null&&(y.set(M,(y.get(M)||0)+1),!p&&(k===null||b(M,k))&&(k=M))},remove(O){const M=R(O);if(M===null)return;const H=y.get(M);H&&(H===1?(y.delete(M),M===k&&(p=!0)):y.set(M,H-1))},value(){return y.size===0?null:(p&&(k=P(),p=!1),k)}}}function I(d){return T(d)?d:typeof d=="string"&&d?A(d):()=>{}}function x(d,y){if(d==null||Number.isNaN(d))return null;if(Array.isArray(y.bands)){for(const b of y.bands){const P=J(b.min)?-1/0:b.min,O=J(b.max)?1/0:b.max;if(d>=P&&d<O)return b.status??null}return null}const k=y.thresholds;return!k||J(k.warn)||J(k.critical)?null:k.direction==="lowerIsBetter"?d<=k.warn?"good":d<=k.critical?"warn":"critical":d>=k.warn?"good":d>=k.critical?"warn":"critical"}const $="unknown";function L(d,y,k){return k?x(d,y):$}function D(d){if(!d)return null;const y=[];let k=!1;const p=O=>{if(J(O))return!1;const M=Number(O);return Number.isFinite(M)?(y.push(M),!0):!1};if(Array.isArray(d.bands)&&d.bands.length)for(const O of d.bands||[])p(O&&O.min)||(k=!0),p(O&&O.max)||(k=!0);else d.thresholds&&!J(d.thresholds.warn)&&!J(d.thresholds.critical)&&(p(d.thresholds.warn),p(d.thresholds.critical)),k=!0;if(p(d.target),k&&y.push(0),!y.length)return null;const b=Math.min(...y),P=Math.max(...y);return P>b?{lo:b,hi:P}:null}function Y(d,y){if(!y||J(d))return null;const k=Number(d);if(!Number.isFinite(k))return null;const p=y.hi-y.lo;return p?Math.max(0,Math.min(1,(k-y.lo)/p))*100:null}function V(d,y,k="—"){if(d==null||Number.isNaN(d))return k;const p=typeof y=="string"?{type:y}:y||{},b=p.type||"number",P=p.locale||void 0,O={};b==="currency"?(O.style="currency",O.currency=p.currency||"USD"):b==="percent"?O.style="percent":b==="compact"&&(O.notation="compact",typeof p.currency=="string"&&p.currency&&(O.style="currency",O.currency=p.currency)),J(p.decimals)||(O.minimumFractionDigits=p.decimals,O.maximumFractionDigits=p.decimals);const M=typeof p.prefix=="string"?p.prefix:"",H=typeof p.suffix=="string"?p.suffix:"";try{return M+new Intl.NumberFormat(P,O).format(d)+H}catch{return M+String(d)+H}}}),_e("packages/core/src/source/tree.js",function(g,fe){"use strict";Object.defineProperty(g,"SYNTHETIC",{enumerable:!0,get:function(){return m}}),Object.defineProperty(g,"buildFromPath",{enumerable:!0,get:function(){return a}}),Object.defineProperty(g,"buildFromParentKey",{enumerable:!0,get:function(){return E}}),Object.defineProperty(g,"assignLevels",{enumerable:!0,get:function(){return x}}),Object.defineProperty(g,"resolveTree",{enumerable:!0,get:function(){return $}}),Object.defineProperty(g,"buildTree",{enumerable:!0,get:function(){return L}}),Object.defineProperty(g,"indexTree",{enumerable:!0,get:function(){return D}});const ee=fe("packages/core/src/internal/util.js"),J=ee.isFunction,T=ee.warnOnce,A="",m="\0tree:";function R(Y,V){return{physical:Y,key:V,level:0,children:[],value:void 0}}function a(Y,V){const d=[],y=new Map;for(let k=0;k<Y.length;k++){const p=Y[k],b=V.pathOf(p),P=Array.isArray(b)?b.map(M=>String(M)):[];if(!P.length){const M=R(p,V.keyOf(p));d.push(M);continue}let O=null;for(let M=0;M<P.length;M++){const H=P.slice(0,M+1).join(A),ae=M===P.length-1;let q=y.get(H);q&&ae&&q.physical===-1&&(q.physical=p,q.key=V.keyOf(p)),q||(q=R(ae?p:-1,ae?V.keyOf(p):m+H),q.level=M,q.value=P[M],y.set(H,q),O?O.children.push(q):d.push(q)),O=q}}return{roots:d,nodes:y}}function E(Y,V){const d=new Map,y=[];for(let P=0;P<Y.length;P++){const O=Y[P],M=V.keyOf(O),H=R(O,M);d.set(M,H);const ae=V.parentOf(O);ae!=null&&ae!==""&&y.push({node:H,parent:String(ae)})}let k=null;const p=new Map;for(const{node:P,parent:O}of y){const M=d.get(O);if(M){p.set(P.key,M);continue}V.orphans&&V.orphans!=="root"&&(k||(k=R(-1,`${m}orphans`),k.value=V.orphans),p.set(P.key,k))}const b=[];for(const P of d.values()){const O=p.get(P.key);O?O.children.push(P):b.push(P)}return k&&k.children.length&&b.push(k),{roots:I(b,d,V.orphans,k),nodes:d}}function I(Y,V,d,y){const k=new Set,p=[...Y];for(;p.length;){const H=p.pop();if(!k.has(H.key)){k.add(H.key);for(const ae of H.children)p.push(ae)}}const b=[];for(const H of V.values())k.has(H.key)||b.push(H);if(!b.length)return Y;const P=!!d&&d!=="root";T("tree.cycle",`tree.parentKey produced ${b.length} row(s) inside a parent cycle; `+(P?`they are shown under "${d}".`:"they are shown at the root."));for(const H of b)H.children=H.children.filter(ae=>k.has(ae.key));if(!P)return[...Y,...b];let O=y;const M=[...Y];return O||(O=R(-1,`${m}orphans`),O.value=d,M.push(O)),O.children.push(...b),M}function x(Y){let V=0;const d=(y,k)=>{for(const p of y)p.level=k,k>V&&(V=k),p.children.length&&d(p.children,k+1)};return d(Y,0),V}function $(Y,V){if(!Y||typeof Y!="object")return null;const d=Y.path,y=Y.parentKey,k=J(Y.hasChildren)?p=>!!Y.hasChildren(V.dataAt(p)):null;if(J(d))return{mode:"path",pathOf:p=>d(V.dataAt(p)),keyOf:V.keyOf,declaresChildren:k};if(y!=null){const p=J(y)?y:b=>b?.[y];return{mode:"parentKey",parentOf:b=>p(V.dataAt(b)),keyOf:V.keyOf,orphans:Y.orphans||"root",declaresChildren:k}}return T("tree.shape","tree is configured with neither `path` nor `parentKey`; rows stay flat."),null}function L(Y,V){const d=V.mode==="path"?a(Y,V):E(Y,V),y=x(d.roots);return{...d,depth:y}}function D(Y,V){const d=new Map,y=k=>{for(let p=0;p<k.length;p++){const b=k[p];if(b.physical>=0){const P=V?V(b.physical):!1,O=P&&b.children.length===0;d.set(b.physical,{level:b.level,posinset:p+1,setsize:k.length,hasChildren:b.children.length>0||P,lazy:O})}b.children.length&&y(b.children)}};return y(Y),d}}),_e("packages/modules/kpi/tree.js",function(g,fe){"use strict";Object.defineProperty(g,"DEFAULT_SEPARATOR",{enumerable:!0,get:function(){return E}}),Object.defineProperty(g,"worseOf",{enumerable:!0,get:function(){return L}}),Object.defineProperty(g,"resolveHierarchy",{enumerable:!0,get:function(){return D}}),Object.defineProperty(g,"decorateNodes",{enumerable:!0,get:function(){return d}}),Object.defineProperty(g,"allNodes",{enumerable:!0,get:function(){return y}}),Object.defineProperty(g,"visibleNodes",{enumerable:!0,get:function(){return k}}),Object.defineProperty(g,"branchKeys",{enumerable:!0,get:function(){return p}});const ee=fe("packages/core/src/internal/util.js"),J=ee.isFunction,T=ee.isObject,A=ee.warnOnce,m=fe("packages/core/src/source/tree.js"),R=m.resolveTree,a=m.buildTree,E=".",I=Object.freeze({good:1,warn:2,critical:3}),x=Object.freeze([null,"good","warn","critical"]);function $(b){return!!b&&b.kind!=="clock"&&(b.value===null||b.value===void 0)}function L(b,P){const O=Math.max(I[b]||0,I[P]||0);return x[O]}function D(b,P){if(!P.length||b===!1)return null;if(b==null)return P.some(h=>h.id.includes(E))&&A("kpi:tree:dotted-id","kpi: tile ids contain dots; set `tree` to render them as a hierarchy."),null;const O=T(b)?b:{},M=P.map((h,v)=>v),H=h=>P[h].id;if(J(O.path)||O.parentKey!==null&&O.parentKey!==void 0){const h=R(O,{dataAt:v=>P[v].spec,keyOf:H});return h?Y({...a(M,h),mode:h.mode},P):null}const ae=typeof O.separator=="string"&&O.separator?O.separator:E;if(!P.some(h=>h.id.includes(ae)))return null;const q=R({path:h=>String(h).split(ae)},{dataAt:h=>P[h].id,keyOf:H});return Y({...a(M,q),mode:"id"},P)}function Y(b,P){const O=new Set,M=new Set(P.map(q=>q.id)),H=(q,h)=>{for(const v of q){const F=v.physical>=0?v.key:v.value===null||v.value===void 0?"":String(v.value),_=`${h}/${F}`;v.physical>=0?O.add(v.physical):M.has(_)||(v.key=_,M.add(_)),H(v.children,_)}};H(b.roots,"");const ae=P.filter((q,h)=>!O.has(h)).map(q=>q.id);return ae.length&&A("kpi:tree:unplaced",`${ae.length} KPI tile(s) are not on the tree and will not render: ${ae.join(", ")}. Two tiles cannot share one path; a path names the tile's own place, last segment included.`),b}function V(b,P){return b&&b.spec&&b.spec.label!==null&&b.spec.label!==void 0?String(b.spec.label):P!=null?String(P):b?b.label:""}function d(b,P,O,M){const H=(ae,q,h,v)=>{const F=ae.physical>=0?P[ae.physical]:null,_=F?O.get(F.id):null,z=ae.children.map((C,B)=>H(C,q+1,B,ae.children.length)),ce=_?_.status:null;let ue=I[ce]?ce:null,we=ce==="unknown"||$(_)?1:0,N=_?1:0;for(const C of z)ue=L(ue,C.rollup),we+=C.unknown,N+=C.items;return{key:ae.key,id:_?_.id:null,label:V(F,ae.value),level:q,posinset:h+1,setsize:v,hasChildren:z.length>0,expanded:z.length>0&&M.has(ae.key),children:z,tile:_,value:_?_.value:null,formatted:_?_.formatted:null,status:ce??null,rollup:ue,unknown:we,items:N}};return b.roots.map((ae,q)=>H(ae,0,q,b.roots.length))}function y(b){const P=[],O=M=>{for(const H of M)P.push(H),O(H.children)};return O(b),P}function k(b){const P=[],O=M=>{for(const H of M)P.push(H),H.expanded&&O(H.children)};return O(b),P}function p(b){const P=[],O=M=>{for(const H of M)H.children.length&&(P.push(H.key),O(H.children))};return O(b),P}}),_e("packages/modules/kpi/messages.js",function(g,fe){"use strict";Object.defineProperty(g,"FALLBACK_EN",{enumerable:!0,get:function(){return A}}),Object.defineProperty(g,"resolveMessages",{enumerable:!0,get:function(){return R}}),Object.defineProperty(g,"fallbackT",{enumerable:!0,get:function(){return a}});const ee=fe("packages/core/src/internal/util.js"),J=ee.isFunction,T=ee.isObject,A=Object.freeze({"kpi.status.good":"good","kpi.status.warn":"warn","kpi.status.critical":"critical","kpi.status.unknown":"No data","kpi.status.stale":"No recent data","kpi.engine":"computed by the data engine over every matching row","kpi.node.item":"{count} item","kpi.node.items":"{count} items","kpi.node.worst":"worst status {status}","kpi.node.unknown":"{count} unknown"});function m(E,I){return I?E.replace(/\{(\w+)\}/g,(x,$)=>$ in I?String(I[$]):x):E}function R(E){const I=T(E.messages)&&J(E.messages.t)&&E.messages||T(E.grid)&&T(E.grid.messages)&&J(E.grid.messages.t)&&E.grid.messages||null;return(x,$)=>{if(I){let L;try{L=I.t(x,$)}catch{L=null}if(typeof L=="string"&&L&&L!==x)return L}return m(A[x]||x,$)}}const a=R({})}),_e("packages/modules/kpi/view.js",function(g,fe){"use strict";Object.defineProperty(g,"NS",{enumerable:!0,get:function(){return a}}),Object.defineProperty(g,"EMPTY_TEXT",{enumerable:!0,get:function(){return E}}),Object.defineProperty(g,"Emitter",{enumerable:!0,get:function(){return D}}),Object.defineProperty(g,"injectStyles",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(g,"sparkPoints",{enumerable:!0,get:function(){return V}}),Object.defineProperty(g,"tileMinFor",{enumerable:!0,get:function(){return p}}),Object.defineProperty(g,"renderKPI",{enumerable:!0,get:function(){return H}});const J=fe("packages/modules/kpi/aggregate.js").UNKNOWN_STATUS,A=fe("packages/modules/kpi/tree.js").visibleNodes,R=fe("packages/modules/kpi/messages.js").fallbackT,a="lat-kpi",E=R("kpi.status.unknown"),I=R,x=Object.freeze({good:"●",warn:"▲",critical:"■",unknown:"○"});function $(e,r){return r?e(`kpi.status.${r}`):""}function L(e){return e&&e.stale?"kpi.status.stale":"kpi.status.unknown"}class D{constructor(){this.map=new Map}on(r,s){return this.map.has(r)||this.map.set(r,new Set),this.map.get(r).add(s),()=>this.off(r,s)}off(r,s){this.map.get(r)?.delete(s)}emit(r,s){for(const u of this.map.get(r)||[])u(s)}}function Y(e){if(!e||e.getElementById&&e.getElementById(`${a}-styles`))return;const r=e.createElement("style");r.id=`${a}-styles`,r.setAttribute("id",`${a}-styles`),r.textContent=`
6
+ (function(Wt){"use strict";var Ct=Object.create(null),Lt=Object.create(null);function _e(g,fe){Ct[g]=fe}function Ft(g){var fe=Lt[g];if(fe)return fe;var ee=Object.create(null);Lt[g]=ee;var J=Ct[g];if(!J)throw new Error("[lattice] missing module: "+g);return J(ee,Ft),ee}_e("packages/core/src/internal/util.js",function(g,fe){"use strict";Object.defineProperty(g,"VERSION",{enumerable:!0,get:function(){return T}}),Object.defineProperty(g,"reportedWarnings",{enumerable:!0,get:function(){return $}}),Object.defineProperty(g,"warnOnce",{enumerable:!0,get:function(){return D}}),Object.defineProperty(g,"infoOnce",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(g,"resetWarnings",{enumerable:!0,get:function(){return V}}),Object.defineProperty(g,"fail",{enumerable:!0,get:function(){return d}}),Object.defineProperty(g,"invariant",{enumerable:!0,get:function(){return y}}),Object.defineProperty(g,"DEV",{enumerable:!0,get:function(){return k}}),Object.defineProperty(g,"isObject",{enumerable:!0,get:function(){return p}}),Object.defineProperty(g,"isFunction",{enumerable:!0,get:function(){return b}}),Object.defineProperty(g,"isNil",{enumerable:!0,get:function(){return P}}),Object.defineProperty(g,"isBlank",{enumerable:!0,get:function(){return O}}),Object.defineProperty(g,"isCtor",{enumerable:!0,get:function(){return M}}),Object.defineProperty(g,"pathGetter",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(g,"pathSetter",{enumerable:!0,get:function(){return h}}),Object.defineProperty(g,"getPath",{enumerable:!0,get:function(){return v}}),Object.defineProperty(g,"setPath",{enumerable:!0,get:function(){return F}}),Object.defineProperty(g,"humanise",{enumerable:!0,get:function(){return _}}),Object.defineProperty(g,"escapeHtml",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(g,"titleCase",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(g,"expand",{enumerable:!0,get:function(){return we}}),Object.defineProperty(g,"toArray",{enumerable:!0,get:function(){return N}}),Object.defineProperty(g,"merge",{enumerable:!0,get:function(){return B}}),Object.defineProperty(g,"mergeRow",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(g,"Lru",{enumerable:!0,get:function(){return me}}),Object.defineProperty(g,"collator",{enumerable:!0,get:function(){return U}}),Object.defineProperty(g,"defaultCompare",{enumerable:!0,get:function(){return K}}),Object.defineProperty(g,"now",{enumerable:!0,get:function(){return S}}),Object.defineProperty(g,"nextFrame",{enumerable:!0,get:function(){return t}}),Object.defineProperty(g,"cancelFrame",{enumerable:!0,get:function(){return i}}),Object.defineProperty(g,"frameBatched",{enumerable:!0,get:function(){return e}}),Object.defineProperty(g,"settleDebounce",{enumerable:!0,get:function(){return r}}),Object.defineProperty(g,"whenIdle",{enumerable:!0,get:function(){return s}}),Object.defineProperty(g,"uid",{enumerable:!0,get:function(){return c}});const ee="1.86.5";async function J(){return ee}const T="1.86.5",A=new Set,m=2e3;function R(l){if(A.add(l),A.size>m){const o=A.values().next().value;o!==void 0&&A.delete(o)}}const a=[],E=500;function I(l,o,f){a.push({key:l,level:o,message:f.map(w=>typeof w=="string"?w:x(w)).join(" "),at:Date.now()}),a.length>E&&a.shift()}function x(l){if(l instanceof Error)return l.message;try{return JSON.stringify(l)}catch{return String(l)}}function $(){return a.map(l=>({...l}))}function L(l){if(l.length===0||typeof l[0]!="string")return l;const o=l[0].replace(/^\[lattice\]\s*/,"");return o===l[0]?l:[o,...l.slice(1)]}function D(l,...o){if(A.has(l))return;R(l);const f=L(o);I(l,"warn",f),console.warn("[lattice]",...f)}function Y(l,...o){if(A.has(l))return;R(l);const f=L(o);I(l,"info",f),console.info("[lattice]",...f)}function V(){A.clear(),a.length=0}function d(l,o){const f=new Error(`[lattice] ${l}`);throw o!==void 0&&(f.cause=o),f}function y(l,o){l||d(o)}const k=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})();function p(l){return l!==null&&typeof l=="object"&&!Array.isArray(l)}function b(l){return typeof l=="function"}function P(l){return l==null}function O(l){return l==null||l===""}function M(l){return typeof l!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(l))?!0:!!(l.prototype&&Object.getOwnPropertyNames(l.prototype).length>1)}const H=new Map;function ae(l){let o=H.get(l);if(o)return o;if(!l.includes("."))o=f=>f?.[l];else{const f=l.split("."),w=f.length;o=X=>{let re=X;for(let le=0;le<w;le++){if(re==null)return;re=re[f[le]]}return re}}return H.set(l,o),o}const q=new Map;function h(l){let o=q.get(l);if(o)return o;if(!l.includes("."))o=(f,w)=>{f!=null&&(f[l]=w)};else{const f=l.split("."),w=f.length-1;o=(X,re)=>{let le=X;for(let oe=0;oe<w;oe++){if(le==null)return;const Te=f[oe];le[Te]==null&&(le[Te]={}),le=le[Te]}le!=null&&(le[f[w]]=re)}}return q.set(l,o),o}function v(l,o){return ae(o)(l)}function F(l,o,f){h(o)(l,f)}function _(l){return l?(l.includes(".")?l.slice(l.lastIndexOf(".")+1):l).replace(/[_-]+/g," ").replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2").replace(/\s+/g," ").trim().replace(/^./,f=>f.toUpperCase()):""}const z={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function ce(l){const o=l==null?"":String(l);return/[&<>"']/.test(o)?o.replace(/[&<>"']/g,f=>z[f]):o}function ue(l){return String(l).replace(/\w\S*/g,o=>o[0].toUpperCase()+o.slice(1).toLowerCase())}function we(l,o,f){if(l!==void 0)return l===!0?{enabled:!0,...f}:l===!1?{enabled:!1}:p(l)?l:{[o]:l,enabled:!0}}function N(l){return l==null?[]:Array.isArray(l)?l:[l]}const C=Object.freeze(new Set(["__proto__","constructor","prototype"]));function B(l,o){if(!p(l))return p(o)?{...o}:o;if(!p(o))return o===void 0?l:o;const f={...l};for(const w of Object.keys(o)){if(C.has(w))continue;const X=o[w];X!==void 0&&(f[w]=p(X)&&p(f[w])?B(f[w],X):X)}return f}function ne(l,o){if(!p(l)||!p(o)||l===o)return o;const f=Object.create(Object.getPrototypeOf(l));return Object.assign(f,l,o),f}class me{#e;#t=new Map;#n;constructor(o=256,f=null){this.#e=o,this.#n=f}get size(){return this.#t.size}get max(){return this.#e}set max(o){this.#e=o,this.#r()}has(o){return this.#t.has(o)}get(o){const f=this.#t;if(!f.has(o))return;const w=f.get(o);return f.delete(o),f.set(o,w),w}peek(o){return this.#t.get(o)}set(o,f){const w=this.#t;return w.has(o)&&w.delete(o),w.set(o,f),this.#r(),f}delete(o){const f=this.#t.get(o);return this.#t.delete(o)&&this.#n&&this.#n(f,o),f}clear(){if(this.#n)for(const[o,f]of this.#t)this.#n(f,o);this.#t.clear()}keys(){return this.#t.keys()}values(){return this.#t.values()}#r(){const o=this.#t;for(;o.size>this.#e;){const f=o.keys().next().value,w=o.get(f);o.delete(f),this.#n&&this.#n(w,f)}}}const j=new Map;function U(l,o){const f=`${l||""}|${o?JSON.stringify(o):""}`;let w=j.get(f);return w||(w=new Intl.Collator(l||void 0,{numeric:!0,sensitivity:"variant",...o}),j.set(f,w)),w}function K(l,o){if(l===o)return 0;if(l==null)return 1;if(o==null)return-1;if(typeof l=="number"&&typeof o=="number")return Number.isNaN(l)?Number.isNaN(o)?0:1:Number.isNaN(o)||l<o?-1:l>o?1:0;const f=String(l),w=String(o);return f<w?-1:f>w?1:0}function S(){return typeof performance<"u"&&performance.now?performance.now():Date.now()}const n=typeof requestAnimationFrame=="function";function t(l){return n?requestAnimationFrame(l):setTimeout(()=>l(S()),16)}function i(l){l!=null&&(n?cancelAnimationFrame(l):clearTimeout(l))}function e(l){let o=null,f=null;const w=()=>{o=null;const re=f;f=null,l(...re||[])},X=(...re)=>{f=re,o===null&&(o=t(w))};return X.cancel=()=>{i(o),o=null,f=null},X.flush=()=>{o!==null&&(i(o),w())},X}function r(l,o){let f=null,w=null;const X=()=>{if(f=null,w===null)return;const oe=w;w=null,l(...oe),re()},re=()=>{f=setTimeout(X,o),typeof f?.unref=="function"&&f.unref()},le=(...oe)=>{f===null?(l(...oe),re()):(w=oe,clearTimeout(f),re())};return le.flush=()=>{if(f!==null&&clearTimeout(f),f=null,w===null)return;const oe=w;w=null,l(...oe)},le.cancel=()=>{f!==null&&clearTimeout(f),f=null,w=null},le.pending=()=>f!==null||w!==null,le}function s(l,o=50){return typeof requestIdleCallback=="function"?requestIdleCallback(l,{timeout:o}):setTimeout(()=>l({timeRemaining:()=>0,didTimeout:!0}),1)}let u=0;function c(l="l"){return`${l}${(++u).toString(36)}`}}),_e("packages/modules/kpi/aggregate.js",function(g,fe){"use strict";Object.defineProperty(g,"AGGREGATIONS",{enumerable:!0,get:function(){return m}}),Object.defineProperty(g,"makeAccumulator",{enumerable:!0,get:function(){return a}}),Object.defineProperty(g,"accessorFor",{enumerable:!0,get:function(){return I}}),Object.defineProperty(g,"bandFor",{enumerable:!0,get:function(){return x}}),Object.defineProperty(g,"UNKNOWN_STATUS",{enumerable:!0,get:function(){return $}}),Object.defineProperty(g,"statusFor",{enumerable:!0,get:function(){return L}}),Object.defineProperty(g,"barBounds",{enumerable:!0,get:function(){return D}}),Object.defineProperty(g,"barPercent",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(g,"formatValue",{enumerable:!0,get:function(){return V}});const ee=fe("packages/core/src/internal/util.js"),J=ee.isNil,T=ee.isFunction,A=ee.pathGetter,m=Object.freeze(["sum","avg","min","max","count","countDistinct","custom"]);function R(d){if(J(d)||d==="")return null;const y=typeof d=="number"?d:Number(d);return Number.isFinite(y)?y:null}function a(d){switch(d){case"count":{let y=0;return{add(){y+=1},remove(){y-=1},value(){return y}}}case"sum":{let y=0,k=0;return{add(p){const b=R(p);b!==null&&(y+=b,k+=1)},remove(p){const b=R(p);b!==null&&(y-=b,k-=1)},value(){return k>0?y:0}}}case"avg":{let y=0,k=0;return{add(p){const b=R(p);b!==null&&(y+=b,k+=1)},remove(p){const b=R(p);b!==null&&(y-=b,k-=1)},value(){return k>0?y/k:null}}}case"countDistinct":{const y=new Map;return{add(k){J(k)||y.set(k,(y.get(k)||0)+1)},remove(k){if(J(k))return;const p=y.get(k);p&&(p===1?y.delete(k):y.set(k,p-1))},value(){return y.size}}}case"min":case"max":return E(d==="max");default:return null}}function E(d){const y=new Map;let k=null,p=!1;const b=(O,M)=>d?O>M:O<M,P=()=>{let O=null;for(const M of y.keys())(O===null||b(M,O))&&(O=M);return O};return{add(O){const M=R(O);M!==null&&(y.set(M,(y.get(M)||0)+1),!p&&(k===null||b(M,k))&&(k=M))},remove(O){const M=R(O);if(M===null)return;const H=y.get(M);H&&(H===1?(y.delete(M),M===k&&(p=!0)):y.set(M,H-1))},value(){return y.size===0?null:(p&&(k=P(),p=!1),k)}}}function I(d){return T(d)?d:typeof d=="string"&&d?A(d):()=>{}}function x(d,y){if(d==null||Number.isNaN(d))return null;if(Array.isArray(y.bands)){for(const b of y.bands){const P=J(b.min)?-1/0:b.min,O=J(b.max)?1/0:b.max;if(d>=P&&d<O)return b.status??null}return null}const k=y.thresholds;return!k||J(k.warn)||J(k.critical)?null:k.direction==="lowerIsBetter"?d<=k.warn?"good":d<=k.critical?"warn":"critical":d>=k.warn?"good":d>=k.critical?"warn":"critical"}const $="unknown";function L(d,y,k){return k?x(d,y):$}function D(d){if(!d)return null;const y=[];let k=!1;const p=O=>{if(J(O))return!1;const M=Number(O);return Number.isFinite(M)?(y.push(M),!0):!1};if(Array.isArray(d.bands)&&d.bands.length)for(const O of d.bands||[])p(O&&O.min)||(k=!0),p(O&&O.max)||(k=!0);else d.thresholds&&!J(d.thresholds.warn)&&!J(d.thresholds.critical)&&(p(d.thresholds.warn),p(d.thresholds.critical)),k=!0;if(p(d.target),k&&y.push(0),!y.length)return null;const b=Math.min(...y),P=Math.max(...y);return P>b?{lo:b,hi:P}:null}function Y(d,y){if(!y||J(d))return null;const k=Number(d);if(!Number.isFinite(k))return null;const p=y.hi-y.lo;return p?Math.max(0,Math.min(1,(k-y.lo)/p))*100:null}function V(d,y,k="—"){if(d==null||Number.isNaN(d))return k;const p=typeof y=="string"?{type:y}:y||{},b=p.type||"number",P=p.locale||void 0,O={};b==="currency"?(O.style="currency",O.currency=p.currency||"USD"):b==="percent"?O.style="percent":b==="compact"&&(O.notation="compact",typeof p.currency=="string"&&p.currency&&(O.style="currency",O.currency=p.currency)),J(p.decimals)||(O.minimumFractionDigits=p.decimals,O.maximumFractionDigits=p.decimals);const M=typeof p.prefix=="string"?p.prefix:"",H=typeof p.suffix=="string"?p.suffix:"";try{return M+new Intl.NumberFormat(P,O).format(d)+H}catch{return M+String(d)+H}}}),_e("packages/core/src/source/tree.js",function(g,fe){"use strict";Object.defineProperty(g,"SYNTHETIC",{enumerable:!0,get:function(){return m}}),Object.defineProperty(g,"buildFromPath",{enumerable:!0,get:function(){return a}}),Object.defineProperty(g,"buildFromParentKey",{enumerable:!0,get:function(){return E}}),Object.defineProperty(g,"assignLevels",{enumerable:!0,get:function(){return x}}),Object.defineProperty(g,"resolveTree",{enumerable:!0,get:function(){return $}}),Object.defineProperty(g,"buildTree",{enumerable:!0,get:function(){return L}}),Object.defineProperty(g,"indexTree",{enumerable:!0,get:function(){return D}});const ee=fe("packages/core/src/internal/util.js"),J=ee.isFunction,T=ee.warnOnce,A="",m="\0tree:";function R(Y,V){return{physical:Y,key:V,level:0,children:[],value:void 0}}function a(Y,V){const d=[],y=new Map;for(let k=0;k<Y.length;k++){const p=Y[k],b=V.pathOf(p),P=Array.isArray(b)?b.map(M=>String(M)):[];if(!P.length){const M=R(p,V.keyOf(p));d.push(M);continue}let O=null;for(let M=0;M<P.length;M++){const H=P.slice(0,M+1).join(A),ae=M===P.length-1;let q=y.get(H);q&&ae&&q.physical===-1&&(q.physical=p,q.key=V.keyOf(p)),q||(q=R(ae?p:-1,ae?V.keyOf(p):m+H),q.level=M,q.value=P[M],y.set(H,q),O?O.children.push(q):d.push(q)),O=q}}return{roots:d,nodes:y}}function E(Y,V){const d=new Map,y=[];for(let P=0;P<Y.length;P++){const O=Y[P],M=V.keyOf(O),H=R(O,M);d.set(M,H);const ae=V.parentOf(O);ae!=null&&ae!==""&&y.push({node:H,parent:String(ae)})}let k=null;const p=new Map;for(const{node:P,parent:O}of y){const M=d.get(O);if(M){p.set(P.key,M);continue}V.orphans&&V.orphans!=="root"&&(k||(k=R(-1,`${m}orphans`),k.value=V.orphans),p.set(P.key,k))}const b=[];for(const P of d.values()){const O=p.get(P.key);O?O.children.push(P):b.push(P)}return k&&k.children.length&&b.push(k),{roots:I(b,d,V.orphans,k),nodes:d}}function I(Y,V,d,y){const k=new Set,p=[...Y];for(;p.length;){const H=p.pop();if(!k.has(H.key)){k.add(H.key);for(const ae of H.children)p.push(ae)}}const b=[];for(const H of V.values())k.has(H.key)||b.push(H);if(!b.length)return Y;const P=!!d&&d!=="root";T("tree.cycle",`tree.parentKey produced ${b.length} row(s) inside a parent cycle; `+(P?`they are shown under "${d}".`:"they are shown at the root."));for(const H of b)H.children=H.children.filter(ae=>k.has(ae.key));if(!P)return[...Y,...b];let O=y;const M=[...Y];return O||(O=R(-1,`${m}orphans`),O.value=d,M.push(O)),O.children.push(...b),M}function x(Y){let V=0;const d=(y,k)=>{for(const p of y)p.level=k,k>V&&(V=k),p.children.length&&d(p.children,k+1)};return d(Y,0),V}function $(Y,V){if(!Y||typeof Y!="object")return null;const d=Y.path,y=Y.parentKey,k=J(Y.hasChildren)?p=>!!Y.hasChildren(V.dataAt(p)):null;if(J(d))return{mode:"path",pathOf:p=>d(V.dataAt(p)),keyOf:V.keyOf,declaresChildren:k};if(y!=null){const p=J(y)?y:b=>b?.[y];return{mode:"parentKey",parentOf:b=>p(V.dataAt(b)),keyOf:V.keyOf,orphans:Y.orphans||"root",declaresChildren:k}}return T("tree.shape","tree is configured with neither `path` nor `parentKey`; rows stay flat."),null}function L(Y,V){const d=V.mode==="path"?a(Y,V):E(Y,V),y=x(d.roots);return{...d,depth:y}}function D(Y,V){const d=new Map,y=k=>{for(let p=0;p<k.length;p++){const b=k[p];if(b.physical>=0){const P=V?V(b.physical):!1,O=P&&b.children.length===0;d.set(b.physical,{level:b.level,posinset:p+1,setsize:k.length,hasChildren:b.children.length>0||P,lazy:O})}b.children.length&&y(b.children)}};return y(Y),d}}),_e("packages/modules/kpi/tree.js",function(g,fe){"use strict";Object.defineProperty(g,"DEFAULT_SEPARATOR",{enumerable:!0,get:function(){return E}}),Object.defineProperty(g,"worseOf",{enumerable:!0,get:function(){return L}}),Object.defineProperty(g,"resolveHierarchy",{enumerable:!0,get:function(){return D}}),Object.defineProperty(g,"decorateNodes",{enumerable:!0,get:function(){return d}}),Object.defineProperty(g,"allNodes",{enumerable:!0,get:function(){return y}}),Object.defineProperty(g,"visibleNodes",{enumerable:!0,get:function(){return k}}),Object.defineProperty(g,"branchKeys",{enumerable:!0,get:function(){return p}});const ee=fe("packages/core/src/internal/util.js"),J=ee.isFunction,T=ee.isObject,A=ee.warnOnce,m=fe("packages/core/src/source/tree.js"),R=m.resolveTree,a=m.buildTree,E=".",I=Object.freeze({good:1,warn:2,critical:3}),x=Object.freeze([null,"good","warn","critical"]);function $(b){return!!b&&b.kind!=="clock"&&(b.value===null||b.value===void 0)}function L(b,P){const O=Math.max(I[b]||0,I[P]||0);return x[O]}function D(b,P){if(!P.length||b===!1)return null;if(b==null)return P.some(h=>h.id.includes(E))&&A("kpi:tree:dotted-id","kpi: tile ids contain dots; set `tree` to render them as a hierarchy."),null;const O=T(b)?b:{},M=P.map((h,v)=>v),H=h=>P[h].id;if(J(O.path)||O.parentKey!==null&&O.parentKey!==void 0){const h=R(O,{dataAt:v=>P[v].spec,keyOf:H});return h?Y({...a(M,h),mode:h.mode},P):null}const ae=typeof O.separator=="string"&&O.separator?O.separator:E;if(!P.some(h=>h.id.includes(ae)))return null;const q=R({path:h=>String(h).split(ae)},{dataAt:h=>P[h].id,keyOf:H});return Y({...a(M,q),mode:"id"},P)}function Y(b,P){const O=new Set,M=new Set(P.map(q=>q.id)),H=(q,h)=>{for(const v of q){const F=v.physical>=0?v.key:v.value===null||v.value===void 0?"":String(v.value),_=`${h}/${F}`;v.physical>=0?O.add(v.physical):M.has(_)||(v.key=_,M.add(_)),H(v.children,_)}};H(b.roots,"");const ae=P.filter((q,h)=>!O.has(h)).map(q=>q.id);return ae.length&&A("kpi:tree:unplaced",`${ae.length} KPI tile(s) are not on the tree and will not render: ${ae.join(", ")}. Two tiles cannot share one path; a path names the tile's own place, last segment included.`),b}function V(b,P){return b&&b.spec&&b.spec.label!==null&&b.spec.label!==void 0?String(b.spec.label):P!=null?String(P):b?b.label:""}function d(b,P,O,M){const H=(ae,q,h,v)=>{const F=ae.physical>=0?P[ae.physical]:null,_=F?O.get(F.id):null,z=ae.children.map((C,B)=>H(C,q+1,B,ae.children.length)),ce=_?_.status:null;let ue=I[ce]?ce:null,we=ce==="unknown"||$(_)?1:0,N=_?1:0;for(const C of z)ue=L(ue,C.rollup),we+=C.unknown,N+=C.items;return{key:ae.key,id:_?_.id:null,label:V(F,ae.value),level:q,posinset:h+1,setsize:v,hasChildren:z.length>0,expanded:z.length>0&&M.has(ae.key),children:z,tile:_,value:_?_.value:null,formatted:_?_.formatted:null,status:ce??null,rollup:ue,unknown:we,items:N}};return b.roots.map((ae,q)=>H(ae,0,q,b.roots.length))}function y(b){const P=[],O=M=>{for(const H of M)P.push(H),O(H.children)};return O(b),P}function k(b){const P=[],O=M=>{for(const H of M)P.push(H),H.expanded&&O(H.children)};return O(b),P}function p(b){const P=[],O=M=>{for(const H of M)H.children.length&&(P.push(H.key),O(H.children))};return O(b),P}}),_e("packages/modules/kpi/messages.js",function(g,fe){"use strict";Object.defineProperty(g,"FALLBACK_EN",{enumerable:!0,get:function(){return A}}),Object.defineProperty(g,"resolveMessages",{enumerable:!0,get:function(){return R}}),Object.defineProperty(g,"fallbackT",{enumerable:!0,get:function(){return a}});const ee=fe("packages/core/src/internal/util.js"),J=ee.isFunction,T=ee.isObject,A=Object.freeze({"kpi.status.good":"good","kpi.status.warn":"warn","kpi.status.critical":"critical","kpi.status.unknown":"No data","kpi.status.stale":"No recent data","kpi.engine":"computed by the data engine over every matching row","kpi.node.item":"{count} item","kpi.node.items":"{count} items","kpi.node.worst":"worst status {status}","kpi.node.unknown":"{count} unknown"});function m(E,I){return I?E.replace(/\{(\w+)\}/g,(x,$)=>$ in I?String(I[$]):x):E}function R(E){const I=T(E.messages)&&J(E.messages.t)&&E.messages||T(E.grid)&&T(E.grid.messages)&&J(E.grid.messages.t)&&E.grid.messages||null;return(x,$)=>{if(I){let L;try{L=I.t(x,$)}catch{L=null}if(typeof L=="string"&&L&&L!==x)return L}return m(A[x]||x,$)}}const a=R({})}),_e("packages/modules/kpi/view.js",function(g,fe){"use strict";Object.defineProperty(g,"NS",{enumerable:!0,get:function(){return a}}),Object.defineProperty(g,"EMPTY_TEXT",{enumerable:!0,get:function(){return E}}),Object.defineProperty(g,"Emitter",{enumerable:!0,get:function(){return D}}),Object.defineProperty(g,"injectStyles",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(g,"sparkPoints",{enumerable:!0,get:function(){return V}}),Object.defineProperty(g,"tileMinFor",{enumerable:!0,get:function(){return p}}),Object.defineProperty(g,"renderKPI",{enumerable:!0,get:function(){return H}});const J=fe("packages/modules/kpi/aggregate.js").UNKNOWN_STATUS,A=fe("packages/modules/kpi/tree.js").visibleNodes,R=fe("packages/modules/kpi/messages.js").fallbackT,a="lat-kpi",E=R("kpi.status.unknown"),I=R,x=Object.freeze({good:"●",warn:"▲",critical:"■",unknown:"○"});function $(e,r){return r?e(`kpi.status.${r}`):""}function L(e){return e&&e.stale?"kpi.status.stale":"kpi.status.unknown"}class D{constructor(){this.map=new Map}on(r,s){return this.map.has(r)||this.map.set(r,new Set),this.map.get(r).add(s),()=>this.off(r,s)}off(r,s){this.map.get(r)?.delete(s)}emit(r,s){for(const u of this.map.get(r)||[])u(s)}}function Y(e){if(!e||e.getElementById&&e.getElementById(`${a}-styles`))return;const r=e.createElement("style");r.id=`${a}-styles`,r.setAttribute("id",`${a}-styles`),r.textContent=`
7
7
  .${a}{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(var(--${a}-tile-min,160px),1fr));font-family:var(--${a}-font-family,var(--lattice-font-family,var(--lat-chrome-font-family,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif)));font-size:var(--${a}-font-size,var(--lattice-font-size,var(--lat-chrome-font-size,13px)));line-height:var(--${a}-line-height,var(--lattice-line-height,var(--lat-chrome-line-height,1.4)));color:var(--${a}-fg,var(--lattice-foreground));--${a}-meter-w:var(--${a}-meter-width,calc(34px * var(--lat-chrome-scale,1)))}
8
8
  /* The author display:grid above outranks the browser's own [hidden] rule,
9
9
  so a hidden host stays painted without this guard (BACKLOG-0001605). */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.86.4, layout module type declarations
2
+ * Lattice Grid 1.86.5, layout module type declarations
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Lattice Grid 1.86.4, layout module
2
+ * Lattice Grid 1.86.5, layout module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
6
- var Le=Object.create(null),Re=Object.create(null);function pe(a,G){Le[a]=G}function De(a){var G=Re[a];if(G)return G;var Y=Object.create(null);Re[a]=Y;var I=Le[a];if(!I)throw new Error("[lattice] missing module: "+a);return I(Y,De),Y}pe("packages/core/src/internal/util.js",function(a,G){"use strict";Object.defineProperty(a,"VERSION",{enumerable:!0,get:function(){return U}}),Object.defineProperty(a,"reportedWarnings",{enumerable:!0,get:function(){return z}}),Object.defineProperty(a,"warnOnce",{enumerable:!0,get:function(){return k}}),Object.defineProperty(a,"infoOnce",{enumerable:!0,get:function(){return h}}),Object.defineProperty(a,"resetWarnings",{enumerable:!0,get:function(){return v}}),Object.defineProperty(a,"fail",{enumerable:!0,get:function(){return P}}),Object.defineProperty(a,"invariant",{enumerable:!0,get:function(){return $}}),Object.defineProperty(a,"DEV",{enumerable:!0,get:function(){return _}}),Object.defineProperty(a,"isObject",{enumerable:!0,get:function(){return C}}),Object.defineProperty(a,"isFunction",{enumerable:!0,get:function(){return w}}),Object.defineProperty(a,"isNil",{enumerable:!0,get:function(){return O}}),Object.defineProperty(a,"isBlank",{enumerable:!0,get:function(){return X}}),Object.defineProperty(a,"isCtor",{enumerable:!0,get:function(){return A}}),Object.defineProperty(a,"pathGetter",{enumerable:!0,get:function(){return q}}),Object.defineProperty(a,"pathSetter",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(a,"getPath",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(a,"setPath",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(a,"humanise",{enumerable:!0,get:function(){return we}}),Object.defineProperty(a,"escapeHtml",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(a,"titleCase",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(a,"expand",{enumerable:!0,get:function(){return he}}),Object.defineProperty(a,"toArray",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(a,"merge",{enumerable:!0,get:function(){return u}}),Object.defineProperty(a,"mergeRow",{enumerable:!0,get:function(){return r}}),Object.defineProperty(a,"Lru",{enumerable:!0,get:function(){return f}}),Object.defineProperty(a,"collator",{enumerable:!0,get:function(){return p}}),Object.defineProperty(a,"defaultCompare",{enumerable:!0,get:function(){return M}}),Object.defineProperty(a,"now",{enumerable:!0,get:function(){return L}}),Object.defineProperty(a,"nextFrame",{enumerable:!0,get:function(){return re}}),Object.defineProperty(a,"cancelFrame",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(a,"frameBatched",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(a,"settleDebounce",{enumerable:!0,get:function(){return de}}),Object.defineProperty(a,"whenIdle",{enumerable:!0,get:function(){return V}}),Object.defineProperty(a,"uid",{enumerable:!0,get:function(){return se}});const Y="1.86.4";async function I(){return Y}const U="1.86.4",F=new Set,D=2e3;function W(i){if(F.add(i),F.size>D){const l=F.values().next().value;l!==void 0&&F.delete(l)}}const N=[],g=500;function E(i,l,c){N.push({key:i,level:l,message:c.map(S=>typeof S=="string"?S:n(S)).join(" "),at:Date.now()}),N.length>g&&N.shift()}function n(i){if(i instanceof Error)return i.message;try{return JSON.stringify(i)}catch{return String(i)}}function z(){return N.map(i=>({...i}))}function j(i){if(i.length===0||typeof i[0]!="string")return i;const l=i[0].replace(/^\[lattice\]\s*/,"");return l===i[0]?i:[l,...i.slice(1)]}function k(i,...l){if(F.has(i))return;W(i);const c=j(l);E(i,"warn",c),console.warn("[lattice]",...c)}function h(i,...l){if(F.has(i))return;W(i);const c=j(l);E(i,"info",c),console.info("[lattice]",...c)}function v(){F.clear(),N.length=0}function P(i,l){const c=new Error(`[lattice] ${i}`);throw l!==void 0&&(c.cause=l),c}function $(i,l){i||P(l)}const _=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})();function C(i){return i!==null&&typeof i=="object"&&!Array.isArray(i)}function w(i){return typeof i=="function"}function O(i){return i==null}function X(i){return i==null||i===""}function A(i){return typeof i!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(i))?!0:!!(i.prototype&&Object.getOwnPropertyNames(i.prototype).length>1)}const T=new Map;function q(i){let l=T.get(i);if(l)return l;if(!i.includes("."))l=c=>c?.[i];else{const c=i.split("."),S=c.length;l=K=>{let Q=K;for(let J=0;J<S;J++){if(Q==null)return;Q=Q[c[J]]}return Q}}return T.set(i,l),l}const Z=new Map;function ie(i){let l=Z.get(i);if(l)return l;if(!i.includes("."))l=(c,S)=>{c!=null&&(c[i]=S)};else{const c=i.split("."),S=c.length-1;l=(K,Q)=>{let J=K;for(let ee=0;ee<S;ee++){if(J==null)return;const ye=c[ee];J[ye]==null&&(J[ye]={}),J=J[ye]}J!=null&&(J[c[S]]=Q)}}return Z.set(i,l),l}function ue(i,l){return q(l)(i)}function ne(i,l,c){ie(l)(i,c)}function we(i){return i?(i.includes(".")?i.slice(i.lastIndexOf(".")+1):i).replace(/[_-]+/g," ").replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2").replace(/\s+/g," ").trim().replace(/^./,c=>c.toUpperCase()):""}const fe={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function ve(i){const l=i==null?"":String(i);return/[&<>"']/.test(l)?l.replace(/[&<>"']/g,c=>fe[c]):l}function xe(i){return String(i).replace(/\w\S*/g,l=>l[0].toUpperCase()+l.slice(1).toLowerCase())}function he(i,l,c){if(i!==void 0)return i===!0?{enabled:!0,...c}:i===!1?{enabled:!1}:C(i)?i:{[l]:i,enabled:!0}}function ae(i){return i==null?[]:Array.isArray(i)?i:[i]}const be=Object.freeze(new Set(["__proto__","constructor","prototype"]));function u(i,l){if(!C(i))return C(l)?{...l}:l;if(!C(l))return l===void 0?i:l;const c={...i};for(const S of Object.keys(l)){if(be.has(S))continue;const K=l[S];K!==void 0&&(c[S]=C(K)&&C(c[S])?u(c[S],K):K)}return c}function r(i,l){if(!C(i)||!C(l)||i===l)return l;const c=Object.create(Object.getPrototypeOf(i));return Object.assign(c,i,l),c}class f{#t;#e=new Map;#n;constructor(l=256,c=null){this.#t=l,this.#n=c}get size(){return this.#e.size}get max(){return this.#t}set max(l){this.#t=l,this.#i()}has(l){return this.#e.has(l)}get(l){const c=this.#e;if(!c.has(l))return;const S=c.get(l);return c.delete(l),c.set(l,S),S}peek(l){return this.#e.get(l)}set(l,c){const S=this.#e;return S.has(l)&&S.delete(l),S.set(l,c),this.#i(),c}delete(l){const c=this.#e.get(l);return this.#e.delete(l)&&this.#n&&this.#n(c,l),c}clear(){if(this.#n)for(const[l,c]of this.#e)this.#n(c,l);this.#e.clear()}keys(){return this.#e.keys()}values(){return this.#e.values()}#i(){const l=this.#e;for(;l.size>this.#t;){const c=l.keys().next().value,S=l.get(c);l.delete(c),this.#n&&this.#n(S,c)}}}const y=new Map;function p(i,l){const c=`${i||""}|${l?JSON.stringify(l):""}`;let S=y.get(c);return S||(S=new Intl.Collator(i||void 0,{numeric:!0,sensitivity:"variant",...l}),y.set(c,S)),S}function M(i,l){if(i===l)return 0;if(i==null)return 1;if(l==null)return-1;if(typeof i=="number"&&typeof l=="number")return Number.isNaN(i)?Number.isNaN(l)?0:1:Number.isNaN(l)||i<l?-1:i>l?1:0;const c=String(i),S=String(l);return c<S?-1:c>S?1:0}function L(){return typeof performance<"u"&&performance.now?performance.now():Date.now()}const H=typeof requestAnimationFrame=="function";function re(i){return H?requestAnimationFrame(i):setTimeout(()=>i(L()),16)}function oe(i){i!=null&&(H?cancelAnimationFrame(i):clearTimeout(i))}function ce(i){let l=null,c=null;const S=()=>{l=null;const Q=c;c=null,i(...Q||[])},K=(...Q)=>{c=Q,l===null&&(l=re(S))};return K.cancel=()=>{oe(l),l=null,c=null},K.flush=()=>{l!==null&&(oe(l),S())},K}function de(i,l){let c=null,S=null;const K=()=>{if(c=null,S===null)return;const ee=S;S=null,i(...ee),Q()},Q=()=>{c=setTimeout(K,l),typeof c?.unref=="function"&&c.unref()},J=(...ee)=>{c===null?(i(...ee),Q()):(S=ee,clearTimeout(c),Q())};return J.flush=()=>{if(c!==null&&clearTimeout(c),c=null,S===null)return;const ee=S;S=null,i(...ee)},J.cancel=()=>{c!==null&&clearTimeout(c),c=null,S=null},J.pending=()=>c!==null||S!==null,J}function V(i,l=50){return typeof requestIdleCallback=="function"?requestIdleCallback(i,{timeout:l}):setTimeout(()=>i({timeRemaining:()=>0,didTimeout:!0}),1)}let me=0;function se(i="l"){return`${i}${(++me).toString(36)}`}}),pe("packages/modules/shared/emitter.js",function(a,G){"use strict";Object.defineProperty(a,"WILDCARD",{enumerable:!0,get:function(){return F}}),Object.defineProperty(a,"Emitter",{enumerable:!0,get:function(){return N}}),Object.defineProperty(a,"gate",{enumerable:!0,get:function(){return g}});const Y=G("packages/core/src/internal/util.js"),I=Y.isFunction,U=Y.warnOnce,F="*",D=new Set(["api","user","init","ai"]);function W(E,n){return E&&E.name?E.name:`#${n}`}class N{#t=new Map;#e;constructor(n="module"){this.#e=String(n)}on(n,z){if(!I(z))return()=>{};let j=this.#t.get(n);return j||(j=new Set,this.#t.set(n,j)),j.add(z),()=>this.off(n,z)}off(n,z){const j=this.#t.get(n);j&&j.delete(z)}count(n){const z=this.#t.get(n);return z?z.size:0}emit(n,z){const j=this.#t.get(n),k=this.#t.get(F);if((!j||j.size===0)&&(!k||k.size===0))return;const h={...z||null,type:n};j&&j.size&&this.#n([...j],h,n),k&&k.size&&this.#n([...k],h,F)}#n(n,z,j){for(let k=0;k<n.length;k++)try{n[k](z)}catch(h){U(`${this.#e}.emit.throw:${j}:${W(n[k],k)}`,`${this.#e}: a '${j}' handler threw; other handlers were unaffected.`,h)}}emitBefore(n,z,j){const k=j??(z&&z.origin),h=D.has(k)?k:"user";let v=!1,P=null;const $=A=>{v=!0,A!=null&&P===null&&(P=String(A))},_={...z||null,type:n,origin:h,get defaultPrevented(){return v},get reason(){return P},preventDefault(A){$(A)}},C=this.#t.get(n);if(!C||C.size===0)return!0;const w=[...C],O=()=>(v&&P===null&&(P="prevented"),v&&z&&typeof z=="object"&&(z.reason=P),!v),X=[];for(let A=0;A<w.length;A++){const T=w[A];try{const q=T(_);q&&I(q.then)?X.push(q):q===!1&&$("prevented")}catch(q){$("error"),U(`${this.#e}.beforeThrow:${n}:${W(T,A)}`,`${this.#e}: a '${n}' before-handler threw; the action was cancelled.`,q)}}return X.length===0?O():Promise.allSettled(X).then(A=>{for(const T of A)T.status==="rejected"?($("error"),U(`${this.#e}.beforeReject:${n}`,`${this.#e}: a '${n}' before-handler rejected; the action was cancelled.`,T.reason)):T.value===!1&&$("prevented");return O()})}clear(){this.#t.clear()}}function g(E,n,z,j,k){const h=E.emitBefore(n,j,j.origin),v=()=>(E.emit(z,{...j,reason:j.reason||"prevented"}),!1);return h===!1?v():h&&I(h.then)?h.then(P=>P?k():v()):k()}}),pe("packages/modules/shared/autosize.js",function(a,G){"use strict";Object.defineProperty(a,"contentWidth",{enumerable:!0,get:function(){return U}}),Object.defineProperty(a,"contentHeight",{enumerable:!0,get:function(){return F}}),Object.defineProperty(a,"firstMeasured",{enumerable:!0,get:function(){return D}}),Object.defineProperty(a,"watchSize",{enumerable:!0,get:function(){return W}}),Object.defineProperty(a,"watchBox",{enumerable:!0,get:function(){return N}});const I=G("packages/core/src/internal/util.js").warnOnce;function U(g){if(!g||typeof g!="object")return null;const E=Number(g.clientWidth);if(Number.isFinite(E)&&E>0)return E;if(typeof g.getBoundingClientRect=="function"){const n=g.getBoundingClientRect(),z=n&&Number(n.width);if(Number.isFinite(z)&&z>0)return z}return null}function F(g){if(!g||typeof g!="object")return null;const E=Number(g.clientHeight);if(Number.isFinite(E)&&E>0)return E;if(typeof g.getBoundingClientRect=="function"){const n=g.getBoundingClientRect(),z=n&&Number(n.height);if(Number.isFinite(z)&&z>0)return z}return null}function D(g,E=U){for(const n of g||[]){const z=E(n);if(Number.isFinite(z)&&z>0)return z}return null}function W(g){const E=(g&&Array.isArray(g.targets)?g.targets:[]).filter(Boolean),n=g&&typeof g.read=="function"?g.read:()=>null,z=g&&typeof g.apply=="function"?g.apply:()=>{},j=Number.isFinite(g&&g.epsilon)?Number(g.epsilon):1;let k=null,h=!1;const v=()=>{if(h)return!1;const w=n();if(!Number.isFinite(w)||w<=0||k!=null&&Math.abs(w-k)<j)return!1;k=w,h=!0;try{z(w)}finally{h=!1}return!0};v();const P=E[0],$=g&&g.view||P&&P.ownerDocument&&P.ownerDocument.defaultView||globalThis,_=$&&$.ResizeObserver;let C=null;if(typeof _=="function"&&E.length){C=new _(()=>{v()});for(const w of E)w&&typeof C.observe=="function"&&C.observe(w)}else E.length&&I("shared.autosize.no-resize-observer","ResizeObserver is unavailable; this view was sized once at mount and will not follow its container.");return{refresh:v,get applied(){return k},release(){if(C&&typeof C.disconnect=="function")try{C.disconnect()}catch{}C=null}}}function N(g){const E=(g&&Array.isArray(g.targets)?g.targets:[]).filter(Boolean),n=g&&typeof g.read=="function"?g.read:()=>({}),z=g&&typeof g.apply=="function"?g.apply:()=>{},j=Number.isFinite(g&&g.epsilon)?Number(g.epsilon):1;let k=null,h=!1;const v=O=>{if(k==null)return!0;for(const[X,A]of Object.entries(O)){if(!Number.isFinite(A)||A<=0)continue;const T=k[X];if(!Number.isFinite(T)||Math.abs(A-T)>=j)return!0}return!1},P=()=>{if(h)return!1;const O=n();if(!O||typeof O!="object"||!Object.values(O).some(A=>Number.isFinite(A)&&A>0)||!v(O))return!1;k={...k,...O},h=!0;try{z(O)}finally{h=!1}return!0};P();const $=E[0],_=g&&g.view||$&&$.ownerDocument&&$.ownerDocument.defaultView||globalThis,C=_&&_.ResizeObserver;let w=null;if(typeof C=="function"&&E.length){w=new C(()=>{P()});for(const O of E)O&&typeof w.observe=="function"&&w.observe(O)}else E.length&&I("shared.autosize.no-resize-observer","ResizeObserver is unavailable; this view was sized once at mount and will not follow its container.");return{refresh:P,get applied(){return k},release(){if(w&&typeof w.disconnect=="function")try{w.disconnect()}catch{}w=null}}}}),pe("packages/modules/layout/length.js",function(a,G){"use strict";Object.defineProperty(a,"cssLength",{enumerable:!0,get:function(){return F}}),Object.defineProperty(a,"tracks",{enumerable:!0,get:function(){return W}});const I=G("packages/core/src/internal/util.js").warnOnce,U=/^(?:\d+\.?\d*|\.\d+)(?:px|%|fr|em|rem|ch|vh|vw|vmin|vmax|pt|cm|mm|in)$/i;function F(N,g,E){if(N==null)return g;if(typeof N=="number")return Number.isFinite(N)&&N>=0?`${N}px`:D(N,g,E);if(typeof N!="string")return D(N,g,E);const n=N.trim();if(n==="")return g;if(U.test(n))return n;const z=Number(n);return Number.isFinite(z)&&z>=0?`${z}px`:D(N,g,E)}function D(N,g,E){return I(`layout.length:${E}`,`layout: ${E} was set to ${JSON.stringify(N)}, which is not a length this module understands (a number of pixels, or a string like '200px', '25%', '1fr', '2rem'). Using ${g}.`),g}function W(N,g,E){return N==="scroll"?`repeat(${g}, ${E})`:`repeat(${g}, minmax(0, 1fr))`}}),pe("packages/modules/layout/model.js",function(a,G){"use strict";Object.defineProperty(a,"positiveInt",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(a,"overlaps",{enumerable:!0,get:function(){return I}}),Object.defineProperty(a,"clampToColumns",{enumerable:!0,get:function(){return U}}),Object.defineProperty(a,"readingOrder",{enumerable:!0,get:function(){return F}}),Object.defineProperty(a,"columnOrder",{enumerable:!0,get:function(){return W}}),Object.defineProperty(a,"pushDown",{enumerable:!0,get:function(){return N}}),Object.defineProperty(a,"pullUp",{enumerable:!0,get:function(){return g}}),Object.defineProperty(a,"pushRight",{enumerable:!0,get:function(){return E}}),Object.defineProperty(a,"pullLeft",{enumerable:!0,get:function(){return n}}),Object.defineProperty(a,"compact",{enumerable:!0,get:function(){return z}}),Object.defineProperty(a,"firstFree",{enumerable:!0,get:function(){return j}}),Object.defineProperty(a,"occupiedRows",{enumerable:!0,get:function(){return k}});function Y(h,v){const P=Math.trunc(Number(h));return Number.isFinite(P)&&P>0?P:v}function I(h,v){return h.xPos<v.xPos+v.xSize&&v.xPos<h.xPos+h.xSize&&h.yPos<v.yPos+v.ySize&&v.yPos<h.yPos+h.ySize}function U(h,v){const P=Math.max(1,Math.min(h.xSize,v));return{xPos:Math.max(1,Math.min(h.xPos,v-P+1)),yPos:Math.max(1,h.yPos),xSize:P,ySize:Math.max(1,h.ySize)}}function F(h,v){return h.yPos-v.yPos||h.xPos-v.xPos||D(h,v)}function D(h,v){const P=String(h.id),$=String(v.id);return P<$?-1:P>$?1:0}function W(h,v){return h.xPos-v.xPos||h.yPos-v.yPos||D(h,v)}function N(h,v){const P=h.find(w=>w.id===v),$=P?[P]:[],_=h.filter(w=>w!==P).sort(F),C=h.length+2;for(const w of _){for(let O=0;O<C;O++){const X=$.filter(A=>I(w,A));if(X.length===0)break;w.yPos=X.reduce((A,T)=>Math.max(A,T.yPos+T.ySize),w.yPos)}$.push(w)}return h}function g(h){const v=[];for(const P of[...h].sort(F)){for(;P.yPos>1;){const $={...P,yPos:P.yPos-1};if(v.some(_=>I($,_)))break;P.yPos-=1}v.push(P)}return h}function E(h,v){const P=h.find(w=>w.id===v),$=P?[P]:[],_=h.filter(w=>w!==P).sort(W),C=h.length+2;for(const w of _){for(let O=0;O<C;O++){const X=$.filter(A=>I(w,A));if(X.length===0)break;w.xPos=X.reduce((A,T)=>Math.max(A,T.xPos+T.xSize),w.xPos)}$.push(w)}return h}function n(h){const v=[];for(const P of[...h].sort(W)){for(;P.xPos>1;){const $={...P,xPos:P.xPos-1};if(v.some(_=>I($,_)))break;P.xPos-=1}v.push(P)}return h}function z(h,v,P){return v==="horizontal"?(E(h,P),n(h)):v!=="vertical"?h:(N(h,P),g(h))}function j(h,v,P,$){const _=Math.max(1,Math.min(P,v)),C=h.reduce((w,O)=>Math.max(w,O.yPos+O.ySize),1);for(let w=1;w<=C+$;w++)for(let O=1;O<=v-_+1;O++){const X={xPos:O,yPos:w,xSize:_,ySize:Math.max(1,$)};if(!h.some(A=>I(X,A)))return{xPos:O,yPos:w}}return{xPos:1,yPos:C}}function k(h,v){return h.reduce((P,$)=>Math.max(P,$.yPos+$.ySize-1),v)}}),pe("packages/modules/layout/view.js",function(a,G){"use strict";Object.defineProperty(a,"NS",{enumerable:!0,get:function(){return n}}),Object.defineProperty(a,"injectStyles",{enumerable:!0,get:function(){return z}}),Object.defineProperty(a,"renderShell",{enumerable:!0,get:function(){return j}}),Object.defineProperty(a,"applyGeometry",{enumerable:!0,get:function(){return k}}),Object.defineProperty(a,"setModeState",{enumerable:!0,get:function(){return C}}),Object.defineProperty(a,"renderWindow",{enumerable:!0,get:function(){return X}}),Object.defineProperty(a,"syncAffordances",{enumerable:!0,get:function(){return T}}),Object.defineProperty(a,"effective",{enumerable:!0,get:function(){return q}}),Object.defineProperty(a,"project",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(a,"placeWindow",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(a,"announce",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(a,"cellPitch",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(a,"showGhost",{enumerable:!0,get:function(){return we}}),Object.defineProperty(a,"hideGhost",{enumerable:!0,get:function(){return fe}}),Object.defineProperty(a,"listen",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(a,"placementFromDelta",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(a,"boundPlacement",{enumerable:!0,get:function(){return he}}),Object.defineProperty(a,"commitPlacement",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(a,"focusHandle",{enumerable:!0,get:function(){return be}});const I=G("packages/core/src/internal/util.js").isFunction,U=G("packages/modules/layout/length.js"),F=U.cssLength,D=U.tracks,W=G("packages/modules/layout/model.js"),N=W.clampToColumns,g=W.compact,E=W.occupiedRows,n="lat-layout";function z(u){if(!u||u.getElementById&&u.getElementById(`${n}-styles`))return;const r=u.createElement("style");r.id=`${n}-styles`,r.setAttribute("id",`${n}-styles`),r.textContent=`
6
+ var Le=Object.create(null),Re=Object.create(null);function pe(a,G){Le[a]=G}function De(a){var G=Re[a];if(G)return G;var Y=Object.create(null);Re[a]=Y;var I=Le[a];if(!I)throw new Error("[lattice] missing module: "+a);return I(Y,De),Y}pe("packages/core/src/internal/util.js",function(a,G){"use strict";Object.defineProperty(a,"VERSION",{enumerable:!0,get:function(){return U}}),Object.defineProperty(a,"reportedWarnings",{enumerable:!0,get:function(){return z}}),Object.defineProperty(a,"warnOnce",{enumerable:!0,get:function(){return k}}),Object.defineProperty(a,"infoOnce",{enumerable:!0,get:function(){return h}}),Object.defineProperty(a,"resetWarnings",{enumerable:!0,get:function(){return v}}),Object.defineProperty(a,"fail",{enumerable:!0,get:function(){return P}}),Object.defineProperty(a,"invariant",{enumerable:!0,get:function(){return $}}),Object.defineProperty(a,"DEV",{enumerable:!0,get:function(){return _}}),Object.defineProperty(a,"isObject",{enumerable:!0,get:function(){return C}}),Object.defineProperty(a,"isFunction",{enumerable:!0,get:function(){return w}}),Object.defineProperty(a,"isNil",{enumerable:!0,get:function(){return O}}),Object.defineProperty(a,"isBlank",{enumerable:!0,get:function(){return X}}),Object.defineProperty(a,"isCtor",{enumerable:!0,get:function(){return A}}),Object.defineProperty(a,"pathGetter",{enumerable:!0,get:function(){return q}}),Object.defineProperty(a,"pathSetter",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(a,"getPath",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(a,"setPath",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(a,"humanise",{enumerable:!0,get:function(){return we}}),Object.defineProperty(a,"escapeHtml",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(a,"titleCase",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(a,"expand",{enumerable:!0,get:function(){return he}}),Object.defineProperty(a,"toArray",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(a,"merge",{enumerable:!0,get:function(){return u}}),Object.defineProperty(a,"mergeRow",{enumerable:!0,get:function(){return r}}),Object.defineProperty(a,"Lru",{enumerable:!0,get:function(){return f}}),Object.defineProperty(a,"collator",{enumerable:!0,get:function(){return p}}),Object.defineProperty(a,"defaultCompare",{enumerable:!0,get:function(){return M}}),Object.defineProperty(a,"now",{enumerable:!0,get:function(){return L}}),Object.defineProperty(a,"nextFrame",{enumerable:!0,get:function(){return re}}),Object.defineProperty(a,"cancelFrame",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(a,"frameBatched",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(a,"settleDebounce",{enumerable:!0,get:function(){return de}}),Object.defineProperty(a,"whenIdle",{enumerable:!0,get:function(){return V}}),Object.defineProperty(a,"uid",{enumerable:!0,get:function(){return se}});const Y="1.86.5";async function I(){return Y}const U="1.86.5",F=new Set,D=2e3;function W(i){if(F.add(i),F.size>D){const l=F.values().next().value;l!==void 0&&F.delete(l)}}const N=[],g=500;function E(i,l,c){N.push({key:i,level:l,message:c.map(S=>typeof S=="string"?S:n(S)).join(" "),at:Date.now()}),N.length>g&&N.shift()}function n(i){if(i instanceof Error)return i.message;try{return JSON.stringify(i)}catch{return String(i)}}function z(){return N.map(i=>({...i}))}function j(i){if(i.length===0||typeof i[0]!="string")return i;const l=i[0].replace(/^\[lattice\]\s*/,"");return l===i[0]?i:[l,...i.slice(1)]}function k(i,...l){if(F.has(i))return;W(i);const c=j(l);E(i,"warn",c),console.warn("[lattice]",...c)}function h(i,...l){if(F.has(i))return;W(i);const c=j(l);E(i,"info",c),console.info("[lattice]",...c)}function v(){F.clear(),N.length=0}function P(i,l){const c=new Error(`[lattice] ${i}`);throw l!==void 0&&(c.cause=l),c}function $(i,l){i||P(l)}const _=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})();function C(i){return i!==null&&typeof i=="object"&&!Array.isArray(i)}function w(i){return typeof i=="function"}function O(i){return i==null}function X(i){return i==null||i===""}function A(i){return typeof i!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(i))?!0:!!(i.prototype&&Object.getOwnPropertyNames(i.prototype).length>1)}const T=new Map;function q(i){let l=T.get(i);if(l)return l;if(!i.includes("."))l=c=>c?.[i];else{const c=i.split("."),S=c.length;l=K=>{let Q=K;for(let J=0;J<S;J++){if(Q==null)return;Q=Q[c[J]]}return Q}}return T.set(i,l),l}const Z=new Map;function ie(i){let l=Z.get(i);if(l)return l;if(!i.includes("."))l=(c,S)=>{c!=null&&(c[i]=S)};else{const c=i.split("."),S=c.length-1;l=(K,Q)=>{let J=K;for(let ee=0;ee<S;ee++){if(J==null)return;const ye=c[ee];J[ye]==null&&(J[ye]={}),J=J[ye]}J!=null&&(J[c[S]]=Q)}}return Z.set(i,l),l}function ue(i,l){return q(l)(i)}function ne(i,l,c){ie(l)(i,c)}function we(i){return i?(i.includes(".")?i.slice(i.lastIndexOf(".")+1):i).replace(/[_-]+/g," ").replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2").replace(/\s+/g," ").trim().replace(/^./,c=>c.toUpperCase()):""}const fe={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function ve(i){const l=i==null?"":String(i);return/[&<>"']/.test(l)?l.replace(/[&<>"']/g,c=>fe[c]):l}function xe(i){return String(i).replace(/\w\S*/g,l=>l[0].toUpperCase()+l.slice(1).toLowerCase())}function he(i,l,c){if(i!==void 0)return i===!0?{enabled:!0,...c}:i===!1?{enabled:!1}:C(i)?i:{[l]:i,enabled:!0}}function ae(i){return i==null?[]:Array.isArray(i)?i:[i]}const be=Object.freeze(new Set(["__proto__","constructor","prototype"]));function u(i,l){if(!C(i))return C(l)?{...l}:l;if(!C(l))return l===void 0?i:l;const c={...i};for(const S of Object.keys(l)){if(be.has(S))continue;const K=l[S];K!==void 0&&(c[S]=C(K)&&C(c[S])?u(c[S],K):K)}return c}function r(i,l){if(!C(i)||!C(l)||i===l)return l;const c=Object.create(Object.getPrototypeOf(i));return Object.assign(c,i,l),c}class f{#t;#e=new Map;#n;constructor(l=256,c=null){this.#t=l,this.#n=c}get size(){return this.#e.size}get max(){return this.#t}set max(l){this.#t=l,this.#i()}has(l){return this.#e.has(l)}get(l){const c=this.#e;if(!c.has(l))return;const S=c.get(l);return c.delete(l),c.set(l,S),S}peek(l){return this.#e.get(l)}set(l,c){const S=this.#e;return S.has(l)&&S.delete(l),S.set(l,c),this.#i(),c}delete(l){const c=this.#e.get(l);return this.#e.delete(l)&&this.#n&&this.#n(c,l),c}clear(){if(this.#n)for(const[l,c]of this.#e)this.#n(c,l);this.#e.clear()}keys(){return this.#e.keys()}values(){return this.#e.values()}#i(){const l=this.#e;for(;l.size>this.#t;){const c=l.keys().next().value,S=l.get(c);l.delete(c),this.#n&&this.#n(S,c)}}}const y=new Map;function p(i,l){const c=`${i||""}|${l?JSON.stringify(l):""}`;let S=y.get(c);return S||(S=new Intl.Collator(i||void 0,{numeric:!0,sensitivity:"variant",...l}),y.set(c,S)),S}function M(i,l){if(i===l)return 0;if(i==null)return 1;if(l==null)return-1;if(typeof i=="number"&&typeof l=="number")return Number.isNaN(i)?Number.isNaN(l)?0:1:Number.isNaN(l)||i<l?-1:i>l?1:0;const c=String(i),S=String(l);return c<S?-1:c>S?1:0}function L(){return typeof performance<"u"&&performance.now?performance.now():Date.now()}const H=typeof requestAnimationFrame=="function";function re(i){return H?requestAnimationFrame(i):setTimeout(()=>i(L()),16)}function oe(i){i!=null&&(H?cancelAnimationFrame(i):clearTimeout(i))}function ce(i){let l=null,c=null;const S=()=>{l=null;const Q=c;c=null,i(...Q||[])},K=(...Q)=>{c=Q,l===null&&(l=re(S))};return K.cancel=()=>{oe(l),l=null,c=null},K.flush=()=>{l!==null&&(oe(l),S())},K}function de(i,l){let c=null,S=null;const K=()=>{if(c=null,S===null)return;const ee=S;S=null,i(...ee),Q()},Q=()=>{c=setTimeout(K,l),typeof c?.unref=="function"&&c.unref()},J=(...ee)=>{c===null?(i(...ee),Q()):(S=ee,clearTimeout(c),Q())};return J.flush=()=>{if(c!==null&&clearTimeout(c),c=null,S===null)return;const ee=S;S=null,i(...ee)},J.cancel=()=>{c!==null&&clearTimeout(c),c=null,S=null},J.pending=()=>c!==null||S!==null,J}function V(i,l=50){return typeof requestIdleCallback=="function"?requestIdleCallback(i,{timeout:l}):setTimeout(()=>i({timeRemaining:()=>0,didTimeout:!0}),1)}let me=0;function se(i="l"){return`${i}${(++me).toString(36)}`}}),pe("packages/modules/shared/emitter.js",function(a,G){"use strict";Object.defineProperty(a,"WILDCARD",{enumerable:!0,get:function(){return F}}),Object.defineProperty(a,"Emitter",{enumerable:!0,get:function(){return N}}),Object.defineProperty(a,"gate",{enumerable:!0,get:function(){return g}});const Y=G("packages/core/src/internal/util.js"),I=Y.isFunction,U=Y.warnOnce,F="*",D=new Set(["api","user","init","ai"]);function W(E,n){return E&&E.name?E.name:`#${n}`}class N{#t=new Map;#e;constructor(n="module"){this.#e=String(n)}on(n,z){if(!I(z))return()=>{};let j=this.#t.get(n);return j||(j=new Set,this.#t.set(n,j)),j.add(z),()=>this.off(n,z)}off(n,z){const j=this.#t.get(n);j&&j.delete(z)}count(n){const z=this.#t.get(n);return z?z.size:0}emit(n,z){const j=this.#t.get(n),k=this.#t.get(F);if((!j||j.size===0)&&(!k||k.size===0))return;const h={...z||null,type:n};j&&j.size&&this.#n([...j],h,n),k&&k.size&&this.#n([...k],h,F)}#n(n,z,j){for(let k=0;k<n.length;k++)try{n[k](z)}catch(h){U(`${this.#e}.emit.throw:${j}:${W(n[k],k)}`,`${this.#e}: a '${j}' handler threw; other handlers were unaffected.`,h)}}emitBefore(n,z,j){const k=j??(z&&z.origin),h=D.has(k)?k:"user";let v=!1,P=null;const $=A=>{v=!0,A!=null&&P===null&&(P=String(A))},_={...z||null,type:n,origin:h,get defaultPrevented(){return v},get reason(){return P},preventDefault(A){$(A)}},C=this.#t.get(n);if(!C||C.size===0)return!0;const w=[...C],O=()=>(v&&P===null&&(P="prevented"),v&&z&&typeof z=="object"&&(z.reason=P),!v),X=[];for(let A=0;A<w.length;A++){const T=w[A];try{const q=T(_);q&&I(q.then)?X.push(q):q===!1&&$("prevented")}catch(q){$("error"),U(`${this.#e}.beforeThrow:${n}:${W(T,A)}`,`${this.#e}: a '${n}' before-handler threw; the action was cancelled.`,q)}}return X.length===0?O():Promise.allSettled(X).then(A=>{for(const T of A)T.status==="rejected"?($("error"),U(`${this.#e}.beforeReject:${n}`,`${this.#e}: a '${n}' before-handler rejected; the action was cancelled.`,T.reason)):T.value===!1&&$("prevented");return O()})}clear(){this.#t.clear()}}function g(E,n,z,j,k){const h=E.emitBefore(n,j,j.origin),v=()=>(E.emit(z,{...j,reason:j.reason||"prevented"}),!1);return h===!1?v():h&&I(h.then)?h.then(P=>P?k():v()):k()}}),pe("packages/modules/shared/autosize.js",function(a,G){"use strict";Object.defineProperty(a,"contentWidth",{enumerable:!0,get:function(){return U}}),Object.defineProperty(a,"contentHeight",{enumerable:!0,get:function(){return F}}),Object.defineProperty(a,"firstMeasured",{enumerable:!0,get:function(){return D}}),Object.defineProperty(a,"watchSize",{enumerable:!0,get:function(){return W}}),Object.defineProperty(a,"watchBox",{enumerable:!0,get:function(){return N}});const I=G("packages/core/src/internal/util.js").warnOnce;function U(g){if(!g||typeof g!="object")return null;const E=Number(g.clientWidth);if(Number.isFinite(E)&&E>0)return E;if(typeof g.getBoundingClientRect=="function"){const n=g.getBoundingClientRect(),z=n&&Number(n.width);if(Number.isFinite(z)&&z>0)return z}return null}function F(g){if(!g||typeof g!="object")return null;const E=Number(g.clientHeight);if(Number.isFinite(E)&&E>0)return E;if(typeof g.getBoundingClientRect=="function"){const n=g.getBoundingClientRect(),z=n&&Number(n.height);if(Number.isFinite(z)&&z>0)return z}return null}function D(g,E=U){for(const n of g||[]){const z=E(n);if(Number.isFinite(z)&&z>0)return z}return null}function W(g){const E=(g&&Array.isArray(g.targets)?g.targets:[]).filter(Boolean),n=g&&typeof g.read=="function"?g.read:()=>null,z=g&&typeof g.apply=="function"?g.apply:()=>{},j=Number.isFinite(g&&g.epsilon)?Number(g.epsilon):1;let k=null,h=!1;const v=()=>{if(h)return!1;const w=n();if(!Number.isFinite(w)||w<=0||k!=null&&Math.abs(w-k)<j)return!1;k=w,h=!0;try{z(w)}finally{h=!1}return!0};v();const P=E[0],$=g&&g.view||P&&P.ownerDocument&&P.ownerDocument.defaultView||globalThis,_=$&&$.ResizeObserver;let C=null;if(typeof _=="function"&&E.length){C=new _(()=>{v()});for(const w of E)w&&typeof C.observe=="function"&&C.observe(w)}else E.length&&I("shared.autosize.no-resize-observer","ResizeObserver is unavailable; this view was sized once at mount and will not follow its container.");return{refresh:v,get applied(){return k},release(){if(C&&typeof C.disconnect=="function")try{C.disconnect()}catch{}C=null}}}function N(g){const E=(g&&Array.isArray(g.targets)?g.targets:[]).filter(Boolean),n=g&&typeof g.read=="function"?g.read:()=>({}),z=g&&typeof g.apply=="function"?g.apply:()=>{},j=Number.isFinite(g&&g.epsilon)?Number(g.epsilon):1;let k=null,h=!1;const v=O=>{if(k==null)return!0;for(const[X,A]of Object.entries(O)){if(!Number.isFinite(A)||A<=0)continue;const T=k[X];if(!Number.isFinite(T)||Math.abs(A-T)>=j)return!0}return!1},P=()=>{if(h)return!1;const O=n();if(!O||typeof O!="object"||!Object.values(O).some(A=>Number.isFinite(A)&&A>0)||!v(O))return!1;k={...k,...O},h=!0;try{z(O)}finally{h=!1}return!0};P();const $=E[0],_=g&&g.view||$&&$.ownerDocument&&$.ownerDocument.defaultView||globalThis,C=_&&_.ResizeObserver;let w=null;if(typeof C=="function"&&E.length){w=new C(()=>{P()});for(const O of E)O&&typeof w.observe=="function"&&w.observe(O)}else E.length&&I("shared.autosize.no-resize-observer","ResizeObserver is unavailable; this view was sized once at mount and will not follow its container.");return{refresh:P,get applied(){return k},release(){if(w&&typeof w.disconnect=="function")try{w.disconnect()}catch{}w=null}}}}),pe("packages/modules/layout/length.js",function(a,G){"use strict";Object.defineProperty(a,"cssLength",{enumerable:!0,get:function(){return F}}),Object.defineProperty(a,"tracks",{enumerable:!0,get:function(){return W}});const I=G("packages/core/src/internal/util.js").warnOnce,U=/^(?:\d+\.?\d*|\.\d+)(?:px|%|fr|em|rem|ch|vh|vw|vmin|vmax|pt|cm|mm|in)$/i;function F(N,g,E){if(N==null)return g;if(typeof N=="number")return Number.isFinite(N)&&N>=0?`${N}px`:D(N,g,E);if(typeof N!="string")return D(N,g,E);const n=N.trim();if(n==="")return g;if(U.test(n))return n;const z=Number(n);return Number.isFinite(z)&&z>=0?`${z}px`:D(N,g,E)}function D(N,g,E){return I(`layout.length:${E}`,`layout: ${E} was set to ${JSON.stringify(N)}, which is not a length this module understands (a number of pixels, or a string like '200px', '25%', '1fr', '2rem'). Using ${g}.`),g}function W(N,g,E){return N==="scroll"?`repeat(${g}, ${E})`:`repeat(${g}, minmax(0, 1fr))`}}),pe("packages/modules/layout/model.js",function(a,G){"use strict";Object.defineProperty(a,"positiveInt",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(a,"overlaps",{enumerable:!0,get:function(){return I}}),Object.defineProperty(a,"clampToColumns",{enumerable:!0,get:function(){return U}}),Object.defineProperty(a,"readingOrder",{enumerable:!0,get:function(){return F}}),Object.defineProperty(a,"columnOrder",{enumerable:!0,get:function(){return W}}),Object.defineProperty(a,"pushDown",{enumerable:!0,get:function(){return N}}),Object.defineProperty(a,"pullUp",{enumerable:!0,get:function(){return g}}),Object.defineProperty(a,"pushRight",{enumerable:!0,get:function(){return E}}),Object.defineProperty(a,"pullLeft",{enumerable:!0,get:function(){return n}}),Object.defineProperty(a,"compact",{enumerable:!0,get:function(){return z}}),Object.defineProperty(a,"firstFree",{enumerable:!0,get:function(){return j}}),Object.defineProperty(a,"occupiedRows",{enumerable:!0,get:function(){return k}});function Y(h,v){const P=Math.trunc(Number(h));return Number.isFinite(P)&&P>0?P:v}function I(h,v){return h.xPos<v.xPos+v.xSize&&v.xPos<h.xPos+h.xSize&&h.yPos<v.yPos+v.ySize&&v.yPos<h.yPos+h.ySize}function U(h,v){const P=Math.max(1,Math.min(h.xSize,v));return{xPos:Math.max(1,Math.min(h.xPos,v-P+1)),yPos:Math.max(1,h.yPos),xSize:P,ySize:Math.max(1,h.ySize)}}function F(h,v){return h.yPos-v.yPos||h.xPos-v.xPos||D(h,v)}function D(h,v){const P=String(h.id),$=String(v.id);return P<$?-1:P>$?1:0}function W(h,v){return h.xPos-v.xPos||h.yPos-v.yPos||D(h,v)}function N(h,v){const P=h.find(w=>w.id===v),$=P?[P]:[],_=h.filter(w=>w!==P).sort(F),C=h.length+2;for(const w of _){for(let O=0;O<C;O++){const X=$.filter(A=>I(w,A));if(X.length===0)break;w.yPos=X.reduce((A,T)=>Math.max(A,T.yPos+T.ySize),w.yPos)}$.push(w)}return h}function g(h){const v=[];for(const P of[...h].sort(F)){for(;P.yPos>1;){const $={...P,yPos:P.yPos-1};if(v.some(_=>I($,_)))break;P.yPos-=1}v.push(P)}return h}function E(h,v){const P=h.find(w=>w.id===v),$=P?[P]:[],_=h.filter(w=>w!==P).sort(W),C=h.length+2;for(const w of _){for(let O=0;O<C;O++){const X=$.filter(A=>I(w,A));if(X.length===0)break;w.xPos=X.reduce((A,T)=>Math.max(A,T.xPos+T.xSize),w.xPos)}$.push(w)}return h}function n(h){const v=[];for(const P of[...h].sort(W)){for(;P.xPos>1;){const $={...P,xPos:P.xPos-1};if(v.some(_=>I($,_)))break;P.xPos-=1}v.push(P)}return h}function z(h,v,P){return v==="horizontal"?(E(h,P),n(h)):v!=="vertical"?h:(N(h,P),g(h))}function j(h,v,P,$){const _=Math.max(1,Math.min(P,v)),C=h.reduce((w,O)=>Math.max(w,O.yPos+O.ySize),1);for(let w=1;w<=C+$;w++)for(let O=1;O<=v-_+1;O++){const X={xPos:O,yPos:w,xSize:_,ySize:Math.max(1,$)};if(!h.some(A=>I(X,A)))return{xPos:O,yPos:w}}return{xPos:1,yPos:C}}function k(h,v){return h.reduce((P,$)=>Math.max(P,$.yPos+$.ySize-1),v)}}),pe("packages/modules/layout/view.js",function(a,G){"use strict";Object.defineProperty(a,"NS",{enumerable:!0,get:function(){return n}}),Object.defineProperty(a,"injectStyles",{enumerable:!0,get:function(){return z}}),Object.defineProperty(a,"renderShell",{enumerable:!0,get:function(){return j}}),Object.defineProperty(a,"applyGeometry",{enumerable:!0,get:function(){return k}}),Object.defineProperty(a,"setModeState",{enumerable:!0,get:function(){return C}}),Object.defineProperty(a,"renderWindow",{enumerable:!0,get:function(){return X}}),Object.defineProperty(a,"syncAffordances",{enumerable:!0,get:function(){return T}}),Object.defineProperty(a,"effective",{enumerable:!0,get:function(){return q}}),Object.defineProperty(a,"project",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(a,"placeWindow",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(a,"announce",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(a,"cellPitch",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(a,"showGhost",{enumerable:!0,get:function(){return we}}),Object.defineProperty(a,"hideGhost",{enumerable:!0,get:function(){return fe}}),Object.defineProperty(a,"listen",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(a,"placementFromDelta",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(a,"boundPlacement",{enumerable:!0,get:function(){return he}}),Object.defineProperty(a,"commitPlacement",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(a,"focusHandle",{enumerable:!0,get:function(){return be}});const I=G("packages/core/src/internal/util.js").isFunction,U=G("packages/modules/layout/length.js"),F=U.cssLength,D=U.tracks,W=G("packages/modules/layout/model.js"),N=W.clampToColumns,g=W.compact,E=W.occupiedRows,n="lat-layout";function z(u){if(!u||u.getElementById&&u.getElementById(`${n}-styles`))return;const r=u.createElement("style");r.id=`${n}-styles`,r.setAttribute("id",`${n}-styles`),r.textContent=`
7
7
  .${n}{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;box-sizing:border-box;
8
8
  font-family:var(--${n}-font-family,var(--lattice-font-family,var(--lat-chrome-font-family,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif)));
9
9
  font-size:var(--${n}-font-size,var(--lattice-font-size,var(--lat-chrome-font-size,13px)));
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Lattice Grid 1.86.4, layout module
2
+ * Lattice Grid 1.86.5, layout module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
6
- (function(_e){"use strict";var Me=Object.create(null),Ne=Object.create(null);function fe(a,B){Me[a]=B}function Fe(a){var B=Ne[a];if(B)return B;var Y=Object.create(null);Ne[a]=Y;var I=Me[a];if(!I)throw new Error("[lattice] missing module: "+a);return I(Y,Fe),Y}fe("packages/core/src/internal/util.js",function(a,B){"use strict";Object.defineProperty(a,"VERSION",{enumerable:!0,get:function(){return U}}),Object.defineProperty(a,"reportedWarnings",{enumerable:!0,get:function(){return z}}),Object.defineProperty(a,"warnOnce",{enumerable:!0,get:function(){return k}}),Object.defineProperty(a,"infoOnce",{enumerable:!0,get:function(){return h}}),Object.defineProperty(a,"resetWarnings",{enumerable:!0,get:function(){return v}}),Object.defineProperty(a,"fail",{enumerable:!0,get:function(){return P}}),Object.defineProperty(a,"invariant",{enumerable:!0,get:function(){return $}}),Object.defineProperty(a,"DEV",{enumerable:!0,get:function(){return _}}),Object.defineProperty(a,"isObject",{enumerable:!0,get:function(){return C}}),Object.defineProperty(a,"isFunction",{enumerable:!0,get:function(){return w}}),Object.defineProperty(a,"isNil",{enumerable:!0,get:function(){return O}}),Object.defineProperty(a,"isBlank",{enumerable:!0,get:function(){return X}}),Object.defineProperty(a,"isCtor",{enumerable:!0,get:function(){return A}}),Object.defineProperty(a,"pathGetter",{enumerable:!0,get:function(){return q}}),Object.defineProperty(a,"pathSetter",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(a,"getPath",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(a,"setPath",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(a,"humanise",{enumerable:!0,get:function(){return we}}),Object.defineProperty(a,"escapeHtml",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(a,"titleCase",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(a,"expand",{enumerable:!0,get:function(){return he}}),Object.defineProperty(a,"toArray",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(a,"merge",{enumerable:!0,get:function(){return u}}),Object.defineProperty(a,"mergeRow",{enumerable:!0,get:function(){return r}}),Object.defineProperty(a,"Lru",{enumerable:!0,get:function(){return f}}),Object.defineProperty(a,"collator",{enumerable:!0,get:function(){return p}}),Object.defineProperty(a,"defaultCompare",{enumerable:!0,get:function(){return M}}),Object.defineProperty(a,"now",{enumerable:!0,get:function(){return L}}),Object.defineProperty(a,"nextFrame",{enumerable:!0,get:function(){return re}}),Object.defineProperty(a,"cancelFrame",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(a,"frameBatched",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(a,"settleDebounce",{enumerable:!0,get:function(){return me}}),Object.defineProperty(a,"whenIdle",{enumerable:!0,get:function(){return V}}),Object.defineProperty(a,"uid",{enumerable:!0,get:function(){return se}});const Y="1.86.4";async function I(){return Y}const U="1.86.4",F=new Set,D=2e3;function W(i){if(F.add(i),F.size>D){const l=F.values().next().value;l!==void 0&&F.delete(l)}}const N=[],g=500;function E(i,l,c){N.push({key:i,level:l,message:c.map(S=>typeof S=="string"?S:n(S)).join(" "),at:Date.now()}),N.length>g&&N.shift()}function n(i){if(i instanceof Error)return i.message;try{return JSON.stringify(i)}catch{return String(i)}}function z(){return N.map(i=>({...i}))}function j(i){if(i.length===0||typeof i[0]!="string")return i;const l=i[0].replace(/^\[lattice\]\s*/,"");return l===i[0]?i:[l,...i.slice(1)]}function k(i,...l){if(F.has(i))return;W(i);const c=j(l);E(i,"warn",c),console.warn("[lattice]",...c)}function h(i,...l){if(F.has(i))return;W(i);const c=j(l);E(i,"info",c),console.info("[lattice]",...c)}function v(){F.clear(),N.length=0}function P(i,l){const c=new Error(`[lattice] ${i}`);throw l!==void 0&&(c.cause=l),c}function $(i,l){i||P(l)}const _=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})();function C(i){return i!==null&&typeof i=="object"&&!Array.isArray(i)}function w(i){return typeof i=="function"}function O(i){return i==null}function X(i){return i==null||i===""}function A(i){return typeof i!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(i))?!0:!!(i.prototype&&Object.getOwnPropertyNames(i.prototype).length>1)}const T=new Map;function q(i){let l=T.get(i);if(l)return l;if(!i.includes("."))l=c=>c?.[i];else{const c=i.split("."),S=c.length;l=K=>{let Q=K;for(let J=0;J<S;J++){if(Q==null)return;Q=Q[c[J]]}return Q}}return T.set(i,l),l}const Z=new Map;function ie(i){let l=Z.get(i);if(l)return l;if(!i.includes("."))l=(c,S)=>{c!=null&&(c[i]=S)};else{const c=i.split("."),S=c.length-1;l=(K,Q)=>{let J=K;for(let ee=0;ee<S;ee++){if(J==null)return;const pe=c[ee];J[pe]==null&&(J[pe]={}),J=J[pe]}J!=null&&(J[c[S]]=Q)}}return Z.set(i,l),l}function ue(i,l){return q(l)(i)}function ne(i,l,c){ie(l)(i,c)}function we(i){return i?(i.includes(".")?i.slice(i.lastIndexOf(".")+1):i).replace(/[_-]+/g," ").replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2").replace(/\s+/g," ").trim().replace(/^./,c=>c.toUpperCase()):""}const de={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function ve(i){const l=i==null?"":String(i);return/[&<>"']/.test(l)?l.replace(/[&<>"']/g,c=>de[c]):l}function xe(i){return String(i).replace(/\w\S*/g,l=>l[0].toUpperCase()+l.slice(1).toLowerCase())}function he(i,l,c){if(i!==void 0)return i===!0?{enabled:!0,...c}:i===!1?{enabled:!1}:C(i)?i:{[l]:i,enabled:!0}}function ae(i){return i==null?[]:Array.isArray(i)?i:[i]}const be=Object.freeze(new Set(["__proto__","constructor","prototype"]));function u(i,l){if(!C(i))return C(l)?{...l}:l;if(!C(l))return l===void 0?i:l;const c={...i};for(const S of Object.keys(l)){if(be.has(S))continue;const K=l[S];K!==void 0&&(c[S]=C(K)&&C(c[S])?u(c[S],K):K)}return c}function r(i,l){if(!C(i)||!C(l)||i===l)return l;const c=Object.create(Object.getPrototypeOf(i));return Object.assign(c,i,l),c}class f{#t;#e=new Map;#n;constructor(l=256,c=null){this.#t=l,this.#n=c}get size(){return this.#e.size}get max(){return this.#t}set max(l){this.#t=l,this.#i()}has(l){return this.#e.has(l)}get(l){const c=this.#e;if(!c.has(l))return;const S=c.get(l);return c.delete(l),c.set(l,S),S}peek(l){return this.#e.get(l)}set(l,c){const S=this.#e;return S.has(l)&&S.delete(l),S.set(l,c),this.#i(),c}delete(l){const c=this.#e.get(l);return this.#e.delete(l)&&this.#n&&this.#n(c,l),c}clear(){if(this.#n)for(const[l,c]of this.#e)this.#n(c,l);this.#e.clear()}keys(){return this.#e.keys()}values(){return this.#e.values()}#i(){const l=this.#e;for(;l.size>this.#t;){const c=l.keys().next().value,S=l.get(c);l.delete(c),this.#n&&this.#n(S,c)}}}const y=new Map;function p(i,l){const c=`${i||""}|${l?JSON.stringify(l):""}`;let S=y.get(c);return S||(S=new Intl.Collator(i||void 0,{numeric:!0,sensitivity:"variant",...l}),y.set(c,S)),S}function M(i,l){if(i===l)return 0;if(i==null)return 1;if(l==null)return-1;if(typeof i=="number"&&typeof l=="number")return Number.isNaN(i)?Number.isNaN(l)?0:1:Number.isNaN(l)||i<l?-1:i>l?1:0;const c=String(i),S=String(l);return c<S?-1:c>S?1:0}function L(){return typeof performance<"u"&&performance.now?performance.now():Date.now()}const H=typeof requestAnimationFrame=="function";function re(i){return H?requestAnimationFrame(i):setTimeout(()=>i(L()),16)}function oe(i){i!=null&&(H?cancelAnimationFrame(i):clearTimeout(i))}function ce(i){let l=null,c=null;const S=()=>{l=null;const Q=c;c=null,i(...Q||[])},K=(...Q)=>{c=Q,l===null&&(l=re(S))};return K.cancel=()=>{oe(l),l=null,c=null},K.flush=()=>{l!==null&&(oe(l),S())},K}function me(i,l){let c=null,S=null;const K=()=>{if(c=null,S===null)return;const ee=S;S=null,i(...ee),Q()},Q=()=>{c=setTimeout(K,l),typeof c?.unref=="function"&&c.unref()},J=(...ee)=>{c===null?(i(...ee),Q()):(S=ee,clearTimeout(c),Q())};return J.flush=()=>{if(c!==null&&clearTimeout(c),c=null,S===null)return;const ee=S;S=null,i(...ee)},J.cancel=()=>{c!==null&&clearTimeout(c),c=null,S=null},J.pending=()=>c!==null||S!==null,J}function V(i,l=50){return typeof requestIdleCallback=="function"?requestIdleCallback(i,{timeout:l}):setTimeout(()=>i({timeRemaining:()=>0,didTimeout:!0}),1)}let ye=0;function se(i="l"){return`${i}${(++ye).toString(36)}`}}),fe("packages/modules/shared/emitter.js",function(a,B){"use strict";Object.defineProperty(a,"WILDCARD",{enumerable:!0,get:function(){return F}}),Object.defineProperty(a,"Emitter",{enumerable:!0,get:function(){return N}}),Object.defineProperty(a,"gate",{enumerable:!0,get:function(){return g}});const Y=B("packages/core/src/internal/util.js"),I=Y.isFunction,U=Y.warnOnce,F="*",D=new Set(["api","user","init","ai"]);function W(E,n){return E&&E.name?E.name:`#${n}`}class N{#t=new Map;#e;constructor(n="module"){this.#e=String(n)}on(n,z){if(!I(z))return()=>{};let j=this.#t.get(n);return j||(j=new Set,this.#t.set(n,j)),j.add(z),()=>this.off(n,z)}off(n,z){const j=this.#t.get(n);j&&j.delete(z)}count(n){const z=this.#t.get(n);return z?z.size:0}emit(n,z){const j=this.#t.get(n),k=this.#t.get(F);if((!j||j.size===0)&&(!k||k.size===0))return;const h={...z||null,type:n};j&&j.size&&this.#n([...j],h,n),k&&k.size&&this.#n([...k],h,F)}#n(n,z,j){for(let k=0;k<n.length;k++)try{n[k](z)}catch(h){U(`${this.#e}.emit.throw:${j}:${W(n[k],k)}`,`${this.#e}: a '${j}' handler threw; other handlers were unaffected.`,h)}}emitBefore(n,z,j){const k=j??(z&&z.origin),h=D.has(k)?k:"user";let v=!1,P=null;const $=A=>{v=!0,A!=null&&P===null&&(P=String(A))},_={...z||null,type:n,origin:h,get defaultPrevented(){return v},get reason(){return P},preventDefault(A){$(A)}},C=this.#t.get(n);if(!C||C.size===0)return!0;const w=[...C],O=()=>(v&&P===null&&(P="prevented"),v&&z&&typeof z=="object"&&(z.reason=P),!v),X=[];for(let A=0;A<w.length;A++){const T=w[A];try{const q=T(_);q&&I(q.then)?X.push(q):q===!1&&$("prevented")}catch(q){$("error"),U(`${this.#e}.beforeThrow:${n}:${W(T,A)}`,`${this.#e}: a '${n}' before-handler threw; the action was cancelled.`,q)}}return X.length===0?O():Promise.allSettled(X).then(A=>{for(const T of A)T.status==="rejected"?($("error"),U(`${this.#e}.beforeReject:${n}`,`${this.#e}: a '${n}' before-handler rejected; the action was cancelled.`,T.reason)):T.value===!1&&$("prevented");return O()})}clear(){this.#t.clear()}}function g(E,n,z,j,k){const h=E.emitBefore(n,j,j.origin),v=()=>(E.emit(z,{...j,reason:j.reason||"prevented"}),!1);return h===!1?v():h&&I(h.then)?h.then(P=>P?k():v()):k()}}),fe("packages/modules/shared/autosize.js",function(a,B){"use strict";Object.defineProperty(a,"contentWidth",{enumerable:!0,get:function(){return U}}),Object.defineProperty(a,"contentHeight",{enumerable:!0,get:function(){return F}}),Object.defineProperty(a,"firstMeasured",{enumerable:!0,get:function(){return D}}),Object.defineProperty(a,"watchSize",{enumerable:!0,get:function(){return W}}),Object.defineProperty(a,"watchBox",{enumerable:!0,get:function(){return N}});const I=B("packages/core/src/internal/util.js").warnOnce;function U(g){if(!g||typeof g!="object")return null;const E=Number(g.clientWidth);if(Number.isFinite(E)&&E>0)return E;if(typeof g.getBoundingClientRect=="function"){const n=g.getBoundingClientRect(),z=n&&Number(n.width);if(Number.isFinite(z)&&z>0)return z}return null}function F(g){if(!g||typeof g!="object")return null;const E=Number(g.clientHeight);if(Number.isFinite(E)&&E>0)return E;if(typeof g.getBoundingClientRect=="function"){const n=g.getBoundingClientRect(),z=n&&Number(n.height);if(Number.isFinite(z)&&z>0)return z}return null}function D(g,E=U){for(const n of g||[]){const z=E(n);if(Number.isFinite(z)&&z>0)return z}return null}function W(g){const E=(g&&Array.isArray(g.targets)?g.targets:[]).filter(Boolean),n=g&&typeof g.read=="function"?g.read:()=>null,z=g&&typeof g.apply=="function"?g.apply:()=>{},j=Number.isFinite(g&&g.epsilon)?Number(g.epsilon):1;let k=null,h=!1;const v=()=>{if(h)return!1;const w=n();if(!Number.isFinite(w)||w<=0||k!=null&&Math.abs(w-k)<j)return!1;k=w,h=!0;try{z(w)}finally{h=!1}return!0};v();const P=E[0],$=g&&g.view||P&&P.ownerDocument&&P.ownerDocument.defaultView||globalThis,_=$&&$.ResizeObserver;let C=null;if(typeof _=="function"&&E.length){C=new _(()=>{v()});for(const w of E)w&&typeof C.observe=="function"&&C.observe(w)}else E.length&&I("shared.autosize.no-resize-observer","ResizeObserver is unavailable; this view was sized once at mount and will not follow its container.");return{refresh:v,get applied(){return k},release(){if(C&&typeof C.disconnect=="function")try{C.disconnect()}catch{}C=null}}}function N(g){const E=(g&&Array.isArray(g.targets)?g.targets:[]).filter(Boolean),n=g&&typeof g.read=="function"?g.read:()=>({}),z=g&&typeof g.apply=="function"?g.apply:()=>{},j=Number.isFinite(g&&g.epsilon)?Number(g.epsilon):1;let k=null,h=!1;const v=O=>{if(k==null)return!0;for(const[X,A]of Object.entries(O)){if(!Number.isFinite(A)||A<=0)continue;const T=k[X];if(!Number.isFinite(T)||Math.abs(A-T)>=j)return!0}return!1},P=()=>{if(h)return!1;const O=n();if(!O||typeof O!="object"||!Object.values(O).some(A=>Number.isFinite(A)&&A>0)||!v(O))return!1;k={...k,...O},h=!0;try{z(O)}finally{h=!1}return!0};P();const $=E[0],_=g&&g.view||$&&$.ownerDocument&&$.ownerDocument.defaultView||globalThis,C=_&&_.ResizeObserver;let w=null;if(typeof C=="function"&&E.length){w=new C(()=>{P()});for(const O of E)O&&typeof w.observe=="function"&&w.observe(O)}else E.length&&I("shared.autosize.no-resize-observer","ResizeObserver is unavailable; this view was sized once at mount and will not follow its container.");return{refresh:P,get applied(){return k},release(){if(w&&typeof w.disconnect=="function")try{w.disconnect()}catch{}w=null}}}}),fe("packages/modules/layout/length.js",function(a,B){"use strict";Object.defineProperty(a,"cssLength",{enumerable:!0,get:function(){return F}}),Object.defineProperty(a,"tracks",{enumerable:!0,get:function(){return W}});const I=B("packages/core/src/internal/util.js").warnOnce,U=/^(?:\d+\.?\d*|\.\d+)(?:px|%|fr|em|rem|ch|vh|vw|vmin|vmax|pt|cm|mm|in)$/i;function F(N,g,E){if(N==null)return g;if(typeof N=="number")return Number.isFinite(N)&&N>=0?`${N}px`:D(N,g,E);if(typeof N!="string")return D(N,g,E);const n=N.trim();if(n==="")return g;if(U.test(n))return n;const z=Number(n);return Number.isFinite(z)&&z>=0?`${z}px`:D(N,g,E)}function D(N,g,E){return I(`layout.length:${E}`,`layout: ${E} was set to ${JSON.stringify(N)}, which is not a length this module understands (a number of pixels, or a string like '200px', '25%', '1fr', '2rem'). Using ${g}.`),g}function W(N,g,E){return N==="scroll"?`repeat(${g}, ${E})`:`repeat(${g}, minmax(0, 1fr))`}}),fe("packages/modules/layout/model.js",function(a,B){"use strict";Object.defineProperty(a,"positiveInt",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(a,"overlaps",{enumerable:!0,get:function(){return I}}),Object.defineProperty(a,"clampToColumns",{enumerable:!0,get:function(){return U}}),Object.defineProperty(a,"readingOrder",{enumerable:!0,get:function(){return F}}),Object.defineProperty(a,"columnOrder",{enumerable:!0,get:function(){return W}}),Object.defineProperty(a,"pushDown",{enumerable:!0,get:function(){return N}}),Object.defineProperty(a,"pullUp",{enumerable:!0,get:function(){return g}}),Object.defineProperty(a,"pushRight",{enumerable:!0,get:function(){return E}}),Object.defineProperty(a,"pullLeft",{enumerable:!0,get:function(){return n}}),Object.defineProperty(a,"compact",{enumerable:!0,get:function(){return z}}),Object.defineProperty(a,"firstFree",{enumerable:!0,get:function(){return j}}),Object.defineProperty(a,"occupiedRows",{enumerable:!0,get:function(){return k}});function Y(h,v){const P=Math.trunc(Number(h));return Number.isFinite(P)&&P>0?P:v}function I(h,v){return h.xPos<v.xPos+v.xSize&&v.xPos<h.xPos+h.xSize&&h.yPos<v.yPos+v.ySize&&v.yPos<h.yPos+h.ySize}function U(h,v){const P=Math.max(1,Math.min(h.xSize,v));return{xPos:Math.max(1,Math.min(h.xPos,v-P+1)),yPos:Math.max(1,h.yPos),xSize:P,ySize:Math.max(1,h.ySize)}}function F(h,v){return h.yPos-v.yPos||h.xPos-v.xPos||D(h,v)}function D(h,v){const P=String(h.id),$=String(v.id);return P<$?-1:P>$?1:0}function W(h,v){return h.xPos-v.xPos||h.yPos-v.yPos||D(h,v)}function N(h,v){const P=h.find(w=>w.id===v),$=P?[P]:[],_=h.filter(w=>w!==P).sort(F),C=h.length+2;for(const w of _){for(let O=0;O<C;O++){const X=$.filter(A=>I(w,A));if(X.length===0)break;w.yPos=X.reduce((A,T)=>Math.max(A,T.yPos+T.ySize),w.yPos)}$.push(w)}return h}function g(h){const v=[];for(const P of[...h].sort(F)){for(;P.yPos>1;){const $={...P,yPos:P.yPos-1};if(v.some(_=>I($,_)))break;P.yPos-=1}v.push(P)}return h}function E(h,v){const P=h.find(w=>w.id===v),$=P?[P]:[],_=h.filter(w=>w!==P).sort(W),C=h.length+2;for(const w of _){for(let O=0;O<C;O++){const X=$.filter(A=>I(w,A));if(X.length===0)break;w.xPos=X.reduce((A,T)=>Math.max(A,T.xPos+T.xSize),w.xPos)}$.push(w)}return h}function n(h){const v=[];for(const P of[...h].sort(W)){for(;P.xPos>1;){const $={...P,xPos:P.xPos-1};if(v.some(_=>I($,_)))break;P.xPos-=1}v.push(P)}return h}function z(h,v,P){return v==="horizontal"?(E(h,P),n(h)):v!=="vertical"?h:(N(h,P),g(h))}function j(h,v,P,$){const _=Math.max(1,Math.min(P,v)),C=h.reduce((w,O)=>Math.max(w,O.yPos+O.ySize),1);for(let w=1;w<=C+$;w++)for(let O=1;O<=v-_+1;O++){const X={xPos:O,yPos:w,xSize:_,ySize:Math.max(1,$)};if(!h.some(A=>I(X,A)))return{xPos:O,yPos:w}}return{xPos:1,yPos:C}}function k(h,v){return h.reduce((P,$)=>Math.max(P,$.yPos+$.ySize-1),v)}}),fe("packages/modules/layout/view.js",function(a,B){"use strict";Object.defineProperty(a,"NS",{enumerable:!0,get:function(){return n}}),Object.defineProperty(a,"injectStyles",{enumerable:!0,get:function(){return z}}),Object.defineProperty(a,"renderShell",{enumerable:!0,get:function(){return j}}),Object.defineProperty(a,"applyGeometry",{enumerable:!0,get:function(){return k}}),Object.defineProperty(a,"setModeState",{enumerable:!0,get:function(){return C}}),Object.defineProperty(a,"renderWindow",{enumerable:!0,get:function(){return X}}),Object.defineProperty(a,"syncAffordances",{enumerable:!0,get:function(){return T}}),Object.defineProperty(a,"effective",{enumerable:!0,get:function(){return q}}),Object.defineProperty(a,"project",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(a,"placeWindow",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(a,"announce",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(a,"cellPitch",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(a,"showGhost",{enumerable:!0,get:function(){return we}}),Object.defineProperty(a,"hideGhost",{enumerable:!0,get:function(){return de}}),Object.defineProperty(a,"listen",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(a,"placementFromDelta",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(a,"boundPlacement",{enumerable:!0,get:function(){return he}}),Object.defineProperty(a,"commitPlacement",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(a,"focusHandle",{enumerable:!0,get:function(){return be}});const I=B("packages/core/src/internal/util.js").isFunction,U=B("packages/modules/layout/length.js"),F=U.cssLength,D=U.tracks,W=B("packages/modules/layout/model.js"),N=W.clampToColumns,g=W.compact,E=W.occupiedRows,n="lat-layout";function z(u){if(!u||u.getElementById&&u.getElementById(`${n}-styles`))return;const r=u.createElement("style");r.id=`${n}-styles`,r.setAttribute("id",`${n}-styles`),r.textContent=`
6
+ (function(_e){"use strict";var Me=Object.create(null),Ne=Object.create(null);function fe(a,B){Me[a]=B}function Fe(a){var B=Ne[a];if(B)return B;var Y=Object.create(null);Ne[a]=Y;var I=Me[a];if(!I)throw new Error("[lattice] missing module: "+a);return I(Y,Fe),Y}fe("packages/core/src/internal/util.js",function(a,B){"use strict";Object.defineProperty(a,"VERSION",{enumerable:!0,get:function(){return U}}),Object.defineProperty(a,"reportedWarnings",{enumerable:!0,get:function(){return z}}),Object.defineProperty(a,"warnOnce",{enumerable:!0,get:function(){return k}}),Object.defineProperty(a,"infoOnce",{enumerable:!0,get:function(){return h}}),Object.defineProperty(a,"resetWarnings",{enumerable:!0,get:function(){return v}}),Object.defineProperty(a,"fail",{enumerable:!0,get:function(){return P}}),Object.defineProperty(a,"invariant",{enumerable:!0,get:function(){return $}}),Object.defineProperty(a,"DEV",{enumerable:!0,get:function(){return _}}),Object.defineProperty(a,"isObject",{enumerable:!0,get:function(){return C}}),Object.defineProperty(a,"isFunction",{enumerable:!0,get:function(){return w}}),Object.defineProperty(a,"isNil",{enumerable:!0,get:function(){return O}}),Object.defineProperty(a,"isBlank",{enumerable:!0,get:function(){return X}}),Object.defineProperty(a,"isCtor",{enumerable:!0,get:function(){return A}}),Object.defineProperty(a,"pathGetter",{enumerable:!0,get:function(){return q}}),Object.defineProperty(a,"pathSetter",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(a,"getPath",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(a,"setPath",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(a,"humanise",{enumerable:!0,get:function(){return we}}),Object.defineProperty(a,"escapeHtml",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(a,"titleCase",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(a,"expand",{enumerable:!0,get:function(){return he}}),Object.defineProperty(a,"toArray",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(a,"merge",{enumerable:!0,get:function(){return u}}),Object.defineProperty(a,"mergeRow",{enumerable:!0,get:function(){return r}}),Object.defineProperty(a,"Lru",{enumerable:!0,get:function(){return f}}),Object.defineProperty(a,"collator",{enumerable:!0,get:function(){return p}}),Object.defineProperty(a,"defaultCompare",{enumerable:!0,get:function(){return M}}),Object.defineProperty(a,"now",{enumerable:!0,get:function(){return L}}),Object.defineProperty(a,"nextFrame",{enumerable:!0,get:function(){return re}}),Object.defineProperty(a,"cancelFrame",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(a,"frameBatched",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(a,"settleDebounce",{enumerable:!0,get:function(){return me}}),Object.defineProperty(a,"whenIdle",{enumerable:!0,get:function(){return V}}),Object.defineProperty(a,"uid",{enumerable:!0,get:function(){return se}});const Y="1.86.5";async function I(){return Y}const U="1.86.5",F=new Set,D=2e3;function W(i){if(F.add(i),F.size>D){const l=F.values().next().value;l!==void 0&&F.delete(l)}}const N=[],g=500;function E(i,l,c){N.push({key:i,level:l,message:c.map(S=>typeof S=="string"?S:n(S)).join(" "),at:Date.now()}),N.length>g&&N.shift()}function n(i){if(i instanceof Error)return i.message;try{return JSON.stringify(i)}catch{return String(i)}}function z(){return N.map(i=>({...i}))}function j(i){if(i.length===0||typeof i[0]!="string")return i;const l=i[0].replace(/^\[lattice\]\s*/,"");return l===i[0]?i:[l,...i.slice(1)]}function k(i,...l){if(F.has(i))return;W(i);const c=j(l);E(i,"warn",c),console.warn("[lattice]",...c)}function h(i,...l){if(F.has(i))return;W(i);const c=j(l);E(i,"info",c),console.info("[lattice]",...c)}function v(){F.clear(),N.length=0}function P(i,l){const c=new Error(`[lattice] ${i}`);throw l!==void 0&&(c.cause=l),c}function $(i,l){i||P(l)}const _=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})();function C(i){return i!==null&&typeof i=="object"&&!Array.isArray(i)}function w(i){return typeof i=="function"}function O(i){return i==null}function X(i){return i==null||i===""}function A(i){return typeof i!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(i))?!0:!!(i.prototype&&Object.getOwnPropertyNames(i.prototype).length>1)}const T=new Map;function q(i){let l=T.get(i);if(l)return l;if(!i.includes("."))l=c=>c?.[i];else{const c=i.split("."),S=c.length;l=K=>{let Q=K;for(let J=0;J<S;J++){if(Q==null)return;Q=Q[c[J]]}return Q}}return T.set(i,l),l}const Z=new Map;function ie(i){let l=Z.get(i);if(l)return l;if(!i.includes("."))l=(c,S)=>{c!=null&&(c[i]=S)};else{const c=i.split("."),S=c.length-1;l=(K,Q)=>{let J=K;for(let ee=0;ee<S;ee++){if(J==null)return;const pe=c[ee];J[pe]==null&&(J[pe]={}),J=J[pe]}J!=null&&(J[c[S]]=Q)}}return Z.set(i,l),l}function ue(i,l){return q(l)(i)}function ne(i,l,c){ie(l)(i,c)}function we(i){return i?(i.includes(".")?i.slice(i.lastIndexOf(".")+1):i).replace(/[_-]+/g," ").replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2").replace(/\s+/g," ").trim().replace(/^./,c=>c.toUpperCase()):""}const de={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function ve(i){const l=i==null?"":String(i);return/[&<>"']/.test(l)?l.replace(/[&<>"']/g,c=>de[c]):l}function xe(i){return String(i).replace(/\w\S*/g,l=>l[0].toUpperCase()+l.slice(1).toLowerCase())}function he(i,l,c){if(i!==void 0)return i===!0?{enabled:!0,...c}:i===!1?{enabled:!1}:C(i)?i:{[l]:i,enabled:!0}}function ae(i){return i==null?[]:Array.isArray(i)?i:[i]}const be=Object.freeze(new Set(["__proto__","constructor","prototype"]));function u(i,l){if(!C(i))return C(l)?{...l}:l;if(!C(l))return l===void 0?i:l;const c={...i};for(const S of Object.keys(l)){if(be.has(S))continue;const K=l[S];K!==void 0&&(c[S]=C(K)&&C(c[S])?u(c[S],K):K)}return c}function r(i,l){if(!C(i)||!C(l)||i===l)return l;const c=Object.create(Object.getPrototypeOf(i));return Object.assign(c,i,l),c}class f{#t;#e=new Map;#n;constructor(l=256,c=null){this.#t=l,this.#n=c}get size(){return this.#e.size}get max(){return this.#t}set max(l){this.#t=l,this.#i()}has(l){return this.#e.has(l)}get(l){const c=this.#e;if(!c.has(l))return;const S=c.get(l);return c.delete(l),c.set(l,S),S}peek(l){return this.#e.get(l)}set(l,c){const S=this.#e;return S.has(l)&&S.delete(l),S.set(l,c),this.#i(),c}delete(l){const c=this.#e.get(l);return this.#e.delete(l)&&this.#n&&this.#n(c,l),c}clear(){if(this.#n)for(const[l,c]of this.#e)this.#n(c,l);this.#e.clear()}keys(){return this.#e.keys()}values(){return this.#e.values()}#i(){const l=this.#e;for(;l.size>this.#t;){const c=l.keys().next().value,S=l.get(c);l.delete(c),this.#n&&this.#n(S,c)}}}const y=new Map;function p(i,l){const c=`${i||""}|${l?JSON.stringify(l):""}`;let S=y.get(c);return S||(S=new Intl.Collator(i||void 0,{numeric:!0,sensitivity:"variant",...l}),y.set(c,S)),S}function M(i,l){if(i===l)return 0;if(i==null)return 1;if(l==null)return-1;if(typeof i=="number"&&typeof l=="number")return Number.isNaN(i)?Number.isNaN(l)?0:1:Number.isNaN(l)||i<l?-1:i>l?1:0;const c=String(i),S=String(l);return c<S?-1:c>S?1:0}function L(){return typeof performance<"u"&&performance.now?performance.now():Date.now()}const H=typeof requestAnimationFrame=="function";function re(i){return H?requestAnimationFrame(i):setTimeout(()=>i(L()),16)}function oe(i){i!=null&&(H?cancelAnimationFrame(i):clearTimeout(i))}function ce(i){let l=null,c=null;const S=()=>{l=null;const Q=c;c=null,i(...Q||[])},K=(...Q)=>{c=Q,l===null&&(l=re(S))};return K.cancel=()=>{oe(l),l=null,c=null},K.flush=()=>{l!==null&&(oe(l),S())},K}function me(i,l){let c=null,S=null;const K=()=>{if(c=null,S===null)return;const ee=S;S=null,i(...ee),Q()},Q=()=>{c=setTimeout(K,l),typeof c?.unref=="function"&&c.unref()},J=(...ee)=>{c===null?(i(...ee),Q()):(S=ee,clearTimeout(c),Q())};return J.flush=()=>{if(c!==null&&clearTimeout(c),c=null,S===null)return;const ee=S;S=null,i(...ee)},J.cancel=()=>{c!==null&&clearTimeout(c),c=null,S=null},J.pending=()=>c!==null||S!==null,J}function V(i,l=50){return typeof requestIdleCallback=="function"?requestIdleCallback(i,{timeout:l}):setTimeout(()=>i({timeRemaining:()=>0,didTimeout:!0}),1)}let ye=0;function se(i="l"){return`${i}${(++ye).toString(36)}`}}),fe("packages/modules/shared/emitter.js",function(a,B){"use strict";Object.defineProperty(a,"WILDCARD",{enumerable:!0,get:function(){return F}}),Object.defineProperty(a,"Emitter",{enumerable:!0,get:function(){return N}}),Object.defineProperty(a,"gate",{enumerable:!0,get:function(){return g}});const Y=B("packages/core/src/internal/util.js"),I=Y.isFunction,U=Y.warnOnce,F="*",D=new Set(["api","user","init","ai"]);function W(E,n){return E&&E.name?E.name:`#${n}`}class N{#t=new Map;#e;constructor(n="module"){this.#e=String(n)}on(n,z){if(!I(z))return()=>{};let j=this.#t.get(n);return j||(j=new Set,this.#t.set(n,j)),j.add(z),()=>this.off(n,z)}off(n,z){const j=this.#t.get(n);j&&j.delete(z)}count(n){const z=this.#t.get(n);return z?z.size:0}emit(n,z){const j=this.#t.get(n),k=this.#t.get(F);if((!j||j.size===0)&&(!k||k.size===0))return;const h={...z||null,type:n};j&&j.size&&this.#n([...j],h,n),k&&k.size&&this.#n([...k],h,F)}#n(n,z,j){for(let k=0;k<n.length;k++)try{n[k](z)}catch(h){U(`${this.#e}.emit.throw:${j}:${W(n[k],k)}`,`${this.#e}: a '${j}' handler threw; other handlers were unaffected.`,h)}}emitBefore(n,z,j){const k=j??(z&&z.origin),h=D.has(k)?k:"user";let v=!1,P=null;const $=A=>{v=!0,A!=null&&P===null&&(P=String(A))},_={...z||null,type:n,origin:h,get defaultPrevented(){return v},get reason(){return P},preventDefault(A){$(A)}},C=this.#t.get(n);if(!C||C.size===0)return!0;const w=[...C],O=()=>(v&&P===null&&(P="prevented"),v&&z&&typeof z=="object"&&(z.reason=P),!v),X=[];for(let A=0;A<w.length;A++){const T=w[A];try{const q=T(_);q&&I(q.then)?X.push(q):q===!1&&$("prevented")}catch(q){$("error"),U(`${this.#e}.beforeThrow:${n}:${W(T,A)}`,`${this.#e}: a '${n}' before-handler threw; the action was cancelled.`,q)}}return X.length===0?O():Promise.allSettled(X).then(A=>{for(const T of A)T.status==="rejected"?($("error"),U(`${this.#e}.beforeReject:${n}`,`${this.#e}: a '${n}' before-handler rejected; the action was cancelled.`,T.reason)):T.value===!1&&$("prevented");return O()})}clear(){this.#t.clear()}}function g(E,n,z,j,k){const h=E.emitBefore(n,j,j.origin),v=()=>(E.emit(z,{...j,reason:j.reason||"prevented"}),!1);return h===!1?v():h&&I(h.then)?h.then(P=>P?k():v()):k()}}),fe("packages/modules/shared/autosize.js",function(a,B){"use strict";Object.defineProperty(a,"contentWidth",{enumerable:!0,get:function(){return U}}),Object.defineProperty(a,"contentHeight",{enumerable:!0,get:function(){return F}}),Object.defineProperty(a,"firstMeasured",{enumerable:!0,get:function(){return D}}),Object.defineProperty(a,"watchSize",{enumerable:!0,get:function(){return W}}),Object.defineProperty(a,"watchBox",{enumerable:!0,get:function(){return N}});const I=B("packages/core/src/internal/util.js").warnOnce;function U(g){if(!g||typeof g!="object")return null;const E=Number(g.clientWidth);if(Number.isFinite(E)&&E>0)return E;if(typeof g.getBoundingClientRect=="function"){const n=g.getBoundingClientRect(),z=n&&Number(n.width);if(Number.isFinite(z)&&z>0)return z}return null}function F(g){if(!g||typeof g!="object")return null;const E=Number(g.clientHeight);if(Number.isFinite(E)&&E>0)return E;if(typeof g.getBoundingClientRect=="function"){const n=g.getBoundingClientRect(),z=n&&Number(n.height);if(Number.isFinite(z)&&z>0)return z}return null}function D(g,E=U){for(const n of g||[]){const z=E(n);if(Number.isFinite(z)&&z>0)return z}return null}function W(g){const E=(g&&Array.isArray(g.targets)?g.targets:[]).filter(Boolean),n=g&&typeof g.read=="function"?g.read:()=>null,z=g&&typeof g.apply=="function"?g.apply:()=>{},j=Number.isFinite(g&&g.epsilon)?Number(g.epsilon):1;let k=null,h=!1;const v=()=>{if(h)return!1;const w=n();if(!Number.isFinite(w)||w<=0||k!=null&&Math.abs(w-k)<j)return!1;k=w,h=!0;try{z(w)}finally{h=!1}return!0};v();const P=E[0],$=g&&g.view||P&&P.ownerDocument&&P.ownerDocument.defaultView||globalThis,_=$&&$.ResizeObserver;let C=null;if(typeof _=="function"&&E.length){C=new _(()=>{v()});for(const w of E)w&&typeof C.observe=="function"&&C.observe(w)}else E.length&&I("shared.autosize.no-resize-observer","ResizeObserver is unavailable; this view was sized once at mount and will not follow its container.");return{refresh:v,get applied(){return k},release(){if(C&&typeof C.disconnect=="function")try{C.disconnect()}catch{}C=null}}}function N(g){const E=(g&&Array.isArray(g.targets)?g.targets:[]).filter(Boolean),n=g&&typeof g.read=="function"?g.read:()=>({}),z=g&&typeof g.apply=="function"?g.apply:()=>{},j=Number.isFinite(g&&g.epsilon)?Number(g.epsilon):1;let k=null,h=!1;const v=O=>{if(k==null)return!0;for(const[X,A]of Object.entries(O)){if(!Number.isFinite(A)||A<=0)continue;const T=k[X];if(!Number.isFinite(T)||Math.abs(A-T)>=j)return!0}return!1},P=()=>{if(h)return!1;const O=n();if(!O||typeof O!="object"||!Object.values(O).some(A=>Number.isFinite(A)&&A>0)||!v(O))return!1;k={...k,...O},h=!0;try{z(O)}finally{h=!1}return!0};P();const $=E[0],_=g&&g.view||$&&$.ownerDocument&&$.ownerDocument.defaultView||globalThis,C=_&&_.ResizeObserver;let w=null;if(typeof C=="function"&&E.length){w=new C(()=>{P()});for(const O of E)O&&typeof w.observe=="function"&&w.observe(O)}else E.length&&I("shared.autosize.no-resize-observer","ResizeObserver is unavailable; this view was sized once at mount and will not follow its container.");return{refresh:P,get applied(){return k},release(){if(w&&typeof w.disconnect=="function")try{w.disconnect()}catch{}w=null}}}}),fe("packages/modules/layout/length.js",function(a,B){"use strict";Object.defineProperty(a,"cssLength",{enumerable:!0,get:function(){return F}}),Object.defineProperty(a,"tracks",{enumerable:!0,get:function(){return W}});const I=B("packages/core/src/internal/util.js").warnOnce,U=/^(?:\d+\.?\d*|\.\d+)(?:px|%|fr|em|rem|ch|vh|vw|vmin|vmax|pt|cm|mm|in)$/i;function F(N,g,E){if(N==null)return g;if(typeof N=="number")return Number.isFinite(N)&&N>=0?`${N}px`:D(N,g,E);if(typeof N!="string")return D(N,g,E);const n=N.trim();if(n==="")return g;if(U.test(n))return n;const z=Number(n);return Number.isFinite(z)&&z>=0?`${z}px`:D(N,g,E)}function D(N,g,E){return I(`layout.length:${E}`,`layout: ${E} was set to ${JSON.stringify(N)}, which is not a length this module understands (a number of pixels, or a string like '200px', '25%', '1fr', '2rem'). Using ${g}.`),g}function W(N,g,E){return N==="scroll"?`repeat(${g}, ${E})`:`repeat(${g}, minmax(0, 1fr))`}}),fe("packages/modules/layout/model.js",function(a,B){"use strict";Object.defineProperty(a,"positiveInt",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(a,"overlaps",{enumerable:!0,get:function(){return I}}),Object.defineProperty(a,"clampToColumns",{enumerable:!0,get:function(){return U}}),Object.defineProperty(a,"readingOrder",{enumerable:!0,get:function(){return F}}),Object.defineProperty(a,"columnOrder",{enumerable:!0,get:function(){return W}}),Object.defineProperty(a,"pushDown",{enumerable:!0,get:function(){return N}}),Object.defineProperty(a,"pullUp",{enumerable:!0,get:function(){return g}}),Object.defineProperty(a,"pushRight",{enumerable:!0,get:function(){return E}}),Object.defineProperty(a,"pullLeft",{enumerable:!0,get:function(){return n}}),Object.defineProperty(a,"compact",{enumerable:!0,get:function(){return z}}),Object.defineProperty(a,"firstFree",{enumerable:!0,get:function(){return j}}),Object.defineProperty(a,"occupiedRows",{enumerable:!0,get:function(){return k}});function Y(h,v){const P=Math.trunc(Number(h));return Number.isFinite(P)&&P>0?P:v}function I(h,v){return h.xPos<v.xPos+v.xSize&&v.xPos<h.xPos+h.xSize&&h.yPos<v.yPos+v.ySize&&v.yPos<h.yPos+h.ySize}function U(h,v){const P=Math.max(1,Math.min(h.xSize,v));return{xPos:Math.max(1,Math.min(h.xPos,v-P+1)),yPos:Math.max(1,h.yPos),xSize:P,ySize:Math.max(1,h.ySize)}}function F(h,v){return h.yPos-v.yPos||h.xPos-v.xPos||D(h,v)}function D(h,v){const P=String(h.id),$=String(v.id);return P<$?-1:P>$?1:0}function W(h,v){return h.xPos-v.xPos||h.yPos-v.yPos||D(h,v)}function N(h,v){const P=h.find(w=>w.id===v),$=P?[P]:[],_=h.filter(w=>w!==P).sort(F),C=h.length+2;for(const w of _){for(let O=0;O<C;O++){const X=$.filter(A=>I(w,A));if(X.length===0)break;w.yPos=X.reduce((A,T)=>Math.max(A,T.yPos+T.ySize),w.yPos)}$.push(w)}return h}function g(h){const v=[];for(const P of[...h].sort(F)){for(;P.yPos>1;){const $={...P,yPos:P.yPos-1};if(v.some(_=>I($,_)))break;P.yPos-=1}v.push(P)}return h}function E(h,v){const P=h.find(w=>w.id===v),$=P?[P]:[],_=h.filter(w=>w!==P).sort(W),C=h.length+2;for(const w of _){for(let O=0;O<C;O++){const X=$.filter(A=>I(w,A));if(X.length===0)break;w.xPos=X.reduce((A,T)=>Math.max(A,T.xPos+T.xSize),w.xPos)}$.push(w)}return h}function n(h){const v=[];for(const P of[...h].sort(W)){for(;P.xPos>1;){const $={...P,xPos:P.xPos-1};if(v.some(_=>I($,_)))break;P.xPos-=1}v.push(P)}return h}function z(h,v,P){return v==="horizontal"?(E(h,P),n(h)):v!=="vertical"?h:(N(h,P),g(h))}function j(h,v,P,$){const _=Math.max(1,Math.min(P,v)),C=h.reduce((w,O)=>Math.max(w,O.yPos+O.ySize),1);for(let w=1;w<=C+$;w++)for(let O=1;O<=v-_+1;O++){const X={xPos:O,yPos:w,xSize:_,ySize:Math.max(1,$)};if(!h.some(A=>I(X,A)))return{xPos:O,yPos:w}}return{xPos:1,yPos:C}}function k(h,v){return h.reduce((P,$)=>Math.max(P,$.yPos+$.ySize-1),v)}}),fe("packages/modules/layout/view.js",function(a,B){"use strict";Object.defineProperty(a,"NS",{enumerable:!0,get:function(){return n}}),Object.defineProperty(a,"injectStyles",{enumerable:!0,get:function(){return z}}),Object.defineProperty(a,"renderShell",{enumerable:!0,get:function(){return j}}),Object.defineProperty(a,"applyGeometry",{enumerable:!0,get:function(){return k}}),Object.defineProperty(a,"setModeState",{enumerable:!0,get:function(){return C}}),Object.defineProperty(a,"renderWindow",{enumerable:!0,get:function(){return X}}),Object.defineProperty(a,"syncAffordances",{enumerable:!0,get:function(){return T}}),Object.defineProperty(a,"effective",{enumerable:!0,get:function(){return q}}),Object.defineProperty(a,"project",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(a,"placeWindow",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(a,"announce",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(a,"cellPitch",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(a,"showGhost",{enumerable:!0,get:function(){return we}}),Object.defineProperty(a,"hideGhost",{enumerable:!0,get:function(){return de}}),Object.defineProperty(a,"listen",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(a,"placementFromDelta",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(a,"boundPlacement",{enumerable:!0,get:function(){return he}}),Object.defineProperty(a,"commitPlacement",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(a,"focusHandle",{enumerable:!0,get:function(){return be}});const I=B("packages/core/src/internal/util.js").isFunction,U=B("packages/modules/layout/length.js"),F=U.cssLength,D=U.tracks,W=B("packages/modules/layout/model.js"),N=W.clampToColumns,g=W.compact,E=W.occupiedRows,n="lat-layout";function z(u){if(!u||u.getElementById&&u.getElementById(`${n}-styles`))return;const r=u.createElement("style");r.id=`${n}-styles`,r.setAttribute("id",`${n}-styles`),r.textContent=`
7
7
  .${n}{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;box-sizing:border-box;
8
8
  font-family:var(--${n}-font-family,var(--lattice-font-family,var(--lat-chrome-font-family,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif)));
9
9
  font-size:var(--${n}-font-size,var(--lattice-font-size,var(--lat-chrome-font-size,13px)));
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Lattice Grid 1.86.4, layout module
2
+ * Lattice Grid 1.86.5, layout module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
6
- (function(_e){"use strict";var Me=Object.create(null),Ne=Object.create(null);function fe(a,B){Me[a]=B}function Fe(a){var B=Ne[a];if(B)return B;var Y=Object.create(null);Ne[a]=Y;var I=Me[a];if(!I)throw new Error("[lattice] missing module: "+a);return I(Y,Fe),Y}fe("packages/core/src/internal/util.js",function(a,B){"use strict";Object.defineProperty(a,"VERSION",{enumerable:!0,get:function(){return U}}),Object.defineProperty(a,"reportedWarnings",{enumerable:!0,get:function(){return z}}),Object.defineProperty(a,"warnOnce",{enumerable:!0,get:function(){return k}}),Object.defineProperty(a,"infoOnce",{enumerable:!0,get:function(){return h}}),Object.defineProperty(a,"resetWarnings",{enumerable:!0,get:function(){return v}}),Object.defineProperty(a,"fail",{enumerable:!0,get:function(){return P}}),Object.defineProperty(a,"invariant",{enumerable:!0,get:function(){return $}}),Object.defineProperty(a,"DEV",{enumerable:!0,get:function(){return _}}),Object.defineProperty(a,"isObject",{enumerable:!0,get:function(){return C}}),Object.defineProperty(a,"isFunction",{enumerable:!0,get:function(){return w}}),Object.defineProperty(a,"isNil",{enumerable:!0,get:function(){return O}}),Object.defineProperty(a,"isBlank",{enumerable:!0,get:function(){return X}}),Object.defineProperty(a,"isCtor",{enumerable:!0,get:function(){return A}}),Object.defineProperty(a,"pathGetter",{enumerable:!0,get:function(){return q}}),Object.defineProperty(a,"pathSetter",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(a,"getPath",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(a,"setPath",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(a,"humanise",{enumerable:!0,get:function(){return we}}),Object.defineProperty(a,"escapeHtml",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(a,"titleCase",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(a,"expand",{enumerable:!0,get:function(){return he}}),Object.defineProperty(a,"toArray",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(a,"merge",{enumerable:!0,get:function(){return u}}),Object.defineProperty(a,"mergeRow",{enumerable:!0,get:function(){return r}}),Object.defineProperty(a,"Lru",{enumerable:!0,get:function(){return f}}),Object.defineProperty(a,"collator",{enumerable:!0,get:function(){return p}}),Object.defineProperty(a,"defaultCompare",{enumerable:!0,get:function(){return M}}),Object.defineProperty(a,"now",{enumerable:!0,get:function(){return L}}),Object.defineProperty(a,"nextFrame",{enumerable:!0,get:function(){return re}}),Object.defineProperty(a,"cancelFrame",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(a,"frameBatched",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(a,"settleDebounce",{enumerable:!0,get:function(){return me}}),Object.defineProperty(a,"whenIdle",{enumerable:!0,get:function(){return V}}),Object.defineProperty(a,"uid",{enumerable:!0,get:function(){return se}});const Y="1.86.4";async function I(){return Y}const U="1.86.4",F=new Set,D=2e3;function W(i){if(F.add(i),F.size>D){const l=F.values().next().value;l!==void 0&&F.delete(l)}}const N=[],g=500;function E(i,l,c){N.push({key:i,level:l,message:c.map(S=>typeof S=="string"?S:n(S)).join(" "),at:Date.now()}),N.length>g&&N.shift()}function n(i){if(i instanceof Error)return i.message;try{return JSON.stringify(i)}catch{return String(i)}}function z(){return N.map(i=>({...i}))}function j(i){if(i.length===0||typeof i[0]!="string")return i;const l=i[0].replace(/^\[lattice\]\s*/,"");return l===i[0]?i:[l,...i.slice(1)]}function k(i,...l){if(F.has(i))return;W(i);const c=j(l);E(i,"warn",c),console.warn("[lattice]",...c)}function h(i,...l){if(F.has(i))return;W(i);const c=j(l);E(i,"info",c),console.info("[lattice]",...c)}function v(){F.clear(),N.length=0}function P(i,l){const c=new Error(`[lattice] ${i}`);throw l!==void 0&&(c.cause=l),c}function $(i,l){i||P(l)}const _=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})();function C(i){return i!==null&&typeof i=="object"&&!Array.isArray(i)}function w(i){return typeof i=="function"}function O(i){return i==null}function X(i){return i==null||i===""}function A(i){return typeof i!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(i))?!0:!!(i.prototype&&Object.getOwnPropertyNames(i.prototype).length>1)}const T=new Map;function q(i){let l=T.get(i);if(l)return l;if(!i.includes("."))l=c=>c?.[i];else{const c=i.split("."),S=c.length;l=K=>{let Q=K;for(let J=0;J<S;J++){if(Q==null)return;Q=Q[c[J]]}return Q}}return T.set(i,l),l}const Z=new Map;function ie(i){let l=Z.get(i);if(l)return l;if(!i.includes("."))l=(c,S)=>{c!=null&&(c[i]=S)};else{const c=i.split("."),S=c.length-1;l=(K,Q)=>{let J=K;for(let ee=0;ee<S;ee++){if(J==null)return;const pe=c[ee];J[pe]==null&&(J[pe]={}),J=J[pe]}J!=null&&(J[c[S]]=Q)}}return Z.set(i,l),l}function ue(i,l){return q(l)(i)}function ne(i,l,c){ie(l)(i,c)}function we(i){return i?(i.includes(".")?i.slice(i.lastIndexOf(".")+1):i).replace(/[_-]+/g," ").replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2").replace(/\s+/g," ").trim().replace(/^./,c=>c.toUpperCase()):""}const de={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function ve(i){const l=i==null?"":String(i);return/[&<>"']/.test(l)?l.replace(/[&<>"']/g,c=>de[c]):l}function xe(i){return String(i).replace(/\w\S*/g,l=>l[0].toUpperCase()+l.slice(1).toLowerCase())}function he(i,l,c){if(i!==void 0)return i===!0?{enabled:!0,...c}:i===!1?{enabled:!1}:C(i)?i:{[l]:i,enabled:!0}}function ae(i){return i==null?[]:Array.isArray(i)?i:[i]}const be=Object.freeze(new Set(["__proto__","constructor","prototype"]));function u(i,l){if(!C(i))return C(l)?{...l}:l;if(!C(l))return l===void 0?i:l;const c={...i};for(const S of Object.keys(l)){if(be.has(S))continue;const K=l[S];K!==void 0&&(c[S]=C(K)&&C(c[S])?u(c[S],K):K)}return c}function r(i,l){if(!C(i)||!C(l)||i===l)return l;const c=Object.create(Object.getPrototypeOf(i));return Object.assign(c,i,l),c}class f{#t;#e=new Map;#n;constructor(l=256,c=null){this.#t=l,this.#n=c}get size(){return this.#e.size}get max(){return this.#t}set max(l){this.#t=l,this.#i()}has(l){return this.#e.has(l)}get(l){const c=this.#e;if(!c.has(l))return;const S=c.get(l);return c.delete(l),c.set(l,S),S}peek(l){return this.#e.get(l)}set(l,c){const S=this.#e;return S.has(l)&&S.delete(l),S.set(l,c),this.#i(),c}delete(l){const c=this.#e.get(l);return this.#e.delete(l)&&this.#n&&this.#n(c,l),c}clear(){if(this.#n)for(const[l,c]of this.#e)this.#n(c,l);this.#e.clear()}keys(){return this.#e.keys()}values(){return this.#e.values()}#i(){const l=this.#e;for(;l.size>this.#t;){const c=l.keys().next().value,S=l.get(c);l.delete(c),this.#n&&this.#n(S,c)}}}const y=new Map;function p(i,l){const c=`${i||""}|${l?JSON.stringify(l):""}`;let S=y.get(c);return S||(S=new Intl.Collator(i||void 0,{numeric:!0,sensitivity:"variant",...l}),y.set(c,S)),S}function M(i,l){if(i===l)return 0;if(i==null)return 1;if(l==null)return-1;if(typeof i=="number"&&typeof l=="number")return Number.isNaN(i)?Number.isNaN(l)?0:1:Number.isNaN(l)||i<l?-1:i>l?1:0;const c=String(i),S=String(l);return c<S?-1:c>S?1:0}function L(){return typeof performance<"u"&&performance.now?performance.now():Date.now()}const H=typeof requestAnimationFrame=="function";function re(i){return H?requestAnimationFrame(i):setTimeout(()=>i(L()),16)}function oe(i){i!=null&&(H?cancelAnimationFrame(i):clearTimeout(i))}function ce(i){let l=null,c=null;const S=()=>{l=null;const Q=c;c=null,i(...Q||[])},K=(...Q)=>{c=Q,l===null&&(l=re(S))};return K.cancel=()=>{oe(l),l=null,c=null},K.flush=()=>{l!==null&&(oe(l),S())},K}function me(i,l){let c=null,S=null;const K=()=>{if(c=null,S===null)return;const ee=S;S=null,i(...ee),Q()},Q=()=>{c=setTimeout(K,l),typeof c?.unref=="function"&&c.unref()},J=(...ee)=>{c===null?(i(...ee),Q()):(S=ee,clearTimeout(c),Q())};return J.flush=()=>{if(c!==null&&clearTimeout(c),c=null,S===null)return;const ee=S;S=null,i(...ee)},J.cancel=()=>{c!==null&&clearTimeout(c),c=null,S=null},J.pending=()=>c!==null||S!==null,J}function V(i,l=50){return typeof requestIdleCallback=="function"?requestIdleCallback(i,{timeout:l}):setTimeout(()=>i({timeRemaining:()=>0,didTimeout:!0}),1)}let ye=0;function se(i="l"){return`${i}${(++ye).toString(36)}`}}),fe("packages/modules/shared/emitter.js",function(a,B){"use strict";Object.defineProperty(a,"WILDCARD",{enumerable:!0,get:function(){return F}}),Object.defineProperty(a,"Emitter",{enumerable:!0,get:function(){return N}}),Object.defineProperty(a,"gate",{enumerable:!0,get:function(){return g}});const Y=B("packages/core/src/internal/util.js"),I=Y.isFunction,U=Y.warnOnce,F="*",D=new Set(["api","user","init","ai"]);function W(E,n){return E&&E.name?E.name:`#${n}`}class N{#t=new Map;#e;constructor(n="module"){this.#e=String(n)}on(n,z){if(!I(z))return()=>{};let j=this.#t.get(n);return j||(j=new Set,this.#t.set(n,j)),j.add(z),()=>this.off(n,z)}off(n,z){const j=this.#t.get(n);j&&j.delete(z)}count(n){const z=this.#t.get(n);return z?z.size:0}emit(n,z){const j=this.#t.get(n),k=this.#t.get(F);if((!j||j.size===0)&&(!k||k.size===0))return;const h={...z||null,type:n};j&&j.size&&this.#n([...j],h,n),k&&k.size&&this.#n([...k],h,F)}#n(n,z,j){for(let k=0;k<n.length;k++)try{n[k](z)}catch(h){U(`${this.#e}.emit.throw:${j}:${W(n[k],k)}`,`${this.#e}: a '${j}' handler threw; other handlers were unaffected.`,h)}}emitBefore(n,z,j){const k=j??(z&&z.origin),h=D.has(k)?k:"user";let v=!1,P=null;const $=A=>{v=!0,A!=null&&P===null&&(P=String(A))},_={...z||null,type:n,origin:h,get defaultPrevented(){return v},get reason(){return P},preventDefault(A){$(A)}},C=this.#t.get(n);if(!C||C.size===0)return!0;const w=[...C],O=()=>(v&&P===null&&(P="prevented"),v&&z&&typeof z=="object"&&(z.reason=P),!v),X=[];for(let A=0;A<w.length;A++){const T=w[A];try{const q=T(_);q&&I(q.then)?X.push(q):q===!1&&$("prevented")}catch(q){$("error"),U(`${this.#e}.beforeThrow:${n}:${W(T,A)}`,`${this.#e}: a '${n}' before-handler threw; the action was cancelled.`,q)}}return X.length===0?O():Promise.allSettled(X).then(A=>{for(const T of A)T.status==="rejected"?($("error"),U(`${this.#e}.beforeReject:${n}`,`${this.#e}: a '${n}' before-handler rejected; the action was cancelled.`,T.reason)):T.value===!1&&$("prevented");return O()})}clear(){this.#t.clear()}}function g(E,n,z,j,k){const h=E.emitBefore(n,j,j.origin),v=()=>(E.emit(z,{...j,reason:j.reason||"prevented"}),!1);return h===!1?v():h&&I(h.then)?h.then(P=>P?k():v()):k()}}),fe("packages/modules/shared/autosize.js",function(a,B){"use strict";Object.defineProperty(a,"contentWidth",{enumerable:!0,get:function(){return U}}),Object.defineProperty(a,"contentHeight",{enumerable:!0,get:function(){return F}}),Object.defineProperty(a,"firstMeasured",{enumerable:!0,get:function(){return D}}),Object.defineProperty(a,"watchSize",{enumerable:!0,get:function(){return W}}),Object.defineProperty(a,"watchBox",{enumerable:!0,get:function(){return N}});const I=B("packages/core/src/internal/util.js").warnOnce;function U(g){if(!g||typeof g!="object")return null;const E=Number(g.clientWidth);if(Number.isFinite(E)&&E>0)return E;if(typeof g.getBoundingClientRect=="function"){const n=g.getBoundingClientRect(),z=n&&Number(n.width);if(Number.isFinite(z)&&z>0)return z}return null}function F(g){if(!g||typeof g!="object")return null;const E=Number(g.clientHeight);if(Number.isFinite(E)&&E>0)return E;if(typeof g.getBoundingClientRect=="function"){const n=g.getBoundingClientRect(),z=n&&Number(n.height);if(Number.isFinite(z)&&z>0)return z}return null}function D(g,E=U){for(const n of g||[]){const z=E(n);if(Number.isFinite(z)&&z>0)return z}return null}function W(g){const E=(g&&Array.isArray(g.targets)?g.targets:[]).filter(Boolean),n=g&&typeof g.read=="function"?g.read:()=>null,z=g&&typeof g.apply=="function"?g.apply:()=>{},j=Number.isFinite(g&&g.epsilon)?Number(g.epsilon):1;let k=null,h=!1;const v=()=>{if(h)return!1;const w=n();if(!Number.isFinite(w)||w<=0||k!=null&&Math.abs(w-k)<j)return!1;k=w,h=!0;try{z(w)}finally{h=!1}return!0};v();const P=E[0],$=g&&g.view||P&&P.ownerDocument&&P.ownerDocument.defaultView||globalThis,_=$&&$.ResizeObserver;let C=null;if(typeof _=="function"&&E.length){C=new _(()=>{v()});for(const w of E)w&&typeof C.observe=="function"&&C.observe(w)}else E.length&&I("shared.autosize.no-resize-observer","ResizeObserver is unavailable; this view was sized once at mount and will not follow its container.");return{refresh:v,get applied(){return k},release(){if(C&&typeof C.disconnect=="function")try{C.disconnect()}catch{}C=null}}}function N(g){const E=(g&&Array.isArray(g.targets)?g.targets:[]).filter(Boolean),n=g&&typeof g.read=="function"?g.read:()=>({}),z=g&&typeof g.apply=="function"?g.apply:()=>{},j=Number.isFinite(g&&g.epsilon)?Number(g.epsilon):1;let k=null,h=!1;const v=O=>{if(k==null)return!0;for(const[X,A]of Object.entries(O)){if(!Number.isFinite(A)||A<=0)continue;const T=k[X];if(!Number.isFinite(T)||Math.abs(A-T)>=j)return!0}return!1},P=()=>{if(h)return!1;const O=n();if(!O||typeof O!="object"||!Object.values(O).some(A=>Number.isFinite(A)&&A>0)||!v(O))return!1;k={...k,...O},h=!0;try{z(O)}finally{h=!1}return!0};P();const $=E[0],_=g&&g.view||$&&$.ownerDocument&&$.ownerDocument.defaultView||globalThis,C=_&&_.ResizeObserver;let w=null;if(typeof C=="function"&&E.length){w=new C(()=>{P()});for(const O of E)O&&typeof w.observe=="function"&&w.observe(O)}else E.length&&I("shared.autosize.no-resize-observer","ResizeObserver is unavailable; this view was sized once at mount and will not follow its container.");return{refresh:P,get applied(){return k},release(){if(w&&typeof w.disconnect=="function")try{w.disconnect()}catch{}w=null}}}}),fe("packages/modules/layout/length.js",function(a,B){"use strict";Object.defineProperty(a,"cssLength",{enumerable:!0,get:function(){return F}}),Object.defineProperty(a,"tracks",{enumerable:!0,get:function(){return W}});const I=B("packages/core/src/internal/util.js").warnOnce,U=/^(?:\d+\.?\d*|\.\d+)(?:px|%|fr|em|rem|ch|vh|vw|vmin|vmax|pt|cm|mm|in)$/i;function F(N,g,E){if(N==null)return g;if(typeof N=="number")return Number.isFinite(N)&&N>=0?`${N}px`:D(N,g,E);if(typeof N!="string")return D(N,g,E);const n=N.trim();if(n==="")return g;if(U.test(n))return n;const z=Number(n);return Number.isFinite(z)&&z>=0?`${z}px`:D(N,g,E)}function D(N,g,E){return I(`layout.length:${E}`,`layout: ${E} was set to ${JSON.stringify(N)}, which is not a length this module understands (a number of pixels, or a string like '200px', '25%', '1fr', '2rem'). Using ${g}.`),g}function W(N,g,E){return N==="scroll"?`repeat(${g}, ${E})`:`repeat(${g}, minmax(0, 1fr))`}}),fe("packages/modules/layout/model.js",function(a,B){"use strict";Object.defineProperty(a,"positiveInt",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(a,"overlaps",{enumerable:!0,get:function(){return I}}),Object.defineProperty(a,"clampToColumns",{enumerable:!0,get:function(){return U}}),Object.defineProperty(a,"readingOrder",{enumerable:!0,get:function(){return F}}),Object.defineProperty(a,"columnOrder",{enumerable:!0,get:function(){return W}}),Object.defineProperty(a,"pushDown",{enumerable:!0,get:function(){return N}}),Object.defineProperty(a,"pullUp",{enumerable:!0,get:function(){return g}}),Object.defineProperty(a,"pushRight",{enumerable:!0,get:function(){return E}}),Object.defineProperty(a,"pullLeft",{enumerable:!0,get:function(){return n}}),Object.defineProperty(a,"compact",{enumerable:!0,get:function(){return z}}),Object.defineProperty(a,"firstFree",{enumerable:!0,get:function(){return j}}),Object.defineProperty(a,"occupiedRows",{enumerable:!0,get:function(){return k}});function Y(h,v){const P=Math.trunc(Number(h));return Number.isFinite(P)&&P>0?P:v}function I(h,v){return h.xPos<v.xPos+v.xSize&&v.xPos<h.xPos+h.xSize&&h.yPos<v.yPos+v.ySize&&v.yPos<h.yPos+h.ySize}function U(h,v){const P=Math.max(1,Math.min(h.xSize,v));return{xPos:Math.max(1,Math.min(h.xPos,v-P+1)),yPos:Math.max(1,h.yPos),xSize:P,ySize:Math.max(1,h.ySize)}}function F(h,v){return h.yPos-v.yPos||h.xPos-v.xPos||D(h,v)}function D(h,v){const P=String(h.id),$=String(v.id);return P<$?-1:P>$?1:0}function W(h,v){return h.xPos-v.xPos||h.yPos-v.yPos||D(h,v)}function N(h,v){const P=h.find(w=>w.id===v),$=P?[P]:[],_=h.filter(w=>w!==P).sort(F),C=h.length+2;for(const w of _){for(let O=0;O<C;O++){const X=$.filter(A=>I(w,A));if(X.length===0)break;w.yPos=X.reduce((A,T)=>Math.max(A,T.yPos+T.ySize),w.yPos)}$.push(w)}return h}function g(h){const v=[];for(const P of[...h].sort(F)){for(;P.yPos>1;){const $={...P,yPos:P.yPos-1};if(v.some(_=>I($,_)))break;P.yPos-=1}v.push(P)}return h}function E(h,v){const P=h.find(w=>w.id===v),$=P?[P]:[],_=h.filter(w=>w!==P).sort(W),C=h.length+2;for(const w of _){for(let O=0;O<C;O++){const X=$.filter(A=>I(w,A));if(X.length===0)break;w.xPos=X.reduce((A,T)=>Math.max(A,T.xPos+T.xSize),w.xPos)}$.push(w)}return h}function n(h){const v=[];for(const P of[...h].sort(W)){for(;P.xPos>1;){const $={...P,xPos:P.xPos-1};if(v.some(_=>I($,_)))break;P.xPos-=1}v.push(P)}return h}function z(h,v,P){return v==="horizontal"?(E(h,P),n(h)):v!=="vertical"?h:(N(h,P),g(h))}function j(h,v,P,$){const _=Math.max(1,Math.min(P,v)),C=h.reduce((w,O)=>Math.max(w,O.yPos+O.ySize),1);for(let w=1;w<=C+$;w++)for(let O=1;O<=v-_+1;O++){const X={xPos:O,yPos:w,xSize:_,ySize:Math.max(1,$)};if(!h.some(A=>I(X,A)))return{xPos:O,yPos:w}}return{xPos:1,yPos:C}}function k(h,v){return h.reduce((P,$)=>Math.max(P,$.yPos+$.ySize-1),v)}}),fe("packages/modules/layout/view.js",function(a,B){"use strict";Object.defineProperty(a,"NS",{enumerable:!0,get:function(){return n}}),Object.defineProperty(a,"injectStyles",{enumerable:!0,get:function(){return z}}),Object.defineProperty(a,"renderShell",{enumerable:!0,get:function(){return j}}),Object.defineProperty(a,"applyGeometry",{enumerable:!0,get:function(){return k}}),Object.defineProperty(a,"setModeState",{enumerable:!0,get:function(){return C}}),Object.defineProperty(a,"renderWindow",{enumerable:!0,get:function(){return X}}),Object.defineProperty(a,"syncAffordances",{enumerable:!0,get:function(){return T}}),Object.defineProperty(a,"effective",{enumerable:!0,get:function(){return q}}),Object.defineProperty(a,"project",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(a,"placeWindow",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(a,"announce",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(a,"cellPitch",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(a,"showGhost",{enumerable:!0,get:function(){return we}}),Object.defineProperty(a,"hideGhost",{enumerable:!0,get:function(){return de}}),Object.defineProperty(a,"listen",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(a,"placementFromDelta",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(a,"boundPlacement",{enumerable:!0,get:function(){return he}}),Object.defineProperty(a,"commitPlacement",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(a,"focusHandle",{enumerable:!0,get:function(){return be}});const I=B("packages/core/src/internal/util.js").isFunction,U=B("packages/modules/layout/length.js"),F=U.cssLength,D=U.tracks,W=B("packages/modules/layout/model.js"),N=W.clampToColumns,g=W.compact,E=W.occupiedRows,n="lat-layout";function z(u){if(!u||u.getElementById&&u.getElementById(`${n}-styles`))return;const r=u.createElement("style");r.id=`${n}-styles`,r.setAttribute("id",`${n}-styles`),r.textContent=`
6
+ (function(_e){"use strict";var Me=Object.create(null),Ne=Object.create(null);function fe(a,B){Me[a]=B}function Fe(a){var B=Ne[a];if(B)return B;var Y=Object.create(null);Ne[a]=Y;var I=Me[a];if(!I)throw new Error("[lattice] missing module: "+a);return I(Y,Fe),Y}fe("packages/core/src/internal/util.js",function(a,B){"use strict";Object.defineProperty(a,"VERSION",{enumerable:!0,get:function(){return U}}),Object.defineProperty(a,"reportedWarnings",{enumerable:!0,get:function(){return z}}),Object.defineProperty(a,"warnOnce",{enumerable:!0,get:function(){return k}}),Object.defineProperty(a,"infoOnce",{enumerable:!0,get:function(){return h}}),Object.defineProperty(a,"resetWarnings",{enumerable:!0,get:function(){return v}}),Object.defineProperty(a,"fail",{enumerable:!0,get:function(){return P}}),Object.defineProperty(a,"invariant",{enumerable:!0,get:function(){return $}}),Object.defineProperty(a,"DEV",{enumerable:!0,get:function(){return _}}),Object.defineProperty(a,"isObject",{enumerable:!0,get:function(){return C}}),Object.defineProperty(a,"isFunction",{enumerable:!0,get:function(){return w}}),Object.defineProperty(a,"isNil",{enumerable:!0,get:function(){return O}}),Object.defineProperty(a,"isBlank",{enumerable:!0,get:function(){return X}}),Object.defineProperty(a,"isCtor",{enumerable:!0,get:function(){return A}}),Object.defineProperty(a,"pathGetter",{enumerable:!0,get:function(){return q}}),Object.defineProperty(a,"pathSetter",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(a,"getPath",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(a,"setPath",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(a,"humanise",{enumerable:!0,get:function(){return we}}),Object.defineProperty(a,"escapeHtml",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(a,"titleCase",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(a,"expand",{enumerable:!0,get:function(){return he}}),Object.defineProperty(a,"toArray",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(a,"merge",{enumerable:!0,get:function(){return u}}),Object.defineProperty(a,"mergeRow",{enumerable:!0,get:function(){return r}}),Object.defineProperty(a,"Lru",{enumerable:!0,get:function(){return f}}),Object.defineProperty(a,"collator",{enumerable:!0,get:function(){return p}}),Object.defineProperty(a,"defaultCompare",{enumerable:!0,get:function(){return M}}),Object.defineProperty(a,"now",{enumerable:!0,get:function(){return L}}),Object.defineProperty(a,"nextFrame",{enumerable:!0,get:function(){return re}}),Object.defineProperty(a,"cancelFrame",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(a,"frameBatched",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(a,"settleDebounce",{enumerable:!0,get:function(){return me}}),Object.defineProperty(a,"whenIdle",{enumerable:!0,get:function(){return V}}),Object.defineProperty(a,"uid",{enumerable:!0,get:function(){return se}});const Y="1.86.5";async function I(){return Y}const U="1.86.5",F=new Set,D=2e3;function W(i){if(F.add(i),F.size>D){const l=F.values().next().value;l!==void 0&&F.delete(l)}}const N=[],g=500;function E(i,l,c){N.push({key:i,level:l,message:c.map(S=>typeof S=="string"?S:n(S)).join(" "),at:Date.now()}),N.length>g&&N.shift()}function n(i){if(i instanceof Error)return i.message;try{return JSON.stringify(i)}catch{return String(i)}}function z(){return N.map(i=>({...i}))}function j(i){if(i.length===0||typeof i[0]!="string")return i;const l=i[0].replace(/^\[lattice\]\s*/,"");return l===i[0]?i:[l,...i.slice(1)]}function k(i,...l){if(F.has(i))return;W(i);const c=j(l);E(i,"warn",c),console.warn("[lattice]",...c)}function h(i,...l){if(F.has(i))return;W(i);const c=j(l);E(i,"info",c),console.info("[lattice]",...c)}function v(){F.clear(),N.length=0}function P(i,l){const c=new Error(`[lattice] ${i}`);throw l!==void 0&&(c.cause=l),c}function $(i,l){i||P(l)}const _=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})();function C(i){return i!==null&&typeof i=="object"&&!Array.isArray(i)}function w(i){return typeof i=="function"}function O(i){return i==null}function X(i){return i==null||i===""}function A(i){return typeof i!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(i))?!0:!!(i.prototype&&Object.getOwnPropertyNames(i.prototype).length>1)}const T=new Map;function q(i){let l=T.get(i);if(l)return l;if(!i.includes("."))l=c=>c?.[i];else{const c=i.split("."),S=c.length;l=K=>{let Q=K;for(let J=0;J<S;J++){if(Q==null)return;Q=Q[c[J]]}return Q}}return T.set(i,l),l}const Z=new Map;function ie(i){let l=Z.get(i);if(l)return l;if(!i.includes("."))l=(c,S)=>{c!=null&&(c[i]=S)};else{const c=i.split("."),S=c.length-1;l=(K,Q)=>{let J=K;for(let ee=0;ee<S;ee++){if(J==null)return;const pe=c[ee];J[pe]==null&&(J[pe]={}),J=J[pe]}J!=null&&(J[c[S]]=Q)}}return Z.set(i,l),l}function ue(i,l){return q(l)(i)}function ne(i,l,c){ie(l)(i,c)}function we(i){return i?(i.includes(".")?i.slice(i.lastIndexOf(".")+1):i).replace(/[_-]+/g," ").replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2").replace(/\s+/g," ").trim().replace(/^./,c=>c.toUpperCase()):""}const de={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function ve(i){const l=i==null?"":String(i);return/[&<>"']/.test(l)?l.replace(/[&<>"']/g,c=>de[c]):l}function xe(i){return String(i).replace(/\w\S*/g,l=>l[0].toUpperCase()+l.slice(1).toLowerCase())}function he(i,l,c){if(i!==void 0)return i===!0?{enabled:!0,...c}:i===!1?{enabled:!1}:C(i)?i:{[l]:i,enabled:!0}}function ae(i){return i==null?[]:Array.isArray(i)?i:[i]}const be=Object.freeze(new Set(["__proto__","constructor","prototype"]));function u(i,l){if(!C(i))return C(l)?{...l}:l;if(!C(l))return l===void 0?i:l;const c={...i};for(const S of Object.keys(l)){if(be.has(S))continue;const K=l[S];K!==void 0&&(c[S]=C(K)&&C(c[S])?u(c[S],K):K)}return c}function r(i,l){if(!C(i)||!C(l)||i===l)return l;const c=Object.create(Object.getPrototypeOf(i));return Object.assign(c,i,l),c}class f{#t;#e=new Map;#n;constructor(l=256,c=null){this.#t=l,this.#n=c}get size(){return this.#e.size}get max(){return this.#t}set max(l){this.#t=l,this.#i()}has(l){return this.#e.has(l)}get(l){const c=this.#e;if(!c.has(l))return;const S=c.get(l);return c.delete(l),c.set(l,S),S}peek(l){return this.#e.get(l)}set(l,c){const S=this.#e;return S.has(l)&&S.delete(l),S.set(l,c),this.#i(),c}delete(l){const c=this.#e.get(l);return this.#e.delete(l)&&this.#n&&this.#n(c,l),c}clear(){if(this.#n)for(const[l,c]of this.#e)this.#n(c,l);this.#e.clear()}keys(){return this.#e.keys()}values(){return this.#e.values()}#i(){const l=this.#e;for(;l.size>this.#t;){const c=l.keys().next().value,S=l.get(c);l.delete(c),this.#n&&this.#n(S,c)}}}const y=new Map;function p(i,l){const c=`${i||""}|${l?JSON.stringify(l):""}`;let S=y.get(c);return S||(S=new Intl.Collator(i||void 0,{numeric:!0,sensitivity:"variant",...l}),y.set(c,S)),S}function M(i,l){if(i===l)return 0;if(i==null)return 1;if(l==null)return-1;if(typeof i=="number"&&typeof l=="number")return Number.isNaN(i)?Number.isNaN(l)?0:1:Number.isNaN(l)||i<l?-1:i>l?1:0;const c=String(i),S=String(l);return c<S?-1:c>S?1:0}function L(){return typeof performance<"u"&&performance.now?performance.now():Date.now()}const H=typeof requestAnimationFrame=="function";function re(i){return H?requestAnimationFrame(i):setTimeout(()=>i(L()),16)}function oe(i){i!=null&&(H?cancelAnimationFrame(i):clearTimeout(i))}function ce(i){let l=null,c=null;const S=()=>{l=null;const Q=c;c=null,i(...Q||[])},K=(...Q)=>{c=Q,l===null&&(l=re(S))};return K.cancel=()=>{oe(l),l=null,c=null},K.flush=()=>{l!==null&&(oe(l),S())},K}function me(i,l){let c=null,S=null;const K=()=>{if(c=null,S===null)return;const ee=S;S=null,i(...ee),Q()},Q=()=>{c=setTimeout(K,l),typeof c?.unref=="function"&&c.unref()},J=(...ee)=>{c===null?(i(...ee),Q()):(S=ee,clearTimeout(c),Q())};return J.flush=()=>{if(c!==null&&clearTimeout(c),c=null,S===null)return;const ee=S;S=null,i(...ee)},J.cancel=()=>{c!==null&&clearTimeout(c),c=null,S=null},J.pending=()=>c!==null||S!==null,J}function V(i,l=50){return typeof requestIdleCallback=="function"?requestIdleCallback(i,{timeout:l}):setTimeout(()=>i({timeRemaining:()=>0,didTimeout:!0}),1)}let ye=0;function se(i="l"){return`${i}${(++ye).toString(36)}`}}),fe("packages/modules/shared/emitter.js",function(a,B){"use strict";Object.defineProperty(a,"WILDCARD",{enumerable:!0,get:function(){return F}}),Object.defineProperty(a,"Emitter",{enumerable:!0,get:function(){return N}}),Object.defineProperty(a,"gate",{enumerable:!0,get:function(){return g}});const Y=B("packages/core/src/internal/util.js"),I=Y.isFunction,U=Y.warnOnce,F="*",D=new Set(["api","user","init","ai"]);function W(E,n){return E&&E.name?E.name:`#${n}`}class N{#t=new Map;#e;constructor(n="module"){this.#e=String(n)}on(n,z){if(!I(z))return()=>{};let j=this.#t.get(n);return j||(j=new Set,this.#t.set(n,j)),j.add(z),()=>this.off(n,z)}off(n,z){const j=this.#t.get(n);j&&j.delete(z)}count(n){const z=this.#t.get(n);return z?z.size:0}emit(n,z){const j=this.#t.get(n),k=this.#t.get(F);if((!j||j.size===0)&&(!k||k.size===0))return;const h={...z||null,type:n};j&&j.size&&this.#n([...j],h,n),k&&k.size&&this.#n([...k],h,F)}#n(n,z,j){for(let k=0;k<n.length;k++)try{n[k](z)}catch(h){U(`${this.#e}.emit.throw:${j}:${W(n[k],k)}`,`${this.#e}: a '${j}' handler threw; other handlers were unaffected.`,h)}}emitBefore(n,z,j){const k=j??(z&&z.origin),h=D.has(k)?k:"user";let v=!1,P=null;const $=A=>{v=!0,A!=null&&P===null&&(P=String(A))},_={...z||null,type:n,origin:h,get defaultPrevented(){return v},get reason(){return P},preventDefault(A){$(A)}},C=this.#t.get(n);if(!C||C.size===0)return!0;const w=[...C],O=()=>(v&&P===null&&(P="prevented"),v&&z&&typeof z=="object"&&(z.reason=P),!v),X=[];for(let A=0;A<w.length;A++){const T=w[A];try{const q=T(_);q&&I(q.then)?X.push(q):q===!1&&$("prevented")}catch(q){$("error"),U(`${this.#e}.beforeThrow:${n}:${W(T,A)}`,`${this.#e}: a '${n}' before-handler threw; the action was cancelled.`,q)}}return X.length===0?O():Promise.allSettled(X).then(A=>{for(const T of A)T.status==="rejected"?($("error"),U(`${this.#e}.beforeReject:${n}`,`${this.#e}: a '${n}' before-handler rejected; the action was cancelled.`,T.reason)):T.value===!1&&$("prevented");return O()})}clear(){this.#t.clear()}}function g(E,n,z,j,k){const h=E.emitBefore(n,j,j.origin),v=()=>(E.emit(z,{...j,reason:j.reason||"prevented"}),!1);return h===!1?v():h&&I(h.then)?h.then(P=>P?k():v()):k()}}),fe("packages/modules/shared/autosize.js",function(a,B){"use strict";Object.defineProperty(a,"contentWidth",{enumerable:!0,get:function(){return U}}),Object.defineProperty(a,"contentHeight",{enumerable:!0,get:function(){return F}}),Object.defineProperty(a,"firstMeasured",{enumerable:!0,get:function(){return D}}),Object.defineProperty(a,"watchSize",{enumerable:!0,get:function(){return W}}),Object.defineProperty(a,"watchBox",{enumerable:!0,get:function(){return N}});const I=B("packages/core/src/internal/util.js").warnOnce;function U(g){if(!g||typeof g!="object")return null;const E=Number(g.clientWidth);if(Number.isFinite(E)&&E>0)return E;if(typeof g.getBoundingClientRect=="function"){const n=g.getBoundingClientRect(),z=n&&Number(n.width);if(Number.isFinite(z)&&z>0)return z}return null}function F(g){if(!g||typeof g!="object")return null;const E=Number(g.clientHeight);if(Number.isFinite(E)&&E>0)return E;if(typeof g.getBoundingClientRect=="function"){const n=g.getBoundingClientRect(),z=n&&Number(n.height);if(Number.isFinite(z)&&z>0)return z}return null}function D(g,E=U){for(const n of g||[]){const z=E(n);if(Number.isFinite(z)&&z>0)return z}return null}function W(g){const E=(g&&Array.isArray(g.targets)?g.targets:[]).filter(Boolean),n=g&&typeof g.read=="function"?g.read:()=>null,z=g&&typeof g.apply=="function"?g.apply:()=>{},j=Number.isFinite(g&&g.epsilon)?Number(g.epsilon):1;let k=null,h=!1;const v=()=>{if(h)return!1;const w=n();if(!Number.isFinite(w)||w<=0||k!=null&&Math.abs(w-k)<j)return!1;k=w,h=!0;try{z(w)}finally{h=!1}return!0};v();const P=E[0],$=g&&g.view||P&&P.ownerDocument&&P.ownerDocument.defaultView||globalThis,_=$&&$.ResizeObserver;let C=null;if(typeof _=="function"&&E.length){C=new _(()=>{v()});for(const w of E)w&&typeof C.observe=="function"&&C.observe(w)}else E.length&&I("shared.autosize.no-resize-observer","ResizeObserver is unavailable; this view was sized once at mount and will not follow its container.");return{refresh:v,get applied(){return k},release(){if(C&&typeof C.disconnect=="function")try{C.disconnect()}catch{}C=null}}}function N(g){const E=(g&&Array.isArray(g.targets)?g.targets:[]).filter(Boolean),n=g&&typeof g.read=="function"?g.read:()=>({}),z=g&&typeof g.apply=="function"?g.apply:()=>{},j=Number.isFinite(g&&g.epsilon)?Number(g.epsilon):1;let k=null,h=!1;const v=O=>{if(k==null)return!0;for(const[X,A]of Object.entries(O)){if(!Number.isFinite(A)||A<=0)continue;const T=k[X];if(!Number.isFinite(T)||Math.abs(A-T)>=j)return!0}return!1},P=()=>{if(h)return!1;const O=n();if(!O||typeof O!="object"||!Object.values(O).some(A=>Number.isFinite(A)&&A>0)||!v(O))return!1;k={...k,...O},h=!0;try{z(O)}finally{h=!1}return!0};P();const $=E[0],_=g&&g.view||$&&$.ownerDocument&&$.ownerDocument.defaultView||globalThis,C=_&&_.ResizeObserver;let w=null;if(typeof C=="function"&&E.length){w=new C(()=>{P()});for(const O of E)O&&typeof w.observe=="function"&&w.observe(O)}else E.length&&I("shared.autosize.no-resize-observer","ResizeObserver is unavailable; this view was sized once at mount and will not follow its container.");return{refresh:P,get applied(){return k},release(){if(w&&typeof w.disconnect=="function")try{w.disconnect()}catch{}w=null}}}}),fe("packages/modules/layout/length.js",function(a,B){"use strict";Object.defineProperty(a,"cssLength",{enumerable:!0,get:function(){return F}}),Object.defineProperty(a,"tracks",{enumerable:!0,get:function(){return W}});const I=B("packages/core/src/internal/util.js").warnOnce,U=/^(?:\d+\.?\d*|\.\d+)(?:px|%|fr|em|rem|ch|vh|vw|vmin|vmax|pt|cm|mm|in)$/i;function F(N,g,E){if(N==null)return g;if(typeof N=="number")return Number.isFinite(N)&&N>=0?`${N}px`:D(N,g,E);if(typeof N!="string")return D(N,g,E);const n=N.trim();if(n==="")return g;if(U.test(n))return n;const z=Number(n);return Number.isFinite(z)&&z>=0?`${z}px`:D(N,g,E)}function D(N,g,E){return I(`layout.length:${E}`,`layout: ${E} was set to ${JSON.stringify(N)}, which is not a length this module understands (a number of pixels, or a string like '200px', '25%', '1fr', '2rem'). Using ${g}.`),g}function W(N,g,E){return N==="scroll"?`repeat(${g}, ${E})`:`repeat(${g}, minmax(0, 1fr))`}}),fe("packages/modules/layout/model.js",function(a,B){"use strict";Object.defineProperty(a,"positiveInt",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(a,"overlaps",{enumerable:!0,get:function(){return I}}),Object.defineProperty(a,"clampToColumns",{enumerable:!0,get:function(){return U}}),Object.defineProperty(a,"readingOrder",{enumerable:!0,get:function(){return F}}),Object.defineProperty(a,"columnOrder",{enumerable:!0,get:function(){return W}}),Object.defineProperty(a,"pushDown",{enumerable:!0,get:function(){return N}}),Object.defineProperty(a,"pullUp",{enumerable:!0,get:function(){return g}}),Object.defineProperty(a,"pushRight",{enumerable:!0,get:function(){return E}}),Object.defineProperty(a,"pullLeft",{enumerable:!0,get:function(){return n}}),Object.defineProperty(a,"compact",{enumerable:!0,get:function(){return z}}),Object.defineProperty(a,"firstFree",{enumerable:!0,get:function(){return j}}),Object.defineProperty(a,"occupiedRows",{enumerable:!0,get:function(){return k}});function Y(h,v){const P=Math.trunc(Number(h));return Number.isFinite(P)&&P>0?P:v}function I(h,v){return h.xPos<v.xPos+v.xSize&&v.xPos<h.xPos+h.xSize&&h.yPos<v.yPos+v.ySize&&v.yPos<h.yPos+h.ySize}function U(h,v){const P=Math.max(1,Math.min(h.xSize,v));return{xPos:Math.max(1,Math.min(h.xPos,v-P+1)),yPos:Math.max(1,h.yPos),xSize:P,ySize:Math.max(1,h.ySize)}}function F(h,v){return h.yPos-v.yPos||h.xPos-v.xPos||D(h,v)}function D(h,v){const P=String(h.id),$=String(v.id);return P<$?-1:P>$?1:0}function W(h,v){return h.xPos-v.xPos||h.yPos-v.yPos||D(h,v)}function N(h,v){const P=h.find(w=>w.id===v),$=P?[P]:[],_=h.filter(w=>w!==P).sort(F),C=h.length+2;for(const w of _){for(let O=0;O<C;O++){const X=$.filter(A=>I(w,A));if(X.length===0)break;w.yPos=X.reduce((A,T)=>Math.max(A,T.yPos+T.ySize),w.yPos)}$.push(w)}return h}function g(h){const v=[];for(const P of[...h].sort(F)){for(;P.yPos>1;){const $={...P,yPos:P.yPos-1};if(v.some(_=>I($,_)))break;P.yPos-=1}v.push(P)}return h}function E(h,v){const P=h.find(w=>w.id===v),$=P?[P]:[],_=h.filter(w=>w!==P).sort(W),C=h.length+2;for(const w of _){for(let O=0;O<C;O++){const X=$.filter(A=>I(w,A));if(X.length===0)break;w.xPos=X.reduce((A,T)=>Math.max(A,T.xPos+T.xSize),w.xPos)}$.push(w)}return h}function n(h){const v=[];for(const P of[...h].sort(W)){for(;P.xPos>1;){const $={...P,xPos:P.xPos-1};if(v.some(_=>I($,_)))break;P.xPos-=1}v.push(P)}return h}function z(h,v,P){return v==="horizontal"?(E(h,P),n(h)):v!=="vertical"?h:(N(h,P),g(h))}function j(h,v,P,$){const _=Math.max(1,Math.min(P,v)),C=h.reduce((w,O)=>Math.max(w,O.yPos+O.ySize),1);for(let w=1;w<=C+$;w++)for(let O=1;O<=v-_+1;O++){const X={xPos:O,yPos:w,xSize:_,ySize:Math.max(1,$)};if(!h.some(A=>I(X,A)))return{xPos:O,yPos:w}}return{xPos:1,yPos:C}}function k(h,v){return h.reduce((P,$)=>Math.max(P,$.yPos+$.ySize-1),v)}}),fe("packages/modules/layout/view.js",function(a,B){"use strict";Object.defineProperty(a,"NS",{enumerable:!0,get:function(){return n}}),Object.defineProperty(a,"injectStyles",{enumerable:!0,get:function(){return z}}),Object.defineProperty(a,"renderShell",{enumerable:!0,get:function(){return j}}),Object.defineProperty(a,"applyGeometry",{enumerable:!0,get:function(){return k}}),Object.defineProperty(a,"setModeState",{enumerable:!0,get:function(){return C}}),Object.defineProperty(a,"renderWindow",{enumerable:!0,get:function(){return X}}),Object.defineProperty(a,"syncAffordances",{enumerable:!0,get:function(){return T}}),Object.defineProperty(a,"effective",{enumerable:!0,get:function(){return q}}),Object.defineProperty(a,"project",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(a,"placeWindow",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(a,"announce",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(a,"cellPitch",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(a,"showGhost",{enumerable:!0,get:function(){return we}}),Object.defineProperty(a,"hideGhost",{enumerable:!0,get:function(){return de}}),Object.defineProperty(a,"listen",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(a,"placementFromDelta",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(a,"boundPlacement",{enumerable:!0,get:function(){return he}}),Object.defineProperty(a,"commitPlacement",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(a,"focusHandle",{enumerable:!0,get:function(){return be}});const I=B("packages/core/src/internal/util.js").isFunction,U=B("packages/modules/layout/length.js"),F=U.cssLength,D=U.tracks,W=B("packages/modules/layout/model.js"),N=W.clampToColumns,g=W.compact,E=W.occupiedRows,n="lat-layout";function z(u){if(!u||u.getElementById&&u.getElementById(`${n}-styles`))return;const r=u.createElement("style");r.id=`${n}-styles`,r.setAttribute("id",`${n}-styles`),r.textContent=`
7
7
  .${n}{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;box-sizing:border-box;
8
8
  font-family:var(--${n}-font-family,var(--lattice-font-family,var(--lat-chrome-font-family,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif)));
9
9
  font-size:var(--${n}-font-size,var(--lattice-font-size,var(--lat-chrome-font-size,13px)));
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.86.4, leaflet module type declarations
2
+ * Lattice Grid 1.86.5, leaflet module type declarations
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */